Home | History | Annotate | Download | only in TableGen

Lines Matching refs:Pat

2007 TreePattern::TreePattern(Record *TheRec, DagInit *Pat, bool isInput,
2010 Trees.push_back(ParseTreePattern(Pat, ""));
2013 TreePattern::TreePattern(Record *TheRec, TreePatternNode *Pat, bool isInput,
2016 Trees.push_back(Pat);
2282 // def : Pat<(v1i64 (bitconvert(v2i32 DPR:$src))), (v1i64 DPR:$src)>;
2553 /// HandleUse - Given "Pat" a leaf in the pattern, check to see if it is an
2555 static bool HandleUse(TreePattern *I, TreePatternNode *Pat,
2558 if (Pat->getName().empty()) {
2559 if (Pat->isLeaf()) {
2560 DefInit *DI = dyn_cast<DefInit>(Pat->getLeafValue());
2569 if (Pat->isLeaf()) {
2570 DefInit *DI = dyn_cast<DefInit>(Pat->getLeafValue());
2571 if (!DI) I->error("Input $" + Pat->getName() + " must be an identifier!");
2574 Rec = Pat->getOperator();
2581 TreePatternNode *&Slot = InstInputs[Pat->getName()];
2583 Slot = Pat;
2596 I->error("All $" + Pat->getName() + " inputs must agree with each other");
2597 if (Slot->getExtTypes() != Pat->getExtTypes())
2598 I->error("All $" + Pat->getName() + " inputs must agree with each other");
2606 FindPatternInputsAndOutputs(TreePattern *I, TreePatternNode *Pat,
2610 if (Pat->isLeaf()) {
2611 bool isUse = HandleUse(I, Pat, InstInputs);
2612 if (!isUse && Pat->getTransformFn())
2617 if (Pat->getOperator()->getName() == "implicit") {
2618 for (unsigned i = 0, e = Pat->getNumChildren(); i != e; ++i) {
2619 TreePatternNode *Dest = Pat->getChild(i);
2631 if (Pat->getOperator()->getName() != "set") {
2634 for (unsigned i = 0, e = Pat->getNumChildren(); i != e; ++i) {
2635 if (Pat->getChild(i)->getNumTypes() == 0)
2637 FindPatternInputsAndOutputs(I, Pat->getChild(i), InstInputs, InstResults,
2643 bool isUse = HandleUse(I, Pat, InstInputs);
2645 if (!isUse && Pat->getTransformFn())
2651 if (Pat->getNumChildren() == 0)
2654 if (Pat->getTransformFn())
2658 unsigned NumDests = Pat->getNumChildren()-1;
2660 TreePatternNode *Dest = Pat->getChild(i);
2687 FindPatternInputsAndOutputs(I, Pat->getChild(NumDests),
2708 void Analyze(const TreePattern *Pat) {
2710 AnalyzeNode(Pat->getTree(0));
2713 void Analyze(const PatternToMatch *Pat) {
2714 AnalyzeNode(Pat->getSrcPattern());
2905 CodeGenInstruction &CGI, ListInit *Pat, DAGInstMap &DAGInsts) {
2910 TreePattern *I = new TreePattern(CGI.TheDef, Pat, true, *this);
2932 TreePatternNode *Pat = I->getTree(j);
2933 if (Pat->getNumTypes() != 0)
2938 FindPatternInputsAndOutputs(I, Pat, InstInputs, InstResults,