mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Compatibility with StackCompressor and StackLimitEvader.
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <libyul/optimiser/OptimiserStep.h>
|
||||
#include <libyul/backends/evm/StackLayoutGenerator.h>
|
||||
|
||||
namespace solidity::yul
|
||||
{
|
||||
@@ -61,6 +62,25 @@ public:
|
||||
Object& _object,
|
||||
std::map<YulString, std::set<YulString>> const& _unreachableVariables
|
||||
);
|
||||
/// @a _stackTooDeepErrors can be determined by the StackLayoutGenerator.
|
||||
/// Can only be run on the EVM dialect with objects.
|
||||
/// Abort and do nothing, if no ``memoryguard`` call or several ``memoryguard`` calls
|
||||
/// with non-matching arguments are found, or if any of the @a _stackTooDeepErrors
|
||||
/// are contained in a recursive function.
|
||||
static void run(
|
||||
OptimiserStepContext& _context,
|
||||
Object& _object,
|
||||
std::map<YulString, std::vector<StackLayoutGenerator::StackTooDeep>> const& _stackTooDeepErrors
|
||||
);
|
||||
/// Determines stack too deep errors using the appropriate code generation backend.
|
||||
/// Can only be run on the EVM dialect with objects.
|
||||
/// Abort and do nothing, if no ``memoryguard`` call or several ``memoryguard`` calls
|
||||
/// with non-matching arguments are found, or if any of the unreachable variables
|
||||
/// are contained in a recursive function.
|
||||
static void run(
|
||||
OptimiserStepContext& _context,
|
||||
Object& _object
|
||||
);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user