diff --git a/libyul/optimiser/EqualStoreEliminator.cpp b/libyul/optimiser/EqualStoreEliminator.cpp index dcba98ce4..3a5052a26 100644 --- a/libyul/optimiser/EqualStoreEliminator.cpp +++ b/libyul/optimiser/EqualStoreEliminator.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -38,7 +39,8 @@ void EqualStoreEliminator::run(OptimiserStepContext const& _context, Block& _ast { EqualStoreEliminator eliminator{ _context.dialect, - SideEffectsPropagator::sideEffects(_context.dialect, CallGraphGenerator::callGraph(_ast)) + SideEffectsPropagator::sideEffects(_context.dialect, CallGraphGenerator::callGraph(_ast)), + ControlFlowSideEffectsCollector{_context.dialect, _ast}.functionSideEffectsNamed(), }; eliminator(_ast); diff --git a/libyul/optimiser/ExpressionSimplifier.h b/libyul/optimiser/ExpressionSimplifier.h index f9d4e8da5..12b794af8 100644 --- a/libyul/optimiser/ExpressionSimplifier.h +++ b/libyul/optimiser/ExpressionSimplifier.h @@ -51,6 +51,7 @@ public: void visit(Expression& _expression) override; private: + // TOOD why no function side effects? explicit ExpressionSimplifier(Dialect const& _dialect): DataFlowAnalyzer(_dialect) {} };