Add a --check-graph option to llvmc.
[oota-llvm.git] / docs / CommandGuide / llvmc.pod
1 =pod
2
3 =head1 NAME
4
5 llvmc - The LLVM Compiler Driver (WIP)
6
7 =head1 SYNOPSIS
8
9 B<llvmc> [I<options>] I<filenames...>
10
11 =head1 DESCRIPTION
12
13 B<llvmc> is a configurable driver for invoking other LLVM (and non-LLVM) tools
14 in order to compile, optimize and link software for multiple languages. For
15 those familiar with FSF's B<gcc> tool, it is very similar.  Please note that
16 B<llvmc> is considered an experimental tool.
17
18 =head1 OPTIONS
19
20 =head2 Built-in Options
21
22 LLVMC has some built-in options that can't be overridden in the
23 configuration libraries.
24
25 =over
26
27 =item B<-o> I<filename>
28
29 Output file name.
30
31 =item B<-x> I<language>
32
33 Specify the language of the following input files until the next B<-x>
34 option.
35
36 =item B<-load> I<plugin_name>
37
38 Load the specified plugin DLL. Example:
39 S<-load $LLVM_DIR/Release/lib/LLVMCSimple.so>.
40
41 =item B<-v> or B<--verbose>
42
43 Enable verbose mode, i.e. print out all executed commands.
44
45 =item B<--check-graph>
46
47 Check the compilation for common errors like mismatched output/input
48 language names, multiple default edges and cycles. Hidden option,
49 useful for debugging.
50
51 =item B<--view-graph>
52
53 Show a graphical representation of the compilation graph. Requires
54 that you have I<dot> and I<gv> programs installed. Hidden option,
55 useful for debugging.
56
57 =item B<--write-graph>
58
59 Write a I<compilation-graph.dot> file in the current directory with
60 the compilation graph description in the Graphviz format. Hidden
61 option, useful for debugging.
62
63 =item B<--save-temps>
64
65 Write temporary files to the current directory and do not delete them
66 on exit. Hidden option, useful for debugging.
67
68 =item B<--help>
69
70 Print a summary of command-line options and exit.
71
72 =item B<--help-hidden>
73
74 Print a summary of command-line options and exit. Print help even for
75 options intended for developers.
76
77 =item B<--version>
78
79 Print version information and exit.
80
81 =back
82
83 =head2 Control Options
84
85 By default, LLVMC is built with some standard configuration libraries
86 that define the following options:
87
88 =over
89
90 =item B<-clang>
91
92 Use Clang instead of llvm-gcc.
93
94 =item B<-opt>
95
96 Enable optimization with B<opt>.
97
98 =item B<-I> I<directory>
99
100 Add a directory to the header file search path.  This option can be
101 repeated.
102
103 =item B<-L> I<directory>
104
105 Add I<directory> to the library search path.  This option can be
106 repeated.
107
108 =item B<-l>I<name>
109
110 Link in the library libI<name>.[bc | a | so].  This library should
111 be a bitcode library.
112
113 =item B<-emit-llvm>
114
115 Make the output be LLVM bitcode (with B<-c>) or assembly (with B<-S>) instead
116 of native object (or assembly).  If B<-emit-llvm> is given without either B<-c>
117 or B<-S> it has no effect.
118
119 =item B<-Wa>
120
121 Pass options to assembler.
122
123 =item B<-Wl>
124
125 Pass options to linker.
126
127 =item B<-Wo>
128
129 Pass options to opt.
130
131 =back
132
133 =head1 EXIT STATUS
134
135 If B<llvmc> succeeds, it will exit with code 0.  Otherwise, if an
136 error occurs, it will exit with a non-zero value. If one of the
137 compilation tools returns a non-zero status, pending actions will be
138 discarded and B<llvmc> will return the same result code as the failing
139 compilation tool.
140
141 =head1 SEE ALSO
142
143 L<llvm-gcc|llvmgcc>, L<llvm-g++|llvmgxx>, L<llvm-as|llvm-as>,
144 L<llvm-dis|llvm-dis>, L<llc|llc>, L<llvm-link|llvm-link>
145
146 =head1 AUTHORS
147
148 Maintained by the LLVM Team (L<http://llvm.org>).
149
150 =cut