Commit Graph
641 Commits
Author SHA1 Message Date
Daniel Kirchner 1eb8d8f10b Split StackToMemoryMover into assignment+declaration and identifier movers. 2020-10-06 11:30:38 +02:00
Daniel Kirchner c8a7098f2f StackToMemoryMover: encapsulate memory offset tracking into its own class. 2020-10-06 11:10:43 +02:00
Daniel Kirchner 0b87849bcb Track unreachable variables globally instead of per function. 2020-10-06 10:38:26 +02:00
Alexander Arlt b6e1415509 Add LEB128 encoding functions & tests. 2020-09-28 16:06:19 -05:00
Daniel Kirchner f3c2d6cfdc Move memory load and store functions to the dialect. 2020-09-17 22:13:27 +02:00
Daniel Kirchner 48f620fb50 Reverse the order of the memory offsets assigned to variables. 2020-09-17 22:13:27 +02:00
Daniel Kirchner 976abf4715 Easy review fixes. 2020-09-17 22:13:27 +02:00
Daniel Kirchner f4b42d1c72 Add stack limit evader. 2020-09-17 22:13:27 +02:00
chriseth 6e2d2feb10 Small fixes wrt ReasoningBasedSimplifier. 2020-09-16 18:08:54 +02:00
chriseth bfd3ab23e2 Disallow optimizer steps that require SMT if none is available. 2020-09-15 15:57:59 +02:00
chriseth 9bcc2f1713 Make ReasoningBasedSimplifier available as step. 2020-09-15 15:57:59 +02:00
chriseth f73fb726af Reasoning based optimizer. 2020-09-15 15:57:58 +02:00
chriseth 552a5f0913 Merge pull request #9314 from ethereum/inlineStartingFromLeaves
Handle "leaf functions" first in full inliner.
2020-09-14 20:22:48 +02:00
chriseth 8e39110a30 Remove flag. 2020-09-14 17:35:04 +02:00
chriseth 42c26e0bf5 Inline tiny functions first. 2020-09-10 17:01:20 +02:00
chriseth f102feaf09 Handle "leaf functions" first in full inliner. 2020-09-10 17:01:19 +02:00
chriseth 6101bdf7e2 Name simplifier. 2020-09-10 16:23:29 +02:00
Harikrishnan Mulackal d166c2540a Fix typo block 2020-09-07 17:24:03 +02:00
Harikrishnan Mulackal e2fd41f097 Implemented UnusedFunctionArgumentPruner 2020-09-03 13:15:38 +02:00
Alex Beregszaszi 2426616859 Disallow language keywords to be used as identifiers by NameDispenser and VarNameCleaner
Also introduce isRestrictedIdentifier helper in OptimizerUtilities
2020-08-31 12:52:17 +01:00
Alex Beregszaszi 7ef9591e64 Expose hex literal to the Yul parser
This allows nicer error messages.
2020-08-28 19:34:52 +01:00
Alex Beregszaszi 4366ede889 Introduce Leave as a keyword for Yul 2020-08-28 19:34:52 +01:00
Alex Beregszaszi caa329066e Do not emit Solidity-only tokens in the Scanner for Yul
And simplfiy AsmParser greatly.
2020-08-28 19:34:52 +01:00
Alex Beregszaszi 64c73baee9 Use only advance() and not with a mix of m_scanner->next() 2020-08-28 19:34:52 +01:00
Alex Beregszaszi dd44fc1f06 Use explicit yul namespace in WasmCodeTransform 2020-08-27 19:49:30 +01:00
Alex Beregszaszi fdf68a9525 Add some asserts to WasmCodeTransform 2020-08-27 19:49:30 +01:00
Alex Beregszaszi 4e5b403c37 Introduce RightArrow (->) token in the scanner 2020-08-27 12:28:27 +01:00
chriseth e72afcba47 Fix inlining order to correspond to source order. 2020-08-26 10:20:18 +02:00
Harikrishnan Mulackal 5c6e7f03b4 Extended LoopInvariantCodeMotion for storage and state 2020-08-19 12:41:29 +02:00
Harikrishnan Mulackal 3cbe65e4f3 Refactor SideEffects struct 2020-08-18 14:53:59 +02:00
Alex BeregszasziandDaniel Kirchner 3a617f9cf2 Validate expected literal kind for yul::Dialect builtins
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2020-08-05 11:37:04 +01:00
Alex BeregszasziandDaniel Kirchner f6a57af809 Add LiteralKind to Dialect.literalArguments
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>
2020-08-05 11:37:00 +01:00
Alex Beregszaszi 24bb6252ac Merge Parser::instructions() into EVMDialect 2020-07-29 13:15:54 +01:00
Alex Beregszaszi d41fc31046 Do not use Parser::instructions() but depend on the dialect in NameDispenser and VarNameCleaner 2020-07-29 13:15:54 +01:00
Alex Beregszaszi d9cb8c8c5e Add ScannerKind and replace supportPeriodInIdentifier 2020-07-28 12:31:08 +01:00
Alex Beregszaszi 291c00c3de Remove errenous error duplication and move some tests around 2020-07-28 10:45:27 +01:00
chriseth b1f79072df Fix stack compressor wrt literal arguments. 2020-07-23 14:03:51 +02:00
chriseth 6bb6783d39 Merge remote-tracking branch 'origin/develop' into breaking 2020-07-22 15:26:44 +02:00
Djordje MijovicandKamil Śliwak 6f97e6153c [yul] Adding support for accessing subobjects via .
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-07-21 17:56:11 +02:00
Djordje Mijovic 952101996c Removing expectDeposit() from AsmAnalysis as unused function 2020-07-21 12:55:05 +02:00
chriseth 9be5ed1220 Merge remote-tracking branch 'origin/develop' into breaking 2020-07-21 11:35:28 +02:00
chriseth 1c9179683e Merge pull request #9433 from ethereum/reportAllStackErrors
Report all stack errors
2020-07-20 15:44:51 +02:00
chriseth f5d8636d28 Document variableHeightDiff. 2020-07-20 15:44:29 +02:00
Sachin Grover b7adb2aa42 Add SPDX license identifier if not present already in source file
Fixes: #9220
2020-07-17 20:24:12 +05:30
Daniel Kirchner 92cd1ddb7d Add markAsInvalid to the various assemblies. 2020-07-16 17:38:13 +02:00
Daniel Kirchner 579e4b5a69 Report all stack errors in the EVM code transform. 2020-07-16 17:38:04 +02:00
chriseth f945163909 Merge pull request #9432 from ethereum/develop
Merge develop into breaking.
2020-07-16 17:14:45 +02:00
Daniel Kirchner 99d831d7d1 Extract recursive function detection from Semantics into the CallGraph. 2020-07-15 20:30:52 +02:00
Alex Beregszaszi 870ea98c21 Prefix EIP-615 opcodes with EIP615 in Instructions 2020-07-13 17:34:19 +01:00
Daniel Kirchner def0ebbb3e Free variables directly after visiting RHS of Variable Declarations during EVMCodeTransform. 2020-07-13 17:36:15 +02:00