Alexey Andreev
e77997c93f
Implement null check in C backend
...
Although initial purpose of this comment was null check,
it took much time to complete it and it caused many unrelated changes.
Besides just implementing null check in quite naive fashion
(I could not use the trick with memory protection, since I have to
maintain shadow stack, and support WebAssembly), I had to optimize
things. I relied on my existing nullness analysis to eliminate
as much null checks as possible. However, the whole nullness analysis
was wrong. After some thoughts I came up with solution very
close to range analysis, which required me to introduce extension
to IR sometimes called e-SSA form with so called sigma nodes.
Also, I found some bugs in few different places (by the time write this
message I could only remember escape analysis/scalar replacement and
after-inlining devirtualization) and fixed them.
2018-04-17 00:05:46 +03:00
Guus C. Bloemsma
744eb39e6d
JIRA #334 - check for null classreader
2018-04-09 20:56:44 +03:00
Alexey Andreev konsoletyper@gmail.com
fe47fe19ce
Fix build under JDK9+
2018-03-28 22:54:55 +03:00
Alexey Andreev
ff19dc15c9
Further bootstrapping
2017-11-26 13:14:02 +03:00
Alexey Andreev
59e5c16b31
Update version to 0.6.0-SNAPSHOT
2017-06-19 20:50:19 +03:00
Alexey Andreev
2e8e3a65bd
Add IO bufferization
2017-06-01 16:14:24 +03:00
Alexey Andreev
9e4e26ae18
Fix bug in metaprogramming API
2017-03-30 17:20:19 +03:00
Alexey Andreev
d654896833
Remove unnecessary arrays if possible after generating methods via metaprogramming API. Arrays are unnecessary if they are only indexed by constants and never escape method.
2017-02-26 20:04:00 +03:00
Alexey Andreev
af9a01628f
Add support of Metaprogramming.getLocation to metaprogramming API
2017-02-26 00:07:40 +03:00
Alexey Andreev
55453c9311
Set version to 0.5.0-SNAPSHOT. Add configuration to deploy to bintray. Update version number during Travis build.
2017-02-16 21:48:13 +03:00
Alexey Andreev
ccb4dff836
Fix bugs in metaprogramming. In JUnit runner reload about:blank page before every test
2017-02-13 23:43:49 +03:00
Alexey Andreev
edb3d2ff48
Fix generation of meta method when its discriminator class denotes array type
2017-02-12 00:23:53 +03:00
Alexey Andreev
816a17dfc0
When Value.get() called in metaprogramming lambda and not assigned anywhere, capture instance anyway so that if it's a lazy value, it will be computed
2017-02-10 23:49:03 +03:00
Alexey Andreev
9271d71906
Fix compile-time error in metaprogramming API when body of emit
or lazy
throws exception instead of returning value
2017-02-05 17:28:40 +03:00
Alexey Andreev
5e44c13caf
Fix bugs in metaprogramming. Add run configuration that rebuilds TeaVM
2017-02-04 18:24:23 +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
ae5e1e4962
Store instructions as double-linked list instead of ArrayList
2016-12-20 00:03:14 +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
37d4c3349e
Add AbstractInstructionReader, use it instead InstructionReader where possible
2016-10-22 16:25:38 +03:00
Alexey Andreev
6c5a691fc9
Fixing minor bugs
2016-09-17 10:42:46 +03:00
Alexey Andreev
4fd20794c1
Refactoring. Fix checkstyle errors
2016-09-17 09:11:07 +03:00
Alexey Andreev
1be9ffb19e
Rename InstructionLocation to TextLocation. Replace NodeLocation by TextLocation
2016-09-17 08:59:03 +03:00
Alexey Andreev
164ebeb629
Refactoring RTTI, add type annotation to array subscription instructions
2016-09-17 08:59:02 +03:00
Alexey Andreev
89c16b9807
Fixing bugs in WASM emitter
2016-09-17 08:58: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
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
894e39c59f
Move static fields from class scope to global scope
2016-04-17 13:26:29 +03:00
Alexey Andreev
ca8a9b95a1
Rename module
2016-04-12 23:00:16 +03:00
Alexey Andreev
f63ec25ed3
Move metaprogramming API implementation into separate module
2016-04-12 22:54:32 +03:00