diff options
author | Victor Hernandez <vhernandez@apple.com> | 2010-01-15 19:04:09 +0000 |
---|---|---|
committer | Victor Hernandez <vhernandez@apple.com> | 2010-01-15 19:04:09 +0000 |
commit | 3a32865d58f015e7058444eab7085195c34da95a (patch) | |
tree | 4f6fd059942b2a5290ec3380adb686cca69f58c9 /test/Assembler | |
parent | 3752d2fe34a8d576203f8034baeabb02e65c87bc (diff) | |
download | external_llvm-3a32865d58f015e7058444eab7085195c34da95a.zip external_llvm-3a32865d58f015e7058444eab7085195c34da95a.tar.gz external_llvm-3a32865d58f015e7058444eab7085195c34da95a.tar.bz2 |
Improve llvm.dbg.declare intrinsic by referring directly to the storage in its first argument, via function-local metadata (instead of via a bitcast).
This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare.
It also strips old llvm.dbg.declare intrinsics that did not pass metadata as the first argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93531 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Assembler')
-rw-r--r-- | test/Assembler/functionlocal-metadata.ll | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/test/Assembler/functionlocal-metadata.ll b/test/Assembler/functionlocal-metadata.ll index 9d83304..16bc9d0 100644 --- a/test/Assembler/functionlocal-metadata.ll +++ b/test/Assembler/functionlocal-metadata.ll @@ -5,23 +5,28 @@ entry: %0 = add i32 %a, 1 ; <i32> [#uses=1] %two = add i32 %b, %0 ; <i32> [#uses=0] %1 = alloca i32 ; <i32*> [#uses=1] - %three = bitcast i32* %1 to { }* ; <{ }*> [#uses=6] - call void @llvm.dbg.declare({ }* %three, metadata !{i32* %1}) -; CHECK: metadata !{i32* %1} - call void @llvm.dbg.declare({ }* %three, metadata !{{ }* %three}) - call void @llvm.dbg.declare({ }* %three, metadata !{i32 %0}) - call void @llvm.dbg.declare({ }* %three, metadata !{{ }* %three, i32 %0}) - call void @llvm.dbg.declare({ }* %three, metadata !{i32 %b, i32 %0}) - call void @llvm.dbg.declare({ }* %three, metadata !{i32 %a, metadata !"foo"}) -; CHECK: metadata !{i32 %a, metadata !"foo"} - call void @llvm.dbg.declare({ }* %three, metadata !{metadata !0, i32 %two}) + call void @llvm.dbg.declare(metadata !{i32* %1}, metadata !{i32* %1}) +; CHECK: metadata !{i32* %1}, metadata !{i32* %1} + call void @llvm.dbg.declare(metadata !{i32 %two}, metadata !{i32 %0}) +; CHECK: metadata !{i32 %two}, metadata !{i32 %0} + call void @llvm.dbg.declare(metadata !{i32 %0}, metadata !{i32* %1, i32 %0}) +; CHECK: metadata !{i32 %0}, metadata !{i32* %1, i32 %0} + call void @llvm.dbg.declare(metadata !{i32* %1}, metadata !{i32 %b, i32 %0}) +; CHECK: metadata !{i32* %1}, metadata !{i32 %b, i32 %0} + call void @llvm.dbg.declare(metadata !{i32 %a}, metadata !{i32 %a, metadata !"foo"}) +; CHECK: metadata !{i32 %a}, metadata !{i32 %a, metadata !"foo"} + call void @llvm.dbg.declare(metadata !{i32 %b}, metadata !{metadata !0, i32 %two}) +; CHECK: metadata !{i32 %b}, metadata !{metadata !0, i32 %two} call void @llvm.dbg.value(metadata !{ i32 %a }, i64 0, metadata !1) +; CHECK: metadata !{i32 %a}, i64 0, metadata !1 call void @llvm.dbg.value(metadata !{ i32 %0 }, i64 25, metadata !0) +; CHECK: metadata !{i32 %0}, i64 25, metadata !0 call void @llvm.dbg.value(metadata !{ i32* %1 }, i64 16, metadata !"foo") ; CHECK: call void @llvm.dbg.value(metadata !{i32* %1}, i64 16, metadata !"foo") - call void @llvm.dbg.value(metadata !{ { }* %three }, i64 12, metadata !"bar") + call void @llvm.dbg.value(metadata !"foo", i64 12, metadata !"bar") +; CHECK: metadata !"foo", i64 12, metadata !"bar" ret void, !foo !0, !bar !1 ; CHECK: ret void, !foo !0, !bar !1 @@ -30,7 +35,7 @@ entry: !0 = metadata !{i32 662302, i32 26, metadata !1, null} !1 = metadata !{i32 4, metadata !"foo"} -declare void @llvm.dbg.declare({ }*, metadata) nounwind readnone +declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone !foo = !{ !0 } |