Home | History | Annotate | Download | only in Inline
      1 ; RUN: opt -inline -S < %s | FileCheck %s
      2 
      3 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
      4 target triple = "i386-apple-darwin10.0"
      5 
      6 ; rdar://10853263
      7 
      8 ; Make sure that the callee is still here.
      9 ; CHECK-LABEL: define i32 @callee(
     10 define i32 @callee(i32 %param) {
     11  %yyy = alloca [100000 x i8]
     12  %r = bitcast [100000 x i8]* %yyy to i8*
     13  call void @foo2(i8* %r)
     14  ret i32 4
     15 }
     16 
     17 ; CHECK-LABEL: define i32 @caller(
     18 ; CHECK-NEXT: entry:
     19 ; CHECK-NOT: alloca
     20 ; CHECK: ret
     21 define i32 @caller(i32 %param) {
     22 entry:
     23   %t = call i32 @foo(i32 %param)
     24   %cmp = icmp eq i32 %t, -1
     25   br i1 %cmp, label %exit, label %cont
     26 
     27 cont:
     28   %r = call i32 @caller(i32 %t)
     29   %f = call i32 @callee(i32 %r)
     30   br label %cont
     31 exit:
     32   ret i32 4
     33 }
     34 
     35 declare void @foo2(i8* %in)
     36 
     37 declare i32 @foo(i32 %param)
     38 
     39