<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                      "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>Extending LLVM: Adding instructions, intrinsics, types, etc.</title>
  <link rel="stylesheet" href="llvm.css" type="text/css">
</head>

<body>

<h1>
  Extending LLVM: Adding instructions, intrinsics, types, etc.
</h1>

<ol>
  <li><a href="#introduction">Introduction and Warning</a></li>
  <li><a href="#intrinsic">Adding a new intrinsic function</a></li>
  <li><a href="#instruction">Adding a new instruction</a></li>
  <li><a href="#sdnode">Adding a new SelectionDAG node</a></li>
  <li><a href="#type">Adding a new type</a>
  <ol>
    <li><a href="#fund_type">Adding a new fundamental type</a></li>
    <li><a href="#derived_type">Adding a new derived type</a></li>
  </ol></li>
</ol>

<div class="doc_author">    
  <p>Written by <a href="http://misha.brukman.net">Misha Brukman</a>,
  Brad Jones, Nate Begeman,
  and <a href="http://nondot.org/sabre">Chris Lattner</a></p>
</div>

<!-- *********************************************************************** -->
<h2>
  <a name="introduction">Introduction and Warning</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>During the course of using LLVM, you may wish to customize it for your
research project or for experimentation. At this point, you may realize that
you need to add something to LLVM, whether it be a new fundamental type, a new
intrinsic function, or a whole new instruction.</p>

<p>When you come to this realization, stop and think. Do you really need to
extend LLVM? Is it a new fundamental capability that LLVM does not support at
its current incarnation or can it be synthesized from already pre-existing LLVM
elements? If you are not sure, ask on the <a
href="http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVM-dev</a> list. The
reason is that extending LLVM will get involved as you need to update all the
different passes that you intend to use with your extension, and there are
<em>many</em> LLVM analyses and transformations, so it may be quite a bit of
work.</p>

<p>Adding an <a href="#intrinsic">intrinsic function</a> is far easier than
adding an instruction, and is transparent to optimization passes.  If your added
functionality can be expressed as a
function call, an intrinsic function is the method of choice for LLVM
extension.</p>

<p>Before you invest a significant amount of effort into a non-trivial
extension, <span class="doc_warning">ask on the list</span> if what you are
looking to do can be done with already-existing infrastructure, or if maybe
someone else is already working on it. You will save yourself a lot of time and
effort by doing so.</p>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="intrinsic">Adding a new intrinsic function</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>Adding a new intrinsic function to LLVM is much easier than adding a new
instruction.  Almost all extensions to LLVM should start as an intrinsic
function and then be turned into an instruction if warranted.</p>

<ol>
<li><tt>llvm/docs/LangRef.html</tt>:
    Document the intrinsic.  Decide whether it is code generator specific and
    what the restrictions are.  Talk to other people about it so that you are
    sure it's a good idea.</li>

<li><tt>llvm/include/llvm/Intrinsics*.td</tt>:
    Add an entry for your intrinsic.  Describe its memory access characteristics
    for optimization (this controls whether it will be DCE'd, CSE'd, etc). Note
    that any intrinsic using the <tt>llvm_int_ty</tt> type for an argument will
    be deemed by <tt>tblgen</tt> as overloaded and the corresponding suffix 
    will be required on the intrinsic's name.</li>

<li><tt>llvm/lib/Analysis/ConstantFolding.cpp</tt>: If it is possible to 
    constant fold your intrinsic, add support to it in the 
    <tt>canConstantFoldCallTo</tt> and <tt>ConstantFoldCall</tt> functions.</li>

<li><tt>llvm/test/Regression/*</tt>: Add test cases for your test cases to the 
    test suite</li>
</ol>

<p>Once the intrinsic has been added to the system, you must add code generator
support for it.  Generally you must do the following steps:</p>

<dl>
<dt>Add support to the C backend in <tt>lib/Target/CBackend/</tt></dt>

<dd>Depending on the intrinsic, there are a few ways to implement this.  For
    most intrinsics, it makes sense to add code to lower your intrinsic in
    <tt>LowerIntrinsicCall</tt> in <tt>lib/CodeGen/IntrinsicLowering.cpp</tt>.
    Second, if it makes sense to lower the intrinsic to an expanded sequence of
    C code in all cases, just emit the expansion in <tt>visitCallInst</tt> in
    <tt>Writer.cpp</tt>.  If the intrinsic has some way to express it with GCC
    (or any other compiler) extensions, it can be conditionally supported based
    on the compiler compiling the CBE output (see <tt>llvm.prefetch</tt> for an
    example).  Third, if the intrinsic really has no way to be lowered, just
    have the code generator emit code that prints an error message and calls
    abort if executed.</dd>

<dt>Add support to the .td file for the target(s) of your choice in 
   <tt>lib/Target/*/*.td</tt>.</dt>

<dd>This is usually a matter of adding a pattern to the .td file that matches
    the intrinsic, though it may obviously require adding the instructions you
    want to generate as well.  There are lots of examples in the PowerPC and X86
    backend to follow.</dd>
</dl>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="sdnode">Adding a new SelectionDAG node</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p>As with intrinsics, adding a new SelectionDAG node to LLVM is much easier
than adding a new instruction.  New nodes are often added to help represent
instructions common to many targets.  These nodes often map to an LLVM
instruction (add, sub) or intrinsic (byteswap, population count).  In other
cases, new nodes have been added to allow many targets to perform a common task
(converting between floating point and integer representation) or capture more
complicated behavior in a single node (rotate).</p>

<ol>
<li><tt>include/llvm/CodeGen/ISDOpcodes.h</tt>:
    Add an enum value for the new SelectionDAG node.</li>
<li><tt>lib/CodeGen/SelectionDAG/SelectionDAG.cpp</tt>:
    Add code to print the node to <tt>getOperationName</tt>.  If your new node
    can be evaluated at compile time when given constant arguments (such as an
    add of a constant with another constant), find the <tt>getNode</tt> method
    that takes the appropriate number of arguments, and add a case for your node
    to the switch statement that performs constant folding for nodes that take
    the same number of arguments as your new node.</li>
<li><tt>lib/CodeGen/SelectionDAG/LegalizeDAG.cpp</tt>:
    Add code to <a href="CodeGenerator.html#selectiondag_legalize">legalize, 
    promote, and expand</a> the node as necessary.  At a minimum, you will need
    to add a case statement for your node in <tt>LegalizeOp</tt> which calls
    LegalizeOp on the node's operands, and returns a new node if any of the
    operands changed as a result of being legalized.  It is likely that not all
    targets supported by the SelectionDAG framework will natively support the
    new node.  In this case, you must also add code in your node's case
    statement in <tt>LegalizeOp</tt> to Expand your node into simpler, legal
    operations.  The case for <tt>ISD::UREM</tt> for expanding a remainder into
    a divide, multiply, and a subtract is a good example.</li>
<li><tt>lib/CodeGen/SelectionDAG/LegalizeDAG.cpp</tt>:
    If targets may support the new node being added only at certain sizes, you 
    will also need to add code to your node's case statement in 
    <tt>LegalizeOp</tt> to Promote your node's operands to a larger size, and 
    perform the correct operation.  You will also need to add code to 
    <tt>PromoteOp</tt> to do this as well.  For a good example, see 
    <tt>ISD::BSWAP</tt>,
    which promotes its operand to a wider size, performs the byteswap, and then
    shifts the correct bytes right to emulate the narrower byteswap in the
    wider type.</li>
<li><tt>lib/CodeGen/SelectionDAG/LegalizeDAG.cpp</tt>:
    Add a case for your node in <tt>ExpandOp</tt> to teach the legalizer how to
    perform the action represented by the new node on a value that has been
    split into high and low halves.  This case will be used to support your 
    node with a 64 bit operand on a 32 bit target.</li>
<li><tt>lib/CodeGen/SelectionDAG/DAGCombiner.cpp</tt>:
    If your node can be combined with itself, or other existing nodes in a 
    peephole-like fashion, add a visit function for it, and call that function
    from <tt></tt>.  There are several good examples for simple combines you
    can do; <tt>visitFABS</tt> and <tt>visitSRL</tt> are good starting places.
    </li>
<li><tt>lib/Target/PowerPC/PPCISelLowering.cpp</tt>:
    Each target has an implementation of the <tt>TargetLowering</tt> class,
    usually in its own file (although some targets include it in the same
    file as the DAGToDAGISel).  The default behavior for a target is to
    assume that your new node is legal for all types that are legal for
    that target.  If this target does not natively support your node, then
    tell the target to either Promote it (if it is supported at a larger
    type) or Expand it.  This will cause the code you wrote in 
    <tt>LegalizeOp</tt> above to decompose your new node into other legal
    nodes for this target.</li>
<li><tt>lib/Target/TargetSelectionDAG.td</tt>:
    Most current targets supported by LLVM generate code using the DAGToDAG
    method, where SelectionDAG nodes are pattern matched to target-specific
    nodes, which represent individual instructions.  In order for the targets
    to match an instruction to your new node, you must add a def for that node
    to the list in this file, with the appropriate type constraints. Look at
    <tt>add</tt>, <tt>bswap</tt>, and <tt>fadd</tt> for examples.</li>
<li><tt>lib/Target/PowerPC/PPCInstrInfo.td</tt>:
    Each target has a tablegen file that describes the target's instruction
    set.  For targets that use the DAGToDAG instruction selection framework,
    add a pattern for your new node that uses one or more target nodes.
    Documentation for this is a bit sparse right now, but there are several
    decent examples.  See the patterns for <tt>rotl</tt> in 
    <tt>PPCInstrInfo.td</tt>.</li>
<li>TODO: document complex patterns.</li>
<li><tt>llvm/test/Regression/CodeGen/*</tt>: Add test cases for your new node
    to the test suite.  <tt>llvm/test/Regression/CodeGen/X86/bswap.ll</tt> is
    a good example.</li>
</ol>

</div>

<!-- *********************************************************************** -->
<h2>
  <a name="instruction">Adding a new instruction</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p><span class="doc_warning">WARNING: adding instructions changes the bitcode
format, and it will take some effort to maintain compatibility with
the previous version.</span> Only add an instruction if it is absolutely
necessary.</p>

<ol>

<li><tt>llvm/include/llvm/Instruction.def</tt>:
    add a number for your instruction and an enum name</li>

<li><tt>llvm/include/llvm/Instructions.h</tt>:
    add a definition for the class that will represent your instruction</li>

<li><tt>llvm/include/llvm/Support/InstVisitor.h</tt>:
    add a prototype for a visitor to your new instruction type</li>

<li><tt>llvm/lib/AsmParser/Lexer.l</tt>:
    add a new token to parse your instruction from assembly text file</li>

<li><tt>llvm/lib/AsmParser/llvmAsmParser.y</tt>:
    add the grammar on how your instruction can be read and what it will
    construct as a result</li>

<li><tt>llvm/lib/Bitcode/Reader/Reader.cpp</tt>:
    add a case for your instruction and how it will be parsed from bitcode</li>

<li><tt>llvm/lib/VMCore/Instruction.cpp</tt>:
    add a case for how your instruction will be printed out to assembly</li>

<li><tt>llvm/lib/VMCore/Instructions.cpp</tt>:
    implement the class you defined in
    <tt>llvm/include/llvm/Instructions.h</tt></li>

<li>Test your instruction</li>

<li><tt>llvm/lib/Target/*</tt>: 
    Add support for your instruction to code generators, or add a lowering
    pass.</li>

<li><tt>llvm/test/Regression/*</tt>: add your test cases to the test suite.</li>

</ol>

<p>Also, you need to implement (or modify) any analyses or passes that you want
to understand this new instruction.</p>

</div>


<!-- *********************************************************************** -->
<h2>
  <a name="type">Adding a new type</a>
</h2>
<!-- *********************************************************************** -->

<div>

<p><span class="doc_warning">WARNING: adding new types changes the bitcode
format, and will break compatibility with currently-existing LLVM
installations.</span> Only add new types if it is absolutely necessary.</p>

<!-- ======================================================================= -->
<h3>
  <a name="fund_type">Adding a fundamental type</a>
</h3>

<div>

<ol>

<li><tt>llvm/include/llvm/Type.h</tt>:
    add enum for the new type; add static <tt>Type*</tt> for this type</li>

<li><tt>llvm/lib/VMCore/Type.cpp</tt>:
    add mapping from <tt>TypeID</tt> =&gt; <tt>Type*</tt>;
    initialize the static <tt>Type*</tt></li>

<li><tt>llvm/lib/AsmReader/Lexer.l</tt>:
    add ability to parse in the type from text assembly</li>

<li><tt>llvm/lib/AsmReader/llvmAsmParser.y</tt>:
    add a token for that type</li>

</ol>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="derived_type">Adding a derived type</a>
</h3>

<div>

<ol>
<li><tt>llvm/include/llvm/Type.h</tt>:
    add enum for the new type; add a forward declaration of the type
    also</li>

<li><tt>llvm/include/llvm/DerivedTypes.h</tt>:
    add new class to represent new class in the hierarchy; add forward 
    declaration to the TypeMap value type</li>

<li><tt>llvm/lib/VMCore/Type.cpp</tt>:
    add support for derived type to: 
<div class="doc_code">
<pre>
std::string getTypeDescription(const Type &amp;Ty,
  std::vector&lt;const Type*&gt; &amp;TypeStack)
bool TypesEqual(const Type *Ty, const Type *Ty2,
  std::map&lt;const Type*, const Type*&gt; &amp; EqTypes)
</pre>
</div>
    add necessary member functions for type, and factory methods</li>

<li><tt>llvm/lib/AsmReader/Lexer.l</tt>:
    add ability to parse in the type from text assembly</li>

<li><tt>llvm/lib/BitCode/Writer/Writer.cpp</tt>:
    modify <tt>void BitcodeWriter::outputType(const Type *T)</tt> to serialize
    your type</li>

<li><tt>llvm/lib/BitCode/Reader/Reader.cpp</tt>:
    modify <tt>const Type *BitcodeReader::ParseType()</tt> to read your data
    type</li> 

<li><tt>llvm/lib/VMCore/AsmWriter.cpp</tt>:
    modify
<div class="doc_code">
<pre>
void calcTypeName(const Type *Ty,
                  std::vector&lt;const Type*&gt; &amp;TypeStack,
                  std::map&lt;const Type*,std::string&gt; &amp;TypeNames,
                  std::string &amp; Result)
</pre>
</div>
    to output the new derived type
</li>  
 

</ol>

</div>

</div>

<!-- *********************************************************************** -->

<hr>
<address>
  <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
  src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
  <a href="http://validator.w3.org/check/referer"><img
  src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>

  <a href="http://llvm.org/">The LLVM Compiler Infrastructure</a>
  <br>
  Last modified: $Date: 2011-06-30 02:37:07 -0400 (Thu, 30 Jun 2011) $
</address>

</body>
</html>
