Commit Graph

680 Commits

Author SHA1 Message Date
Alexey Andreev
ae896f3d90 WASM: bugfixes 2019-10-01 14:52:28 +03:00
Max Graey
e23293a8af Minor improvements for javascript runtime (#425) 2019-10-01 11:29:30 +03:00
Alexey Andreev
810ee0f49e JS: fix crash on some JavaScript constructs in hand-written runtime code 2019-09-30 18:36:05 +03:00
Alexey Andreev
3b170df2ca Fix nullness information builder 2019-09-30 18:23:38 +03:00
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
Alexey Andreev
62b3c68a5b Don't report compile-0time error when there's possible way to reach suspension point. Generate runtime error instead. 2019-06-22 23:30:05 +03:00
Alexey Andreev
c28d9ef68d C: fix GC hanging when main function receives 0 for argc 2019-06-20 17:41:35 +03:00
Alexey Andreev
aeb5f44922 C: allow to change main function name 2019-06-20 17:13:08 +03:00
Alexey Andreev
a65f8fdcd9 C: reduce number of warnings, redirect console to debugger in Windows 2019-06-20 15:06:15 +03:00
Alexey Andreev
9e4c3010b0 C: fix compilation on UWP 2019-06-18 19:17:09 +03:00
Alexey Andreev
b72e4f01e2 C: fix coroutine generation 2019-06-17 17:45:34 +03:00
Alexey Andreev
00ca2c1064 C: fix compilation in Linux 2019-06-17 15:58:19 +03:00
Alexey Andreev
9642eeec0a C: support passing strings as char16_t*, fix bugs under msvc 2019-06-17 15:16:44 +03:00
Alexey Andreev
6e71fa7e87 C: implement file IO in Windows 2019-06-14 15:32:20 +03:00
Alexey Andreev
2c67cc3eb9 C: fix initialization order of system classes 2019-06-10 13:16:27 +03:00
Alexey Andreev
7831fd328f C: allow to put 'struct' keyword before references to native structures 2019-06-06 18:37:37 +03:00
Alexey Andreev
c84ae57b3a C: native structures 2019-06-03 18:27:08 +03:00
Alexey Andreev
3fe3aa5847 C: fix NPE when building application with errors 2019-05-31 17:37:05 +03:00
Alexey Andreev
91de1f6ca7 C: implement native file system 2019-05-31 15:05:23 +03:00
Alexey Andreev
2ba4ce0977 Fix inability to synchronize using array object
See #393
2019-05-29 22:49:13 +03:00
Alexey Andreev
1ca635fac6 JS: fix rethrowing uncaught exception
See #394
2019-05-29 21:37:34 +03:00
Alexey Andreev
d17b459ecc C: fix MSVC support 2019-05-28 20:13:14 +03:00
Alexey Andreev
1899641f63 C: when converting between C and Java strings, properly handle illegal characters 2019-05-27 17:39:10 +03:00
Alexey Andreev
d818b62686 C: fix bug in virtual table builder 2019-05-27 11:57:57 +03:00
Alexey Andreev
fdb3f5edb1 C: improve incremental compiler performance. Generate text file with list of c files to compile 2019-05-24 12:10:18 +03:00
Alexey Andreev
28c0cc6ef2 Wasm: fix bugs 2019-05-23 23:38:10 +03:00
Alexey Andreev
871e9a0113 C: reduce size occupied by call site descriptors 2019-05-23 18:43:31 +03:00
Alexey Andreev
9de7df6fdf C: pack virtual tables 2019-05-23 17:34:08 +03:00
Alexey Andreev
063a9f049e C: less code for virtual calls 2019-05-23 15:26:35 +03:00
Alexey Andreev
8b3df6f730 C: fix bugs, introduce new virtual table builder 2019-05-23 15:18:25 +03:00
Alexey Andreev
7f875aa568 C: support methods of Date class 2019-05-21 15:17:58 +03:00
Alexey Andreev
bb9ca77349 JS: fix bug in debugger 2019-05-17 18:51:34 +03:00
Alexey Andreev
2eafb902f4 C: support weak references 2019-05-17 17:40:45 +03:00
Alexey Andreev
4c50ed8714 C: fix generation of '#line' directive 2019-05-17 17:39:29 +03:00
Alexey Andreev
86b5daa3cf Add annotations to mark classes and methods supported on some platforms 2019-05-17 11:44:35 +03:00
Alexey Andreev
816434500c C: fix virtual tables 2019-05-16 18:58:36 +03:00
Alexey Andreev
f5c2cf0fa3 C: fix generation of virtual tables inheriting interface default methods 2019-05-16 18:50:03 +03:00
Alexey Andreev
b3b324d73c C: add missing include to all.c 2019-05-16 17:08:50 +03:00
Alexey Andreev
8e08cf6dcd C: improve generation of string pool for incremental mode 2019-05-16 16:53:40 +03:00
Alexey Andreev
0003ed0bb2 C: generate '#line' preprocessor directive 2019-05-16 11:12:35 +03:00
Alexey Andreev
054db3e8d1 C: incremental code generator 2019-05-15 15:16:18 +03:00
Alexey Andreev
ca50f72fe9 Fix displaying diagnostics in out-of-process mode 2019-05-14 14:46:44 +03:00
Alexey Andreev
3d96616761 JS: reduce precision of float constants 2019-05-13 17:39:18 +03:00
Alexey Andreev
a1aa25afa0 C: fix generation of relative path in 'include' directive 2019-05-13 10:49:36 +03:00
Alexey Andreev
da22256c1f C: compile into multiple .c and .h files 2019-05-08 17:36:46 +03:00
Alexey Andreev
7ef639ec8a Fix bug in GC 2019-04-29 16:24:07 +03:00
Alexey Andreev
ea5dd80199 C/Wasm: fix bugs in GC root detector 2019-04-29 16:24:07 +03:00
Alexey Andreev
5a346fd3a4 Fix issue in inliner 2019-04-29 16:24:07 +03:00
Alexey Andreev
093b506c9a Improve resolution of System.nanoTime 2019-04-29 16:24:07 +03:00
Alexey Andreev
8a45dc300c C backend: fix bug Class implementation. Don't emit unnecessary Object.monitor field 2019-04-26 18:26:23 +03:00
Alexey Andreev
da68fa0083 Wasm backend: fix 2019-04-26 17:10:28 +03:00