Commit Graph

626 Commits

Author SHA1 Message Date
Alexey Andreev
a2a9dbcbe3 Improve performance of inliner in FULL optimization level
The former implementation suffered from class inference.
The reason was in many nodes having too many possible classes in them.
The new implementation does not handle full set of classes in each node.
Instead, it introduces concept of 'overflow', i.e. node having
more types than the given upper limit.
These nodes behave as if there were all possible classes in them,
which allows to apply certain optimization for these nodes and
omit heavy computations of large type sets.
2019-09-27 16:36:55 +03:00
Alexey Andreev
fe3436f053 C/Wasm: resizable heap 2019-09-24 17:48:17 +03:00
Alexey Andreev
f0b6cc2f30 Update version to 0.7.0 2019-09-24 16:26:14 +03:00
Alexey Andreev
5643e82a3d C: minor fixes for Linux 2019-09-07 22:08:32 +03:00
Alexey Andreev
5b739238c2 More efficient filesystem implementation 2019-09-05 17:11:43 +03:00
Alexey Andreev
6e6783f93d C: regenerate only as small amount of classes as possible during incremental build 2019-09-04 19:04:12 +03:00
Alexey Andreev
e33cc5a807 C: split runtime into smaller parts 2019-09-03 14:01:30 +03:00
Alexey Andreev
9e9866398b C: generate return statement in main function 2019-08-29 14:34:06 +03:00
Alexey Andreev
6b0b30cb23 C: fix duplicate call of some <clinit> methods when using reflection 2019-08-29 14:33:23 +03:00
Alexey Andreev
5a8284222a C: fix support of weak references in GC 2019-08-26 19:50:10 +03:00
Alexey Andreev
f028f8db37 JS: don't remove class name from metadata when it's referenced indirectly from array class 2019-08-26 16:44:10 +03:00
Alexey Andreev
7a03ad6c5e Fix issue with <clinit> methods introduced by previous commit 2019-08-23 14:26:33 +03:00
Alexey Andreev
ed627459c8 Fix issue with async methods in code server 2019-08-23 13:44:03 +03:00
Alexey Andreev
492fd004af C: add ability to write heap dump when application crashes 2019-08-19 15:51:41 +03:00
Alexey Andreev
97f9967153 Make SSA and non-SSA liveness analyses. Fix aliasing local variable names with special variables.
Fix #416
2019-08-14 12:40:58 +03:00
Alexey Andreev
6307a67f8f C: allow to redefine directory where to write GC trace files 2019-08-13 13:40:25 +03:00
Alexey Andreev
67c86b089f Fix bug in liveness analysis when running on non-SSA IR 2019-08-13 11:37:21 +03:00
Alexey Andreev
c5334e344d C: add setting to generate code with lots of assertions 2019-08-12 15:12:48 +03:00
Alexey Andreev
0fdf58cbd8 C: implement heap defragmentation in GC 2019-08-12 15:12:27 +03:00
volth
d750847a19 teavm_printString: fix on linux 2019-08-07 19:11:56 +03:00
Alexey Andreev
dcd1f64c81 JS: fix instanceof T[], where T is non-primitive type 2019-08-07 18:34:06 +03:00
Alexey Andreev
e16ba8a6ca C: don't treat primitives as subtypes of Object. Fix #411 2019-08-07 13:45:40 +03:00
volth
2e27a3c218 fix ci 2019-08-07 13:14:20 +03:00
volth
c7309c06d0 ClassGenerator.prepare: handle IsInstanceInstruction case 2019-08-07 13:14:20 +03:00
Alexey Andreev
a5ba6f247e Fix register allocator 2019-07-30 11:23:52 +03:00
Alexey Andreev
1074293aad C: properly print stack trace when application crashes in Windows 2019-07-30 11:23:52 +03:00
Alexey Andreev
d9361e339a C: fix file IO in UWP 2019-07-26 17:00:13 +03:00
Alexey Andreev
c80e9ee431 C: don't add native functions to GC roots 2019-07-26 16:59:58 +03:00
Alexey Andreev
a9ba21889a C: generate unreachable hint after throw statement to avoid compiler warnings 2019-07-23 18:19:40 +03:00
Alexey Andreev
ca3b565210 C: improve null check implementation 2019-07-23 16:33:13 +03:00
Alexey Andreev
a260067fde C: fix bug in GC 2019-07-23 14:15:59 +03:00
Alexey Andreev
90e00f7eb4 C: add option to support exceptions via setjmp/longjmp 2019-07-22 16:53:47 +03:00
Alexey Andreev
114ad986e4 C: fix initialization code 2019-07-15 19:34:02 +03:00
Alexey Andreev
db911c6623 C: fix compilation on Linux 2019-07-15 15:22:43 +03:00
Alexey Andreev
a240537e36 C: reduce number of synthesized null checks 2019-07-12 14:07:57 +03:00
Alexey Andreev
cdcaa8947c C: fix bugs in exception handling lowerer 2019-07-11 15:56:03 +03:00
Alexey Andreev
f264865cc1 C: fix bugs in exception handling lowerer 2019-07-09 17:57:28 +03:00
Alexey Andreev
94996a5e00 C: don't define WIN32_LEAN_AND_MEAN 2019-07-09 15:52:19 +03:00
Alexey Andreev
8a359c6434 C: fix GC 2019-07-09 14:41:53 +03:00
Alexey Andreev
3ed75a97d4 C: fix insertion of shadow stack instructions 2019-07-09 14:41:39 +03:00
Alexey Andreev
f4f80a88ea C: fix minor compiler warnings 2019-07-09 11:40:39 +03:00
Alexey Andreev
4fa3db38a0 C: improve resolution of System.currentTimeNano in Windows 2019-07-08 14:13:56 +03:00
Alexey Andreev
8667b98af5 C: fix incorrect phi placement after some IR transformations 2019-07-05 18:24:59 +03:00
Alexey Andreev
973cdf045b Always eliminate constant variables in AST optimizer 2019-06-28 22:23:50 +03:00
Andrey Mikhalev
5593a2c557 Fixed teavm_currentTimeNano() for MSVC 2019-06-28 12:15:01 +03:00
Alexey Andreev
da27628e19 C: fix bug in conversion from char16 C string to Java string 2019-06-26 15:26:13 +03:00
Alexey Andreev
a2b6c2be58 Fix bug in liveness analysis 2019-06-26 13:41:21 +03:00
Alexey Andreev
b6cfbe7f5b TeaVM(C): fix unnecessary call to Fiber.isResuming 2019-06-25 14:03:02 +03:00
Alexey Andreev
c430578426 Improve GVN 2019-06-23 23:39:40 +03:00
Alexey Andreev
2c6068b36a JS: reduce the probability of colliding local variable name with a keyword 2019-06-22 23:56:32 +03:00