chriseth
|
d46da8e53c
|
Optimize iszero(sub(x, y)) to eq(x, y).
|
2020-12-22 15:11:48 +01:00 |
|
Harikrishnan Mulackal
|
2b9f040c48
|
Optimize exp when base is -1
|
2020-09-29 17:44:09 +02:00 |
|
chriseth
|
684fff34a9
|
Replace exp by shl.
|
2020-09-17 16:06:52 +02:00 |
|
chriseth
|
233604f94b
|
Remove ineffective rules.
|
2020-09-14 17:35:04 +02:00 |
|
chriseth
|
8e39110a30
|
Remove flag.
|
2020-09-14 17:35:04 +02:00 |
|
chriseth
|
a3a9630d8b
|
Optimize byte-after-shr for shift amounts that are not multiples of 8.
|
2020-08-04 12:16:23 +02:00 |
|
Bhargava Shastry
|
5100effeec
|
yul: Set non movable flag to true in simplification rule for byte of right-shifted expression
|
2020-08-03 17:30:52 +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 |
|
chriseth
|
59f4989966
|
Optimize combination of byte and shl.
|
2020-07-08 20:26:46 +02:00 |
|
Alexander Arlt
|
a7b89065ca
|
[yul] Add support for EVM version-dependent rules.
|
2020-05-27 11:57:08 +02:00 |
|
chriseth
|
d136e7dc95
|
Rules for optimizing idempotency for bitwise operations.
|
2020-04-23 14:21:00 +02:00 |
|
Christian Parpart
|
345f9928ab
|
Library libdevcore renamed to libsolutil.
|
2020-01-07 15:51:50 +01:00 |
|
Christian Parpart
|
6b23412fae
|
C++ namespace cleanup (except tests).
|
2020-01-07 15:51:50 +01:00 |
|
chriseth
|
e70ef0b820
|
Simplify patterns.
|
2019-11-15 00:34:01 +01:00 |
|
chriseth
|
4b6647f6e1
|
Generalize word.
|
2019-11-07 14:33:34 +01:00 |
|
chriseth
|
fa02667075
|
Generalize instructions.
|
2019-11-07 14:33:34 +01:00 |
|
chriseth
|
c224b09bb3
|
Fix reordering bug in optimizer.
|
2019-09-17 12:33:00 +02:00 |
|
Bhargava Shastry
|
09fa31ccc5
|
yul: Add new optimizer rules for create and create2 builtins
|
2019-09-09 17:06:56 +02:00 |
|
chriseth
|
e86b5cf14e
|
Replace byte(A, X) by zero if A >= 32
|
2019-08-29 15:35:34 +02:00 |
|
chriseth
|
633510eb04
|
Merge pull request #6935 from ethereum/subMaxValueXNotXRule
Add optimization rule SUB(~0, X) -> NOT(X).
|
2019-06-17 14:42:49 +02:00 |
|
Bhargava Shastry
|
e96003e709
|
optimizer: Remove redundant rule from the optimizer rule list
|
2019-06-17 13:41:48 +02:00 |
|
Daniel Kirchner
|
7f322c9433
|
Add optimization rule SUB(~0, X) -> NOT(X).
|
2019-06-14 14:07:46 +02:00 |
|
chriseth
|
f6437a2016
|
Optimizer rules that combine shifts and masks.
|
2019-05-15 20:30:53 +02:00 |
|
Daniel Kirchner
|
a5427bc63a
|
Add optimizer rules for multiplication and division by left-shifted one.
|
2019-05-14 16:20:45 +02:00 |
|
Mathias Baumann
|
5c66ccc179
|
Optimize obsolete ANDs in combination with certain SHIFTs
|
2019-03-29 10:08:05 +01:00 |
|
Alex Beregszaszi
|
84fbf605aa
|
Replace shifts by larger than 255 with 0
|
2019-03-29 10:07:54 +01:00 |
|
chriseth
|
2308904f68
|
Remove "using namespace" from header and move Instruction to dev::eth.
|
2019-03-28 13:48:11 +01:00 |
|
Bhargava Shastry
|
f7b5a27581
|
Fixes bug in byte optimization rule and adds tests.
|
2019-03-21 14:29:06 +01:00 |
|
chriseth
|
4c1a9aa273
|
Merge pull request #6256 from ethereum/completeLtGtRules
Complete the GT/LT rules.
|
2019-03-13 12:08:34 +01:00 |
|
chriseth
|
571f400a3e
|
Complete the GT/LT rules.
|
2019-03-13 12:01:23 +01:00 |
|
Bhargava Shastry
|
515fa872c8
|
Fixes u256 overflow in logical shift optimization rule and adds tests.
|
2019-03-13 11:19:20 +01:00 |
|
chriseth
|
34082a2368
|
Merge pull request #6159 from ethereum/more-optims
More optimiser rules for LT/GT/AND/BYTE and address cleanups
|
2019-03-04 16:24:38 +01:00 |
|
Alex Beregszaszi
|
1272951bbb
|
Do not mask with 160-bits after CREATE/CREATE2
|
2019-03-04 14:42:29 +01:00 |
|
Alex Beregszaszi
|
7aa2ee1775
|
More optimiser rules for LT/GT/AND/BYTE
|
2019-03-04 14:42:29 +01:00 |
|
Alex Beregszaszi
|
a7c2dba681
|
Document the boost multiprecision shift bug in RuleList
|
2019-03-04 13:37:20 +01:00 |
|
Alex Beregszaszi
|
4430fe6a54
|
Combine multiple shifts with constant shift-by values in the optimiser
|
2019-02-25 20:56:13 +00:00 |
|
Alex Beregszaszi
|
fd936439a4
|
Add more optimisation rules for shifts
|
2019-02-20 11:59:15 +00:00 |
|
Daniel Kirchner
|
870b656eda
|
Split up rule list generation further to prevent issues in browsers with the emscripten build.
|
2019-01-18 17:02:47 +01:00 |
|
Daniel Kirchner
|
a1d73a7bef
|
Split simplification rules into two functions.
|
2018-09-18 14:28:21 +02:00 |
|
Leo Arias
|
c4a3c48aea
|
Fix typo
|
2018-08-07 13:35:15 -06:00 |
|
Cryptomental
|
140dbfdbd8
|
Code, Changelog, ReleaseChecklist: Fix typos.
Refs: #4442
|
2018-07-11 00:26:23 +02:00 |
|
Alex Beregszaszi
|
38460d8b47
|
Remove unnecessary masking of the result of known short instructions
|
2018-04-19 23:59:06 +01:00 |
|
Alex Beregszaszi
|
cb352edd26
|
Add constant optimiser for SHR/SHL instructions
|
2018-04-09 20:07:44 +01:00 |
|
Alex Beregszaszi
|
037b97ef4a
|
Replace MOD with AND if constant is power of 2
|
2018-02-12 22:47:04 +00:00 |
|
chriseth
|
c961a3079d
|
Turn simplification rule tuple into struct.
|
2018-02-06 22:51:30 +01:00 |
|
chriseth
|
295f8c07ad
|
Explicitly add reversed operands for commutative operations.
|
2018-02-06 22:51:30 +01:00 |
|
chriseth
|
9eea3f29ba
|
Expression simplifier.
|
2018-02-06 22:51:30 +01:00 |
|
chriseth
|
b8074cdf78
|
Add flag to indicate whether it can be applied to expressions with side-effects.
|
2018-02-06 22:51:30 +01:00 |
|
chriseth
|
491d6d3e0c
|
Move out the rule list.
|
2018-02-06 22:51:30 +01:00 |
|