diff options
author | Chris Lattner <sabre@nondot.org> | 2004-03-25 22:56:03 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-03-25 22:56:03 +0000 |
commit | 698c4a4bbbf7c311bf9598b26515524cd44b06d0 (patch) | |
tree | 8a918c278634f332ea18b2fe52b468fcf7ebda0e /lib/Analysis/ValueNumbering.cpp | |
parent | a553f62738962fd1556171bae43bef9c082639be (diff) |
Minor efficiency improvement, finegrainify namespacification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12517 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/ValueNumbering.cpp')
-rw-r--r-- | lib/Analysis/ValueNumbering.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/lib/Analysis/ValueNumbering.cpp b/lib/Analysis/ValueNumbering.cpp index 0d016f3228..49b75bd6ac 100644 --- a/lib/Analysis/ValueNumbering.cpp +++ b/lib/Analysis/ValueNumbering.cpp @@ -18,8 +18,7 @@ #include "llvm/Instructions.h" #include "llvm/Pass.h" #include "llvm/Type.h" - -namespace llvm { +using namespace llvm; // Register the ValueNumbering interface, providing a nice name to refer to. static RegisterAnalysisGroup<ValueNumbering> X("Value Numbering"); @@ -177,6 +176,14 @@ static bool IdenticalComplexInst(const Instruction *I1, const Instruction *I2) { void BVNImpl::visitGetElementPtrInst(GetElementPtrInst &I) { Value *Op = I.getOperand(0); + + // Try to pick a local operand if possible instead of a constant or a global + // that might have a lot of uses. + for (unsigned i = 1, e = I.getNumOperands(); i != e; ++i) + if (isa<Instruction>(I.getOperand(i)) || isa<Argument>(I.getOperand(i))) { + Op = I.getOperand(i); + break; + } for (Value::use_iterator UI = Op->use_begin(), UE = Op->use_end(); UI != UE; ++UI) @@ -188,6 +195,4 @@ void BVNImpl::visitGetElementPtrInst(GetElementPtrInst &I) { } } -void BasicValueNumberingStub() { } - -} // End llvm namespace +void llvm::BasicValueNumberingStub() { } |