hrkrshnn
3efac3eef0
NameSimplifier is removed from steps available to users.
2020-12-02 13:48:01 +01:00
hrkrshnn
5a15a4a6bd
Fix a bug in NameSimplifier.
...
A new name created by NameSimplifier could also be created by NameDispenser, since the knowledge of
the new name was not stored in NameSimplifier.
2020-12-02 13:48:01 +01:00
hrkrshnn
cf6fe5a777
NameDispenser: Added three public functions.
...
The private function `illegalName` was converted into a public function.
A new public getter function `usedNames()` returns a reference to `m_usedNames`.
A public function reset that would change all `m_usedNames` to *only* the names that are used in the
AST. Also resets the counter. This will be used before the final NameSimplifier step in the
optimization phase.
The first two functions were added so that `NameSimplifier` could use it instead of traversing the AST
using `NameCollector` to find used names.
2020-11-30 14:02:57 +01:00
chriseth
ac9b31d623
Abort early if the optimizer sequence is empty.
2020-11-26 16:41:20 +01:00
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
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
Alex Beregszaszi
6f6bcdd526
[ewasm] Display custom sections as hex string in the text output
2020-11-10 23:48:24 +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
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
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
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