diff options
author | Misha Brukman <brukman+llvm@gmail.com> | 2005-05-17 02:27:30 +0000 |
---|---|---|
committer | Misha Brukman <brukman+llvm@gmail.com> | 2005-05-17 02:27:30 +0000 |
commit | 4937c9db28245bf5a24c07802c1e09365e25347c (patch) | |
tree | fb5f540241556570fe8429c189ba3db7488a808d /docs/WritingAnLLVMBackend.html | |
parent | a3bfc6f2531b4faddae9b129c0965cf8f0943f90 (diff) |
Recommend writing new instruction selectors using pattern-based mechanisms
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22098 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/WritingAnLLVMBackend.html')
-rw-r--r-- | docs/WritingAnLLVMBackend.html | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/docs/WritingAnLLVMBackend.html b/docs/WritingAnLLVMBackend.html index 3bd23b4604..abf91feb8a 100644 --- a/docs/WritingAnLLVMBackend.html +++ b/docs/WritingAnLLVMBackend.html @@ -109,15 +109,14 @@ 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 pattern-matching instruction selector. You can see +examples in other targets: <tt>lib/Target/*/*ISelPattern.cpp</tt>. The former +method for writing instruction selectors (<b>not</b> recommended) is +encapsulated 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> |