mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
8088d5e31d
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
16 lines
467 B
LLVM
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}
|