mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-02 22:32:08 +00:00
Remove the CPAttrParentAsRoot code, which is unused, and inconvenient
for a refactoring I'm working on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92503 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6e120a1c70
commit
537ab90d8d
@ -843,11 +843,6 @@ class Pat<dag pattern, dag result> : Pattern<pattern, [result]>;
|
|||||||
// Complex pattern definitions.
|
// Complex pattern definitions.
|
||||||
//
|
//
|
||||||
|
|
||||||
class CPAttribute;
|
|
||||||
// Pass the parent Operand as root to CP function rather
|
|
||||||
// than the root of the sub-DAG
|
|
||||||
def CPAttrParentAsRoot : CPAttribute;
|
|
||||||
|
|
||||||
// Complex patterns, e.g. X86 addressing mode, requires pattern matching code
|
// Complex patterns, e.g. X86 addressing mode, requires pattern matching code
|
||||||
// in C++. NumOperands is the number of operands returned by the select function;
|
// in C++. NumOperands is the number of operands returned by the select function;
|
||||||
// SelectFunc is the name of the function used to pattern match the max. pattern;
|
// SelectFunc is the name of the function used to pattern match the max. pattern;
|
||||||
@ -855,12 +850,10 @@ def CPAttrParentAsRoot : CPAttribute;
|
|||||||
// e.g. X86 addressing mode - def addr : ComplexPattern<4, "SelectAddr", [add]>;
|
// e.g. X86 addressing mode - def addr : ComplexPattern<4, "SelectAddr", [add]>;
|
||||||
//
|
//
|
||||||
class ComplexPattern<ValueType ty, int numops, string fn,
|
class ComplexPattern<ValueType ty, int numops, string fn,
|
||||||
list<SDNode> roots = [], list<SDNodeProperty> props = [],
|
list<SDNode> roots = [], list<SDNodeProperty> props = []> {
|
||||||
list<CPAttribute> attrs = []> {
|
|
||||||
ValueType Ty = ty;
|
ValueType Ty = ty;
|
||||||
int NumOperands = numops;
|
int NumOperands = numops;
|
||||||
string SelectFunc = fn;
|
string SelectFunc = fn;
|
||||||
list<SDNode> RootNodes = roots;
|
list<SDNode> RootNodes = roots;
|
||||||
list<SDNodeProperty> Properties = props;
|
list<SDNodeProperty> Properties = props;
|
||||||
list<CPAttribute> Attributes = attrs;
|
|
||||||
}
|
}
|
||||||
|
@ -402,18 +402,6 @@ ComplexPattern::ComplexPattern(Record *R) {
|
|||||||
<< "' on ComplexPattern '" << R->getName() << "'!\n";
|
<< "' on ComplexPattern '" << R->getName() << "'!\n";
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse the attributes.
|
|
||||||
Attributes = 0;
|
|
||||||
PropList = R->getValueAsListOfDefs("Attributes");
|
|
||||||
for (unsigned i = 0, e = PropList.size(); i != e; ++i)
|
|
||||||
if (PropList[i]->getName() == "CPAttrParentAsRoot") {
|
|
||||||
Attributes |= 1 << CPAttrParentAsRoot;
|
|
||||||
} else {
|
|
||||||
errs() << "Unsupported pattern attribute '" << PropList[i]->getName()
|
|
||||||
<< "' on ComplexPattern '" << R->getName() << "'!\n";
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
@ -46,9 +46,6 @@ enum SDNP {
|
|||||||
SDNPMemOperand
|
SDNPMemOperand
|
||||||
};
|
};
|
||||||
|
|
||||||
// ComplexPattern attributes.
|
|
||||||
enum CPAttr { CPAttrParentAsRoot };
|
|
||||||
|
|
||||||
/// getValueType - Return the MVT::SimpleValueType that the specified TableGen
|
/// getValueType - Return the MVT::SimpleValueType that the specified TableGen
|
||||||
/// record corresponds to.
|
/// record corresponds to.
|
||||||
MVT::SimpleValueType getValueType(Record *Rec);
|
MVT::SimpleValueType getValueType(Record *Rec);
|
||||||
@ -227,7 +224,6 @@ class ComplexPattern {
|
|||||||
std::string SelectFunc;
|
std::string SelectFunc;
|
||||||
std::vector<Record*> RootNodes;
|
std::vector<Record*> RootNodes;
|
||||||
unsigned Properties; // Node properties
|
unsigned Properties; // Node properties
|
||||||
unsigned Attributes; // Pattern attributes
|
|
||||||
public:
|
public:
|
||||||
ComplexPattern() : NumOperands(0) {}
|
ComplexPattern() : NumOperands(0) {}
|
||||||
ComplexPattern(Record *R);
|
ComplexPattern(Record *R);
|
||||||
@ -239,7 +235,6 @@ public:
|
|||||||
return RootNodes;
|
return RootNodes;
|
||||||
}
|
}
|
||||||
bool hasProperty(enum SDNP Prop) const { return Properties & (1 << Prop); }
|
bool hasProperty(enum SDNP Prop) const { return Properties & (1 << Prop); }
|
||||||
bool hasAttribute(enum CPAttr Attr) const { return Attributes & (1 << Attr); }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // End llvm namespace
|
} // End llvm namespace
|
||||||
|
@ -610,7 +610,7 @@ public:
|
|||||||
emitCheck(MaskPredicate + RootName + "0, Tmp" + utostr(NTmp) +
|
emitCheck(MaskPredicate + RootName + "0, Tmp" + utostr(NTmp) +
|
||||||
", INT64_C(" + itostr(II->getValue()) + "))");
|
", INT64_C(" + itostr(II->getValue()) + "))");
|
||||||
|
|
||||||
EmitChildMatchCode(N->getChild(0), N, RootName + utostr(0), RootName,
|
EmitChildMatchCode(N->getChild(0), N, RootName + utostr(0),
|
||||||
ChainSuffix + utostr(0), FoundChain);
|
ChainSuffix + utostr(0), FoundChain);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -621,7 +621,7 @@ public:
|
|||||||
emitInit("SDValue " + RootName + utostr(OpNo) + " = " +
|
emitInit("SDValue " + RootName + utostr(OpNo) + " = " +
|
||||||
RootName + ".getOperand(" +utostr(OpNo) + ");");
|
RootName + ".getOperand(" +utostr(OpNo) + ");");
|
||||||
|
|
||||||
EmitChildMatchCode(N->getChild(i), N, RootName + utostr(OpNo), RootName,
|
EmitChildMatchCode(N->getChild(i), N, RootName + utostr(OpNo),
|
||||||
ChainSuffix + utostr(OpNo), FoundChain);
|
ChainSuffix + utostr(OpNo), FoundChain);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -654,7 +654,6 @@ public:
|
|||||||
|
|
||||||
void EmitChildMatchCode(TreePatternNode *Child, TreePatternNode *Parent,
|
void EmitChildMatchCode(TreePatternNode *Child, TreePatternNode *Parent,
|
||||||
const std::string &RootName,
|
const std::string &RootName,
|
||||||
const std::string &ParentRootName,
|
|
||||||
const std::string &ChainSuffix, bool &FoundChain) {
|
const std::string &ChainSuffix, bool &FoundChain) {
|
||||||
if (!Child->isLeaf()) {
|
if (!Child->isLeaf()) {
|
||||||
// If it's not a leaf, recursively match.
|
// If it's not a leaf, recursively match.
|
||||||
@ -719,12 +718,7 @@ public:
|
|||||||
emitCode("SDValue " + ChainName + ";");
|
emitCode("SDValue " + ChainName + ";");
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Code = Fn + "(";
|
std::string Code = Fn + "(N, ";
|
||||||
if (CP->hasAttribute(CPAttrParentAsRoot)) {
|
|
||||||
Code += ParentRootName + ", ";
|
|
||||||
} else {
|
|
||||||
Code += "N, ";
|
|
||||||
}
|
|
||||||
if (CP->hasProperty(SDNPHasChain)) {
|
if (CP->hasProperty(SDNPHasChain)) {
|
||||||
std::string ParentName(RootName.begin(), RootName.end()-1);
|
std::string ParentName(RootName.begin(), RootName.end()-1);
|
||||||
Code += ParentName + ", ";
|
Code += ParentName + ", ";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user