[PATCH] D61846: [DAGCombiner] Fix invalid alias analysis.
Clement Courbet via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon May 13 01:52:01 PDT 2019
courbet updated this revision to Diff 199221.
courbet added a comment.
Rebase.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D61846/new/
https://reviews.llvm.org/D61846
Files:
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/test/CodeGen/X86/lifetime-alias.ll
Index: llvm/test/CodeGen/X86/lifetime-alias.ll
===================================================================
--- llvm/test/CodeGen/X86/lifetime-alias.ll
+++ llvm/test/CodeGen/X86/lifetime-alias.ll
@@ -40,26 +40,28 @@
; 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)
Index: llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
===================================================================
--- llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+++ llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
@@ -6128,7 +6128,7 @@
}
// 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 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61846.199221.patch
Type: text/x-patch
Size: 3438 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190513/f7e0c073/attachment.bin>
More information about the llvm-commits
mailing list