Commit Graph

562 Commits

Author SHA1 Message Date
Daniel Kirchner
8c5fce5b31
Merge pull request #9304 from ethereum/yul-assert
Only use yulAssert and not solAssert in libyul
2020-07-03 19:00:14 +02:00
Alex Beregszaszi
889131321a
Merge pull request #9298 from ethereum/yul-evm-version-tests
Use different error code for various EVM features in Yul
2020-07-03 17:05:01 +01:00
Alex Beregszaszi
4c7c7c0270 Only use yulAssert and not solAssert in libyul 2020-07-03 15:46:50 +01:00
Alex Beregszaszi
2e6cbd8718 Rename warnOnInstructions to validateInstructions 2020-07-03 12:35:22 +01:00
Alex Beregszaszi
d211a45aa4 Use different error code for various EVM features in Yul 2020-07-03 12:35:22 +01:00
Kamil Śliwak
356b9a7904 Restrict linkersymbol builtin to object dialect of Yul 2020-07-02 14:41:40 +02:00
chriseth
3d602b3190
Merge pull request #9271 from ethereum/sloadKnowledge
[Yul Optimizer] Make DataFlowAnalyzer aware of storage / memory slot after sload / mload
2020-07-01 13:46:10 +02:00
chriseth
e0b1d8b9bd Make DataFlowAnalyzer aware of storage / memory slot after sload / mload. 2020-07-01 13:45:25 +02:00
Bhargava Shastry
1a0391bceb Fuzzer: Add a specialized StackTooDeepError Exception that is caught in the fuzzing harness 2020-07-01 11:08:20 +02:00
Kamil Śliwak
a331d4449d Add linkersymbol() builtin to Yul EVM dialect 2020-06-24 15:06:52 +02:00
Kamil Śliwak
1b09b4f950 Allow Yul literals longer than 32-bytes when used as literal arguments for builtins 2020-06-24 15:05:38 +02:00
Alexander Arlt
86be0fbc2f [ewasm] Fix infinite loops. 2020-06-23 12:35:03 +02:00
chriseth
b00014c51d Fix source location of yul multi-assignemnt. 2020-06-18 14:31:53 +02:00
Kamil Śliwak
06e1b38d1d WasmCodeTransform: Convert Yul 'if's with i32 argument directly to wasm 'if' without an extra comparison with zero 2020-06-16 15:36:47 +02:00
Kamil Śliwak
d9ca02b47a Enable translation of i32 Yul variables/literals to i32 wasm variables/literals
- Until now they were being translated to i64
2020-06-16 15:36:47 +02:00
chriseth
50e8d6850f Remove wasm type conversions. 2020-06-16 15:36:42 +02:00
chriseth
5fdbb5c3e3 Simplify inline assembly resolver. 2020-06-15 18:10:18 +02:00
Djordje Mijovic
33e7b24df0 Adding fixes for signedness conversion warnings in libyul
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-06-12 10:39:30 +02:00
Kamil Śliwak
e67f5072df Add support for generating code with i32 variables in text and binary wasm 2020-06-11 02:44:23 +02:00
Kamil Śliwak
6a82d32ef6 Add the ability to store variable types in wasm AST 2020-06-11 02:44:23 +02:00
Kamil Śliwak
840ff40263 Define wasm::Type enum and use it for import parameters and result 2020-06-11 02:44:23 +02:00
chriseth
d2e9b4e946
Merge pull request #9151 from ethereum/wasm-binary-transform-refactor-index-registration
Refactor the index assignment logic in wasm::BinaryTransform
2020-06-10 10:39:33 +02:00
TrentZ
7eb73b52a1 Rename blacklist for clarity. 2020-06-09 23:43:14 +02:00
Kamil Śliwak
edfbae0167 was/BinaryTransform: Remove unnecessary std:: prefixes from the .cpp file 2020-06-09 17:34:32 +02:00
Kamil Śliwak
b9ecccdece wasm/BinaryTransform: Rename globals and functions to globalIDs and functionIDs 2020-06-09 17:29:34 +02:00
Kamil Śliwak
b2a8639c20 wasm/BinaryTransform: Make most of section generation stateless and pass global/function/type maps via parameters 2020-06-09 17:29:08 +02:00
Kamil Śliwak
adbd4be151 wasm/BinaryTransform: Make global/function/type maps constant 2020-06-09 17:26:00 +02:00
Kamil Śliwak
4b1ea93b41 wasm/BinaryTransform: Put code for enumerating globals/functions/types in separate functions 2020-06-09 17:26:00 +02:00
Harikrishnan Mulackal
d8263d331e Ignore warnings for yulOptimizer tests 2020-06-09 13:03:57 +02:00
Harikrishnan Mulackal
73e634924e Warn on YUL switch statement with only default statement 2020-06-09 12:32:53 +02:00
Kamil Śliwak
fe0a0802b2 wasm/BinaryTransform: Fix wrong alignment for .load/.store with arguments smaller than 64-bits 2020-06-06 00:00:46 +02:00
Kamil Śliwak
976a0f9395 wasm/BinaryTransform: Don't add an empty local entry in binary wasm if there are no locals 2020-06-05 21:03:06 +02:00
Christian Parpart
c708a1bec2 AsmAnalysis: Fixes a superfluous whitespace in an error string 2020-06-03 12:23:06 +02:00
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