Add lli support for running example test cases #327

Merged
sb10q merged 7 commits from lli-support into master 2023-09-30 09:31:18 +08:00
2 changed files with 23 additions and 0 deletions
Showing only changes of commit 7cb18d5267 - Show all commits

View File

@ -13,5 +13,7 @@ set -- "${@:1:$(($# - 1))}"
echo -n "Checking $demo... "
./interpret_demo.py "$demo" > interpreted.log
./run_demo.sh "$@" "$demo" > run.log
./run_demo_lli.sh "$@" "$demo" > run_lli.log
diff -Nau interpreted.log run.log
diff -Nau interpreted.log run_lli.log
echo "ok"

View File

@ -0,0 +1,21 @@
#!/usr/bin/env bash
set -e
if [ -z "$1" ]; then
echo "No argument supplied"
exit 1
fi
if [ -e ../../target/release/nac3standalone ]; then
nac3standalone=../../target/release/nac3standalone
else
# used by Nix builds
nac3standalone=../../target/x86_64-unknown-linux-gnu/release/nac3standalone
fi
rm -f "*.o" "*.bc" demo
$nac3standalone --emit-llvm "$@"
clang -c -std=gnu11 -Wall -Wextra -O3 -emit-llvm -o demo.bc demo.c
lli --extra-module demo.bc --extra-module irrt.bc main.bc
Outdated
Review

I don't think you need to add IRRT here. The output of the compiler (nac3core) is already supposed to inline IRRT.

I don't think you need to add IRRT here. The output of the compiler (nac3core) is already supposed to inline IRRT.

This is necessary, as the nac3standalone program will only generate LLVM bitcode for the module-under-compilation (rather than including the dependencies).

This is necessary, as the `nac3standalone` program will only generate LLVM bitcode for the module-under-compilation (rather than including the dependencies).
Outdated
Review

I would change it so it also emits the already compiled and integrated IRRT then, instead of compiling it redundantly (and with the wrong compiler).

I would change it so it also emits the already compiled and integrated IRRT then, instead of compiling it redundantly (and with the wrong compiler).