Use rematerializer if variable is unreferenced or value is "cheap".

This commit is contained in:
chriseth
2019-01-07 14:03:32 +01:00
parent aca9e58145
commit 2e9c70add0
23 changed files with 261 additions and 127 deletions
+3
View File
@@ -105,14 +105,17 @@ void OptimiserSuite::run(
RedundantAssignEliminator::run(ast);
RedundantAssignEliminator::run(ast);
UnusedPruner::runUntilStabilised(ast, reservedIdentifiers);
CommonSubexpressionEliminator{}(ast);
}
ExpressionJoiner::run(ast);
Rematerialiser::run(ast);
UnusedPruner::runUntilStabilised(ast);
ExpressionJoiner::run(ast);
UnusedPruner::runUntilStabilised(ast);
ExpressionJoiner::run(ast);
UnusedPruner::runUntilStabilised(ast);
ExpressionJoiner::run(ast);
Rematerialiser::run(ast);
UnusedPruner::runUntilStabilised(ast);
_ast = std::move(ast);