Commit Graph

1137 Commits

Author SHA1 Message Date
Vladimir Sukharev 255d4fa829 [K/N] Don't reuse irGet node in cleanerField tree
Merge-request: KT-MR-8831
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-02-14 20:31:13 +00:00
Pavel Kunyavskiy 00c900cb49 [K/N] Optimize code generation for function references
In before, each function reference created 5 functions needed only
for equals/hashcode properties. It contributed arround 3.5% of code size
on several sample projects. This is now replaced by passing constant
object to base class constructor.
2023-02-14 13:00:47 +00:00
Nikolay Krasko 2ad567e14c Revert "[K/N][build] Cleanup obsolete build tasks"
This reverts commit a9cae3fe87.
2023-02-14 11:30:17 +00:00
Igor Chevdar ba172358d8 [K/N] Option to specify IR validation severity 2023-02-14 07:30:47 +00:00
Igor Chevdar 4fd063bd4b [K/N][driver] Some tweaks in IrValidator setup 2023-02-14 07:30:46 +00:00
Igor Chevdar 95c4ded9d0 [K/N][IR] Fixed wrong IrCall type (to fix IR validation) 2023-02-14 07:30:46 +00:00
Igor Chevdar 750bb5c8c4 [K/N][IR] Added proper parent 2023-02-14 07:30:44 +00:00
Pavel Punegov a9cae3fe87 [K/N][build] Cleanup obsolete build tasks
* Remove obsolete reporting
* Remove old build tasks: BuildPusher and CollisionDetector
* Gradle build file cleanup
* Remove old wrappers

Merge-request: KT-MR-8788
Merged-by: Pavel Punegov <Pavel.Punegov@jetbrains.com>
2023-02-13 14:02:28 +00:00
Svyatoslav Scherbina f78ffcb300 [K2/N] Unignore three tests fixed by basic forward declarations support
These tests got fixed by b19058c.

^KT-56028
2023-02-13 10:01:12 +00:00
Svyatoslav Scherbina 1c5335302d [K2/N] Unignore mistakenly ignored testValuesGenericsFramework 2023-02-13 10:01:12 +00:00
Vladimir Sukharev 7bce6d21f0 Disable in K2 tests that fail for two-stage
Merge-request: KT-MR-8786
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-02-10 16:59:25 +00:00
Stanislav Erokhin bec9ad0f6b Minor. Rename FunctionClassDescriptor#functionKind -> functionTypeKind
This commit is needed for the following commit.
There we will restore the compatibility API with Android IDEA plugin
2023-02-10 16:01:04 +00:00
Igor Chevdar a14f3c8cc2 [K/N] Fixed wrong initializer call extraction for interop-visible functions
#KT-56521 Fixed
2023-02-10 15:45:11 +00:00
Igor Chevdar 2281d9700d [K/N] Added a test for #KT-56521 2023-02-10 15:45:10 +00:00
Pavel Kunyavskiy c400a75407 [K/N] Fix tests failing because of phase renaming 2023-02-10 12:58:22 +00:00
Vladimir Sukharev 6e434748d1 [K2/N] Run new stdlib tests also for K2.
Merge-request: KT-MR-8708
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-02-10 10:34:44 +00:00
Sergey Bogolepov f86d28449f [K/N] Make -Xprofile-phases print profile of LLVM passes 2023-02-10 10:20:30 +00:00
Pavel Kunyavskiy 120ca08740 [K/N] Rework LLVM pipeline
Compiler was running LTO pipeline without preliminary running normal
optimisation pipeline. In some cases this lead to unacceptably long
compilation.

Also, this allows disabling LTO pipeline part, having still quite
good performance, but much better compilation time.

Co-authored-by: Johan Bay <jobay@google.com>

^KT-55868
2023-02-09 14:30:39 +00:00
Sergey Bogolepov f7d3312ad5 [K/N] Finish refactoring TempFiles usages
1. Introduce CExportFiles class
This class aggregates all files that are created specifically for
C export. Adding more such classes for other output kinds should
help getting rid of OutputFiles class.

2. Remove NativeGenerationState.tempFiles
Making NativeGenerationState (and compiler phases in general)
unaware of files and their lifetime is necessary for making phases
simpler and easier to compose.
2023-02-09 08:20:34 +00:00
Sergey Bogolepov 4fbddf1786 [K/N] Pass NativeGenerationState components as parameters
tempFiles is finally moved to the driver.
2023-02-09 08:20:34 +00:00
Sergey Bogolepov b7b85177a7 [K/N] Refactor module splitting for backend
We want to extract tempFiles from NativeGenerationState.
To do so, we need to move creation of NativeGenerationState from
`splitIntoFragments` function and untie CacheLlvmModuleSpecification
from NativeGenerationState
2023-02-09 08:20:34 +00:00
Sergey Bogolepov eba1b4c388 [K/N] Untie DependenciesTracker from NativeGenerationState 2023-02-09 08:20:33 +00:00
Sergey Bogolepov 7402ef24bb [K/N] Remove obsolete TempFiles constructor parameter 2023-02-09 08:20:33 +00:00
Sergey Bogolepov 6a06be08cd [K/N] Extract pre-link from linker and a bit of refactoring
Finish extracting all usages of TempFiles to the driver.
2023-02-09 08:20:32 +00:00
Sergey Bogolepov e6081e5851 [K/N] Extract cache management in linker to a separate file
Also, more meaningful names.
2023-02-09 08:20:32 +00:00
Sergey Bogolepov 2f1e9844df [K/N] Move temp file from BitcodeCompiler to the driver
Continue extracting all temporary files to the driver, so we have
a better control over them. For example, this allows creating of a new
driver where pipeline split between multiple compiler invocations.
2023-02-09 08:20:31 +00:00
Sergey Bogolepov a11be433e2 [K/N] Get rid of predefined values in TempFiles
One step closer to getting rid of this class at all.
2023-02-09 08:20:31 +00:00
Sergey Bogolepov 1182903b20 [K/N] Move c++ adapter compilation to a separate phase
Besides purely architectural reasons or, rather, as a
direct effect of those, it allows moving tempFiles usages
to the driver.
2023-02-09 08:20:30 +00:00
Sergey Bogolepov bb1feabb79 [K/N] Untie C header generation from NativeGenerationState 2023-02-09 08:20:29 +00:00
Sergey Bogolepov 8516ae2b72 [K/N] Extract C header generation to a separate phase 2023-02-09 08:20:29 +00:00
Sergey Bogolepov 818b738921 [K/N] Fix context.log in NativeGenerationState phases 2023-02-09 08:19:47 +00:00
Dmitriy Dolovov 469a2315fc [Native] Move BuiltinOperatorLowering to a later stage of the lowerings pipeline
This would allow using unlowered operator symbols from IrBuiltIns in all lowerings before BuiltinOperatorLowering.
2023-02-09 08:07:15 +00:00
Sergey Bogolepov de444542d0 [K/N] Make target deprecation warning more visible
Two columns in Gradle output makes IDE display such
message in a separate view which makes it more discoverable.
2023-02-08 09:31:30 +00:00
Igor Chevdar 12d0b1e846 [K/N][codegen] Fixed wrong arguments evaluation order for IrSetField
#KT-56326 Fixed
2023-02-08 06:56:09 +00:00
Svyatoslav Scherbina d8bae5a6f8 [FIR] Implement support for MPP in Native
^KT-56071
2023-02-07 14:16:30 +00:00
Alexander.Likhachev 67c4dc3cce [Gradle, K/N] Stop using enableEndorsedLibs Gradle flag, make it Error
#KT-54098 Fixed
2023-02-06 19:24:05 +00:00
Pavel Kunyavskiy abbf11e8e1 [K/N] Mark immutable temp variables as immutable
This optimizes 5000 enum entries enum compilation time from "I can't wait" to around 1 minute.
2023-02-06 08:34:11 +00:00
Svyatoslav Scherbina 1828f7a374 Native: fix curl sample test 2023-02-03 15:30:56 +00:00
Igor Chevdar 32ce254001 [K/N] Added a filecheck test on suspend lambdas tail calls 2023-02-03 11:14:54 +00:00
Igor Chevdar c871ccc4dd [K/N][IR] Turned off partial tail call optimization
It is difficult to implement properly tail calls for a real coroutine (when there
are other non tail calls), because of continuation interception semantics. And the
benefits aren't clear at this point, so let's turn it off for now.
2023-02-03 11:14:53 +00:00
Igor Chevdar 716853dd00 [K/N][IR] Tail call optimization for suspend lambdas 2023-02-03 11:14:53 +00:00
Dmitriy Novozhilov 89c42e20c9 [FIR] Consistently use _function_ instead of _functional_ in names of classes and functions 2023-02-02 08:24:52 +00:00
Dmitriy Novozhilov 67aa80562d [FE] Completely replace FunctionClassKind with FunctionalTypeKind
FunctionalTypeKind can be used in FE 1.0 too, so there is no need to
  keep both classes. Also, removal of FunctionClassKind simplifies work
  with FunctionalTypeKind in common code, like Analysis Api
2023-02-02 08:24:50 +00:00
Sergey Bogolepov 6c449e29cd [K/N] Add a link for the target deprecation message 2023-02-02 08:24:02 +00:00
Sergey Bogolepov 02c46d17aa [K/N] Add a trivial test coverage for use Foundation 2023-02-01 15:34:26 +00:00
Mark Mann ba4ba27afd Fix regression where was removed from generated modulemaps 2023-02-01 15:34:25 +00:00
Vladimir Sukharev 26b6c0b310 [K2/N] Unlock old testinfra runs with K2 frontend
Merge-request: KT-MR-8552
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-02-01 15:28:14 +00:00
Nikita Bobko 62b27b4613 Cleanup: drop KlibIrVersion
Review: https://jetbrains.team/p/kt/reviews/8401
In scope of: KT-55082

Because this version isn't used for anything. We have KotlinAbiVersion
to version the IR format.
2023-02-01 15:13:34 +01:00
Vladimir Sukharev 08489c5734 [K2/N] KT-56218 Serialize receiver annotations
Merge-request: KT-MR-8624
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
2023-02-01 13:33:55 +00:00
Ivan Kochurkin 6bdd0edd6c [FIR2IR] Add Fir2IrCommonMemberStorage, get rid of merge in Fir2Ir storages
Extract DescriptorSignatureComposerStub and WrappedDescriptorSignatureComposer to separate classes
2023-02-01 11:42:46 +00:00