Daniel Kirchner
b2c9b69de2
Enable for IR code generation with stack optimization > homestead.
2021-11-03 12:39:55 +01:00
chriseth
d6c461ed61
Use side effects of user-defined functions in other optimizer steps.
2021-11-02 11:59:01 +01:00
chriseth
7ebf71f315
Merge pull request #12203 from ethereum/fixuseafterfreeside
...
Fix use-after-free bug.
2021-10-27 16:43:44 +02:00
chriseth
dce13fbb6a
Fix use-after-free bug.
2021-10-27 15:49:41 +02: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
bcfefc79d9
Pass DebugInfoSelection down to the code handling assembly printing
2021-10-11 20:34:48 +02:00
Kamil Śliwak
f7c4ed849d
Handle DebugInfoSelection in the code printing Yul and EVM assembly
2021-10-11 20:34:48 +02:00
Kamil Śliwak
2cd1c644b6
Remove unused includes and sort existing includes in a few places
2021-10-11 20:34:48 +02:00
Christian Parpart
3f08b2269a
Adds fmtlib as 3rdparty dependency for easier string composition.
2021-10-11 13:35:08 +02:00
Kamil Śliwak
620ec47efb
OptimizerSuite: Rewrite runSequence() with support for nested brackets
2021-10-06 19:15:02 +02:00
Kamil Śliwak
2fb8f1be5b
OptimiserSuite: Use string_view instead of string for step sequences
2021-10-06 18:48:41 +02:00
Sreekesh V
79d9d5bf0d
Change optimizer sequence validations to allow nested brackets
2021-10-06 18:46:53 +02:00
Kamil Śliwak
0745842d46
Use BOOST_PP_OVERLOAD() to allow invoking the assertion macros without a message
2021-10-04 12:05:00 +02:00
Kamil Śliwak
4fe6aa1328
Add default messages to assertion macros
2021-10-04 12:05:00 +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
fc7e8c56dc
Fill out originLocation with nativeLocation when importing Yul AST
2021-09-22 13:17:18 +02:00
Kamil Śliwak
d23754eafd
AsmParser: Don't use locationOverride as current location when location from comments is selected
2021-09-22 13:11:39 +02:00
Kamil Śliwak
ce4420f857
Separate DebugData fields for Solidity and Yul source locations
2021-09-22 13:11:39 +02:00
Kamil Śliwak
9c1d40debf
AsmParser: Replace m_debugDataOverride with separate variables for location and AST ID
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
Kamil Śliwak
a9b5835e5d
AsmPrinter: Don't include whitespace after @src if there's no code snippet
2021-09-17 21:46:12 +02:00
chriseth
a72f4f3993
Print AST ID.
2021-09-16 17:19:17 +02:00
chriseth
dafa6f552b
Rename formatting function.
2021-09-16 17:19:17 +02:00
chriseth
05d20446bb
Parse @ast-id annotation.
2021-09-16 17:18:48 +02:00
chriseth
42739b73b1
Extend debug info.
2021-09-16 17:18:48 +02:00
chriseth
280ff8cbd4
Use iterateReplacing in StatementRemover.
2021-09-16 15:34:48 +02:00
chriseth
d708612e27
Refactor source comment parsing.
2021-09-16 12:22:27 +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
chriseth
f14ff233fc
Merge pull request #11922 from ethereum/newCodeTransformSourceLocations
...
Better source locations in Yul ControlFlowGraph and OptimizedEVMCodeTransform.
2021-09-14 14:32:39 +02:00
chriseth
a35608aa8c
Merge pull request #11797 from ethereum/optimizedEVMCodeTransform
...
Optimized EVM Code Transform. (New Code Transform Step 3)
2021-09-14 14:29:54 +02:00
Daniel Kirchner
854b8b65b5
Better source locations in Yul ControlFlowGraph and OptimizedEVMCodeTransform.
2021-09-14 13:43:16 +02:00
Daniel Kirchner
75c3286311
Optimized EVM Code Transform.
2021-09-14 13:37:04 +02:00
Kamil Śliwak
14639efc5d
Print code snippets next to source locations in IR output
2021-09-14 12:09:59 +02:00
Kamil Śliwak
d78522b08b
AsmParser: Accept optional code snippets after the @src tags
2021-09-14 12:09:59 +02:00
Kamil Śliwak
37f681c430
Deduplicate code for printing source locations
2021-09-14 11:46:57 +02:00
Daniel Kirchner
7abc55d89a
Use locationOf helper instead of accessing debugData directly.
2021-09-14 10:04:09 +02:00
Kamil Śliwak
fbdfc6bb7a
AsmParser: Require whitespace before tags in location comments
2021-09-09 18:27:29 +02:00
Kamil Śliwak
14396c207c
AsmParser: Generalize location comment parsing to make it easier to add support for more tags
2021-09-09 17:12:59 +02:00
Kamil Śliwak
aa156ab6c7
Parser::fetchSourceLocationFromComment(): Some general cleanup (renaming, wrapping, etc.)
2021-09-09 17:12:59 +02:00
Kamil Śliwak
e3a5f923eb
AsmParser: Refactor the @src regex
2021-09-09 17:12:58 +02:00
Daniel Kirchner
c499f27a63
Change RematCandidateSelector to not depend on variable name sorting.
2021-09-08 15:41:40 +02:00
Daniel Kirchner
d512f7a4fd
Merge pull request #11890 from ethereum/stackLayoutGeneratorReportTooDeep
...
Report stack too deep and conditional stack compression in StackLayoutGenerator.
2021-09-08 10:28:30 +02:00
Daniel Kirchner
a683ea7646
Remove the expression callback from the code generator functions of Yul builtins.
2021-09-06 17:07:53 +02:00
chriseth
be95a8172b
Merge pull request #11891 from ethereum/guidedRematerializer
...
Allow the Rematerializer to be restricted to an exact set of variables.
2021-09-06 16:22:14 +02:00
hrkrshnn
2cdd3b2081
Resolving Keccak-256: check if arguments are identifiers early.
...
Previously, the check on whether the optimization was useful gas wise was done before checking if
the keccak256 opcode had identifier as arguments. Since the gas meter crashes when encountering
certain Yul opcodes (create, dataoffset, etc.), this optimizer step crashed.
2021-09-06 13:48:07 +02:00
Daniel Kirchner
e022ba1bfb
Report stack too deep and conditionally aggressively compress stack in StackLayoutGenerator.
2021-09-06 09:08:04 +02:00
Daniel Kirchner
646421fee1
Allow the Rematerializer to be restricted to an exact set of variables.
2021-09-03 15:29:51 +02:00