Commit Graph
245 Commits
Author SHA1 Message Date
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
chriseth 2e5a42836c Merge pull request #7681 from ethereum/develop
Merge develop into develop_060
2019-11-11 16:42:03 +01:00
Christian Parpart f15d47f165 Yul: Remove obsoleted FunctionalInstruction. 2019-11-11 16:04:39 +01:00
chriseth fa02667075 Generalize instructions. 2019-11-07 14:33:34 +01:00
chriseth e275bb88f0 Fix windows build. 2019-11-06 02:06:19 +01:00
chriseth 46ac16d25c Merge remote-tracking branch 'origin/develop' into develop_060 2019-11-04 19:09:11 +01:00
Christian Parpart cf82bc04d2 Fix compilation error on CI (due to "possibly uninitialized field member"). 2019-11-04 13:45:26 +01:00
chriseth 02d5b7c18a Run literal rematerializer before for loop condition out of body. 2019-11-01 14:01:56 +01:00
chriseth 1cc5a03e42 Fix bug in unsimplifier. 2019-11-01 14:01:56 +01:00
chriseth 61a2d44f38 Conditional unsimplifier 2019-11-01 14:01:56 +01:00
chriseth 19ccdfb0b3 No into body. 2019-11-01 14:01:56 +01:00
chriseth 5d6e983be3 Conditional simplifier. 2019-11-01 14:01:56 +01:00
Christian Parpart 112e63fe15 libyul: AST cleanup, eliminating dead Instruction AST type. 2019-11-01 12:32:25 +01:00