Lines Matching defs:Predicate

128   for (const Record *Predicate : Predicates) {
129 const Record *Target = Predicate->getValueAsDef("Target");
131 emitFirstPredicate(Predicate, IsCommutable, PE, OS);
133 emitSecondPredicate(Predicate, IsCommutable, PE, OS);
135 emitBothPredicate(Predicate, IsCommutable, PE, OS);
142 void MacroFusionPredicatorEmitter::emitFirstPredicate(const Record *Predicate,
146 if (Predicate->isSubClassOf("WildcardPred")) {
149 << (Predicate->getValueAsBit("ReturnValue") ? "true" : "false")
151 } else if (Predicate->isSubClassOf("OneUsePred")) {
158 } else if (Predicate->isSubClassOf("FusionPredicateWithMCInstPredicate")) {
164 PE.expandPredicate(OS, Predicate->getValueAsDef("Predicate"));
169 PrintFatalError(Predicate->getLoc(),
171 Predicate->getType()->getAsString());
175 void MacroFusionPredicatorEmitter::emitSecondPredicate(const Record *Predicate,
179 if (Predicate->isSubClassOf("FusionPredicateWithMCInstPredicate")) {
185 PE.expandPredicate(OS, Predicate->getValueAsDef("Predicate"));
189 } else if (Predicate->isSubClassOf("SameReg")) {
190 int FirstOpIdx = Predicate->getValueAsInt("FirstOpIdx");
191 int SecondOpIdx = Predicate->getValueAsInt("SecondOpIdx");
220 PrintFatalError(Predicate->getLoc(),
222 Predicate->getType()->getAsString());
226 void MacroFusionPredicatorEmitter::emitBothPredicate(const Record *Predicate,
230 if (Predicate->isSubClassOf("FusionPredicateWithCode"))
231 OS << Predicate->getValueAsString("Predicate");
232 else if (Predicate->isSubClassOf("BothFusionPredicateWithMCInstPredicate")) {
233 emitFirstPredicate(Predicate, IsCommutable, PE, OS);
234 emitSecondPredicate(Predicate, IsCommutable, PE, OS);
235 } else if (Predicate->isSubClassOf("TieReg")) {
236 int FirstOpIdx = Predicate->getValueAsInt("FirstOpIdx");
237 int SecondOpIdx = Predicate->getValueAsInt("SecondOpIdx");
267 PrintFatalError(Predicate->getLoc(),
269 Predicate->getType()->getAsString());