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 |
|