[llvm] r323704 - [DSE] add test for PR36129; NFC

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 29 14:50:08 PST 2018


Author: spatel
Date: Mon Jan 29 14:50:08 2018
New Revision: 323704

URL: http://llvm.org/viewvc/llvm-project?rev=323704&view=rev
Log:
[DSE] add test for PR36129; NFC

We can miscompile because we're not checking is the memory might
me modified between the seemingly redundant store ops.

Modified:
    llvm/trunk/test/Transforms/DeadStoreElimination/merge-stores.ll

Modified: llvm/trunk/test/Transforms/DeadStoreElimination/merge-stores.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/DeadStoreElimination/merge-stores.ll?rev=323704&r1=323703&r2=323704&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/DeadStoreElimination/merge-stores.ll (original)
+++ llvm/trunk/test/Transforms/DeadStoreElimination/merge-stores.ll Mon Jan 29 14:50:08 2018
@@ -186,6 +186,21 @@ define void @PR34074(i32* %x, i64* %y) {
   ret void
 }
 
+; FIXME: We can't eliminate the last store because P and Q may alias.
+
+define void @PR36129(i32* %P, i32* %Q) {
+; CHECK-LABEL: @PR36129(
+; CHECK-NEXT:    store i32 3, i32* [[P:%.*]]
+; CHECK-NEXT:    store i32 2, i32* [[Q:%.*]]
+; CHECK-NEXT:    ret void
+;
+  store i32 1, i32* %P
+  %P2 = bitcast i32* %P to i8*
+  store i32 2, i32* %Q
+  store i8 3, i8* %P2
+  ret void
+}
+
 !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 5.0.0 (trunk 306512)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
 !1 = !DIFile(filename: "me.cpp", directory: "/compiler-explorer")
 !2 = !{}




More information about the llvm-commits mailing list