Commit Graph

271 Commits

Author SHA1 Message Date
Alexander Shabalin af1f57007a https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-2-of-2 2021-05-27 17:18:55 +00:00
Alexander Shabalin e0c7cda1cf Adjust test expectations for the new MM 2021-05-27 11:39:56 +00:00
Igor Chevdar f431b4b171 [K/N][codegen] Escape analysis: increased a bit the number of iterations
This helps the algorithm to converge in more situations and increases
the number of stack allocated objects
2021-05-26 17:48:20 +05:00
Igor Chevdar 29584edcdd [K/N][codegen] Escape analysis: handled nulls more optimally
Helps with https://youtrack.jetbrains.com/issue/KT-44148
2021-05-26 17:46:22 +05:00
Igor Chevdar 426ac1281d [K/N][codegen] Removed square graph swelling during escape analysis
Helps with https://youtrack.jetbrains.com/issue/KT-44148
2021-05-26 17:46:15 +05:00
Alexander Shabalin 858e3584a9 Disable escape analysis with the new MM 2021-05-25 10:06:40 +00:00
Elena Lepilkina 2320eb8b44 [K/N] Replace invokes with combination of calls and branch instructions 2021-05-24 15:46:20 +00:00
Dmitriy Dolovov 9ab764e9fd [Native] Disable debug mode in KonanLocalTest (-g) 2021-05-24 13:23:51 +00:00
Dmitriy Dolovov 0be542fd33 [Native] Always enable assertions in KonanLocalTest 2021-05-21 14:37:30 +03:00
Elena Lepilkina 573191251e [K/N] Remove redundant update of debug info 2021-05-21 06:55:07 +00:00
Alexander Shabalin 73533e4b19 Make NoOp GC support multiple mutators 2021-05-21 06:31:09 +00:00
Alexander Shabalin eac3f507b6 Make Kotlin_initRuntimeIfNeeded switch to native state 2021-05-20 13:48:49 +00:00
Pavel Kunyavskiy 2680111125 [K/N] Fix order of lowerings to enable when on enum optimisation
EnumWhenLowering searches for pattern, which is destroyed by
BuiltinOperatorLowering, so first one should happen before second.
2021-05-20 08:34:15 +00:00
Pavel Kunyavskiy 43b91589a1 [K/N] Create lowering for optimising when, with lowered enums support 2021-05-20 08:34:14 +00:00
Pavel Kunyavskiy 1dd6dcdeef [K/N] Store ordinal value in lowered enum 2021-05-20 08:34:13 +00:00
Pavel Kunyavskiy 8a418161f6 [K/N] Support pre-creating for objects with only constant properties 2021-05-20 08:29:23 +00:00
Alexander Shabalin a02cecec20 Disable interop_cleaners_leak 2021-05-19 15:51:05 +00:00
Dmitriy Dolovov ae1590d3cf [Native] Support multiple suspend lambdas as class supertypes
Drop the backend check. Eveything else is already fixed in
https://github.com/JetBrains/kotlin/commit/3b3318ab06e8c55b1c49da5734decd59524c3d9f

^KT-46775
2021-05-19 16:09:47 +03:00
Dmitriy Dolovov 896929cb21 [Native] Support suspend functions as supertypes
^KT-46777
2021-05-19 16:09:38 +03:00
Alexander Shabalin 3388ca2536 Support ObjC blocks in the new MM 2021-05-19 07:31:12 +00:00
Svyatoslav Scherbina 570d860217 Native: deprecate SymbolName annotation 2021-05-18 17:29:00 +03:00
Igor Chevdar 3b3318ab06 [K/N][codegen] Refactored interface calls
Removed old impl for debug builds
Fixes https://youtrack.jetbrains.com/issue/KT-44547 as a side effect
2021-05-18 18:58:14 +05:00
Vladimir Ivanov 5a0f113e6d [cinterop] Fix type annotation for struct containing anonymous union … (#4289) 2021-05-18 14:34:56 +03:00
Svyatoslav Scherbina ba6c3c7fe0 Add workaround for KT-35001
Just suppress the warning.
The accident it describes is generally harmless and totally expected.
2021-05-14 20:05:30 +03:00
Svyatoslav Scherbina 48a684c024 Native: implement custom handling for LLVM diagnostics
Apply it when linking LLVM modules, because otherwise LLVM would
terminate the entire compiler process on link errors, which isn't ok,
e.g. when embedding the compiler into Gradle daemon (see KT-46358).
2021-05-14 20:05:29 +03:00
Dmitriy Novozhilov d114913cd2 Replace usages of addToStdlib.firstNotNullResult with firstNotNullOfOrNull 2021-05-14 14:30:19 +03:00
Svyatoslav Scherbina ad18d5984b Expand comment for unsupported nested generics when exporting to Swift
Add links to Swift and Kotlin issue trackers.
2021-05-12 09:06:28 +00:00
Elena Lepilkina 18462445b7 [K/N][stdlib] Fixed lookaround regexes (KT-45932) 2021-05-12 09:02:24 +00:00
Ilya Matveev e2e173b92c [K/N][New MM] Disable tests for ObjC interop 2021-05-06 14:10:22 +00:00
Ilya Matveev 4d346d3735 [K/N][New MM] Support thread state switching
Including

* Support thread state switching in codegen
* Introduce and use GCUnsafeCall annotation
* Switch thread state in C++ runtime code

Also

* Register current thread in Mark&Sweep tests
* Store MemoryState in Worker instance
* Set worker tid in WorkerInit
2021-05-06 14:10:21 +00:00
Dmitriy Dolovov 75d2e415e1 [K/N][IR] Generate missing return statement, p. 2
^KT-42832
2021-05-04 13:26:02 +03:00
Alexander Shabalin 5e456ed82b Put GC implementations into separate modules.
The mm module now compiles separately for each GC implementation.
2021-05-04 10:23:16 +00:00
Vasily Levchenko 3160fc84fa [kotlin-native][tests] kt-42208 test added. 2021-04-30 18:44:54 +00:00
Sergey Bogolepov 13464cce68 [Native] Adapt Skia interop to ClangArgs refactoring. 2021-04-30 12:07:46 +00:00
Alexander Gorshenev 887032667d [Kotlin/Native][Interop] Skia interop plugin for cinterop 2021-04-29 21:43:26 +03:00
Vladimir Ivanov 5f582ad28a [Kotlin/Native][Interop] Provide pure c wrappers over cpp for skia interop 2021-04-29 21:43:25 +03:00
Dmitriy Novozhilov dbaaf081d7 Fix warning in Kotlin/Native build 2021-04-29 16:07:24 +03:00
Vasily Levchenko 6f2af740cb [kotlin-native][tests][lldb] adds possibility to run simple lldb scenarious with simulator 2021-04-26 14:46:51 +00:00
Igor Chevdar eb1dcdb344 [K/N][IR] Fixed bug with enum companion init
Fixes https://youtrack.jetbrains.com/issue/KT-46048
2021-04-26 11:53:27 +05:00
Igor Chevdar 476b3befaf [K/N][IR] Refactored enums lowering a bit 2021-04-26 11:53:26 +05:00
sebastian.sellmair 22ea5c7de4 Demote fatal error to warning on unresolved libraries mentioned in Klib's manifest 'depends' for metadata compilation
^KT-46107
2021-04-21 20:05:55 +00:00
Svyatoslav Scherbina d531df1643 Native: add KotlinThrowable.asError() to the generated Obj-C framework
This method can be useful when overriding a throwing Kotlin method in
Swift or Obj-C. In this case, a user can call asError to wrap Kotlin exception
to (NS)Error and then throw it to Kotlin, which will unwrap it back.

^KT-45127 Fixed
2021-04-15 08:21:30 +00:00
Pavel Punegov 6aa7628808 Fixes to Kotlin/Native test directives infrastructure.
* parse files and modules separately
* fix default and support modules usage
* add another way to ignore backend (new directive)
* add new test to exclude list
2021-04-15 07:59:22 +00:00
Dmitriy Dolovov 5e392a511f [K/N][IR] Generate missing return when using Nothing-returning safe call as lambda result or function expression body
^KT-42832
2021-04-14 13:20:41 +03:00
Vasily Levchenko 62ffc0033d [kotlin-native][test][dynamic test] tests provoking generating empty structs kt-42796 2021-04-13 12:10:58 +00:00
Vasily Levchenko c68ac4f6b6 [interop][c][reverse] avoid generating empty structures for leaf packages without exportable declations
- fixes KT-42796
2021-04-13 12:10:57 +00:00
Sergey Bogolepov 9b1498abad Use runtime bitcode to get size of primitive types
As an alternative to explicitly setting type size in konan.properties or
backend code we can "ask" LLVM about it.
Unfortunately, there is no Clang/LLVM API for it,
so we use a trivial workaround:
Create dumb function in runtime code, and then extract info about
return type size using LLVM.
2021-04-08 16:51:47 +03:00
Sergey Bogolepov 15dcb36f47 Use TargetTriple in backend to simplify code. 2021-04-08 16:51:44 +03:00
Pavel Punegov afdecef112 Use minOrNull instead of deprecated min in the interop_objc_test 2021-04-08 11:57:34 +03:00
Elena Lepilkina 512010046f [K/N] Replaced sumBy with sumOf 2021-04-08 11:57:33 +03:00