From bdbcb8a260ecf517e6ea4796c1ffe1842d30d4d3 Mon Sep 17 00:00:00 2001
From: Reid Spencer
The other implication of this design is that it is possible to design and +
This design also implies that it is possible to design and implement radically different code generators in the LLVM system that do not make use of any of the built-in components. Doing so is not recommended at all, but could be required for radically different targets that do not fit into the @@ -164,9 +164,9 @@ quality code generation for standard register-based microprocessors. Code generation in this model is divided into the following stages:
The code generator is based on the assumption that the instruction selector will use an optimal pattern matching selector to create high-quality sequences of -native code. Alternative code generator designs based on pattern expansion and -aggressive iterative peephole optimization are much slower. This design is -designed to permit efficient compilation (important for JIT environments) and -aggressive optimization (used when generate code offline) by allowing components -of varying levels of sophisication to be used for any step of compilation.
+native instructions. Alternative code generator designs based on pattern +expansion and +aggressive iterative peephole optimization are much slower. This design +permits efficient compilation (important for JIT environments) and +aggressive optimization (used when generating code offline) by allowing +components of varying levels of sophisication to be used for any step of +compilation.In addition to these stages, target implementations can insert arbitrary @@ -253,7 +255,7 @@ as inputs or other algorithm-specific data structures).
All of the target description classes (except the TargetData class) are designed to be subclassed by the concrete target implementation, and have virtual methods implemented. To -get to these implementations, TargetMachine class provides accessors that should be implemented by the target.
@@ -269,7 +271,7 @@ should be implemented by the target.The TargetMachine class provides virtual methods that are used to access the target-specific implementations of the various target description classes (with the getInstrInfo, getRegisterInfo, -getFrameInfo, ... methods). This class is designed to be subclassed by +getFrameInfo, ... methods). This class is designed to be specialized by a concrete target implementation (e.g., X86TargetMachine) which implements the various virtual methods. The only required target description class is the TargetData class, but if the