Lines Matching defs:Def
26 const Record &Def;
29 PrettyStackTraceParse(const Record &Def) : Def(Def) {}
32 if (Def.isSubClassOf("GICombineRule"))
33 OS << "Parsing GICombineRule '" << Def.getName() << '\'';
34 else if (Def.isSubClassOf(PatFrag::ClassName))
35 OS << "Parsing " << PatFrag::ClassName << " '" << Def.getName() << '\'';
37 OS << "Parsing '" << Def.getName() << '\'';
128 const Record *Def = PFP->getOperatorAsDef(DiagLoc);
129 const PatFrag *PF = parsePatFrag(Def);
238 const Record *Def = DefI->getDef();
239 auto Ty = PatternType::get(DiagLoc, Def, "cannot parse operand type");
286 if (const auto *Def = dyn_cast<DefInit>(Arg)) {
287 const Record *R = Def->getDef();
326 std::unique_ptr<PatFrag> PatternParser::parsePatFragImpl(const Record *Def) {
327 auto StackTrace = PrettyStackTraceParse(*Def);
328 if (!Def->isSubClassOf(PatFrag::ClassName))
331 const DagInit *Ins = Def->getValueAsDag("InOperands");
332 if (Ins->getOperatorAsDef(Def->getLoc())->getName() != "ins") {
333 PrintError(Def, "expected 'ins' operator for " + PatFrag::ClassName +
338 const DagInit *Outs = Def->getValueAsDag("OutOperands");
339 if (Outs->getOperatorAsDef(Def->getLoc())->getName() != "outs") {
340 PrintError(Def, "expected 'outs' operator for " + PatFrag::ClassName +
345 auto Result = std::make_unique<PatFrag>(*Def);
358 const ListInit *Alts = Def->getValueAsListInit("Alternatives");
363 PrintError(Def, "expected dag init for PatFrag pattern alternative");
373 SaveAndRestore<ArrayRef<SMLoc>> DiagLocSAR(DiagLoc, Def->getLoc());
377 (Def->getName() + "_alt" + Twine(AltIdx++) + "_pattern").str()))
423 const PatFrag *PatternParser::parsePatFrag(const Record *Def) {
427 auto It = ParsedPatFrags.find(Def);
433 std::unique_ptr<PatFrag> NewPatFrag = parsePatFragImpl(Def);
435 PrintError(Def, "Could not parse " + PatFrag::ClassName + " '" +
436 Def->getName() + "'");
438 ParsedPatFrags[Def] = nullptr;
443 ParsedPatFrags[Def] = std::move(NewPatFrag);