Commit Graph

88741 Commits

Author SHA1 Message Date
Igor Laevsky cfcbe9e1e2 [Wasm] Better preserve IR types after inlining 2022-01-01 20:04:44 +02:00
Xin Wang 9ae452e489 JVM_IR generate less bytecode for for-loops if possible(KT-22334). 2021-12-31 18:29:04 +03:00
Dmitry Petrov 3b928e1780 JVM_IR move increment intrinsic handling to JvmOptimizationLowering 2021-12-31 05:37:40 +00:00
sgmoore b71179065c Minor grammar fixes
Minor grammar fixes at lines 92, 118, 120, and 165.
2021-12-30 23:03:20 +01:00
Dmitry Petrov bcec952beb JVM_IR KT-50585 array constructor loop should end with IINC 2021-12-30 21:38:58 +03:00
Pavel Punegov cffdb2c3aa [K/N][test] Disable tail calls optimization for stack trace tests
Without disable_tail_calls attribute Clang optimizes these methods on
macos_aarch64 replacing invocation (BL) with simple branch (B) that
makes stacktrace have no test methods.
2021-12-30 17:29:19 +00:00
Kristoffer Andersen 27a2d7f614 [IR] Generalize fragment generation logic for wider use
Generalize the config specific to evaluator fragment compilation for wider
applicability.
2021-12-30 12:10:54 +01:00
Ilya Kirillov 27ab406445 Analysis: restore fix of ^KTIJ-16968 after move to PSI builder to kotlin repository 2021-12-30 13:44:30 +03:00
Dmitry Petrov 1e5fc1c3aa JVM_IR KT-27427 use checkNotNull with message in checked casts
This would prevent extra branching in 'as <not-null-type>', which
usually would not be covered.
2021-12-30 13:41:21 +03:00
Dmitry Petrov 9132c9b2d0 JVM don't choke on exceptions in ClassFileFactory#createText 2021-12-30 13:41:19 +03:00
Dmitry Petrov 4ad6cfcf53 JVM_IR fix cast to not-null type
We can't rely on argument type nullability here, because it still can
hold an uninitialized value on JVM.

KT-50577 KT-35272 KT-27427
2021-12-30 13:41:17 +03:00
Alexander Korepanov 4a29a8a7af [JS IR] Update an error on cross-module symbol redeclaration
The temporary solution for KT-50546.

The complete solution requires the understanding,
whether a cross-module symbol redeclaration is a valid case or not.
If the case is valid, the linker symbol table logic must be reworked.
2021-12-30 08:44:11 +00:00
Jinseong Jeon a153a1fefb FIR LC: create inline methods
unless the functions (or accessors) have reified type parameters
or inline-only annotations
2021-12-30 10:47:32 +03:00
Ilya Gorbunov 2954769296 KT-50059 Stop publishing artifacts with 'modular' classifier 2021-12-29 17:43:56 +00:00
Alexander Udalov d5372521f1 Add tests for obsolete issues
#KT-12126
 #KT-12189
 #KT-23628
 #KT-24209
 #KT-34338
 #KT-47279
 #KT-48498
2021-12-29 17:07:03 +00:00
mvicsokolova 5c3ce66e99 kotlinx.atomicfu compiler plugin (JS): delegated properties supported (#4692)
* kotlinx.atomicfu compiler plugin (JS): delegated properties supported

* NPE handling fixed

* Scoped delegated properties supported
2021-12-29 18:16:07 +03:00
Nikolay Krasko 0884782c60 Use relative paths in own kotlin klib artifacts
Old behaviour can be returned by kotlin.build.use.absolute.paths.in.klib
in local.properties

^KTI-730 In Progress
2021-12-29 17:39:51 +03:00
Dmitry Petrov 5946242d75 JVM_IR fix special bridges in mixed Java/Kotlin hierarchies
KT-50257 KT-50476
2021-12-29 13:29:19 +00:00
Dmitriy Dolovov 3f056bc086 [Native][tests] Gradle property kotlin.internal.native.test.compilerClasspath: when not specified compute the default value based on kotlin.internal.native.test.nativeHome property, or fallback to JAR artifact of :kotlin-native-compiler-embeddable project when kotlin.internal.native.test.nativeHome not specified. 2021-12-29 16:28:12 +03:00
Dmitriy Dolovov 52c1a339c4 [Native][tests] Simplify CacheKind.WithStaticCache setting 2021-12-29 16:27:39 +03:00
Dmitriy Dolovov c47f0f16d2 [Native][tests] Gradle property: kotlin.internal.native.test.target 2021-12-29 16:27:39 +03:00
Dmitriy Dolovov 1b241e04b2 [Native][tests] Extend logged environment variables and JVM properties 2021-12-29 16:27:39 +03:00
Dmitriy Dolovov dae71e3112 [Native][tests] Fix globs expansion on Windows 2021-12-29 16:27:38 +03:00
Dmitriy Dolovov af4900e08f [Native][tests] Fix: Pass missing properties to K/N compiler JVM process 2021-12-29 16:27:38 +03:00
Dmitriy Dolovov 3c6605fde5 [Native][tests] Depend on project(":kotlin-native-compiler-embeddable") only when K/N compiler classpath is not explicitly specified as Gradle property 2021-12-29 16:27:38 +03:00
Dmitriy Dolovov d1083c51e2 [Native][tests] Depend on :kotlin-native:dist only when K/N path is not explicitly specified as Gradle property 2021-12-29 16:27:38 +03:00
Dmitriy Dolovov 8b8eb23b96 [Native][tests] Minor. Fix typo 2021-12-29 16:27:38 +03:00
Dmitriy Dolovov a338cc31cb [Native][tests] Gradle property: GCType 2021-12-29 16:27:37 +03:00
Dmitriy Dolovov 2b43dce1a5 [Native][tests] Gradle property: ThreadStateChecker 2021-12-29 16:27:37 +03:00
Dmitriy Dolovov 9dbb844742 [Native][tests] Gradle property: MemoryModel 2021-12-29 16:27:37 +03:00
Dmitriy Dolovov dbd7a05c7e [Native][tests] Gradle property: OptimizationMode 2021-12-29 16:27:37 +03:00
Dmitriy Dolovov 46f2c6ee10 [Native][tests] Remove test grouping tasks: dailyTest & fullTest
Need to rethink test grouping tasks before returning them back.
2021-12-29 16:27:37 +03:00
Ivan Kylchik 493d9a49cb Drop jmh benchmarks for light-tree2fir
These benchmarks are not used and interfere with FIR IDE plugin.
2021-12-29 16:23:12 +03:00
Anton Bannykh 1b631da3a0 [JS IC] fix cross-module nested class references and interface inheritance
^ KT-50528 fixed
2021-12-29 16:04:06 +03:00
Alexander Shabalin 3fe05233e2 [K/N] Fix set_terminate usage in ExceptionsTest.cpp
Merge-request: KT-MR-5376
Merged-by: Alexander Shabalin <Alexander.Shabalin@jetbrains.com>
2021-12-29 12:58:35 +00:00
sebastian.sellmair 353593fa77 [MPP] Add documentation to .configureTaskOrder() 2021-12-28 21:15:20 +00:00
sebastian.sellmair f9c70758a2 [MPP] Add CInteropMetadataDependencyTransformationTaskTest 2021-12-28 21:15:19 +00:00
sebastian.sellmair 2e1fc15a9a [MPP] Only enable cinterop metadata transformation when cinterop commonization is enabled
Both library author and consumer need to enable cinterop commonization
in order to support libraries with commonized cinterops
in their API surface.
2021-12-28 21:15:19 +00:00
sebastian.sellmair 4d5446a174 [MPP] CInteropMetadataDependencyTransformationTask: Replace mutex
Replace previous 'mutex' output file in favour of proper
task ordering and task enabling.
2021-12-28 21:15:19 +00:00
sebastian.sellmair 146099e92e [MPP] Don't check commonizer classpath for UP-TO-DATE mechanism
Using a different commonizer classpath is a very uncommon practice.
Checking the classpath for Gradle's UP-TO-DATE mechanism is
already misleading, because we are relying on a custom UP-TO-DATE
implementation that will not include this classpath anyway.

Removing this input is intended to improve commonizer startup time.
2021-12-28 21:15:18 +00:00
Ivan Kylchik 6fc56477bf Drop all tests that disable features for language version less than 3 2021-12-28 20:08:56 +03:00
Ilmir Usmanov 549ea1a3b9 If fun interface methods are already mangled, do not mangle them twice
There are two possible scenarios, when fun interface method with inline
class parameter can be compiled.

First is when we compile fun interface itself before SAM adapter. In
that case, fun interface is lowered before we lower SAM adapter. Thus,
its method is mangled and mangling in the second time is an error.

Second is when we compile SAM adapter before the fun interface. In that
case, fun interface is not lowered, and we have to mangle the method.

The only way to distinguish there two cases I can think of is to check
whether the overridden method is already mangled, in other words, check,
whether the overridden method's suffix is doubled.

 #KT-48499: Fixed
2021-12-28 17:35:12 +01:00
Sergej Jaskiewicz 71732afae0 [JS IR] Copy JS artifacts to the build directory if the compiler crashes
Previously in 3fb1096c18 we've implemented
dumping the IR after each phase when running JS IR box tests.

However, because those dumps are saved to a temporary directory,
they can be lost in case we never make it to
`jsArtifactsHandlersStep` where files from that temporary
directory were copied to the `build/out` directory.
This could happen if, for example, the compiler crashed.
In that case, having IR dumps is even more useful, as they can help
investigate the crash.

Here we make `JsArtifactsDumpHandler` an `AfterAnalysisChecker` so that
it runs no matter what.
2021-12-28 14:42:04 +00:00
Alexander Udalov 9a9a8f1999 Restore support of language version 1.3
#KT-50251 Fixed

(cherry picked from commit a0004ed03adc9f50f26c8b11d178afcc2abf2a9c)
2021-12-28 13:21:18 +01:00
Alexander Udalov 92c80873ba Revert "JVM: remove support for disabling NoConstantValueAttributeForNonConstVals"
This is a partial revert of e857966edb.

Specifically, behavior is restored in the old backend, which will allow
to support language version 1.3, where this language feature was not
enabled yet. There are no changes in the JVM IR backend, because to
enable JVM IR with LV 1.3, you need to pass the compiler argument
`-Xuse-ir` which is not stable and we don't guarantee anything about it.

 #KT-50251
2021-12-28 13:21:18 +01:00
Alexander Likhachev 5097d426c1 [Gradle] Mark MetricsWriter with Serializable interface
#KT-50549 Fixed
2021-12-28 12:05:09 +00:00
Alexander Likhachev 426faf4ca6 [Gradle] Add test for KT-50549 2021-12-28 12:05:08 +00:00
Sergey Igushkin cb9dfc8e01 KT-50509: Optimize the performance of whenEvaluated { ... } wrapper
The Gradle API `pluginManager.withPlugin(id) { ... }` turned out to have
a significant performance footprint due to operations on underlying
immutable collections.

We can replace calls to `withPlugin` with checks of `hasPlugin` running
on each applied plugin.

Issue #KT-50509 Verification pending
2021-12-28 10:09:42 +00:00
Roman Artemev 723ef8f1fb [KLIB] Deserialize backing field initializers of const in IB-only mode
Missing const initializer leads to crash in property accessors inline
lowering during IC recompilation on JS.

 - fix #KT-50512
 - add test for JS IR IC
2021-12-27 23:43:43 +03:00
mvicsokolova 188d073cc3 kotlinx.atomicfu compiler plugin (JS): tracing supported. (#4691)
* kotlinx.atomicfu compiler plugin (JS): tracing supported.

* Erasing trace invocations from both IrBlock and IrBlockBody.
2021-12-27 23:20:08 +03:00