From: Hal Finkel Date: Tue, 30 Oct 2012 18:55:49 +0000 (+0000) Subject: BBVectorize: Don't make calls to SE when the result is unused. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=93f6f457614299eee3d22f376ab8f42a130f1912;p=oota-llvm.git BBVectorize: Don't make calls to SE when the result is unused. SE was being called during the instruction-fusion process (when the result is unreliable, and thus ignored). No functionality change is intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167037 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Vectorize/BBVectorize.cpp b/lib/Transforms/Vectorize/BBVectorize.cpp index 7486af68fdf..dafec2cd244 100644 --- a/lib/Transforms/Vectorize/BBVectorize.cpp +++ b/lib/Transforms/Vectorize/BBVectorize.cpp @@ -547,7 +547,7 @@ namespace { bool getPairPtrInfo(Instruction *I, Instruction *J, Value *&IPtr, Value *&JPtr, unsigned &IAlignment, unsigned &JAlignment, unsigned &IAddressSpace, unsigned &JAddressSpace, - int64_t &OffsetInElmts) { + int64_t &OffsetInElmts, bool ComputeOffset = true) { OffsetInElmts = 0; if (LoadInst *LI = dyn_cast(I)) { LoadInst *LJ = cast(J); @@ -567,6 +567,9 @@ namespace { JAddressSpace = SJ->getPointerAddressSpace(); } + if (!ComputeOffset) + return true; + const SCEV *IPtrSCEV = SE->getSCEV(IPtr); const SCEV *JPtrSCEV = SE->getSCEV(JPtr); @@ -1677,7 +1680,7 @@ namespace { // been precomputed (OffsetInElmts must be unused here). (void) getPairPtrInfo(I, J, IPtr, JPtr, IAlignment, JAlignment, IAddressSpace, JAddressSpace, - OffsetInElmts); + OffsetInElmts, false); // The pointer value is taken to be the one with the lowest offset. Value *VPtr;