Alexander Udalov
f332192de8
IR: remove SourceManager, make PsiSourceManager a singleton
2021-03-05 20:46:33 +01:00
Alexander Udalov
7e149a3a44
IR: remove unneeded dependencies on psi2ir
2021-02-24 19:07:38 +01:00
Alexander Udalov
addabae8d2
IR: move frontend-dependent code into implementations in psi2ir
2021-02-24 19:07:38 +01:00
Georgy Bronnikov
4c701cf44c
IR: make extractedLocalClasses a JS-only field
2021-02-17 11:05:22 +03:00
Anton Bannykh
c06b345f3c
Hide stageController into the IrFactory
2021-02-17 10:42:50 +03:00
Roman Artemev
ba5193870e
[IR] Drop unused language version settings parameters from DependenciesGenerator
2021-02-02 12:05:34 +03:00
Ilya Goncharov
d88d1d048e
[JS IR] Context to NameTables for stable names in additional exported declarations
...
[JS IR] BridgesConstruction with generic without cast
^KT-44469 fixed
2021-01-28 18:56:21 +03:00
Svyatoslav Kuzmich
ba8223218f
[Wasm] Add inline property accessors optimization
2021-01-19 17:08:58 +03:00
Svyatoslav Kuzmich
2aa3c197a3
[Wasm] Use non-persistent IR to speed up tests
2021-01-19 17:08:05 +03:00
Alexander Udalov
221f44da5f
Fix warnings in stdlib/compiler/plugins/test code
2021-01-13 19:18:20 +01:00
Svyatoslav Kuzmich
38967f208e
[Wasm] Remove unused WasmI1 type
2020-12-30 19:29:11 +03:00
Svyatoslav Kuzmich
22239e2733
[Wasm] Remove unused super class field in type info
2020-12-30 19:29:11 +03:00
Svyatoslav Kuzmich
785c947782
[Wasm] Improve class type checks
...
Use wasm ref.test instad of manual type info linked list traversal
2020-12-30 19:29:10 +03:00
Svyatoslav Kuzmich
b6ad1584c9
[Wasm] Improve interface method dispatch
...
- Use typed Wasm tables for each interface method to avoid runtime
function type check
- Use linear search by implemented interface rather than by individual
virtual function signature
2020-12-30 19:29:10 +03:00
Shagen Ogandzhanian
e7dc199ad7
Init enum entries whenever we access companion object or accessing valueOf
...
Fixes https://youtrack.jetbrains.com/issue/KT-43987
Fixes https://youtrack.jetbrains.com/issue/KT-43989
2020-12-30 14:54:34 +01:00
Zalim Bashorov
9ac7c3d8bc
[Wasm] Remove usage of descriptor based API usage from WasmSharedVariablesManager
2020-12-28 18:53:53 +03:00
Svyatoslav Kuzmich
672859d447
[Wasm] Support init blocks in inline classes
2020-12-25 17:00:23 +03:00
Zalim Bashorov
c1f6a72ae1
[JS IR] Remove inline properties with reified parameters
...
RemoveInlineFunctionsWithReifiedTypeParametersLowering -> RemoveInlineDeclarationsWithReifiedTypeParametersLowering
2020-12-24 20:03:22 +03:00
Georgy Bronnikov
d714adacae
IR: removing WrappedDescriptors from symbols
2020-12-23 18:50:51 +03:00
Svyatoslav Kuzmich
d37271bf35
[Wasm] Support packed integer array elements
2020-12-14 14:40:38 +03:00
Svyatoslav Kuzmich
51e8d782b0
[Wasm] Support packed integer class fields
2020-12-14 14:40:38 +03:00
LepilkinaElena
c8c83c04c0
[IR] Fix saving function calls during inlining const properties in PropertyAccessorInlineLowering ( #3971 )
2020-12-10 12:24:23 +03:00
Svyatoslav Kuzmich
d4233f3f0e
[Wasm] Use Wasm GC arrays instead of JS arrays
...
JS arrays was a workaround for lack of arrays in Firefox Wasm GC prototype
Now with V8 as a test runner we can use proper arrays
2020-12-09 15:56:45 +03:00
Svyatoslav Kuzmich
d15af70a3e
[Wasm] Refactoring: replace "struct types" with "GC types"
...
In preparation for adding array types
2020-12-09 15:56:45 +03:00
Roman Artemev
5d5473ef08
[IR BE] Drop unused context member
2020-11-20 12:04:18 +03:00
Alexander Udalov
d96223a2ff
Fix compiler warnings in new wasm modules
...
Also don't output v8ExecutablePath in js.tests on each project
configuration.
2020-11-10 18:19:41 +01:00
Svyatoslav Kuzmich
7f26deb5e6
[Wasm] Enable for loops optimization
2020-11-10 16:09:22 +03:00
Svyatoslav Kuzmich
4d59a58291
[Wasm] Add interop annotation @JsFun
2020-11-10 13:08:04 +03:00
Svyatoslav Kuzmich
e51a76bc4e
[Wasm] Basic CLI
...
-Xwasm option that will produce wasm instead of JS when used with -Xir-produce-js
Does not affect klib production
2020-11-10 13:08:04 +03:00
Svyatoslav Kuzmich
bfd0f21e9d
[Wasm] Major compiler and stdlib update
2020-11-09 16:04:43 +03:00
Svyatoslav Kuzmich
3be38d1796
[Wasm] Add Wasm IR
...
Intended to be used by Kotlin/Wasm compiler.
Includes:
* IR tree: declarations, instructions, types.
* Convertors: ir2text, ir2bin, bin2ir
* Spec tests, to test convertors against reference Wabt tool
2020-11-09 16:04:42 +03:00
LepilkinaElena
cc4d93ac71
[IR] Eliminated expensive calculating of fqNames ( #3815 )
2020-10-16 21:07:04 +03:00
pyos
6f9f437f15
IR: refuse to copy classes in InitializersLowering
2020-10-09 22:11:00 +02:00
Mads Ager
9a93bb3f09
[IR] Add IR support for setting parameters.
...
Use it in the JVM_IR backend for default values code. The parameter
local has to be overwritten for the inliner to work.
2020-10-06 21:47:29 +02:00
Svyatoslav Kuzmich
162d9744ff
[JS IR] Fix export of constructor with default argument (KT-41275)
2020-09-24 14:58:14 +03:00
Dmitriy Novozhilov
d1fd1da56f
Rename Visibility to DescriptorVisibility
2020-09-04 11:07:42 +03:00
Igor Chevdar
ab54e43b00
[IR] Commonized SAM equals/hashCode builder
2020-08-31 12:01:29 +05:00
Alexander Udalov
a810dbb41b
IR: fix compiler warnings
2020-08-18 10:33:25 +02:00
Alexander Udalov
9961bd1fe1
IR: remove unneeded casts after making IrCall's symbol a simple function
2020-08-17 21:18:17 +02:00
Georgy Bronnikov
7f4df19dd1
JVM_IR: reorganize throw... functions in Symbols
2020-08-11 10:54:29 +03:00
Georgy Bronnikov
a2e9521ad5
Make DescriptorlessExternalPackageFragmentSymbol public
2020-07-30 11:24:07 +03:00
Alexander Udalov
77247deb23
IR: add module ir.tree.persistent, copy PIR implementation there
...
Use PersistentIrFactory in JS IR compiler entry points.
2020-07-28 19:04:43 +02:00
Alexander Udalov
12d2a02d22
JS IR: drop JsIrDeclarationBuilder
...
Move buildValueParameter back to JsIrBuilder, and use common IR builders
directly where buildFunction was called.
2020-07-28 12:05:24 +02:00
Alexander Udalov
d1dc938a5d
IR: use IrFactory in IR builders
2020-07-28 12:05:24 +02:00
Alexander Udalov
db4cbe7103
IR: use IrFactory in SymbolTable
2020-07-28 12:05:23 +02:00
Alexander Udalov
c6a127e87e
IR: introduce IrFactory
...
This is needed to refactor IrPersistingElementBase-based implementations
into another module, to use it in JS IR.
2020-07-28 12:05:23 +02:00
Alexander Udalov
65d3ae6253
JS IR: move declaration creation from IrBuilder to JsIrDeclarationBuilder
...
This is a temporary class until IrDeclarationFactory is there.
2020-07-22 22:40:08 +02:00
Alexander Udalov
c7f9dc1c40
IR: rename DeclarationFactory to InnerClassesSupport, move out of context
...
Methods of the common interface DeclarationFactory were only used in
lowerings in InnerClassesLowering, which were used in JVM and JS, not
Native. Therefore, it makes sense to have this as a separate interface
and pass its implementation to these lowerings directly, instead of
declaring it in the common context (which is not going to be implemented
in Native).
2020-07-20 22:26:11 +02:00
Alexander Udalov
181965f6e8
IR: inline namedIrModulePhase and namedIrFilePhase phase builders
...
Construct NamedCompilerPhase directly instead. Only use phase builders
where the code becomes easier to read.
2020-07-02 21:19:28 +02:00
Alexander Udalov
7997d4afd3
IR: do not use AnyNamedPhase where there is Context parameter
2020-07-02 21:19:27 +02:00