diff options
author | John Criswell <criswell@uiuc.edu> | 2005-05-17 16:08:29 +0000 |
---|---|---|
committer | John Criswell <criswell@uiuc.edu> | 2005-05-17 16:08:29 +0000 |
commit | 4447fc67ef2cb2524f04279c6f59fe205db9f8c7 (patch) | |
tree | 18ff7f896fa23c449338a403046c721e2d9c9a43 | |
parent | 4d9d10c757d03d01ac5cc27cdd65a10cdd53a5eb (diff) | |
download | llvm-4447fc67ef2cb2524f04279c6f59fe205db9f8c7.zip llvm-4447fc67ef2cb2524f04279c6f59fe205db9f8c7.tar.gz llvm-4447fc67ef2cb2524f04279c6f59fe205db9f8c7.tar.bz2 |
Merged Misha Modifications from Mainline.
llvm-svn: 22105
-rw-r--r-- | llvm/docs/WritingAnLLVMBackend.html | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/llvm/docs/WritingAnLLVMBackend.html b/llvm/docs/WritingAnLLVMBackend.html index dcea204..c215fc6 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> |