mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-31 08:16:47 +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}
 |