• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/utils/TableGen/

Lines Matching defs:Pat

2697 TreePattern::TreePattern(Record *TheRec, DagInit *Pat, bool isInput,
2701 Trees.push_back(ParseTreePattern(Pat, ""));
2704 TreePattern::TreePattern(Record *TheRec, TreePatternNodePtr Pat, bool isInput,
2708 Trees.push_back(Pat);
2991 // def : Pat<(v1i64 (bitconvert(v2i32 DPR:$src))), (v1i64 DPR:$src)>;
3276 /// HandleUse - Given "Pat" a leaf in the pattern, check to see if it is an
3278 static bool HandleUse(TreePattern &I, TreePatternNodePtr Pat,
3281 if (Pat->getName().empty()) {
3282 if (Pat->isLeaf()) {
3283 DefInit *DI = dyn_cast<DefInit>(Pat->getLeafValue());
3292 if (Pat->isLeaf()) {
3293 DefInit *DI = dyn_cast<DefInit>(Pat->getLeafValue());
3295 I.error("Input $" + Pat->getName() + " must be an identifier!");
3298 Rec = Pat->getOperator();
3305 TreePatternNodePtr &Slot = InstInputs[Pat->getName()];
3307 Slot = Pat;
3320 I.error("All $" + Pat->getName() + " inputs must agree with each other");
3322 Slot->UpdateNodeType(0, Pat->getExtType(0), I);
3323 Pat->UpdateNodeType(0, Slot->getExtType(0), I);
3324 if (Slot->getExtTypes() != Pat->getExtTypes())
3325 I.error("All $" + Pat->getName() + " inputs must agree with each other");
3333 TreePattern &I, TreePatternNodePtr Pat,
3342 if (!Pat->getName().empty()) {
3343 TreePattern SrcPattern(I.getRecord(), Pat, true, *this);
3346 Pat = SrcPattern.getOnlyTree();
3349 if (Pat->isLeaf()) {
3350 bool isUse = HandleUse(I, Pat, InstInputs);
3351 if (!isUse && Pat->getTransformFn())
3356 if (Pat->getOperator()->getName() == "implicit") {
3357 for (unsigned i = 0, e = Pat->getNumChildren(); i != e; ++i) {
3358 TreePatternNode *Dest = Pat->getChild(i);
3370 if (Pat->getOperator()->getName() != "set") {
3373 for (unsigned i = 0, e = Pat->getNumChildren(); i != e; ++i) {
3374 if (Pat->getChild(i)->getNumTypes() == 0)
3376 FindPatternInputsAndOutputs(I, Pat->getChildShared(i), InstInputs,
3382 bool isUse = HandleUse(I, Pat, InstInputs);
3384 if (!isUse && Pat->getTransformFn())
3390 if (Pat->getNumChildren() == 0)
3393 if (Pat->getTransformFn())
3397 unsigned NumDests = Pat->getNumChildren()-1;
3399 TreePatternNodePtr Dest = Pat->getChildShared(i);
3432 FindPatternInputsAndOutputs(I, Pat->getChildShared(NumDests), InstInputs,
3454 void Analyze(const PatternToMatch &Pat) {
3455 const TreePatternNode *N = Pat.getSrcPattern();
3643 CodeGenInstruction &CGI, ListInit *Pat, DAGInstMap &DAGInsts) {
3648 TreePattern I(CGI.TheDef, Pat, true, *this);
3666 TreePatternNodePtr Pat = I.getTree(j);
3667 if (Pat->getNumTypes() != 0) {
3669 for (unsigned k = 0, ke = Pat->getNumTypes(); k != ke; ++k) {
3672 Pat->getExtType(k).writeToStream(OS);
3680 FindPatternInputsAndOutputs(I, Pat, InstInputs, InstResults,