mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-28 21:34:23 +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;
|
continue;
|
||||||
|
|
||||||
unsigned C = getInstructionCost(it, VF);
|
unsigned C = getInstructionCost(it, VF);
|
||||||
Cost += C;
|
BlockCost += C;
|
||||||
DEBUG(dbgs() << "LV: Found an estimated cost of "<< C <<" for VF " <<
|
DEBUG(dbgs() << "LV: Found an estimated cost of "<< C <<" for VF " <<
|
||||||
VF << " For instruction: "<< *it << "\n");
|
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.
|
// 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 scalar then some of the blocks are avoided due to CF.
|
||||||
// When the code is vectorized we execute all code paths.
|
// When the code is vectorized we execute all code paths.
|
||||||
if (Legal->blockNeedsPredication(*bb) && VF == 1)
|
if (VF == 1 && Legal->blockNeedsPredication(*bb))
|
||||||
BlockCost /= 2;
|
BlockCost /= 2;
|
||||||
|
|
||||||
Cost += BlockCost;
|
Cost += BlockCost;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user