From 522600a229b950314b5f4af84eba4f3e8a0ffea1 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sun, 2 Dec 2012 13:10:19 +0000 Subject: Vendor import of llvm release_32 branch r168974 (effectively, 3.2 RC2): http://llvm.org/svn/llvm-project/llvm/branches/release_32@168974 --- docs/WritingAnLLVMBackend.html | 36 ++++++++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 6 deletions(-) (limited to 'docs/WritingAnLLVMBackend.html') diff --git a/docs/WritingAnLLVMBackend.html b/docs/WritingAnLLVMBackend.html index 11517c212401..b7fdce490472 100644 --- a/docs/WritingAnLLVMBackend.html +++ b/docs/WritingAnLLVMBackend.html @@ -32,6 +32,7 @@
  • Instruction Set
  • @@ -314,14 +315,14 @@ represent target components. These methods are named get*Info, and are intended to obtain the instruction set (getInstrInfo), register set (getRegisterInfo), stack frame layout (getFrameInfo), and similar information. XXXTargetMachine must also implement the -getTargetData method to access an object with target-specific data +getDataLayout method to access an object with target-specific data characteristics, such as data type size and alignment requirements.

    For instance, for the SPARC target, the header file SparcTargetMachine.h declares prototypes for several get*Info -and getTargetData methods that simply return a class member. +and getDataLayout methods that simply return a class member.

    @@ -331,7 +332,7 @@ namespace llvm { class Module; class SparcTargetMachine : public LLVMTargetMachine { - const TargetData DataLayout; // Calculates type size & alignment + const DataLayout DataLayout; // Calculates type size & alignment SparcSubtarget Subtarget; SparcInstrInfo InstrInfo; TargetFrameInfo FrameInfo; @@ -348,7 +349,7 @@ public: virtual const TargetRegisterInfo *getRegisterInfo() const { return &InstrInfo.getRegisterInfo(); } - virtual const TargetData *getTargetData() const { return &DataLayout; } + virtual const DataLayout *getDataLayout() const { return &DataLayout; } static unsigned getModuleMatchQuality(const Module &M); // Pass Pipeline Configuration @@ -364,7 +365,7 @@ public:
  • getInstrInfo()
  • getRegisterInfo()
  • getFrameInfo()
  • -
  • getTargetData()
  • +
  • getDataLayout()
  • getSubtargetImpl()
  • @@ -1257,6 +1258,29 @@ the rd, rs1, and rs2 fields respectively.
    + +

    + Instruction Relation Mapping +

    + +
    + +

    +This TableGen feature is used to relate instructions with each other. It is +particularly useful when you have multiple instruction formats and need to +switch between them after instruction selection. This entire feature is driven +by relation models which can be defined in XXXInstrInfo.td files +according to the target-specific instruction set. Relation models are defined +using InstrMapping class as a base. TableGen parses all the models +and generates instruction relation maps using the specified information. +Relation maps are emitted as tables in the XXXGenInstrInfo.inc file +along with the functions to query them. For the detailed information on how to +use this feature, please refer to +How to add Instruction Mappings +document. +

    +
    +

    Implement a subclass of @@ -2526,7 +2550,7 @@ with assembler. Mason Woo and Misha Brukman
    The LLVM Compiler Infrastructure
    - Last modified: $Date: 2012-04-19 22:20:34 +0200 (Thu, 19 Apr 2012) $ + Last modified: $Date: 2012-10-25 17:54:06 +0200 (Thu, 25 Oct 2012) $ -- cgit v1.2.3