Remove references to gccld and gccas, adjusting the documentation to

mention llvm-ld and opt instead (if appropriate).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34094 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer 2007-02-09 15:59:08 +00:00
parent 43eb96c3ef
commit 434262ad51
7 changed files with 45 additions and 82 deletions

View File

@ -38,13 +38,13 @@
passes. It can be used to debug three types of failures: optimizer crashes,
miscompilations by optimizers, or bad native code generation (including problems
in the static and JIT compilers). It aims to reduce large test cases to small,
useful ones. For example, if <tt>gccas</tt> crashes while optimizing a
useful ones. For example, if <tt>opt</tt> crashes while optimizing a
file, it will identify the optimization (or combination of optimizations) that
causes the crash, and reduce the file down to a small example which triggers the
crash.</p>
<p>For detailed case scenarios, such as debugging <tt>gccas</tt>,
<tt>gccld</tt>, or one of the LLVM code generators, see <a
<p>For detailed case scenarios, such as debugging <tt>opt</tt>,
<tt>llvm-ld</tt>, or one of the LLVM code generators, see <a
href="HowToSubmitABug.html">How To Submit a Bug Report document</a>.</p>
</div>
@ -114,7 +114,7 @@ Otherwise, there is no problem <tt>bugpoint</tt> can debug.</p>
as it can to reduce the list of passes (for optimizer crashes) and the size of
the test program. First, <tt>bugpoint</tt> figures out which combination of
optimizer passes triggers the bug. This is useful when debugging a problem
exposed by <tt>gccas</tt>, for example, because it runs over 38 passes.</p>
exposed by <tt>opt</tt>, for example, because it runs over 38 passes.</p>
<p>Next, <tt>bugpoint</tt> tries removing functions from the test program, to
reduce its size. Usually it is able to reduce a test program to a single

View File

@ -314,8 +314,8 @@ sh:
<ul>
<li>Often targets include special assembler or linker flags which
<tt>gccas</tt>/<tt>gccld</tt> does not understand. In general,
these can just be removed.</li>
<tt>llvm-as</tt>, <tt>opt</tt>, or <tt>llvm-ld</tt> do not
understand. In general, these can just be removed.</li>
<li>LLVM currently does not support any floating point values other than
32-bit and 64-bit IEEE floating point. The primary effect of this
@ -331,8 +331,8 @@ sh:
<li>You may have to disable multilib support in your target. Using
multilib support causes the GCC compiler driver to add a lot of
"<tt>-L</tt>" options to the link line, which do not relate to LLVM
and confuse <tt>gccld</tt>. To disable multilibs, delete any
"<tt>-L</tt>" options to the link line, which do not relate to
LLVM. To disable multilibs, delete any
<tt>MULTILIB_OPTIONS</tt> lines from your target files.</li>
<li>Did we mention that we don't support inline assembly? You'll

View File

@ -460,28 +460,21 @@ or translation to the C back end). That is why configure thinks your system
<p>
To work around this, perform the following steps:
</p>
<ol>
<li>
Make sure the CC and CXX environment variables contains the full path to the
LLVM GCC front end.
</li>
<li>Make sure the CC and CXX environment variables contains the full path to
the LLVM GCC front end.</li>
<li>
Make sure that the regular C compiler is first in your PATH.
</li>
<li>Make sure that the regular C compiler is first in your PATH. </li>
<li>
Add the string "-Wl,-native" to your CFLAGS environment variable.
</li>
<li>Add the string "-Wl,-native" to your CFLAGS environment variable.</li>
</ol>
<p>
This will allow the gccld linker to create a native code executable instead of
a shell script that runs the JIT. Creating native code requires standard
linkage, which in turn will allow the configure script to find out if code is
not linking on your system because the feature isn't available on your system.
</p>
This will allow the <tt>llvm-ld</tt> linker to create a native code executable
instead of shell script that runs the JIT. Creating native code requires
standard linkage, which in turn will allow the configure script to find out if
code is not linking on your system because the feature isn't available on your
system.</p>
</div>
<div class="question">

View File

@ -1342,11 +1342,10 @@ information is in the <a href="CommandGuide/index.html">Command Guide</a>.</p>
LLVM assembly.</dd>
<dt><tt><b>llvm-ld</b></tt></dt>
<dd><tt>llvm-ld</tt> is very similar to gccld and provides a general purpose
and extensible linker for LLVM. This is the linker invoked by <tt>llvmc</tt>.
It allows optimization modules to be loaded so that language specific
optimizations can be applied at link time. This tool is considered
experimental.</dd>
<dd><tt>llvm-ld</tt> is a general purpose and extensible linker for LLVM.
This is the linker invoked by <tt>llvmc</tt>. It performsn standard link time
optimizations and allows optimization modules to be loaded and run so that
language specific optimizations can be applied at link time.</dd>
<dt><tt><b>llvm-link</b></tt></dt>
<dd><tt>llvm-link</tt>, not surprisingly, links multiple LLVM modules into
@ -1368,36 +1367,13 @@ information is in the <a href="CommandGuide/index.html">Command Guide</a>.</p>
the -march=c option).</dd>
<dt><tt><b>llvm-gcc</b></tt></dt>
<dd><tt>llvm-gcc</tt> is a GCC-based C frontend
that has been retargeted to emit LLVM code as the machine code output. It
works just like any other GCC compiler, taking the typical <tt>-c, -S, -E,
-o</tt> options that are typically used. The source code for the
<tt>llvm-gcc</tt> tool is available as a separate CVS module.
<blockquote>
<dl>
<dt><tt><b>gccas</b></tt></dt>
<dd>This tool is invoked by the <tt>llvm-gcc</tt> frontend as the
"assembler" part of the compiler. This tool actually assembles LLVM
assembly to LLVM bytecode, performs a variety of optimizations, and
outputs LLVM bytecode. Thus when you invoke
<tt>llvm-gcc -c x.c -o x.o</tt>, you are causing <tt>gccas</tt> to be
run, which writes the <tt>x.o</tt> file (which is an LLVM bytecode file
that can be disassembled or manipulated just like any other bytecode
file). The command line interface to <tt>gccas</tt> is designed to be
as close as possible to the <b>system</b> `<tt>as</tt>' utility so that
the gcc frontend itself did not have to be modified to interface to
a "weird" assembler.</dd>
<dt><tt><b>gccld</b></tt></dt>
<dd><tt>gccld</tt> links together several LLVM bytecode files into one
bytecode file and does some optimization. It is the linker invoked by
the GCC frontend when multiple .o files need to be linked together.
Like <tt>gccas</tt>, the command line interface of <tt>gccld</tt> is
designed to match the system linker, to aid interfacing with the GCC
frontend.</dd>
</dl>
</blockquote>
</dd>
<dd><tt>llvm-gcc</tt> is a GCC-based C frontend that has been retargeted to
use LLVM as its backend instead of GCC's RTL backend. It can also emit LLVM
byte code or assembly (with the <tt>-emit-llvm</tt> option) instead of the
usual machine code output. It works just like any other GCC compiler,
taking the typical <tt>-c, -S, -E, -o</tt> options that are typically used.
Additionally, the the source code for <tt>llvm-gcc</tt> is available as a
separate CVS module.</dd>
<dt><tt><b>opt</b></tt></dt>
<dd><tt>opt</tt> reads LLVM bytecode, applies a series of LLVM to LLVM

View File

@ -258,18 +258,13 @@ All these paths are absolute:</p>
</pre></li>
<li><p>Next, compile the C file into a LLVM bytecode file:</p>
<p><tt>% llvm-gcc hello.c -o hello</tt></p>
<p><tt>% llvm-gcc hello.c -emit-llvm -o hello.bc</tt></p>
<p>Note that you should have already built the tools and they have to be
in your path, at least <tt>gccas</tt> and <tt>gccld</tt>.</p>
<p>This will create two result files: <tt>hello</tt> and
<tt>hello.bc</tt>. The <tt>hello.bc</tt> is the LLVM bytecode that
corresponds the the compiled program and the library facilities that it
required. <tt>hello</tt> is a simple shell script that runs the bytecode
file with <tt>lli</tt>, making the result directly executable. Note that
all LLVM optimizations are enabled by default, so there is no need for a
"-O3" switch.</p>
<p>This will create the result file <tt>hello.bc</tt> which is the LLVM
bytecode that corresponds the the compiled program and the library
facilities that it required. You can execute this file directly using
<tt>lli</tt> tool, compile it to native assembly with the <tt>llc</tt>,
optimize or analyze it further with the <tt>opt</tt> tool, etc.</p>
<p><b>Note: while you cannot do this step on Windows, you can do it on a
Unix system and transfer <tt>hello.bc</tt> to Windows.</b></p></li>

View File

@ -819,8 +819,6 @@
executables (e.g. Unix).</dd>
<dt><a name="FLEX"><tt>FLEX</tt></a><small>(configured)</small></dt>
<dd>Specifies the path to the <tt>flex</tt> tool.</dd>
<dt><a name="GCCLD"><tt>GCCLD</tt></a><small>(defaulted)</small></dt>
<dd>Specifies the path to the <tt>gccld</tt> tool.</dd>
<dt><a name="INSTALL"><tt>INSTALL</tt></a><small>(configured)</small></dt>
<dd>Specifies the path to the <tt>install</tt> tool.</dd>
<dt><a name="LDFLAGS"><tt>LDFLAGS</tt></a><small>(configured)</small></dt>
@ -836,6 +834,8 @@
<dd>Specifies the path to the LLVM version of the GCC 'C' Compiler</dd>
<dt><a name="LLVMGXX"><tt>LLVMGXX</tt></a><small>(defaulted)</small></dt>
<dd>Specifies the path to the LLVM version of the GCC C++ Compiler</dd>
<dt><a name="LLVMLD"><tt>LLVMLD</tt></a><small>(defaulted)</small></dt>
<dd>Specifies the path to the LLVM bytecode linker tool</dd>
<dt><a name="LLVM_OBJ_ROOT"><tt>LLVM_OBJ_ROOT</tt></a><small>(configured)
</small></dt>
<dd>Specifies the top directory into which the output of the build is

View File

@ -68,24 +68,23 @@ those using Visual Studio on Windows.</li>
manual for the LLVM command line utilities ("man" pages for LLVM tools).<br/>
Current tools:
<a href="CommandGuide/html/llvm-ar.html">llvm-ar</a>,
<a href="CommandGuide/html/llvm-ranlib.html">llvm-ranlib</a>,
<a href="CommandGuide/html/llvm-as.html">llvm-as</a>,
<a href="CommandGuide/html/llvm-dis.html">llvm-dis</a>,
<a href="CommandGuide/html/opt.html">opt</a>,
<a href="CommandGuide/html/llc.html">llc</a>,
<a href="CommandGuide/html/lli.html">lli</a>,
<a href="CommandGuide/html/llvm-extract.html">llvm-extract</a>,
<a href="CommandGuide/html/llvm-ld.html">llvm-ld</a>,
<a href="CommandGuide/html/llvm-link.html">llvm-link</a>,
<a href="CommandGuide/html/llvm-nm.html">llvm-nm</a>,
<a href="CommandGuide/html/llvm-prof.html">llvm-prof</a>,
<a href="CommandGuide/html/llvmgcc.html">llvmgcc</a>,
<a href="CommandGuide/html/llvmgxx.html">llvmgxx</a>,
<a href="CommandGuide/html/gccas.html">gccas</a>,
<a href="CommandGuide/html/gccld.html">gccld</a>,
<a href="CommandGuide/html/llvm-ranlib.html">llvm-ranlib</a>,
<a href="CommandGuide/html/opt.html">opt</a>,
<a href="CommandGuide/html/llc.html">llc</a>,
<a href="CommandGuide/html/lli.html">lli</a>,
<a href="CommandGuide/html/llvmc.html">llvmc</a>
<a href="CommandGuide/html/llvmgcc.html">llvm-gcc</a>,
<a href="CommandGuide/html/llvmgxx.html">llvm-g++</a>,
<a href="CommandGuide/html/stkrc.html">stkrc</a>,
<a href="CommandGuide/html/bugpoint.html">bugpoint</a>,
<a href="CommandGuide/html/llvm-extract.html">llvm-extract</a>,
<a href="CommandGuide/html/llvm-bcanalyzer.html">llvm-bcanalyzer</a>,
<a href="CommandGuide/html/llvmc.html">llvmc</a>
</li>
<li><a href="FAQ.html">Frequently Asked Questions</a> - A list of common