diff options
author | Chris Lattner <sabre@nondot.org> | 2004-02-11 03:57:16 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-02-11 03:57:16 +0000 |
commit | 40c5767b704c602ed9f9080a334b9cd9a01ecd79 (patch) | |
tree | 1ed81b17cc29ec5313c39c8faadd0a54b7650aa2 /lib/Analysis/ValueNumbering.cpp | |
parent | 723c66d4c0aa081ea8fa221617c5097e31333e6c (diff) |
Simplify implementation, and probably speed things up too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11308 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/ValueNumbering.cpp')
-rw-r--r-- | lib/Analysis/ValueNumbering.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/lib/Analysis/ValueNumbering.cpp b/lib/Analysis/ValueNumbering.cpp index d472651b3e..0d016f3228 100644 --- a/lib/Analysis/ValueNumbering.cpp +++ b/lib/Analysis/ValueNumbering.cpp @@ -15,9 +15,9 @@ #include "llvm/Analysis/ValueNumbering.h" #include "llvm/Support/InstVisitor.h" #include "llvm/BasicBlock.h" +#include "llvm/Instructions.h" #include "llvm/Pass.h" #include "llvm/Type.h" -#include "llvm/iMemory.h" namespace llvm { @@ -104,17 +104,14 @@ void BVNImpl::visitCastInst(CastInst &CI) { for (Value::use_iterator UI = Op->use_begin(), UE = Op->use_end(); UI != UE; ++UI) - if (Instruction *Other = dyn_cast<Instruction>(*UI)) - // Check to see if this new cast is not I, but has the same operand... - if (Other != &I && Other->getOpcode() == I.getOpcode() && - Other->getOperand(0) == Op && // Is the operand the same? + if (CastInst *Other = dyn_cast<CastInst>(*UI)) + // Check that the types are the same, since this code handles casts... + if (Other->getType() == I.getType() && // Is it embedded in the same function? (This could be false if LHS // is a constant or global!) Other->getParent()->getParent() == F && - - // Check that the types are the same, since this code handles casts... - Other->getType() == I.getType()) { - + // Check to see if this new cast is not I. + Other != &I) { // These instructions are identical. Add to list... RetVals.push_back(Other); } |