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
Alexey Andreev
20866637e7
C backend: exit application and print stack when getting out of memory error
2019-04-26 14:04:07 +03:00
Alexey Andreev
87656a3e9a
C backend: fix array of of bounds access in fibers
2019-04-26 12:41:17 +03:00
Alexey Andreev
8cd96d2da2
C backend: fix passing NULL arrays to native methods
2019-04-26 12:40:51 +03:00
Alexey Andreev
f828d049c4
C backend: bugfixes
2019-04-23 19:56:16 +03:00
Alexey Andreev
cbc8d3f638
C backend: bugfixes
2019-04-22 19:03:37 +03:00
Alexey Andreev
2a6ca2d0d8
C backend: bug fixes and interop improvements
2019-04-19 18:41:02 +03:00
Alexey Andreev
cfd6b64899
Remove debugging code
2019-04-15 16:47:46 +03:00
Alexey Andreev
83d041d55b
Improve compilation performance of low-level backends
2019-04-05 14:37:02 +03:00
Alexey Andreev
7551cd1ec6
C: fix bugs in GC
2019-04-05 13:08:16 +03:00
Alexey Andreev
ec8bae1d40
C: fix bugs in RTTI. Support args parameter of main method
2019-04-04 18:34:30 +03:00
Alexey Andreev
91cf9917c7
JS: fix deobfuscated parameter names. Generate less local variables
2019-04-02 19:15:48 +03:00
Alexey Andreev
e6bb91bfb0
JS: fix coroutines
2019-04-02 17:12:53 +03:00
Alexey Andreev
fe68bf700b
Improve performance of array creation
2019-04-02 17:04:51 +03:00
Alexey Andreev
a9c4ab6aa4
Support generic type signatures in IR
2019-03-31 21:32:41 +03:00
Alexey Andreev
45d31da85c
Make clinit optimization weaker in order to properly handle case
...
when clinit method reads state that was set somewhere in main method
2019-03-27 19:34:30 +03:00
Alexey Andreev
d2a7e31eca
Proper fix for recent bug in C backend. Fix Thread.daemon flag
2019-03-27 18:29:02 +03:00
Alexey Andreev
0dc170dad2
Fix bugs in C backend
2019-03-26 19:09:25 +03:00
Alexey Andreev
46d76f7acf
Fix <clinit> optimization issues
2019-03-25 15:09:23 +03:00
Alexey Andreev
103affa392
Partially revert previous <clinit> commit.
...
Generate calls to <clinit> methods, since corresponding analyzer
guarantees proper initialization order.
2019-03-24 22:51:17 +03:00
Alexey Andreev
f33c90f778
Improve <clinit> elimination:
...
* Generate clinit instruction instead of calling <clinit>
directly
* Rename annotation that indicates absence of side effects
* Don't apply this annotation automatically to all JSBody methods
2019-03-24 12:54:06 +03:00
Alexey Andreev
de84105241
Call <clinit> methods before main method when possible, eliminate
...
lazy class initialization for these <clinit> methods.
2019-03-22 19:40:56 +03:00
Alexey Andreev
955ac92035
Get rid of reflection code
2019-03-22 11:32:48 +03:00
Alexey Andreev
f664d94d74
Allow to exclude certain classes, fields and methods from compilation
2019-03-21 17:00:22 +03:00
Alexey Andreev
36041b4107
Fix issues with call graph serialization
2019-03-13 19:19:05 +03:00
Alexey Andreev
731beb5cd5
Fix bugs in threading in C backend
2019-03-13 18:47:30 +03:00
Alexey Andreev
eeaa71072a
Fix IR serialization issue
2019-03-11 18:36:10 +03:00
Alexey Andreev
a8226ef6a3
Decrease memory consumption
2019-03-11 17:27:51 +03:00
Alexey Andreev
94322e5f6e
Get rid of Mapper interface in favour of Function
2019-03-11 13:27:34 +03:00
Alexey Andreev
3acf1f9538
Fix issues with new IR serialization format
2019-03-11 12:14:10 +03:00
Alexey Andreev
abdd9b3270
C backend: support coroutines
2019-03-10 14:04:04 +03:00
Alexey Andreev
578912056b
Reduce memory used by initial class reader
2019-03-07 19:27:07 +03:00
Alexey Andreev
fcfa998e1c
Reduce memory used by call graph in dev server mode
2019-03-07 16:51:00 +03:00
Alexey Andreev
88dca1bd02
Decrease memory consumption during compilation
2019-03-06 16:51:01 +03:00
Alexey Andreev
2a1aca98da
Use shared ReferenceCache between different stages of compilation
2019-03-05 19:32:50 +03:00
Alexey Andreev
3c9a3bb359
Store AST cash in binary format. Introduce more compact
...
AST serialization format.
Reduce memory consumption of incremental compilation on dev server
2019-03-05 19:06:21 +03:00
Alexey Andreev
573c5f6064
Reduce memory consumption of incremental compilation on dev server
2019-03-05 16:50:16 +03:00
Alexey Andreev
35730d665f
Decrease memory consumption
2019-02-27 13:24:50 +03:00
Alexey Andreev
ade00cc984
C backend: fix bugs
2019-02-26 00:10:22 +03:00
Alexey Andreev
2c40c7d56e
Trying to decrease compiler memory consumption
2019-02-25 18:31:34 +03:00
Alexey Andreev
95092c4d82
Refactor things around decompiler, JS backend and control flow debug info
2019-02-25 16:10:35 +03:00
Alexey Andreev
3be32a5851
JS: don't generate square brackets in 'if' bodies, when possible.
...
Generate mangled name for $rt_wrapException
2019-02-25 11:30:30 +03:00
Alexey Andreev
a8f1940df3
Fix bugs in debugger
2019-02-22 17:19:19 +03:00
Alexey Andreev
4a325a192e
Update inlining thresholds due to changes in scoring algorithm
2019-02-13 19:31:57 +03:00
Alexey Andreev
ce13c05342
JS: add ability to set limit for top-level names.
...
The purpose of this option is JS engines are too sensible for number
of methods in closure, while they don't care about methods
in an object.
2019-02-13 17:03:13 +03:00
Alexey Andreev
6790d724c7
Further improvements to inliner
2019-02-13 13:42:44 +03:00
Alexey Andreev
4de1c51e1a
Improve inliner: use simlified heuristics in advanced optimization mode, remove methods that were fully inlined
2019-02-12 19:30:57 +03:00
Alexey Andreev
89189c7454
Fix bugs in debugger
2019-02-12 12:10:33 +03:00
Alexey Andreev
bc41b12f0e
JS: fix bug in generating async functions in minified mode
2019-02-07 17:15:32 +03:00
Alexey Andreev
1b2c47407f
Place classes to a single object in development server to improve debugger performance
2019-02-07 16:29:55 +03:00
Alexey Andreev
95a3a30a6e
Fix html4j tests
2019-01-31 19:20:14 +03:00
Alexey Andreev
7d2c76f711
Fix compiler crash when using incremental pipeline
2019-01-30 19:36:00 +03:00