diff options
author | Chris Lattner <sabre@nondot.org> | 2004-03-17 01:59:27 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-03-17 01:59:27 +0000 |
commit | e91197965086819410d51de46a556ff05cb9b625 (patch) | |
tree | f7ccea58a523f080521f0e1704a65202208731dd | |
parent | 8f71b63bead24de7acc6fe7f0487bf56da22d745 (diff) |
Be more accurate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12464 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Transforms/Scalar/GCSE.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/Transforms/Scalar/GCSE.cpp b/lib/Transforms/Scalar/GCSE.cpp index e949525d80..c5d5a684e4 100644 --- a/lib/Transforms/Scalar/GCSE.cpp +++ b/lib/Transforms/Scalar/GCSE.cpp @@ -223,6 +223,11 @@ Instruction *GCSE::EliminateCSE(Instruction *I, Instruction *Other) { Instruction *Second = I != First ? I : Other; // Get iterator to second inst BI = Second; + if (isa<LoadInst>(Second)) + ++NumLoadRemoved; // Keep track of loads eliminated + if (isa<CallInst>(Second)) + ++NumCallRemoved; // Keep track of calls eliminated + // Destroy Second, using First instead. ReplaceInstWithInst(First, BI); Ret = First; @@ -231,9 +236,19 @@ Instruction *GCSE::EliminateCSE(Instruction *I, Instruction *Other) { // dominates the other instruction, we can simply use it // } else if (DomSetInfo->dominates(BB1, BB2)) { // I dom Other? + if (isa<LoadInst>(Other)) + ++NumLoadRemoved; // Keep track of loads eliminated + if (isa<CallInst>(Other)) + ++NumCallRemoved; // Keep track of calls eliminated + ReplaceInstWithInst(I, Other); Ret = I; } else if (DomSetInfo->dominates(BB2, BB1)) { // Other dom I? + if (isa<LoadInst>(I)) + ++NumLoadRemoved; // Keep track of loads eliminated + if (isa<CallInst>(I)) + ++NumCallRemoved; // Keep track of calls eliminated + ReplaceInstWithInst(Other, I); Ret = Other; } else { @@ -266,10 +281,6 @@ Instruction *GCSE::EliminateCSE(Instruction *I, Instruction *Other) { return 0; } - if (isa<LoadInst>(Ret)) - ++NumLoadRemoved; // Keep track of loads eliminated - if (isa<CallInst>(Ret)) - ++NumCallRemoved; // Keep track of calls eliminated ++NumInstRemoved; // Keep track of number of instructions eliminated // Add all users of Ret to the worklist... |