summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/InstructionCombining.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-05-22 19:07:21 +0000
committerChris Lattner <sabre@nondot.org>2003-05-22 19:07:21 +0000
commit471bd76281a1acb55415defcec6c5728a27e8ba6 (patch)
tree5f46533dc729e7a4cd7966eec4bf962f11da860f /llvm/lib/Transforms/Scalar/InstructionCombining.cpp
parent4a207910495b419a724dadf1a23ecf9a6e2a6f5d (diff)
downloadbcm5719-llvm-471bd76281a1acb55415defcec6c5728a27e8ba6.tar.gz
bcm5719-llvm-471bd76281a1acb55415defcec6c5728a27e8ba6.zip
Minor cleanups.
This hunk: - } else if (Src->getNumOperands() == 2 && Src->use_size() == 1) { + } else if (Src->getNumOperands() == 2) { Allows GEP folding to be more aggressive, which reduces the number of instructions and can dramatically speed up BasicAA in some cases. llvm-svn: 6286
Diffstat (limited to 'llvm/lib/Transforms/Scalar/InstructionCombining.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/InstructionCombining.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/llvm/lib/Transforms/Scalar/InstructionCombining.cpp b/llvm/lib/Transforms/Scalar/InstructionCombining.cpp
index d73ee1e40cd..7c77a666d6e 100644
--- a/llvm/lib/Transforms/Scalar/InstructionCombining.cpp
+++ b/llvm/lib/Transforms/Scalar/InstructionCombining.cpp
@@ -18,10 +18,7 @@
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/ConstantHandling.h"
-#include "llvm/iMemory.h"
-#include "llvm/iOther.h"
-#include "llvm/iPHINode.h"
-#include "llvm/iOperators.h"
+#include "llvm/Instructions.h"
#include "llvm/Pass.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Support/InstIterator.h"
@@ -941,7 +938,7 @@ Instruction *InstCombiner::visitPHINode(PHINode &PN) {
Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) {
- // Is it 'getelementptr %P, uint 0' or 'getelementptr %P'
+ // Is it 'getelementptr %P, long 0' or 'getelementptr %P'
// If so, eliminate the noop.
if ((GEP.getNumOperands() == 2 &&
GEP.getOperand(1) == Constant::getNullValue(Type::LongTy)) ||
@@ -956,8 +953,8 @@ Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) {
std::vector<Value *> Indices;
// Can we combine the two pointer arithmetics offsets?
- if (Src->getNumOperands() == 2 && isa<Constant>(Src->getOperand(1)) &&
- isa<Constant>(GEP.getOperand(1))) {
+ if (Src->getNumOperands() == 2 && isa<Constant>(Src->getOperand(1)) &&
+ isa<Constant>(GEP.getOperand(1))) {
// Replace: gep (gep %P, long C1), long C2, ...
// With: gep %P, long (C1+C2), ...
Value *Sum = *cast<Constant>(Src->getOperand(1)) +
@@ -967,7 +964,7 @@ Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) {
GEP.setOperand(1, Sum);
AddUsesToWorkList(*Src); // Reduce use count of Src
return &GEP;
- } else if (Src->getNumOperands() == 2 && Src->use_size() == 1) {
+ } else if (Src->getNumOperands() == 2) {
// Replace: gep (gep %P, long B), long A, ...
// With: T = long A+B; gep %P, T, ...
//
OpenPOWER on IntegriCloud