[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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172634 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar
2013-01-16 18:39:23 +00:00
parent 75c9b9384f
commit 1e08165ae9
5 changed files with 117 additions and 138 deletions

View File

@@ -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 }