forked from OSchip/llvm-project
[DAGCombiner] Fix invalid alias analysis.
Summary: When we know for sure whether two addresses do or do not alias, we should immediately return from DAGCombiner::isAlias(). I think this comes from a bad copy/paste, Sorry for not catching that during the code review. Fixes PR41855. Reviewers: niravd, gchatelet, EricWF Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D61846 llvm-svn: 360566
This commit is contained in:
parent
381ba9aedc
commit
9afc4764dd
|
@ -6128,7 +6128,7 @@ static unsigned BigEndianByteAt(unsigned BW, unsigned i) {
|
|||
}
|
||||
|
||||
// Check if the bytes offsets we are looking at match with either big or
|
||||
// little endian value loaded. Return true for big endian, false for little
|
||||
// little endian value loaded. Return true for big endian, false for little
|
||||
// endian, and None if match failed.
|
||||
static Optional<bool> isBigEndian(const SmallVector<int64_t, 4> &ByteOffsets,
|
||||
int64_t FirstOffset) {
|
||||
|
@ -19800,8 +19800,7 @@ bool DAGCombiner::isAlias(SDNode *Op0, SDNode *Op1) const {
|
|||
|
||||
bool IsAlias;
|
||||
if (BaseIndexOffset::computeAliasing(Op0, MUC0.NumBytes, Op1, MUC1.NumBytes,
|
||||
DAG, IsAlias) &&
|
||||
!IsAlias)
|
||||
DAG, IsAlias))
|
||||
return IsAlias;
|
||||
|
||||
// The following all rely on MMO0 and MMO1 being valid. Fail conservatively if
|
||||
|
|
|
@ -40,26 +40,28 @@ define dso_local i8 @main() local_unnamed_addr #0 personality i8* bitcast (i32 (
|
|||
; CHECK-NEXT: movl $1701999988, -{{[0-9]+}}(%rsp) # imm = 0x65727574
|
||||
; CHECK-NEXT: movb $0, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movaps %xmm0, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movabsq $1513209474796486656, %rax # imm = 0x1500000000000000
|
||||
; CHECK-NEXT: movq $0, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movb $21, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movabsq $7308613581744070988, %rax # imm = 0x656D69547473614C
|
||||
; CHECK-NEXT: movq %rax, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movups {{.*}}(%rip), %xmm1
|
||||
; CHECK-NEXT: movaps %xmm1, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movabsq $7308613581744070988, %rcx # imm = 0x656D69547473614C
|
||||
; CHECK-NEXT: movq %rcx, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movabsq $792633534417207296, %rcx # imm = 0xB00000000000000
|
||||
; CHECK-NEXT: movq %rcx, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movq -{{[0-9]+}}(%rsp), %rcx
|
||||
; CHECK-NEXT: movq %rcx, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movzwl -{{[0-9]+}}(%rsp), %ecx
|
||||
; CHECK-NEXT: movw %cx, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movb -{{[0-9]+}}(%rsp), %cl
|
||||
; CHECK-NEXT: movb %cl, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movb -{{[0-9]+}}(%rsp), %cl
|
||||
; CHECK-NEXT: movb %cl, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movl -{{[0-9]+}}(%rsp), %ecx
|
||||
; CHECK-NEXT: movl %ecx, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movb $0, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movabsq $792633534417207296, %rax # imm = 0xB00000000000000
|
||||
; CHECK-NEXT: movq %rax, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movq -{{[0-9]+}}(%rsp), %rax
|
||||
; CHECK-NEXT: movq %rax, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movzwl -{{[0-9]+}}(%rsp), %eax
|
||||
; CHECK-NEXT: movw %ax, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; CHECK-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movb -{{[0-9]+}}(%rsp), %al
|
||||
; CHECK-NEXT: movb %al, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movl -{{[0-9]+}}(%rsp), %eax
|
||||
; CHECK-NEXT: movl %eax, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movaps %xmm0, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movq $0, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movq -{{[0-9]+}}(%rsp), %rax
|
||||
; CHECK-NEXT: movq %rax, -{{[0-9]+}}(%rsp)
|
||||
; CHECK-NEXT: movaps -{{[0-9]+}}(%rsp), %xmm1
|
||||
; CHECK-NEXT: movups %xmm1, -{{[0-9]+}}(%rsp)
|
||||
|
|
Loading…
Reference in New Issue