70 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llvm-as < %s | llvm-dis > %t1.ll
 | |
| ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
 | |
| ; RUN: diff %t1.ll %t2.ll
 | |
| 
 | |
| define fastcc void @foo() {
 | |
|         ret void
 | |
| }
 | |
| 
 | |
| define coldcc void @bar() {
 | |
|         call fastcc void @foo( )
 | |
|         ret void
 | |
| }
 | |
| 
 | |
| define void @structret({ i8 }* sret  %P) {
 | |
|         call void @structret( { i8 }* sret  %P )
 | |
|         ret void
 | |
| }
 | |
| 
 | |
| define void @foo2() {
 | |
|         ret void
 | |
| }
 | |
| 
 | |
| define coldcc void @bar2() {
 | |
|         call fastcc void @foo( )
 | |
|         ret void
 | |
| }
 | |
| 
 | |
| define cc42 void @bar3() personality i32 (...)* @__gxx_personality_v0 {
 | |
|   invoke fastcc void @foo( )
 | |
|     to label %Ok unwind label %U
 | |
| 
 | |
| Ok:
 | |
|   ret void
 | |
| 
 | |
| U:
 | |
|   %exn = landingpad {i8*, i32}
 | |
|             cleanup
 | |
|   resume { i8*, i32 } %exn
 | |
| }
 | |
| 
 | |
| define void @bar4() personality i32 (...)* @__gxx_personality_v0 {
 | |
|   call cc42 void @bar( )
 | |
|   invoke cc42 void @bar3( )
 | |
|     to label %Ok unwind label %U
 | |
| 
 | |
| Ok:
 | |
|   ret void
 | |
| 
 | |
| U:
 | |
|   %exn = landingpad {i8*, i32}
 | |
|             cleanup
 | |
|   resume { i8*, i32 } %exn
 | |
| }
 | |
| 
 | |
| declare ghccc void @ghc_callee()
 | |
| 
 | |
| define void @ghc_caller() {
 | |
|   call ghccc void @ghc_callee()
 | |
|   ret void
 | |
| }
 | |
| 
 | |
| declare hhvm_ccc void @hhvm_c_callee()
 | |
| 
 | |
| define hhvmcc void @hhvm_caller() {
 | |
|   call hhvm_ccc void @hhvm_c_callee()
 | |
|   ret void
 | |
| }
 | |
| 
 | |
| declare i32 @__gxx_personality_v0(...)
 |