[PATCH] D54250: Fix not correct imm operand assertion for SUB32ri in X86CondBrFolding::analyzeCompare
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 7 14:37:26 PST 2018
craig.topper updated this revision to Diff 177321.
craig.topper added a comment.
Rebase to include the test file from the other patch with the XFAIL removed.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D54250/new/
https://reviews.llvm.org/D54250
Files:
lib/Target/X86/X86CondBrFolding.cpp
test/CodeGen/X86/test_x86condbr_globaladdr.mir
Index: test/CodeGen/X86/test_x86condbr_globaladdr.mir
===================================================================
--- /dev/null
+++ test/CodeGen/X86/test_x86condbr_globaladdr.mir
@@ -0,0 +1,30 @@
+# RUN: llc -o - %s -mtriple=i686-- -mcpu=ivybridge --run-pass X86CondBrFolding | FileCheck %s
+
+# Test wrong assertion when meet SUB32ri with global address
+# in X86CondBrFoldingiPass
+--- |
+ @img2buf_normal = external global i32
+ define void @func() { ret void }
+...
+---
+# CHECK: bb.0:
+# CHECK: %2:gr32 = SUB32ri %1, @img2buf_normal, implicit-def $eflags
+
+name: func
+tracksRegLiveness: true
+body: |
+ bb.0:
+ liveins: $edx
+ %1:gr32 = COPY $edx
+ %2:gr32 = MOV32rm %1:gr32, 1, $noreg, 850256, $noreg
+ %3:gr32 = SUB32ri %2:gr32, @img2buf_normal, implicit-def $eflags
+ JE_1 %bb.2, implicit $eflags
+ JMP_1 %bb.3
+
+ bb.2:
+ RET 0, undef $eax
+
+ bb.3:
+ $eax = MOV32rr %3:gr32
+ RET 0, $eax
+...
Index: lib/Target/X86/X86CondBrFolding.cpp
===================================================================
--- lib/Target/X86/X86CondBrFolding.cpp
+++ lib/Target/X86/X86CondBrFolding.cpp
@@ -468,7 +468,8 @@
break;
}
SrcReg = MI.getOperand(SrcRegIndex).getReg();
- assert(MI.getOperand(ValueIndex).isImm() && "Expecting Imm operand");
+ if (!MI.getOperand(ValueIndex).isImm())
+ return false;
CmpValue = MI.getOperand(ValueIndex).getImm();
return true;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D54250.177321.patch
Type: text/x-patch
Size: 1427 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181207/0711fa03/attachment.bin>
More information about the llvm-commits
mailing list