Commit Graph

2926 Commits

Author SHA1 Message Date
Alexey Andreev
5ce48ce866 Wasm backend: fix issues related to instanceof expression 2018-05-19 22:56:16 +03:00
Comick
3ef3678ed0 Fix TSetFromMap#add return value 2018-05-19 21:24:41 +03:00
Alexey Andreev
27a4848947 Make more precise type inference. The old algorithm sometimes reported wrong results on multidimensional primitive arrays 2018-05-19 20:40:47 +03:00
Alexey Andreev
15b77ee752 Wasm backend: fix Array.get 2018-05-17 23:58:14 +03:00
Alexey Andreev
9b2e00cb9f Wasm backend: support reinterpret conversion in C wasm emulator 2018-05-17 23:58:01 +03:00
Alexey Andreev
dbe31c43bf Wasm backend: write function index in AST representation to make easier navigation and debugging 2018-05-17 19:39:22 +03:00
Alexey Andreev
c58e19405c C backend: increase resolution of timer in gtk benchmark 2018-05-17 19:38:42 +03:00
Alexey Andreev
bb3a2a22fe C backend: add GTK version of jbox2d benchmark. 2018-05-17 01:14:37 +03:00
Alexey Andreev
c7b6544537 C backend: allow to pass Java string to C code 2018-05-16 23:20:20 +03:00
Alexey Andreev
f0d97a72ab Wasm backend: add intrinsics for some Float and Double methods 2018-05-16 20:15:13 +03:00
Alexey Andreev
d7b57ae938 Update asm version to 6.1.1 and versions of Maven plugins that use old asm in order to support Java 10 bytecode version. 2018-05-15 16:20:20 +03:00
Alexey Andreev
d3a9f57c1c C backend: avoid generation of deeply nested blocks and long lines (such code is rejected by MSVC). 2018-05-14 22:34:37 +03:00
Alexey Andreev konsoletyper@gmail.com
4d8f33d994 C backend: few fixes for MVSC 2018-05-14 01:15:29 +03:00
Alexey Andreev
76ca3f06cf C backend: make compiled binary independent of load location 2018-05-13 23:27:27 +03:00
Alexey Andreev
8cf69db8bb Wasm backend: copy wasm-runtime.js to the output directory. Fix wasm benchmark according latest changes 2018-05-13 19:45:25 +03:00
Alexey Andreev
c9ebe2e2e9 Wasm backend: fix more tests. Implement Array.get. Implement x instanceof C for all cases. 2018-05-13 19:17:45 +03:00
Alexey Andreev
f23128bb13 Wasm backend: fix many tests 2018-05-12 23:43:53 +03:00
Alexey Andreev
5e3514e5dd Wasm backend: fix low-level memory copying function 2018-05-11 20:02:52 +03:00
Alexey Andreev
a81eeeee03 Wasm backend: fix hanging tests, make more tests pass, change name generation scheme 2018-05-10 17:41:28 +03:00
Alexey Andreev
b087610c2c Wasm backend: make JUnit tests work 2018-05-08 23:31:51 +03:00
Alexey Andreev
f532801f38 C backend: implement support for ResourceArray and ResourceMap 2018-05-07 19:30:00 +03:00
Alexey Andreev
401a9ed212 C backend: improve representation of string literals, fix them for various corner cases 2018-05-06 00:48:27 +03:00
Alexey Andreev
37efbd742b C backend: more bugfixes
* Fix cloning Object[] in 64-bit systems
* Fix generation of x instanceof Interface
* Fix a % b when a and b are float or double
* Fix generation of unreachable virtual calls
2018-05-05 23:35:17 +03:00
Michele Comignano
c11b868c0b Add IdentityHashMap, improve distribution of identityHashCode
Add IdentityHashMap, improve distribution of identityHashCode
2018-05-05 22:05:22 +03:00
Alexey Andreev
ff07b28bee C backend: fix bugs in exception handling transformer 2018-05-05 22:03:20 +03:00
Alexey Andreev
52ddd96c7d Fix duplicate <clinit> execution in some cases when accessing class through reflection 2018-05-05 18:38:18 +03:00
Alexey Andreev
d2aa37d6a4 C backend: fix more bugs, pass more tests 2018-05-05 15:17:35 +03:00
Alexey Andreev
899725b6bd C backend: fix bug in type inference, fix code generation for small int and long values 2018-05-04 19:05:11 +03:00
Alexey Andreev
4530167061 C backend: implement support for simple cases of resources 2018-05-01 00:54:11 +03:00
Alexey Andreev
ee2f389027 C backend: make more tests pass 2018-04-28 18:49:26 +03:00
Alexey Andreev
18eb3ee058 C backend: make more tests pass 2018-04-27 00:47:38 +03:00
Alexey Andreev
fa07100024 C backend: major improvements to interop
1. Function.get that allows to convert static Java method
   to a C function pointer
2. Address.ofData that gets address (void*) of Java array data
3. `@Include` annotation to add `#include` to generated C
   when using some method or class
2018-04-24 00:36:25 +03:00
Alexey Andreev
38267980fb Run C test compilation in multiple threads 2018-04-21 12:24:31 +03:00
Alexey Andreev
8f0320e217 Fix bugs in C backend to make more tests pass 2018-04-21 00:55:43 +03:00
Alexey Andreev
4990dbe8e4 Add support for C backend in TeaVMTestRunner 2018-04-20 22:58:09 +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
Guus C. Bloemsma
744eb39e6d JIRA #334 - check for null classreader 2018-04-09 20:56:44 +03:00
Alexey Andreev konsoletyper@gmail.com
d9c5b3fd04 C backend: compatibility with msvc 2018-03-29 00:44:31 +03:00
Alexey Andreev konsoletyper@gmail.com
fe47fe19ce Fix build under JDK9+ 2018-03-28 22:54:55 +03:00
Alexey Andreev
0d1cb85067 C backend: generate code to buffer, simplify generator 2018-03-27 23:16:38 +03:00
Alexey Andreev
dc227e1e42 C backend: add support for Array.get 2018-03-21 22:44:22 +03:00
Alexey Andreev
f079b5fbcc Fix hppc version in Eclipse plugin 2018-03-20 23:19:31 +03:00
Alexey Andreev
05d0220dcd C backend: initial commit 2018-03-20 23:18:52 +03:00
Alexey Andreev
540ad7f694 Uprage HPPC to 0.7.3 2018-03-20 19:10:36 +03:00
Alexey Andreev
de88541b64 Another fix for evaluation order in AST optimizer
See #330
2018-02-17 10:29:33 +03:00
Alexey Andreev
788e506175 Fix evaluation order when eliminating redundant variables from AST
See #330
2018-02-17 01:29:26 +03:00
Alexey Andreev
52a23fcadd Support '.<digits>' floating literals in Double.parseDouble
See #327
2018-02-16 23:17:17 +03:00
Alexey Andreev
0485930c1f Add AtomicInteger 2018-02-16 23:08:29 +03:00
Alexey Andreev
51d87091cc Fix TimeUnit.convert implementation
See #329
2018-02-16 22:40:56 +03:00
Mauro de Wit
2055df55b3 Minor fix for TeaVMRunner 'generate source maps' option (#325)
Use character 'G' in the parseDebugOptions for sourcemaps
2018-02-16 22:27:04 +03:00