Commit Graph

40 Commits

Author SHA1 Message Date
Alexey Andreev
2a1aca98da Use shared ReferenceCache between different stages of compilation 2019-03-05 19:32:50 +03:00
Alexey Andreev
573c5f6064 Reduce memory consumption of incremental compilation on dev server 2019-03-05 16:50:16 +03:00
Alexey Andreev
35ca7fd152 Add lazy compilation pipeline that can work a little bit faster in incremental compiler 2019-01-30 19:00:07 +03:00
Alexey Andreev
3c8184c3b7 Fix bug in nullness analysis when variable graph has irreducible loops 2019-01-14 14:08:12 +03:00
Alexey Andreev
4d2c075c07 Always embed runtime into generated file. Remove 'runtime' build property 2018-10-28 00:15:36 +03:00
Alexey Andreev
1b78ef99a6 Fix bugs in node splitting or irreducible graphs 2018-10-24 18:16:59 +03:00
Alexey Andreev
ef011d429d Ignore flaky test 2018-10-19 17:20:07 +03:00
Alexey Andreev
e77997c93f Implement null check in C backend
Although initial purpose of this comment was null check,
it took much time to complete it and it caused many unrelated changes.
Besides just implementing null check in quite naive fashion
(I could not use the trick with memory protection, since I have to
maintain shadow stack, and support WebAssembly), I had to optimize
things. I relied on my existing nullness analysis to eliminate
as much null checks as possible. However, the whole nullness analysis
was wrong. After some thoughts I came up with solution very
close to range analysis, which required me to introduce extension
to IR sometimes called e-SSA form with so called sigma nodes.
Also, I found some bugs in few different places (by the time write this
message I could only remember escape analysis/scalar replacement and
after-inlining devirtualization) and fixed them.
2018-04-17 00:05:46 +03:00
Alexey Andreev
540ad7f694 Uprage HPPC to 0.7.3 2018-03-20 19:10:36 +03:00
Alexey Andreev
6d68010416 Improve speed of class inference during inlining 2018-02-04 22:29:51 +03:00
Alexey Andreev
256814a60a Support plugin loading from bootstrap environment 2017-11-26 13:14:02 +03:00
Alexey Andreev
c54b2b9e9e Fix bug in escape analysis 2017-10-29 19:08:25 +03:00
Alexey Andreev
d4903d460b Reformat test code to conform checkstyle settings 2017-07-01 15:47:46 +03:00
Alexey Andreev
cdec4560ba Remove dumb comments containing only @author annotation 2017-07-01 13:13:52 +03:00
Alexey Andreev
4b6193baca Fix bug in escape analysis. See #271 2017-05-08 18:44:58 +03:00
Alexey Andreev
a94686ddf6 Fix nullness detection on exception variable 2017-02-25 19:52:05 +03:00
Alexey Andreev
d3bed47b1d Add tests for escape analysis/scalar replacement. Fix found bugs 2017-01-21 23:34:33 +03:00
Alexey Andreev
6781dd0abb Fix bug in nullness analysis 2017-01-18 21:30:04 +03:00
Alexey Andreev
ff059919a7 Eliminate exception joint in favour of phi functions with multiple inputs per source basic block 2017-01-08 23:43:12 +03:00
Alexey Andreev
9532f9a32b Refactor phi updater 2017-01-06 21:13:12 +03:00
Alexey Andreev
a5eb9ac800 Add tests for phi updater 2017-01-04 22:09:56 +03:00
Alexey Andreev
aef1e2e206 Fixing bugs in nullness analyzer 2017-01-02 16:55:17 +03:00
Alexey Andreev
5fd95f21cb Refactor nullness tests 2017-01-02 13:28:35 +03:00
Alexey Andreev
9dc4b47253 Add nullness analysis 2016-12-27 00:28:37 +03:00
Alexey Andreev
ae5e1e4962 Store instructions as double-linked list instead of ArrayList 2016-12-20 00:03:14 +03:00
Alexey Andreev
7ca6a4d64e Add IR parser of catch blocks 2016-12-04 19:47:10 +03:00
Alexey Andreev
6883b59fc3 Add IR parser of field get/set and switch instructions 2016-12-04 19:47:10 +03:00
Alexey Andreev
6084491119 Add IR parser of different simple instructions 2016-12-04 19:47:10 +03:00
Alexey Andreev
2b94a8b05c Add IR parser of cast instructions 2016-12-04 19:47:09 +03:00
Alexey Andreev
825acfc85a Add IR parser of invoke instructions 2016-12-04 19:47:09 +03:00
Alexey Andreev
c16de76b23 Add IR parser of constant instructions 2016-12-04 19:47:09 +03:00
Alexey Andreev
f6308c1782 Add IR parser of binary operations and phi functions 2016-12-04 19:47:09 +03:00
Alexey Andreev
6148d7a943 Add support of branching instructions to listing parser 2016-12-04 19:47:09 +03:00
Alexey Andreev
e5db8d4afc Add support of goto and return instructions to textual IR parser 2016-12-04 19:47:09 +03:00
Alexey Andreev
93f8c2cf39 Creating textual IR parser 2016-12-04 19:47:09 +03:00
Alexey Andreev
aebfe7d165 During node splitting, create copies for previously copied nodes, if necessary. See #219 2016-11-04 16:55:56 +03:00
Alexey Andreev
4b766f7b73 Fix implementation of Tarjan SCC finding algorithm 2016-11-04 16:15:15 +03:00
Alexey Andreev
f6bc6f2fcf Fix plugin ordering. Exclude branches from travis 2015-10-12 20:51:46 +03:00
Alexey Andreev
c7026c1299 Add plugin ordering annotations and implementation 2015-10-12 18:39:29 +03:00
Alexey Andreev
3341df3668 Change directory structure 2015-10-04 11:49:20 +03:00