diff --git a/libyul/CMakeLists.txt b/libyul/CMakeLists.txt index 039e24ea9..16b68535a 100644 --- a/libyul/CMakeLists.txt +++ b/libyul/CMakeLists.txt @@ -173,10 +173,10 @@ add_library(yul optimiser/OptimizerUtilities.h optimiser/ReasoningBasedSimplifier.cpp optimiser/ReasoningBasedSimplifier.h - optimiser/RedundantAssignEliminator.cpp - optimiser/RedundantAssignEliminator.h - optimiser/RedundantStoreBase.cpp - optimiser/RedundantStoreBase.h + optimiser/UnusedAssignEliminator.cpp + optimiser/UnusedAssignEliminator.h + optimiser/UnusedStoreBase.cpp + optimiser/UnusedStoreBase.h optimiser/Rematerialiser.cpp optimiser/Rematerialiser.h optimiser/SMTSolver.cpp diff --git a/libyul/optimiser/SSATransform.h b/libyul/optimiser/SSATransform.h index 66015362a..64181bf20 100644 --- a/libyul/optimiser/SSATransform.h +++ b/libyul/optimiser/SSATransform.h @@ -70,7 +70,7 @@ class NameDispenser; * variable references can use the SSA variable. The only exception to this rule are * for loop conditions, as we cannot insert a variable declaration there. * - * After this stage, redundantAssignmentRemover is recommended to remove the unnecessary + * After this stage, UnusedAssignmentEliminator is recommended to remove the unnecessary * intermediate assignments. * * This stage provides best results if CSE is run right before it, because diff --git a/libyul/optimiser/Suite.cpp b/libyul/optimiser/Suite.cpp index 766cc93b9..4012fa970 100644 --- a/libyul/optimiser/Suite.cpp +++ b/libyul/optimiser/Suite.cpp @@ -55,7 +55,7 @@ #include #include #include -#include +#include #include #include #include @@ -219,7 +219,7 @@ map> const& OptimiserSuite::allSteps() LiteralRematerialiser, LoadResolver, LoopInvariantCodeMotion, - RedundantAssignEliminator, + UnusedAssignEliminator, ReasoningBasedSimplifier, Rematerialiser, SSAReverser, @@ -260,7 +260,7 @@ map const& OptimiserSuite::stepNameToAbbreviationMap() {LoadResolver::name, 'L'}, {LoopInvariantCodeMotion::name, 'M'}, {ReasoningBasedSimplifier::name, 'R'}, - {RedundantAssignEliminator::name, 'r'}, + {UnusedAssignEliminator::name, 'r'}, {Rematerialiser::name, 'm'}, {SSAReverser::name, 'V'}, {SSATransform::name, 'a'}, diff --git a/libyul/optimiser/RedundantAssignEliminator.cpp b/libyul/optimiser/UnusedAssignEliminator.cpp similarity index 74% rename from libyul/optimiser/RedundantAssignEliminator.cpp rename to libyul/optimiser/UnusedAssignEliminator.cpp index b6ac69c8f..74dd599a1 100644 --- a/libyul/optimiser/RedundantAssignEliminator.cpp +++ b/libyul/optimiser/UnusedAssignEliminator.cpp @@ -20,7 +20,7 @@ * until they go out of scope or are re-assigned. */ -#include +#include #include #include @@ -33,36 +33,36 @@ using namespace std; using namespace solidity; using namespace solidity::yul; -void RedundantAssignEliminator::run(OptimiserStepContext& _context, Block& _ast) +void UnusedAssignEliminator::run(OptimiserStepContext& _context, Block& _ast) { - RedundantAssignEliminator rae{_context.dialect}; + UnusedAssignEliminator rae{_context.dialect}; rae(_ast); StatementRemover remover{rae.m_pendingRemovals}; remover(_ast); } -void RedundantAssignEliminator::operator()(Identifier const& _identifier) +void UnusedAssignEliminator::operator()(Identifier const& _identifier) { changeUndecidedTo(_identifier.name, State::Used); } -void RedundantAssignEliminator::operator()(VariableDeclaration const& _variableDeclaration) +void UnusedAssignEliminator::operator()(VariableDeclaration const& _variableDeclaration) { - RedundantStoreBase::operator()(_variableDeclaration); + UnusedStoreBase::operator()(_variableDeclaration); for (auto const& var: _variableDeclaration.variables) m_declaredVariables.emplace(var.name); } -void RedundantAssignEliminator::operator()(Assignment const& _assignment) +void UnusedAssignEliminator::operator()(Assignment const& _assignment) { visit(*_assignment.value); for (auto const& var: _assignment.variableNames) changeUndecidedTo(var.name, State::Unused); } -void RedundantAssignEliminator::operator()(FunctionDefinition const& _functionDefinition) +void UnusedAssignEliminator::operator()(FunctionDefinition const& _functionDefinition) { ScopedSaveAndRestore outerDeclaredVariables(m_declaredVariables, {}); ScopedSaveAndRestore outerReturnVariables(m_returnVariables, {}); @@ -70,28 +70,28 @@ void RedundantAssignEliminator::operator()(FunctionDefinition const& _functionDe for (auto const& retParam: _functionDefinition.returnVariables) m_returnVariables.insert(retParam.name); - RedundantStoreBase::operator()(_functionDefinition); + UnusedStoreBase::operator()(_functionDefinition); } -void RedundantAssignEliminator::operator()(Leave const&) +void UnusedAssignEliminator::operator()(Leave const&) { for (YulString name: m_returnVariables) changeUndecidedTo(name, State::Used); } -void RedundantAssignEliminator::operator()(Block const& _block) +void UnusedAssignEliminator::operator()(Block const& _block) { ScopedSaveAndRestore outerDeclaredVariables(m_declaredVariables, {}); - RedundantStoreBase::operator()(_block); + UnusedStoreBase::operator()(_block); for (auto const& var: m_declaredVariables) finalize(var, State::Unused); } -void RedundantAssignEliminator::visit(Statement const& _statement) +void UnusedAssignEliminator::visit(Statement const& _statement) { - RedundantStoreBase::visit(_statement); + UnusedStoreBase::visit(_statement); if (auto const* assignment = get_if(&_statement)) if (assignment->variableNames.size() == 1) @@ -99,7 +99,7 @@ void RedundantAssignEliminator::visit(Statement const& _statement) m_stores[assignment->variableNames.front().name][&_statement]; } -void RedundantAssignEliminator::shortcutNestedLoop(TrackedStores const& _zeroRuns) +void UnusedAssignEliminator::shortcutNestedLoop(TrackedStores const& _zeroRuns) { // Shortcut to avoid horrible runtime: // Change all assignments that were newly introduced in the for loop to "used". @@ -116,7 +116,7 @@ void RedundantAssignEliminator::shortcutNestedLoop(TrackedStores const& _zeroRun } } -void RedundantAssignEliminator::finalizeFunctionDefinition(FunctionDefinition const& _functionDefinition) +void UnusedAssignEliminator::finalizeFunctionDefinition(FunctionDefinition const& _functionDefinition) { for (auto const& param: _functionDefinition.parameters) finalize(param.name, State::Unused); @@ -124,14 +124,14 @@ void RedundantAssignEliminator::finalizeFunctionDefinition(FunctionDefinition co finalize(retParam.name, State::Used); } -void RedundantAssignEliminator::changeUndecidedTo(YulString _variable, RedundantAssignEliminator::State _newState) +void UnusedAssignEliminator::changeUndecidedTo(YulString _variable, UnusedAssignEliminator::State _newState) { for (auto& assignment: m_stores[_variable]) if (assignment.second == State::Undecided) assignment.second = _newState; } -void RedundantAssignEliminator::finalize(YulString _variable, RedundantAssignEliminator::State _finalState) +void UnusedAssignEliminator::finalize(YulString _variable, UnusedAssignEliminator::State _finalState) { std::map stores = std::move(m_stores[_variable]); m_stores.erase(_variable); diff --git a/libyul/optimiser/RedundantAssignEliminator.h b/libyul/optimiser/UnusedAssignEliminator.h similarity index 94% rename from libyul/optimiser/RedundantAssignEliminator.h rename to libyul/optimiser/UnusedAssignEliminator.h index 65bbb53fa..b5a2998a1 100644 --- a/libyul/optimiser/RedundantAssignEliminator.h +++ b/libyul/optimiser/UnusedAssignEliminator.h @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include @@ -107,13 +107,13 @@ struct Dialect; * * Prerequisite: Disambiguator, ForLoopInitRewriter. */ -class RedundantAssignEliminator: public RedundantStoreBase +class UnusedAssignEliminator: public UnusedStoreBase { public: - static constexpr char const* name{"RedundantAssignEliminator"}; + static constexpr char const* name{"UnusedAssignEliminator"}; static void run(OptimiserStepContext&, Block& _ast); - explicit RedundantAssignEliminator(Dialect const& _dialect): RedundantStoreBase(_dialect) {} + explicit UnusedAssignEliminator(Dialect const& _dialect): UnusedStoreBase(_dialect) {} void operator()(Identifier const& _identifier) override; void operator()(VariableDeclaration const& _variableDeclaration) override; @@ -122,7 +122,7 @@ public: void operator()(Leave const&) override; void operator()(Block const& _block) override; - using RedundantStoreBase::visit; + using UnusedStoreBase::visit; void visit(Statement const& _statement) override; private: diff --git a/libyul/optimiser/RedundantStoreBase.cpp b/libyul/optimiser/UnusedStoreBase.cpp similarity index 86% rename from libyul/optimiser/RedundantStoreBase.cpp rename to libyul/optimiser/UnusedStoreBase.cpp index 6fc0570b7..27700bdf7 100644 --- a/libyul/optimiser/RedundantStoreBase.cpp +++ b/libyul/optimiser/UnusedStoreBase.cpp @@ -16,10 +16,10 @@ */ // SPDX-License-Identifier: GPL-3.0 /** - * Base class for both RedundantAssignEliminator and RedundantStoreEliminator. + * Base class for both UnusedAssignEliminator and UnusedStoreEliminator. */ -#include +#include #include #include @@ -33,7 +33,7 @@ using namespace std; using namespace solidity; using namespace solidity::yul; -void RedundantStoreBase::operator()(If const& _if) +void UnusedStoreBase::operator()(If const& _if) { visit(*_if.condition); @@ -43,7 +43,7 @@ void RedundantStoreBase::operator()(If const& _if) merge(m_stores, move(skipBranch)); } -void RedundantStoreBase::operator()(Switch const& _switch) +void UnusedStoreBase::operator()(Switch const& _switch) { visit(*_switch.expression); @@ -69,7 +69,7 @@ void RedundantStoreBase::operator()(Switch const& _switch) merge(m_stores, move(branch)); } -void RedundantStoreBase::operator()(FunctionDefinition const& _functionDefinition) +void UnusedStoreBase::operator()(FunctionDefinition const& _functionDefinition) { ScopedSaveAndRestore outerAssignments(m_stores, {}); ScopedSaveAndRestore forLoopInfo(m_forLoopInfo, {}); @@ -79,7 +79,7 @@ void RedundantStoreBase::operator()(FunctionDefinition const& _functionDefinitio finalizeFunctionDefinition(_functionDefinition); } -void RedundantStoreBase::operator()(ForLoop const& _forLoop) +void UnusedStoreBase::operator()(ForLoop const& _forLoop) { ScopedSaveAndRestore outerForLoopInfo(m_forLoopInfo, {}); ScopedSaveAndRestore forLoopNestingDepth(m_forLoopNestingDepth, m_forLoopNestingDepth + 1); @@ -127,19 +127,19 @@ void RedundantStoreBase::operator()(ForLoop const& _forLoop) m_forLoopInfo.pendingBreakStmts.clear(); } -void RedundantStoreBase::operator()(Break const&) +void UnusedStoreBase::operator()(Break const&) { m_forLoopInfo.pendingBreakStmts.emplace_back(move(m_stores)); m_stores.clear(); } -void RedundantStoreBase::operator()(Continue const&) +void UnusedStoreBase::operator()(Continue const&) { m_forLoopInfo.pendingContinueStmts.emplace_back(move(m_stores)); m_stores.clear(); } -void RedundantStoreBase::merge(TrackedStores& _target, TrackedStores&& _other) +void UnusedStoreBase::merge(TrackedStores& _target, TrackedStores&& _other) { util::joinMap(_target, move(_other), []( map& _assignmentHere, @@ -150,7 +150,7 @@ void RedundantStoreBase::merge(TrackedStores& _target, TrackedStores&& _other) }); } -void RedundantStoreBase::merge(TrackedStores& _target, vector&& _source) +void UnusedStoreBase::merge(TrackedStores& _target, vector&& _source) { for (TrackedStores& ts: _source) merge(_target, move(ts)); diff --git a/libyul/optimiser/RedundantStoreBase.h b/libyul/optimiser/UnusedStoreBase.h similarity index 85% rename from libyul/optimiser/RedundantStoreBase.h rename to libyul/optimiser/UnusedStoreBase.h index ed588927c..3bd4e4297 100644 --- a/libyul/optimiser/RedundantStoreBase.h +++ b/libyul/optimiser/UnusedStoreBase.h @@ -16,7 +16,7 @@ */ // SPDX-License-Identifier: GPL-3.0 /** - * Base class for both RedundantAssignEliminator and RedundantStoreEliminator. + * Base class for both UnusedAssignEliminator and UnusedStoreEliminator. */ #pragma once @@ -34,14 +34,19 @@ namespace solidity::yul struct Dialect; /** - * Base class for both RedundantAssignEliminator and RedundantStoreEliminator. + * Base class for both UnusedAssignEliminator and UnusedStoreEliminator. + * + * The class tracks the state of abstract "stores" (assignments or mstore/sstore + * statements) across the control-flow. It is the job of the derived class to create + * the stores and track references, but the base class adjusts their "used state" at + * control-flow splits and joins. * * Prerequisite: Disambiguator, ForLoopInitRewriter. */ -class RedundantStoreBase: public ASTWalker +class UnusedStoreBase: public ASTWalker { public: - explicit RedundantStoreBase(Dialect const& _dialect): m_dialect(_dialect) {} + explicit UnusedStoreBase(Dialect const& _dialect): m_dialect(_dialect) {} using ASTWalker::operator(); void operator()(If const& _if) override; diff --git a/test/libyul/YulOptimizerTestCommon.cpp b/test/libyul/YulOptimizerTestCommon.cpp index 962cb18a4..cc315c4b9 100644 --- a/test/libyul/YulOptimizerTestCommon.cpp +++ b/test/libyul/YulOptimizerTestCommon.cpp @@ -52,7 +52,7 @@ #include #include #include -#include +#include #include #include #include @@ -231,16 +231,16 @@ YulOptimizerTestCommon::YulOptimizerTestCommon( ForLoopInitRewriter::run(*m_context, *m_ast); SSATransform::run(*m_context, *m_ast); }}, - {"redundantAssignEliminator", [&]() { + {"unusedAssignEliminator", [&]() { disambiguate(); ForLoopInitRewriter::run(*m_context, *m_ast); - RedundantAssignEliminator::run(*m_context, *m_ast); + UnusedAssignEliminator::run(*m_context, *m_ast); }}, {"ssaPlusCleanup", [&]() { disambiguate(); ForLoopInitRewriter::run(*m_context, *m_ast); SSATransform::run(*m_context, *m_ast); - RedundantAssignEliminator::run(*m_context, *m_ast); + UnusedAssignEliminator::run(*m_context, *m_ast); }}, {"loadResolver", [&]() { disambiguate(); @@ -293,7 +293,7 @@ YulOptimizerTestCommon::YulOptimizerTestCommon( ForLoopInitRewriter::run(*m_context, *m_ast); // apply SSA SSATransform::run(*m_context, *m_ast); - RedundantAssignEliminator::run(*m_context, *m_ast); + UnusedAssignEliminator::run(*m_context, *m_ast); // reverse SSA SSAReverser::run(*m_context, *m_ast); FunctionHoister::run(*m_context, *m_ast); diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for.yul similarity index 85% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/for.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/for.yul index 314963368..89de8920c 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for.yul @@ -8,7 +8,7 @@ } } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let a := 2 diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_branch.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_branch.yul similarity index 91% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/for_branch.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/for_branch.yul index 120b43ce8..8700c8d28 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_branch.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_branch.yul @@ -14,7 +14,7 @@ mstore(x, 0) } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let x diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_break.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_break.yul similarity index 93% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/for_break.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/for_break.yul index 1b795ad8c..db55bf758 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_break.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_break.yul @@ -13,7 +13,7 @@ mstore(x, 0x42) } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let x diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_continue.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_continue.yul similarity index 94% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/for_continue.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/for_continue.yul index 0ee9c551d..d3cfb0d84 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_continue.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_continue.yul @@ -16,7 +16,7 @@ x := 3 } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let x diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_continue_2.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_continue_2.yul similarity index 93% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/for_continue_2.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/for_continue_2.yul index ee747ae5d..2d5bae46e 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_continue_2.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_continue_2.yul @@ -13,7 +13,7 @@ mstore(x, 0x42) } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let x diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_continue_3.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_continue_3.yul similarity index 93% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/for_continue_3.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/for_continue_3.yul index b70f35d2b..d9980d376 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_continue_3.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_continue_3.yul @@ -12,7 +12,7 @@ } } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let x diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_decl_inside_break_continue.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_decl_inside_break_continue.yul similarity index 95% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/for_decl_inside_break_continue.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/for_decl_inside_break_continue.yul index f54b21af8..94b100e2a 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_decl_inside_break_continue.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_decl_inside_break_continue.yul @@ -19,7 +19,7 @@ mstore(x, 0x42) } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let x := 1 diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_deep_noremove.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_deep_noremove.yul similarity index 97% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/for_deep_noremove.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/for_deep_noremove.yul index 5edd71d58..02a735f9e 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_deep_noremove.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_deep_noremove.yul @@ -26,7 +26,7 @@ x := 13 } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let x := 1 diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_deep_simple.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_deep_simple.yul similarity index 96% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/for_deep_simple.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/for_deep_simple.yul index 5b086bab8..039d856d9 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_deep_simple.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_deep_simple.yul @@ -19,7 +19,7 @@ } } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // for { } 1 { } diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_multi_break.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_multi_break.yul similarity index 97% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/for_multi_break.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/for_multi_break.yul index ce084b1ce..3b18dcc8d 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_multi_break.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_multi_break.yul @@ -35,7 +35,7 @@ mstore(x, 0x42) } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let x := 1 diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_nested.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_nested.yul similarity index 97% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/for_nested.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/for_nested.yul index a83f53666..101101b92 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_nested.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_nested.yul @@ -32,7 +32,7 @@ mstore(x, 0x42) } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let x := 1 diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_rerun.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_rerun.yul similarity index 91% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/for_rerun.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/for_rerun.yul index 5d1e60738..08cf63a52 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_rerun.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_rerun.yul @@ -11,7 +11,7 @@ x := 3 } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let x diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_stmnts_after_break_continue.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_stmnts_after_break_continue.yul similarity index 96% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/for_stmnts_after_break_continue.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/for_stmnts_after_break_continue.yul index 5e88df968..1a92d3b84 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/for_stmnts_after_break_continue.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/for_stmnts_after_break_continue.yul @@ -23,7 +23,7 @@ mstore(x, 0x42) } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let x := 1 diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/function.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/function.yul similarity index 90% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/function.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/function.yul index 2a20ca8b6..044a5f418 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/function.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/function.yul @@ -12,7 +12,7 @@ r := 2 } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let r diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/if.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/if.yul similarity index 89% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/if.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/if.yul index 2fab04a36..7c65680ae 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/if.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/if.yul @@ -10,7 +10,7 @@ mstore(0, d) } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let c diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/if_overwrite_all_branches.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/if_overwrite_all_branches.yul similarity index 90% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/if_overwrite_all_branches.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/if_overwrite_all_branches.yul index 7585f848a..860050e59 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/if_overwrite_all_branches.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/if_overwrite_all_branches.yul @@ -11,7 +11,7 @@ mstore(0, d) } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let c diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/if_used_in_one_branch.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/if_used_in_one_branch.yul similarity index 89% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/if_used_in_one_branch.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/if_used_in_one_branch.yul index 637a32c02..90643f174 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/if_used_in_one_branch.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/if_used_in_one_branch.yul @@ -11,7 +11,7 @@ mstore(0, d) } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let c diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/leave.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/leave.yul similarity index 94% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/leave.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/leave.yul index 1caee198a..82bf49347 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/leave.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/leave.yul @@ -21,7 +21,7 @@ } } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // function f(a, b) -> x diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/multi_assign.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/multi_assign.yul similarity index 88% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/multi_assign.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/multi_assign.yul index f0845680f..d4b35e7ee 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/multi_assign.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/multi_assign.yul @@ -9,7 +9,7 @@ y := 4 } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // function f() -> a, b diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/multivar.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/multivar.yul similarity index 81% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/multivar.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/multivar.yul index 2b13ba3c3..d4dda8f90 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/multivar.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/multivar.yul @@ -6,7 +6,7 @@ a := b } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let a := 2 diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/non_movable.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/non_movable.yul similarity index 73% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/non_movable.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/non_movable.yul index 343c672de..e131b3549 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/non_movable.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/non_movable.yul @@ -4,7 +4,7 @@ a := mload(0) } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let a diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/remove_break.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/remove_break.yul similarity index 91% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/remove_break.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/remove_break.yul index 035f66d38..76a536c2f 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/remove_break.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/remove_break.yul @@ -12,7 +12,7 @@ } } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let i := 0 diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/remove_continue.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/remove_continue.yul similarity index 91% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/remove_continue.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/remove_continue.yul index c4f3b3e43..27083a73c 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/remove_continue.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/remove_continue.yul @@ -13,7 +13,7 @@ } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let i := 0 diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/scopes.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/scopes.yul similarity index 77% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/scopes.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/scopes.yul index d3c6cb4a6..bc2d4d80f 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/scopes.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/scopes.yul @@ -7,7 +7,7 @@ } } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let a diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/simple.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/simple.yul similarity index 63% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/simple.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/simple.yul index 12b9ae6b7..326ce29dc 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/simple.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/simple.yul @@ -4,6 +4,6 @@ a := 2 } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { let a } diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/switch_overwrite_in_all.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/switch_overwrite_in_all.yul similarity index 89% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/switch_overwrite_in_all.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/switch_overwrite_in_all.yul index a39cdedd7..a6b77f897 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/switch_overwrite_in_all.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/switch_overwrite_in_all.yul @@ -8,7 +8,7 @@ mstore(x, 0) } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let x diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/switch_overwrite_in_one.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/switch_overwrite_in_one.yul similarity index 88% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/switch_overwrite_in_one.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/switch_overwrite_in_one.yul index 271bb4864..9b0a23cd8 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/switch_overwrite_in_one.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/switch_overwrite_in_one.yul @@ -7,7 +7,7 @@ mstore(x, 0) } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let x diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/switch_overwrite_use_combination.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/switch_overwrite_use_combination.yul similarity index 90% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/switch_overwrite_use_combination.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/switch_overwrite_use_combination.yul index 8d38dcc16..611123db3 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/switch_overwrite_use_combination.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/switch_overwrite_use_combination.yul @@ -8,7 +8,7 @@ mstore(x, 0) } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let x diff --git a/test/libyul/yulOptimizerTests/redundantAssignEliminator/switch_unused.yul b/test/libyul/yulOptimizerTests/unusedAssignEliminator/switch_unused.yul similarity index 85% rename from test/libyul/yulOptimizerTests/redundantAssignEliminator/switch_unused.yul rename to test/libyul/yulOptimizerTests/unusedAssignEliminator/switch_unused.yul index 94de51b88..c15c88991 100644 --- a/test/libyul/yulOptimizerTests/redundantAssignEliminator/switch_unused.yul +++ b/test/libyul/yulOptimizerTests/unusedAssignEliminator/switch_unused.yul @@ -6,7 +6,7 @@ case 0 { mstore(0, 1) } } // ---- -// step: redundantAssignEliminator +// step: unusedAssignEliminator // // { // let x diff --git a/test/yulPhaser/Chromosome.cpp b/test/yulPhaser/Chromosome.cpp index 55bfd8f24..19616cde0 100644 --- a/test/yulPhaser/Chromosome.cpp +++ b/test/yulPhaser/Chromosome.cpp @@ -30,7 +30,7 @@ #include #include #include -#include +#include #include #include #include @@ -50,7 +50,7 @@ namespace solidity::phaser::test vector const ChrOmOsoMeSteps{ ConditionalSimplifier::name, FunctionHoister::name, - RedundantAssignEliminator::name, + UnusedAssignEliminator::name, ForLoopConditionOutOfBody::name, Rematerialiser::name, ForLoopConditionOutOfBody::name, @@ -138,7 +138,7 @@ BOOST_AUTO_TEST_CASE(output_operator_should_create_concise_and_unambiguous_strin BOOST_TEST(chromosome.length() == allSteps.size()); BOOST_TEST(chromosome.optimisationSteps() == allSteps); - BOOST_TEST(toString(chromosome) == "flcCUnDvejsxIOoighFTLMRrmVatpud"); + BOOST_TEST(toString(chromosome) == "flcCUnDvejsxIOoighFTLMRmVatrpud"); } BOOST_AUTO_TEST_CASE(optimisationSteps_should_translate_chromosomes_genes_to_optimisation_step_names)