mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-25 10:27:04 +00:00
Remove the LowerSetJmp pass. It wasn't used effectively by any of the targets.
This is some of my original LLVM code. *wipes tear* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136821 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1,16 +0,0 @@
|
||||
; RUN: opt < %s -lowersetjmp -disable-output
|
||||
|
||||
%struct.jmpenv = type { i32, i8 }
|
||||
|
||||
declare void @Perl_sv_setpv()
|
||||
|
||||
declare i32 @llvm.setjmp(i32*)
|
||||
|
||||
define void @perl_call_sv() {
|
||||
call void @Perl_sv_setpv( )
|
||||
%tmp.335 = getelementptr %struct.jmpenv* null, i64 0, i32 0 ; <i32*> [#uses=1]
|
||||
%tmp.336 = call i32 @llvm.setjmp( i32* null ) ; <i32> [#uses=1]
|
||||
store i32 %tmp.336, i32* %tmp.335
|
||||
ret void
|
||||
}
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
load_lib llvm.exp
|
||||
|
||||
RunLLVMTests [lsort [glob -nocomplain $srcdir/$subdir/*.{ll,c,cpp}]]
|
||||
@@ -1,31 +0,0 @@
|
||||
; RUN: opt < %s -lowersetjmp -S | grep invoke
|
||||
|
||||
@.str_1 = internal constant [13 x i8] c"returned %d\0A\00" ; <[13 x i8]*> [#uses=1]
|
||||
|
||||
declare void @llvm.longjmp(i32*, i32)
|
||||
|
||||
declare i32 @llvm.setjmp(i32*)
|
||||
|
||||
declare void @foo()
|
||||
|
||||
define i32 @simpletest() {
|
||||
%B = alloca i32 ; <i32*> [#uses=2]
|
||||
%Val = call i32 @llvm.setjmp( i32* %B ) ; <i32> [#uses=2]
|
||||
%V = icmp ne i32 %Val, 0 ; <i1> [#uses=1]
|
||||
br i1 %V, label %LongJumped, label %Normal
|
||||
Normal: ; preds = %0
|
||||
call void @foo( )
|
||||
call void @llvm.longjmp( i32* %B, i32 42 )
|
||||
ret i32 0
|
||||
LongJumped: ; preds = %0
|
||||
ret i32 %Val
|
||||
}
|
||||
|
||||
declare i32 @printf(i8*, ...)
|
||||
|
||||
define i32 @main() {
|
||||
%V = call i32 @simpletest( ) ; <i32> [#uses=1]
|
||||
call i32 (i8*, ...)* @printf( i8* getelementptr ([13 x i8]* @.str_1, i64 0, i64 0), i32 %V ) ; <i32>:1 [#uses=0]
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user