@@ -205,24 +205,23 @@ bool RewriteSystem::simplify(MutableTerm &term, RewritePath *path) const {
205
205
auto ruleID = Trie.find (from, end);
206
206
if (ruleID) {
207
207
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 ()));
211
208
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 ())) ;
214
211
215
- term.rewriteSubTerm (from, to, rule.getRHS ());
212
+ unsigned startOffset = (unsigned )(from - term.begin ());
213
+ unsigned endOffset = term.size () - rule.getLHS ().size () - startOffset;
216
214
217
- if (path || debug) {
218
- subpath.add (RewriteStep::forRewriteRule (startOffset, endOffset, *ruleID,
219
- /* inverse=*/ false ));
220
- }
215
+ term.rewriteSubTerm (from, to, rule.getRHS ());
221
216
222
- changed = true ;
223
- tryAgain = true ;
224
- break ;
217
+ if (path || debug) {
218
+ subpath. add ( RewriteStep::forRewriteRule (startOffset, endOffset, *ruleID,
219
+ /* inverse= */ false )) ;
225
220
}
221
+
222
+ changed = true ;
223
+ tryAgain = true ;
224
+ break ;
226
225
}
227
226
228
227
++from;
@@ -433,6 +432,7 @@ bool RewriteSystem::addRule(MutableTerm lhs, MutableTerm rhs,
433
432
MutableTerm term = lhs;
434
433
simplify (lhs);
435
434
435
+ dump (llvm::errs ());
436
436
abort ();
437
437
}
438
438
0 commit comments