Commit Graph
851 Commits
Author SHA1 Message Date
chriseth 6fb112fa8e Remove some unneeded headers. 2020-05-07 01:49:46 +02:00
a3d4 8f68c04358 Add unique IDs to error reporting calls 2020-05-06 13:53:46 +02:00
Daniel Kirchner b580106c80 Yul parser hack and more yul tests. 2020-05-05 17:23:41 +02:00
Mathias Baumann debcc8c056 Add setimmutable and loadimmutable to dialect. 2020-05-04 15:00:50 +02:00
Kamil Śliwak c41a832f65 Move the default optimisation steps from OptimiserSuite to OptimiserSettings
- Now it's a mandatory parameter in OptimiserSuite::run()
2020-04-24 17:30:56 +02:00
Kamil Śliwak 69b79f848b OptimiserSuite: Allow validating the optimisation sequence without executing it
- Create a separate validateSequence() that can be used independently.
- Tweak the exception messages a bit to be usable as command-line errors
2020-04-24 17:30:56 +02:00
Kamil Śliwak e2c0e6331c OptimiserSuite: Define NonStepAbbreviations and use it for extra sanity checks 2020-04-24 17:30:56 +02:00
Kamil Śliwak 5a515240ac OptimiserSuite: Use brackets instead of parentheses as syntax for repeating abbreviation sequences
- We want to start accepting abbreviation sequences on the command line and parentheses would always have to be escaped in that context.
- There wasn't any important reason behind choosing () rather than [] or {} and it still isn't too late to switch.
2020-04-24 17:30:56 +02:00
chriseth f82f167290 Yul formatting: Reduce multiple consecutive empty lines to a single one. 2020-04-23 13:49:12 +02:00
Kamil Śliwak 9db7d2bde9 OptimiserSuite: Replace full step names in run() with abbreviations 2020-04-16 16:09:15 +02:00
Kamil Śliwak 9d7df5db69 OptimiserSuite: Add a variant of runSequence() that works with a string of abbreviations 2020-04-16 16:09:15 +02:00
Kamil Śliwak 1b4e06605d OptimiserSuite: Extract the code for repeating a sequence into runSequenceUntilStable()
- Define a constant for the maximum number of repeats of the optimisation string
2020-04-16 15:23:38 +02:00
Alexander Arlt aac7a1e434 Apply modernize-pass-by-value. 2020-04-14 10:32:13 -05:00
chriseth a7a1feb1b8 Merge pull request #8626 from ethereum/immutable-functioncallgraph
Prepare literalArguments for immutable builtin functions
2020-04-09 15:46:02 +02:00
Mathias Baumann 5203503583 Allow for per-parameter literalValues builtin functions 2020-04-08 16:41:38 +02:00
chriseth 823a119117 Merge pull request #8570 from aarlt/clang-tidy-apply-modernize-use-emplace
clang-tidy: Apply modernize-use-emplace.
2020-04-07 17:28:50 +02:00
Alexander Arlt cae6e7769f Apply modernize-use-override. 2020-04-02 18:00:44 -05:00
Alexander Arlt 90bb1d8a7c Apply modernize-use-emplace. 2020-04-02 17:35:48 -05:00
Daniel Kirchner 04d8ad2ae1 Legacy codegeneration for immutable state variables. 2020-03-24 16:45:25 +01:00
Leonardo Alt 89ce2dbfe9 The identifier var should be fine in Yul 2020-03-11 18:45:08 +01:00
chriseth a3d5af30c6 Mention ControlFlowSideEffects explicitly to ease the burden on MSVC. 2020-03-10 12:55:23 +01:00
Daniel Kirchner 809e3503ba Control flow analysis for inline assembly. 2020-03-09 16:23:10 +01:00
Djordje Mijovic ec083c4878 Adding source location support to AssemblyStack and thus debugging Yul sources 2020-02-25 22:19:03 +01:00
Djordje Mijovic c891597204 Adding ssa type check and test for that one 2020-02-24 15:05:19 +01:00
Djordje Mijovic 2efda4129b Adding test for multi return values including bool in evmTyped dialect. Calling zeroLiteralForType from inliner 2020-02-24 15:05:19 +01:00
chriseth bddbcbe6a4 Use bool type in word size transform. 2020-02-24 15:05:19 +01:00
chriseth 6b272faec0 Some wasm related type fixes. 2020-02-24 15:05:19 +01:00
chriseth a52305d3bd Use bool type in conditional simplifier and for loop condition into body. 2020-02-24 15:05:19 +01:00
Djordje Mijovic a52c9af5b9 Adding vardecl optimization for boolean types 2020-02-24 15:05:19 +01:00
chriseth e75cace78d Properly assign types in control flow simplifier. 2020-02-24 15:05:19 +01:00
chriseth e728cd76b6 Introduce typed named functions to dialect. 2020-02-24 15:05:19 +01:00
chriseth b9b36cd89e Properly assign types in ExpressionSplitter. 2020-02-24 15:05:19 +01:00
chriseth 915cb65106 Collect types together with names. 2020-02-24 15:05:19 +01:00
chriseth 1f51716227 Type checking for Yul. 2020-02-24 15:05:18 +01:00
Jason Cobb 6db0d50094 Don't use identifiers starting with an underscore followed by an uppercase letter 2020-02-17 12:44:39 -05:00
chriseth 29e5cd89be Remove stack counting from Asm Analysis. 2020-02-17 12:58:05 +01:00
chriseth 814d4b6690 Merge pull request #8293 from ethereum/fixTypedEVMTypes
Fix builtin function types for typed evm dialect.
2020-02-12 16:16:35 +01:00
chriseth 0e100e7e7e Merge pull request #8267 from ghallak/prune-unnecessary-funcs
[Yul] Prune functions that call each other but are otherwise unreferenced
2020-02-12 11:09:27 +01:00
Gaith Hallak 24d6702986 [Yul] Prune functions that call each other but are otherwise unreferenced 2020-02-11 20:39:32 +03:00
chriseth 4644d4616f Fix builtin function types for typed evm dialect. 2020-02-11 17:17:41 +01:00
Mathias Baumann 1a3998648c Run yul optimizer on user code without refs 2020-02-11 13:55:47 +01:00
a3d4 4ec4d23886 Replaced ParserBase::position() and ParserBase::endPosition() with ParserBase::currentLocation().
It might be simpler to pass `SourceLocation` object instead of splitting it into `start` and `end`, and creating another SourceLocation object using the same `start` and `end` later.
2020-02-06 03:34:49 +01:00
a3d4 7fecab07a8 Simplified Parser::createWithLocation().
In all but one case the function was called with the default argument value.
And when it was location, the location should be valid (see Parser::parseElementaryOperation()).
2020-02-06 03:34:48 +01:00
chriseth 48933df18d Add some missing wasm functions. 2020-02-04 22:44:08 +01:00
chriseth c41ef15a86 Fix types for polyfill. 2020-02-04 22:44:08 +01:00
chriseth 8f546849f2 Add i32 functions to wasm dialect. 2020-02-04 22:44:08 +01:00
chriseth 7cca036f4c Merge pull request #8224 from a3d4/refactor-sourcelocation
Replaced SourceLocation::isEmpty() with isValid() and hasText().
2020-02-04 22:23:51 +01:00
chriseth d3739fe620 Fix WordSizeTransform to properly assign default types. 2020-02-04 18:13:37 +01:00
chriseth 9f0cef97c2 Specify default type for word size transform externally. 2020-02-04 18:13:37 +01:00
chriseth 967ce8dd51 Merge pull request #8215 from imapp-pl/yul-optimiser-step-abbreviations
Yul optimiser step abbreviations
2020-02-03 14:03:32 +01:00