Commit Graph

1421 Commits

Author SHA1 Message Date
Georgy Bronnikov 3cc883cf7b IR: use DescriptorBySignatureFinder in DeclarationStubGenerator
Duplicating code that was used for the same purpose in
DeclarationStubGenerator is removed.
2022-01-27 01:02:14 +03:00
Svyatoslav Scherbina 149e596bef Native: support -Xoverride-konan-properties in generatePlatformLibraries 2022-01-26 12:43:41 +00:00
Svyatoslav Scherbina 1d3e72cef4 Native: do not cache DependencyProcessor.localKonanDir
Caching is wrong when the compiler is working in Gradle daemon, because
the daemon can change the environment, while localKonanDir depends on
the environment.
2022-01-26 12:43:41 +00:00
Dmitriy Dolovov 15e6101608 [IR, Native] Support partial linkage in backend
^KT-50775
2022-01-26 13:36:23 +03:00
Dmitriy Dolovov 4726b14c4b [IR, Native] Refactoring: Introduce KonanUnlinkedDeclarationsSupport
^KT-50775
2022-01-26 13:36:23 +03:00
Dmitriy Dolovov 319125607e [IR, JS] Refactoring: Introduce JsUnlinkedDeclarationsSupport
^KT-50775
2022-01-26 13:36:23 +03:00
Dmitriy Dolovov cc37934d6f [IR, Native] Add compiler flag for partial linkage mode
^KT-50775
2022-01-26 13:36:23 +03:00
Ilya Matveev acced31bb2 [K/N] Fix CMS GC hanging on Windows
Issue #KT-50948 Fixed
2022-01-26 12:57:09 +07:00
sebastian.sellmair eecc63594c benchmarksAnalyzer: Remove workaround for KT-50847 2022-01-25 16:59:27 +00:00
sebastian.sellmair 0fd65ab1a0 [Native] TargetedLibraryImpl: Respect 'commonizerNativeTargets' property
^KT-50847 Verification Pending
2022-01-25 16:59:27 +00:00
Pavel Kunyavskiy 803014ef24 [K/N] Test for freezing disabling 2022-01-25 13:43:48 +00:00
Alexander Shabalin b29b6227c2 [K/N] Adjust timings in GCSchedulerTest
Merge-request: KT-MR-5555
Merged-by: Alexander Shabalin <Alexander.Shabalin@jetbrains.com>
2022-01-25 09:38:32 +00:00
Igor Chevdar 2e5a110a3e [K/N][gradle] Fixed platform libraries generation 2022-01-25 09:17:45 +00:00
Sergey Bogolepov 322bffd75a [K/N] Add FileCheck test for constants merging 2022-01-25 09:11:01 +00:00
Sergey Bogolepov a6455a906b [K/N] Fix KT-50843
Marking constants with unnamed_addr allows LLVM to merge them.
2022-01-25 09:10:59 +00:00
Pavel Kunyavskiy 80b50f5452 [K/N] Disable freezing by default, if memory model is experimental 2022-01-24 13:38:30 +00:00
Pavel Kunyavskiy 3798920183 [K/N] Any.isFrozen is now always false when freezing is disabled 2022-01-24 13:38:30 +00:00
Dmitriy Novozhilov dd953908df [FE 1.0] Add compiler flag for rendering internal diagnostic names in error messages 2022-01-23 11:14:56 +03:00
Svyatoslav Scherbina a65b278f71 Native: generate debug locations for catch parameters
^KT-50558 Fixed
2022-01-21 16:08:13 +00:00
Alexander Shabalin 69bb2587eb [K/N] Make GC scheduler less aggressive
^KT-48537

Merge-request: KT-MR-5319
Merged-by: Alexander Shabalin <Alexander.Shabalin@jetbrains.com>
2022-01-19 19:11:15 +00:00
Alexander Udalov 6445a29893 IR: remove type parameter in visitConst
Co-authored-by: mcpiroman <mcpiroman@gmail.com>
2022-01-19 17:50:35 +01:00
Alexander Udalov 81106526b1 IR: remove IrConstantObject.putArgument, IrConstantArray.putElement
Change `valueArguments` and `elements` types to be mutable lists. This
will simplify IR tree generator.
2022-01-19 17:50:35 +01:00
Pavel Punegov 816acaadc3 [K/N][samples] Properly disable HMPP for ^KT-50547
Properties file inside subproject isn't read. Moved to root
Fixup to 8d0b511e95
2022-01-19 16:10:10 +00:00
Pavel Kunyavskiy 2f853175c7 [K/N] Get rid of using base class default values for annotations
They can be not available in incremental compilation case

^KT-50211
2022-01-19 13:17:17 +00:00
Pavel Punegov 3db341213b [K/N] Synchronize LLVM target initialization
Race conditions should be avoided during initialization.
See llvm/lib/Support/TargetRegistry.cpp in LLVM repo
2022-01-19 11:18:43 +00:00
Pavel Punegov a22e267b05 [K/N] Set JDK17 as a toolchain for endorsedLibs project
Older JDKs sometimes make build fail with obscure errors
2022-01-19 11:18:14 +00:00
Pavel Punegov 8d0b511e95 [K/N][samples] Turn off hmpp and metadata due to ^KT-50547 2022-01-18 15:24:06 +00:00
Elena Lepilkina b8af589137 [K/N][perf] Added workaround to build benchmarks analyzer artifacts 2022-01-18 17:08:10 +03:00
Svyatoslav Scherbina ec3a2c9671 Native: remove cleanup landingpad if it is unused
Useful for ObjCExport, because most of its bridges don't use it.
2022-01-18 08:15:15 +00:00
Svyatoslav Scherbina 47a0bdc1bc Native: remove forwardingForeignExceptionsTerminatedWith
It is no longer used, and was generally misdesigned.
2022-01-18 08:15:15 +00:00
Svyatoslav Scherbina 35cb897bdd ObjCExport: use terminatingExceptionHandler by default
If something called from an ObjCExport bridge throws a Kotlin exception,
treat it as fatal by default and terminate the process.

This affects
* Runtime calls (managing and converting Kotlin and Obj-C references and
  other types), that shouldn't throw such exceptions anyway
* User code (Kotlin function object throws Kotlin exception when
  called from Swift/Obj-C).

If an exception should be handled non-fatally (e.g. forwarded to
the caller), this intention should be expressed in the code generator
explicitly.

^KT-50830

This change makes the code more simple and efficient,
and the control flow -- more explicit.
2022-01-18 08:15:14 +00:00
Svyatoslav Scherbina bc2cc026db ObjCExport: use ObjCExportFunctionGenerationContext when generating code
instead of its supertype, FunctionGenerationContext.
2022-01-18 08:15:14 +00:00
Svyatoslav Scherbina e8e4a850d4 ObjCExport: remove state switching from callFromBridge
It is not required anymore.
2022-01-18 08:15:14 +00:00
Svyatoslav Scherbina 776154881b ObjCExport: prohibit Kotlin exceptions leaking through native code back
If a Kotlin exceptions is thrown out of a native code in ObjCExport
(when calling Swift/Obj-C method overriding Kotlin method, or calling
Swift/Obj-C block as Kotlin function type), treat this exception as
fatal and terminate the process.
This could happen if the Kotlin exception leaked from Kotlin to native
code before.
In other words, when calling Kotlin -> Swift/Obj-C -> Kotlin, if Kotlin
exception passes from the last to the first part, terminate.

^KT-50830
2022-01-18 08:15:13 +00:00
Svyatoslav Scherbina f7a1fa86a9 ObjCExport: introduce terminatingExceptionHandler 2022-01-18 08:15:13 +00:00
Svyatoslav Scherbina eaa6a75de4 ObjCExport: don't generate redundant exception handler for objc_release 2022-01-18 08:15:12 +00:00
Svyatoslav Scherbina cdfcffbd57 ObjCExport: make objc_release nounwind
Also replace it by an LLVM intrinsic, llvm.objc.release,
which is lowered to objc_release.

This is close to what Clang does.
2022-01-18 08:15:12 +00:00
Ilya Gorbunov 906a351a81 Regenerate standard library generated code 2022-01-17 15:38:27 +03:00
Pavel Punegov 377b6d9204 [K/N] Fix FunctionReference lowering in coercion
See fix for ^KT-50204
2022-01-17 09:33:09 +00:00
Pavel Punegov 6dac9fd2a3 [K/N][test] Improve available processors test
Pass expected number of processors as arguments. Don't check it on
linux-arm32/64 which run remotely
2022-01-17 09:32:37 +00:00
Evgeniy.Zhelenskiy e97ca2ada4 [Psi2Ir, Fir2Ir] Generate toString, hashCode, equals methods for MF VC 2022-01-14 13:51:57 +00:00
Alexander Shabalin c15b1ec001 [K/N] Remove certain pthread functions from runnable allow list
^KT-50713

Merge-request: KT-MR-5417
Merged-by: Alexander Shabalin <Alexander.Shabalin@jetbrains.com>
2022-01-14 12:20:30 +00:00
Igor Chevdar f724b5c29d [K/N][gradle][interop] Workaround for loading readonly native libs 2022-01-14 10:29:12 +05:00
Igor Chevdar 7a4ef76527 [K/N][gradle] Automatic cleaning of the class loaders map 2022-01-14 10:29:11 +05:00
Igor Chevdar bd6ea71ead [K/N][gradle][interop] Refactored ToolConfig
Added possibility to create different strategies for loading libclang
2022-01-14 10:29:10 +05:00
Igor Chevdar 650d4c78e9 [K/N][interop] A small optimization 2022-01-14 10:29:08 +05:00
Igor Chevdar 0211509795 [K/N][build] Refactored K/N tool runner 2022-01-14 10:29:07 +05:00
Igor Chevdar 8ac234fd6b [K/N][interop] Made NativeMemoryAllocator lock-free 2022-01-14 10:29:06 +05:00
Igor Chevdar 993816a400 [K/N][runtime][interop] Refactoring to run cinterop in daemon 2022-01-14 10:29:05 +05:00
Igor Chevdar 41e1fbe971 [K/N][gradle][interop] Arg to specify relative dir for libraryPath 2022-01-14 10:29:04 +05:00