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 | 82d34eb4703e7b231044ad7ab7a281d404b78b2a (patch) | |
tree | 1d7d9c1e9147c261587687ecf6dca6162bd42da3 /llvm/lib/Analysis/ValueNumbering.cpp | |
parent | 998c0674be87dcc3f7da6399230daf11cf5ca79a (diff) | |
download | bcm5719-llvm-82d34eb4703e7b231044ad7ab7a281d404b78b2a.tar.gz bcm5719-llvm-82d34eb4703e7b231044ad7ab7a281d404b78b2a.zip |
Minor efficiency improvement, finegrainify namespacification
llvm-svn: 12517
Diffstat (limited to 'llvm/lib/Analysis/ValueNumbering.cpp')
-rw-r--r-- | llvm/lib/Analysis/ValueNumbering.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/llvm/lib/Analysis/ValueNumbering.cpp b/llvm/lib/Analysis/ValueNumbering.cpp index 0d016f32288..49b75bd6acc 100644 --- a/llvm/lib/Analysis/ValueNumbering.cpp +++ b/llvm/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() { } |