Commit Graph

13 Commits

Author SHA1 Message Date
Troels Bjerre Lund 4f77434ea5 [K/N] Remove LLVM coverage
The -Xcoverage feature has not worked and has been disabled for a while.
This fix removes it, and all of its uses.


Co-authored-by: Troels Lund <troels@google.com>


Merge-request: KOTLIN-MR-821
Merged-by: Alexander Shabalin <alexander.shabalin@jetbrains.com>
2023-12-06 14:07:16 +00:00
Troels Bjerre Lund b059754f64 [K/N] LLVM: Transition to opaque pointers 2023-12-05 15:26:27 +00:00
Troels Bjerre Lund c1f72de6e5 [K/N] LLVM: Add missing opaque pointer API
LLVMConstGEP2 and LLVMConstInBoundsGEP2 were forward declared in
LLVM-11, but not implemented until LLVM-14. This patch adds these along
with the missing LLVMAddAlias2. All three implementations are copied
from llvm branch release/14.x
2023-12-05 15:26:27 +00:00
Alexander Shabalin 4922223bec [K/N] Refactor :kotlin-native:dependencies
Move K/N dependencies handling logic into gradle plugins:

`NativeDependenciesDownloader` is instantiated in
`:kotlin-native:dependencies` and provides a single configuration that
contains all directories with the dependencies. The configuration has
a variant for each target.

`NativeDependencies` is instantiated by projects that require native
dependencies (i.e. previously used to depend on
`:kotlin-native:dependencies:update`). This plugin creates a configuration
that by default depends on `:kotlin-native:dependencies`. Its extension
provides `llvmDependency`, `libffiDependency`, `hostPlatformDependency`,
`targetDependency()` to depend on the parts needed for the project and
provides accessors `llvmPath`, `libffiPath`, `hostPlatform` that are
safe to use during configuration time, but which do not automatically
resolve those dependencies.

`llvmDir`, `*LibffiDir` properties on `:kotlin-native` are removed
completely, as their use is replaced by `NativeDependencies`. As a
consequence, `evaluationDependsOn(":kotlin-native:dependencies")` is
also gone.

All direct dependencies on `:kotlin-native:dependencies:update` are
replaced with dependencies on specific parts via `NativeDependencies`
2023-10-18 10:53:12 +00:00
Alexander.Likhachev 862f8f235c [Build] Bump Gradle version to 8.1.1
#KTI-1221 In Progress
2023-06-22 15:16:08 +00:00
Pavel Punegov 395e3e0f81 [K/N][build] Composite build with build.tools-conventions plugin
Adds convention plugin instead of sources inclusion
inside the buildSrc, effectively reducing the amount
of the code to be compiled in buildSrc.

Merge-request: KT-MR-8898
2023-02-27 10:48:26 +00:00
Pavel Punegov 9ea299b0e7 [K/N][build] Fix Native plugin: remove archive file before adding
Merge-request: KT-MR-8783
Merged-by: Pavel Punegov <Pavel.Punegov@jetbrains.com>
2023-02-17 11:28:41 +00:00
Sergey Bogolepov 637258e175 [K/N] Add LLVM C wrappers for -time-passes API. 2023-02-10 10:20:29 +00:00
Mads Ager d87ed38cbf [Kotlin/Native] Avoid jni overhead when optimizing bitcode.
The phase to eliminate redundant function prologue safepoints
was written in Kotlin which meant that it was performing a lot
of jni calls. Moving the simple optimization to C code speeds
things up dramatically.

On a large project this reduces the time for this phase from
11.8 seconds to 1.4 seconds.
2022-12-19 11:13:24 +00:00
Pavel Kunyavskiy 51651aef74 [K/N] Basic support of thread sanitizer for generated code 2022-07-29 11:15:18 +00:00
Pavel Kunyavskiy f4ea929d8e [K/N] Better removing of extra safepoints 2022-06-17 06:42:28 +00:00
Sergey Bogolepov 30006b5143 [K/N] Add CMakeLists.txt to simplify work with libllvmext
Also moved functions that have nothing to do with code coverage
into a separate file.
2022-03-29 09:42:46 +00:00
Sergey Bogolepov 7dc48b3837 [K/N] Rename llvmCoverageMappingC to libllvmext
This subproject covers much wider scope now than code coverage,
so it makes sense to rename it to reflex that.
2022-03-29 09:42:45 +00:00