Commit Graph

517 Commits

Author SHA1 Message Date
Alexey Andreev
0e3fb1f3d2 Modify LivenessAnaylizer to not rely on dominator tree. Fix possible
name clash between virtual methods and fields. Remove tests incompatible
between JDK7 and JDK8
2015-03-27 15:42:47 +04:00
konsoletyper
6964c7190d Fix non-async application detection. Fix javadoc comments. 2015-03-15 19:03:57 +03:00
konsoletyper
17ccec57e9 Add missing javadoc tags 2015-03-15 18:22:39 +03:00
konsoletyper
9ce9f970d7 Fix AST caching to support async methods 2015-03-15 17:46:01 +03:00
konsoletyper
6c57fb866f Attempting to increase performance of AST processing 2015-03-15 15:02:34 +03:00
konsoletyper
b6cf7c4cba Optimize some breaks (including breaks from switch clauses) in a
separate pass
2015-03-15 14:43:38 +03:00
konsoletyper
8be9e6c4ba First attempt to make AST optimizer faster 2015-03-14 23:45:01 +03:00
konsoletyper
f17433aeab Attempt to increase performance of JS by separating variables of
different types
2015-03-14 21:18:16 +03:00
konsoletyper
004cb79b17 Remove unnecessary debugging code 2015-03-14 15:34:13 +03:00
konsoletyper
3449257db7 Fix bugs in faster dependency algorithm 2015-03-13 22:48:24 +03:00
konsoletyper
2745f1c7f5 Initial optimization of dependency checker 2015-03-13 22:09:28 +03:00
Alexey Andreev
1380e7dbf4 Generate readable names for method parameters 2015-03-13 19:01:13 +04:00
Alexey Andreev
77863ad6fd Perform better preordering before decompilation 2015-03-13 15:55:02 +04:00
Alexey Andreev
793d1e19d2 Fix another bug in DFG simplifier 2015-03-13 14:57:59 +04:00
Alexey Andreev
31f6439652 Fix another bug in DFG simplifier. Fix long subtraction bug 2015-03-13 14:26:36 +04:00
Alexey Andreev
0572123c0e Faster long for small values 2015-03-13 12:52:57 +04:00
Alexey Andreev
cc009ff9bd Fix bug in DFG simplifier 2015-03-13 12:11:53 +04:00
konsoletyper
2971efb62b Adapt minificator for new async approach 2015-03-12 21:49:59 +03:00
konsoletyper
79b805ba6c Better fix for https://github.com/konsoletyper/teavm/issues/85 2015-03-12 21:20:36 +03:00
konsoletyper
14dd352cb6 Fix exception thrown with incomplete classpath 2015-03-12 20:24:33 +03:00
Alexey Andreev
3a29e869ef Aviod creation of closures in async methods 2015-03-12 18:11:04 +04:00
Alexey Andreev
4ab4035522 Merge branch 'master' into better-async
Conflicts:
	teavm-core/src/main/java/org/teavm/javascript/Decompiler.java
	teavm-core/src/main/java/org/teavm/javascript/Optimizer.java
2015-03-12 13:54:19 +04:00
Alexey Andreev
aad95014fe Fix error in Object.wait. Make junit working with new async approach 2015-03-12 11:44:17 +04:00
konsoletyper
ab52f220c2 Prevent async assigment from optimization 2015-03-11 20:33:13 +03:00
Alexey Andreev
b19c545318 Fix issue 2015-03-11 19:49:31 +04:00
Alexey Andreev
7e23498c5b Fix bugs 2015-03-11 19:02:32 +04:00
Alexey Andreev
7a109a6f48 See https://github.com/konsoletyper/teavm/issues/85 2015-03-11 11:32:49 +04:00
Alexey Andreev
04342d15e7 Fix minor issue 2015-03-11 11:09:57 +04:00
konsoletyper
8fe3876641 First working prototype of new async 2015-03-10 22:09:43 +03:00
Alexey Andreev
56c5fefae4 Further development 2015-03-10 19:33:34 +04:00
Alexey Andreev
32deaf2716 Further work on a new thread emulator 2015-03-10 15:19:54 +04:00
Alexey Andreev
93e43456d1 Outline of upcoming improvements of continuations 2015-03-10 12:49:00 +04:00
konsoletyper
7f33f64d25 Store postponed actions in a queue 2015-03-09 22:20:59 +03:00
konsoletyper
80814ef167 Bugfixes 2015-03-09 22:10:26 +03:00
konsoletyper
824cc79901 Speed up TeaVM compiler 2015-03-09 18:37:04 +03:00
konsoletyper
fe2adc4675 Speed-up TeaVM compiler on large applications 2015-03-09 16:22:19 +03:00
konsoletyper
93c7fb52b4 Fix error. Apply frequency-based alias generation for some $rt functions 2015-03-09 15:14:28 +03:00
konsoletyper
62118e2cfe Add frequency-based naming in minified mode 2015-03-09 13:28:37 +03:00
konsoletyper
97889bc217 Improve minification of async code 2015-03-09 11:29:49 +03:00
konsoletyper
3a78db74c1 Fix bugs 2015-03-08 13:09:17 +03:00
konsoletyper
7869173ac2 Remove build errors on JDK8 2015-03-08 12:18:57 +03:00
konsoletyper
e951b681ca Fix ordering of basic blocks before decompilation 2015-03-08 11:57:03 +03:00
konsoletyper
77738b001f Speed-up context switching 2015-03-06 23:11:55 +03:00
konsoletyper
84aeb20321 Handle irreducible loops after async program splitting 2015-03-06 22:56:01 +03:00
konsoletyper
bc43923695 Merge branch 'master' into async-irreducible 2015-03-06 19:18:07 +03:00
Alexey Andreev
d2e20d7c9f Add OutOfMemoryError. When catching exceptions that are not defined,
report errors at compile time.
2015-03-06 14:01:02 +04:00
Alexey Andreev
8d2e012f79 Speed-up generation of debug information 2015-03-06 13:07:37 +04:00
konsoletyper
0fe826ade8 Add more complicated irreducible graph test 2015-03-05 23:35:12 +03:00
konsoletyper
33b319ce16 Add some tests for SCC 2015-03-05 20:55:21 +03:00
Alexey Andreev
e2aababde8 Add unit tests for irreducible graph splitter 2015-03-05 18:32:36 +04:00
Alexey Andreev
04677d0103 Minor fix 2015-03-04 22:57:26 +03:00
Alexey Andreev
d4824ff9d2 Improve node splitting 2015-03-04 18:28:26 +04:00
Alexey Andreev
5ea55675f1 Fix node splitting algorithm 2015-03-04 16:43:06 +04:00
Alexey Andreev
043d6f587f Further attempts to get node splitting work 2015-03-03 12:55:54 +04:00
Alexey Andreev
b6df37115f Fix bugs in irreducible flowgraph node splitting 2015-03-02 19:10:26 +04:00
Alexey Andreev
f106afb034 Complete node splitting algorithm. Add test case for SCC finder. 2015-03-01 23:19:46 +03:00
Alexey Andreev
77b42e677a Complete algorithm that creates subgraph to apply node splitting
recursively
2015-03-01 22:25:07 +03:00
Alexey Andreev
7388a9af39 Merge branch 'master' into async-irreducible 2015-03-01 21:33:49 +03:00
Alexey Andreev
852589a4dd Fix https://github.com/konsoletyper/teavm/issues/74 2015-03-01 12:55:28 +03:00
Alexey Andreev
18ac2b2b25 Fix some tests of html4j TCK 2015-03-01 11:10:59 +03:00
Alexey Andreev
140c5298db Fix https://github.com/konsoletyper/teavm/issues/80 2015-03-01 10:17:10 +03:00
Alexey Andreev
8ad58ce2d2 Further implementation of node splitting 2015-02-27 23:26:28 +03:00
Alexey Andreev
9adbb1ae93 Revert some code 2015-02-27 21:33:57 +03:00
Alexey Andreev
59408e40e5 Merge branch 'master' into async-irreducible 2015-02-27 21:29:22 +03:00
konsoletyper
302c1c2237 Minor fixes 2015-02-26 23:47:57 +03:00
konsoletyper
a9ff14b599 Repair Class.getEnumConstants() 2015-02-26 23:28:01 +03:00
konsoletyper
eba560d373 Don't generate monitorenter/monitorexit where unnecessary 2015-02-26 21:30:04 +03:00
Alexey Andreev
a47cf14352 Replace OutputStreamWriter and DataOutputStream 2015-02-26 19:12:53 +04:00
Alexey Andreev
0b7db410d3 Fix error in converting doubles to floats 2015-02-26 12:16:31 +04:00
konsoletyper
bab69bac3d Fix multiple bugs 2015-02-24 23:07:59 +03:00
konsoletyper
7d62c16c8d Bugfixes in sync primitives 2015-02-24 21:08:56 +03:00
Alexey Andreev
4908293e50 Fix NPE in Renderer: https://github.com/konsoletyper/teavm/issues/76
Add async support in Class.newInstance()
2015-02-24 15:51:27 +04:00
konsoletyper
5d1fb3f67f Developing algorithm for node splitting that would maintain DJ-graph
incrementally
2015-02-23 22:39:13 +03:00
konsoletyper
7a573efde1 Fix little bug 2015-02-22 22:39:07 +03:00
konsoletyper
14ce9e23a4 Improve DJ-graph implementation. Add Tarjan's SCC finding algorithm. Add
HPCC dependency.
2015-02-22 22:19:35 +04:00
konsoletyper
11437af5ae Fix https://github.com/konsoletyper/teavm/issues/73 2015-02-21 23:01:12 +04:00
konsoletyper
a882a4c956 Begin implementing irreducible cfg node splitting. Implement DJ graph. 2015-02-21 21:51:04 +04:00
konsoletyper
34aeb6e3c9 Fix https://github.com/konsoletyper/teavm/issues/70 2015-02-21 13:04:09 +04:00
Alexey Andreev
cd2602a5c2 Add better exception handling in async methods:
https://github.com/konsoletyper/teavm/issues/67
2015-02-20 17:51:32 +04:00
Steve Hannah
8779c49c3e Fixed issue with null strings in (). 2015-02-19 08:45:56 -08:00
Alexey Andreev
9300c07daf Fix dependency bug with monitorenter/monitorexit 2015-02-16 17:54:47 +04:00
konsoletyper
b4c3bc47f0 Fix tests 2015-02-15 19:40:49 +04:00
konsoletyper
bc0fc8e406 Remove diagnostic messages 2015-02-15 18:29:39 +04:00
konsoletyper
b6cb9bfd4a Fix monitor methods. Improve JSO to handle abstract classes 2015-02-15 18:11:23 +04:00
konsoletyper
9d112817b8 Minor improvements 2015-02-14 23:52:28 +04:00
konsoletyper
f69e3310a3 When finding overriden methods, exclude constructors, final and static
methods
2015-02-14 15:50:22 +04:00
konsoletyper
5221815904 Remove unused field 2015-02-14 01:20:34 +04:00
konsoletyper
4ce1031c0c Trying to fix https://github.com/konsoletyper/teavm/issues/58 2015-02-14 01:18:43 +04:00
konsoletyper
f93b35ce80 Fix monitorenter 2015-02-14 00:24:24 +04:00
konsoletyper
f35f06097c Further minification 2015-02-13 22:58:44 +04:00
konsoletyper
a4d948f26b Fix bugs 2015-02-13 22:30:41 +04:00
Alexey Andreev
54ecf6e00f One step toward further minification 2015-02-12 19:08:44 +04:00
konsoletyper
90f1f19f08 Avoid unnecessary parenthesis 2015-02-11 23:11:58 +04:00
konsoletyper
74a76804fb Merge remote-tracking branch 'origin/shannah_threads' into shannah_threads 2015-02-09 23:14:25 +04:00
konsoletyper
71195c04ce Fix some bugs 2015-02-09 23:04:02 +04:00
Steve Hannah
9465d24723 Partial merge with async. 2015-02-09 09:49:53 -08:00
konsoletyper
82b110ad4c Fix little bug in $rt_rootInvocationAdapter 2015-02-09 00:00:53 +04:00
konsoletyper
62431c493c Don't insert $rt_asyncAdapter for methods that don't override async
methods
2015-02-08 23:12:33 +04:00
konsoletyper
2ae7b587d1 Most of TClass now uses Platform instead of code generation 2015-02-08 22:35:51 +04:00
Steve Hannah
21468ef419 Fixed issue with the instruction copier. Now it builds ok with synchronized instruction. Getting an error at runtime... 2015-02-07 10:00:48 -08:00