aboutsummaryrefslogtreecommitdiff
path: root/tools/llvmc/st
blob: 93d5c5b286c2e7d1cdb8ccd7cd77ac57acfc927e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Stacker Configuration File For llvmc

##########################################################
# Language definitions
##########################################################
  lang.name=Stacker 
  lang.opt1=-simplifycfg -instcombine -mem2reg
  lang.opt2=-simplifycfg -instcombine -mem2reg -scalarrepl -sccp
  lang.opt3=-simplifycfg -instcombine -mem2reg -scalarrepl -sccp \
  -branch-combine -adce -globaldce -inline -licm -pre
  lang.opt4=-simplifycfg -instcombine -mem2reg -scalarrepl -sccp \
  -ipconstprop -branch-combine -adce -globaldce -inline -licm -pre
  lang.opt5=-simplifycfg -instcombine -mem2reg -scalarrepl -sccp \
  -ipconstprop -branch-combine -adce -globaldce -inline -licm -pre \
  -block-placement

##########################################################
# Pre-processor definitions
##########################################################

  # Stacker doesn't have a preprocessor but the following
  # allows the -E option to be supported
  preprocessor.command=cp @in@ @out@
  preprocessor.required=false

##########################################################
# Translator 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@

  # 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

  # stkrc doesn't handle the -On options
  translator.groks_dash_O=no

##########################################################
# Optimizer definitions
##########################################################
  
  # For optimization, we use the LLVM "opt" program
  optimizer.command=opt @in@ -o @out@ @opt@ @time@ @stats@

  # opt doesn't (yet) grok -On
  optimizer.groks_dash_O=no

  # opt doesn't translate
  optimizer.translates = no

  # opt doesn't preprocess
  optimizer.preprocesses=no

##########################################################
# Assembler definitions
##########################################################
  assembler.command=llc @in@ -o @out@ @target@ "-regalloc=linearscan" \
  @time@ @stats@

##########################################################
# Linker definitions
##########################################################
  linker.command=gccld @in@ -o @out@ -lstkr_runtime