Commit Graph
257 Commits
Author SHA1 Message Date
Daniel Kirchner c1ed5bbb0f Update Dockerfiles and CI scripts to Ubuntu 20.04 and simplify them. 2020-05-11 17:35:01 +02:00
chriseth debee799dc Merge pull request #8892 from ethereum/boost-cxx11
Replace boost/algorithm/cxx11 with C++11 features
2020-05-11 16:29:42 +02:00
Alex Beregszaszi 875415a132 Replace boost/algorithm/cxx11 with C++11 features 2020-05-11 14:27:54 +01:00
Kamil Śliwak e8aec6de54 More information about --yul-optimizations option in READMEs and docs 2020-05-08 22:29:57 +02:00
chriseth 6fb112fa8e Remove some unneeded headers. 2020-05-07 01:49:46 +02:00
Kamil Śliwak c41a832f65 Move the default optimisation steps from OptimiserSuite to OptimiserSettings
- Now it's a mandatory parameter in OptimiserSuite::run()
2020-04-24 17:30:56 +02:00
Kamil Śliwak 69b79f848b OptimiserSuite: Allow validating the optimisation sequence without executing it
- Create a separate validateSequence() that can be used independently.
- Tweak the exception messages a bit to be usable as command-line errors
2020-04-24 17:30:56 +02:00
Kamil Śliwak e2c0e6331c OptimiserSuite: Define NonStepAbbreviations and use it for extra sanity checks 2020-04-24 17:30:56 +02:00
Kamil Śliwak 5a515240ac OptimiserSuite: Use brackets instead of parentheses as syntax for repeating abbreviation sequences
- We want to start accepting abbreviation sequences on the command line and parentheses would always have to be escaped in that context.
- There wasn't any important reason behind choosing () rather than [] or {} and it still isn't too late to switch.
2020-04-24 17:30:56 +02:00
Kamil Śliwak 9db7d2bde9 OptimiserSuite: Replace full step names in run() with abbreviations 2020-04-16 16:09:15 +02:00
Kamil Śliwak 9d7df5db69 OptimiserSuite: Add a variant of runSequence() that works with a string of abbreviations 2020-04-16 16:09:15 +02:00
Kamil Śliwak 1b4e06605d OptimiserSuite: Extract the code for repeating a sequence into runSequenceUntilStable()
- Define a constant for the maximum number of repeats of the optimisation string
2020-04-16 15:23:38 +02:00
Alexander Arlt aac7a1e434 Apply modernize-pass-by-value. 2020-04-14 10:32:13 -05:00
Mathias Baumann 5203503583 Allow for per-parameter literalValues builtin functions 2020-04-08 16:41:38 +02:00
Alexander Arlt cae6e7769f Apply modernize-use-override. 2020-04-02 18:00:44 -05:00
Djordje Mijovic c891597204 Adding ssa type check and test for that one 2020-02-24 15:05:19 +01:00
Djordje Mijovic 2efda4129b Adding test for multi return values including bool in evmTyped dialect. Calling zeroLiteralForType from inliner 2020-02-24 15:05:19 +01:00
chriseth a52305d3bd Use bool type in conditional simplifier and for loop condition into body. 2020-02-24 15:05:19 +01:00
Djordje Mijovic a52c9af5b9 Adding vardecl optimization for boolean types 2020-02-24 15:05:19 +01:00
chriseth e75cace78d Properly assign types in control flow simplifier. 2020-02-24 15:05:19 +01:00
chriseth b9b36cd89e Properly assign types in ExpressionSplitter. 2020-02-24 15:05:19 +01:00
chriseth 915cb65106 Collect types together with names. 2020-02-24 15:05:19 +01:00
Jason Cobb 6db0d50094 Don't use identifiers starting with an underscore followed by an uppercase letter 2020-02-17 12:44:39 -05:00
chriseth 0e100e7e7e Merge pull request #8267 from ghallak/prune-unnecessary-funcs
[Yul] Prune functions that call each other but are otherwise unreferenced
2020-02-12 11:09:27 +01:00
Gaith Hallak 24d6702986 [Yul] Prune functions that call each other but are otherwise unreferenced 2020-02-11 20:39:32 +03:00
Mathias Baumann 1a3998648c Run yul optimizer on user code without refs 2020-02-11 13:55:47 +01:00
cameel 4e7c1c7876 OptimiserSuite: Add two maps for converting between step names and abbreviations
- Abbreviations match those used in yulopti.
- I considered using boost::bimap but I think it would be an overkill. Two simple maps are good enough in a situation where data is constant and there isn't much of it.
- I could also use InvertibleMap from libsolutil but I don't even need any of its methods since my map is a constant. I also don't need the inverted map to store sets because my values are unique.
- The reverseMap() is generic enough to be moved to some global file with utilities but I don't sure if it's going to actually be useful to others in practice.
2020-02-03 12:22:47 +01:00
cameel 2ee7e6042b OptimiserSuite: Remove VarNameCleaner from the list of available steps 2020-01-30 17:35:27 +01:00
chriseth b8488597da Combine value and loop depth. 2020-01-08 12:25:46 +01:00
chriseth 40c0602b5c Do not rematerialize in loops. 2020-01-08 09:56:08 +01:00
chriseth 25d3f27c11 Tune Rematerializer 2020-01-08 09:56:08 +01: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 aab8b9bc36 Fix redundant assignment removal in combination with break / continue. 2019-12-29 15:53:47 +01:00
chriseth b6fc703a27 Merge remote-tracking branch 'origin/release' into HEAD 2019-12-17 19:47:59 +01:00
chriseth 7b84e141dc Descend into for loops when determining call graph. 2019-12-17 13:47:51 +01:00
chriseth 42d9a8e962 Merge remote-tracking branch 'origin/develop' into develop_060 2019-12-04 17:01:44 +01:00
chriseth bbeb093abf Detect loops in call graph generator. 2019-12-03 21:38:20 +01:00
chriseth f7fc42d8c3 Merge pull request #7826 from ethereum/develop
Merge develop into develop_060
2019-11-28 13:37:19 +01:00
chriseth 301215f186 Merge pull request #7461 from sifmelcara/licm
[YulOpt] Implement loop-invariant code motion
2019-11-28 12:00:19 +01:00
mingchuan db60d123d0 [YulOpt] Implement loop-invariant code motion 2019-11-28 11:59:29 +01:00
chriseth 1ebcc757e1 Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-27 19:14:08 +01:00
chriseth 9e9b643b93 Tune the suite. 2019-11-27 11:56:11 +01:00
chriseth b0db64ff5b Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-26 16:19:35 +01:00
Leonardo Alt 2bfa3a7c97 Rewrite GenericVisitor 2019-11-26 15:55:06 +01:00
Leonardo Alt 72eff30778 Fix develop 060 merge 2019-11-20 13:49:40 +01:00
Leonardo Alt 389da5228e Merge remote-tracking branch 'origin/develop' into merge_develop_060 2019-11-20 12:27:40 +01:00
Leonardo Alt be849b3c47 Replace boost::variant by std::variant in libyul 2019-11-19 17:23:18 +01:00
Erik K 94272d44aa Merge pull request #7745 from ethereum/develop
Merge develop into develop_060
2019-11-19 15:30:31 +01:00
chriseth e70ef0b820 Simplify patterns. 2019-11-15 00:34:01 +01:00