mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 19:52:54 +01:00
Add some stats to CodeGenPrepare to make it easier to speed it up without
regressing code quality. llvm-svn: 122887
This commit is contained in:
parent
832c9e07a1
commit
eca6d2c70a
@ -44,7 +44,15 @@
|
||||
using namespace llvm;
|
||||
using namespace llvm::PatternMatch;
|
||||
|
||||
STATISTIC(NumElim, "Number of blocks eliminated");
|
||||
STATISTIC(NumBlocksElim, "Number of blocks eliminated");
|
||||
STATISTIC(NumCmpUses, "Number of uses of Cmp expressions replaced with uses of "
|
||||
"sunken Cmps");
|
||||
STATISTIC(NumCastUses, "Number of uses of Cast expressions replaced with uses "
|
||||
"of sunken Casts");
|
||||
STATISTIC(NumMemoryInsts, "Number of memory instructions whose address "
|
||||
"computations were sunk");
|
||||
STATISTIC(NumExtsMoved, "Number of [s|z]ext instructions combined with loads");
|
||||
STATISTIC(NumExtUses, "Number of uses of [s|z]ext instructions optimized");
|
||||
|
||||
static cl::opt<bool>
|
||||
CriticalEdgeSplit("cgp-critical-edge-splitting",
|
||||
@ -310,7 +318,7 @@ void CodeGenPrepare::EliminateMostlyEmptyBlock(BasicBlock *BB) {
|
||||
PFI->removeEdge(ProfileInfo::getEdge(BB, DestBB));
|
||||
}
|
||||
BB->eraseFromParent();
|
||||
++NumElim;
|
||||
++NumBlocksElim;
|
||||
|
||||
DEBUG(dbgs() << "AFTER:\n" << *DestBB << "\n\n\n");
|
||||
}
|
||||
@ -489,6 +497,7 @@ static bool OptimizeNoopCopyExpression(CastInst *CI, const TargetLowering &TLI){
|
||||
|
||||
// Replace a use of the cast with a use of the new cast.
|
||||
TheUse = InsertedCast;
|
||||
++NumCastUses;
|
||||
}
|
||||
|
||||
// If we removed all uses, nuke the cast.
|
||||
@ -546,6 +555,7 @@ static bool OptimizeCmpExpression(CmpInst *CI) {
|
||||
|
||||
// Replace a use of the cmp with a use of the new cmp.
|
||||
TheUse = InsertedCmp;
|
||||
++NumCmpUses;
|
||||
}
|
||||
|
||||
// If we removed all uses, nuke the cmp.
|
||||
@ -793,6 +803,7 @@ bool CodeGenPrepare::OptimizeMemoryInst(Instruction *MemoryInst, Value *Addr,
|
||||
// we don't want to match some completely different instruction.
|
||||
SunkAddrs[Addr] = 0;
|
||||
}
|
||||
++NumMemoryInsts;
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -858,6 +869,7 @@ bool CodeGenPrepare::MoveExtToFormExtLoad(Instruction *I) {
|
||||
// can fold it.
|
||||
I->removeFromParent();
|
||||
I->insertAfter(LI);
|
||||
++NumExtsMoved;
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -929,7 +941,7 @@ bool CodeGenPrepare::OptimizeExtUses(Instruction *I) {
|
||||
|
||||
// Replace a use of the {s|z}ext source with a use of the result.
|
||||
TheUse = InsertedTrunc;
|
||||
|
||||
++NumExtUses;
|
||||
MadeChange = true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user