summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2007-07-03 19:01:42 +0000
committerOwen Anderson <resistor@mac.com>2007-07-03 19:01:42 +0000
commit6b958c72bd76bb8f8d932e178eb24243340cfa70 (patch)
tree16be543e5038972954ba2f24099199b3c28e4ea0 /llvm/lib/Transforms
parent59bd053fc5205471d23da7ca3469b5a926b78b40 (diff)
downloadbcm5719-llvm-6b958c72bd76bb8f8d932e178eb24243340cfa70.tar.gz
bcm5719-llvm-6b958c72bd76bb8f8d932e178eb24243340cfa70.zip
Make the unary operator case a bit faster, since casts are the only kind of unary operation.
llvm-svn: 37857
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/Scalar/GVNPRE.cpp14
1 files changed, 4 insertions, 10 deletions
diff --git a/llvm/lib/Transforms/Scalar/GVNPRE.cpp b/llvm/lib/Transforms/Scalar/GVNPRE.cpp
index 65af1a25ee8..25cd8165fd0 100644
--- a/llvm/lib/Transforms/Scalar/GVNPRE.cpp
+++ b/llvm/lib/Transforms/Scalar/GVNPRE.cpp
@@ -630,9 +630,7 @@ Value* GVNPRE::phi_translate(Value* V, BasicBlock* pred, BasicBlock* succ) {
return 0;
// Unary Operations
- if (isa<CastInst>(V)) {
- User* U = cast<User>(V);
-
+ if (CastInst* U = dyn_cast<CastInst>(V)) {
Value* newOp1 = 0;
if (isa<Instruction>(U->getOperand(0)))
newOp1 = phi_translate(U->getOperand(0), pred, succ);
@@ -817,9 +815,7 @@ void GVNPRE::clean(SmallPtrSet<Value*, 16>& set, BitVector& presentInSet) {
Value* v = worklist[i];
// Handle unary ops
- if (isa<CastInst>(v)) {
- User* U = cast<User>(v);
-
+ if (CastInst* U = dyn_cast<CastInst>(v)) {
bool lhsValid = !isa<Instruction>(U->getOperand(0));
lhsValid |= presentInSet.test(VN.lookup(U->getOperand(0)));
if (lhsValid)
@@ -892,8 +888,7 @@ void GVNPRE::topo_sort(SmallPtrSet<Value*, 16>& set, std::vector<Value*>& vec) {
Value* e = stack.back();
// Handle unary ops
- if (isa<CastInst>(e)) {
- User* U = cast<User>(e);
+ if (CastInst* U = dyn_cast<CastInst>(e)) {
Value* l = find_leader(set, VN.lookup(U->getOperand(0)));
if (l != 0 && isa<Instruction>(l) &&
@@ -1054,8 +1049,7 @@ void GVNPRE::buildsets_availout(BasicBlock::iterator I,
currPhis.insert(p);
// Handle unary ops
- } else if (isa<CastInst>(I)) {
- User* U = cast<User>(I);
+ } else if (CastInst* U = dyn_cast<CastInst>(I)) {
Value* leftValue = U->getOperand(0);
unsigned num = VN.lookup_or_add(U);
OpenPOWER on IntegriCloud