Home | History | Annotate | Download | only in TableGen

Lines Matching refs:Pat

1757 TreePattern::TreePattern(Record *TheRec, DagInit *Pat, bool isInput,
1760 Trees.push_back(ParseTreePattern(Pat, ""));
1763 TreePattern::TreePattern(Record *TheRec, TreePatternNode *Pat, bool isInput,
1766 Trees.push_back(Pat);
1998 // def : Pat<(v1i64 (bitconvert(v2i32 DPR:$src))), (v1i64 DPR:$src)>;
2266 /// HandleUse - Given "Pat" a leaf in the pattern, check to see if it is an
2268 static bool HandleUse(TreePattern *I, TreePatternNode *Pat,
2271 if (Pat->getName().empty()) {
2272 if (Pat->isLeaf()) {
2273 DefInit *DI = dyn_cast<DefInit>(Pat->getLeafValue());
2282 if (Pat->isLeaf()) {
2283 DefInit *DI = dyn_cast<DefInit>(Pat->getLeafValue());
2284 if (!DI) I->error("Input $" + Pat->getName() + " must be an identifier!");
2287 Rec = Pat->getOperator();
2294 TreePatternNode *&Slot = InstInputs[Pat->getName()];
2296 Slot = Pat;
2309 I->error("All $" + Pat->getName() + " inputs must agree with each other");
2310 if (Slot->getExtTypes() != Pat->getExtTypes())
2311 I->error("All $" + Pat->getName() + " inputs must agree with each other");
2319 FindPatternInputsAndOutputs(TreePattern *I, TreePatternNode *Pat,
2323 if (Pat->isLeaf()) {
2324 bool isUse = HandleUse(I, Pat, InstInputs);
2325 if (!isUse && Pat->getTransformFn())
2330 if (Pat->getOperator()->getName() == "implicit") {
2331 for (unsigned i = 0, e = Pat->getNumChildren(); i != e; ++i) {
2332 TreePatternNode *Dest = Pat->getChild(i);
2344 if (Pat->getOperator()->getName() != "set") {
2347 for (unsigned i = 0, e = Pat->getNumChildren(); i != e; ++i) {
2348 if (Pat->getChild(i)->getNumTypes() == 0)
2350 FindPatternInputsAndOutputs(I, Pat->getChild(i), InstInputs, InstResults,
2356 bool isUse = HandleUse(I, Pat, InstInputs);
2358 if (!isUse && Pat->getTransformFn())
2364 if (Pat->getNumChildren() == 0)
2367 if (Pat->getTransformFn())
2371 unsigned NumDests = Pat->getNumChildren()-1;
2373 TreePatternNode *Dest = Pat->getChild(i);
2397 FindPatternInputsAndOutputs(I, Pat->getChild(NumDests),
2418 void Analyze(const TreePattern *Pat) {
2420 AnalyzeNode(Pat->getTree(0));
2423 void Analyze(const PatternToMatch *Pat) {
2424 AnalyzeNode(Pat->getSrcPattern());
2667 TreePatternNode *Pat = I->getTree(j);
2668 if (Pat->getNumTypes() != 0)
2673 FindPatternInputsAndOutputs(I, Pat, InstInputs, InstResults,