Alexey Andreev
|
f6103ec00b
|
Copy exception variables when splitting async programs. Fix https://github.com/konsoletyper/teavm/issues/230
|
2017-01-28 22:39:44 +03:00 |
|
Alexey Andreev
|
58563a3e2d
|
Fix liveness analysis in split AST optimizer
|
2017-01-25 22:46:15 +03:00 |
|
Alexey Andreev
|
02d8439920
|
When copying basic blocks in async splitter, copy exception variable as well. Fix https://github.com/konsoletyper/teavm/issues/230
|
2017-01-24 23:59:54 +03:00 |
|
Alexey Andreev
|
55836d6ed7
|
Fix async splitting of blocks with exception handlers in some cases. Fix https://github.com/konsoletyper/teavm/issues/234
|
2017-01-24 23:36:15 +03:00 |
|
Alexey Andreev
|
8967f423eb
|
Increase inlining threshold. Add property to build TeaVM without additional artifacts (like samples)
|
2017-01-21 23:34:33 +03:00 |
|
Alexey Andreev
|
d3bed47b1d
|
Add tests for escape analysis/scalar replacement. Fix found bugs
|
2017-01-21 23:34:33 +03:00 |
|
Alexey Andreev
|
e4fab2be41
|
Add escape analysis
|
2017-01-21 23:34:33 +03:00 |
|
Alexey Andreev
|
6781dd0abb
|
Fix bug in nullness analysis
|
2017-01-18 21:30:04 +03:00 |
|
Alexey Andreev
|
149970f162
|
Fix infinite loop in inlining
|
2017-01-14 02:00:19 +03:00 |
|
Alexey Andreev
|
98b6fff2f0
|
Use local type inference to devirtualize calls after inlining
|
2017-01-14 00:50:22 +03:00 |
|
Alexey Andreev
|
645b2b7cd5
|
Add local type inference to use in optimizations
|
2017-01-09 19:16:51 +03:00 |
|
Alexey Andreev
|
5d1e558401
|
Disable loop inversion, since it contains errors
|
2017-01-08 23:43:12 +03:00 |
|
Alexey Andreev
|
ff059919a7
|
Eliminate exception joint in favour of phi functions with multiple inputs per source basic block
|
2017-01-08 23:43:12 +03:00 |
|
Alexey Andreev
|
9532f9a32b
|
Refactor phi updater
|
2017-01-06 21:13:12 +03:00 |
|
Alexey Andreev
|
a5eb9ac800
|
Add tests for phi updater
|
2017-01-04 22:09:56 +03:00 |
|
Alexey Andreev
|
727c831467
|
Use new null checker in optimizer. Fix multiple bugs in optimizer and IR
|
2017-01-03 23:39:43 +03:00 |
|
Alexey Andreev
|
aef1e2e206
|
Fixing bugs in nullness analyzer
|
2017-01-02 16:55:17 +03:00 |
|
Alexey Andreev
|
5fd95f21cb
|
Refactor nullness tests
|
2017-01-02 13:28:35 +03:00 |
|
Alexey Andreev
|
9dc4b47253
|
Add nullness analysis
|
2016-12-27 00:28:37 +03:00 |
|
Alexey Andreev
|
ae5e1e4962
|
Store instructions as double-linked list instead of ArrayList
|
2016-12-20 00:03:14 +03:00 |
|
Alexey Andreev
|
231dcbaf36
|
Working on new nullness checker that uses augmented program representation
|
2016-12-04 22:30:35 +03:00 |
|
Alexey Andreev
|
730d3f3070
|
Use $$ prefix for exception handling variables, since $ used for local variables
|
2016-12-04 20:52:57 +03:00 |
|
Alexey Andreev
|
973231752f
|
Avoid creating of unnecessary phi functions
|
2016-12-04 20:51:00 +03:00 |
|
Alexey Andreev
|
7ca6a4d64e
|
Add IR parser of catch blocks
|
2016-12-04 19:47:10 +03:00 |
|
Alexey Andreev
|
6883b59fc3
|
Add IR parser of field get/set and switch instructions
|
2016-12-04 19:47:10 +03:00 |
|
Alexey Andreev
|
fb53667e77
|
Refactor textual IR parser
|
2016-12-04 19:47:10 +03:00 |
|
Alexey Andreev
|
6084491119
|
Add IR parser of different simple instructions
|
2016-12-04 19:47:10 +03:00 |
|
Alexey Andreev
|
2b94a8b05c
|
Add IR parser of cast instructions
|
2016-12-04 19:47:09 +03:00 |
|
Alexey Andreev
|
825acfc85a
|
Add IR parser of invoke instructions
|
2016-12-04 19:47:09 +03:00 |
|
Alexey Andreev
|
c16de76b23
|
Add IR parser of constant instructions
|
2016-12-04 19:47:09 +03:00 |
|
Alexey Andreev
|
f6308c1782
|
Add IR parser of binary operations and phi functions
|
2016-12-04 19:47:09 +03:00 |
|
Alexey Andreev
|
6148d7a943
|
Add support of branching instructions to listing parser
|
2016-12-04 19:47:09 +03:00 |
|
Alexey Andreev
|
e5db8d4afc
|
Add support of goto and return instructions to textual IR parser
|
2016-12-04 19:47:09 +03:00 |
|
Alexey Andreev
|
93f8c2cf39
|
Creating textual IR parser
|
2016-12-04 19:47:09 +03:00 |
|
Alexey Andreev
|
55158c9e13
|
Move textual IR related things to a separate package
|
2016-12-04 19:47:09 +03:00 |
|
Alexey Andreev
|
e5fe82f0fe
|
Working on textual IR
|
2016-12-04 19:47:09 +03:00 |
|
Alexey Andreev
|
6f92dadad5
|
Fix bugs in nullness checker. Use it in LICM
|
2016-12-04 19:47:09 +03:00 |
|
Alexey Andreev
|
2894c541f7
|
Add nullness checker
|
2016-12-04 19:47:09 +03:00 |
|
Alexey Andreev
|
0b4629d959
|
Refactor optimization API
|
2016-12-04 19:47:07 +03:00 |
|
Alexey Andreev
|
b7d760188e
|
When native method returns undefined and Java expects string, produce null . Add $ prefix to local variables to avoid name clashing with global declarations
|
2016-12-03 14:30:43 +03:00 |
|
Alexey Andreev
|
ad39024795
|
Prevent PhiUpdater from placing e-phis with source variable equal to receiver
|
2016-12-03 13:46:02 +03:00 |
|
Alexey Andreev
|
86b78b8f5d
|
Avoid creating programs with number of variables less than number of parameters
|
2016-11-29 22:32:22 +03:00 |
|
Alexey Andreev
|
2e20287f80
|
JS: fix operator priority when rendering new expression
|
2016-11-22 22:10:18 +03:00 |
|
Alexey Andreev
|
9364ad943a
|
WASM: add support of 0x0D binary version
|
2016-11-20 22:22:33 +03:00 |
|
Alexey Andreev
|
24efd1f49c
|
Fix support of async <clinit> when called by getstatic/putstatic
|
2016-11-20 17:50:47 +03:00 |
|
Alexey Andreev
|
c023ac2053
|
Change translation of <clinit> invocations
|
2016-11-20 17:08:46 +03:00 |
|
Alexey Andreev
|
764c9bbb1e
|
Working on support of async <clinit> methods
|
2016-11-17 23:24:16 +03:00 |
|
Alexey Andreev
|
f61cfb23b5
|
After inlining remove unreachable basic blocks and unused variables. When removing unreachable basic blocks, remove corresponding phi inputs as well.
|
2016-11-06 21:12:59 +03:00 |
|
Alexey Andreev
|
aebfe7d165
|
During node splitting, create copies for previously copied nodes, if necessary. See #219
|
2016-11-04 16:55:56 +03:00 |
|
Alexey Andreev
|
4b766f7b73
|
Fix implementation of Tarjan SCC finding algorithm
|
2016-11-04 16:15:15 +03:00 |
|
Alexey Andreev
|
daf5ada5c6
|
Fix converting JS floating-point numbers to long (fix #228).
|
2016-11-04 14:12:51 +03:00 |
|
Alexey Andreev
|
2a3b0cd597
|
Fix generation of variable names in minified mode (fix #227). JUnit runner can be configured to run tests in minified and optimized modes. Apply these modes to travis config.
|
2016-11-04 13:21:01 +03:00 |
|
Alexey Andreev
|
1335476abe
|
WASM: Add option to trace all call_indirect opcodes
|
2016-10-27 19:12:37 +03:00 |
|
Alexey Andreev
|
af10879a81
|
Remove unnecessary IDEA project files
|
2016-10-27 12:55:28 +03:00 |
|
Alexey Andreev
|
b3b1b54582
|
Remove unnecessary dependencies
|
2016-10-26 15:02:41 +03:00 |
|
Alexey Andreev
|
9fd744f550
|
Report more details about calling async code from sync method
|
2016-10-22 17:40:32 +03:00 |
|
Alexey Andreev
|
37d4c3349e
|
Add AbstractInstructionReader, use it instead InstructionReader where possible
|
2016-10-22 16:25:38 +03:00 |
|
Alexey Andreev
|
3dbca7959b
|
When unexpected exception occurs during optimization, dump IR to stderr.
|
2016-10-22 15:57:17 +03:00 |
|
Alexey Andreev
|
9c33ef686b
|
WASM: fix support of 0xC binary version
|
2016-10-17 21:53:09 +03:00 |
|
Alexey Andreev
|
d6cc340676
|
WASM: fix remaining errors in WebAssembly 0xC
|
2016-10-14 22:32:12 +03:00 |
|
Alexey Andreev
|
56b1f54dda
|
WASM: implementing support of 0xC version
|
2016-10-12 23:45:13 +03:00 |
|
Alexey Andreev
|
b4916ee4e7
|
WASM: fix bugs in support of 0xC binary version
|
2016-10-09 12:57:11 +03:00 |
|
Alexey Andreev
|
386c703459
|
WASM: implementing support of 0xC binary version
|
2016-10-06 19:56:45 +03:00 |
|
Alexey Andreev
|
499ce8c029
|
WASM: add some GC interop methods
|
2016-10-06 16:21:09 +03:00 |
|
Alexey Andreev
|
0041130d00
|
WASM: support multianewarray, fix jbox2d benchmark for WebAssembly
|
2016-10-06 15:49:58 +03:00 |
|
Alexey Andreev
|
9643e12710
|
WASM: align heap location by 4 bytes
|
2016-10-01 00:19:13 +03:00 |
|
Alexey Andreev
|
ef9d8a30bc
|
WASM: fix translation of binary operations
|
2016-09-30 00:46:45 +03:00 |
|
Alexey Andreev
|
cc0c68e809
|
WASM: porting jbox2d benchmark to WebAssembly
|
2016-09-29 20:05:32 +03:00 |
|
Alexey Andreev
|
f890680e90
|
WASM: fix bugs in exception handling
|
2016-09-29 16:31:27 +03:00 |
|
Alexey Andreev
|
cbd74d41f4
|
WASM: fix exception handling. Use if instead of switch after call site when possible
|
2016-09-29 16:31:27 +03:00 |
|
Alexey Andreev
|
8a012178ed
|
WASM: add support of offset field in memory operations
|
2016-09-29 16:31:27 +03:00 |
|
Alexey Andreev
|
25c9b03dff
|
WASM: implement throwing exceptions
|
2016-09-29 16:31:27 +03:00 |
|
Alexey Andreev
|
4e431e2f77
|
WASM: refactoring shadow stack
|
2016-09-29 16:31:27 +03:00 |
|
Alexey Andreev
|
b67d243ad4
|
WASM: add transformation that converts exception handling to explicit guard checks
|
2016-09-22 16:27:28 +03:00 |
|
Alexey Andreev
|
8af1e3e66d
|
Merge remote-tracking branch 'origin/shadow-stack-minimization'
|
2016-09-22 11:30:14 +03:00 |
|
Alexey Andreev
|
4f218b17f8
|
WASM: creating memory access trace transformation
|
2016-09-22 11:09:16 +03:00 |
|
Alexey Andreev
|
ff6a917bc3
|
WASM: don't write Address objects to GC roots
|
2016-09-22 00:10:37 +03:00 |
|
Alexey Andreev
|
fc3d36ec4c
|
WASM: improving algorithm that generates instructions to store variables in shadow stack
|
2016-09-22 00:08:58 +03:00 |
|
Alexey Andreev
|
fcf0394214
|
WASM: add flag that allows to insert assertions before each memory access in C code
|
2016-09-19 22:34:16 +03:00 |
|
Alexey Andreev
|
033e57e7e7
|
WASM: fix bug in generating virtual table in some cases
|
2016-09-17 20:18:59 +03:00 |
|
Alexey Andreev
|
0a00551af1
|
WASM: add support of Character.toLowerCase/toUpperCase. Add _ prefix to names in c output
|
2016-09-17 12:37:49 +03:00 |
|
Alexey Andreev
|
6c5a691fc9
|
Fixing minor bugs
|
2016-09-17 10:42:46 +03:00 |
|
Alexey Andreev
|
1b78de9b40
|
Minor fixes after rebase
|
2016-09-17 09:59:13 +03:00 |
|
Alexey Andreev
|
7aaf67d16f
|
Fix minor bugs
|
2016-09-17 09:33:53 +03:00 |
|
Alexey Andreev
|
8bfcb5f086
|
frontend: fix support of Integer.TYPE, Long.TYPE, etc.
|
2016-09-17 09:33:50 +03:00 |
|
Alexey Andreev
|
ed7e8ff7f4
|
javascript: refactor renderer
|
2016-09-17 09:21:26 +03:00 |
|
Alexey Andreev
|
7cd72f0e96
|
wasm: add optimization that removes unused functions from wasm module
|
2016-09-17 09:19:34 +03:00 |
|
Alexey Andreev
|
bb2f23b19b
|
Fix bugs in runtime. Add support for System.out
|
2016-09-17 09:19:34 +03:00 |
|
Alexey Andreev
|
67098a60ef
|
Fix bugs in GC and runtime
|
2016-09-17 09:19:34 +03:00 |
|
Alexey Andreev
|
de299dda48
|
Fix bugs in GC
|
2016-09-17 09:19:34 +03:00 |
|
Alexey Andreev
|
f2668b867d
|
wasm: fix bugs in GC and runtime
|
2016-09-17 09:19:34 +03:00 |
|
Alexey Andreev
|
582177654a
|
Fix liveness analysis used to put shadow stack values. Fix type inference of local variables. Don't put Object.monitor to class layout
|
2016-09-17 09:19:34 +03:00 |
|
Alexey Andreev
|
d28ff73c51
|
Fix bugs in GC
|
2016-09-17 09:19:34 +03:00 |
|
Alexey Andreev
|
e92ad161ef
|
Fix bugs in register allocator
|
2016-09-17 09:19:34 +03:00 |
|
Alexey Andreev
|
fae2963900
|
Fix bugs in GC and runtime
|
2016-09-17 09:19:34 +03:00 |
|
Alexey Andreev
|
43b0700c10
|
Fix bugs in propagating names via register allocator
|
2016-09-17 09:19:34 +03:00 |
|
Alexey Andreev
|
593dafdd73
|
Fixing bugs in GC
|
2016-09-17 09:19:33 +03:00 |
|
Alexey Andreev
|
d76598ab68
|
Don't write Structure, Function and Address to GC roots
|
2016-09-17 09:19:33 +03:00 |
|
Alexey Andreev
|
3370898a54
|
Implementing simple mark&sweep GC
|
2016-09-17 09:19:33 +03:00 |
|
Alexey Andreev
|
ae5d701aac
|
Implementing simple mark&sweep GC
|
2016-09-17 09:19:33 +03:00 |
|