Refactor code to add initial support for OptionalDefOperand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37933 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/DAGISelEmitter.h b/utils/TableGen/DAGISelEmitter.h
index a832b7d..7511c4e 100644
--- a/utils/TableGen/DAGISelEmitter.h
+++ b/utils/TableGen/DAGISelEmitter.h
@@ -343,10 +343,10 @@
TreePatternNode *ParseTreePattern(DagInit *DI);
};
- /// DAGPredicateOperand - One of these is created for each PredicateOperand
- /// that has a set ExecuteAlways field.
- struct DAGPredicateOperand {
- std::vector<TreePatternNode*> AlwaysOps;
+ /// DAGDefaultOperand - One of these is created for each PredicateOperand
+ /// or OptionalDefOperand that has a set ExecuteAlways / DefaultOps field.
+ struct DAGDefaultOperand {
+ std::vector<TreePatternNode*> DefaultOps;
};
class DAGInstruction {
@@ -430,7 +430,7 @@
std::map<Record*, std::pair<Record*, std::string> > SDNodeXForms;
std::map<Record*, ComplexPattern> ComplexPatterns;
std::map<Record*, TreePattern*> PatternFragments;
- std::map<Record*, DAGPredicateOperand> PredicateOperands;
+ std::map<Record*, DAGDefaultOperand> DefaultOperands;
std::map<Record*, DAGInstruction> Instructions;
// Specific SDNode definitions:
@@ -485,9 +485,9 @@
abort();
}
- const DAGPredicateOperand &getPredicateOperand(Record *R) {
- assert(PredicateOperands.count(R) &&"Isn't an analyzed predicate operand!");
- return PredicateOperands.find(R)->second;
+ const DAGDefaultOperand &getDefaultOperand(Record *R) {
+ assert(DefaultOperands.count(R) &&"Isn't an analyzed default operand!");
+ return DefaultOperands.find(R)->second;
}
TreePattern *getPatternFragment(Record *R) const {
@@ -516,7 +516,7 @@
void ParseNodeTransforms(std::ostream &OS);
void ParseComplexPatterns();
void ParsePatternFragments(std::ostream &OS);
- void ParsePredicateOperands();
+ void ParseDefaultOperands();
void ParseInstructions();
void ParsePatterns();
void GenerateVariants();