diff options
Diffstat (limited to 'test/NaCl/Bitcode/call-elide.ll')
-rw-r--r-- | test/NaCl/Bitcode/call-elide.ll | 134 |
1 files changed, 2 insertions, 132 deletions
diff --git a/test/NaCl/Bitcode/call-elide.ll b/test/NaCl/Bitcode/call-elide.ll index 4ddc235f7b..2f7d18d0ec 100644 --- a/test/NaCl/Bitcode/call-elide.ll +++ b/test/NaCl/Bitcode/call-elide.ll @@ -1,17 +1,10 @@ ; Test how we handle eliding pointers in call instructions. -; RUN: llvm-as < %s | pnacl-freeze --pnacl-version=1 \ -; RUN: | pnacl-bcanalyzer -dump-records \ -; RUN: | FileCheck %s -check-prefix=PF1 - -; RUN: llvm-as < %s | pnacl-freeze --pnacl-version=1 | pnacl-thaw \ -; RUN: | llvm-dis - | FileCheck %s -check-prefix=TD1 - -; RUN: llvm-as < %s | pnacl-freeze --pnacl-version=2 \ +; RUN: llvm-as < %s | pnacl-freeze \ ; RUN: | pnacl-bcanalyzer -dump-records \ ; RUN: | FileCheck %s -check-prefix=PF2 -; RUN: llvm-as < %s | pnacl-freeze --pnacl-version=2 | pnacl-thaw \ +; RUN: llvm-as < %s | pnacl-freeze | pnacl-thaw \ ; RUN: | llvm-dis - | FileCheck %s -check-prefix=TD2 ; ------------------------------------------------------ @@ -30,17 +23,6 @@ define void @DirectCall() { ret void } -; TD1: define void @DirectCall() { -; TD1-NEXT: call void @foo(i32 0) -; TD1-NEXT: ret void -; TD1-NEXT: } - -; PF1: <FUNCTION_BLOCK> -; PF1: </CONSTANTS_BLOCK> -; PF1-NEXT: <INST_CALL op0=0 op1=14 op2=1/> -; PF1-NEXT: <INST_RET/> -; PF1-NEXT: </FUNCTION_BLOCK> - ; TD2: define void @DirectCall() { ; TD2-NEXT: call void @foo(i32 0) ; TD2-NEXT: ret void @@ -62,19 +44,6 @@ define void @DirectCallIntToPtrArg(i32 %i) { ret void } -; TD1: define void @DirectCallIntToPtrArg(i32 %i) { -; TD1-NEXT: %1 = inttoptr i32 %i to i8* -; TD1-NEXT: %2 = call i32 @llvm.nacl.setjmp(i8* %1) -; TD1-NEXT: ret void -; TD1-NEXT: } - -; PF1: <FUNCTION_BLOCK> -; PF1-NEXT: <DECLAREBLOCKS op0=1/> -; PF1-NEXT: <INST_CAST op0=1 op1={{.*}} op2=10/> -; PF1-NEXT: <INST_CALL op0=0 op1=14 op2=1/> -; PF1-NEXT: <INST_RET/> -; PF1: </FUNCTION_BLOCK> - ; TD2: define void @DirectCallIntToPtrArg(i32 %i) { ; TD2-NEXT: %1 = inttoptr i32 %i to i8* ; TD2-NEXT: %2 = call i32 @llvm.nacl.setjmp(i8* %1) @@ -98,21 +67,6 @@ define void @DirectCallPtrToIntArg() { ret void } -; TD1: define void @DirectCallPtrToIntArg() { -; TD1-NEXT: %1 = alloca i8, i32 4, align 8 -; TD1-NEXT: %2 = ptrtoint i8* %1 to i32 -; TD1-NEXT: call void @foo(i32 %2) -; TD1-NEXT: ret void -; TD1-NEXT: } - -; PF1: <FUNCTION_BLOCK> -; PF1: </CONSTANTS_BLOCK> -; PF1-NEXT: <INST_ALLOCA op0=1 op1=4/> -; PF1-NEXT: <INST_CAST op0=1 op1=0 op2=9/> -; PF1-NEXT: <INST_CALL op0=0 op1=16 op2=1/> -; PF1-NEXT: <INST_RET/> -; PF1-NEXT: </FUNCTION_BLOCK> - ; TD2: define void @DirectCallPtrToIntArg() { ; TD2-NEXT: %1 = alloca i8, i32 4, align 8 ; TD2-NEXT: %2 = ptrtoint i8* %1 to i32 @@ -136,19 +90,6 @@ define void @DirectCallBitcastArg(i32 %i) { ret void } -; TD1: define void @DirectCallBitcastArg(i32 %i) { -; TD1-NEXT: %1 = bitcast [4 x i8]* @bytes to i8* -; TD1-NEXT: %2 = call i32 @llvm.nacl.setjmp(i8* %1) -; TD1-NEXT: ret void -; TD1-NEXT: } - -; PF1: <FUNCTION_BLOCK> -; PF1-NEXT: <DECLAREBLOCKS op0=1/> -; PF1-NEXT: <INST_CAST op0=2 op1={{.*}} op2=11/> -; PF1-NEXT: <INST_CALL op0=0 op1=14 op2=1/> -; PF1-NEXT: <INST_RET/> -; PF1: </FUNCTION_BLOCK> - ; TD2: define void @DirectCallBitcastArg(i32 %i) { ; TD2-NEXT: %1 = bitcast [4 x i8]* @bytes to i8* ; TD2-NEXT: %2 = call i32 @llvm.nacl.setjmp(i8* %1) @@ -170,19 +111,6 @@ define void @DirectCallScalarArg() { ret void } -; TD1: define void @DirectCallScalarArg() { -; TD1-NEXT: %1 = ptrtoint [4 x i8]* @bytes to i32 -; TD1-NEXT: call void @foo(i32 %1) -; TD1-NEXT: ret void -; TD1-NEXT: } - -; PF1: <FUNCTION_BLOCK> -; PF1-NEXT: <DECLAREBLOCKS op0=1/> -; PF1-NEXT: <INST_CAST op0=1 op1=0 op2=9/> -; PF1-NEXT: <INST_CALL op0=0 op1=14 op2=1/> -; PF1-NEXT: <INST_RET/> -; PF1: </FUNCTION_BLOCK> - ; TD2: define void @DirectCallScalarArg() { ; TD2-NEXT: %1 = ptrtoint [4 x i8]* @bytes to i32 ; TD2-NEXT: call void @foo(i32 %1) @@ -204,19 +132,6 @@ define void @IndirectCall(i32 %i) { ret void } -; TD1: define void @IndirectCall(i32 %i) { -; TD1-NEXT: %1 = inttoptr i32 %i to void (i32)* -; TD1-NEXT: call void %1(i32 %i) -; TD1-NEXT: ret void -; TD1-NEXT: } - -; PF1: <FUNCTION_BLOCK> -; PF1-NEXT: <DECLAREBLOCKS op0=1/> -; PF1-NEXT: <INST_CAST op0=1 op1=3 op2=10/> -; PF1-NEXT: <INST_CALL op0=0 op1=1 op2=2/> -; PF1-NEXT: <INST_RET/> -; PF1: </FUNCTION_BLOCK> - ; TD2: define void @IndirectCall(i32 %i) { ; TD2-NEXT: %1 = inttoptr i32 %i to void (i32)* ; TD2-NEXT: call void %1(i32 %i) @@ -240,23 +155,6 @@ define void @IndirectCallPtrToIntArg(i32 %i) { ret void } -; TD1: define void @IndirectCallPtrToIntArg(i32 %i) { -; TD1-NEXT: %1 = alloca i8, i32 4, align 8 -; TD1-NEXT: %2 = inttoptr i32 %i to void (i32)* -; TD1-NEXT: %3 = ptrtoint i8* %1 to i32 -; TD1-NEXT: call void %2(i32 %3) -; TD1-NEXT: ret void -; TD1-NEXT: } - -; PF1: <FUNCTION_BLOCK> -; PF1: </CONSTANTS_BLOCK> -; PF1-NEXT: <INST_ALLOCA op0=1 op1=4/> -; PF1-NEXT: <INST_CAST op0=3 op1=3 op2=10/> -; PF1-NEXT: <INST_CAST op0=2 op1=0 op2=9/> -; PF1-NEXT: <INST_CALL op0=0 op1=2 op2=1/> -; PF1-NEXT: <INST_RET/> -; PF1: </FUNCTION_BLOCK> - ; TD2: define void @IndirectCallPtrToIntArg(i32 %i) { ; TD2-NEXT: %1 = alloca i8, i32 4, align 8 ; TD2-NEXT: %2 = ptrtoint i8* %1 to i32 @@ -282,21 +180,6 @@ define void @IndirectCallScalarArg(i32 %i) { ret void } -; TD1: define void @IndirectCallScalarArg(i32 %i) { -; TD1-NEXT: %1 = inttoptr i32 %i to void (i32)* -; TD1-NEXT: %2 = ptrtoint [4 x i8]* @bytes to i32 -; TD1-NEXT: call void %1(i32 %2) -; TD1-NEXT: ret void -; TD1-NEXT: } - -; PF1: <FUNCTION_BLOCK> -; PF1-NEXT: <DECLAREBLOCKS op0=1/> -; PF1-NEXT: <INST_CAST op0=1 op1=3 op2=10/> -; PF1-NEXT: <INST_CAST op0=3 op1=0 op2=9/> -; PF1-NEXT: <INST_CALL op0=0 op1=2 op2=1/> -; PF1-NEXT: <INST_RET/> -; PF1: </FUNCTION_BLOCK> - ; TD2: define void @IndirectCallScalarArg(i32 %i) { ; TD2-NEXT: %1 = ptrtoint [4 x i8]* @bytes to i32 ; TD2-NEXT: %2 = inttoptr i32 %i to void (i32)* @@ -322,19 +205,6 @@ define i32 @ReturnPtrIntrinsic() { ret i32 %2 } -; TD1: define i32 @ReturnPtrIntrinsic() { -; TD1-NEXT: %1 = call i8* @llvm.nacl.read.tp() -; TD1-NEXT: %2 = ptrtoint i8* %1 to i32 -; TD1-NEXT: ret i32 %2 -; TD1-NEXT: } - -; PF1: <FUNCTION_BLOCK> -; PF1-NEXT: <DECLAREBLOCKS op0=1/> -; PF1-NEXT: <INST_CALL op0=0 op1=3/> -; PF1-NEXT: <INST_CAST op0=1 op1=0 op2=9/> -; PF1-NEXT: <INST_RET op0=1/> -; PF1-NEXT: </FUNCTION_BLOCK> - ; TD2: define i32 @ReturnPtrIntrinsic() { ; TD2-NEXT: %1 = call i8* @llvm.nacl.read.tp() ; TD2-NEXT: %2 = ptrtoint i8* %1 to i32 |