mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-25 00:29:20 +00:00
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}
|