50 Commits
Author SHA1 Message Date
Alex Beregszaszi 7e88ba8da0 Enable the -Wconversion warning 2020-12-08 16:45:24 +00: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
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
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 d9e2735361 [yul-phaser] Add options for selecting crossover operator used by the algorithms 2020-04-20 15:30:10 +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 e41ea6d25e [yul-phaser] Add --show-seed option and don't print seed by default 2020-03-25 10:21:18 +01:00
Kamil Śliwak cd16a6e178 [yul-phaser] Add --show-cache-stats option 2020-03-25 10:21:18 +01:00
Kamil Śliwak d33ba54a38 [yul-phaser] Add print-optimised-programs and print-optimised-asts modes 2020-03-25 10:21:18 +01:00
Kamil Śliwak 1272a9335c [yul-phaser] Add --mode option 2020-03-25 10:21:18 +01:00
Kamil Śliwak c875b3d944 [yul-phaser] Add --show-only-top-chromosome and --hide-round options 2020-03-25 10:21:18 +01:00
Kamil Śliwak ec10a3d378 [yul-phaser] Add --show-initial-population option 2020-03-25 10:21:18 +01:00
Kamil Śliwak 98db50ccac [yul-phaser] Add --program-cache option 2020-03-24 17:39:24 +01:00
Kamil Śliwak 3b49fbb8a5 [yul-phaser] Add ProgramCacheFactory class 2020-03-24 17:39:24 +01:00
Kamil Śliwak e2ff9698d3 [yul-phaser] AlgorithmRunner: Add support for ProgramCache 2020-03-24 17:39:24 +01:00
Kamil Śliwak 259f738f17 [yul-phaser] ProgramBasedMetric: Add the ability to use ProgramCache 2020-03-24 17:39:24 +01:00
Kamil Śliwak a66ceb11c6 [yul-phaser] Add --prefix option 2020-03-23 16:31:35 +01:00
Kamil Śliwak 905147321b [yul-phaser] Phaser: Change default metric to RelativeCodeSize 2020-03-18 16:28:16 +01:00
Kamil Śliwak d86652cb96 [yul-phaser] Add --metric-aggregator option 2020-03-18 16:28:16 +01:00
Kamil Śliwak bc46323bed [yul-phaser] Phaser: Accepting multiple input programs
- Use average of metric values for individual programs as the overall metric.
2020-03-18 16:28:16 +01:00
Kamil Śliwak 01050940fd [yul-phaser] Add --relative-metric-scale option 2020-03-18 16:28:16 +01:00
Kamil Śliwak 8e64c5c6f0 [yul-phaser] Add --metric option 2020-03-18 16:28:16 +01:00
Kamil Śliwak 2563e7a7e3 [yul-phaser] Add --no-randomise-duplicates option 2020-03-18 13:30:58 +01:00
Kamil Śliwak 18f0d6eb94 [yul-phaser] AlgorithmRunner: Duplicate chromosome randomisation 2020-03-18 13:30:58 +01:00
Kamil Śliwak b11eff7c88 [yul-phaser] Add options for all algorithm-specific parameters 2020-03-18 13:30:58 +01:00
Kamil Śliwak 55ea92dbec [yul-phaser] Add --min-chromosome-length and --max-chromosome-length options 2020-03-18 13:30:58 +01:00
Kamil Śliwak 3f7ada1689 [yul-phaser] Add --population-autosave option 2020-03-18 13:30:58 +01:00
Kamil Śliwak 04c7c56d84 [yul-phaser] Add --population-from-file option 2020-03-18 13:30:58 +01:00
Kamil Śliwak 5e00b57e02 [yul-phaser] Add --population option 2020-03-18 13:30:58 +01:00
Kamil Śliwak af090876b5 [yul-phaser] Add --random-population option 2020-03-18 13:30:58 +01:00
Kamil Śliwak d8e5f8f965 [yul-phaser] Add --rounds option 2020-03-18 13:30:58 +01:00
Kamil Śliwak 63f13c5b18 [yul-phaser] Add --chromosome-repetitions option 2020-03-18 13:30:58 +01:00
Kamil Śliwak 760e7c3cc5 [yul-phaser] Don't return exit code from Phaser::main() and just assume 0 if it does not throw. 2020-03-16 20:32:59 +01:00
Kamil Śliwak d86b5019dc [yul-phaser] Phaser: Returning exit code 0 instead of 2 when --help is requested
- I don't think we really need to discern it from normal operation. It's what user requested so it's a success.
2020-03-16 20:32:59 +01:00
Kamil Śliwak f05a07d0cc [yul-phaser] Create BadInput exception hierarchy and make exceptions used by Phaser more specific 2020-03-16 20:32:59 +01:00
Kamil Śliwak 53803801f7 [yul-phaser] Move handling of boost::program_options::error to the top-level exception handler 2020-03-16 20:32:59 +01:00
Kamil Śliwak 8ca0d90aae [yul-phaser] Returning an ErrorList from Program::load() if program has errors and printing them in Phaser 2020-03-16 20:32:59 +01:00
Kamil Śliwak 98fcba8ef3 [yul-phaser] Phaser: Reimplement << and >> operators using serializeChoice() and deserializeChoice() 2020-03-13 11:21:23 +01:00
Kamil Śliwak a80512a71d [yul-phaser] Phaser: Name option parameters in command-line help 2020-03-13 11:21:23 +01:00
Kamil Śliwak df90cf5d7a [yul-phaser] Phaser: Make all option descriptions consistenly end with a full stop 2020-03-13 11:21:23 +01:00
Kamil Śliwak ffc21632b6 [yul-phaser] Phaser: Split command-line option description into groups 2020-03-13 11:21:23 +01:00
Kamil Śliwak 7cf5c4e266 [yul-phaser] Phaser: Extract preparation of option description into a separate function 2020-03-13 11:21:23 +01:00
Kamil Śliwak 2d177c7623 [yul-phaser] Phaser: Refactor object creation in runAlgorithm() into a set of factories 2020-03-13 11:21:23 +01:00
Kamil Śliwak 2110bf10cf [yul-phaser] AlgorithmRunner: Create a structure to store runner's options 2020-03-13 11:21:23 +01:00
Kamil Śliwak b8244f6a43 [yul-phaser] Extract the code that controls execution of algorithm rounds from GeneticAlgorithm into AlgorithmRunner 2020-03-13 11:21:23 +01:00
Kamil Śliwak 0c1b88508e [yul-phaser] Refactor the code from main into a Phaser class 2020-03-13 11:21:23 +01:00