From e433cf1fd718f90bb7118a49ccfceff8b515cde8 Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Sat, 20 Oct 2018 20:39:53 +0000 Subject: [PATCH] [ORC] Add some more basic sanity tests for the LLJIT. minimal.ll contains a main function that returns zero, and single-function-call.ll contains a main function that calls a foo function that returns zero. These minimal tests can help to rule out some trivial JIT bugs when other tests fail. This commit also renames hello.ll to global-ctors-and-dtors.ll, which better reflects what it is actually testing. llvm-svn: 344863 --- .../OrcLazy/{hello.ll => global-ctors-and-dtors.ll} | 2 ++ llvm/test/ExecutionEngine/OrcLazy/minimal.ll | 8 ++++++++ llvm/test/ExecutionEngine/OrcLazy/single-function-call.ll | 15 +++++++++++++++ 3 files changed, 25 insertions(+) rename llvm/test/ExecutionEngine/OrcLazy/{hello.ll => global-ctors-and-dtors.ll} (95%) create mode 100644 llvm/test/ExecutionEngine/OrcLazy/minimal.ll create mode 100644 llvm/test/ExecutionEngine/OrcLazy/single-function-call.ll diff --git a/llvm/test/ExecutionEngine/OrcLazy/hello.ll b/llvm/test/ExecutionEngine/OrcLazy/global-ctors-and-dtors.ll similarity index 95% rename from llvm/test/ExecutionEngine/OrcLazy/hello.ll rename to llvm/test/ExecutionEngine/OrcLazy/global-ctors-and-dtors.ll index 86d9a9a..00b54fb 100644 --- a/llvm/test/ExecutionEngine/OrcLazy/hello.ll +++ b/llvm/test/ExecutionEngine/OrcLazy/global-ctors-and-dtors.ll @@ -1,5 +1,7 @@ ; RUN: lli -jit-kind=orc-lazy -orc-lazy-debug=funcs-to-stdout %s | FileCheck %s ; +; Test that global constructors and destructors are run. +; ; CHECK: Hello ; CHECK: [ {{.*}}main{{.*}} ] ; CHECK: Goodbye diff --git a/llvm/test/ExecutionEngine/OrcLazy/minimal.ll b/llvm/test/ExecutionEngine/OrcLazy/minimal.ll new file mode 100644 index 0000000..86087bc --- /dev/null +++ b/llvm/test/ExecutionEngine/OrcLazy/minimal.ll @@ -0,0 +1,8 @@ +; RUN: lli -jit-kind=orc-lazy %s +; +; Basic sanity check: A module with a single no-op main function runs. + +define i32 @main(i32 %argc, i8** nocapture readnone %argv) { +entry: + ret i32 0 +} diff --git a/llvm/test/ExecutionEngine/OrcLazy/single-function-call.ll b/llvm/test/ExecutionEngine/OrcLazy/single-function-call.ll new file mode 100644 index 0000000..fba5202 --- /dev/null +++ b/llvm/test/ExecutionEngine/OrcLazy/single-function-call.ll @@ -0,0 +1,15 @@ +; RUN: lli -jit-kind=orc-lazy %s +; +; Basic sanity check: We can make a call inside lazily JIT'd code. +; Compared to minimal.ll, this demonstrates that we can call through a stub. + +define i32 @foo() { +entry: + ret i32 0 +} + +define i32 @main(i32 %argc, i8** nocapture readnone %argv) { +entry: + %0 = call i32() @foo() + ret i32 %0 +} -- 2.7.4