chriseth
debee799dc
Merge pull request #8892 from ethereum/boost-cxx11
...
Replace boost/algorithm/cxx11 with C++11 features
2020-05-11 16:29:42 +02:00
chriseth
3312150d7f
Merge pull request #8878 from ethereum/selecting-yul-optimisation-steps-in-strict-assembly-mode
...
Selecting Yul optimisation steps in strict assembly mode
2020-05-11 16:05:57 +02:00
Alex Beregszaszi
875415a132
Replace boost/algorithm/cxx11 with C++11 features
2020-05-11 14:27:54 +01:00
Alex Beregszaszi
81397dc2c5
Remove "using boost*;" statements
2020-05-11 13:41:58 +01:00
chriseth
5a6c7ad65f
Merge pull request #8886 from ethereum/pragma-once
...
Add header guard to two files
2020-05-11 12:08:08 +02:00
Alex Beregszaszi
338e55be10
Add header guard to two files
2020-05-11 10:44:20 +01:00
a3d4
c3e519a151
Add unique IDs to error reporting calls
2020-05-09 01:28:55 +02:00
Kamil Śliwak
e8aec6de54
More information about --yul-optimizations option in READMEs and docs
2020-05-08 22:29:57 +02:00
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