mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
[globalisel][tablegen] Fix release builds after r307079
Using NumPatternEmitted as a unique id for the tables is not valid on release builds since the counters don't count in that case. Also fix an unused variable warning. llvm-svn: 307088
This commit is contained in:
parent
e7c8763550
commit
30c3678129
@ -29,7 +29,7 @@ bool InstructionSelector::executeMatchTable(
|
||||
while (true) {
|
||||
switch (*Command++) {
|
||||
case GIM_RecordInsn: {
|
||||
int64_t NewInsnID = *Command++;
|
||||
int64_t NewInsnID LLVM_ATTRIBUTE_UNUSED = *Command++;
|
||||
int64_t InsnID = *Command++;
|
||||
int64_t OpIdx = *Command++;
|
||||
|
||||
|
@ -53,6 +53,8 @@ STATISTIC(NumPatternTotal, "Total number of patterns");
|
||||
STATISTIC(NumPatternImported, "Number of patterns imported from SelectionDAG");
|
||||
STATISTIC(NumPatternImportsSkipped, "Number of SelectionDAG imports skipped");
|
||||
STATISTIC(NumPatternEmitted, "Number of patterns emitted");
|
||||
/// A unique identifier for a MatchTable.
|
||||
static unsigned CurrentMatchTableID = 0;
|
||||
|
||||
cl::OptionCategory GlobalISelEmitterCat("Options for -gen-global-isel");
|
||||
|
||||
@ -1269,7 +1271,7 @@ void RuleMatcher::emit(raw_ostream &OS) {
|
||||
// on some targets but we don't need to make use of that yet.
|
||||
assert(Matchers.size() == 1 && "Cannot handle multi-root matchers yet");
|
||||
|
||||
OS << " const static int64_t MatchTable" << NumPatternEmitted << "[] = {\n";
|
||||
OS << " const static int64_t MatchTable" << CurrentMatchTableID << "[] = {\n";
|
||||
if (!RequiredFeatures.empty()) {
|
||||
OS << " GIM_CheckFeatures, " << getNameForFeatureBitset(RequiredFeatures)
|
||||
<< ",\n";
|
||||
@ -1286,7 +1288,7 @@ void RuleMatcher::emit(raw_ostream &OS) {
|
||||
<< " State.MIs.clear();\n"
|
||||
<< " State.MIs.push_back(&I);\n"
|
||||
<< " if (executeMatchTable(*this, State, MatcherInfo, MatchTable"
|
||||
<< NumPatternEmitted << ", MRI, TRI, RBI, AvailableFeatures)) {\n";
|
||||
<< CurrentMatchTableID << ", MRI, TRI, RBI, AvailableFeatures)) {\n";
|
||||
|
||||
// We must also check if it's safe to fold the matched instructions.
|
||||
if (InsnVariableIDs.size() >= 2) {
|
||||
@ -2171,7 +2173,10 @@ void GlobalISelEmitter::run(raw_ostream &OS) {
|
||||
|
||||
for (auto &Rule : Rules) {
|
||||
Rule.emit(OS);
|
||||
++CurrentMatchTableID;
|
||||
++NumPatternEmitted;
|
||||
assert(CurrentMatchTableID == NumPatternEmitted &&
|
||||
"Statistic deviates from number of emitted tables");
|
||||
}
|
||||
|
||||
OS << " return false;\n"
|
||||
|
Loading…
x
Reference in New Issue
Block a user