mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-18 12:29:21 +00:00
Serious cleanups. Make the TOC match the text for the class hierarchy,
move the sections of the class-h around in the right order, make it actually reflect the classes in LLVM today. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33838 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f369252d03
commit
2b78d967ea
@ -135,31 +135,27 @@ with another <tt>Value</tt></a> </li>
|
||||
<li><a href="#coreclasses">The Core LLVM Class Hierarchy Reference</a>
|
||||
<ul>
|
||||
<li><a href="#Type">The <tt>Type</tt> class</a> </li>
|
||||
<li><a href="#Module">The <tt>Module</tt> class</a></li>
|
||||
<li><a href="#Value">The <tt>Value</tt> class</a>
|
||||
<ul>
|
||||
<li><a href="#User">The <tt>User</tt> class</a>
|
||||
<ul>
|
||||
<li><a href="#User">The <tt>User</tt> class</a>
|
||||
<li><a href="#Instruction">The <tt>Instruction</tt> class</a></li>
|
||||
<li><a href="#Constant">The <tt>Constant</tt> class</a>
|
||||
<ul>
|
||||
<li><a href="#GlobalValue">The <tt>GlobalValue</tt> class</a>
|
||||
<ul>
|
||||
<li><a href="#Instruction">The <tt>Instruction</tt> class</a>
|
||||
<ul>
|
||||
<li><a href="#GetElementPtrInst">The <tt>GetElementPtrInst</tt> class</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#Module">The <tt>Module</tt> class</a></li>
|
||||
<li><a href="#Constant">The <tt>Constant</tt> class</a>
|
||||
<ul>
|
||||
<li><a href="#GlobalValue">The <tt>GlobalValue</tt> class</a>
|
||||
<ul>
|
||||
<li><a href="#BasicBlock">The <tt>BasicBlock</tt>class</a></li>
|
||||
<li><a href="#Function">The <tt>Function</tt> class</a></li>
|
||||
<li><a href="#GlobalVariable">The <tt>GlobalVariable</tt> class</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#Argument">The <tt>Argument</tt> class</a></li>
|
||||
<li><a href="#Function">The <tt>Function</tt> class</a></li>
|
||||
<li><a href="#GlobalVariable">The <tt>GlobalVariable</tt> class</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#BasicBlock">The <tt>BasicBlock</tt> class</a></li>
|
||||
<li><a href="#Argument">The <tt>Argument</tt> class</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
@ -2334,12 +2330,141 @@ the <tt>lib/VMCore</tt> directory.</p>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="Module">The <tt>Module</tt> class</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<p><tt>#include "<a
|
||||
href="/doxygen/Module_8h-source.html">llvm/Module.h</a>"</tt><br> doxygen info:
|
||||
<a href="/doxygen/classllvm_1_1Module.html">Module Class</a></p>
|
||||
|
||||
<p>The <tt>Module</tt> class represents the top level structure present in LLVM
|
||||
programs. An LLVM module is effectively either a translation unit of the
|
||||
original program or a combination of several translation units merged by the
|
||||
linker. The <tt>Module</tt> class keeps track of a list of <a
|
||||
href="#Function"><tt>Function</tt></a>s, a list of <a
|
||||
href="#GlobalVariable"><tt>GlobalVariable</tt></a>s, and a <a
|
||||
href="#SymbolTable"><tt>SymbolTable</tt></a>. Additionally, it contains a few
|
||||
helpful member functions that try to make common operations easy.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- _______________________________________________________________________ -->
|
||||
<div class="doc_subsubsection">
|
||||
<a name="m_Module">Important Public Members of the <tt>Module</tt> class</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<ul>
|
||||
<li><tt>Module::Module(std::string name = "")</tt></li>
|
||||
</ul>
|
||||
|
||||
<p>Constructing a <a href="#Module">Module</a> is easy. You can optionally
|
||||
provide a name for it (probably based on the name of the translation unit).</p>
|
||||
|
||||
<ul>
|
||||
<li><tt>Module::iterator</tt> - Typedef for function list iterator<br>
|
||||
<tt>Module::const_iterator</tt> - Typedef for const_iterator.<br>
|
||||
|
||||
<tt>begin()</tt>, <tt>end()</tt>
|
||||
<tt>size()</tt>, <tt>empty()</tt>
|
||||
|
||||
<p>These are forwarding methods that make it easy to access the contents of
|
||||
a <tt>Module</tt> object's <a href="#Function"><tt>Function</tt></a>
|
||||
list.</p></li>
|
||||
|
||||
<li><tt>Module::FunctionListType &getFunctionList()</tt>
|
||||
|
||||
<p> Returns the list of <a href="#Function"><tt>Function</tt></a>s. This is
|
||||
necessary to use when you need to update the list or perform a complex
|
||||
action that doesn't have a forwarding method.</p>
|
||||
|
||||
<p><!-- Global Variable --></p></li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<ul>
|
||||
<li><tt>Module::global_iterator</tt> - Typedef for global variable list iterator<br>
|
||||
|
||||
<tt>Module::const_global_iterator</tt> - Typedef for const_iterator.<br>
|
||||
|
||||
<tt>global_begin()</tt>, <tt>global_end()</tt>
|
||||
<tt>global_size()</tt>, <tt>global_empty()</tt>
|
||||
|
||||
<p> These are forwarding methods that make it easy to access the contents of
|
||||
a <tt>Module</tt> object's <a
|
||||
href="#GlobalVariable"><tt>GlobalVariable</tt></a> list.</p></li>
|
||||
|
||||
<li><tt>Module::GlobalListType &getGlobalList()</tt>
|
||||
|
||||
<p>Returns the list of <a
|
||||
href="#GlobalVariable"><tt>GlobalVariable</tt></a>s. This is necessary to
|
||||
use when you need to update the list or perform a complex action that
|
||||
doesn't have a forwarding method.</p>
|
||||
|
||||
<p><!-- Symbol table stuff --> </p></li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<ul>
|
||||
<li><tt><a href="#SymbolTable">SymbolTable</a> *getSymbolTable()</tt>
|
||||
|
||||
<p>Return a reference to the <a href="#SymbolTable"><tt>SymbolTable</tt></a>
|
||||
for this <tt>Module</tt>.</p>
|
||||
|
||||
<p><!-- Convenience methods --></p></li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<ul>
|
||||
<li><tt><a href="#Function">Function</a> *getFunction(const std::string
|
||||
&Name, const <a href="#FunctionType">FunctionType</a> *Ty)</tt>
|
||||
|
||||
<p>Look up the specified function in the <tt>Module</tt> <a
|
||||
href="#SymbolTable"><tt>SymbolTable</tt></a>. If it does not exist, return
|
||||
<tt>null</tt>.</p></li>
|
||||
|
||||
<li><tt><a href="#Function">Function</a> *getOrInsertFunction(const
|
||||
std::string &Name, const <a href="#FunctionType">FunctionType</a> *T)</tt>
|
||||
|
||||
<p>Look up the specified function in the <tt>Module</tt> <a
|
||||
href="#SymbolTable"><tt>SymbolTable</tt></a>. If it does not exist, add an
|
||||
external declaration for the function and return it.</p></li>
|
||||
|
||||
<li><tt>std::string getTypeName(const <a href="#Type">Type</a> *Ty)</tt>
|
||||
|
||||
<p>If there is at least one entry in the <a
|
||||
href="#SymbolTable"><tt>SymbolTable</tt></a> for the specified <a
|
||||
href="#Type"><tt>Type</tt></a>, return it. Otherwise return the empty
|
||||
string.</p></li>
|
||||
|
||||
<li><tt>bool addTypeName(const std::string &Name, const <a
|
||||
href="#Type">Type</a> *Ty)</tt>
|
||||
|
||||
<p>Insert an entry in the <a href="#SymbolTable"><tt>SymbolTable</tt></a>
|
||||
mapping <tt>Name</tt> to <tt>Ty</tt>. If there is already an entry for this
|
||||
name, true is returned and the <a
|
||||
href="#SymbolTable"><tt>SymbolTable</tt></a> is not modified.</p></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="Value">The <tt>Value</tt> class</a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="doc_text">
|
||||
|
||||
<p><tt>#include "<a href="/doxygen/Value_8h-source.html">llvm/Value.h</a>"</tt>
|
||||
<br>
|
||||
@ -2587,95 +2712,60 @@ and it has no name</p></li>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="BasicBlock">The <tt>BasicBlock</tt> class</a>
|
||||
<a name="Constant">The <tt>Constant</tt> class and subclasses</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<p><tt>#include "<a
|
||||
href="/doxygen/BasicBlock_8h-source.html">llvm/BasicBlock.h</a>"</tt><br>
|
||||
doxygen info: <a href="/doxygen/structllvm_1_1BasicBlock.html">BasicBlock
|
||||
Class</a><br>
|
||||
Superclass: <a href="#Value"><tt>Value</tt></a></p>
|
||||
|
||||
<p>This class represents a single entry multiple exit section of the code,
|
||||
commonly known as a basic block by the compiler community. The
|
||||
<tt>BasicBlock</tt> class maintains a list of <a
|
||||
href="#Instruction"><tt>Instruction</tt></a>s, which form the body of the block.
|
||||
Matching the language definition, the last element of this list of instructions
|
||||
is always a terminator instruction (a subclass of the <a
|
||||
href="#TerminatorInst"><tt>TerminatorInst</tt></a> class).</p>
|
||||
|
||||
<p>In addition to tracking the list of instructions that make up the block, the
|
||||
<tt>BasicBlock</tt> class also keeps track of the <a
|
||||
href="#Function"><tt>Function</tt></a> that it is embedded into.</p>
|
||||
|
||||
<p>Note that <tt>BasicBlock</tt>s themselves are <a
|
||||
href="#Value"><tt>Value</tt></a>s, because they are referenced by instructions
|
||||
like branches and can go in the switch tables. <tt>BasicBlock</tt>s have type
|
||||
<tt>label</tt>.</p>
|
||||
<p>Constant represents a base class for different types of constants. It
|
||||
is subclassed by ConstantInt, ConstantArray, etc. for representing
|
||||
the various types of Constants. <a href="#GlobalValue">GlobalValue</a> is also
|
||||
a subclass, which represents the address of a global variable or function.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- _______________________________________________________________________ -->
|
||||
<div class="doc_subsubsection">
|
||||
<a name="m_BasicBlock">Important Public Members of the <tt>BasicBlock</tt>
|
||||
class</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_subsubsection">Important Subclasses of Constant </div>
|
||||
<div class="doc_text">
|
||||
|
||||
<ul>
|
||||
|
||||
<li><tt>BasicBlock(const std::string &Name = "", </tt><tt><a
|
||||
href="#Function">Function</a> *Parent = 0)</tt>
|
||||
|
||||
<p>The <tt>BasicBlock</tt> constructor is used to create new basic blocks for
|
||||
insertion into a function. The constructor optionally takes a name for the new
|
||||
block, and a <a href="#Function"><tt>Function</tt></a> to insert it into. If
|
||||
the <tt>Parent</tt> parameter is specified, the new <tt>BasicBlock</tt> is
|
||||
automatically inserted at the end of the specified <a
|
||||
href="#Function"><tt>Function</tt></a>, if not specified, the BasicBlock must be
|
||||
manually inserted into the <a href="#Function"><tt>Function</tt></a>.</p></li>
|
||||
|
||||
<li><tt>BasicBlock::iterator</tt> - Typedef for instruction list iterator<br>
|
||||
<tt>BasicBlock::const_iterator</tt> - Typedef for const_iterator.<br>
|
||||
<tt>begin()</tt>, <tt>end()</tt>, <tt>front()</tt>, <tt>back()</tt>,
|
||||
<tt>size()</tt>, <tt>empty()</tt>
|
||||
STL-style functions for accessing the instruction list.
|
||||
|
||||
<p>These methods and typedefs are forwarding functions that have the same
|
||||
semantics as the standard library methods of the same names. These methods
|
||||
expose the underlying instruction list of a basic block in a way that is easy to
|
||||
manipulate. To get the full complement of container operations (including
|
||||
operations to update the list), you must use the <tt>getInstList()</tt>
|
||||
method.</p></li>
|
||||
|
||||
<li><tt>BasicBlock::InstListType &getInstList()</tt>
|
||||
|
||||
<p>This method is used to get access to the underlying container that actually
|
||||
holds the Instructions. This method must be used when there isn't a forwarding
|
||||
function in the <tt>BasicBlock</tt> class for the operation that you would like
|
||||
to perform. Because there are no forwarding functions for "updating"
|
||||
operations, you need to use this if you want to update the contents of a
|
||||
<tt>BasicBlock</tt>.</p></li>
|
||||
|
||||
<li><tt><a href="#Function">Function</a> *getParent()</tt>
|
||||
|
||||
<p> Returns a pointer to <a href="#Function"><tt>Function</tt></a> the block is
|
||||
embedded into, or a null pointer if it is homeless.</p></li>
|
||||
|
||||
<li><tt><a href="#TerminatorInst">TerminatorInst</a> *getTerminator()</tt>
|
||||
|
||||
<p> Returns a pointer to the terminator instruction that appears at the end of
|
||||
the <tt>BasicBlock</tt>. If there is no terminator instruction, or if the last
|
||||
instruction in the block is not a terminator, then a null pointer is
|
||||
returned.</p></li>
|
||||
|
||||
<li>ConstantInt : This subclass of Constant represents an integer constant of
|
||||
any width.
|
||||
<ul>
|
||||
<li><tt>int64_t getSExtValue() const</tt>: Returns the underlying value of
|
||||
this constant as a sign extended signed integer value.</li>
|
||||
<li><tt>uint64_t getZExtValue() const</tt>: Returns the underlying value
|
||||
of this constant as a zero extended unsigned integer value.</li>
|
||||
<li><tt>static ConstantInt* get(const Type *Ty, uint64_t Val)</tt>:
|
||||
Returns the ConstantInt object that represents the value provided by
|
||||
<tt>Val</tt> for integer type <tt>Ty</tt>.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>ConstantFP : This class represents a floating point constant.
|
||||
<ul>
|
||||
<li><tt>double getValue() const</tt>: Returns the underlying value of
|
||||
this constant. </li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>ConstantArray : This represents a constant array.
|
||||
<ul>
|
||||
<li><tt>const std::vector<Use> &getValues() const</tt>: Returns
|
||||
a vector of component constants that makeup this array. </li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>ConstantStruct : This represents a constant struct.
|
||||
<ul>
|
||||
<li><tt>const std::vector<Use> &getValues() const</tt>: Returns
|
||||
a vector of component constants that makeup this array. </li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>GlobalValue : This represents either a global variable or a function. In
|
||||
either case, the value is a constant fixed address (after linking).
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="GlobalValue">The <tt>GlobalValue</tt> class</a>
|
||||
@ -2955,191 +3045,98 @@ never change at runtime).</p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="Module">The <tt>Module</tt> class</a>
|
||||
<a name="BasicBlock">The <tt>BasicBlock</tt> class</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<p><tt>#include "<a
|
||||
href="/doxygen/Module_8h-source.html">llvm/Module.h</a>"</tt><br> doxygen info:
|
||||
<a href="/doxygen/classllvm_1_1Module.html">Module Class</a></p>
|
||||
href="/doxygen/BasicBlock_8h-source.html">llvm/BasicBlock.h</a>"</tt><br>
|
||||
doxygen info: <a href="/doxygen/structllvm_1_1BasicBlock.html">BasicBlock
|
||||
Class</a><br>
|
||||
Superclass: <a href="#Value"><tt>Value</tt></a></p>
|
||||
|
||||
<p>The <tt>Module</tt> class represents the top level structure present in LLVM
|
||||
programs. An LLVM module is effectively either a translation unit of the
|
||||
original program or a combination of several translation units merged by the
|
||||
linker. The <tt>Module</tt> class keeps track of a list of <a
|
||||
href="#Function"><tt>Function</tt></a>s, a list of <a
|
||||
href="#GlobalVariable"><tt>GlobalVariable</tt></a>s, and a <a
|
||||
href="#SymbolTable"><tt>SymbolTable</tt></a>. Additionally, it contains a few
|
||||
helpful member functions that try to make common operations easy.</p>
|
||||
<p>This class represents a single entry multiple exit section of the code,
|
||||
commonly known as a basic block by the compiler community. The
|
||||
<tt>BasicBlock</tt> class maintains a list of <a
|
||||
href="#Instruction"><tt>Instruction</tt></a>s, which form the body of the block.
|
||||
Matching the language definition, the last element of this list of instructions
|
||||
is always a terminator instruction (a subclass of the <a
|
||||
href="#TerminatorInst"><tt>TerminatorInst</tt></a> class).</p>
|
||||
|
||||
<p>In addition to tracking the list of instructions that make up the block, the
|
||||
<tt>BasicBlock</tt> class also keeps track of the <a
|
||||
href="#Function"><tt>Function</tt></a> that it is embedded into.</p>
|
||||
|
||||
<p>Note that <tt>BasicBlock</tt>s themselves are <a
|
||||
href="#Value"><tt>Value</tt></a>s, because they are referenced by instructions
|
||||
like branches and can go in the switch tables. <tt>BasicBlock</tt>s have type
|
||||
<tt>label</tt>.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- _______________________________________________________________________ -->
|
||||
<div class="doc_subsubsection">
|
||||
<a name="m_Module">Important Public Members of the <tt>Module</tt> class</a>
|
||||
<a name="m_BasicBlock">Important Public Members of the <tt>BasicBlock</tt>
|
||||
class</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<ul>
|
||||
<li><tt>Module::Module(std::string name = "")</tt></li>
|
||||
</ul>
|
||||
|
||||
<p>Constructing a <a href="#Module">Module</a> is easy. You can optionally
|
||||
provide a name for it (probably based on the name of the translation unit).</p>
|
||||
<li><tt>BasicBlock(const std::string &Name = "", </tt><tt><a
|
||||
href="#Function">Function</a> *Parent = 0)</tt>
|
||||
|
||||
<ul>
|
||||
<li><tt>Module::iterator</tt> - Typedef for function list iterator<br>
|
||||
<tt>Module::const_iterator</tt> - Typedef for const_iterator.<br>
|
||||
<p>The <tt>BasicBlock</tt> constructor is used to create new basic blocks for
|
||||
insertion into a function. The constructor optionally takes a name for the new
|
||||
block, and a <a href="#Function"><tt>Function</tt></a> to insert it into. If
|
||||
the <tt>Parent</tt> parameter is specified, the new <tt>BasicBlock</tt> is
|
||||
automatically inserted at the end of the specified <a
|
||||
href="#Function"><tt>Function</tt></a>, if not specified, the BasicBlock must be
|
||||
manually inserted into the <a href="#Function"><tt>Function</tt></a>.</p></li>
|
||||
|
||||
<tt>begin()</tt>, <tt>end()</tt>
|
||||
<tt>size()</tt>, <tt>empty()</tt>
|
||||
<li><tt>BasicBlock::iterator</tt> - Typedef for instruction list iterator<br>
|
||||
<tt>BasicBlock::const_iterator</tt> - Typedef for const_iterator.<br>
|
||||
<tt>begin()</tt>, <tt>end()</tt>, <tt>front()</tt>, <tt>back()</tt>,
|
||||
<tt>size()</tt>, <tt>empty()</tt>
|
||||
STL-style functions for accessing the instruction list.
|
||||
|
||||
<p>These are forwarding methods that make it easy to access the contents of
|
||||
a <tt>Module</tt> object's <a href="#Function"><tt>Function</tt></a>
|
||||
list.</p></li>
|
||||
<p>These methods and typedefs are forwarding functions that have the same
|
||||
semantics as the standard library methods of the same names. These methods
|
||||
expose the underlying instruction list of a basic block in a way that is easy to
|
||||
manipulate. To get the full complement of container operations (including
|
||||
operations to update the list), you must use the <tt>getInstList()</tt>
|
||||
method.</p></li>
|
||||
|
||||
<li><tt>Module::FunctionListType &getFunctionList()</tt>
|
||||
<li><tt>BasicBlock::InstListType &getInstList()</tt>
|
||||
|
||||
<p> Returns the list of <a href="#Function"><tt>Function</tt></a>s. This is
|
||||
necessary to use when you need to update the list or perform a complex
|
||||
action that doesn't have a forwarding method.</p>
|
||||
<p>This method is used to get access to the underlying container that actually
|
||||
holds the Instructions. This method must be used when there isn't a forwarding
|
||||
function in the <tt>BasicBlock</tt> class for the operation that you would like
|
||||
to perform. Because there are no forwarding functions for "updating"
|
||||
operations, you need to use this if you want to update the contents of a
|
||||
<tt>BasicBlock</tt>.</p></li>
|
||||
|
||||
<p><!-- Global Variable --></p></li>
|
||||
</ul>
|
||||
<li><tt><a href="#Function">Function</a> *getParent()</tt>
|
||||
|
||||
<hr>
|
||||
<p> Returns a pointer to <a href="#Function"><tt>Function</tt></a> the block is
|
||||
embedded into, or a null pointer if it is homeless.</p></li>
|
||||
|
||||
<ul>
|
||||
<li><tt>Module::global_iterator</tt> - Typedef for global variable list iterator<br>
|
||||
<li><tt><a href="#TerminatorInst">TerminatorInst</a> *getTerminator()</tt>
|
||||
|
||||
<tt>Module::const_global_iterator</tt> - Typedef for const_iterator.<br>
|
||||
<p> Returns a pointer to the terminator instruction that appears at the end of
|
||||
the <tt>BasicBlock</tt>. If there is no terminator instruction, or if the last
|
||||
instruction in the block is not a terminator, then a null pointer is
|
||||
returned.</p></li>
|
||||
|
||||
<tt>global_begin()</tt>, <tt>global_end()</tt>
|
||||
<tt>global_size()</tt>, <tt>global_empty()</tt>
|
||||
|
||||
<p> These are forwarding methods that make it easy to access the contents of
|
||||
a <tt>Module</tt> object's <a
|
||||
href="#GlobalVariable"><tt>GlobalVariable</tt></a> list.</p></li>
|
||||
|
||||
<li><tt>Module::GlobalListType &getGlobalList()</tt>
|
||||
|
||||
<p>Returns the list of <a
|
||||
href="#GlobalVariable"><tt>GlobalVariable</tt></a>s. This is necessary to
|
||||
use when you need to update the list or perform a complex action that
|
||||
doesn't have a forwarding method.</p>
|
||||
|
||||
<p><!-- Symbol table stuff --> </p></li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<ul>
|
||||
<li><tt><a href="#SymbolTable">SymbolTable</a> *getSymbolTable()</tt>
|
||||
|
||||
<p>Return a reference to the <a href="#SymbolTable"><tt>SymbolTable</tt></a>
|
||||
for this <tt>Module</tt>.</p>
|
||||
|
||||
<p><!-- Convenience methods --></p></li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<ul>
|
||||
<li><tt><a href="#Function">Function</a> *getFunction(const std::string
|
||||
&Name, const <a href="#FunctionType">FunctionType</a> *Ty)</tt>
|
||||
|
||||
<p>Look up the specified function in the <tt>Module</tt> <a
|
||||
href="#SymbolTable"><tt>SymbolTable</tt></a>. If it does not exist, return
|
||||
<tt>null</tt>.</p></li>
|
||||
|
||||
<li><tt><a href="#Function">Function</a> *getOrInsertFunction(const
|
||||
std::string &Name, const <a href="#FunctionType">FunctionType</a> *T)</tt>
|
||||
|
||||
<p>Look up the specified function in the <tt>Module</tt> <a
|
||||
href="#SymbolTable"><tt>SymbolTable</tt></a>. If it does not exist, add an
|
||||
external declaration for the function and return it.</p></li>
|
||||
|
||||
<li><tt>std::string getTypeName(const <a href="#Type">Type</a> *Ty)</tt>
|
||||
|
||||
<p>If there is at least one entry in the <a
|
||||
href="#SymbolTable"><tt>SymbolTable</tt></a> for the specified <a
|
||||
href="#Type"><tt>Type</tt></a>, return it. Otherwise return the empty
|
||||
string.</p></li>
|
||||
|
||||
<li><tt>bool addTypeName(const std::string &Name, const <a
|
||||
href="#Type">Type</a> *Ty)</tt>
|
||||
|
||||
<p>Insert an entry in the <a href="#SymbolTable"><tt>SymbolTable</tt></a>
|
||||
mapping <tt>Name</tt> to <tt>Ty</tt>. If there is already an entry for this
|
||||
name, true is returned and the <a
|
||||
href="#SymbolTable"><tt>SymbolTable</tt></a> is not modified.</p></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="Constant">The <tt>Constant</tt> class and subclasses</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<p>Constant represents a base class for different types of constants. It
|
||||
is subclassed by ConstantInt, ConstantArray, etc. for representing
|
||||
the various types of Constants.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- _______________________________________________________________________ -->
|
||||
<div class="doc_subsubsection">
|
||||
<a name="m_Constant">Important Public Methods</a>
|
||||
</div>
|
||||
<div class="doc_text">
|
||||
</div>
|
||||
|
||||
<!-- _______________________________________________________________________ -->
|
||||
<div class="doc_subsubsection">Important Subclasses of Constant </div>
|
||||
<div class="doc_text">
|
||||
<ul>
|
||||
<li>ConstantInt : This subclass of Constant represents an integer constant of
|
||||
any width, including boolean (1 bit integer).
|
||||
<ul>
|
||||
<li><tt>int64_t getSExtValue() const</tt>: Returns the underlying value of
|
||||
this constant as a sign extended signed integer value.</li>
|
||||
<li><tt>uint64_t getZExtValue() const</tt>: Returns the underlying value
|
||||
of this constant as a zero extended unsigned integer value.</li>
|
||||
<li><tt>static ConstantInt* get(const Type *Ty, uint64_t Val)</tt>:
|
||||
Returns the ConstantInt object that represents the value provided by
|
||||
<tt>Val</tt> for integer type <tt>Ty</tt>.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>ConstantFP : This class represents a floating point constant.
|
||||
<ul>
|
||||
<li><tt>double getValue() const</tt>: Returns the underlying value of
|
||||
this constant. </li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>ConstantArray : This represents a constant array.
|
||||
<ul>
|
||||
<li><tt>const std::vector<Use> &getValues() const</tt>: Returns
|
||||
a vector of component constants that makeup this array. </li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>ConstantStruct : This represents a constant struct.
|
||||
<ul>
|
||||
<li><tt>const std::vector<Use> &getValues() const</tt>: Returns
|
||||
a vector of component constants that makeup this array. </li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>GlobalValue : This represents either a global variable or a function. In
|
||||
either case, the value is a constant fixed address (after linking).
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- ======================================================================= -->
|
||||
<div class="doc_subsection">
|
||||
<a name="Argument">The <tt>Argument</tt> class</a>
|
||||
|
Loading…
Reference in New Issue
Block a user