Alex Beregszaszi
f76ac0a753
[wasm] Document what StringLiteral is
2020-11-20 21:16:56 +00:00
Alexander Arlt
9d6296eca4
[ewasm] Polyfill: calldataload & calldatacopy.
2020-11-20 13:46:04 -05:00
chriseth
a7db4fa4a5
Merge remote-tracking branch 'origin/develop' into breaking
2020-11-18 20:05:02 +01:00
Alexander Arlt
c0d28492c3
[ewasm] Polyfill: Rename endian_swap -> bswap.
2020-11-17 21:30:06 -05:00
Alexander Arlt
19f764bf65
Split ewasm polyfill functions into different files.
2020-11-17 19:27:44 -05:00
chriseth
0a31a6bc36
Merge pull request #10258 from ethereum/develop
...
Merge develop into breaking.
2020-11-11 13:36:17 +01:00
Alex Beregszaszi
6f6bcdd526
[ewasm] Display custom sections as hex string in the text output
2020-11-10 23:48:24 +01:00
chriseth
da92fe548e
Merge remote-tracking branch 'origin/develop' into breaking
2020-11-10 13:48:32 +01:00
Alex Beregszaszi
6e11754c8b
[ewasm] Support compiling data subobjects
2020-11-09 17:47:12 +00:00
Alex Beregszaszi
e41700e5f7
[ewasm] Clarify custom section handling in BinaryTransform
2020-11-09 17:47:01 +00:00
Alex Beregszaszi
cd08dab4e6
[ewasm] Allow compiling Yul without "main"
2020-11-09 16:36:29 +00:00
chriseth
ce50f05fc1
Merge remote-tracking branch 'origin/develop' into HEAD
2020-10-29 16:44:47 +01:00
Alex Beregszaszi
1e7dcb0bbf
Use yulAssert instead of astAssert
2020-10-29 14:21:12 +00:00
Alex Beregszaszi
e4133815e9
Remove explicit yul:: namespacing in AsmJsonImporter
2020-10-29 14:07:43 +00:00
Alex Beregszaszi
1ab6340828
Move AsmJsonImporter from libsolidity to libyul
...
It is next to AsmJsonConverter now and interdependencies are shrunk.
2020-10-29 14:06:34 +00:00
chriseth
e93a84ccd4
Merge remote-tracking branch 'origin/develop' into HEAD
2020-10-28 18:19:31 +01:00
chriseth
b18d5ab257
Fix move bug.
2020-10-28 17:21:08 +01:00
chriseth
fb40f29594
Merge pull request #10133 from ethereum/asm-error-codes
...
Split error codes for EVM opcodes
2020-10-28 13:00:23 +01:00
Alex Beregszaszi
24d8c2ed90
Split error codes for EVM opcodes
2020-10-28 11:45:46 +00:00
Alex Beregszaszi
13652bd4a9
[ewasm] Add assertion for datasize/dataoffset in BinaryTransform
2020-10-27 17:43:31 +00:00
Alex Beregszaszi
6d79a8885f
[ewasm] Implement stop() in EVM->Ewasm translator
2020-10-27 17:09:30 +00:00
chriseth
bfd267459c
Panic codes.
2020-10-22 19:25:55 +02:00
Daniel Kirchner
0dca223b45
Add another argument to setimmutable and the AssignImmutable opcode, allowing to modify code at any memory offset.
2020-10-15 18:14:41 +02:00
Daniel Kirchner
61a03036fe
Refactor stack to memory mover in preparation of moving function arguments.
2020-10-13 12:20:04 +02:00
chriseth
d513e05ce9
Merge pull request #9961 from ethereum/stackLimitEvaderRefactor2
...
StackToMemoryMover: encapsulate memory offset tracking into its own class.
2020-10-08 19:56:44 +02:00
chriseth
70ebc0a13c
Merge pull request #9960 from ethereum/stackLimitEvaderRefactor
...
StackLimitEvader: Track unreachable variables globally instead of per function.
2020-10-08 19:01:26 +02:00
Daniel Kirchner
5442a7ade2
Always run the FunctionHoister as part of the optimizer Suite.
2020-10-06 22:30:37 +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 Beregszaszi
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 Beregszaszi
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 Mijovic
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
chriseth
8eee3ed3a2
Merge pull request #9388 from ethereum/develop
...
Merge develop into breaking.
2020-07-13 14:55:21 +02:00
Alex Beregszaszi
87557896ed
Add ctz and popcnt to WasmDialect
2020-07-13 11:10:14 +01:00
chriseth
c90d3a3558
Merge pull request #9384 from ethereum/yul-err-typo
...
Fix missing quote in error message for invalid Yul types
2020-07-13 11:28:55 +02:00
Alex Beregszaszi
20dd66f398
Fix missing quote in error message for invalid Yul types
2020-07-10 21:06:09 +01:00
Djordje Mijovic
547590b972
Fixing additional signedness errors after adding -Wsign-conversion flag
...
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-07-09 17:22:45 +02:00
chriseth
64b6524bdb
Merge remote-tracking branch 'origin/develop' into breaking
2020-07-08 09:37:14 +02:00
Alex Beregszaszi
fc8947d3e8
Restrict dots in Yul identifiers
2020-07-07 13:13:58 +01:00
chriseth
ec8be81258
Merge pull request #9243 from ethereum/jumpTypesForYul
...
Jump types for yul functions.
2020-07-07 12:21:14 +02:00
chriseth
d72aae20aa
Merge pull request #9321 from ethereum/multiYulAssign
...
Disallow the same yul variable occurring multiple times on the LHS of an assignment.
2020-07-07 11:07:05 +02:00
Daniel Kirchner
70615a73a4
Disallow the same yul variable occurring multiple times on the LHS of an assignment.
2020-07-07 10:52:47 +02:00
chriseth
982a269b2b
Merge pull request #9325 from ethereum/develop
...
Merge develop into breaking.
2020-07-06 19:11:02 +02:00
chriseth
4d2b9cd38f
Jump types for yul functions.
2020-07-06 18:12:54 +02:00
Alex Beregszaszi
65c50b14c8
Remove unused instructionNames() function in AsmParser
2020-07-06 16:48:28 +01:00
Alex Beregszaszi
60d4b1e8cc
Rename drop to i64.drop in WasmDialect
...
Also properly implement support for both i32.drop and i64.drop in BinaryTransform, TextTransform, and YulInterpreter
2020-07-06 15:47:17 +01:00
Alex Beregszaszi
67ebb206ea
Turn Instruction::JUMP* into yulAssert
2020-07-06 14:46:36 +01:00
Alex Beregszaszi
55e41b602a
Explicitly check for jump instructions in EVMDialect
2020-07-06 14:46:24 +01:00
chriseth
ab68406006
Merge remote-tracking branch 'origin/develop' into breaking
2020-07-06 15:25:25 +02:00
Daniel Kirchner
b9b24daa8a
Merge pull request #9295 from ethereum/requireFLIR
...
Require for loop init rewriter for SSA.
2020-07-04 17:51:57 +02:00
chriseth
711ed588d7
Require for loop init rewriter for SSA.
...
Co-authored-by: Harikrishnan Mulackal <webmail.hari@gmail.com>
2020-07-03 19:24:31 +02:00
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
chriseth
3e3f9a472f
Merge remote-tracking branch 'origin/develop' into breaking
2020-06-30 18:56:51 +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
chriseth
af0cd4ab98
Merge pull request #9252 from ethereum/develop
...
Merge develop into breaking.
2020-06-23 18:28:24 +02:00
Alexander Arlt
86be0fbc2f
[ewasm] Fix infinite loops.
2020-06-23 12:35:03 +02:00
chriseth
1441b97131
Merge remote-tracking branch 'origin/develop' into breaking
2020-06-22 18:40:20 +02:00
chriseth
b00014c51d
Fix source location of yul multi-assignemnt.
2020-06-18 14:31:53 +02:00
chriseth
71cb7551f4
Merge pull request #9208 from ethereum/develop
...
Merge develop into breaking.
2020-06-16 16:11:41 +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
chriseth
8155ad2187
Merge remote-tracking branch 'origin/develop' into breaking
2020-06-15 17:11:41 +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
a1165c135d
Fix error codes.
2020-06-10 18:27:37 +02:00
chriseth
6b3171c38b
Merge remote-tracking branch 'origin/develop' into breaking
2020-06-10 11:30:50 +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
Christian Parpart
2af45c62c8
[Yul] Removed now disabled pc() from wasm backend.
2020-06-08 16:46:55 +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
chriseth
1f49edd29d
Merge pull request #9039 from ethereum/yul-remove-pc-instr
...
[Yul] remove PC instruction
2020-06-03 14:10:35 +02:00
Christian Parpart
9820df58ab
Remove Yul instruction PC and adapt tests accordingly.
2020-06-03 12:49:23 +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
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
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