Alexey Andreev
|
4d6c91aff8
|
Emit binary WASM compatible with SpiderMonkey
|
2016-09-17 09:19:33 +03:00 |
|
Alexey Andreev
|
40af27811f
|
Allow to run WASM generator via maven.
|
2016-09-17 09:19:32 +03:00 |
|
Alexey Andreev
|
8b3e160d8c
|
Fix bug in JavaScript backend
|
2016-09-17 09:19:32 +03:00 |
|
Alexey Andreev
|
9143714168
|
Refactor target API. Add ability to generate wast and C from wasm target
|
2016-09-17 09:19:32 +03:00 |
|
Alexey Andreev
|
de4128b377
|
Use little-endian data section, remove metainformation section
|
2016-09-17 09:19:32 +03:00 |
|
Alexey Andreev
|
09d8b581c0
|
Fix generation of WASM binary format
|
2016-09-17 09:19:32 +03:00 |
|
Alexey Andreev
|
d0def96dba
|
Further work on WASM binary format generator
|
2016-09-17 09:19:32 +03:00 |
|
Alexey Andreev
|
c70ba8f16d
|
Fix bug in function signatures
|
2016-09-17 09:19:32 +03:00 |
|
Alexey Andreev
|
9fd5a87a00
|
Fix copying memory blocks
|
2016-09-17 09:19:31 +03:00 |
|
Alexey Andreev
|
26749150f6
|
Add support for Class.isAssignableFrom
|
2016-09-17 09:19:31 +03:00 |
|
Alexey Andreev
|
bb4040af23
|
Fix bugs
|
2016-09-17 09:19:31 +03:00 |
|
Alexey Andreev
|
1ae683ead3
|
System.arrayCopy works
|
2016-09-17 09:19:31 +03:00 |
|
Alexey Andreev
|
ca3258417b
|
Implementing System.arraycopy
|
2016-09-17 09:19:31 +03:00 |
|
Alexey Andreev
|
cc9af93021
|
Keep variable names in generated sources
|
2016-09-17 09:19:31 +03:00 |
|
Alexey Andreev
|
ef5145d6fd
|
Trying to preserve variable names after GVN
|
2016-09-17 09:19:29 +03:00 |
|
Alexey Andreev
|
1c1b0c69fa
|
Propagating variable name via compiler's pipeline
|
2016-09-17 09:11:59 +03:00 |
|
Alexey Andreev
|
c5c453d95b
|
Fix bug in fillZero function
|
2016-09-17 09:11:10 +03:00 |
|
Alexey Andreev
|
375506e875
|
Fix bugs in C emitter. Improve generation of temporary variables in WASM generation. Improve test class
|
2016-09-17 09:11:10 +03:00 |
|
Alexey Andreev
|
0ac61919d5
|
Creating Wasm -> C translator
|
2016-09-17 09:11:10 +03:00 |
|
Alexey Andreev
|
199d91d28c
|
Further work on WASM tree -> C renderer
|
2016-09-17 09:11:10 +03:00 |
|
Alexey Andreev
|
1fb929e9ae
|
Creating C renderer for WASM tree, in order to enable debugging until WASM gets its own debugging support
|
2016-09-17 09:11:10 +03:00 |
|
Alexey Andreev
|
4fd20794c1
|
Refactoring. Fix checkstyle errors
|
2016-09-17 09:11:07 +03:00 |
|
Alexey Andreev
|
6483f518cf
|
Remove unused classes
|
2016-09-17 09:00:48 +03:00 |
|
Alexey Andreev
|
9fb97fd53f
|
Refactoring
|
2016-09-17 09:00:40 +03:00 |
|
Alexey Andreev
|
7679d12888
|
Replace NodeModifier by ElementModifier
|
2016-09-17 08:59:03 +03:00 |
|
Alexey Andreev
|
1be9ffb19e
|
Rename InstructionLocation to TextLocation. Replace NodeLocation by TextLocation
|
2016-09-17 08:59:03 +03:00 |
|
Alexey Andreev
|
3dd76c9355
|
Fix bugs in WASM target
|
2016-09-17 08:59:03 +03:00 |
|
Alexey Andreev
|
06a96911a1
|
Further improvements in WASM target
|
2016-09-17 08:59:03 +03:00 |
|
Alexey Andreev
|
5479d24a21
|
Implementing reflection in WASM
|
2016-09-17 08:59:02 +03:00 |
|
Alexey Andreev
|
3f02cad9e7
|
Further development of WASM backend
|
2016-09-17 08:59:02 +03:00 |
|
Alexey Andreev
|
35b59ed916
|
Add support of Object.hashCode
|
2016-09-17 08:59:02 +03:00 |
|
Alexey Andreev
|
8c6cf1840b
|
Add support of clinit
|
2016-09-17 08:59:02 +03:00 |
|
Alexey Andreev
|
d2cdd5e1e9
|
Zero memory after allocation
|
2016-09-17 08:59:02 +03:00 |
|
Alexey Andreev
|
ca874d178d
|
Add variables and variable types to AST. Use types to properly render variables in WASM
|
2016-09-17 08:59:02 +03:00 |
|
Alexey Andreev
|
fc2c6b9e07
|
Add support of strings (breaks compilation for some reason)
|
2016-09-17 08:59:02 +03:00 |
|
Alexey Andreev
|
278b926c04
|
Fix support of primitive arrays
|
2016-09-17 08:59:02 +03:00 |
|
Alexey Andreev
|
164ebeb629
|
Refactoring RTTI, add type annotation to array subscription instructions
|
2016-09-17 08:59:02 +03:00 |
|
Alexey Andreev
|
73d4a389b7
|
Fix static fields
|
2016-09-17 08:59:02 +03:00 |
|
Alexey Andreev
|
38638bc560
|
Add compressed binary data to store RTTI
|
2016-09-17 08:59:01 +03:00 |
|
Alexey Andreev
|
421eca8a49
|
Add support for array of objects
|
2016-09-17 08:59:01 +03:00 |
|
Alexey Andreev
|
38aca08993
|
Add support for instanceof expressions
|
2016-09-17 08:59:01 +03:00 |
|
Alexey Andreev
|
1aacbea4d0
|
Fix switch generation for general case
|
2016-09-17 08:59:01 +03:00 |
|
Alexey Andreev
|
850609bb72
|
Provide more information in class header
|
2016-09-17 08:59:01 +03:00 |
|
Alexey Andreev
|
fe5aca5139
|
Add support of virtual method invocation
|
2016-09-17 08:59:01 +03:00 |
|
Alexey Andreev
|
45993091e4
|
Fix minor bugs in WASM backend
|
2016-09-17 08:59:01 +03:00 |
|
Alexey Andreev
|
a1fe87ff70
|
Move several annotations
|
2016-09-17 08:59:01 +03:00 |
|
Alexey Andreev
|
d5e9168323
|
Fix bug with JS long emulator
|
2016-09-17 08:59:01 +03:00 |
|
Alexey Andreev
|
861742a2fb
|
Fix bug with JS operator precedence
|
2016-09-17 08:59:01 +03:00 |
|
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
|
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
|
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 |
|
Alexey Andreev
|
6e2eb8386b
|
Repair information about variable names in debug tables
|
2016-06-25 18:58:45 +03:00 |
|
Alexey Andreev
|
18c0ebcd04
|
Fix code to pass checkstyle. Trying to fix travis configuration
|
2016-06-24 05:23:41 +03:00 |
|
Alexey Andreev
|
9fc6f02875
|
Further work on incremental phi updater
|
2016-06-05 23:06:09 +03:00 |
|
Alexey Andreev
|
d196eb9864
|
Further work on incremental phi updater
|
2016-06-05 20:58:23 +03:00 |
|
Alexey Andreev
|
66931401a8
|
Further work on incremental phi updater
|
2016-06-05 17:36:43 +03:00 |
|
Alexey Andreev
|
859f428036
|
Further work on incremental phi updater
|
2016-06-03 23:57:08 +03:00 |
|
Alexey Andreev
|
ca521f74f0
|
Further work on incremental phi updater
|
2016-05-23 22:35:55 +03:00 |
|
Alexey Andreev
|
5ac195df5a
|
Refactor phi placement
|
2016-05-14 23:58:48 +03:00 |
|
Alexey Andreev
|
3d69167280
|
Refactor block mappers. Remove phi placement from loop inversion, since it's easier to make SSATransformer incremental and call it after each application of loop inversion
|
2016-05-14 23:36:19 +03:00 |
|
Alexey Andreev
|
8abf4797af
|
Merge remote-tracking branch 'origin/master' into optimizations
|
2016-05-13 20:47:38 +03:00 |
|
Alexey Andreev
|
02f414b61a
|
Speed up allocation of objects and arrays
|
2016-05-12 22:25:31 +03:00 |
|
Alexey Andreev
|
062f30634c
|
Fix support of SWAP instruction
|
2016-05-11 22:05:50 +03:00 |
|
Alexey Andreev
|
3f58e3b24f
|
When name of method parameter is not an identifier, mangle it to contain only Java identifier character
|
2016-05-11 21:15:36 +03:00 |
|
Alexey Andreev
|
81b2f69225
|
Fix bugs in loop inversion
|
2016-05-10 22:51:34 +03:00 |
|
Alexey Andreev
|
3c93b78902
|
Implementing loop inversion
|
2016-05-09 18:13:00 +03:00 |
|
Alexey Andreev
|
a57be365b4
|
Implementing loop inversion
|
2016-05-07 17:36:38 +03:00 |
|
Alexey Andreev
|
894e39c59f
|
Move static fields from class scope to global scope
|
2016-04-17 13:26:29 +03:00 |
|