aboutsummaryrefslogtreecommitdiffstats
path: root/tools/llvmc/cpp
blob: 5f20fd8d4d959c28b4ba41aa90b87d73e9d2fc65 (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
# C++ configuration file for llvmc

##########################################################
# Language definitions
##########################################################
  lang.name=C++
  lang.opt1=-O1
  lang.opt2=-O2
  lang.opt3=-O3
  lang.opt4=-O3
  lang.opt5=-O3
  lang.libs=%llvmgccdir%/lib %llvmgccdir%/lib \
    %llvmgccdir%/lib/gcc/%llvmgccarch%

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

  # We use g++ as our pre-processor
  preprocessor.command=g++ -E %in% -o %out% %incls% %defs%
  preprocessor.required=true

##########################################################
# Translator definitions
##########################################################

  # To compile C++ source, just use llvm-g++'s cc1
  translator.command=%llvmcc1plus% -quiet %in% -o %out% \
    %opt% %incls% %defs% %WOpts% %fOpts% %MOpts% %args% \
    -D_GNU_SOURCE

  # llvm-g++ does not pre-process
  translator.preprocesses=false

  # The translator is required to run.
  translator.required=true

  # Output of translator is assembly
  translator.output=assembly

##########################################################
# Optimizer definitions
##########################################################
  
  # Use gccas to clean up the generated code
  optimizer.command=%bindir%/gccas %in% -o %out% %args%
  optimizer.required = true

  # gccas doesn't translate
  optimizer.translates = false

  # gccas doesn't preprocess
  optimizer.preprocesses=false

  # gccas produces bytecode
  optimizer.output = bytecode

##########################################################
# Assembler definitions
##########################################################
  assembler.command=%bindir%/llc %in% -o %out% %target% %time% %stats%