Generates the complete C++ function 'parse '.
| 655 | |
| 656 | /// Generates the complete C++ function 'parse<OpName>'. |
| 657 | static void generateOpReader(const Operator &op, raw_ostream &os) { |
| 658 | std::string opName = op.getOperationName(); |
| 659 | auto [bitAssignments, minOptionalVersion] = |
| 660 | getVersionOrderedBitAssignments(op); |
| 661 | os << "// Reader for Op: " << opName << "\n"; |
| 662 | |
| 663 | generateFunctionSignature(op, os); |
| 664 | generateResultTypeDeserialization(op, os); |
| 665 | generateFlagsFieldDeserialization(op, os, bitAssignments, minOptionalVersion); |
| 666 | generateAttributeDeserialization(op, os, bitAssignments); |
| 667 | generateOperandDeserialization(op, os, bitAssignments); |
| 668 | generateRegionDeserialization(op, os); |
| 669 | generateOperationDeserialization(op, os); |
| 670 | os << " return success();\n" |
| 671 | << "}\n\n"; |
| 672 | } |
| 673 | |
| 674 | /// Generates the implementations of the individual op reader functions. |
| 675 | static void generateOpReaderImplementations(const RecordKeeper &records, |
no test coverage detected