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.
+
+
+
+
+
+
+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) $