diff options
author | Daniel Dunbar <daniel@zuster.org> | 2013-01-16 18:39:23 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2013-01-16 18:39:23 +0000 |
commit | 0ec72bbc4ddf7a64cc709d5b05001f17a8b9fa90 (patch) | |
tree | 73a872b49d5e4d1587b1f25ad4458ba73751bb0d /llvm/test | |
parent | b5d9d630d87263766f71bcd3c3d9000b4dff4107 (diff) | |
download | bcm5719-llvm-0ec72bbc4ddf7a64cc709d5b05001f17a8b9fa90.tar.gz bcm5719-llvm-0ec72bbc4ddf7a64cc709d5b05001f17a8b9fa90.zip |
[Linker] Change module flag linking to be more extensible.
- Instead of computing a bunch of buckets of different flag types, just do an
incremental link resolving conflicts as they arise.
- This also has the advantage of making the link result deterministic and not
dependent on map iteration order.
llvm-svn: 172634
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/Linker/module-flags-1-a.ll | 4 | ||||
-rw-r--r-- | llvm/test/Linker/module-flags-3-a.ll | 8 | ||||
-rw-r--r-- | llvm/test/Linker/module-flags-7-a.ll | 9 | ||||
-rw-r--r-- | llvm/test/Linker/module-flags-7-b.ll | 6 |
4 files changed, 21 insertions, 6 deletions
diff --git a/llvm/test/Linker/module-flags-1-a.ll b/llvm/test/Linker/module-flags-1-a.ll index 973aa80822c..32f189cf99f 100644 --- a/llvm/test/Linker/module-flags-1-a.ll +++ b/llvm/test/Linker/module-flags-1-a.ll @@ -3,10 +3,10 @@ ; Test basic functionality of module flags. ; CHECK: !0 = metadata !{i32 1, metadata !"foo", i32 37} -; CHECK: !1 = metadata !{i32 1, metadata !"qux", i32 42} +; CHECK: !1 = metadata !{i32 2, metadata !"bar", i32 42} ; CHECK: !2 = metadata !{i32 1, metadata !"mux", metadata !3} ; CHECK: !3 = metadata !{metadata !"hello world", i32 927} -; CHECK: !4 = metadata !{i32 2, metadata !"bar", i32 42} +; CHECK: !4 = metadata !{i32 1, metadata !"qux", i32 42} ; CHECK: !llvm.module.flags = !{!0, !1, !2, !4} !0 = metadata !{ i32 1, metadata !"foo", i32 37 } diff --git a/llvm/test/Linker/module-flags-3-a.ll b/llvm/test/Linker/module-flags-3-a.ll index 4233a0a7a5b..e7a720e9c02 100644 --- a/llvm/test/Linker/module-flags-3-a.ll +++ b/llvm/test/Linker/module-flags-3-a.ll @@ -3,10 +3,10 @@ ; Test 'require' behavior. ; CHECK: !0 = metadata !{i32 1, metadata !"foo", i32 37} -; CHECK: !1 = metadata !{i32 3, metadata !"foo", metadata !2} -; CHECK: !2 = metadata !{metadata !"bar", i32 42} -; CHECK: !3 = metadata !{i32 1, metadata !"bar", i32 42} -; CHECK: !llvm.module.flags = !{!0, !1, !3} +; CHECK: !1 = metadata !{i32 1, metadata !"bar", i32 42} +; CHECK: !2 = metadata !{i32 3, metadata !"foo", metadata !3} +; CHECK: !3 = metadata !{metadata !"bar", i32 42} +; CHECK: !llvm.module.flags = !{!0, !1, !2} !0 = metadata !{ i32 1, metadata !"foo", i32 37 } !1 = metadata !{ i32 1, metadata !"bar", i32 42 } diff --git a/llvm/test/Linker/module-flags-7-a.ll b/llvm/test/Linker/module-flags-7-a.ll new file mode 100644 index 00000000000..976c8fecf5f --- /dev/null +++ b/llvm/test/Linker/module-flags-7-a.ll @@ -0,0 +1,9 @@ +; RUN: not llvm-link %s %p/module-flags-7-b.ll -S -o - 2>&1 | FileCheck %s + +; Test module flags error messages. + +; CHECK: linking module flags 'foo': IDs have conflicting behaviors + +!0 = metadata !{ i32 1, metadata !"foo", i32 37 } + +!llvm.module.flags = !{ !0 } diff --git a/llvm/test/Linker/module-flags-7-b.ll b/llvm/test/Linker/module-flags-7-b.ll new file mode 100644 index 00000000000..2bc72508d46 --- /dev/null +++ b/llvm/test/Linker/module-flags-7-b.ll @@ -0,0 +1,6 @@ +; This file is used with module-flags-7-a.ll +; RUN: true + +!0 = metadata !{ i32 2, metadata !"foo", i32 37 } + +!llvm.module.flags = !{ !0 } |