mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-27 17:31:33 +00:00
Add statistics on removed switch cases, and fix the phi statistic
to count the number of phis changed, not the number visited. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152425 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
07c32218f4
commit
a8eb6bb408
@ -28,6 +28,7 @@ STATISTIC(NumPhis, "Number of phis propagated");
|
||||
STATISTIC(NumSelects, "Number of selects propagated");
|
||||
STATISTIC(NumMemAccess, "Number of memory access targets propagated");
|
||||
STATISTIC(NumCmps, "Number of comparisons propagated");
|
||||
STATISTIC(NumDeadCases, "Number of switch cases removed");
|
||||
|
||||
namespace {
|
||||
class CorrelatedValuePropagation : public FunctionPass {
|
||||
@ -111,7 +112,8 @@ bool CorrelatedValuePropagation::processPHI(PHINode *P) {
|
||||
Changed = true;
|
||||
}
|
||||
|
||||
++NumPhis;
|
||||
if (Changed)
|
||||
++NumPhis;
|
||||
|
||||
return Changed;
|
||||
}
|
||||
@ -233,12 +235,14 @@ bool CorrelatedValuePropagation::processSwitch(SwitchInst *SI) {
|
||||
// This case never fires - remove it.
|
||||
CI.getCaseSuccessor()->removePredecessor(BB);
|
||||
SI->removeCase(CI); // Does not invalidate the iterator.
|
||||
++NumDeadCases;
|
||||
Changed = true;
|
||||
} else if (State == LazyValueInfo::True) {
|
||||
// This case always fires. Arrange for the switch to be turned into an
|
||||
// unconditional branch by replacing the switch condition with the case
|
||||
// value.
|
||||
SI->setCondition(Case);
|
||||
NumDeadCases += SI->getNumCases();
|
||||
Changed = true;
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user