Commit Graph
877 Commits
Author SHA1 Message Date
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
Daniel Kirchner d384664dcb Merge pull request #11615 from ethereum/yulStackLayoutGenerator
Yul Stack Layout Generator (New Code Transform Step 2)
2021-09-03 13:13:18 +02:00
chriseth 7f137d352a Merge pull request #11869 from ethereum/remodelUseSrc
Allow and require use-src to be repeated for each object.
2021-09-02 18:34:07 +02:00
Daniel Kirchner f881409ea4 Stack layout generator for new code generation. 2021-09-02 17:47:19 +02:00
chriseth 5caa15879b Allow and require use-src to be repeated for each object. 2021-09-02 11:29:42 +02:00