mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-19 04:32:19 +00:00
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:
parent
43eb96c3ef
commit
434262ad51
@ -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
|
||||
|
@ -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
|
||||
|
@ -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">
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user