llvm-mirror/test/Linker/metadata-a.ll
Dan Gohman 8088d5e31d Reapply r112091 and r111922, support for metadata linking, with a
fix: add a flag to MapValue and friends which indicates whether
any module-level mappings are being made. In the common case of
inlining, no module-level mappings are needed, so MapValue doesn't
need to examine non-function-local metadata, which can be very
expensive in the case of a large module with really deep metadata
(e.g. a large C++ program compiled with -g).

This flag is a little awkward; perhaps eventually it can be moved
into the ClonedCodeInfo class.

llvm-svn: 112190
2010-08-26 15:41:53 +00:00

16 lines
467 B
LLVM

; RUN: llvm-link %s %p/metadata-b.ll -S -o - | FileCheck %s
; CHECK: define void @foo(i32 %a)
; CHECK: ret void, !attach !0, !also !{i32 %a}
; CHECK: define void @goo(i32 %b)
; CHECK: ret void, !attach !1, !and !{i32 %b}
; CHECK: !0 = metadata !{i32 524334, void (i32)* @foo}
; CHECK: !1 = metadata !{i32 524334, void (i32)* @goo}
define void @foo(i32 %a) nounwind {
entry:
ret void, !attach !0, !also !{ i32 %a }
}
!0 = metadata !{i32 524334, void (i32)* @foo}