chriseth
2856f56525
Merge pull request #10942 from ethereum/returnSlotAllocation
...
Delayed return slot allocation.
2021-04-08 16:42:07 +02:00
chriseth
f04adde664
Allow hex string literals in Yul.
2021-04-08 15:03:33 +02:00
anurag4u80
b2ca7916aa
Replaced boost::adaptors::transformed
2021-04-08 17:38:14 +05:30
Daniel Kirchner
35c2eeab68
Restrict to only popping, but not reusing argument slots, as well as only freeing up until the return slots are allocated.
2021-04-06 13:38:06 +02:00
Daniel Kirchner
4b0f8383a6
Reuse function argument slots and defer allocation of return variable slots in EVMCodeTransform.
2021-04-06 13:38:05 +02:00
anurag4u80
bbcdddeed9
Replaced keys, values and reverse with ranges
2021-03-31 23:33:04 +05:30
hrkrshnn
0100f48e05
FunctionSpecializer: skip specializing recursive functions
...
This avoids potential pathological behaviour, like in Ackermann function.
2021-03-29 11:02:31 +02:00
hrkrshnn
45a3747701
Added FunctionSpecializer to the optimization suite
2021-03-29 11:02:18 +02:00
hrkrshnn
22ebdc7438
Implemented FunctionSpecializer
...
Optimiser step that specializes the function with its literal arguments.
2021-03-29 11:02:18 +02:00
hrkrshnn
8564d08228
Added a helper class FunctionCopier in ASTCopier
...
Helper class that creates a copy of the function definition, replacing the names of the variable
declaration with a new name.
2021-03-29 11:02:18 +02:00
hrkrshnn
b42fc2015c
NameCollecter can now only collect VariableDeclarations
...
This is done to help with the optimizer step FunctionSpecializer
2021-03-25 11:49:16 +01:00
hrkrshnn
6d9e9e1b1e
Fix small bug in GasMeter calculation in creation context
...
Old calculation did not ignore `optimize-runs` parameter, when creation code gas computations were
done. This would lead to expanding values such as `shl(180, 1)` inside constructor code, even for
the default value for `--optimize-runs`, i.e., 200.
2021-03-17 12:33:10 +01:00
Daniel Kirchner
a75424eec4
Drop support for evm15 and eip-615.
2021-03-09 15:56:03 +01:00
chriseth
7d0ecd9406
Merge pull request #10535 from ethereum/removeNumbers
...
Improve generated names.
2021-02-23 13:29:18 +01:00
chriseth
9c7b1e9c3f
Detect assignment to function in inline assembly.
2021-02-23 11:47:12 +01:00
chriseth
fc0e571a07
Refined cleanup.
2021-02-16 14:20:27 +01:00
Alex Beregszaszi
ded5d721d2
Turn unreachable error into assertion
2021-02-16 10:59:22 +00:00
Christian Parpart
32ba5f5ae7
libsolidity: Extend the AST for named AST nodes in order to get precise locations for names.
...
The actual SourceLocation on an ASTNode is representing the whole
ASTNode whereas in an LSP (for example) you are also interested in the
SourceLocation of a name of a construct (e.g. variable decarlation, function definition, ...).
This also properly encodes non-existend sources as `-1` in the JSON output (eliminating the use of `numeric_limits<size_t>::max()`).
2021-02-10 18:13:09 +01:00
chriseth
9b20c9840a
Merge pull request #10885 from ethereum/heuristic-revamp
...
Yul Backend: Get rid of heuristics for finding the matching runtime
2021-02-10 00:49:56 +01:00
hrkrshnn
5a21e33743
Improve error reporting for Yul parser errors
...
This makes debugging Sol2Yul codegen bugs slightly easier.
2021-02-09 15:40:25 +01:00
Mathias Baumann
e4f1257c83
Yul Backend: Get rid of heuristics for finding the matching runtime
2021-02-09 14:50:25 +01:00
Alexander Arlt
87e3fbee6c
[ewasm] Polyfill: balance & address.
2021-01-19 13:03:40 -05:00
Alexander Arlt
321e971eb3
[ewasm] Add support for hera debugging module.
2021-01-18 20:06:12 -05:00
Daniel Kirchner
f34d7120a2
Add and use mapTuple helper.
2021-01-13 17:23:27 +01:00
Daniel Kirchner
91cdb606a5
Some style review suggestions.
2021-01-13 12:43:38 +01:00
Daniel Kirchner
4505889481
Replace ranges::all_of wrapper by range-v3.
2021-01-12 21:44:42 +01:00
Daniel Kirchner
75bed10be5
Check for scopes in LoadResolver.
2021-01-12 21:41:51 +01:00
Daniel Kirchner
eb035147d2
Rephrase erasure condition in DataFlowAnalyzer.
2021-01-12 21:40:52 +01:00
Daniel Kirchner
3ed55613ba
Add and use cxx20::ranges::all_of.
2021-01-12 21:40:52 +01:00
Daniel Kirchner
970e8064bb
Clear variables, but not backreferences in popScope.
2021-01-12 21:40:52 +01:00
Daniel Kirchner
7fe03cbab0
Implement cxx20 polyfill and replace InvertibleMap entirely.
2021-01-12 21:40:40 +01:00
Daniel Kirchner
625d402dbb
Various optimizations for the DataFlowAnalyzer.
2021-01-12 21:39:20 +01:00
Leonardo Alt
ced79497f5
Fix BFS
2021-01-06 10:17:17 +01:00
Alex Beregszaszi
0425936c8a
Rename AsmScope* to Scope*
2020-12-18 11:55:17 +00:00
Alex Beregszaszi
9230faf9a3
Simplify StackTooDeepError in Yul
2020-12-16 20:35:11 +00:00
chriseth
8f833f4e8f
Merge pull request #10618 from ethereum/develop
...
Merge develop into breaking.
2020-12-16 12:34:41 +01:00
chriseth
5c40fb060c
Report illegal tokens in the Yul parser.
2020-12-16 12:20:07 +01:00
chriseth
6c7e6a3c9f
Merge pull request #10615 from ethereum/develop
...
Merge develop into breaking.
2020-12-15 18:34:01 +01:00
Bhargava Shastry
9b38176c77
AsmAnalysis: Fix out of bounds read due to incorrect bounds checking on literal arguments
2020-12-15 15:38:59 +01:00
chriseth
561280a5cc
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-14 11:33:40 +01:00
Alex Beregszaszi
bd641a5206
Enable more C++ compiler warnings
2020-12-10 21:03:58 +00:00
Alex Beregszaszi
2b09fa14e1
Disallow using reserved identifiers in Yul
2020-12-10 17:10:38 +01:00
Alex Beregszaszi
7df986539f
Disallow using reserved identifiers in NameDispenser/VarNameCleaner
2020-12-10 17:10:38 +01:00
Alex Beregszaszi
3a687c34e4
Add reservedIdentifier to dialect
2020-12-10 17:10:38 +01:00
chriseth
482bda6887
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-10 12:15:52 +01:00
chriseth
d75821e068
Merge pull request #10536 from ethereum/fix-createlinkingfunction-to-cpp
...
Move the implementation of createLinkingFunction into a cpp file
2020-12-09 17:49:16 +01:00
chriseth
b18c76e34b
Merge remote-tracking branch 'origin/develop' into breaking
2020-12-09 15:24:49 +01:00
hrkrshnn
06d719e4f1
Move filter to CommonData.h
2020-12-09 11:13:27 +01:00
hrkrshnn
7ea96c5583
Move the implementation of createLinkingFunction into a cpp file
2020-12-09 11:13:27 +01:00
Alexander Arlt
90623d9507
Fix recompilation of polyfills.
2020-12-08 20:02:25 -05:00