mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Tests.
This commit is contained in:
parent
2bf8a590f0
commit
7bed40af93
@ -53,6 +53,7 @@
|
||||
#include <libyul/optimiser/SSATransform.h>
|
||||
#include <libyul/optimiser/Semantics.h>
|
||||
#include <libyul/optimiser/RedundantAssignEliminator.h>
|
||||
#include <libyul/optimiser/RedundantStoreEliminator.h>
|
||||
#include <libyul/optimiser/StructuralSimplifier.h>
|
||||
#include <libyul/optimiser/StackCompressor.h>
|
||||
#include <libyul/optimiser/Suite.h>
|
||||
@ -243,6 +244,15 @@ YulOptimizerTestCommon::YulOptimizerTestCommon(
|
||||
SSATransform::run(*m_context, *m_ast);
|
||||
RedundantAssignEliminator::run(*m_context, *m_ast);
|
||||
}},
|
||||
{"redundantStoreEliminator", [&]() {
|
||||
disambiguate();
|
||||
ForLoopInitRewriter::run(*m_context, *m_ast);
|
||||
ExpressionSplitter::run(*m_context, *m_ast);
|
||||
CommonSubexpressionEliminator::run(*m_context, *m_ast);
|
||||
RedundantStoreEliminator::run(*m_context, *m_ast);
|
||||
UnusedPruner::run(*m_context, *m_ast);
|
||||
ExpressionJoiner::run(*m_context, *m_ast);
|
||||
}},
|
||||
{"loadResolver", [&]() {
|
||||
disambiguate();
|
||||
ForLoopInitRewriter::run(*m_context, *m_ast);
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
{
|
||||
sstore(0, calldataload(0))
|
||||
let x := sload(0)
|
||||
sstore(1, calldataload(2))
|
||||
sstore(7, x)
|
||||
sstore(0, calldataload(7))
|
||||
}
|
||||
// ----
|
||||
// step: redundantStoreEliminator
|
||||
//
|
||||
// {
|
||||
// let _1 := 0
|
||||
// let x := sload(_1)
|
||||
// sstore(1, calldataload(2))
|
||||
// let _8 := 7
|
||||
// sstore(_8, x)
|
||||
// sstore(_1, calldataload(_8))
|
||||
// }
|
||||
@ -0,0 +1,13 @@
|
||||
{
|
||||
sstore(0, calldataload(0))
|
||||
sstore(1, calldataload(2))
|
||||
sstore(0, calldataload(7))
|
||||
}
|
||||
// ----
|
||||
// step: redundantStoreEliminator
|
||||
//
|
||||
// {
|
||||
// let _1 := 0
|
||||
// sstore(1, calldataload(2))
|
||||
// sstore(_1, calldataload(7))
|
||||
// }
|
||||
Loading…
Reference in New Issue
Block a user