Make DAGCombiner's global alias analysis query more precise in the case

where both pointers have non-zero offsets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41491 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2007-08-27 16:32:11 +00:00
parent e22814b0a8
commit e9c8fa095e

View File

@ -4606,8 +4606,9 @@ bool DAGCombiner::isAlias(SDOperand Ptr1, int64_t Size1,
if (CombinerGlobalAA) {
// Use alias analysis information.
int Overlap1 = Size1 + SrcValueOffset1;
int Overlap2 = Size2 + SrcValueOffset2;
int64_t MinOffset = std::min(SrcValueOffset1, SrcValueOffset2);
int64_t Overlap1 = Size1 + SrcValueOffset1 - MinOffset;
int64_t Overlap2 = Size2 + SrcValueOffset2 - MinOffset;
AliasAnalysis::AliasResult AAResult =
AA.alias(SrcValue1, Overlap1, SrcValue2, Overlap2);
if (AAResult == AliasAnalysis::NoAlias)