mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-27 14:24:40 +00:00
remove the DisablePatternForFastISel predicate, which is a check
that predated -fast-isel which attempted to speed up the dag pattern matchers at -O0. Since fast-isel is around, this is basically obsolete and removing it shrinks the generated dag isels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96188 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -261,24 +261,6 @@ static std::string getOpcodeName(Record *Op, CodeGenDAGPatterns &CGP) {
|
|||||||
return CGP.getSDNodeInfo(Op).getEnumName();
|
return CGP.getSDNodeInfo(Op).getEnumName();
|
||||||
}
|
}
|
||||||
|
|
||||||
static
|
|
||||||
bool DisablePatternForFastISel(TreePatternNode *N, CodeGenDAGPatterns &CGP) {
|
|
||||||
bool isStore = !N->isLeaf() &&
|
|
||||||
getOpcodeName(N->getOperator(), CGP) == "ISD::STORE";
|
|
||||||
if (!isStore && NodeHasProperty(N, SDNPHasChain, CGP))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
bool HasChain = false;
|
|
||||||
for (unsigned i = 0, e = N->getNumChildren(); i != e; ++i) {
|
|
||||||
TreePatternNode *Child = N->getChild(i);
|
|
||||||
if (PatternHasProperty(Child, SDNPHasChain, CGP)) {
|
|
||||||
HasChain = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return HasChain;
|
|
||||||
}
|
|
||||||
|
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
// Node Transformation emitter implementation.
|
// Node Transformation emitter implementation.
|
||||||
//
|
//
|
||||||
@ -594,10 +576,6 @@ void PatternCodeEmitter::EmitMatchCode(TreePatternNode *N, TreePatternNode *P,
|
|||||||
if (isRoot) {
|
if (isRoot) {
|
||||||
// Record input varargs info.
|
// Record input varargs info.
|
||||||
NumInputRootOps = N->getNumChildren();
|
NumInputRootOps = N->getNumChildren();
|
||||||
|
|
||||||
if (DisablePatternForFastISel(N, CGP))
|
|
||||||
emitCheck("OptLevel != CodeGenOpt::None");
|
|
||||||
|
|
||||||
emitCheck(PredicateCheck);
|
emitCheck(PredicateCheck);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1506,7 +1484,8 @@ void DAGISelEmitter::GenerateCodeForPattern(const PatternToMatch &Pattern,
|
|||||||
bool FoundChain = false;
|
bool FoundChain = false;
|
||||||
Emitter.EmitMatchCode(Pattern.getSrcPattern(), NULL, "N", "", FoundChain);
|
Emitter.EmitMatchCode(Pattern.getSrcPattern(), NULL, "N", "", FoundChain);
|
||||||
|
|
||||||
// TP - Get *SOME* tree pattern, we don't care which.
|
// TP - Get *SOME* tree pattern, we don't care which. It is only used for
|
||||||
|
// diagnostics, which we know are impossible at this point.
|
||||||
TreePattern &TP = *CGP.pf_begin()->second;
|
TreePattern &TP = *CGP.pf_begin()->second;
|
||||||
|
|
||||||
// At this point, we know that we structurally match the pattern, but the
|
// At this point, we know that we structurally match the pattern, but the
|
||||||
|
Reference in New Issue
Block a user