aboutsummaryrefslogtreecommitdiff
path: root/docs/CommandGuide/llvmgcc.html
blob: f74d7ccd097504d12bca70a80310b9b35d500e67 (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
<html>
<title>
LLVM: llvmgcc tool
</title>

<body>

<center>
<h1>LLVM: llvmgcc tool</h1>
</center>
<HR>

<h3>
NAME
</h3>

llvmgcc

<h3>
SYNOPSIS
</h3>

llvmgcc [options] filename
<h3>
DESCRIPTION
</h3>

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

The llvmgcc program uses the LLVM assembler gccas and the LLVM linker gccld to
do the work of creating complete programs.
<p>

Being derived from the GNU Compiler Collection, llvmgcc has many of gcc's
features and accepts most of gcc's options.  It handles a number of gcc'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 bytecode executable.  Rather, compile the source
	file into an LLVM bytecode file.  This bytecode file can then be linked
	with other bytecode files later to generate a full LLVM executable.
	<p>

	<li> -o <i>filename</i>
	<br>
	Specify the output file to be <i>filename</i>.  If <i>filename</i> is -,
	then llvmgcc sends its output to standard output.
	<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 llvmgcc 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="llvmgxx.html">llvmg++</A>,
<A HREF="gccas.html">gccas</A>,
<A HREF="gccld.html">gccld</A>

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