forked from OSchip/llvm-project
parent
de46e48420
commit
2a82686563
|
@ -2259,13 +2259,11 @@ public:
|
||||||
unsigned OpNo = 0;
|
unsigned OpNo = 0;
|
||||||
bool NodeHasChain = NodeHasProperty (N, SDNPHasChain, ISE);
|
bool NodeHasChain = NodeHasProperty (N, SDNPHasChain, ISE);
|
||||||
bool HasChain = PatternHasProperty(N, SDNPHasChain, ISE);
|
bool HasChain = PatternHasProperty(N, SDNPHasChain, ISE);
|
||||||
bool HasOutFlag = PatternHasProperty(N, SDNPOutFlag, ISE);
|
|
||||||
bool EmittedUseCheck = false;
|
bool EmittedUseCheck = false;
|
||||||
if (HasChain) {
|
if (HasChain) {
|
||||||
if (NodeHasChain)
|
if (NodeHasChain)
|
||||||
OpNo = 1;
|
OpNo = 1;
|
||||||
if (!isRoot) {
|
if (!isRoot) {
|
||||||
const SDNodeInfo &CInfo = ISE.getSDNodeInfo(N->getOperator());
|
|
||||||
// Multiple uses of actual result?
|
// Multiple uses of actual result?
|
||||||
emitCheck(RootName + ".hasOneUse()");
|
emitCheck(RootName + ".hasOneUse()");
|
||||||
EmittedUseCheck = true;
|
EmittedUseCheck = true;
|
||||||
|
@ -2329,7 +2327,6 @@ public:
|
||||||
(PatternHasProperty(N, SDNPInFlag, ISE) ||
|
(PatternHasProperty(N, SDNPInFlag, ISE) ||
|
||||||
PatternHasProperty(N, SDNPOptInFlag, ISE) ||
|
PatternHasProperty(N, SDNPOptInFlag, ISE) ||
|
||||||
PatternHasProperty(N, SDNPOutFlag, ISE))) {
|
PatternHasProperty(N, SDNPOutFlag, ISE))) {
|
||||||
const SDNodeInfo &CInfo = ISE.getSDNodeInfo(N->getOperator());
|
|
||||||
if (!EmittedUseCheck) {
|
if (!EmittedUseCheck) {
|
||||||
// Multiple uses of actual result?
|
// Multiple uses of actual result?
|
||||||
emitCheck(RootName + ".hasOneUse()");
|
emitCheck(RootName + ".hasOneUse()");
|
||||||
|
@ -3318,10 +3315,9 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
|
||||||
PatternsByOpcode[Node->getOperator()].push_back(&PatternsToMatch[i]);
|
PatternsByOpcode[Node->getOperator()].push_back(&PatternsToMatch[i]);
|
||||||
} else {
|
} else {
|
||||||
const ComplexPattern *CP;
|
const ComplexPattern *CP;
|
||||||
if (IntInit *II =
|
if (dynamic_cast<IntInit*>(Node->getLeafValue())) {
|
||||||
dynamic_cast<IntInit*>(Node->getLeafValue())) {
|
|
||||||
PatternsByOpcode[getSDNodeNamed("imm")].push_back(&PatternsToMatch[i]);
|
PatternsByOpcode[getSDNodeNamed("imm")].push_back(&PatternsToMatch[i]);
|
||||||
} else if ((CP = NodeGetComplexPattern(Node, *this))) {
|
} else if (NodeGetComplexPattern(Node, *this)) {
|
||||||
std::vector<Record*> OpNodes = CP->getRootNodes();
|
std::vector<Record*> OpNodes = CP->getRootNodes();
|
||||||
for (unsigned j = 0, e = OpNodes.size(); j != e; j++) {
|
for (unsigned j = 0, e = OpNodes.size(); j != e; j++) {
|
||||||
PatternsByOpcode[OpNodes[j]]
|
PatternsByOpcode[OpNodes[j]]
|
||||||
|
|
|
@ -498,7 +498,7 @@ RecTy *VarInit::getFieldType(const std::string &FieldName) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
Init *VarInit::getFieldInit(Record &R, const std::string &FieldName) const {
|
Init *VarInit::getFieldInit(Record &R, const std::string &FieldName) const {
|
||||||
if (RecordRecTy *RTy = dynamic_cast<RecordRecTy*>(getType()))
|
if (dynamic_cast<RecordRecTy*>(getType()))
|
||||||
if (const RecordVal *RV = R.getValue(VarName)) {
|
if (const RecordVal *RV = R.getValue(VarName)) {
|
||||||
Init *TheInit = RV->getValue();
|
Init *TheInit = RV->getValue();
|
||||||
assert(TheInit != this && "Infinite loop detected!");
|
assert(TheInit != this && "Infinite loop detected!");
|
||||||
|
|
|
@ -355,7 +355,6 @@ void SubtargetEmitter::EmitProcessorData(std::ostream &OS,
|
||||||
|
|
||||||
// For each itinerary class
|
// For each itinerary class
|
||||||
std::vector<InstrItinerary> &ItinList = *ProcListIter++;
|
std::vector<InstrItinerary> &ItinList = *ProcListIter++;
|
||||||
unsigned ItinIndex = 0;
|
|
||||||
for (unsigned j = 0, M = ItinList.size(); j < M;) {
|
for (unsigned j = 0, M = ItinList.size(); j < M;) {
|
||||||
InstrItinerary &Intinerary = ItinList[j];
|
InstrItinerary &Intinerary = ItinList[j];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue