# Language definitions
##########################################################
lang.name=Stacker
- lang.opt1=-simplifycfg -instcombine -mem2reg
- lang.opt2=-simplifycfg -instcombine -mem2reg -load-vn -gcse -dse -scalarrepl -sccp
- lang.opt3=-simplifycfg -instcombine -mem2reg -load-vn -gcse -dse -scalarrepl -sccp \
- -branch-combine -adce -globaldce -inline -licm -pre
- lang.opt4=-simplifycfg -instcombine -mem2reg -load-vn -gcse -dse -scalarrepl -sccp \
- -ipconstprop -branch-combine -adce -globaldce -inline -licm -pre
- lang.opt5=-simplifycfg -instcombine -mem2reg --load-vn -gcse -dse scalarrepl -sccp \
- -ipconstprop -branch-combine -adce -globaldce -inline -licm -pre \
- -block-placement
+ lang.opt1=-O1
+ lang.opt2=-O2
+ lang.opt3=-O3
+ lang.opt4=-O4
+ lang.opt5=-O5
##########################################################
# Pre-processor definitions
# To compile stacker source, we just run the stacker
# compiler with a default stack size of 2048 entries.
- translator.command=stkrc -s 2048 %in% -o %out% %time% %stats%
+ translator.command=stkrc -s 2048 %in% -f -o %out% %opt% \
+ %time% %stats% %args%
# stkrc doesn't preprocess but we set this to true so
# that we don't run the cp command by default.
translator.preprocesses=true
# The translator is required to run.
- translator.required=true
-
- # stkrc doesn't do any optimization, it just translates
- translator.optimizes=no
+ translator.required=false
# stkrc doesn't handle the -On options
- translator.groks_dash_O=no
+ translator.output=bytecode
##########################################################
# Optimizer definitions
##########################################################
# For optimization, we use the LLVM "opt" program
- optimizer.command=opt %in% -o %out% %opt% %time% %stats%
+ optimizer.command=stkrc -s 2048 %in% -f -o %out% %opt% \
+ %time% %stats% %args%
- # opt doesn't (yet) grok -On
- optimizer.groks_dash_O=no
+ optimizer.required = yes
# opt doesn't translate
- optimizer.translates = no
+ optimizer.translates = yes
# opt doesn't preprocess
- optimizer.preprocesses=no
+ optimizer.preprocesses=yes
-##########################################################
-# Assembler definitions
-##########################################################
- assembler.command=llc %in% -o %out% %target% "-regalloc=linearscan" \
- %time% %stats%
+ # opt produces bytecode
+ optimizer.output = bc
##########################################################
-# Linker definitions
+# Assembler definitions
##########################################################
- linker.libs=stkr_runtime
- linker.paths=
+ assembler.command=llc %in% -o %out% %target% %time% %stats%