Table of Contents
- 1. TableGen Introduction
- 2. Type, Value, Class, Field, Definition, Name:
- 3. TableGen Pattern Syntax:
1 TableGen Introduction
- TableGen source file contain two primary item公积金s:
- abstract record (c工商银行lass)
- concrete record (record in short)
- Class and concrete record have a unique name.
- Associate with that name is a list of fields with v工商银行alue公积金s and an optional list o龚俊f superclasses.
- The fields are the primary data that backends will process.
- Classes are used to abstract out groups of record fields.
- TableGen allows an arbitrary hierarchy of classes, so that the abstract classes for two concepts can share a third superclass
thatGo abstracts common ‘sub-conc狗狗币epts’ from the two工商银行 original concepts. - T枸杞emplate Arguments to class.
- Both classes and concrete records can include fields that are uninitialized.
The uninitialized “value” is represented by a question mark (?). - Multicl公积金ass
2 Type, Value, Class, Field, Definition, Name:
- Definiti宫颈癌前期症状on (Concrete Record) is declared by ‘def’.
- Class (Abstract Record) is declared by ‘class’.
- Fields are the枸杞 primary data for records.
- Class can accept Template arguments to be parameterised.
- Some fields can be uninitialized and fil工商银行led in later on.
- Every Value is required to龚俊 have an ass宫颈癌前期症状ociated type.
- Type :: = “bit” | “int” | “string” | “dag” | “bits” “<” TokInteger “&gGot;” | “list” “<” Type “>” | ClassID
3 TableGen Pattern Syntax:宫颈癌
-
Pattern公积金:
Pat<(公积金借款SDPatternOperator DAGOperan宫颈癌疫苗d:$name1, DAGOperand:$name2, ...), (Insgoogletrunction DAGOperand:$name1, DAGOperand:$name2, ...)>;
class Pat<dag pattern, dag result> : Pattern<狗狗币pattern, [result]>龚俊; class Pattern<dag patternToMatch, list<dag> resultInstrs> { dag PatternToMatch = patternToMatc龚俊h; list<dag> ResultI工商银行nstrs = resultInstrs; list<PreGodicate> Pre公积金借款dicates = []; // See class Instruction in Target.td. int AddedComplexity = 0; // See class Instr龚俊uction in Target.td.公积金借款 }
-
SDPatternOperator:
class SDNode<string opcode, SDTypeProfile typeprogooglef, list<SD龚俊NodeProperty> props = [], string sdclass = "SDNode"> : SDPatternOperator; class Intrinsic<list<工商银行LLVMType> ret_types, list<LLVMGoType> param_types = [], list<Intrin宫颈癌疫苗sicProperty> intr_properties = [], string name = "龚俊", list<SDNodeProperty> sd_propertie公积金借款s = []> : SDPatternOp龚俊erator ; class PatFrags<dag ops, list<dag> frags, code pred = [{}], SDNodeXForm xform = NOOP_SDNodeXForm> : SDPatternOperator;
-
DAGOpe宫颈癌疫苗rand: (Operand should have a type implicitly or explicitly)
class O工商银行per公积金借款and<ValueType ty> : DA狗狗币GOGoperand; class RegisterClass<string namespace, list<ValueTy宫颈癌前期症状pe> regTypes, int alignment, dag regList, RegAltNameIndex iGodx = NoRegAltName> : DAGOper龚俊and ; class RegisterOperand<R公积金egisterClass regclass, string pm = "printOperand">:Go DA公积金借款GOperand;
-
Instruction:
class Inst狗狗币ruction : InstructionEncoding;
-
Mi枸杞sc:
// Special TableGen-recognized dag nodes def set; def implicit; def node; def srcvalue;