Incorporated Chris' comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12690 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Misha Brukman 2004-04-06 04:17:51 +00:00
parent a3ce42921c
commit b3b28275da

View File

@ -50,6 +50,12 @@ 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 easier than adding
an instruction, and is transparent to optimization passes which treat it as an
unanalyzable function. 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
@ -72,11 +78,12 @@ href="http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVM-dev</a>.</p>
<div class="doc_text">
<p><span class="doc_warning">WARNING: adding instructions changes the bytecode
format, and will break compatibility with currently-existing LLVM
installations.</span> Only add an instruction if it is absolutely
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>
@ -117,11 +124,6 @@ to understand this new instruction.</p>
<div class="doc_text">
<p>Adding an intrinsic function is easier than adding an instruction, and is
transparent to optimization passes which treat it as an unanalyzable function.
If your added functionality can be expressed as a function call, an intrinsic
function is the method of choice for LLVM extension.</p>
<ol>
<li><tt>llvm/include/llvm/Intrinsics.h</tt>: