mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #5271 from ethereum/fullSuite
[Yul] Full suite tests.
This commit is contained in:
@@ -37,6 +37,7 @@
|
||||
#include <libyul/optimiser/ExpressionJoiner.h>
|
||||
#include <libyul/optimiser/SSATransform.h>
|
||||
#include <libyul/optimiser/RedundantAssignEliminator.h>
|
||||
#include <libyul/optimiser/Suite.h>
|
||||
|
||||
#include <libsolidity/parsing/Scanner.h>
|
||||
#include <libsolidity/inlineasm/AsmPrinter.h>
|
||||
@@ -191,6 +192,8 @@ bool YulOptimizerTest::run(ostream& _stream, string const& _linePrefix, bool con
|
||||
SSATransform::run(*m_ast, nameDispenser);
|
||||
RedundantAssignEliminator::run(*m_ast);
|
||||
}
|
||||
else if (m_optimizerStep == "fullSuite")
|
||||
OptimiserSuite::run(*m_ast, *m_analysisInfo);
|
||||
else
|
||||
{
|
||||
FormattedScope(_stream, _formatted, {formatting::BOLD, formatting::RED}) << _linePrefix << "Invalid optimizer step: " << m_optimizerStep << endl;
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
function allocate(size) -> p {
|
||||
p := mload(0x40)
|
||||
mstore(0x40, add(p, size))
|
||||
}
|
||||
function array_index_access(array, index) -> p {
|
||||
p := add(array, mul(index, 0x20))
|
||||
}
|
||||
pop(allocate(0x20))
|
||||
let x := allocate(0x40)
|
||||
mstore(array_index_access(x, 3), 2)
|
||||
}
|
||||
// ----
|
||||
// fullSuite
|
||||
// {
|
||||
// {
|
||||
// let _12 := 0x20
|
||||
// let allocate__7 := 0x40
|
||||
// let allocate_p_2 := mload(allocate__7)
|
||||
// mstore(allocate__7, add(allocate_p_2, _12))
|
||||
// pop(allocate_p_2)
|
||||
// let allocate_p_2_1 := mload(allocate__7)
|
||||
// mstore(allocate__7, add(allocate_p_2_1, allocate__7))
|
||||
// mstore(add(allocate_p_2_1, 96), 2)
|
||||
// }
|
||||
// }
|
||||
Reference in New Issue
Block a user