mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-27 13:30:05 +00:00
[Orc][lli] Add a very simple Orc-based lazy JIT to lli.
This ensures that we're building and testing the CompileOnDemand layer, at least in a basic way. Currently x86-64 only, and with limited to no library calls enabled (depending on host platform). Patches welcome. ;) To enable access to the lazy JIT, this patch replaces the '-use-orcmcjit' lli option with a new option: '-jit-kind={ mcjit | orc-mcjit | orc-lazy }'. All regression tests are updated to use the new option, and one trivial test of the new lazy JIT is added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233182 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3132115738
commit
47fd5639bc
@ -193,8 +193,8 @@ public:
|
||||
/// below this one.
|
||||
JITSymbol findSymbolIn(ModuleSetHandleT H, const std::string &Name,
|
||||
bool ExportedSymbolsOnly) {
|
||||
BaseLayerModuleSetHandleListT &BaseLayerHandles = H->second;
|
||||
for (auto &BH : BaseLayerHandles) {
|
||||
|
||||
for (auto &BH : H->BaseLayerModuleSetHandles) {
|
||||
if (auto Symbol = BaseLayer.findSymbolIn(BH, Name, ExportedSymbolsOnly))
|
||||
return Symbol;
|
||||
}
|
||||
|
@ -1,9 +0,0 @@
|
||||
; RUN: %lli -use-orcmcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll %s > /dev/null
|
||||
|
||||
declare i32 @FB()
|
||||
|
||||
define i32 @main() {
|
||||
%r = call i32 @FB( ) ; <i32> [#uses=1]
|
||||
ret i32 %r
|
||||
}
|
||||
|
@ -1,10 +0,0 @@
|
||||
; RUN: %lli -use-orcmcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -relocation-model=pic -code-model=small %s > /dev/null
|
||||
; XFAIL: mips, i686, i386
|
||||
|
||||
declare i32 @FB()
|
||||
|
||||
define i32 @main() {
|
||||
%r = call i32 @FB( ) ; <i32> [#uses=1]
|
||||
ret i32 %r
|
||||
}
|
||||
|
@ -1,12 +0,0 @@
|
||||
; RUN: %lli -use-orcmcjit -extra-module=%p/Inputs/cross-module-b.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null
|
||||
|
||||
declare i32 @FB()
|
||||
|
||||
define i32 @FA() nounwind {
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
define i32 @main() nounwind {
|
||||
%r = call i32 @FB( ) ; <i32> [#uses=1]
|
||||
ret i32 %r
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
; RUN: %lli -use-orcmcjit -extra-module=%p/Inputs/cross-module-b.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext -relocation-model=pic -code-model=small %s > /dev/null
|
||||
; XFAIL: mips, i686, i386, arm
|
||||
|
||||
declare i32 @FB()
|
||||
|
||||
define i32 @FA() {
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
define i32 @main() {
|
||||
%r = call i32 @FB( ) ; <i32> [#uses=1]
|
||||
ret i32 %r
|
||||
}
|
||||
|
@ -1,9 +0,0 @@
|
||||
; RUN: %lli -use-orcmcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null
|
||||
|
||||
declare i32 @FB()
|
||||
|
||||
define i32 @main() nounwind {
|
||||
%r = call i32 @FB( ) ; <i32> [#uses=1]
|
||||
ret i32 %r
|
||||
}
|
||||
|
@ -1,10 +0,0 @@
|
||||
; RUN: %lli -use-orcmcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext -relocation-model=pic -code-model=small %s > /dev/null
|
||||
; XFAIL: mips, i686, i386, arm
|
||||
|
||||
declare i32 @FB()
|
||||
|
||||
define i32 @main() {
|
||||
%r = call i32 @FB( ) ; <i32> [#uses=1]
|
||||
ret i32 %r
|
||||
}
|
||||
|
@ -1,6 +0,0 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
|
||||
define i32 @main() {
|
||||
ret i32 0
|
||||
}
|
||||
|
2
test/ExecutionEngine/OrcLazy/lit.local.cfg
Normal file
2
test/ExecutionEngine/OrcLazy/lit.local.cfg
Normal file
@ -0,0 +1,2 @@
|
||||
if config.root.host_arch not in ['x86_64']:
|
||||
config.unsupported = True
|
25
test/ExecutionEngine/OrcLazy/trivial_retval_1.ll
Normal file
25
test/ExecutionEngine/OrcLazy/trivial_retval_1.ll
Normal file
@ -0,0 +1,25 @@
|
||||
; RUN: lli -jit-kind=orc-lazy %s; [ $? -eq 30 ]
|
||||
define i32 @baz() {
|
||||
entry:
|
||||
ret i32 2
|
||||
}
|
||||
|
||||
define i32 @bar() {
|
||||
entry:
|
||||
%call = call i32 @baz()
|
||||
%mul = mul nsw i32 3, %call
|
||||
ret i32 %mul
|
||||
}
|
||||
|
||||
define i32 @foo() {
|
||||
entry:
|
||||
%call = call i32 @bar()
|
||||
%mul = mul nsw i32 5, %call
|
||||
ret i32 %mul
|
||||
}
|
||||
|
||||
define i32 @main(i32 %argc, i8** %argv) {
|
||||
entry:
|
||||
%call = call i32 @foo()
|
||||
ret i32 %call
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
@.LC0 = internal global [10 x i8] c"argc: %d\0A\00" ; <[10 x i8]*> [#uses=1]
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @foo(i32 %X, i32 %Y, double %A) {
|
||||
%cond212 = fcmp une double %A, 1.000000e+00 ; <i1> [#uses=1]
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @main() {
|
||||
call i32 @mylog( i32 4 ) ; <i32>:1 [#uses=0]
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @main() {
|
||||
; <label>:0
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
; We were accidentally inverting the signedness of right shifts. Whoops.
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @main() {
|
||||
%X = fadd double 0.000000e+00, 1.000000e+00 ; <double> [#uses=1]
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @bar(i8* %X) {
|
||||
; pointer should be 4 byte aligned!
|
@ -1,6 +1,6 @@
|
||||
; This testcase should return with an exit code of 1.
|
||||
;
|
||||
; RUN: not %lli -use-orcmcjit %s
|
||||
; RUN: not %lli -jit-kind=orc-mcjit %s
|
||||
|
||||
@test = global i64 0 ; <i64*> [#uses=1]
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s test
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s test
|
||||
|
||||
declare i32 @puts(i8*)
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @main() {
|
||||
entry:
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
; Testcase distilled from 256.bzip2.
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
; Testcase distilled from 256.bzip2.
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
; This testcase failed to work because two variable sized allocas confused the
|
||||
; local register allocator.
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
;
|
||||
; Regression Test: EnvironmentTest.ll
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
; This testcase exposes a bug in the local register allocator where it runs out
|
||||
; of registers (due to too many overlapping live ranges), but then attempts to
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
@A = global i32 0 ; <i32*> [#uses=1]
|
||||
|
@ -1,5 +1,5 @@
|
||||
; PR672
|
||||
; RUN: %lli -use-orcmcjit %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s
|
||||
; XFAIL: mcjit-ia32
|
||||
|
||||
define i32 @main() {
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -force-interpreter %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -force-interpreter %s
|
||||
; PR1836
|
||||
|
||||
define i32 @main() {
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -force-interpreter=true %s | FileCheck %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -force-interpreter=true %s | FileCheck %s
|
||||
; CHECK: 1
|
||||
|
||||
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:32:32"
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s
|
||||
;
|
||||
; Verify relocations to global symbols with addend work correctly.
|
||||
;
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -extra-module=%p/Inputs/cross-module-b.ll %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/cross-module-b.ll %s > /dev/null
|
||||
|
||||
declare i32 @FB()
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -extra-module=%p/Inputs/cross-module-b.ll -relocation-model=pic -code-model=small %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/cross-module-b.ll -relocation-model=pic -code-model=small %s > /dev/null
|
||||
; XFAIL: mips, i686, i386
|
||||
|
||||
declare i32 @FB()
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -relocation-model=pic -code-model=large %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -relocation-model=pic -code-model=large %s
|
||||
; XFAIL: cygwin, win32, mingw, mips, i686, i386, aarch64, arm, asan, msan
|
||||
declare i8* @__cxa_allocate_exception(i64)
|
||||
declare void @__cxa_throw(i8*, i8*, i8*)
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -relocation-model=pic -code-model=small %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -relocation-model=pic -code-model=small %s
|
||||
; XFAIL: cygwin, win32, mingw, mips, i686, i386, darwin, aarch64, arm, asan, msan
|
||||
declare i8* @__cxa_allocate_exception(i64)
|
||||
declare void @__cxa_throw(i8*, i8*, i8*)
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s
|
||||
; XFAIL: arm, cygwin, win32, mingw, asan, msan
|
||||
declare i8* @__cxa_allocate_exception(i64)
|
||||
declare void @__cxa_throw(i8*, i8*, i8*)
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -force-interpreter=true %s | FileCheck %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -force-interpreter=true %s | FileCheck %s
|
||||
; CHECK: 40091eb8
|
||||
|
||||
define i32 @test(double %x) {
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -relocation-model=pic -code-model=small %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit -relocation-model=pic -code-model=small %s > /dev/null
|
||||
; XFAIL: mips, i686, i386, darwin, aarch64, arm
|
||||
|
||||
@.LC0 = internal global [12 x i8] c"Hello World\00" ; <[12 x i8]*> [#uses=1]
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
@.LC0 = internal global [12 x i8] c"Hello World\00" ; <[12 x i8]*> [#uses=1]
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
@X = global i32 7 ; <i32*> [#uses=0]
|
||||
@msg = internal global [13 x i8] c"Hello World\0A\00" ; <[13 x i8]*> [#uses=1]
|
@ -1,20 +1,20 @@
|
||||
; This first line will generate the .o files for the next run line
|
||||
; RUN: rm -rf %t.cachedir %t.cachedir2 %t.cachedir3
|
||||
; RUN: mkdir -p %t.cachedir %t.cachedir2 %t.cachedir3
|
||||
; RUN: %lli -use-orcmcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -enable-cache-manager -object-cache-dir=%t.cachedir %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -enable-cache-manager -object-cache-dir=%t.cachedir %s
|
||||
|
||||
; Collect generated objects.
|
||||
; RUN: find %t.cachedir -type f -name 'multi-module-?.o' -exec mv -v '{}' %t.cachedir2 ';'
|
||||
|
||||
; This line tests MCJIT object loading
|
||||
; RUN: %lli -use-orcmcjit -extra-object=%t.cachedir2/multi-module-b.o -extra-object=%t.cachedir2/multi-module-c.o %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -extra-object=%t.cachedir2/multi-module-b.o -extra-object=%t.cachedir2/multi-module-c.o %s
|
||||
|
||||
; These lines put the object files into an archive
|
||||
; RUN: llvm-ar r %t.cachedir3/load-object.a %t.cachedir2/multi-module-b.o
|
||||
; RUN: llvm-ar r %t.cachedir3/load-object.a %t.cachedir2/multi-module-c.o
|
||||
|
||||
; This line test MCJIT archive loading
|
||||
; RUN: %lli -use-orcmcjit -extra-archive=%t.cachedir3/load-object.a %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -extra-archive=%t.cachedir3/load-object.a %s
|
||||
|
||||
declare i32 @FB()
|
||||
|
9
test/ExecutionEngine/OrcMCJIT/multi-module-a.ll
Normal file
9
test/ExecutionEngine/OrcMCJIT/multi-module-a.ll
Normal file
@ -0,0 +1,9 @@
|
||||
; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll %s > /dev/null
|
||||
|
||||
declare i32 @FB()
|
||||
|
||||
define i32 @main() {
|
||||
%r = call i32 @FB( ) ; <i32> [#uses=1]
|
||||
ret i32 %r
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -extra-module=%p/Inputs/multi-module-eh-b.ll %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/multi-module-eh-b.ll %s
|
||||
; XFAIL: arm, cygwin, win32, mingw, asan, msan
|
||||
declare i8* @__cxa_allocate_exception(i64)
|
||||
declare void @__cxa_throw(i8*, i8*, i8*)
|
10
test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll
Normal file
10
test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll
Normal file
@ -0,0 +1,10 @@
|
||||
; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -relocation-model=pic -code-model=small %s > /dev/null
|
||||
; XFAIL: mips, i686, i386
|
||||
|
||||
declare i32 @FB()
|
||||
|
||||
define i32 @main() {
|
||||
%r = call i32 @FB( ) ; <i32> [#uses=1]
|
||||
ret i32 %r
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @foo(i32 %x, i32 %y, double %d) {
|
||||
entry:
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -O0 -disable-lazy-compilation=false %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -O0 -disable-lazy-compilation=false %s
|
||||
|
||||
; The intention of this test is to verify that symbols mapped to COMMON in ELF
|
||||
; work as expected.
|
12
test/ExecutionEngine/OrcMCJIT/remote/cross-module-a.ll
Normal file
12
test/ExecutionEngine/OrcMCJIT/remote/cross-module-a.ll
Normal file
@ -0,0 +1,12 @@
|
||||
; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/cross-module-b.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null
|
||||
|
||||
declare i32 @FB()
|
||||
|
||||
define i32 @FA() nounwind {
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
define i32 @main() nounwind {
|
||||
%r = call i32 @FB( ) ; <i32> [#uses=1]
|
||||
ret i32 %r
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/cross-module-b.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext -relocation-model=pic -code-model=small %s > /dev/null
|
||||
; XFAIL: mips, i686, i386, arm
|
||||
|
||||
declare i32 @FB()
|
||||
|
||||
define i32 @FA() {
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
define i32 @main() {
|
||||
%r = call i32 @FB( ) ; <i32> [#uses=1]
|
||||
ret i32 %r
|
||||
}
|
||||
|
9
test/ExecutionEngine/OrcMCJIT/remote/multi-module-a.ll
Normal file
9
test/ExecutionEngine/OrcMCJIT/remote/multi-module-a.ll
Normal file
@ -0,0 +1,9 @@
|
||||
; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null
|
||||
|
||||
declare i32 @FB()
|
||||
|
||||
define i32 @main() nounwind {
|
||||
%r = call i32 @FB( ) ; <i32> [#uses=1]
|
||||
ret i32 %r
|
||||
}
|
||||
|
@ -0,0 +1,10 @@
|
||||
; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -disable-lazy-compilation=true -remote-mcjit -mcjit-remote-process=lli-child-target%exeext -relocation-model=pic -code-model=small %s > /dev/null
|
||||
; XFAIL: mips, i686, i386, arm
|
||||
|
||||
declare i32 @FB()
|
||||
|
||||
define i32 @main() {
|
||||
%r = call i32 @FB( ) ; <i32> [#uses=1]
|
||||
ret i32 %r
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null
|
||||
|
||||
define i32 @bar() nounwind {
|
||||
ret i32 0
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -remote-mcjit -disable-lazy-compilation=false -mcjit-remote-process=lli-child-target%exeext %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -disable-lazy-compilation=false -mcjit-remote-process=lli-child-target%exeext %s
|
||||
; XFAIL: *
|
||||
; This test should fail until remote symbol resolution is supported.
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -remote-mcjit -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s
|
||||
; XFAIL: *
|
||||
; This function should fail until remote symbol resolution is supported.
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -remote-mcjit -O0 -disable-lazy-compilation=false -mcjit-remote-process=lli-child-target%exeext %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -O0 -disable-lazy-compilation=false -mcjit-remote-process=lli-child-target%exeext %s
|
||||
|
||||
; The intention of this test is to verify that symbols mapped to COMMON in ELF
|
||||
; work as expected.
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -remote-mcjit -O0 -mcjit-remote-process=lli-child-target%exeext %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -O0 -mcjit-remote-process=lli-child-target%exeext %s
|
||||
|
||||
; Check that a variable is always aligned as specified.
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null
|
||||
|
||||
define double @test(double* %DP, double %Arg) nounwind {
|
||||
%D = load double, double* %DP ; <double> [#uses=1]
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -mcjit-remote-process=lli-child-target%exeext %s > /dev/null
|
||||
|
||||
@count = global i32 1, align 4
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -remote-mcjit -relocation-model=pic -code-model=small %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -relocation-model=pic -code-model=small %s > /dev/null
|
||||
; XFAIL: mips, aarch64, arm, i686, i386
|
||||
|
||||
@count = global i32 1, align 4
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -remote-mcjit -O0 -mcjit-remote-process=lli-child-target%exeext %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -O0 -mcjit-remote-process=lli-child-target%exeext %s
|
||||
|
||||
@.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1
|
||||
@ptr = global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0), align 4
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -remote-mcjit -O0 -relocation-model=pic -code-model=small %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -O0 -relocation-model=pic -code-model=small %s
|
||||
; XFAIL: mips, aarch64, arm, i686, i386
|
||||
|
||||
@.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1
|
6
test/ExecutionEngine/OrcMCJIT/simplesttest.ll
Normal file
6
test/ExecutionEngine/OrcMCJIT/simplesttest.ll
Normal file
@ -0,0 +1,6 @@
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @main() {
|
||||
ret i32 0
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @bar() {
|
||||
ret i32 0
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s
|
||||
; XFAIL: mips, i686, i386, aarch64, arm
|
||||
|
||||
define i32 @main() nounwind {
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -disable-lazy-compilation=false %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -disable-lazy-compilation=false %s
|
||||
|
||||
define i32 @main() nounwind {
|
||||
entry:
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @main() {
|
||||
%A = add i8 0, 12 ; <i8> [#uses=1]
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
; test unconditional branch
|
||||
define i32 @main() {
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @_Z14func_exit_codev() nounwind uwtable {
|
||||
entry:
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
declare void @exit(i32)
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @foo() {
|
||||
ret i32 0
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -O0 %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -O0 %s
|
||||
|
||||
; This test checks that common symbols have been allocated addresses honouring
|
||||
; the alignment requirement.
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -O0 -disable-lazy-compilation=false %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -O0 -disable-lazy-compilation=false %s
|
||||
|
||||
; The intention of this test is to verify that symbols mapped to COMMON in ELF
|
||||
; work as expected.
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
; This tests to make sure that we can evaluate weird constant expressions
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -O0 %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -O0 %s
|
||||
|
||||
; Check that a variable is always aligned as specified.
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define double @test(double* %DP, double %Arg) {
|
||||
%D = load double, double* %DP ; <double> [#uses=1]
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define double @test(double* %DP, double %Arg) {
|
||||
%D = load double, double* %DP ; <double> [#uses=1]
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
; XFAIL: darwin
|
||||
@var = global i32 1, align 4
|
||||
@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @ctor_func }]
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -relocation-model=pic -code-model=small %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit -relocation-model=pic -code-model=small %s > /dev/null
|
||||
; XFAIL: mips, aarch64, arm, i686, i386
|
||||
|
||||
@count = global i32 1, align 4
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
@count = global i32 1, align 4
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
@count = global i32 0, align 4
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define void @test(i8* %P, i16* %P.upgrd.1, i32* %P.upgrd.2, i64* %P.upgrd.3) {
|
||||
%V = load i8, i8* %P ; <i8> [#uses=1]
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @main() nounwind uwtable {
|
||||
entry:
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @main() {
|
||||
%A = and i8 4, 8 ; <i8> [#uses=2]
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @main() {
|
||||
; <label>:0
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
; test phi node
|
||||
@Y = global i32 6 ; <i32*> [#uses=1]
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -O0 -relocation-model=pic -code-model=small %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -O0 -relocation-model=pic -code-model=small %s
|
||||
; XFAIL: mips, aarch64, arm, i686, i386
|
||||
|
||||
@.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit -O0 %s
|
||||
; RUN: %lli -jit-kind=orc-mcjit -O0 %s
|
||||
|
||||
@.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1
|
||||
@ptr = global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0), align 4
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
; test return instructions
|
||||
define void @test1() {
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @main() nounwind uwtable {
|
||||
entry:
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
|
||||
define i32 @main() {
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @main() {
|
||||
%int1 = add i32 0, 0 ; <i32> [#uses=6]
|
@ -1,4 +1,4 @@
|
||||
; RUN: %lli -use-orcmcjit %s > /dev/null
|
||||
; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null
|
||||
|
||||
define i32 @main() {
|
||||
%shamt = add i8 0, 1 ; <i8> [#uses=8]
|
@ -35,6 +35,7 @@ endif( LLVM_USE_INTEL_JITEVENTS )
|
||||
|
||||
add_llvm_tool(lli
|
||||
lli.cpp
|
||||
OrcLazyJIT.cpp
|
||||
RemoteMemoryManager.cpp
|
||||
RemoteTarget.cpp
|
||||
RemoteTargetExternal.cpp
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user