mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-26 22:26:16 +00:00
6cb8c23db1
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112190 91177308-0d34-0410-b5e6-96231b3b80d8
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}
|