mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-15 07:34:33 +00:00
Fix an obvious typo in the loop vectorizer where the cost model uses the wrong variable. The variable BlockCost is ignored.
We don't have tests for the effect of if-conversion loops because it requires a big test (that includes if-converted loops) and it is difficult to find and balance a loop to do the right thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186845 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6303ef1fb7
commit
b987c40548
@ -4390,7 +4390,7 @@ unsigned LoopVectorizationCostModel::expectedCost(unsigned VF) {
|
||||
continue;
|
||||
|
||||
unsigned C = getInstructionCost(it, VF);
|
||||
Cost += C;
|
||||
BlockCost += C;
|
||||
DEBUG(dbgs() << "LV: Found an estimated cost of "<< C <<" for VF " <<
|
||||
VF << " For instruction: "<< *it << "\n");
|
||||
}
|
||||
@ -4398,7 +4398,7 @@ unsigned LoopVectorizationCostModel::expectedCost(unsigned VF) {
|
||||
// We assume that if-converted blocks have a 50% chance of being executed.
|
||||
// When the code is scalar then some of the blocks are avoided due to CF.
|
||||
// When the code is vectorized we execute all code paths.
|
||||
if (Legal->blockNeedsPredication(*bb) && VF == 1)
|
||||
if (VF == 1 && Legal->blockNeedsPredication(*bb))
|
||||
BlockCost /= 2;
|
||||
|
||||
Cost += BlockCost;
|
||||
|
Loading…
x
Reference in New Issue
Block a user