Commit Graph

529 Commits

Author SHA1 Message Date
Kamil Śliwak
c96196c346 Define constants to make flag meanings more apparent in binary wasm 2020-05-28 22:17:02 +02:00
chriseth
65d8b6cf75
Merge pull request #9033 from a3d4/partfix-5819-add-errorid-to-error-class
Add unique ID to Error class
2020-05-28 16:24:47 +02:00
a3d4
011f8a462d Remove AsmAnalyzer class-specific error reporting functions 2020-05-28 02:02:53 +02:00
chriseth
eb923af09c Do not set source locations for small internal assembly routines. 2020-05-27 18:26:46 +02:00
chriseth
a06ac0f39f
Merge pull request #8958 from ethereum/evm-version-dependent-rules
[yul] Add support for EVM version-dependent rules.
2020-05-27 12:52:51 +02:00
Christian Parpart
b7fa5d5040 Mark EVM instruction pc() as deprecated when used in inline assembly. 2020-05-27 12:07:23 +02:00
Alexander Arlt
a7b89065ca [yul] Add support for EVM version-dependent rules. 2020-05-27 11:57:08 +02:00
chriseth
bd64e537cb Fix implementation of leave. 2020-05-26 10:24:01 +02:00
Alex Beregszaszi
cfdfa36065 Rename wasm::Break(If) to wasm::Branch(If) for clarity 2020-05-21 00:02:02 +01:00
Kamil Śliwak
d199fc537b Add configurable weights to CodeSize metric 2020-05-20 16:47:23 +02:00
chriseth
84092edc5d
Merge pull request #8914 from random-internet-cat/down-with-unique-ptr
Down with unique_ptr!
2020-05-20 13:22:06 +02:00
chriseth
4e9f6c3508 Fix webassembly loops by adding explicit break at the end. 2020-05-19 22:16:16 +02:00
chriseth
a05e8c1a0e
Merge pull request #8956 from a3d4/partfix-5819-introduce-errorwatcher
Introduce ErrorWatcher
2020-05-19 17:24:01 +02:00
Jason Cobb
899e6d7e2b
Use optional for FunctionImport::returnType 2020-05-18 10:24:38 -04:00
a3d4
9f8d5753ce Introduce ErrorWatcher and remove a dedicated error flag from AsmAnalyzer 2020-05-18 16:06:23 +02:00
chriseth
f92a4f1965 Provide runtime object in Yul mode. 2020-05-18 13:48:23 +02:00
chriseth
6308ca4a22 Binary transform for br and br_if. 2020-05-14 11:30:19 +02:00
Mathias Baumann
820fdd9bf7 Escape backslashes when formatting 2020-05-13 17:08:37 +02:00
chriseth
7da453014d Fix source location of yul variable declarations without value. 2020-05-12 17:45:19 +02:00
Daniel Kirchner
c1ed5bbb0f Update Dockerfiles and CI scripts to Ubuntu 20.04 and simplify them. 2020-05-11 17:35:01 +02:00
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