Lines Matching full:init
85 DenseMap<std::pair<RecTy *, Init *>, VarInit *> TheVarInitPool;
88 DenseMap<std::pair<Init *, StringInit *>, FieldInit *> TheFieldInitPool;
344 void Init::anchor() {}
347 LLVM_DUMP_METHOD void Init::dump() const { return print(errs()); }
350 RecordKeeper &Init::getRecordKeeper() const {
362 Init *UnsetInit::getCastTo(RecTy *Ty) const {
366 Init *UnsetInit::convertInitializerTo(RecTy *Ty) const {
370 static void ProfileArgumentInit(FoldingSetNodeID &ID, Init *Value,
385 ArgumentInit *ArgumentInit::get(Init *Value, ArgAuxType Aux) {
400 Init *ArgumentInit::resolveReferences(Resolver &R) const {
401 Init *NewValue = Value->resolveReferences(R);
412 Init *BitInit::convertInitializerTo(RecTy *Ty) const {
429 ProfileBitsInit(FoldingSetNodeID &ID, ArrayRef<Init *> Range) {
432 for (Init *I : Range)
436 BitsInit *BitsInit::get(RecordKeeper &RK, ArrayRef<Init *> Range) {
445 void *Mem = RKImpl.Allocator.Allocate(totalSizeToAlloc<Init *>(Range.size()),
449 I->getTrailingObjects<Init *>());
455 ProfileBitsInit(ID, ArrayRef(getTrailingObjects<Init *>(), NumBits));
458 Init *BitsInit::convertInitializerTo(RecTy *Ty) const {
484 Init *
486 SmallVector<Init *, 16> NewBits(Bits.size());
508 if (Init *Bit = getBit(e-i-1))
518 Init *BitsInit::resolveReferences(Resolver &R) const {
520 SmallVector<Init *, 16> NewBits(getNumBits());
522 Init *CachedBitVarRef = nullptr;
523 Init *CachedBitVarResolved = nullptr;
526 Init *CurBit = getBit(i);
527 Init *NewBit = CurBit;
570 Init *IntInit::convertInitializerTo(RecTy *Ty) const {
586 SmallVector<Init *, 16> NewBits(BRT->getNumBits());
597 Init *
599 SmallVector<Init *, 16> NewBits(Bits.size());
623 Init *AnonymousNameInit::resolveReferences(Resolver &R) const {
624 auto *Old = const_cast<Init *>(static_cast<const Init *>(this));
643 Init *StringInit::convertInitializerTo(RecTy *Ty) const {
651 ArrayRef<Init *> Range,
656 for (Init *I : Range)
660 ListInit *ListInit::get(ArrayRef<Init *> Range, RecTy *EltTy) {
672 void *Mem = RK.Allocator.Allocate(totalSizeToAlloc<Init *>(Range.size()),
676 I->getTrailingObjects<Init *>());
687 Init *ListInit::convertInitializerTo(RecTy *Ty) const {
692 SmallVector<Init*, 8> Elements;
699 for (Init *I : getValues())
700 if (Init *CI = I->convertInitializerTo(ElementType)) {
723 Init *ListInit::resolveReferences(Resolver &R) const {
724 SmallVector<Init*, 8> Resolved;
728 for (Init *CurElt : getValues()) {
729 Init *E = CurElt->resolveReferences(R);
740 for (Init *Element : *this) {
748 for (Init *Element : *this) {
758 for (Init *Element : *this) {
766 Init *OpInit::getBit(unsigned Bit) const {
773 ProfileUnOpInit(FoldingSetNodeID &ID, unsigned Opcode, Init *Op, RecTy *Type) {
779 UnOpInit *UnOpInit::get(UnaryOp Opc, Init *LHS, RecTy *Type) {
797 Init *UnOpInit::Fold(Record *CurRec, bool IsFinal) const {
880 if (Init *NewInit = LHS->convertInitializerTo(getType()))
960 Init *UnOpInit::resolveReferences(Resolver &R) const {
961 Init *lhs = LHS->resolveReferences(R);
994 ProfileBinOpInit(FoldingSetNodeID &ID, unsigned Opcode, Init *LHS, Init *RHS,
1002 BinOpInit *BinOpInit::get(BinaryOp Opc, Init *LHS, Init *RHS, RecTy *Type) {
1072 Init *BinOpInit::getStrConcat(Init *I0, Init *I1) {
1083 SmallVector<Init *, 8> Args;
1089 Init *BinOpInit::getListConcat(TypedInit *LHS, Init *RHS) {
1099 std::optional<bool> BinOpInit::CompareInit(unsigned Opc, Init *LHS,
1100 Init *RHS) const {
1176 static std::optional<unsigned> getDagArgNoByKey(DagInit *Dag, Init *Key,
1209 Init *BinOpInit::Fold(Record *CurRec) const {
1225 Init *Op = LOp ? LOp : ROp;
1229 SmallVector<Init*, 8> Args;
1247 SmallVector<Init *, 8> Args;
1258 SmallVector<Init *, 8> Args(Size->getValue(), Value);
1267 SmallVector<Init *, 8> Args;
1268 for (Init *EltLHS : *LHSs) {
1270 for (Init *EltRHS : *RHSs) {
1300 SmallVector<Init *, 8> Args;
1321 SmallVector<Init *, 8> Args;
1386 Init *Arg = Dag->getArg(*ArgNo);
1406 Init *ArgName = Dag->getArgName(Pos);
1417 SmallVector<Init*, 8> Args;
1475 Init *BinOpInit::resolveReferences(Resolver &R) const {
1476 Init *lhs = LHS->resolveReferences(R);
1477 Init *rhs = RHS->resolveReferences(R);
1529 ProfileTernOpInit(FoldingSetNodeID &ID, unsigned Opcode, Init *LHS, Init *MHS,
1530 Init *RHS, RecTy *Type) {
1538 TernOpInit *TernOpInit::get(TernaryOp Opc, Init *LHS, Init *MHS, Init *RHS,
1557 static Init *ItemApply(Init *LHS, Init *MHSe, Init *RHS, Record *CurRec) {
1563 static Init *ForeachDagApply(Init *LHS, DagInit *MHSd, Init *RHS,
1566 Init *Val = ItemApply(LHS, MHSd->getOperator(), RHS, CurRec);
1570 SmallVector<std::pair<Init *, StringInit *>, 8> NewArgs;
1572 Init *Arg = MHSd->getArg(i);
1573 Init *NewArg;
1592 static Init *ForeachHelper(Init *LHS, Init *MHS, Init *RHS, RecTy *Type,
1598 SmallVector<Init *, 8> NewList(MHSl->begin(), MHSl->end());
1600 for (Init *&Item : NewList) {
1601 Init *NewItem = ItemApply(LHS, Item, RHS, CurRec);
1613 static Init *FilterHelper(Init *LHS, Init *MHS, Init *RHS, RecTy *Type,
1616 SmallVector<Init *, 8> NewList;
1618 for (Init *Item : MHSl->getValues()) {
1619 Init *Include = ItemApply(LHS, Item, RHS, CurRec);
1637 Init *TernOpInit::Fold(Record *CurRec) const {
1685 if (Init *Result = ForeachHelper(LHS, MHS, RHS, getType(), CurRec))
1691 if (Init *Result = FilterHelper(LHS, MHS, RHS, getType(), CurRec))
1716 SmallVector<std::pair<Init *, StringInit *>, 8> Children;
1719 Init *Node = MHSl ? MHSl->getElement(i) : UnsetInit::get(RK);
1720 Init *Name = RHSl ? RHSl->getElement(i) : UnsetInit::get(RK);
1743 SmallVector<Init *, 8> Args;
1809 SmallVector<Init *, 8> Args(Dag->getArgs());
1827 SmallVector<Init *, 8> Args(Dag->getArgs());
1839 Init *TernOpInit::resolveReferences(Resolver &R) const {
1840 Init *lhs = LHS->resolveReferences(R);
1852 Init *mhs = MHS->resolveReferences(R);
1853 Init *rhs;
1895 static void ProfileFoldOpInit(FoldingSetNodeID &ID, Init *Start, Init *List,
1896 Init *A, Init *B, Init *Expr, RecTy *Type) {
1905 FoldOpInit *FoldOpInit::get(Init *Start, Init *List, Init *A, Init *B,
1906 Init *Expr, RecTy *Type) {
1924 Init *FoldOpInit::Fold(Record *CurRec) const {
1926 Init *Accum = Start;
1927 for (Init *Elt : *LI) {
1938 Init *FoldOpInit::resolveReferences(Resolver &R) const {
1939 Init *NewStart = Start->resolveReferences(R);
1940 Init *NewList = List->resolveReferences(R);
1944 Init *NewExpr = Expr->resolveReferences(SR);
1953 Init *FoldOpInit::getBit(unsigned Bit) const {
1965 Init *Expr) {
1970 IsAOpInit *IsAOpInit::get(RecTy *CheckType, Init *Expr) {
1989 Init *IsAOpInit::Fold() const {
2009 Init *IsAOpInit::resolveReferences(Resolver &R) const {
2010 Init *NewExpr = Expr->resolveReferences(R);
2016 Init *IsAOpInit::getBit(unsigned Bit) const {
2027 Init *Expr) {
2032 ExistsOpInit *ExistsOpInit::get(RecTy *CheckType, Init *Expr) {
2050 Init *ExistsOpInit::Fold(Record *CurRec, bool IsFinal) const {
2084 Init *ExistsOpInit::resolveReferences(Resolver &R) const {
2085 Init *NewExpr = Expr->resolveReferences(R);
2091 Init *ExistsOpInit::getBit(unsigned Bit) const {
2111 Init *
2123 Init *TypedInit::convertInitializerBitRange(ArrayRef<unsigned> Bits) const {
2128 SmallVector<Init *, 16> NewBits;
2139 Init *TypedInit::getCastTo(RecTy *Ty) const {
2144 if (Init *Converted = convertInitializerTo(Ty)) {
2158 Init *Value = StringInit::get(T->getRecordKeeper(), VN);
2162 VarInit *VarInit::get(Init *VN, RecTy *T) {
2175 Init *VarInit::getBit(unsigned Bit) const {
2181 Init *VarInit::resolveReferences(Resolver &R) const {
2182 if (Init *Val = R.resolve(VarName))
2199 Init *VarBitInit::resolveReferences(Resolver &R) const {
2200 Init *I = TI->resolveReferences(R);
2214 Init *DefInit::convertInitializerTo(RecTy *Ty) const {
2234 for (Init *I : Args)
2283 ArrayRef<Init *> TArgs = Class->getTemplateArgs();
2286 for (Init *Arg : TArgs) {
2325 Init *VarDefInit::resolveReferences(Resolver &R) const {
2346 Init *VarDefInit::Fold() const {
2351 for (Init *Arg : args())
2362 for (Init *Arg : args()) {
2370 FieldInit *FieldInit::get(Init *R, StringInit *FN) {
2378 Init *FieldInit::getBit(unsigned Bit) const {
2384 Init *FieldInit::resolveReferences(Resolver &R) const {
2385 Init *NewRec = Rec->resolveReferences(R);
2391 Init *FieldInit::Fold(Record *CurRec) const {
2399 Init *FieldVal = Def->getValue(FieldName)->getValue();
2408 Init *FieldVal = DI->getDef()->getValue(FieldName)->getValue();
2415 ArrayRef<Init *> CondRange,
2416 ArrayRef<Init *> ValRange,
2421 ArrayRef<Init *>::iterator Case = CondRange.begin();
2422 ArrayRef<Init *>::iterator Val = ValRange.begin();
2431 ProfileCondOpInit(ID, ArrayRef(getTrailingObjects<Init *>(), NumConds),
2432 ArrayRef(getTrailingObjects<Init *>() + NumConds, NumConds),
2436 CondOpInit *CondOpInit::get(ArrayRef<Init *> CondRange,
2437 ArrayRef<Init *> ValRange, RecTy *Ty) {
2450 totalSizeToAlloc<Init *>(2 * CondRange.size()), alignof(BitsInit));
2454 I->getTrailingObjects<Init *>());
2456 I->getTrailingObjects<Init *>()+CondRange.size());
2461 Init *CondOpInit::resolveReferences(Resolver &R) const {
2462 SmallVector<Init*, 4> NewConds;
2464 for (const Init *Case : getConds()) {
2465 Init *NewCase = Case->resolveReferences(R);
2470 SmallVector<Init*, 4> NewVals;
2471 for (const Init *Val : getVals()) {
2472 Init *NewVal = Val->resolveReferences(R);
2484 Init *CondOpInit::Fold(Record *CurRec) const {
2487 Init *Cond = getCond(i);
2488 Init *Val = getVal(i);
2507 for (const Init *Case : getConds())
2511 for (const Init *Val : getVals())
2519 for (const Init *Case : getConds())
2523 for (const Init *Val : getVals())
2541 Init *CondOpInit::getBit(unsigned Bit) const {
2545 static void ProfileDagInit(FoldingSetNodeID &ID, Init *V, StringInit *VN,
2546 ArrayRef<Init *> ArgRange,
2551 ArrayRef<Init *>::iterator Arg = ArgRange.begin();
2561 DagInit *DagInit::get(Init *V, StringInit *VN, ArrayRef<Init *> ArgRange,
2573 totalSizeToAlloc<Init *, StringInit *>(ArgRange.size(), NameRange.size()),
2577 I->getTrailingObjects<Init *>());
2585 DagInit::get(Init *V, StringInit *VN,
2586 ArrayRef<std::pair<Init*, StringInit*>> args) {
2587 SmallVector<Init *, 8> Args;
2600 ArrayRef(getTrailingObjects<Init *>(), NumArgs),
2620 Init *DagInit::resolveReferences(Resolver &R) const {
2621 SmallVector<Init*, 8> NewArgs;
2624 for (const Init *Arg : getArgs()) {
2625 Init *NewArg = Arg->resolveReferences(R);
2630 Init *Op = Val->resolveReferences(R);
2640 for (const Init *Elt : getArgs()) {
2666 RecordVal::RecordVal(Init *N, RecTy *T, FieldKind K)
2674 RecordVal::RecordVal(Init *N, SMLoc Loc, RecTy *T, FieldKind K)
2699 bool RecordVal::setValue(Init *V) {
2707 SmallVector<Init *, 64> Bits;
2723 bool RecordVal::setValue(Init *V, SMLoc NewLoc) {
2732 SmallVector<Init *, 64> Bits;
2795 void Record::setName(Init *NewName) {
2806 // record name be an Init is to provide this flexibility. The extra
2840 Init *OldName = getNameInit();
2841 Init *NewName = Name->resolveReferences(R);
2851 if (Init *V = Value.getValue()) {
2852 Init *VR = V->resolveReferences(R);
2871 Init *Value = Assertion.Condition->resolveReferences(R);
2878 Init *Value = Dump.Message->resolveReferences(R);
2883 void Record::resolveReferences(Init *NewName) {
2897 ArrayRef<Init *> TArgs = R.getTemplateArgs();
2901 for (const Init *TA : TArgs) {
2938 Init *Record::getValueInit(StringRef FieldName) const {
2998 for (Init *I : List->getValues()) {
3026 for (Init *I : List->getValues()) {
3042 for (Init *I : List->getValues()) {
3131 Init *Condition = Assertion.Condition->resolveReferences(R);
3132 Init *Message = Assertion.Message->resolveReferences(R);
3142 Init *Message = Dump.Message->resolveReferences(R);
3149 for (const Init *TA : getTemplateArgs()) {
3178 Init *RecordKeeper::getNewAnonymousName() {
3265 Init *MapResolver::resolve(Init *VarName) {
3270 Init *I = It->second.V;
3283 Init *RecordResolver::resolve(Init *VarName) {
3284 Init *Val = Cache.lookup(VarName);
3308 Init *TrackUnresolvedResolver::resolve(Init *VarName) {
3309 Init *I = nullptr;
3328 Init *HasReferenceResolver::resolve(Init *VarName)