Commit Graph

37 Commits

Author SHA1 Message Date
Roman Artemev a0cccdf75c [JS IR] Make backend work with new shared boxes 2020-06-19 12:23:15 +03:00
Mikhail Glukhikh ab5cb13dae Rename: DescriptorBasedIr -> ObsoleteDescriptorBasedAPI 2020-06-16 19:17:14 +03:00
Mikhail Glukhikh cbbb497edf Make descriptor-based API in ir:tree more granular 2020-06-16 19:17:12 +03:00
Mikhail Glukhikh b05a1bb1a2 [IR] Extract IrExternalPackageFragmentImpl.createEmptyExternalPackageFragment 2020-05-25 15:40:37 +03:00
Roman Artemev 8335ce8665 [IR] Fix to make K/N work 2020-05-12 14:29:53 +03:00
Dmitry Petrov 05cb0e8994 KNVE: support in JVM_IR and JS_IR 2020-04-20 20:07:52 +03:00
Roman Artemev a9788f9506 [KLIB] Create an abstract class for module deserializer
- Introduce Ir-based Functional interface factory
 - Switch from LazyIr to pure
 - Use kotlin library to access raw bytes
 - Link dirty files against IC cache and dependencies instead of LazyIr
 - Move `DescriptorByIdSignatureFinder` from K/N to common
 - Support inline-bodies only MODE
2020-04-14 11:12:08 +03:00
Georgy Bronnikov 166b506f63 IR: only require all type parameter references to be local with new inference 2020-04-13 14:34:57 +03:00
Roman Artemev cef9ed1dae [IR] Implement new IrSymbol API
- Add predicate whether symbol is PublicAPI
 - Split symbols into 2 types (Public/Private)
 - Fix special implementations
2020-02-14 18:22:15 +03:00
Anton Bannykh 1e96c3d21e DCE-driven mode
:js:js.tests:jsIrTest works same as before
:js:js.tests:jsPirTest runs tests in DCE-driven mode
2020-02-06 21:03:41 +03:00
Anton Bannykh f6d4ea469c PrimaryConstructorLowering 2020-02-06 21:03:39 +03:00
Anton Bannykh 76ff30b86e ObjectLowering 2020-02-06 21:03:39 +03:00
Anton Bannykh 64a5039ebe Refactor default arguments lowering 2020-02-06 21:03:36 +03:00
Anton Bannykh 9327776706 Rewrite inner class lowerings 2020-02-06 21:03:36 +03:00
Anton Bannykh 0d1c6e08c3 Refactor LateinitLowering into DeclarationTransformer's and a BodyLoweringPass 2020-02-06 21:03:35 +03:00
Anton Bannykh 6e96e271ae Make InitializersLowering a BodyLoweringPass and add a InitializersCleanupLowering 2020-02-06 21:03:35 +03:00
Anton Bannykh 3d726fe5a2 Make InlineClassDeclarationLowering a DeclarationTransformer 2020-02-06 21:03:34 +03:00
Anton Bannykh 20dc3ccdb8 New mechanism for mappings between old and produced declarations 2020-02-06 21:03:33 +03:00
Alexander Udalov e42a4b2fac IR: extract JvmPropertiesLowering out of PropertiesLowering 2020-02-04 11:43:23 +01:00
Alexander Udalov d27bb76fd0 Remove dependency of serialization.js on cli
To break up compilation dependency of JS IR/WASM backends on JVM
backend.

 #KT-35854 Fixed
2020-01-29 18:03:22 +01:00
Svyatoslav Kuzmich fbf71be30c [JS IR BE] Support mode of linking multiple klibs without .kt files 2020-01-14 18:00:29 +03:00
Alexander Gorshenev dc8240c24e Expect/actual support in klibs under -Xklib-mpp 2019-12-18 19:29:56 +03:00
Georgy Bronnikov 08aeed3b46 IR: do not use lazyWrapper for Ir.Symbols
The reason for switching from lazyWrapper to SymbolTable itself is that
(at least in JS_IR) some of those lazily created structures could later
be deserialized, which created conflicts.
2019-12-04 16:05:53 +03:00
Georgy Bronnikov 1ed23d7c54 IR: reorganize IrProvider handling
Make DeclarationStubGenerator a subclass of IrProvider,
anticipating deserialization of IR structures for JVM_IR backend.
2019-11-27 20:02:27 +03:00
Alexander Udalov 608449f41d IR: introduce StubGeneratorExtensions for ExternalDependenciesGenerator
This is a refactoring to simplify the API of
ExternalDependenciesGenerator and to constrain future additions of
platform-specific stub generator extensions.
2019-11-20 15:16:57 +01:00
Georgy Bronnikov c5159d9cbe IR: Add UniqId to IrSymbol 2019-11-13 20:07:57 +03:00
Alexander Udalov 9a55f418fa IR: extract StaticInitializersLowering out of InitializersLowering
And use it in JVM backend only. Also remove unneeded
`patchDeclarationParents` call.
2019-11-12 19:21:46 +01:00
Roman Artemev a343a57207 [IR] Refactor ir infrastructure
- Remove range-based uniq id indexes using to link built ins
 - Limit KotlinType usages, replace them with corresponding IrType
2019-11-12 20:45:11 +03:00
Roman Artemev 78b29349c9 Fix lateinit isInitialized check in multi-file case 2019-10-31 14:45:15 +03:00
Vitaliy.Tikhonov 240abdb750 [JS IR BE] update current lowerings for IrScript 2019-10-10 12:52:05 +03:00
Georgy Bronnikov 2e3428bbe7 JVM_IR: incorporate validation into jvmPhases 2019-10-02 14:56:54 +03:00
Alexander Gorshenev c227c13799 Commonizing klib metadata between native and js 2019-10-01 17:38:57 +03:00
Georgy Bronnikov 7e9cfbc91a IR: use toLowerCaseAsciiOnly 2019-10-01 16:43:23 +03:00
Georgy Bronnikov 53b7766910 IR: call toLowerCase() with root locale
Preventing complexities with Turkish Iı vs. İi.
2019-09-30 22:55:19 +03:00
pyos 20626e4aaf Make ReturnableBlockLowering common
and remove special handling in JVM_IR codegen.
2019-09-05 15:48:26 +02:00
Roman Artemev f14107bf65 [IR] Sort dependencies a bit early 2019-09-03 14:21:29 +03:00
Svyatoslav Kuzmich 6e6ffa12a6 [WASM] Initial infrastructure
- New module ":compiler:backend.wasm"
    - Initial compiler infra (driver, phaser, context)
    - Subset of Wasm AST
    - Skeleton of IR -> Wasm AST
    - Wasm AST -> WAT transformer

- Testing infra

- SpiderMonkey jsshell tool
2019-08-22 15:59:54 +03:00