r0qs
e1f049fd24
Minor fix for OSX build
2023-09-22 14:49:18 +02:00
r0qs
701b96cfa7
Add constructor to ImmediateDominatorTest
2023-09-22 14:49:18 +02:00
r0qs
2ab40e3fb3
Move type definitions to test namespace
2023-09-22 14:49:18 +02:00
r0qs
5e68617a2e
Use smart pointers
2023-09-22 14:49:18 +02:00
Kamil Śliwak
48edc744f1
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:18 +02:00
Kamil Śliwak
88f7073857
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:17 +02:00
Kamil Śliwak
ffb53ad8a6
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:16 +02:00
Kamil Śliwak
9aad3688dc
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:16 +02:00
Kamil Śliwak
bb55b7cfe5
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:16 +02:00
Kamil Śliwak
83abb3b8ab
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:16 +02:00
Kamil Śliwak
d33f8f951d
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:16 +02:00
Kamil Śliwak
0bf0d1943a
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:16 +02:00
Kamil Śliwak
db5b657bd2
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:16 +02:00
Kamil Śliwak
bf938d2712
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:15 +02:00
Kamil Śliwak
d5dbab0b91
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:15 +02:00
Kamil Śliwak
edd4e1c952
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:15 +02:00
Kamil Śliwak
5170f33f53
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:15 +02:00
Kamil Śliwak
7888ff424e
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:15 +02:00
Kamil Śliwak
66b95967e6
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:15 +02:00
r0qs
83583f3448
Implementation of Lengauer-Tarjan algorithm to find dominators
2023-09-22 14:49:15 +02:00
Nikola Matic
fdc6699159
Rematerialize zero literals with default cleanup sequence
...
Add unused pruner step to the end of the default cleanup sequence
2023-09-04 15:40:33 +02:00
Kamil Śliwak
9adbced98e
Remove parser error recovery mode
2023-08-22 12:00:11 +02:00
Daniel Kirchner
aaba5c408a
Remove obsolete main function yul optimiser step.
2023-08-16 17:28:32 +02:00
Kamil Śliwak
b7d2c8bb0a
SourceReferenceFormatter: Line wrapping and unused includes
2023-08-11 14:15:56 +02:00
Nikola Matic
96e7b4f46b
Rematerialize zero literals
2023-08-07 17:33:16 +02:00
Kamil Śliwak
ba3f9dd2a2
FullInliner: Do not include calls whose arguments may have side-effects
2023-07-17 16:40:43 +02:00
Kamil Śliwak
5e1e0e7752
FullInliner: Fix order of arguments of inlined functions
2023-07-17 16:40:43 +02:00
Kamil Śliwak
a07f6c443a
Tests for Yul argument evaluation order after optimization
2023-07-17 16:40:43 +02:00
Kamil Śliwak
edceb4d2d1
Allow testing FullInliner without ExpressionSplitter
2023-07-17 16:40:43 +02:00
Bhargava Shastry
5d7533b540
Merge pull request #14227 from ethereum/update-codegen-fuzzer
...
Stack optimizer fuzzer: Detect stack-too-deep during optimization
2023-07-03 14:52:27 +02:00
Martin Blicha
29041c8101
Remove ReasoningBasedSimplifier from libyul
...
Due to a design decision to move away from a bundled SMT solver,
ReasoningBasedSimplifier in its current form cannot be use any longer.
This is a necessary step to allow a unified way to call solvers using
only SMTLIB interface.
Since this optimization pass has always been marked as highly
experimental and never turned on by default, it should be OK to remove
it.
2023-06-28 14:38:36 +02:00
Bhargava Shastry
87d0c84960
Stack optimizer fuzzer: Detect stack-too-deep during optimization
...
Co-authored-by: r0qs <deepmarolaest@gmail.com>
2023-06-27 10:32:23 +02:00
Daniel
374a6fd50e
Merge pull request #14311 from ethereum/StackToMemoryDeterminism
...
Deterministically choose memory slots for variables during stack-to-memory.
2023-06-14 17:31:32 +02:00
Daniel Kirchner
aa01223398
Account for unassigned return variables in stack layout generation.
2023-06-14 11:43:46 +02:00
Daniel Kirchner
b7abd9bba4
Deterministically choose memory slots for variables independently of names that may depend on AST IDs.
2023-06-12 17:28:01 +02:00
Kamil Śliwak
5e32a728fe
Update test expectations
2023-06-07 12:13:39 +02:00
Kamil Śliwak
7ab730d410
Update tests that would become ineffective with minimal optimizations applied
2023-06-07 12:12:00 +02:00
Alexander Arlt
c5673278a7
Remove EWASM backend.
2023-05-11 10:56:55 -05:00
Daniel Kirchner
44da8507b1
Change default EVM version to Shanghai.
...
Co-authored-by: Rodrigo Q. Saramago <rodrigoqsaramago@gmail.com>
2023-05-08 16:34:23 +02:00
Rodrigo Q. Saramago
28c7fdae09
Migrate yulStackShuffling tests to isoltest
2023-04-25 15:53:01 +02:00
hrkrshnn
41ce3feb0a
test: some tests for push0
...
1. `push0_disallowed.yul`: checks if `push0()` is a valid builtin in strict Yul
2. `push0_disallowed.sol`: checks if `push0()` is a valid builtin in inline assembly
3. `push0.sol`: simple semantic test that returns 0
4. `evmone_support.sol`: tests if push0 works properly in evmone
5. Updated some bytecode too large tests to use `shanghai` as version
6. Updated various tests where `push1 0` was hardcoded in different forms / expectations on bytecode
size (`Assembler.cpp`, `GasCosts.cpp`, `SolidityCompiler.cpp`, `SolidityExpressionCompiler.cpp`)
2023-04-12 00:10:24 +02:00
chriseth
fac5666dc9
Re-implement unused assign / unused store eliminator.
2023-03-20 13:49:37 +01:00
Daniel Kirchner
4064116df4
Do not duplicate subassemblies.
...
Add LinkerObject check and more tests
2023-02-20 22:20:45 +01:00
chriseth
47aa1c65ae
Re-implement KnowledgeBase using groups of constantly-spaced variables.
2023-02-09 10:47:11 +01:00
Bhargava Shastry
5c6e12b2c0
Update existing and add new test cases.
2023-02-02 11:40:39 +01:00
Bhargava Shastry
f8880cad82
Yul grammar generator: Bound memory accesses.
2023-02-02 08:10:53 +01:00
Nikola Matic
e7543d487d
Issue warning when using deprecated SELFDESTRUCT
2023-01-25 16:55:11 +01:00
Rodrigo Q. Saramago
ef6ff2f055
Adds support for the EVM version "Paris".
...
Deprecates `block.difficulty` and disallow `difficulty()` in inline assembly for EVM versions >= paris.
The change is due to the renaming introduced by EIP-4399 (see: https://eips.ethereum.org/EIPS/eip-4399 ).
Introduces `block.prevrandao` in Solidity and `prevrandao()` in inline assembly for EVM versions >= paris.
Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
Co-authored-by: Daniel <daniel@ekpyron.org>
Co-authored-by: matheusaaguiar <95899911+matheusaaguiar@users.noreply.github.com>
Co-authored-by: Nikola Matić <nikola.matic@ethereum.org>
2023-01-23 18:50:36 +00:00
chriseth
79c52b3c9e
Re-use knowledge about keccak calls.
...
Re-use knowledge about keccak calls.
Update gas cost.
More tests.
Fix bug.
Update libyul/optimiser/DataFlowAnalyzer.cpp
Remove util prefixes
fix test
More test cases.
Add Changelog entry
2022-12-07 14:16:13 +01:00
Daniel
851cc09742
Merge pull request #13516 from ethereum/fix-yul-interpreter-memory-access
...
Fix memory expansion semantics in the yul interpreter.
2022-12-01 15:42:41 +01:00