diff options
author | Dehao Chen <dehao@google.com> | 2016-10-17 19:28:44 +0000 |
---|---|---|
committer | Dehao Chen <dehao@google.com> | 2016-10-17 19:28:44 +0000 |
commit | 018a3afa99573586646e36d6e3e20e59975466bb (patch) | |
tree | 109e2b84ff4f34004848f20829e3a016b6c937fe /llvm/test/Transforms/SimplifyCFG/sink-common-code.ll | |
parent | d6d2bafacc8a2fb1056a24bf52ae7044564f9fe8 (diff) | |
download | bcm5719-llvm-018a3afa99573586646e36d6e3e20e59975466bb.tar.gz bcm5719-llvm-018a3afa99573586646e36d6e3e20e59975466bb.zip |
Ignore debug info when making optimization decisions in SimplifyCFG.
Summary: Debug info should *not* affect code generation. This patch properly handles debug info to make sure the generated code are the same with or without debug info.
Reviewers: davidxl, mzolotukhin, jmolloy
Subscribers: aprantl, llvm-commits
Differential Revision: https://reviews.llvm.org/D25286
llvm-svn: 284415
Diffstat (limited to 'llvm/test/Transforms/SimplifyCFG/sink-common-code.ll')
-rw-r--r-- | llvm/test/Transforms/SimplifyCFG/sink-common-code.ll | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/llvm/test/Transforms/SimplifyCFG/sink-common-code.ll b/llvm/test/Transforms/SimplifyCFG/sink-common-code.ll index a2639d89f82..953d96edada 100644 --- a/llvm/test/Transforms/SimplifyCFG/sink-common-code.ll +++ b/llvm/test/Transforms/SimplifyCFG/sink-common-code.ll @@ -340,7 +340,7 @@ if.end: ; CHECK-LABEL: test13 ; CHECK-DAG: select ; CHECK-DAG: load volatile -; CHECK: store volatile {{.*}}, !tbaa !0 +; CHECK: store volatile {{.*}}, !tbaa ![[TBAA:[0-9]]] ; CHECK-NOT: load ; CHECK-NOT: store @@ -384,6 +384,7 @@ if.else: %gepb = getelementptr inbounds %struct.anon, %struct.anon* %s, i32 0, i32 1 %sv2 = load i32, i32* %gepb %cmp2 = icmp eq i32 %sv2, 57 + call void @llvm.dbg.value(metadata i32 0, i64 0, metadata !9, metadata !DIExpression()), !dbg !11 br label %if.end if.end: @@ -391,6 +392,18 @@ if.end: ret i32 1 } +declare void @llvm.dbg.value(metadata, i64, metadata, metadata) +!llvm.module.flags = !{!5, !6} +!llvm.dbg.cu = !{!7} + +!5 = !{i32 2, !"Dwarf Version", i32 4} +!6 = !{i32 2, !"Debug Info Version", i32 3} +!7 = distinct !DICompileUnit(language: DW_LANG_C99, file: !10) +!8 = distinct !DISubprogram(name: "foo", unit: !7) +!9 = !DILocalVariable(name: "b", line: 1, arg: 2, scope: !8) +!10 = !DIFile(filename: "a.c", directory: "a/b") +!11 = !DILocation(line: 1, column: 14, scope: !8) + ; CHECK-LABEL: test14 ; CHECK: getelementptr ; CHECK: load @@ -781,6 +794,6 @@ merge: ; CHECK: right: ; CHECK-NEXT: %val1 = call i32 @call_target() [ "deopt"(i32 20) ] -; CHECK: !0 = !{!1, !1, i64 0} -; CHECK: !1 = !{!"float", !2} -; CHECK: !2 = !{!"an example type tree"} +; CHECK: ![[TBAA]] = !{![[TYPE:[0-9]]], ![[TYPE]], i64 0} +; CHECK: ![[TYPE]] = !{!"float", ![[TEXT:[0-9]]]} +; CHECK: ![[TEXT]] = !{!"an example type tree"} |