diff options
| author | Whitney Tsang <whitney.uwaterloo@gmail.com> | 2019-06-17 14:38:56 +0000 | 
|---|---|---|
| committer | Whitney Tsang <whitney.uwaterloo@gmail.com> | 2019-06-17 14:38:56 +0000 | 
| commit | 15b7f5b72d2ae3dae37a42caa8d3259cfafc70c6 (patch) | |
| tree | fdc3c71b9334ee77ede0ec010ac2269a03d24651 /llvm/lib/Transforms/Vectorize | |
| parent | 1c91e63897d8832a7b634d9662b8dbcc3ba36efd (diff) | |
| download | bcm5719-llvm-15b7f5b72d2ae3dae37a42caa8d3259cfafc70c6.tar.gz bcm5719-llvm-15b7f5b72d2ae3dae37a42caa8d3259cfafc70c6.zip | |
PHINode: introduce setIncomingValueForBlock() function, and use it.
Summary:
There is PHINode::getBasicBlockIndex() and PHINode::setIncomingValue()
but no function to replace incoming value for a specified BasicBlock*
predecessor.
Clearly, there are a lot of places that could use that functionality.
Reviewer: craig.topper, lebedev.ri, Meinersbur, kbarton, fhahn
Reviewed By: Meinersbur, fhahn
Subscribers: fhahn, hiraditya, zzheng, jsji, llvm-commits
Tag: LLVM
Differential Revision: https://reviews.llvm.org/D63338
llvm-svn: 363566
Diffstat (limited to 'llvm/lib/Transforms/Vectorize')
| -rw-r--r-- | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp | 6 | 
1 files changed, 2 insertions, 4 deletions
| diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp index d0d72d8de90..01104f68bb3 100644 --- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -2883,13 +2883,11 @@ BasicBlock *InnerLoopVectorizer::createVectorizedLoopSkeleton() {      BCResumeVal->addIncoming(EndValue, MiddleBlock);      // Fix the scalar body counter (PHI node). -    unsigned BlockIdx = OrigPhi->getBasicBlockIndex(ScalarPH); -      // The old induction's phi node in the scalar body needs the truncated      // value.      for (BasicBlock *BB : LoopBypassBlocks)        BCResumeVal->addIncoming(II.getStartValue(), BB); -    OrigPhi->setIncomingValue(BlockIdx, BCResumeVal); +    OrigPhi->setIncomingValueForBlock(ScalarPH, BCResumeVal);    }    // We need the OrigLoop (scalar loop part) latch terminator to help @@ -3480,7 +3478,7 @@ void InnerLoopVectorizer::fixFirstOrderRecurrence(PHINode *Phi) {      Start->addIncoming(Incoming, BB);    } -  Phi->setIncomingValue(Phi->getBasicBlockIndex(LoopScalarPreHeader), Start); +  Phi->setIncomingValueForBlock(LoopScalarPreHeader, Start);    Phi->setName("scalar.recur");    // Finally, fix users of the recurrence outside the loop. The users will need | 

