Commit Graph

1450 Commits

Author SHA1 Message Date
Alexey Andreev
675abe8740 Start supporting classes in WASM 2016-09-17 08:59:01 +03:00
Alexey Andreev
081efd2d60 Fix bugs in JavaScript backend 2016-09-17 08:59:00 +03:00
Alexey Andreev
055312055b Minor optimization of expression negation 2016-09-17 08:59:00 +03:00
Alexey Andreev
964d2cdf5b Minimal WASM example works 2016-09-17 08:59:00 +03:00
Alexey Andreev
4fa0669e9a Move WasmTarget to another package visible to git 2016-09-17 08:59:00 +03:00
Alexey Andreev
47997cde87 Rename target package to backend to avoid gitignore 2016-09-17 08:59:00 +03:00
Alexey Andreev
89c16b9807 Fixing bugs in WASM emitter 2016-09-17 08:58:56 +03:00
Alexey Andreev
e5356fae27 Add WASM s-expr emitter 2016-09-17 08:55:59 +03:00
Alexey Andreev
1484e970dd Add WASM generator 2016-09-17 08:55:59 +03:00
Alexey Andreev
888710102f Refactoring 2016-09-17 08:55:59 +03:00
Alexey Andreev
4961e3d92d Refactor AST 2016-09-17 08:55:59 +03:00
Alexey Andreev
d672fe068a Continue developing decompiler 2016-09-17 08:55:59 +03:00
Alexey Andreev
96ba2bbf7d Continue developing decompiler 2016-09-17 08:55:59 +03:00
Alexey Andreev
5f2019a9b6 Start creating WASM expression generator 2016-09-17 08:55:59 +03:00
Alexey Andreev
8c08136c9a Start developing WebAssembly model. Implement mostly all expressions 2016-09-17 08:55:59 +03:00
Alexey Andreev
789119e6ea Move ast package off javascript 2016-09-17 08:55:58 +03:00
Alexey Andreev
52ace0c252 Refactor TeaVM to support pluggable targets like JavaScript, WebAssembly, LLVM, etc (with only JavaScript target for now) 2016-09-17 08:55:44 +03:00
Alexey Andreev
1f30e5fd88 Add test to prove that all modification to a local variable are visible in a corresponding catch block 2016-09-17 08:55:19 +03:00
Alexey Andreev
6196dc80ed Fix bug in phi updater. Fix tests 2016-09-17 08:43:56 +03:00
Alexey Andreev
e82518b88f Further refactoring of exception handling 2016-09-17 08:43:53 +03:00
Alexey Andreev
a26eed7c51 Change how exceptions handlers are represented 2016-09-17 08:42:55 +03:00
Alexey Andreev
4f8affcf6f Fix bug in metaprogramming proxies 2016-09-17 08:42:55 +03:00
Alexey Andreev
3ac7bd1c68 Fix bug in LoopInversion 2016-09-17 08:42:55 +03:00
Alexey Andreev
920a17ff63 Add redundant jump elimination 2016-09-17 08:42:55 +03:00
Alexey Andreev
0d6d4e7e41 Add constant condition elimination 2016-09-17 08:42:54 +03:00
Alexey Andreev
7b31def2b4 Improve GVN to evaluate constants 2016-09-17 08:42:54 +03:00
Alexey Andreev
ea9605e518 When removing empty if statements, extract expressions with side effects from its condition 2016-09-17 08:42:54 +03:00
Alexey Andreev
19625034c4 Implementing inlining 2016-09-17 08:42:54 +03:00
Alexey Andreev
b7072c1c10 Repeat optimizations until profitable. Add optimizations that removes unnecessary <clinit> invocations 2016-09-17 08:42:54 +03:00
Alexey Andreev
4bfc08e946 Fix bug in code that determines whether inversion of a loop is profitable 2016-09-17 08:42:54 +03:00
Alexey Andreev
ee1b1035d2 Fix strange bug 2016-09-17 08:42:54 +03:00
Alexey Andreev
d912ba4af3 Invert loops only when it's profitable (causes invariants to dominate exits). Improve LICM to move invariants with side effects 2016-09-17 08:42:54 +03:00
Alexey Andreev
7668ef66fb Fix phi updater 2016-09-17 08:42:54 +03:00
Alexey Andreev
85cbb4a75c Further work on incremental phi updater 2016-09-17 08:42:51 +03:00
Alexey Andreev
fd7ff3d538 Add artifacts to the resolution process of debug sources 2016-09-12 16:37:31 +03:00
Alexey Andreev
c5548dfa59 Merge pull request #218 from skapral/missing-runtime
Added missing classes/methods from Java SE Runtime
2016-08-27 10:22:16 +03:00
Alexey Andreev
ab3d8607d9 Merge pull request #217 from sba1/nano-time-fix
Fix ms to ns conversion.
2016-08-27 10:20:21 +03:00
Sergey Kapralov
d1ade89ed4 TMap new methods are covered with tests 2016-08-25 17:12:03 +03:00
Sergey Kapralov
6b950e618e Applied minor remarks. 2016-08-25 11:30:53 +03:00
Sergey Kapralov
ec2a52900e TMap.compute fixed and tested 2016-08-25 11:13:08 +03:00
Sergey Kapralov
dc4a937262 Added missing map methods 2016-08-23 10:41:25 +03:00
Sergey Kapralov
035c616b5e added TStaskOverflowError 2016-08-23 10:41:18 +03:00
Sebastian Bauer
9a1c6fe5b9 Fix ms to ns conversion. 2016-08-19 20:35:34 +02:00
Alexey Andreev
50ac08fce4 Merge branch 'master' of https://github.com/konsoletyper/teavm 2016-08-18 21:34:56 +03:00
Alexey Andreev
559f7f7e42 Fix ByteArrayInputStream.read. Fix https://github.com/konsoletyper/teavm/issues/213 2016-08-18 21:34:18 +03:00
Alexey Andreev
49fda4ec4e Merge pull request #215 from sba1/array-list-performance-fix
Use max() instead of min() when enlarging the array.
2016-08-18 21:12:38 +03:00
Sebastian Bauer
b03ba67a88 Use max() instead of min() when enlarging the array.
Adding n elements subsequently has now an O(n) running time while it was
O(n^2) before.
2016-08-18 20:09:48 +02:00
Alexey Andreev
9d2e9d7911 Fix Uint16Array constructors. Fix https://github.com/konsoletyper/teavm/issues/209 2016-08-18 12:09:18 +03:00
Alexey Andreev
6b6c968aea Make bytecode parser to cache method references to reduce memory consumption 2016-07-28 23:51:39 +03:00
Alexey Andreev
a3f60996e2 Fix https://github.com/konsoletyper/teavm/issues/196 2016-07-28 22:23:39 +03:00