aboutsummaryrefslogtreecommitdiff
path: root/docs/CommandGuide/llvmc.pod
blob: c81031bc61ab862e8405ee06d21d16284186e1f5 (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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
=pod

=head1 NAME

llvmc - The LLVM Compiler Driver (WIP)

=head1 SYNOPSIS

B<llvmc> [I<options>] I<filenames...>

=head1 DESCRIPTION

B<llvmc> is a configurable driver for invoking other LLVM (and non-LLVM) tools
in order to compile, optimize and link software for multiple languages. For
those familiar with FSF's B<gcc> tool, it is very similar.  Please note that
B<llvmc> is considered an experimental tool.

=head1 OPTIONS

=head2 Built-in Options

LLVMC has some built-in options that can't be overridden in the
configuration libraries.

=over

=item B<-o> I<filename>

Output file name.

=item B<-x> I<language>

Specify the language of the following input files until the next B<-x>
option.

=item B<-load> I<plugin_name>

Load the specified plugin DLL. Example:
S<-load $LLVM_DIR/Release/lib/LLVMCSimple.so>.

=item B<-v> or B<--verbose>

Enable verbose mode, i.e. print out all executed commands.

=item B<--view-graph>

Show a graphical representation of the compilation graph. Requires
that you have I<dot> and I<gv> programs installed. Hidden option,
useful for debugging.

=item B<--write-graph>

Write a I<compilation-graph.dot> file in the current directory with
the compilation graph description in the Graphviz format. Hidden
option, useful for debugging.

=item B<--save-temps>

Write temporary files to the current directory and do not delete them
on exit. Hidden option, useful for debugging.

=item B<--help>

Print a summary of command-line options and exit.

=item B<--help-hidden>

Print a summary of command-line options and exit. Print help even for
options intended for developers.

=item B<--version>

Print version information and exit.

=back

=head2 Control Options

By default, LLVMC is built with some standard configuration libraries
that define the following options:

=over

=item B<-I> I<directory>

Add a directory to the header file search path.  This option can be
repeated.

=item B<-L> I<directory>

Add I<directory> to the library search path.  This option can be
repeated.

=item B<-l>I<name>

Link in the library libI<name>.[bc | a | so].  This library should
be a bitcode library.

=item B<-emit-llvm>

Make the output be LLVM bitcode (with B<-c>) or assembly (with B<-s>) instead
of native object (or assembly).  If B<-emit-llvm> is given without either B<-c>
or B<-S> it has no effect.

=back

=head1 EXIT STATUS

If B<llvmc> succeeds, it will exit with code 0.  Otherwise, if an
error occurs, it will exit with a non-zero value. If one of the
compilation tools returns a non-zero status, pending actions will be
discarded and B<llvmc> will return the same result code as the failing
compilation tool.

=head1 SEE ALSO

L<llvm-gcc|llvmgcc>, L<llvm-g++|llvmgxx>, L<llvm-as|llvm-as>,
L<llvm-dis|llvm-dis>, L<llc|llc>, L<llvm-link|llvm-link>

=head1 AUTHORS

Maintained by the LLVM Team (L<http://llvm.org>).

=cut