Svyatoslav Scherbina
a4b9e2502c
Native: don't use frame pointer in leaf functions on ARM64 targets
...
Clang 8 and Clang 11 both have this optimization, but it was moved
from LLVM to Clang:
https://github.com/llvm/llvm-project/compare/c5b890e922432bd80a5e3c6d82994ef4cdc41900...a0aa58dad53f2e5e90a9b7079ec31bf7c3144fc7
So Kotlin/Native compiler now has to enable this optimization explicitly.
2021-04-06 08:44:12 +00:00
Svyatoslav Scherbina
2b6d8ab975
Native: replace no-frame-pointer-elim* LLVM attributes by frame-pointer
...
LLVM 8 and LLVM 11 understand both, but *frame-pointer-elim*
are obscure and obsolete.
2021-04-06 08:44:12 +00:00
Alexander Shabalin
451fc8e9df
Fix enum isFrozen for wasm
2021-04-05 14:07:29 +00:00
Vladimir Ivanov
c5f06d6e3f
Patch expectedLazyNoGenerics.h to corresond with new test ( #4271 )
2021-04-02 19:38:22 +03:00
Alexander Shabalin
71397a06fb
Add Stop-the-World Mark & Sweep GC for single-threaded programs.
...
GC implementation for testing purposes
* Only works for a single mutator
* Runs on the same thread as the mutator
* Runs every nth checkpoint and after every m bytes are allocated
* Runs finalizers after sweeping on the mutator thread.
2021-04-02 12:13:44 +00:00
Vladimir Ivanov
b87a943efd
[Native] Add test for -Xexport-kdoc ( #4249 )
...
(*) Fix exported kdoc indentation and extra blank lines
2021-04-02 12:10:09 +03:00
Dmitriy Dolovov
003d07b51e
[K/N][IR] Ref to expect property in actual declaration is not remapped
...
^KT-36880
2021-04-02 09:35:46 +03:00
Alexander Shabalin
e5ea7f5b4e
Do not freeze enum in new MM
2021-04-01 08:41:08 +00:00
Ilya Goncharov
03fed85447
[IR] Change copy method into shallowCopy in Native
2021-03-31 20:14:56 +03:00
Svyatoslav Scherbina
107129679e
Native: fix interop_objc_tests after recent frontend change
...
b60056f11e raises a warning to an error,
fixing this error here.
2021-03-30 15:32:46 +00:00
Ting-Yuan Huang
dba127a4d8
Add AnalysisHandlerExtension extension point for K2Native
...
frontendPhase is moved out of back phases to allow frontend only mode.
AnalysisHandlerExtension allows compiler plugins to:
1. Intercept and override the default analysis.
2. Utilize the compiler infrastructure to do custom analysis.
A well know plugin on the JVM platform is KAPT.
2021-03-29 20:41:06 +03:00
Alexander Shabalin
770401801b
Implement freezing in the new MM
...
Currently, it uses suboptimal storage for the freeze bit. This'll be revised later when we finalize stack objects handling in the new MM.
2021-03-26 15:00:14 +00:00
Ilya Matveev
e56ac775ca
[K/N][tests] Do not propagate user.dir property to compiler/cinterop
...
In a Gradle process, the user.dir property is set to the directory
where the build was started. By default, if we start a child process
via project.javaexec, Gradle sets its working directory to the
directory of the current project. But passing Gradle's value of user.dir
to that process overrides this setting.
This makes tools started in a such way sensitive to directory the build
is started from. Thus a test using relative paths may fail if it is
started from a wrong directory.
This patch fixes this issue for Kotlin/Native tests.
2021-03-26 12:38:27 +03:00
Igor Chevdar
a618791ff0
[K/N][IR] Removed unnecessary hack
...
The hack has been rendered redundant due to the recent fixes in psi2ir
2021-03-24 20:42:40 +05:00
Dmitriy Dolovov
dfd3b54ee4
Native: Handle integer overflow on div/rem of Int.MIN_VALUE by -1
...
^KT-45136
2021-03-24 09:55:46 +03:00
Igor Chevdar
752be27557
[K/N][tests] Disabled failing test for now
2021-03-23 11:57:56 +05:00
Svyatoslav Scherbina
818659f2bb
Native: fix bug in KType support affecting only stdlib
...
Don't use IrClass.declarations to find enum entries during lowerings,
because this enum might already be lowered and thus have all entries
removed.
2021-03-23 09:45:40 +03:00
Svyatoslav Scherbina
2a7ccb11e8
Native compiler: remove unused dependency on common/src/hash
2021-03-22 16:03:29 +00:00
Svyatoslav Scherbina
a471bbc185
Native compiler: remove unused hashing code
...
It was used to compute hashes for class names, but this is no longer
required after c6ac807034 .
2021-03-22 16:03:28 +00:00
Svyatoslav Scherbina
39d748dbbb
Native compiler: replace C++ CityHash64 impl by Kotlin one
2021-03-22 16:03:28 +00:00
Sergey Bogolepov
ec23ebd1c5
Fix workerAutoreleasePool test on macos_arm64 using __autoreleasing
...
Also merge `createAutorelease` and `create. There is no need in
such separation since it was originally added to prevent
optimization `result`'s lifetime.
Turned out, it was still happening on Apple Silicon,
and only addition of __autoreleasing attribute solves the problem.
2021-03-22 14:02:39 +03:00
Sergey Bogolepov
af3ff6c4d6
Revert "Revert "Remove unused protobuf from backend.native""
...
This reverts commit c4182c82
2021-03-19 15:24:44 +03:00
Sergey Bogolepov
bba82c0d60
Revert "Revert "Remove obsolete bc.frontend module""
...
This reverts commit e7a385f9
2021-03-19 15:24:43 +03:00
Vasily Levchenko
b3ae30fdea
[llvm][context util] make error more readable
2021-03-19 08:04:00 +00:00
Nikolay Krasko
e7a385f9da
Revert "Remove obsolete bc.frontend module"
...
This reverts commit b48a42a5
2021-03-17 20:40:00 +03:00
Nikolay Krasko
c4182c8269
Revert "Remove unused protobuf from backend.native"
...
This reverts commit 7a526a85
2021-03-17 20:39:35 +03:00
Sergey Bogolepov
7a526a852f
Remove unused protobuf from backend.native
2021-03-17 13:44:05 +00:00
Sergey Bogolepov
b48a42a5a6
Remove obsolete bc.frontend module
2021-03-17 13:44:04 +00:00
Igor Chevdar
c37f8ba708
[IR][cache] Fix for https://youtrack.jetbrains.com/issue/KT-44764
...
The .konanLibrary is cached for each declaration for performance purposes, but it is only ok to do it
after IR has been lowered to its final state (or at least when declarations aren't being moved around),
so the fix respects that by only taking .konanLibrary of a IrFile (it is assumed that files stay on their place
during entire backend lowering procedure).
(cherry picked from commit e021138368b48e306ba99a96f47d93ecbe039f4d)
2021-03-15 15:54:51 +03:00
Alexander Udalov
c56f719dcc
Fix/suppress some warnings
...
(cherry picked from commit d8a43c216925b3a9e1475b786978436835a57927)
2021-03-15 15:54:50 +03:00
Igor Chevdar
c5249ac714
Disposed target data
...
(cherry picked from commit 250be87acf66d5c780fb593f46da3540a536e049)
2021-03-15 15:54:49 +03:00
Vladimir Ivanov
ba50a8275c
Add test for [KT-3706]
...
Issue is already fixed by metadata-based cinterop
(cherry picked from commit fd4f5b2c07ebdc431d6243ac087f911ee30e88ca)
2021-03-15 15:54:48 +03:00
Igor Chevdar
6608ca5795
[K/N][IR] Fixed bug with parents setting
...
Fixes IR_VALIDATION warning as a side effect
2021-03-10 21:29:11 +05:00
Igor Chevdar
f9f948fea6
[IR] Fixed problems with nested inline classes
...
Fixes https://youtrack.jetbrains.com/issue/KT-45139 as well
(cherry picked from commit 44916e39bfa69325a9ab73cb4533bd2612fb4e56)
2021-03-09 20:19:34 +00:00
Florian Kistner
bd614aba0b
Retain typed generics in ObjC export stubs ( #4727 )
...
* Add ObjC export test with disabled generics
* Retain typed generics in ObjC export stubs
* Introduce ObjC variance enum to decouple stubs from Kotlin variance
(cherry picked from commit 4d7c78b952a467ca3318c8c49d36b768fdc1ef9c)
2021-03-09 20:19:31 +00:00
Vladimir Ivanov
fd02802028
[Native] Export KDoc into generated native header
2021-03-09 16:50:23 +03:00
Alexander Udalov
566f97ae3e
JVM IR: remove dependency of 'backend.jvm' on 'psi2ir', 'ir.serialization.jvm'
...
Add a new module 'backend.jvm.entrypoint' which depends on psi2ir and
contains code that runs psi2ir + JVM IR backend with serialization
implementations.
Hopefully this will allow to compile these modules in parallel and
reduce the build time.
2021-03-05 20:46:33 +01:00
Alexander Udalov
f332192de8
IR: remove SourceManager, make PsiSourceManager a singleton
2021-03-05 20:46:33 +01:00
Svyatoslav Scherbina
27904c0fb9
Native compiler source: replace inline classes by value classes
...
The former are deprecated.
2021-03-05 12:15:22 +00:00
Svyatoslav Scherbina
b45de517c4
Native stdlib build: fix using OptionalExpectation in Interop/Runtime
...
Current build for kotlin-native/Interop/Runtime sources is not truly
MPP, so explicit -Xcommon-sources flags are required for the compiler
to allow using OptionalExpectation annotations.
2021-03-05 12:15:22 +00:00
Abduqodiri Qurbonzoda
a1be20d359
Add String case conversion tests
...
(cherry picked from commit 103499280c40767298eabd534d421d6e3c695c1e)
2021-03-02 17:11:24 +00:00
Abduqodiri Qurbonzoda
9592422b28
Add Char case conversion tests
...
(cherry picked from commit 6e28726c31d41a664e9e3d31c7370629d8b279a2)
2021-03-02 17:11:24 +00:00
Abduqodiri Qurbonzoda
63897b5aca
Update Unicode version in Char and String case conversion functions #KT-45213
...
(cherry picked from commit 25b0dac947cb55f842b8e503351f4ebd2064628c)
2021-03-02 17:11:23 +00:00
SvyatoslavScherbina
7bfcf815ba
Add missing DisposeStablePointer calls to produce_dynamic test
...
(cherry picked from commit 65109f68622ca6371511d7d36167197fa7f9003c)
2021-03-02 17:11:21 +00:00
Igor Chevdar
10e79bff8b
[IR] Fixed bug with wrong init order of a enum's entries
...
This fixes https://youtrack.jetbrains.com/issue/KT-38540
(cherry picked from commit d031526a6e1a618597898dd6beadb04eed74b478)
2021-03-02 17:11:20 +00:00
Igor Chevdar
31835f1921
[IR] Reworked adapted references building + test
...
As a side effect, this fixes https://youtrack.jetbrains.com/issue/KT-43887
(cherry picked from commit 387c09e7aed7666f5a178b2ac342fb17ed3cdda3)
2021-03-02 17:11:19 +00:00
Stanislav Erokhin
f77ba914c7
[MERGE] Kotlin/Native history merged into kotlin/master
2021-02-26 15:30:58 +01:00
Vasily Levchenko
905c0c3dd3
[build] version of kotlin native stored in resouces
2021-02-26 12:51:51 +01:00
Vasily Levchenko
bdc87edfd0
[build] cache repository fix
2021-02-26 12:51:51 +01:00
Alexander Udalov
dbce28053c
IR: move frontend-dependent code into implementations in psi2ir
2021-02-26 11:49:28 +01:00