diff options
| author | Lang Hames <lhames@gmail.com> | 2015-03-25 12:11:48 +0000 |
|---|---|---|
| committer | Lang Hames <lhames@gmail.com> | 2015-03-25 12:11:48 +0000 |
| commit | 9528bbaae0e2a54a948cf913100e323b81da6947 (patch) | |
| tree | 58d817f4ef2aeda2668871c473b13da2b9e966d9 /llvm/test/ExecutionEngine/OrcMCJIT/test-arith.ll | |
| parent | 07a26d6b2f1bc8ce1d03c8dd23d440a9cc7a0af8 (diff) | |
| download | bcm5719-llvm-9528bbaae0e2a54a948cf913100e323b81da6947.tar.gz bcm5719-llvm-9528bbaae0e2a54a948cf913100e323b81da6947.zip | |
[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.
llvm-svn: 233182
Diffstat (limited to 'llvm/test/ExecutionEngine/OrcMCJIT/test-arith.ll')
| -rw-r--r-- | llvm/test/ExecutionEngine/OrcMCJIT/test-arith.ll | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/llvm/test/ExecutionEngine/OrcMCJIT/test-arith.ll b/llvm/test/ExecutionEngine/OrcMCJIT/test-arith.ll new file mode 100644 index 00000000000..c4331bf7327 --- /dev/null +++ b/llvm/test/ExecutionEngine/OrcMCJIT/test-arith.ll @@ -0,0 +1,34 @@ +; RUN: %lli -jit-kind=orc-mcjit %s > /dev/null + +define i32 @main() { + %A = add i8 0, 12 ; <i8> [#uses=1] + %B = sub i8 %A, 1 ; <i8> [#uses=2] + %C = mul i8 %B, %B ; <i8> [#uses=2] + %D = sdiv i8 %C, %C ; <i8> [#uses=2] + %E = srem i8 %D, %D ; <i8> [#uses=0] + %F = udiv i8 5, 6 ; <i8> [#uses=0] + %G = urem i8 6, 5 ; <i8> [#uses=0] + %A.upgrd.1 = add i16 0, 12 ; <i16> [#uses=1] + %B.upgrd.2 = sub i16 %A.upgrd.1, 1 ; <i16> [#uses=2] + %C.upgrd.3 = mul i16 %B.upgrd.2, %B.upgrd.2 ; <i16> [#uses=2] + %D.upgrd.4 = sdiv i16 %C.upgrd.3, %C.upgrd.3 ; <i16> [#uses=2] + %E.upgrd.5 = srem i16 %D.upgrd.4, %D.upgrd.4 ; <i16> [#uses=0] + %F.upgrd.6 = udiv i16 5, 6 ; <i16> [#uses=0] + %G.upgrd.7 = urem i32 6, 5 ; <i32> [#uses=0] + %A.upgrd.8 = add i32 0, 12 ; <i32> [#uses=1] + %B.upgrd.9 = sub i32 %A.upgrd.8, 1 ; <i32> [#uses=2] + %C.upgrd.10 = mul i32 %B.upgrd.9, %B.upgrd.9 ; <i32> [#uses=2] + %D.upgrd.11 = sdiv i32 %C.upgrd.10, %C.upgrd.10 ; <i32> [#uses=2] + %E.upgrd.12 = srem i32 %D.upgrd.11, %D.upgrd.11 ; <i32> [#uses=0] + %F.upgrd.13 = udiv i32 5, 6 ; <i32> [#uses=0] + %G1 = urem i32 6, 5 ; <i32> [#uses=0] + %A.upgrd.14 = add i64 0, 12 ; <i64> [#uses=1] + %B.upgrd.15 = sub i64 %A.upgrd.14, 1 ; <i64> [#uses=2] + %C.upgrd.16 = mul i64 %B.upgrd.15, %B.upgrd.15 ; <i64> [#uses=2] + %D.upgrd.17 = sdiv i64 %C.upgrd.16, %C.upgrd.16 ; <i64> [#uses=2] + %E.upgrd.18 = srem i64 %D.upgrd.17, %D.upgrd.17 ; <i64> [#uses=0] + %F.upgrd.19 = udiv i64 5, 6 ; <i64> [#uses=0] + %G.upgrd.20 = urem i64 6, 5 ; <i64> [#uses=0] + ret i32 0 +} + |

