mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
Updating documentation:
- Document visibility stuff - Fix gcc' supported attributes list - Document udis86 configure option llvm-svn: 33462
This commit is contained in:
parent
2079992c16
commit
6da3df75ec
@ -849,6 +849,11 @@ script to configure the build system:</p>
|
||||
documentation from the source code. This is disabled by default because
|
||||
generating the documentation can take a long time and producess 100s of
|
||||
megabytes of output.</dd>
|
||||
<dt><i>--with-udis86</i></dt>
|
||||
<dd>LLVM can use external disassembler library for various purposes (now it's
|
||||
used only for examining code produced by JIT). This option will enable usage
|
||||
of <a href="http://udis86.sourceforge.net/">udis86</a> x86 (both 32 and 64
|
||||
bits) disassembler library.</dd>
|
||||
</dl>
|
||||
|
||||
<p>To configure LLVM, follow these steps:</p>
|
||||
|
@ -578,6 +578,40 @@ convention.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="visibility">Visibility Styles</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<p>
|
||||
All Global Variables and Functions have one of the following visibility styles:
|
||||
</p>
|
||||
|
||||
<dl>
|
||||
<dt><b>"<tt>default</tt>" - Default style</b>:</dt>
|
||||
|
||||
<dd>On ELF, default visibility means that the declaration is visible to other
|
||||
modules and, in shared libraries, means that the declared entity may be
|
||||
overridden. On Darwin, default visibility means that the declaration is
|
||||
visible to other modules. Default visibility corresponds to "external
|
||||
linkage" in the language.
|
||||
</dd>
|
||||
|
||||
<dt><b>"<tt>hidden</tt>" - Hidden style</b>:</dt>
|
||||
|
||||
<dd>Two declarations of an object with hidden visibility refer to the same
|
||||
object if they are in the same shared object. Usually, hidden visibility
|
||||
indicates that the symbol will not be placed into the dynamic symbol table,
|
||||
so no other module (executable or shared library) can reference it
|
||||
directly.
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="globalvars">Global Variables</a>
|
||||
@ -638,14 +672,18 @@ a power of 2.</p>
|
||||
|
||||
<p>LLVM function definitions consist of the "<tt>define</tt>" keyord,
|
||||
an optional <a href="#linkage">linkage type</a>, an optional
|
||||
<a href="#visibility">visibility style</a>, an optional
|
||||
<a href="#callingconv">calling convention</a>, a return type, an optional
|
||||
<a href="#paramattrs">parameter attribute</a> for the return type, a function
|
||||
name, a (possibly empty) argument list (each with optional
|
||||
<a href="#paramattrs">parameter attributes</a>), an optional section, an
|
||||
optional alignment, an opening curly brace, a list of basic blocks, and a
|
||||
closing curly brace. LLVM function declarations
|
||||
consist of the "<tt>declare</tt>" keyword, an optional <a
|
||||
href="#callingconv">calling convention</a>, a return type, an optional
|
||||
<a href="#paramattrs">parameter attributes</a>), an optional section, an
|
||||
optional alignment, an opening curly brace, a list of basic blocks, and a
|
||||
closing curly brace.
|
||||
|
||||
LLVM function declarations consist of the "<tt>declare</tt>" keyword, an
|
||||
optional <a href="#linkage">linkage type</a>, an optional
|
||||
<a href="#visibility">visibility style</a>, an optional
|
||||
<a href="#callingconv">calling convention</a>, a return type, an optional
|
||||
<a href="#paramattrs">parameter attribute</a> for the return type, a function
|
||||
name, a possibly empty list of arguments, and an optional alignment.</p>
|
||||
|
||||
|
@ -510,27 +510,26 @@ bits.</li>
|
||||
<b>Supported:</b> <tt>constructor</tt>, <tt>destructor</tt>,
|
||||
<tt>deprecated</tt>, <tt>fastcall</tt>, <tt>format</tt>,
|
||||
<tt>format_arg</tt>, <tt>non_null</tt>, <tt>noreturn</tt>,
|
||||
<tt>stdcall</tt>, <tt>unused</tt>, <tt>used</tt>,
|
||||
<tt>warn_unused_result</tt>, <tt>weak</tt><br>
|
||||
<tt>section</tt>, <tt>stdcall</tt>, <tt>unused</tt>, <tt>used</tt>,
|
||||
<tt>visibility</tt>, <tt>warn_unused_result</tt>, <tt>weak</tt><br>
|
||||
|
||||
<b>Ignored:</b> <tt>noinline</tt>,
|
||||
<tt>always_inline</tt>, <tt>pure</tt>, <tt>const</tt>, <tt>nothrow</tt>,
|
||||
<tt>malloc</tt>, <tt>no_instrument_function</tt>, <tt>cdecl</tt><br>
|
||||
|
||||
<b>Unsupported:</b> <tt>section</tt>, <tt>alias</tt>,
|
||||
<tt>visibility</tt>, <tt>regparm</tt>, all other target specific
|
||||
<b>Unsupported:</b> <tt>alias</tt>, <tt>regparm</tt>, all other target specific
|
||||
attributes</li>
|
||||
|
||||
<li><a href="http://gcc.gnu.org/onlinedocs/gcc/Variable-Attributes.html#Variable%20Attributes">Variable Attributes</a>:
|
||||
Specifying attributes of variables.<br>
|
||||
<b>Supported:</b> <tt>cleanup</tt>, <tt>common</tt>, <tt>nocommon</tt>,
|
||||
<tt>deprecated</tt>, <tt>dllimport</tt>,
|
||||
<tt>dllexport</tt>, <tt>transparent_union</tt>,
|
||||
<tt>unused</tt>, <tt>used</tt>, <tt>weak</tt><br>
|
||||
<tt>deprecated</tt>, <tt>dllimport</tt>, <tt>dllexport</tt>,
|
||||
<tt>section</tt>, <tt>transparent_union</tt>, <tt>unused</tt>,
|
||||
<tt>used</tt>, <tt>weak</tt><br>
|
||||
|
||||
<b>Unsupported:</b> <tt>aligned</tt>, <tt>mode</tt>, <tt>packed</tt>,
|
||||
<tt>section</tt>, <tt>shared</tt>, <tt>tls_model</tt>,
|
||||
<tt>vector_size</tt>, all target specific attributes.
|
||||
<tt>shared</tt>, <tt>tls_model</tt>,
|
||||
<tt>vector_size</tt>, all target specific attributes.
|
||||
</li>
|
||||
|
||||
<li><a href="http://gcc.gnu.org/onlinedocs/gcc/Type-Attributes.html#Type%20Attributes">Type Attributes</a>: Specifying attributes of types.<br>
|
||||
|
Loading…
x
Reference in New Issue
Block a user