Commit Graph

1012 Commits

Author SHA1 Message Date
Alexey Andreev
9b601ac002 wasm gc: initialize class initializer globals in global section 2024-08-30 20:54:46 +02:00
Alexey Andreev
638cc8ed15 wasm gc: reduce sizes of virtual tables, initialize structures in global section 2024-08-30 20:21:01 +02:00
Alexey Andreev
f19c211b2a wasm gc: fix issie with type inference for array set, implement some intrinsics 2024-08-30 13:44:23 +02:00
Alexey Andreev
1ba1dcfc09 wasm gc: fix issue in type inference for comparison instruction result 2024-08-30 12:54:59 +02:00
Alexey Andreev
0b11a9ce90 wasm gc: fix issues in disassembler 2024-08-30 12:54:39 +02:00
Alexey Andreev
8ba4f9c30b wasm gc: fix issue with function numbering in disassembler 2024-08-29 21:24:14 +02:00
Alexey Andreev
cb1f3c6dfc wasm gc: fix issue in virtual table generator 2024-08-29 21:14:49 +02:00
Alexey Andreev
a0224f60e6 wasm gc: fix infinite loop in type inference 2024-08-29 21:04:33 +02:00
Alexey Andreev
31d89ebec2 wasm gc: support emitting disassembly in HTML with link references, add setting to emit disassembly in JUnit tests 2024-08-29 18:41:02 +02:00
Alexey Andreev
a8b999f8d9 wasm gc: support global section in disassembler 2024-08-29 17:43:41 +02:00
Alexey Andreev
d6b2afd096 wasm gc: support name section in disassembler 2024-08-28 21:02:33 +02:00
Alexey Andreev
5a513fd6fd wasm gc: improve disassembler to print type section 2024-08-28 14:13:10 +02:00
Alexey Andreev
7324e99e6a wasm gc: produce better names for declarations, generate locals in names section 2024-08-27 20:03:22 +02:00
Alexey Andreev
10c3731c43 wasm gc: fix some issues and implement intrinsics
* properly cast exception type on catch blocks
* generate virtual table structures lazily
* fix calculation of types of a.field values
2024-08-27 13:28:49 +02:00
Alexey Andreev
6ff58b2dc7 wasm-gc: fix type inference for case of integer subtypes 2024-08-26 20:48:53 +02:00
Alexey Andreev
96bf4379c9 Temporarily ignore failing test 2024-08-26 19:40:59 +02:00
Alexey Andreev
ebac13a363 wasm gc: implement Array.getLength and Array.get 2024-08-26 18:14:04 +02:00
Alexey Andreev
ba08fb395c wasm gc: always emit java.lang.Class, fix issue with recursive types 2024-08-25 20:38:02 +02:00
Alexey Andreev
0cda737dca Add test for bug in nullness analysis 2024-08-25 19:34:20 +02:00
Alexey Andreev
4a345610cf wasm gc: reduce number of generated virtual table entries, reduce size of a simple program 2024-08-23 21:10:44 +02:00
Alexey Andreev
3e19ca341e wasm gc: fix support of class initialization, inherit arrays from Object, add support for clone in arrays 2024-08-23 21:10:44 +02:00
Alexey Andreev
335e2da4cf wasm gc: implement System.identityHashCode() and some Integer intrinsics 2024-08-23 10:14:39 +02:00
Alexey Andreev
5d109236d9 wasm gc: fix running tests in JUnit, fix remaining errors so that *few* tests pass 2024-08-21 14:29:56 +02:00
Alexey Andreev
1aebe51256 wasm gc: implement backend-specific virtual table builder 2024-08-20 21:03:51 +02:00
Alexey Andreev
eb0eb1f146 wasm gc: generate field names and write them to name section 2024-08-20 14:16:24 +02:00
Alexey Andreev
29f29cea1d wasm gc: trying to fix virtual calls 2024-08-19 15:02:11 +02:00
Alexey Andreev
5eb1e7d9bc wasm gc: implement intrinsics for Long and Class classes 2024-08-18 19:55:25 +02:00
Alexey Andreev
a97e6574ac Introduce concept of 'weak' cast.
Use weak casts to maintain proper typing within methods during various operations on IR. At generation level, ignore weak casts, except for Wasm GC BE, which turns weak casts into platform casts.
2024-08-18 18:47:04 +02:00
Alexey Andreev
8b52741e04 wasm: avoid generation of types as defined in GC spec
This fixes passing tests in environments that either don't support or prohibit usage of GC spec
2024-08-18 17:51:29 +02:00
Alexey Andreev
199032d48a wasm gc: support Array.newInstance 2024-08-17 20:48:03 +02:00
Alexey Andreev
40fbce0ddd wasm gc: fix issues with virtual calls 2024-08-16 20:42:03 +02:00
Alexey Andreev
8c15885f44 Fix metaprogramming support, fix calculation of virtual tables for final classes 2024-08-14 13:22:27 +02:00
Alexey Andreev
eaf2c8189f wasm gc: implement some basic reflection-specific intrinsics in Object and Class 2024-08-13 20:51:20 +02:00
Alexey Andreev
a84c5fc77f wasm gc: fix issues related to virtual calls 2024-08-13 19:57:48 +02:00
Alexey Andreev
73edc0cf6e wasm gc: support passing arguments to main method 2024-08-12 20:28:11 +02:00
Alexey Andreev
e61301576b wasm gc: support System.arrayCopy for special cases 2024-08-12 17:55:19 +02:00
Alexey Andreev
6af7250e3b wasm: add support for array.copy instruction 2024-08-03 19:55:16 +02:00
Alexey Andreev
92666e8cf0 wasm gc: trying to fix issues with array covariance 2024-08-02 19:11:11 +02:00
Alexey Andreev
dd2e4bb001 wasm: fix error in ClassMetadataRequirements causing compiler crash 2024-08-02 15:26:36 +02:00
Alexey Andreev
8d276f2efd wasm gc: avoid generation of unnecessary supertype functions 2024-08-02 15:03:29 +02:00
Alexey Andreev
8e483245f5 wasm: fix generation of constructor invocation 2024-08-02 14:36:33 +02:00
Alexey Andreev
7ba0a7fe7d wasm gc: export exception tag from module 2024-08-02 14:31:00 +02:00
Alexey Andreev
e4fa6bd364 wasm gc: reduce number of generated virtual tables, fix non-matching types in case of null literals 2024-08-02 13:50:49 +02:00
Alexey Andreev
9b5e1e7661 wasm gc: fix remaining issues that prevent running trivial example 2024-08-01 20:25:18 +02:00
Alexey Andreev
54dc7fe5f8 wasm gc: fix generation issues, get first version that produces module that passes validation 2024-08-01 19:57:12 +02:00
Alexey Andreev
a8d97ad387 wasm gc: cast receivers on devirtualized calls to actual argument type, avoid this cast when possible 2024-07-31 20:49:45 +02:00
Alexey Andreev
75bead66b3 wasm: support instructions that were recently implemented in generator 2024-07-31 17:31:39 +02:00
Alexey Andreev
5572d4b5d7 wasm gc: add subtyping information to types, fix generation of expressions 2024-07-30 20:57:36 +02:00
Alexey Andreev
a1a776ea9b wasm gc: trying to fix type validation 2024-07-30 17:33:31 +02:00
Alexey Andreev
87aaa0b452 wasm gc: fix issues in generation of types, globals and some expressions 2024-07-29 20:41:58 +02:00