Home | History | Annotate | Download | only in remote
      1 ; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -disable-lazy-compilation=false -mcjit-remote-process=lli-child-target%exeext %s
      2 ; XFAIL: mingw32,win32
      3 ; UNSUPPORTED: powerpc64-unknown-linux-gnu
      4 ; Remove UNSUPPORTED for powerpc64-unknown-linux-gnu if problem caused by r266663 is fixed
      5 
      6 define i32 @main() nounwind {
      7 entry:
      8 	call void @lazily_compiled_address_is_consistent()
      9 	ret i32 0
     10 }
     11 
     12 ; Test PR3043: @test should have the same address before and after
     13 ; it's JIT-compiled.
     14 @funcPtr = common global i1 ()* null, align 4
     15 @lcaic_failure = internal constant [46 x i8] c"@lazily_compiled_address_is_consistent failed\00"
     16 
     17 define void @lazily_compiled_address_is_consistent() nounwind {
     18 entry:
     19 	store i1 ()* @test, i1 ()** @funcPtr
     20 	%pass = tail call i1 @test()		; <i32> [#uses=1]
     21 	br i1 %pass, label %pass_block, label %fail_block
     22 pass_block:
     23 	ret void
     24 fail_block:
     25 	call i32 @puts(i8* getelementptr([46 x i8], [46 x i8]* @lcaic_failure, i32 0, i32 0))
     26 	call void @exit(i32 1)
     27 	unreachable
     28 }
     29 
     30 define i1 @test() nounwind {
     31 entry:
     32 	%tmp = load i1 ()*, i1 ()** @funcPtr
     33 	%eq = icmp eq i1 ()* %tmp, @test
     34 	ret i1 %eq
     35 }
     36 
     37 declare i32 @puts(i8*) noreturn
     38 declare void @exit(i32) noreturn
     39