Lines Matching refs:Init

98 Init *BitRecTy::convertValue(BitsInit *BI) {
107 Init *BitRecTy::convertValue(IntInit *II) {
114 Init *BitRecTy::convertValue(TypedInit *VI) {
137 Init *BitsRecTy::convertValue(UnsetInit *UI) {
138 SmallVector<Init *, 16> NewBits(Size);
146 Init *BitsRecTy::convertValue(BitInit *UI) {
162 Init *BitsRecTy::convertValue(IntInit *II) {
168 SmallVector<Init *, 16> NewBits(Size);
176 Init *BitsRecTy::convertValue(BitsInit *BI) {
183 Init *BitsRecTy::convertValue(TypedInit *VI) {
188 SmallVector<Init *, 16> NewBits(Size);
198 Init *IntRecTy::convertValue(BitInit *BI) {
202 Init *IntRecTy::convertValue(BitsInit *BI) {
213 Init *IntRecTy::convertValue(TypedInit *TI) {
219 Init *StringRecTy::convertValue(UnOpInit *BO) {
221 Init *L = BO->getOperand()->convertInitializerTo(this);
231 Init *StringRecTy::convertValue(BinOpInit *BO) {
233 Init *L = BO->getLHS()->convertInitializerTo(this);
234 Init *R = BO->getRHS()->convertInitializerTo(this);
245 Init *StringRecTy::convertValue(TypedInit *TI) {
255 Init *ListRecTy::convertValue(ListInit *LI) {
256 std::vector<Init*> Elements;
261 if (Init *CI = LI->getElement(i)->convertInitializerTo(Ty))
274 Init *ListRecTy::convertValue(TypedInit *TI) {
282 Init *DagRecTy::convertValue(TypedInit *TI) {
288 Init *DagRecTy::convertValue(UnOpInit *BO) {
290 Init *L = BO->getOperand()->convertInitializerTo(this);
299 Init *DagRecTy::convertValue(BinOpInit *BO) {
301 Init *L = BO->getLHS()->convertInitializerTo(this);
302 Init *R = BO->getRHS()->convertInitializerTo(this);
319 Init *RecordRecTy::convertValue(DefInit *DI) {
326 Init *RecordRecTy::convertValue(TypedInit *TI) {
405 void Init::anchor() { }
406 void Init::dump() const { return print(errs()); }
425 ProfileBitsInit(FoldingSetNodeID &ID, ArrayRef<Init *> Range) {
428 for (ArrayRef<Init *>::iterator i = Range.begin(),
435 BitsInit *BitsInit::get(ArrayRef<Init *> Range) {
456 Init *
458 SmallVector<Init *, 16> NewBits(Bits.size());
472 if (Init *Bit = getBit(e-i-1))
483 static Init *fixBitInit(const RecordVal *RV, Init *Before, Init *After) {
492 Init *BitsInit::resolveReferences(Record &R, const RecordVal *RV) const {
494 SmallVector<Init *, 16> NewBits(getNumBits());
496 Init *CachedInit = 0;
497 Init *CachedBitVar = 0;
501 Init *CurBit = Bits[i];
502 Init *CurBitVar = CurBit->getBitVar();
508 Init *Bit = CachedInit->getBit(CurBit->getBitNum());
516 Init *B;
526 Init *Bit = CurBitVar->getBit(CurBit->getBitNum());
550 Init *
552 SmallVector<Init *, 16> NewBits(Bits.size());
575 ArrayRef<Init *> Range,
580 for (ArrayRef<Init *>::iterator i = Range.begin(),
587 ListInit *ListInit::get(ArrayRef<Init *> Range, RecTy *EltTy) {
613 Init *
615 std::vector<Init*> Vals;
631 Init *ListInit::resolveReferences(Record &R, const RecordVal *RV) const {
632 std::vector<Init*> Resolved;
637 Init *E;
638 Init *CurElt = getElement(i);
653 Init *ListInit::resolveListElementReference(Record &R, const RecordVal *IRV,
657 Init *E = getElement(Elt);
675 Init *OpInit::resolveListElementReference(Record &R, const RecordVal *IRV,
677 Init *Resolved = resolveReferences(R, IRV);
687 Init *New = Typed->resolveListElementReference(R, IRV, Elt);
697 Init *OpInit::getBit(unsigned Bit) const {
703 UnOpInit *UnOpInit::get(UnaryOp opc, Init *lhs, RecTy *Type) {
704 typedef std::pair<std::pair<unsigned, Init *>, RecTy *> Key;
716 Init *UnOpInit::Fold(Record *CurRec, MultiClass *CurMultiClass) const {
747 Init *TemplateArgName = QualifyName(*CurRec, CurMultiClass, Name,
762 Init *MCName = QualifyName(CurMultiClass->Rec, CurMultiClass, Name, "::");
803 ArrayRef<Init *>::iterator begin = LHSl->getValues().begin()+1;
804 ArrayRef<Init *>::iterator end = LHSl->getValues().end();
806 ListInit::get(ArrayRef<Init *>(begin, end - begin),
836 Init *UnOpInit::resolveReferences(Record &R, const RecordVal *RV) const {
837 Init *lhs = LHS->resolveReferences(R, RV);
855 BinOpInit *BinOpInit::get(BinaryOp opc, Init *lhs,
856 Init *rhs, RecTy *Type) {
858 std::pair<std::pair<unsigned, Init *>, Init *>,
873 Init *BinOpInit::Fold(Record *CurRec, MultiClass *CurMultiClass) const {
883 std::vector<Init*> Args;
946 Init *BinOpInit::resolveReferences(Record &R, const RecordVal *RV) const {
947 Init *lhs = LHS->resolveReferences(R, RV);
948 Init *rhs = RHS->resolveReferences(R, RV);
968 TernOpInit *TernOpInit::get(TernaryOp opc, Init *lhs,
969 Init *mhs, Init *rhs,
973 std::pair<std::pair<unsigned, RecTy *>, Init *>,
974 Init *
976 Init *
993 static Init *ForeachHelper(Init *LHS, Init *MHS, Init *RHS, RecTy *Type,
996 static Init *EvaluateOperation(OpInit *RHSo, Init *LHS, Init *Arg,
999 std::vector<Init *> NewOperands;
1005 Init *Result = ForeachHelper(LHS, Arg, RHSo, Type,
1018 Init *Result = EvaluateOperation(RHSoo, LHS, Arg,
1034 Init *NewVal = NewOp->Fold(CurRec, CurMultiClass);
1041 static Init *ForeachHelper(Init *LHS, Init *MHS, Init *RHS, RecTy *Type,
1063 Init *Val = MHSd->getOperator();
1064 Init *Result = EvaluateOperation(RHSo, LHS, Val,
1070 std::vector<std::pair<Init *, std::string> > args;
1072 Init *Arg;
1078 Init *Result = EvaluateOperation(RHSo, LHS, Arg, Type,
1091 std::vector<Init *> NewOperands;
1092 std::vector<Init *> NewList(MHSl->begin(), MHSl->end());
1094 for (std::vector<Init *>::iterator li = NewList.begin(),
1098 Init *Item = *li;
1111 Init *NewItem = NewOp->Fold(CurRec, CurMultiClass);
1121 Init *TernOpInit::Fold(Record *CurRec, MultiClass *CurMultiClass) const {
1173 Init *Result = ForeachHelper(LHS, MHS, RHS, getType(),
1183 if (Init *I = LHS->convertInitializerTo(IntRecTy::get()))
1199 Init *TernOpInit::resolveReferences(Record &R,
1201 Init *lhs = LHS->resolveReferences(R, RV);
1205 if (Init *I = lhs->convertInitializerTo(IntRecTy::get()))
1210 Init *mhs = MHS->resolveReferences(R, RV);
1214 Init *rhs = RHS->resolveReferences(R, RV);
1221 Init *mhs = MHS->resolveReferences(R, RV);
1222 Init *rhs = RHS->resolveReferences(R, RV);
1252 Init *
1258 SmallVector<Init *, 16> NewBits(Bits.size());
1268 Init *
1276 std::vector<Init*> ListInits;
1286 Init *Value = StringInit::get(VN);
1290 VarInit *VarInit::get(Init *VN, RecTy *T) {
1291 typedef std::pair<RecTy *, Init *> Key;
1309 Init *VarInit::getBit(unsigned Bit) const {
1315 Init *VarInit::resolveListElementReference(Record &R,
1332 Init *E = LI->getElement(Elt);
1349 Init *VarInit::getFieldInit(Record &R, const RecordVal *RV,
1355 Init *TheInit = Val->getValue();
1357 if (Init *I = TheInit->getFieldInit(R, RV, FieldName))
1370 Init *VarInit::resolveReferences(Record &R, const RecordVal *RV) const {
1394 Init *VarBitInit::resolveReferences(Record &R, const RecordVal *RV) const {
1395 Init *I = TI->resolveReferences(R, RV);
1420 Init *
1422 if (Init *I = getVariable()->resolveListElementReference(R, RV,
1428 Init *VarListElementInit::getBit(unsigned Bit) const {
1434 Init *VarListElementInit:: resolveListElementReference(Record &R,
1437 Init *Result = TI->resolveListElementReference(R, RV, Element);
1442 Init *Result2 = TInit->resolveListElementReference(R, RV, Elt);
1462 Init *DefInit::getFieldInit(Record &R, const RecordVal *RV,
1472 FieldInit *FieldInit::get(Init *R, const std::string &FN) {
1473 typedef std::pair<Init *, TableGenStringKey> Key;
1484 Init *FieldInit::getBit(unsigned Bit) const {
1490 Init *FieldInit::resolveListElementReference(Record &R, const RecordVal *RV,
1492 if (Init *ListVal = Rec->getFieldInit(R, RV, FieldName))
1495 Init *E = LI->getElement(Elt);
1506 Init *FieldInit::resolveReferences(Record &R, const RecordVal *RV) const {
1507 Init *NewRec = RV ? Rec->resolveReferences(R, RV) : Rec;
1509 Init *BitsVal = NewRec->getFieldInit(R, RV, FieldName);
1511 Init *BVR = BitsVal->resolveReferences(R, RV);
1522 Init *V,
1524 ArrayRef<Init *> ArgRange,
1529 ArrayRef<Init *>::iterator Arg = ArgRange.begin();
1540 DagInit::get(Init *V, const std::string &VN,
1541 ArrayRef<Init *> ArgRange,
1560 DagInit::get(Init *V, const std::string &VN,
1561 const std::vector<std::pair<Init*, std::string> > &args) {
1562 typedef std::pair<Init*, std::string> PairType;
1564 std::vector<Init *> Args;
1582 Init *DagInit::resolveReferences(Record &R, const RecordVal *RV) const {
1583 std::vector<Init*> NewArgs;
1587 Init *Op = Val->resolveReferences(R, RV);
1616 RecordVal::RecordVal(Init *N, RecTy *T, unsigned P)
1680 void Record::setName(Init *NewName) {
1698 // record name be an Init is to provide this flexibility. The extra
1714 if (Init *V = Values[i].getValue())
1725 Init *OldName = getNameInit();
1726 Init *NewName = Name->resolveReferences(*this, RV);
1738 const std::vector<Init *> &TArgs = R.getTemplateArgs();
1773 Init *Record::getValueInit(StringRef FieldName) const {
2019 /// QualifyName - Return an Init with a qualifier prefix referring
2021 Init *llvm::QualifyName(Record &CurRec, MultiClass *CurMultiClass,
2022 Init *Name, const std::string &Scoper) {
2048 /// QualifyName - Return an Init with a qualifier prefix referring
2050 Init *llvm::QualifyName(Record &CurRec, MultiClass *CurMultiClass,