Igor Yakovlev
1b2b7ce34c
[Wasm] Support Number type for external functions
2022-12-29 11:57:45 +00:00
Igor Yakovlev
4dedd47172
[Wasm] Fix JsName external declarations
2022-12-29 11:57:45 +00:00
Svyatoslav Kuzmich
9d099348ba
[Wasm] Disable interop adapters for WasmImport
...
Merge-request: KT-MR-8152
2022-12-28 17:33:51 +00:00
Svyatoslav Kuzmich
62217b39ec
[Wasm] Rename WasmImportPair -> WasmImportDescriptor
2022-12-28 12:14:16 +01:00
Svyatoslav Kuzmich
dd53998c2d
[Wasm] Add uninstantiated MJS wrapper
...
It allows
* Custom imports
* Ability to skip initializer
2022-12-28 12:13:52 +01:00
Svyatoslav Kuzmich
3bbd8c291a
[Wasm] Add @WasmImport annotation
...
Imports top-level function from given module
2022-12-28 12:13:18 +01:00
Svyatoslav Kuzmich
d788adcbb5
[Wasm] Move non-recursive function types out of rec group
...
This fixes linking with other wasm modules with non-rec types
2022-12-21 20:20:13 +00:00
Svyatoslav Kuzmich
62ac77ca39
[Wasm] Add comments to .wat files
2022-12-16 13:57:59 +00:00
Svyatoslav Kuzmich
777bb0f0cb
[Wasm] Rename Wasm*CodegenContextImpl to Wasm*CodegenContext
2022-12-13 16:08:49 +01:00
Svyatoslav Kuzmich
b9b2723b0a
[Wasm] Remove Wasm*CodegenContext interfaces
...
Use classes instead
2022-12-13 16:08:48 +01:00
Zalim Bashorov
49c3ba33f1
[Wasm] Add a basic end-to-end sourcemap generation in wasm backend
...
More constructions/instructions will be supported separately.
2022-12-08 12:44:26 +00:00
Zalim Bashorov
7f8f7aa050
[Wasm] Revert ref cast and test instructions to be compatible with Binaryen
2022-11-25 15:31:48 +01:00
Zalim Bashorov
5f140dac21
[Wasm] Remove wasm_ref_cast and use wasm_ref_cast_null inside the compiler
2022-11-25 15:31:47 +01:00
Zalim Bashorov
e7d0e451e7
[Wasm] Fix immediate type for recently (in M6) introduced instructions
...
STRUCT_TYPE_IDX -> HEAP_TYPE
WasmImmediate.TypeIdx -> WasmImmediate.HeapType
2022-11-25 15:31:47 +01:00
Zalim Bashorov
d2b63c8c31
[Wasm] Use common logic for eqeq and eqeqeq
...
So, now it generates better code when null literals are passed to `eqeqeq`,
same as for `eqeq`.
2022-11-18 17:30:11 +01:00
Zalim Bashorov
96b02c9b66
[Wasm] Minor: move part of code of eqeqSymbol processing in BuiltInsLowering
2022-11-18 17:30:11 +01:00
Zalim Bashorov
0529ba9a87
[Wasm] Extract common some logic of eqeqSymbol processing in BuiltInsLowering
2022-11-18 17:30:10 +01:00
Zalim Bashorov
919029f34f
[Wasm] Add fast path for null in externRefToAny
...
- Introduce new intrinsics `wasm_ref_cast_null` & `wasm_ref_test_null`.
- Support getting type for immediate from generic argument.
- Remove redundant null check in `tryGetOrSetExternrefBox`.
2022-11-18 17:30:10 +01:00
Zalim Bashorov
2fc6cea681
[Wasm] Migrate to the new GC M6 instructions
2022-11-15 12:55:10 +01:00
Svyatoslav Kuzmich
ee2e966c5c
[Wasm] Reuse JS interop closure converters across modules
...
Otherwise, these function export names clash without proper linking
2022-11-11 16:29:52 +00:00
Zalim Bashorov
d29010807a
[Wasm] Apply recent changes in TFR proposal and update v8
...
Type index immediate was added to call_ref and return_call_ref instructions.
More details here https://github.com/WebAssembly/function-references/pull/76
2022-11-09 13:44:38 +01:00
Igor Yakovlev
5d44766752
[WASM] Table switch optimisation for reversed arguments
2022-11-01 13:15:12 +00:00
Igor Yakovlev
0e54e00e48
[WASM] Make object creation inside constructors
2022-11-01 13:15:11 +00:00
Igor Yakovlev
346b2f162c
[WASM] Optimize varargs without spreads
2022-11-01 13:15:11 +00:00
Igor Yakovlev
913ce9d817
[WASM] Remove redundant code
2022-11-01 13:15:10 +00:00
Igor Yakovlev
8d8430cde7
[WASM] Remove unnecessary boxing/unboxing
2022-11-01 13:15:10 +00:00
Igor Yakovlev
0e16889f45
[WASM] Fast load string literals from data section
2022-11-01 13:15:09 +00:00
Igor Yakovlev
033e2c45f1
[WASM] Caching string literals in global pool
2022-11-01 13:15:09 +00:00
Igor Yakovlev
5218acd5c9
[WASM] Optimise interop adapters
2022-10-18 20:48:12 +02:00
Sergey Bogolepov
6a4722188f
Extract SameTypeNamedCompilerPhase from NamedCompilerPhase
...
Currently, compiler pipelines are heavily couples with
NamedCompilerPhase. Unfortunately, NamedCompilerPhase uses the same
type for Input and Output, thus it is not applicable to phases that
try to transform some data purely.
Thus, we separate this class into two, allowing to have a new
inheritor of NamedCompilerPhase with different Input and Output types.
2022-10-13 08:25:26 +00:00
Sergey Bogolepov
e1f2b89875
Untie Symbols class from CommonBackendContext
...
`Symbols.context` property is actually unused. Let's drop
it as it makes harder to create an instance of this class.
2022-10-13 08:24:11 +00:00
Sergey Bogolepov
54deba63a1
Use PhaseConfigurationService in CompilerPhase instead of PhaseConfig
2022-10-13 06:39:39 +00:00
Zalim Bashorov
75510e6019
[K/Wasm] Fix incompatibilities with webpack.
...
* Webpack doesn't support "node:" prefix out of the box, so we can just ignore it.
* Use a proper way to get a path to the script's dir.
#KT-53790 Fixed
2022-10-07 19:37:56 +02:00
Pavel Kunyavskiy
8886e1b8b4
Move Js suspend functions lowerings to common code
2022-09-30 08:48:57 +00:00
Igor Yakovlev
5116bbc440
[WASM] Fix invalid element visiting for external declarations
2022-09-22 11:54:04 +02:00
Igor Yakovlev
b4ebc1dca4
[WASM] Add missing implicit casts
2022-09-22 11:54:04 +02:00
Igor Yakovlev
081cd4a4a8
[WASM] Support nullable types for external functions
2022-09-22 11:54:04 +02:00
Igor Yakovlev
dbfd20ec4e
[WASM] Add null-checks for external functions with String return type
2022-09-15 16:27:45 +00:00
Igor Yakovlev
a7ed496a04
[WASM] Use wasm bottom types for Nothing?
2022-09-15 16:27:45 +00:00
Igor Yakovlev
3e6f153fe5
[WASM] Fix dce type removal for local variables
2022-09-15 16:27:44 +00:00
Igor Yakovlev
c94a051c19
[WASM] Renew to Milestone 6 instructions set
2022-09-15 16:27:42 +00:00
Igor Yakovlev
780fdd44b3
Revert "[WASM] Remove deprecated usage of externref"
...
This reverts commit 270a41a2db .
2022-09-15 16:27:42 +00:00
Igor Yakovlev
61d6f69bca
[WASM] Native support of returnable blocks
2022-09-15 16:27:41 +00:00
Igor Yakovlev
03c500d9e9
[WASM] Remove unreachable code from compiled wasm
2022-09-15 16:27:41 +00:00
Igor Yakovlev
5169d96acd
[WASM] Function call codegen refactoring
2022-09-15 16:27:40 +00:00
Igor Yakovlev
95396eb61a
[WASM] When expressions optimisations for String and Int constant cases
2022-09-15 16:27:39 +00:00
Dmitriy Dolovov
e4556ecc0d
[IR] User-friendly message about unexpected unlinked symbols
...
^KT-53649
2022-09-13 17:12:13 +00:00
Artem Kobzar
8b826a865b
[K/JS, K/WASM] feat(Enum.entries): add support of new enum static field for JS and WASM.
2022-08-29 16:04:12 +00:00
Pavel Kunyavskiy
5034581788
[K/N] Fix references for inline function
...
Corresponding lowering creating wrappers from JS Backend was used.
Also, the lowering was changed to create local function, instead of
normal one in outer scope, as a lot of logic from local declarations
lowering should be duplicated otherwise for correct type parameters
handling.
^KT-38535
2022-08-18 13:23:10 +00:00
Igor Yakovlev
0ea7e8b70a
[WASM] Add array copy intrinsic
2022-07-06 19:07:56 +00:00