Provide max iterations for stack compressor as parameter.

This commit is contained in:
chriseth
2019-03-20 15:07:05 +01:00
parent 9ac117e5b9
commit 8514c0bc60
5 changed files with 21 additions and 6 deletions
+5 -1
View File
@@ -185,8 +185,12 @@ void OptimiserSuite::run(
Rematerialiser::run(*_dialect, ast);
UnusedPruner::runUntilStabilised(*_dialect, ast, reservedIdentifiers);
// This is a tuning parameter, but actually just prevents infinite loops.
size_t stackCompressorMaxIterations = 16;
FunctionGrouper{}(ast);
solAssert(StackCompressor::run(_dialect, ast, _optimizeStackAllocation), "");
// We ignore the return value because we will get a much better error
// message once we perform code generation.
StackCompressor::run(_dialect, ast, _optimizeStackAllocation, stackCompressorMaxIterations);
BlockFlattener{}(ast);
VarNameCleaner{ast, *_dialect, reservedIdentifiers}(ast);