Commit Graph

203 Commits

Author SHA1 Message Date
chriseth
f75b55071e Remove CharStream from SourceLocation. 2021-07-14 15:12:07 +02:00
Kamil Śliwak
afb8fb4927 Create libraries for yul-phaser and solc to avoid compiling their sources again for soltest 2021-06-22 17:47:45 +02:00
Alex Beregszaszi
44e35e0652 Fix compilation errors with GCC 11 2021-05-17 11:35:07 +01:00
hrkrshnn
1f5b874eaf Optimizer context has parameter expectedExecutionsPerDeployment 2021-04-22 17:27:57 +02:00
Mathias Baumann
e197ebbdd1 Replace TypePointer with Type const* 2021-03-23 11:47:19 +01:00
chriseth
806453aca9 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-08 21:00:09 +01:00
Alex Beregszaszi
7e88ba8da0 Enable the -Wconversion warning 2020-12-08 16:45:24 +00:00
chriseth
a3c5d37d02 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-07 17:13:48 +01:00
Alex Beregszaszi
1e2bfbd6b2 Enable the -Wextra-semi warning 2020-12-04 17:21:19 +01:00
chriseth
9a5902f9d7 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-02 12:28:02 +01:00
chriseth
c193ce6c07 Rename SourceReferenceFormatterHuman. 2020-12-01 16:09:46 +01:00
Alex Beregszaszi
1dedba8538 Only use SourceReferenceFormatterHuman 2020-12-01 16:09:46 +01:00
Alex Beregszaszi
a22077f736 Rename AsmData -> AST
Also attempt to only include ASTForward where appropriate.
2020-11-25 17:58:02 +00:00
Mathias Baumann
dd81d05559 Make annotations `SetOnce or optional` where feasible 2020-09-22 17:38:21 +02:00
Kamil Śliwak
d75f0ba437 [yul-phaser] Chromosome: Make it possible to use genes that do not correspond to existing optimiser steps 2020-09-14 16:17:39 +02:00
Kamil Śliwak
47f5ee42c9 [yul-phaser] isFitter(): Switch from toString() to genes() to make chromosome comparisons a tiny bit faster
- toString() uses a stream for conversion while genes() returns a direct reference to the string, without copies in between. The speed up is very small compared to the improvement from switching to storing a string of abbreviations instead of a vector of step names inside chromosomes but there's basically no downside to this change so it's still worth it.
2020-09-11 23:09:51 +02:00
Kamil Śliwak
952a9c6115 [yul-phaser] Chromosome: store step abbreviations instead of full names 2020-09-11 22:05:56 +02:00
Kamil Śliwak
2a707e7685 [yul-phaser] Chromosome: Add stepsToGenes() and genesToSteps() 2020-09-11 22:05:56 +02:00
chriseth
50c3daf693
Merge pull request #9255 from ethereum/solidity-upgrade-constructor
[BREAKING] solidity-upgrade: added module to remove visibility of constructors
2020-07-21 13:24:39 +02:00
chriseth
9be5ed1220 Merge remote-tracking branch 'origin/develop' into breaking 2020-07-21 11:35:28 +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
Harikrishnan Mulackal
6b435b2192 solidity-upgrade: added module to remove visibility of constructors 2020-07-08 18:57:20 +05:30
chriseth
8155ad2187 Merge remote-tracking branch 'origin/develop' into breaking 2020-06-15 17:11:41 +02:00
a3d4
51e64fe0b1 Add error IDs to console output 2020-06-10 13:27:25 +02:00
chriseth
6b3171c38b Merge remote-tracking branch 'origin/develop' into breaking 2020-06-10 11:30:50 +02:00
Kamil Śliwak
8f55ead48d yul-phaser: Switch from uint32_t to size_t in SimulationRNG
- Also pass the appriopriate type internally to the distribution instead of relying on the default (which is uint32_t)
2020-06-04 17:19:42 +02:00
Djordje Mijovic
a49a127627 yul-phaser: Use ptrdiff_t for iterator arithmetic 2020-06-04 17:17:40 +02:00
chriseth
c8b9d24eba
Merge pull request #9106 from ethereum/develop
Merge develop into breaking.
2020-06-03 13:51:28 +02:00
Djordje Mijovic
4b6c322279 Fixing various signedness warnings 2020-06-03 10:37:18 +02:00
chriseth
894478ff8c
Merge pull request #9038 from ethereum/develop
Merge develop into breaking.
2020-05-27 15:24:27 +02:00
chriseth
9604174151 Rename asCallableFunction. 2020-05-26 11:35:12 +02:00
chriseth
74b9b094c0 Merge remote-tracking branch 'origin/develop' into HEAD 2020-05-20 17:22:47 +02:00
Kamil Śliwak
1fa689e951 [yul-phaser] ProgramCache::calculateTotalCachedCodeSize(): Replace default weights with ones that better correlate with memory usage 2020-05-20 16:47:23 +02:00
Kamil Śliwak
bff012c76d [yul-phaser] Change default metric weights so that everything has a cost
- The CodeSize::DefaultWeights gives zeros to instructions that it assumes will be optimised out. Obviously, we cannot make this assumption here since phaser is meant to find the best way for the optimiser to work.
2020-05-20 16:47:23 +02:00
Kamil Śliwak
b776021870 [yul-phaser] Command-line options for altering weights used by CodeSize metric 2020-05-20 16:47:23 +02:00
Kamil Śliwak
40dfac7683 [yul-phaser] Require specifying weights for Program::codeSize() 2020-05-20 16:47:23 +02:00
hrkrshnn
4a001d568e Removed null members from JSON output 2020-05-20 16:56:33 +05:30
chriseth
0be56a0abf Merge remote-tracking branch 'origin/develop' into breaking 2020-05-12 17:48:53 +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
c31a93b3f2 Remove boost::filesystem where it is not needed
A two uses in CommonIO remain for the compiler (plus testing/tools use it extensively)
2020-05-11 11:19:11 +01:00
Alex Beregszaszi
338e55be10 Add header guard to two files 2020-05-11 10:44:20 +01:00
Kamil Śliwak
e8aec6de54 More information about --yul-optimizations option in READMEs and docs 2020-05-08 22:29:57 +02:00
Kamil Śliwak
5d4b9022f0 yul-phaser README: --no-optimize-yul options is not really necessary 2020-05-08 22:05:04 +02:00
Harikrishnan Mulackal
92cf61d4f9 fixed compilation tests and upgraded ext. tests branch 2020-05-05 21:11:15 +05:30
Harikrishnan Mulackal
aed6c22318 solidity-upgrade can now change now to block.timestamp 2020-05-05 21:11:15 +05:30
chriseth
e306fdc251
Merge pull request #8741 from ethereum/dot-syntax-upgrade
[BREAKING] solidity-upgrade dot syntax for gas and value
2020-04-28 18:29:49 +02:00
hrkrshnn
644ae320a4 Fixed infinite loops 2020-04-27 17:37:18 +05:30
Kamil Śliwak
ee915008bd [yul-phaser] README 2020-04-24 17:31:50 +02:00
Kamil Śliwak
163e35dd23 [yul-phaser] Tweak default values according to experiment results
- Long chromosomes in the intial population are better. Set minimum and maximum to 100.
- The classic algorithm does not work well without elite. 50% performed better but I think it might be too large. Let's set it to 25%.
- Switch to uniform crossover since this is what was used in most experiments and performed well.
2020-04-24 17:31:50 +02:00
Kamil Śliwak
35395a4b9c [yul-phaser] Phaser: Missing word in --metric-aggregator option description 2020-04-24 17:31:50 +02:00