Commit Graph
174 Commits
Author SHA1 Message Date
hrkrshnn 1f5b874eaf Optimizer context has parameter expectedExecutionsPerDeployment 2021-04-22 17:27:57 +02: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
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 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
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 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
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
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
Kamil Śliwak 424edecd21 [yul-phaser] Phaser: List all available values of enum options in --help 2020-04-24 17:31:50 +02:00
Kamil Śliwak e19d8d1fa3 [yul-phaser] GeneticAlgorithm::runNextRound(): Fix outdated docstring 2020-04-24 17:31:50 +02:00
Kamil Śliwak c2effd4e98 [yul-phaser] Mutations: Minor style tweak, missing space in the ternary operator 2020-04-20 15:30:10 +02:00
Kamil Śliwak d9e2735361 [yul-phaser] Add options for selecting crossover operator used by the algorithms 2020-04-20 15:30:10 +02:00
Kamil Śliwak ad89b477c8 [yul-phaser] GeneticAlgorithms: Add methods for selecting a crossover operator 2020-04-20 15:30:10 +02:00
Kamil Śliwak 1ada2a52fb [yul-phaser] Mutations: Add two-point and uniform crossover operators 2020-04-20 15:30:10 +02:00
chriseth 703b6efb55 Merge pull request #8515 from imapp-pl/yul-phaser-classic-genetic-algorithm
[yul-phaser] Classic genetic algorithm
2020-04-15 12:01:51 +02:00
chriseth 823a119117 Merge pull request #8570 from aarlt/clang-tidy-apply-modernize-use-emplace
clang-tidy: Apply modernize-use-emplace.
2020-04-07 17:28:50 +02:00
Kamil Śliwak 0efea99fa5 [yul-phaser] Phaser: Allow selecting the classic algorithm on the command line 2020-04-06 19:06:08 +02:00
Kamil Śliwak f6783c60b2 [yul-phaser] GeneticAlgorithms: Add ClassicGeneticAlgorithm 2020-04-06 19:06:08 +02:00
Kamil Śliwak 879f6e17e9 [yul-phaser] GenerationalElitistWithExclusivePools: Refactor runNextRound() for less nesting and more readability 2020-04-06 19:06:08 +02:00
Kamil Śliwak 8c86a4983d [yul-phaser] Population: Add combine() 2020-04-06 19:06:08 +02:00
Kamil Śliwak ef8d0888af [yul-phaser] Population: Add symmetricCrossoverWithRemainder() 2020-04-06 19:06:08 +02:00
Kamil Śliwak 59011fcde6 [yul-phaser] Mutations: Add mutationSequence() 2020-04-06 19:06:08 +02:00
Kamil Śliwak 0837a62d5c [yul-phaser] Mutations: Add symmetricRandomPointCrossover() 2020-04-06 19:06:08 +02:00
Kamil Śliwak b6f8ecf755 [yul-phaser] Selections+PairSelections: Add RandomSubset and PairsFromRandomSubset 2020-04-06 19:06:08 +02:00
Kamil Śliwak 7381068dcc [yul-phaser] Make the Population constructor that takes individuals public and use it to speed up some operations 2020-04-06 19:06:08 +02:00
Alexander Arlt 90bb1d8a7c Apply modernize-use-emplace. 2020-04-02 17:35:48 -05:00
Alexander Arlt 616fd8df1e Apply modernize-use-nullptr. 2020-04-01 12:46:19 -05:00
chriseth ff35bf69de Merge pull request #8539 from random-internet-cat/population-op-plus
Convert operator+(Population, Population) into a hidden friend
2020-03-30 16:22:57 +02:00
Jason Cobb c184844932 Remove forward declaration of class Population 2020-03-26 18:57:43 -04:00