OSDN Git Service

[Orc][lli] Add a very simple Orc-based lazy JIT to lli.
authorLang Hames <lhames@gmail.com>
Wed, 25 Mar 2015 12:11:48 +0000 (12:11 +0000)
committerLang Hames <lhames@gmail.com>
Wed, 25 Mar 2015 12:11:48 +0000 (12:11 +0000)
commit47fd5639bc5a65daf1b73505e6556f0f2a8bf777
treecbdc02522bc4f4a4c0a17ae5f25a8d810af47ecd
parent3132115738498c4e374ac1c3ca5f23438e2e5c44
[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
103 files changed:
include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
test/ExecutionEngine/OrcJIT/multi-module-a.ll [deleted file]
test/ExecutionEngine/OrcJIT/multi-module-sm-pic-a.ll [deleted file]
test/ExecutionEngine/OrcJIT/remote/cross-module-a.ll [deleted file]
test/ExecutionEngine/OrcJIT/remote/cross-module-sm-pic-a.ll [deleted file]
test/ExecutionEngine/OrcJIT/remote/multi-module-a.ll [deleted file]
test/ExecutionEngine/OrcJIT/remote/multi-module-sm-pic-a.ll [deleted file]
test/ExecutionEngine/OrcJIT/simplesttest.ll [deleted file]
test/ExecutionEngine/OrcLazy/lit.local.cfg [new file with mode: 0644]
test/ExecutionEngine/OrcLazy/trivial_retval_1.ll [new file with mode: 0644]
test/ExecutionEngine/OrcMCJIT/2002-12-16-ArgTest.ll [moved from test/ExecutionEngine/OrcJIT/2002-12-16-ArgTest.ll with 96% similarity]
test/ExecutionEngine/OrcMCJIT/2003-01-04-ArgumentBug.ll [moved from test/ExecutionEngine/OrcJIT/2003-01-04-ArgumentBug.ll with 86% similarity]
test/ExecutionEngine/OrcMCJIT/2003-01-04-LoopTest.ll [moved from test/ExecutionEngine/OrcJIT/2003-01-04-LoopTest.ll with 91% similarity]
test/ExecutionEngine/OrcMCJIT/2003-01-04-PhiTest.ll [moved from test/ExecutionEngine/OrcJIT/2003-01-04-PhiTest.ll with 81% similarity]
test/ExecutionEngine/OrcMCJIT/2003-01-09-SARTest.ll [moved from test/ExecutionEngine/OrcJIT/2003-01-09-SARTest.ll with 83% similarity]
test/ExecutionEngine/OrcMCJIT/2003-01-10-FUCOM.ll [moved from test/ExecutionEngine/OrcJIT/2003-01-10-FUCOM.ll with 85% similarity]
test/ExecutionEngine/OrcMCJIT/2003-01-15-AlignmentTest.ll [moved from test/ExecutionEngine/OrcJIT/2003-01-15-AlignmentTest.ll with 89% similarity]
test/ExecutionEngine/OrcMCJIT/2003-05-06-LivenessClobber.ll [moved from test/ExecutionEngine/OrcJIT/2003-05-06-LivenessClobber.ll with 90% similarity]
test/ExecutionEngine/OrcMCJIT/2003-05-07-ArgumentTest.ll [moved from test/ExecutionEngine/OrcJIT/2003-05-07-ArgumentTest.ll with 86% similarity]
test/ExecutionEngine/OrcMCJIT/2003-05-11-PHIRegAllocBug.ll [moved from test/ExecutionEngine/OrcJIT/2003-05-11-PHIRegAllocBug.ll with 84% similarity]
test/ExecutionEngine/OrcMCJIT/2003-06-04-bzip2-bug.ll [moved from test/ExecutionEngine/OrcJIT/2003-06-04-bzip2-bug.ll with 90% similarity]
test/ExecutionEngine/OrcMCJIT/2003-06-05-PHIBug.ll [moved from test/ExecutionEngine/OrcJIT/2003-06-05-PHIBug.ll with 86% similarity]
test/ExecutionEngine/OrcMCJIT/2003-08-15-AllocaAssertion.ll [moved from test/ExecutionEngine/OrcJIT/2003-08-15-AllocaAssertion.ll with 83% similarity]
test/ExecutionEngine/OrcMCJIT/2003-08-21-EnvironmentTest.ll [moved from test/ExecutionEngine/OrcJIT/2003-08-21-EnvironmentTest.ll with 90% similarity]
test/ExecutionEngine/OrcMCJIT/2003-08-23-RegisterAllocatePhysReg.ll [moved from test/ExecutionEngine/OrcJIT/2003-08-23-RegisterAllocatePhysReg.ll with 95% similarity]
test/ExecutionEngine/OrcMCJIT/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.ll [moved from test/ExecutionEngine/OrcJIT/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.ll with 92% similarity]
test/ExecutionEngine/OrcMCJIT/2005-12-02-TailCallBug.ll [moved from test/ExecutionEngine/OrcJIT/2005-12-02-TailCallBug.ll with 95% similarity]
test/ExecutionEngine/OrcMCJIT/2007-12-10-APIntLoadStore.ll [moved from test/ExecutionEngine/OrcJIT/2007-12-10-APIntLoadStore.ll with 91% similarity]
test/ExecutionEngine/OrcMCJIT/2008-06-05-APInt-OverAShr.ll [moved from test/ExecutionEngine/OrcJIT/2008-06-05-APInt-OverAShr.ll with 96% similarity]
test/ExecutionEngine/OrcMCJIT/2013-04-04-RelocAddend.ll [moved from test/ExecutionEngine/OrcJIT/2013-04-04-RelocAddend.ll with 92% similarity]
test/ExecutionEngine/OrcMCJIT/Inputs/cross-module-b.ll [moved from test/ExecutionEngine/OrcJIT/Inputs/cross-module-b.ll with 100% similarity]
test/ExecutionEngine/OrcMCJIT/Inputs/multi-module-b.ll [moved from test/ExecutionEngine/OrcJIT/Inputs/multi-module-b.ll with 100% similarity]
test/ExecutionEngine/OrcMCJIT/Inputs/multi-module-c.ll [moved from test/ExecutionEngine/OrcJIT/Inputs/multi-module-c.ll with 100% similarity]
test/ExecutionEngine/OrcMCJIT/Inputs/multi-module-eh-b.ll [moved from test/ExecutionEngine/OrcJIT/Inputs/multi-module-eh-b.ll with 100% similarity]
test/ExecutionEngine/OrcMCJIT/cross-module-a.ll [moved from test/ExecutionEngine/OrcJIT/cross-module-a.ll with 60% similarity]
test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll [moved from test/ExecutionEngine/OrcJIT/cross-module-sm-pic-a.ll with 55% similarity]
test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll [moved from test/ExecutionEngine/OrcJIT/eh-lg-pic.ll with 92% similarity]
test/ExecutionEngine/OrcMCJIT/eh-sm-pic.ll [moved from test/ExecutionEngine/OrcJIT/eh-sm-pic.ll with 92% similarity]
test/ExecutionEngine/OrcMCJIT/eh.ll [moved from test/ExecutionEngine/OrcJIT/eh.ll with 96% similarity]
test/ExecutionEngine/OrcMCJIT/fpbitcast.ll [moved from test/ExecutionEngine/OrcJIT/fpbitcast.ll with 86% similarity]
test/ExecutionEngine/OrcMCJIT/hello-sm-pic.ll [moved from test/ExecutionEngine/OrcJIT/hello-sm-pic.ll with 77% similarity]
test/ExecutionEngine/OrcMCJIT/hello.ll [moved from test/ExecutionEngine/OrcJIT/hello.ll with 84% similarity]
test/ExecutionEngine/OrcMCJIT/hello2.ll [moved from test/ExecutionEngine/OrcJIT/hello2.ll with 86% similarity]
test/ExecutionEngine/OrcMCJIT/lit.local.cfg [moved from test/ExecutionEngine/OrcJIT/lit.local.cfg with 100% similarity]
test/ExecutionEngine/OrcMCJIT/load-object-a.ll [moved from test/ExecutionEngine/OrcJIT/load-object-a.ll with 64% similarity]
test/ExecutionEngine/OrcMCJIT/multi-module-a.ll [new file with mode: 0644]
test/ExecutionEngine/OrcMCJIT/multi-module-eh-a.ll [moved from test/ExecutionEngine/OrcJIT/multi-module-eh-a.ll with 92% similarity]
test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll [new file with mode: 0644]
test/ExecutionEngine/OrcMCJIT/non-extern-addend.ll [moved from test/ExecutionEngine/OrcJIT/non-extern-addend.ll with 92% similarity]
test/ExecutionEngine/OrcMCJIT/pr13727.ll [moved from test/ExecutionEngine/OrcJIT/pr13727.ll with 97% similarity]
test/ExecutionEngine/OrcMCJIT/remote/Inputs/cross-module-b.ll [moved from test/ExecutionEngine/OrcJIT/remote/Inputs/cross-module-b.ll with 100% similarity]
test/ExecutionEngine/OrcMCJIT/remote/Inputs/multi-module-b.ll [moved from test/ExecutionEngine/OrcJIT/remote/Inputs/multi-module-b.ll with 100% similarity]
test/ExecutionEngine/OrcMCJIT/remote/Inputs/multi-module-c.ll [moved from test/ExecutionEngine/OrcJIT/remote/Inputs/multi-module-c.ll with 100% similarity]
test/ExecutionEngine/OrcMCJIT/remote/cross-module-a.ll [new file with mode: 0644]
test/ExecutionEngine/OrcMCJIT/remote/cross-module-sm-pic-a.ll [new file with mode: 0644]
test/ExecutionEngine/OrcMCJIT/remote/lit.local.cfg [moved from test/ExecutionEngine/OrcJIT/remote/lit.local.cfg with 100% similarity]
test/ExecutionEngine/OrcMCJIT/remote/multi-module-a.ll [new file with mode: 0644]
test/ExecutionEngine/OrcMCJIT/remote/multi-module-sm-pic-a.ll [new file with mode: 0644]
test/ExecutionEngine/OrcMCJIT/remote/simpletest-remote.ll [moved from test/ExecutionEngine/OrcJIT/remote/simpletest-remote.ll with 54% similarity]
test/ExecutionEngine/OrcMCJIT/remote/stubs-remote.ll [moved from test/ExecutionEngine/OrcJIT/remote/stubs-remote.ll with 88% similarity]
test/ExecutionEngine/OrcMCJIT/remote/stubs-sm-pic.ll [moved from test/ExecutionEngine/OrcJIT/remote/stubs-sm-pic.ll with 88% similarity]
test/ExecutionEngine/OrcMCJIT/remote/test-common-symbols-remote.ll [moved from test/ExecutionEngine/OrcJIT/remote/test-common-symbols-remote.ll with 95% similarity]
test/ExecutionEngine/OrcMCJIT/remote/test-data-align-remote.ll [moved from test/ExecutionEngine/OrcJIT/remote/test-data-align-remote.ll with 74% similarity]
test/ExecutionEngine/OrcMCJIT/remote/test-fp-no-external-funcs-remote.ll [moved from test/ExecutionEngine/OrcJIT/remote/test-fp-no-external-funcs-remote.ll with 86% similarity]
test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-remote.ll [moved from test/ExecutionEngine/OrcJIT/remote/test-global-init-nonzero-remote.ll with 89% similarity]
test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll [moved from test/ExecutionEngine/OrcJIT/remote/test-global-init-nonzero-sm-pic.ll with 90% similarity]
test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-remote.ll [moved from test/ExecutionEngine/OrcJIT/remote/test-ptr-reloc-remote.ll with 84% similarity]
test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll [moved from test/ExecutionEngine/OrcJIT/remote/test-ptr-reloc-sm-pic.ll with 86% similarity]
test/ExecutionEngine/OrcMCJIT/simplesttest.ll [new file with mode: 0644]
test/ExecutionEngine/OrcMCJIT/simpletest.ll [moved from test/ExecutionEngine/OrcJIT/simpletest.ll with 70% similarity]
test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll [moved from test/ExecutionEngine/OrcJIT/stubs-sm-pic.ll with 89% similarity]
test/ExecutionEngine/OrcMCJIT/stubs.ll [moved from test/ExecutionEngine/OrcJIT/stubs.ll with 93% similarity]
test/ExecutionEngine/OrcMCJIT/test-arith.ll [moved from test/ExecutionEngine/OrcJIT/test-arith.ll with 96% similarity]
test/ExecutionEngine/OrcMCJIT/test-branch.ll [moved from test/ExecutionEngine/OrcJIT/test-branch.ll with 81% similarity]
test/ExecutionEngine/OrcMCJIT/test-call-no-external-funcs.ll [moved from test/ExecutionEngine/OrcJIT/test-call-no-external-funcs.ll with 83% similarity]
test/ExecutionEngine/OrcMCJIT/test-call.ll [moved from test/ExecutionEngine/OrcJIT/test-call.ll with 88% similarity]
test/ExecutionEngine/OrcMCJIT/test-cast.ll [moved from test/ExecutionEngine/OrcJIT/test-cast.ll with 98% similarity]
test/ExecutionEngine/OrcMCJIT/test-common-symbols-alignment.ll [moved from test/ExecutionEngine/OrcJIT/test-common-symbols-alignment.ll with 95% similarity]
test/ExecutionEngine/OrcMCJIT/test-common-symbols.ll [moved from test/ExecutionEngine/OrcJIT/test-common-symbols.ll with 97% similarity]
test/ExecutionEngine/OrcMCJIT/test-constantexpr.ll [moved from test/ExecutionEngine/OrcJIT/test-constantexpr.ll with 84% similarity]
test/ExecutionEngine/OrcMCJIT/test-data-align.ll [moved from test/ExecutionEngine/OrcJIT/test-data-align.ll with 87% similarity]
test/ExecutionEngine/OrcMCJIT/test-fp-no-external-funcs.ll [moved from test/ExecutionEngine/OrcJIT/test-fp-no-external-funcs.ll with 93% similarity]
test/ExecutionEngine/OrcMCJIT/test-fp.ll [moved from test/ExecutionEngine/OrcJIT/test-fp.ll with 94% similarity]
test/ExecutionEngine/OrcMCJIT/test-global-ctors.ll [moved from test/ExecutionEngine/OrcJIT/test-global-ctors.ll with 92% similarity]
test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll [moved from test/ExecutionEngine/OrcJIT/test-global-init-nonzero-sm-pic.ll with 91% similarity]
test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero.ll [moved from test/ExecutionEngine/OrcJIT/test-global-init-nonzero.ll with 95% similarity]
test/ExecutionEngine/OrcMCJIT/test-global.ll [moved from test/ExecutionEngine/OrcJIT/test-global.ll with 95% similarity]
test/ExecutionEngine/OrcMCJIT/test-loadstore.ll [moved from test/ExecutionEngine/OrcJIT/test-loadstore.ll with 95% similarity]
test/ExecutionEngine/OrcMCJIT/test-local.ll [moved from test/ExecutionEngine/OrcJIT/test-local.ll with 95% similarity]
test/ExecutionEngine/OrcMCJIT/test-logical.ll [moved from test/ExecutionEngine/OrcJIT/test-logical.ll with 93% similarity]
test/ExecutionEngine/OrcMCJIT/test-loop.ll [moved from test/ExecutionEngine/OrcJIT/test-loop.ll with 86% similarity]
test/ExecutionEngine/OrcMCJIT/test-phi.ll [moved from test/ExecutionEngine/OrcJIT/test-phi.ll with 93% similarity]
test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll [moved from test/ExecutionEngine/OrcJIT/test-ptr-reloc-sm-pic.ll with 88% similarity]
test/ExecutionEngine/OrcMCJIT/test-ptr-reloc.ll [moved from test/ExecutionEngine/OrcJIT/test-ptr-reloc.ll with 93% similarity]
test/ExecutionEngine/OrcMCJIT/test-ret.ll [moved from test/ExecutionEngine/OrcJIT/test-ret.ll with 90% similarity]
test/ExecutionEngine/OrcMCJIT/test-return.ll [moved from test/ExecutionEngine/OrcJIT/test-return.ll with 71% similarity]
test/ExecutionEngine/OrcMCJIT/test-setcond-fp.ll [moved from test/ExecutionEngine/OrcJIT/test-setcond-fp.ll with 95% similarity]
test/ExecutionEngine/OrcMCJIT/test-setcond-int.ll [moved from test/ExecutionEngine/OrcJIT/test-setcond-int.ll with 98% similarity]
test/ExecutionEngine/OrcMCJIT/test-shift.ll [moved from test/ExecutionEngine/OrcJIT/test-shift.ll with 96% similarity]
tools/lli/CMakeLists.txt
tools/lli/OrcLazyJIT.cpp [new file with mode: 0644]
tools/lli/OrcLazyJIT.h [new file with mode: 0644]
tools/lli/lli.cpp