summaryrefslogtreecommitdiff
path: root/docs/CommandGuide/llvmgxx.html
blob: 0b74e436233fc04c2deb13b571f2d2e6c3556738 (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
<html>
<title>
LLVM: llvmg++ tool
</title>

<body bgcolor=white>

<center>
<h1>LLVM: <tt>llvmg++</tt> tool</h1>
</center>
<HR>

<h3>NAME</h3>
<tt>llvmg++</tt>

<h3>SYNOPSIS</h3>
<tt>llvmg++ [options] filename</tt>

<h3>DESCRIPTION</h3>

The <tt>llvmg++</tt> command is the LLVM C++ front end.  It is a modified
version of g++ that takes C++ programs and compiles them into LLVM bytecode or
assembly language, depending upon the options.
<p>

Unless the <tt>-S</tt> option is specified, <tt>llvmg++</tt> will use the
<a href="gccas.html"><tt>gccas</tt></a> program to perform some optimizations
and create an LLVM bytecode file. Unless the <tt>-c</tt> option is specified,
<tt>llvmg++</tt> will also use the <a href="gccld.html"><tt>gccld</tt></a>
program to perform further optimizations and link the resulting bytecode
file(s) with support libraries to create an executable program.
<p>

Being derived from the <a href="http://gcc.gnu.org">GNU Compiler Collection</a>,
<tt>llvmg++</tt> has many of g++'s features and accepts most of g++'s options.
It handles a number of g++'s extensions to the C++ programming language.
<p>

Below you will find several commonly used options:

<h3>
OPTIONS
</h3>

<ul>
	<li> -S
	<br>
	Do not generate an LLVM bytecode file.  Rather, compile the source file
	into an LLVM assembly language file.
	<p>

	<li> -c
	<br>
	Do not generate a linked executable.  Rather, compile the source file
	into an LLVM bytecode file.  This bytecode file can then be linked with
	other bytecode files later on to generate a full LLVM executable.
	<p>

	<li> -o <i>filename</i>
	<br>
	Specify the output file to be <i>filename</i>.
	<p>

	<li> -I <i>directory</i>
	<br>
	Add a directory to the header file search path.  This option can be
	repeated.
	<p>

	<li> -L <i>directory</i>
	<br>
	Add <i>directory</i> to the library search path.  This option can be
	repeated.
	<p>

	<li> -l<i>name</i>
	<br>
	Link in the library lib<i>name</i>.[bc | a | so].  This library should
	be a bytecode library.
	<p>

	<li>-Wl,<i>option</i>
	<br>
	Pass <i>option</i> to the linker (usually gccld).
	<p>

</ul>

<h3>
EXIT STATUS
</h3>

If <tt>llvmg++</tt> succeeds, it will exit with 0.  Otherwise, if an error
occurs, it will exit with a non-zero value.

<h3>
SEE ALSO
</h3>
<A HREF="llvmgcc.html"><tt>llvmg++</tt></A>,
<A HREF="gccas.html"><tt>gccas</tt></A>,
<A HREF="gccld.html"><tt>gccld</tt></A>

<HR>
Maintained by the <a href="http://llvm.cs.uiuc.edu">LLVM Team</a>.
</body>
</html>