Alexey Andreev
c65a9e1c97
Fix bug in irreducible graph splitting algorithm
2021-07-15 19:17:11 +03:00
Alexey Andreev
220537d984
C: fix behaviour of nested try/catch statements
2021-04-15 20:55:52 +03:00
Alexey Andreev
73bd139b7e
C: implement ServiceLoader
2021-04-14 23:02:09 +03:00
Alexey Andreev
4a62b58f82
Bug fixes in optimizer
2021-04-02 19:54:38 +03:00
Alexey Andreev
7058a195b7
JS: fix class of object created by multianewarray instruction
2021-04-01 12:05:18 +03:00
Alexey Andreev
c89bc11d02
Fix dominator tree builder, make it possible to choose starting node
2021-04-01 09:29:18 +03:00
Alexey Andreev
d710870c65
Fix possible NPE
2021-03-31 12:53:12 +03:00
Alexey Andreev
9972fe0c29
Rewrite node splitting algorithm
2021-03-30 12:07:14 +03:00
Alexey Andreev
b34e25414e
C: fix support for resources
2021-03-24 18:52:54 +03:00
Alexey Andreev
00fba54d7b
C: fix exception handling semantics with longjmp
2021-03-24 17:30:49 +03:00
Alexey Andreev
bb4315e486
C: fix missing files when casting to arrays
2021-03-24 16:09:01 +03:00
Alexey Andreev
6de830d5bd
wasm: fix initialization order of system classes
2021-03-22 23:22:34 +03:00
Alexey Andreev
f2bac088f1
Fix more complex cases of irreducible CFGs during coroutine transformation
2021-03-22 22:09:41 +03:00
Alexey Andreev
9df897d298
Fix coroutine transformation. Make emulated threads work in Wasm
2021-03-22 21:28:50 +03:00
Alexey Andreev
eb495182d2
JS: fix runtime for Safari
2021-03-22 15:13:40 +03:00
Alexey Andreev
38cbd7e80b
JS: fix async methods
2021-03-22 14:17:50 +03:00
Alexey Andreev
d6780ea637
Fix bug in global value numbering optimization
2021-03-22 14:17:50 +03:00
Alexey Andreev
bd53c1a5a2
wasm: trying to implement coroutines
2021-03-21 22:13:09 +03:00
Alexey Andreev
c4c1408160
wasm: fix running tests, add in-browser test runners
2021-03-20 19:52:45 +03:00
Alexey Andreev
b2b7a603b4
JS: fix array optimization
2021-03-19 14:16:29 +03:00
Alexey Andreev
75d06bebbf
JS: fix bug in compilation of monitorenter instruction
2021-03-18 14:20:29 +03:00
JohannesS
f97484365c
JS: fix overrides with default methods
2021-03-18 12:26:33 +03:00
Alexey Andreev
81bfe3f6e2
Improve pom.xml configuration
2021-03-18 11:16:41 +03:00
Alexey Andreev
2c7b5be62e
JS: fix long emulation in JS engines that don't support BigInt
2021-03-18 10:14:18 +03:00
Alexey Andreev
3779520389
C: fix after introducing CCE support
2021-03-18 01:03:01 +03:00
Alexey Andreev
67c639b875
JS: fix stack trace decoder with new CCE support
2021-03-17 21:49:06 +03:00
Alexey Andreev
4c0c7872a1
JS: add support for CCE in strict mode
2021-03-17 21:11:18 +03:00
Alexey Andreev
02e8955abc
JS: fix overflow behaviour of unary minus
2021-03-17 10:16:07 +03:00
Alexey Andreev
71f87d79a5
JUnit: add support for TestNG annotations
2021-03-16 21:47:05 +03:00
Alexey Andreev
40ecb0938d
Fix issue with BigInt64Array in Safari
2021-03-12 19:13:29 +03:00
Alexey Andreev
35f025d7da
JS: fix bug in fallback long implementation
2021-03-10 16:22:19 +03:00
Alexey Andreev
ca23da939a
JS: represent long as BigInt if available
2021-03-08 22:59:45 +03:00
Alexey Andreev
e4c808c324
Add switch to log devirtualization process
2021-02-26 12:26:13 +03:00
Alexey Andreev
0eca9d95e1
Fix missing virtual call detector
2021-02-26 11:52:10 +03:00
Alexey Andreev
d1fa57210e
Copy parameter annotations when renaming a class
2021-02-01 14:41:18 +03:00
Alexey Andreev
969ad17b6a
C: workaround for regression in MSVC compiler
2020-11-27 18:54:24 +03:00
Octavia Togami
a8641de39b
Correct problem severity for warning
2020-11-26 14:59:13 +03:00
Alexey Andreev
306c78459c
JS: use symbol instead of string property to represent Java exception wrapper
2020-09-09 19:28:32 +03:00
Alexey Andreev
17098495f2
JS: fix compilation of class files that contain methods and field names containing non-identifier characters
2020-07-06 12:11:17 +03:00
Alexey Andreev
9cf21825fc
Fix wrong evaluation when optimizer sees array initialization that looks like array initializer expression, but has access to array variable on its elements, i.e. on a case like this:
...
Object[] array = new Object[1];
array[0] = array;
That can't be optimized to
Object[] array = new Object[] { array };
2020-06-16 19:24:45 +03:00
Alexey Andreev
5ee332c771
Fix crash when lambda is not used. Fix #500
2020-06-01 12:19:37 +03:00
Alexey Andreev
6f7c2dff2b
Fix copying source files in simple optimization mode. Fix #501
2020-06-01 12:07:42 +03:00
Alexey Andreev
ecc4be2d25
Fix class initialization optimization
2020-05-19 13:27:26 +03:00
Alexey Andreev
eebe16157b
C: further workaround for msvc bug
2020-05-19 09:56:47 +03:00
Alexey Andreev
8f68c64193
Fix bug in repeated field read elimination.
...
There's a case that was missing in this optimization. We install invalidation
points on a block's dominance frontiers when the block contains som
invalidation instructions. However, if a block is an entry to exception
handler, state is always invalidated. This should be done
since exception handler may recover and proceed with some code that
follows try/catch block. Without this change code after try/catch inherits
state of `try` block, which is invalid, since `catch` is another
source from where we can get there. We can't rely on regular instruction
analysis in `catch` blocks, since we get into `catch` from an unpredictable
point.
2020-05-18 17:24:21 +03:00
Alexey Andreev
333ee95604
C: in addition to deece78dec
...
Fix generation of heap dump metadata
2020-05-15 18:05:50 +03:00
Alexey Andreev
deece78dec
C: workaround msvc C1054 error while compiling virtual table initializers of classes with deep inheritance hierarchy
2020-05-15 17:55:26 +03:00
Alexey Andreev
862e9b846f
Exclude all classes from underlying JDK
2020-05-14 16:59:21 +03:00
Alexey Andreev
6a4da94f2e
Get rid of irreducible CFGs in input bytecode
2020-05-14 16:18:33 +03:00
Alexey Andreev
4284bb2a6c
C: fix naming when bytecode contains method names with special characters
2020-05-14 14:31:48 +03:00