diff options
| author | 2019-06-23 21:36:31 +0000 | |
|---|---|---|
| committer | 2019-06-23 21:36:31 +0000 | |
| commit | 23f101f37937a1bd4a29726cab2f76e0fb038b35 (patch) | |
| tree | f7da7d6b32c2e07114da399150bfa88d72187012 /gnu/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp | |
| parent | sort previous; ok deraadt (diff) | |
| download | wireguard-openbsd-23f101f37937a1bd4a29726cab2f76e0fb038b35.tar.xz wireguard-openbsd-23f101f37937a1bd4a29726cab2f76e0fb038b35.zip | |
Import LLVM 8.0.0 release including clang, lld and lldb.
Diffstat (limited to 'gnu/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp')
| -rw-r--r-- | gnu/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gnu/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp b/gnu/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp index e3cbab077e6..3ad7fc7e7b9 100644 --- a/gnu/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp +++ b/gnu/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp @@ -24,6 +24,18 @@ void VPlanHCFGTransforms::VPInstructionsToVPRecipes( VPRegionBlock *TopRegion = dyn_cast<VPRegionBlock>(Plan->getEntry()); ReversePostOrderTraversal<VPBlockBase *> RPOT(TopRegion->getEntry()); + + // Condition bit VPValues get deleted during transformation to VPRecipes. + // Create new VPValues and save away as condition bits. These will be deleted + // after finalizing the vector IR basic blocks. + for (VPBlockBase *Base : RPOT) { + VPBasicBlock *VPBB = Base->getEntryBasicBlock(); + if (auto *CondBit = VPBB->getCondBit()) { + auto *NCondBit = new VPValue(CondBit->getUnderlyingValue()); + VPBB->setCondBit(NCondBit); + Plan->addCBV(NCondBit); + } + } for (VPBlockBase *Base : RPOT) { // Do not widen instructions in pre-header and exit blocks. if (Base->getNumPredecessors() == 0 || Base->getNumSuccessors() == 0) |
