summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Criswell <criswell@uiuc.edu>2005-05-17 16:08:29 +0000
committerJohn Criswell <criswell@uiuc.edu>2005-05-17 16:08:29 +0000
commit4447fc67ef2cb2524f04279c6f59fe205db9f8c7 (patch)
tree18ff7f896fa23c449338a403046c721e2d9c9a43
parent4d9d10c757d03d01ac5cc27cdd65a10cdd53a5eb (diff)
downloadllvm-4447fc67ef2cb2524f04279c6f59fe205db9f8c7.tar.gz
Merged Misha Modifications from Mainline.
llvm-svn: 22105
-rw-r--r--llvm/docs/WritingAnLLVMBackend.html28
1 files changed, 16 insertions, 12 deletions
diff --git a/llvm/docs/WritingAnLLVMBackend.html b/llvm/docs/WritingAnLLVMBackend.html
index dcea204e47cd..c215fc62a3f3 100644
--- a/llvm/docs/WritingAnLLVMBackend.html
+++ b/llvm/docs/WritingAnLLVMBackend.html
@@ -109,15 +109,16 @@ described the instruction set with the assembly printer generator in mind, that
step can be almost automated.</li>
</ul>
-<p>Now, for static code generation you also need to write an instruction
-selector for your platform: see <tt>lib/Target/*/*ISelSimple.cpp</tt> which
-is no longer "simple" but it gives you the idea: you have to be able to create
-MachineInstrs for any given LLVM instruction using the <tt>InstVisitor</tt>
-pattern, and produce a <tt>MachineFunction</tt> with
-<tt>MachineBasicBlock</tt>s full of <tt><a
-href="CodeGenerator.html#machineinstr">MachineInstr</a></tt>s for a
-corresponding LLVM Function. Creating an instruction selector is perhaps the
-most time-consuming part of creating a back-end.</p>
+<p>You also need to write an instruction selector for your platform. The
+recommended method is the <a
+href="CodeGenerator.html#instselect">pattern-matching instruction selector</a>,
+examples of which you can see in other targets:
+<tt>lib/Target/*/*ISelPattern.cpp</tt>. The former method for writing
+instruction selectors (<b>not</b> recommended for new targets) is evident in
+<tt>lib/Target/*/*ISelSimple.cpp</tt>, which are <tt>InstVisitor</tt>-based
+translators, generating code for an LLVM instruction at a time. Creating an
+instruction selector is perhaps the most time-consuming part of creating a
+back-end.</p>
<p>To create a JIT for your platform:</p>
@@ -229,10 +230,13 @@ how the C backend is written.</p>
<ul>
<li><a href="CodeGenerator.html">Code generator</a> -
describes some of the classes in code generation at a high level, but
- it is not (yet) complete.</li>
+ it is not (yet) complete</li>
<li><a href="TableGenFundamentals.html">TableGen fundamentals</a> -
- describes how to use TableGen to describe your target information succinctly
-</li>
+ describes how to use TableGen to describe your target information
+ succinctly</li>
+<li><a href="HowToSubmitABug.html#codegen">Debugging code generation with
+ bugpoint</a> - shows bugpoint usage scenarios to simplify backend
+ development</li>
</ul>
</div>