32 lines
		
	
	
		
			937 B
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			937 B
		
	
	
	
		
			LLVM
		
	
	
	
| ; Ensure calling bypassing the driver with -fembed-bitcode embeds bitcode pre-
 | |
| ; optimizations
 | |
| ; REQUIRES: x86-registered-target
 | |
| 
 | |
| ; RUN: %clang_cc1 -O2 -triple x86_64-unknown-linux-gnu -emit-obj %s -o %t.o -fembed-bitcode=all
 | |
| ; RUN: llvm-objcopy --dump-section=.llvmbc=%t.bc %t.o /dev/null
 | |
| 
 | |
| ; Also check that the .llvmcmd section captures the optimization options.
 | |
| ; RUN: llvm-dis %t.bc -o - | FileCheck %s --check-prefix=CHECK-BC
 | |
| ; RUN: llvm-objcopy --dump-section=.llvmcmd=- %t.o /dev/null | FileCheck %s --check-prefix=CHECK-CMD
 | |
| 
 | |
| ; CHECK-BC-LABEL: define void @bar() #0 {
 | |
| ; CHECK-BC-NEXT:  ret void  
 | |
| ; CHECK-BC-NEXT: }
 | |
| ; CHECK-BC-LABEL: define void @foo() {
 | |
| ; CHECK-BC-NEXT: call void @bar()
 | |
| ; CHECK-BC-NEXT: ret void
 | |
| ; CHECK-BC-NEXT: }
 | |
| ; CHECK-BC-LABEL: attributes #0 = { alwaysinline }
 | |
| ; CHECK-CMD: -O2
 | |
| 
 | |
| define void @bar() #0 {
 | |
|     ret void
 | |
| }
 | |
| 
 | |
| define void @foo() {
 | |
|   call void @bar()
 | |
|   ret void
 | |
| }
 | |
| 
 | |
| attributes #0 = { alwaysinline }
 |