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 |
|
Alexey Andreev
|
f7296e0389
|
Add static GC roots
|
2016-09-17 09:19:33 +03:00 |
|
Alexey Andreev
|
f79716d53d
|
Add class field layout for GC
|
2016-09-17 09:19:33 +03:00 |
|
Alexey Andreev
|
476086af47
|
Add transformation passes that maintain GC roots on shadow stack. Add support of shadow stack intrinsics
|
2016-09-17 09:19:33 +03:00 |
|
Alexey Andreev
|
bfc37b10b5
|
Don't generate redundant clinit instructions
|
2016-09-17 09:19:33 +03:00 |
|
Alexey Andreev
|
74db07537d
|
Fix bugs with memory operations
|
2016-09-17 09:19:33 +03:00 |
|
Alexey Andreev
|
f7e39e6a4d
|
Remove call to initializer from wasm generator, put it into IR transformer. Add intrinsic to check whether class has been initializer. Add IR transformer that guards call to initializer with this intrinsic
|
2016-09-17 09:19:33 +03:00 |
|
Alexey Andreev
|
eaf31c1309
|
Minor fixes
|
2016-09-17 09:19:33 +03:00 |
|
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 |
|
Alexey Andreev
|
2d79da7b1b
|
Fix compilation of pop2 instruction when top two entries are values of type 1
|
2016-04-15 23:07:30 +03:00 |
|
Alexey Andreev
|
f63ec25ed3
|
Move metaprogramming API implementation into separate module
|
2016-04-12 22:54:32 +03:00 |
|
Alexey Andreev
|
74a0278881
|
Merge branch 'metaprogramming' of https://github.com/konsoletyper/teavm into metaprogramming
|
2016-04-12 22:18:47 +03:00 |
|
Alexey Andreev
|
da42e5e3eb
|
Add optimizations to metaprogramming implementation
|
2016-04-12 22:14:15 +03:00 |
|
Alexey Andreev
|
84d9899b3e
|
Implement metaprogramming proxies
|
2016-04-06 23:02:15 +03:00 |
|
Alexey Andreev
|
8df8191dae
|
Fix bug with capturing phi inputs
|
2016-03-02 23:14:23 +03:00 |
|
Alexey Andreev
|
518e13cf07
|
Add several tests for metaprogramming
|
2016-02-29 23:07:20 +03:00 |
|
Alexey Andreev
|
3e562aa08a
|
Simple metaprogramming test passes
|
2016-02-27 18:46:27 +03:00 |
|
Alexey Andreev
|
2b3cba69bc
|
Run JUnit tests via JUnit runner instead of Maven plugin
|
2016-02-23 18:46:32 +03:00 |
|
Alexey Andreev
|
5e7311d8cc
|
Start porting metaprogramming API implementation
|
2016-02-23 13:44:39 +03:00 |
|
Alexey Andreev
|
92dbed2593
|
Start porting metaprogramming API implementation
|
2016-02-22 23:59:54 +03:00 |
|