Skip to content

Commit e86fe27

Browse files
committed
RequirementMachine: Allow simplified rules to appear in rewrite paths
1 parent 1d5fdc3 commit e86fe27

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

lib/AST/RequirementMachine/RewriteSystem.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -205,24 +205,23 @@ bool RewriteSystem::simplify(MutableTerm &term, RewritePath *path) const {
205205
auto ruleID = Trie.find(from, end);
206206
if (ruleID) {
207207
const auto &rule = getRule(*ruleID);
208-
if (!rule.isSimplified()) {
209-
auto to = from + rule.getLHS().size();
210-
assert(std::equal(from, to, rule.getLHS().begin()));
211208

212-
unsigned startOffset = (unsigned)(from - term.begin());
213-
unsigned endOffset = term.size() - rule.getLHS().size() - startOffset;
209+
auto to = from + rule.getLHS().size();
210+
assert(std::equal(from, to, rule.getLHS().begin()));
214211

215-
term.rewriteSubTerm(from, to, rule.getRHS());
212+
unsigned startOffset = (unsigned)(from - term.begin());
213+
unsigned endOffset = term.size() - rule.getLHS().size() - startOffset;
216214

217-
if (path || debug) {
218-
subpath.add(RewriteStep::forRewriteRule(startOffset, endOffset, *ruleID,
219-
/*inverse=*/false));
220-
}
215+
term.rewriteSubTerm(from, to, rule.getRHS());
221216

222-
changed = true;
223-
tryAgain = true;
224-
break;
217+
if (path || debug) {
218+
subpath.add(RewriteStep::forRewriteRule(startOffset, endOffset, *ruleID,
219+
/*inverse=*/false));
225220
}
221+
222+
changed = true;
223+
tryAgain = true;
224+
break;
226225
}
227226

228227
++from;
@@ -433,6 +432,7 @@ bool RewriteSystem::addRule(MutableTerm lhs, MutableTerm rhs,
433432
MutableTerm term = lhs;
434433
simplify(lhs);
435434

435+
dump(llvm::errs());
436436
abort();
437437
}
438438

0 commit comments

Comments
 (0)