Commit Graph

214 Commits

Author SHA1 Message Date
r0qs
3c1f4525a4
Apply suggestions 2023-09-22 14:49:18 +02:00
Kamil Śliwak
b7ec9d3fdd
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators 2023-09-22 14:49:17 +02:00
Kamil Śliwak
e4bac1340d
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators 2023-09-22 14:49:17 +02:00
Kamil Śliwak
f804e8bc00
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators 2023-09-22 14:49:17 +02:00
Kamil Śliwak
1e2069bdfc
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators 2023-09-22 14:49:17 +02:00
Kamil Śliwak
37af76405a
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators 2023-09-22 14:49:17 +02:00
Kamil Śliwak
a9a09bea6d
fixup! Implementation of Lengauer-Tarjan algorithm to find dominators 2023-09-22 14:49:17 +02:00
Kamil Śliwak
56cabdc69a
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
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
Jun Zhang
1ebdab43d8 Purge using namespace std from libyul/backends
Signed-off-by: Jun Zhang <jun@junz.org>
2023-08-24 11:12:52 +08:00
Daniel Kirchner
aa01223398 Account for unassigned return variables in stack layout generation. 2023-06-14 11:43:46 +02:00
Vectorized
050927b026 Optimize multiplicity map 2023-05-08 14:01:47 +02:00
Daniel Kirchner
3458da9df3 Emit PUSH0 as junk in evm code transform, if available. 2023-04-17 16:26:07 +02: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
826ada0b96
Merge pull request #13705 from ethereum/onlyCountVariables
Only count variables if only variables are needed.
2022-11-25 14:20:07 +01:00
Daniel Kirchner
bf26d3be5a Add experimental EOF options for CLI and Standard JSON.
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2022-11-23 19:53:44 +01:00
chriseth
5ba8c109f4 Use side-effects of user defined functions in evm code transform. 2022-11-14 21:26:36 +01:00
chriseth
f1febf69d0 Only count variables if only variables are needed. 2022-11-14 10:24:28 +01:00
Marenz
9e674ba047 Forward declare Instruction enum in EVMVersion 2022-09-29 13:41:58 +02:00
Nikola Matic
1f6a299062 Add a check for unqualified move 2022-09-05 16:05:14 +02:00
Marenz
f7cc29bec1 Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
Marenz
f508494f52 Fix undefined order of evaluation 2022-08-29 15:33:25 +02:00
hrkrshnn
0b2a670a94 Improved stack too deep message when compiled without --optimize 2022-07-03 14:03:00 +02:00
Kamil Śliwak
539e139555 Add explicit throws after some assertions to work around a spurious warning in GCC 12.1 2022-06-01 20:37:48 +02:00
hrkrshnn
5ae17c8e65 Recommend via-ir whenever a stack too deep error is encountered. 2022-05-05 19:22:03 +02:00
Daniel Kirchner
5cd98006d4 Fill in junk in stack layouts on terminating control flow paths. 2022-03-15 18:36:55 +01:00
Daniel Kirchner
9410e125da Change memory-safe assembly annotation suggestion during stack too deep errors. 2022-03-14 11:54:09 +01:00
Daniel Kirchner
ce0a3e93f2 Store whether an evmasm Assembly is creation code. 2022-03-09 17:42:29 +01:00
chriseth
77c40cd2af
Merge pull request #12740 from ethereum/remove-locale-dependent-operations
Replace all locale-dependent operations with locale-agnostic counterparts
2022-03-07 17:56:58 +01:00
wechman
52dfccca98 Replace all locale-dependent operations with locale-agnostic counterparts 2022-03-07 17:23:08 +01:00
chriseth
4f19d68ee9
Merge pull request #12620 from ethereum/assemblyAnnotation
Memory-safety annotation for inline assembly.
2022-03-07 12:48:41 +01:00
Daniel Kirchner
dfb7bf2853 Report memoryguard in stack too deep error. 2022-03-02 16:42:28 +01:00
chriseth
b0dcd7b915 Split out disassemble to remove numeric from instruction includes. 2022-03-02 15:30:41 +01:00
Daniel Kirchner
de28f31716 Improved stack shuffling in corner cases. 2022-01-21 15:41:30 +01:00
chriseth
9a0821f2c3 Fix warning about reference. 2021-12-16 00:12:19 +01:00
chriseth
929ed094ce Register functions earlier. 2021-11-04 13:48:11 +01:00
chriseth
99aa18c4f3 Refactor: Only return output. 2021-11-04 13:42:50 +01:00
Daniel Kirchner
28ae316556 Named function labels. 2021-11-03 12:42:07 +01:00
Daniel Kirchner
b2c9b69de2 Enable for IR code generation with stack optimization > homestead. 2021-11-03 12:39:55 +01:00
chriseth
9f48b7419c Do not use named function labels if function names are not unique. 2021-10-19 18:33:00 +02:00
chriseth
9417d6775f Control flow side-effects for user-defined functions. 2021-10-14 17:46:07 +02:00
Kamil Śliwak
2cd1c644b6 Remove unused includes and sort existing includes in a few places 2021-10-11 20:34:48 +02:00
chriseth
1531863835 Split Common.h into Numeric.h. 2021-09-23 15:27:29 +02:00
chriseth
c8e6ef9657
Merge pull request #12004 from ethereum/disambiguateBytesRequired
Disambiguate bytesRequired
2021-09-23 15:25:44 +02:00
Kamil Śliwak
ce4420f857 Separate DebugData fields for Solidity and Yul source locations 2021-09-22 13:11:39 +02:00
chriseth
50ce1f5ddd Disambiguate bytesRequired 2021-09-22 11:22:07 +02:00
chriseth
e6f0fe8ae3 Use source id in yul to evm code transform. 2021-09-22 11:11:51 +02:00
chriseth
a66e6f08c0
Merge pull request #11951 from ethereum/scopeFillerNullptr
Use locationOf helper instead of accessing debugData directly.
2021-09-14 15:43:01 +02:00