Igor Chevdar
6c691b497a
[K/N] Added a benchmark on string array loop
2024-03-06 06:14:18 +00:00
Igor Chevdar
27a4cb6c12
[K/N][IR] Fixed wrong type in IR around enums
2024-03-06 05:21:32 +00:00
Igor Chevdar
17d79dafb1
[K/N][IR] Fixed wrong type in IR around ImmutableBlob
2024-03-06 05:21:31 +00:00
Igor Chevdar
faf5a7fecc
[K/N] Handle conservative type approximations in functional types
...
Sometimes FE resolves type as an intersection type which gets approximated to Nothing
(as a part of a functional type for function references), this commit tries to workaround
this by getting this type from the referenced function
2024-03-06 05:21:31 +00:00
Igor Chevdar
27fa3ebfb3
[K/N] Fallback in case turned off liveness analysis
...
#KT-65153 Fixed
2024-02-07 18:54:31 +00:00
Igor Chevdar
6c05219485
[IR][K/N] Extracted explicit var spilling phase from coroutines lowering
...
Not only does it give some flexibility but also it could be turned off
in the future (by providing trivial replacement) as a workaround
#KT-65153
2024-02-07 18:54:31 +00:00
Igor Chevdar
954eade78c
[IR][K/N] Refactored a bit SuspendFunctionLowering
2024-02-07 18:54:31 +00:00
Igor Chevdar
4af8b70f62
[K/N][IR] Skip static fields in initializers lowering
...
#KT-65010 Fixed
2024-01-31 12:22:36 +00:00
Igor Chevdar
f220074d8a
[K/N][IR] Fixed a problem with top-level fields
...
#KT-65324 Fixed
2024-01-30 14:49:34 +00:00
Igor Chevdar
006410641b
[IR][K/JS] Removed unused function
2024-01-22 09:34:42 +00:00
Igor Chevdar
978bf3d38d
[IR] Refactored a bit InlineFunctionResolver
2024-01-22 09:34:42 +00:00
Igor Chevdar
f3a807c507
[IR] Fixed a problem in FunctionInlining
...
#KT-64868 Fixed
2024-01-22 09:34:42 +00:00
Igor Chevdar
8cc9272018
[K/N] Fixed a data race during monolithic caches creation
...
For per-file caches the data race is still there, but since per-file caches are
only used for incremental compilation, it's ok to leave it as is for now (we cope
with the data race by using a separate folder for each Gradle task).
2024-01-09 08:57:43 +00:00
Igor Chevdar
aaf34c3436
[IR] Fixed a bug with local classes extraction from lambdas
...
#KT-64508 Fixed
2024-01-04 11:15:18 +00:00
Igor Chevdar
54328a1db4
[K/N][tests] Added a reproducer for #KT-64508
2024-01-04 11:15:18 +00:00
Igor Chevdar
94b35570ed
[K/N][tests] Added some tests on multi-module file initialization
2023-12-28 12:13:24 +00:00
Igor Chevdar
519c15419f
[K/N] Fixed a problem with dependencies
...
-Xinclude-library should be treated exactly as source files -
the final binary should depend on all of them.
#KT-64408 Fixed
2023-12-28 12:13:24 +00:00
Igor Chevdar
c35e026259
[K/N][tests] Moved several tests to proper location
2023-12-28 12:13:24 +00:00
Igor Chevdar
e068333021
[gradle][tests] Fixed the smoke test on K/N incremental compilation
2023-12-18 19:19:03 +00:00
Igor Chevdar
69459b056e
[IR] Correct handling of loops in liveness analysis
...
#KT-64139 Fixed
2023-12-18 12:55:51 +00:00
Igor Chevdar
7907231bf2
[box-tests] Added a reproducer for #KT-64139
2023-12-18 12:55:51 +00:00
Igor Chevdar
d0acaa4024
[gradle] Use more fine grained directory for K/N incremental compilation
...
Otherwise, two or more link tasks being executed in parallel will use the same directory
for IC caches which might lead to races during compilation
#KT-63471 Fixed
2023-12-18 09:56:09 +00:00
Igor Chevdar
1805f322f8
[K/N] Do not use LazyIr for per-file caches
...
#KT-63789 Fixed
2023-11-28 09:22:36 +00:00
Igor Chevdar
b264cf2119
[K/N] Reformat
2023-11-28 09:22:36 +00:00
Igor Chevdar
36452b5db7
[K/N] IR version of isObjCObjectType
2023-11-16 12:17:46 +00:00
Igor Chevdar
e43b232786
[K/N] Used KlibFingerprint hash instead of slow SHA-256
2023-11-14 16:06:47 +00:00
Igor Chevdar
cc69df0de6
[K/N] Optimized libraries hash computation
...
#KT-63081 Fixed
2023-11-14 16:06:47 +00:00
Igor Chevdar
141dc96067
[gradle][tests] Disabled K/N incremental compilation tests on Windows
2023-10-24 06:02:21 +00:00
Igor Chevdar
eb6db02649
Revert "[Native] Use LLVMBuildLoad2 instead of LLVMBuildLoad."
...
This reverts commit a487ec1889 .
2023-10-19 12:57:25 +00:00
Igor Chevdar
254b5b1934
Revert "[Native] Fix tailrec test."
...
This reverts commit 67c501e0b6 .
2023-10-19 12:57:24 +00:00
Igor Chevdar
d5001fb7dd
Revert "[Native] Move remaining usages for LLVMBuildLoad to LLVMBuildLoad2."
...
This reverts commit 4e66881549 .
2023-10-19 12:57:24 +00:00
Igor Chevdar
40e8552a8d
[gradle] Added a bunch of Gradle IT on K/N incremental compilation
2023-10-19 07:57:36 +00:00
Igor Chevdar
a8c6074c45
[IR] Use InlineFunctionResolver for inlinable function references
...
#KT-62313 Fixed
2023-10-12 13:34:13 +00:00
Igor Chevdar
c6470a684d
[box-tests] Added a reproducer for #KT-62313
2023-10-12 13:34:13 +00:00
Igor Chevdar
6c519488a6
[IR] Reworked K/N variables inliner hint
2023-10-11 06:27:02 +00:00
Igor Chevdar
1b30f76a78
[K/N][tests] Added a test on stepping through inline arguments
2023-10-11 06:27:02 +00:00
Igor Chevdar
2b8bcfda94
[K/N][codegen] Build trampolines for abstract fake overrides
...
#KT-61924 Fixed
2023-09-15 09:26:54 +00:00
Igor Chevdar
1df93e1611
[box-tests] Added a reproducer for #KT-61924
2023-09-15 09:26:54 +00:00
Igor Chevdar
9d2d75313b
[K/N][tests] Added a test for anonymous object in a top level inline fun
2023-09-13 09:18:26 +03:00
Igor Chevdar
b66a6fcc08
[K/N][IR] Moved local declarations names invention down the pipeline
2023-09-13 09:18:26 +03:00
Igor Chevdar
ac760cbbfb
[K/N][tests] Refactored a bit test
...
arguments of assertEquals are (expected, actual), not vice versa
2023-09-13 09:18:26 +03:00
Igor Chevdar
93dea12efe
[IR] Supported top level local classes in names inventor
...
Such classes might appear after local objects extraction from inline bodies
2023-09-13 09:18:20 +03:00
Igor Chevdar
1ff7841ac7
[K/N][IR] Renamed PreInlineLowering to TypeOfLowering
2023-09-11 18:16:25 +00:00
Igor Chevdar
8f3b9694f7
[K/N] Extracted asserts removal to a separate lowering
2023-09-11 18:16:25 +00:00
Igor Chevdar
e8ca45378b
[K/N] Moved couple of phases down the pipeline
2023-09-11 16:31:22 +00:00
Igor Chevdar
2e02ee4ec8
[K/N] Fixed a corner case in escape analysis
...
#KT-61409 Fixed
2023-08-29 16:05:13 +00:00
Igor Chevdar
9917c477e8
[K/N][linker] Name temp obj file the same as output binary
...
#KT-61270 Fixed
2023-08-21 18:06:02 +00:00
Igor Chevdar
7c67e9e08b
[tests][lldb] Added a reproducer for #KT-61131
2023-08-21 12:05:28 +00:00
Igor Chevdar
c1874d0184
[K/N][codegen] Added debug info to virtual functions trampolines
...
#KT-61131 Fixed
2023-08-21 12:05:28 +00:00
Igor Chevdar
9a719066e3
[K/N][tests] Added a reproducer for #KT-60371
2023-08-08 10:10:47 +00:00
Igor Chevdar
2f463f740f
[K/N][tests] Fixed CachesAutoBuildTest & IncrementalCompilationTest
...
In auto-cache mode, the compiler itself chooses the system cache directory,
and it is important to not pass it explicitly.
2023-08-08 10:10:47 +00:00
Igor Chevdar
aa0f0c8cb4
[K/N] Do not use '=' in file names
...
#KT-60986 Fixed
2023-08-07 12:57:17 +00:00
Igor Chevdar
5d6de2f8bf
[K/N] Fixed bug in virutal call trampolines
...
#KT-60645 Fixed
2023-07-25 05:57:31 +00:00
Igor Chevdar
58639951f6
[K/N] Refactored 2-stage splitting
2023-07-07 17:51:46 +00:00
Igor Chevdar
afdc596121
[K/N] Fix for two-stage compilation
2023-07-07 17:51:46 +00:00
Igor Chevdar
4f859a634e
[K/N] Fixed a bug in escape analysis
...
#KT-59693 Fixed
2023-07-04 09:45:48 +00:00
Igor Chevdar
5f3dad14a2
[K/N] Make -Xlazy-ir-for-caches disabled by default
2023-06-22 08:10:11 +00:00
Igor Chevdar
cc9dd48c09
[K/N] Support non-LazyIR for cached libraries
...
Use the same lazy deserialization mechanism (inline function bodies, class fields)
for both LazyIR and usual IR
2023-06-22 08:10:11 +00:00
Igor Chevdar
9e39b7ef87
[K/N] Don't try to stack-alloc arrays of negative size
...
#KT-59501 Fixed
2023-06-20 06:20:52 +00:00
Igor Chevdar
95bef03d3e
[K/N][tests] Added a reproducer for KT-59501
2023-06-20 06:20:52 +00:00
Igor Chevdar
74a97ba730
[K/N][tests] Fixed a filecheck test
2023-06-07 05:22:49 +00:00
Igor Chevdar
d9b0f2a75c
[K/N] Refactored RedundantCoercionsCleaner
...
#KT-58654 Fixed
2023-05-29 06:13:09 +00:00
Igor Chevdar
1ae0350ca5
[K/N][tests] Added some file-check tests on KT-58654
2023-05-29 06:13:09 +00:00
Igor Chevdar
55632f5df2
[K/N][runtime] Used internal isInstance
2023-05-22 12:49:58 +00:00
Igor Chevdar
d1a3752626
[K/N][tests] Fixed lldb tests on arrays
2023-05-22 12:49:58 +00:00
Igor Chevdar
39dfb9958b
[K/N][tests] Fixed some of lldb tests
2023-05-17 07:28:14 +00:00
Igor Chevdar
fe1d7c2f52
[K/N][tests] Fixed some of lldb tests
2023-05-11 16:56:40 +00:00
Igor Chevdar
2f24c6df80
[K/N] Added isSubtype intrinsic
2023-05-11 09:30:18 +00:00
Igor Chevdar
67b65ec56a
[K/N] Reformat
2023-05-11 09:30:18 +00:00
Igor Chevdar
96c142569d
[K/N] Slight devirtualization improvement
...
Make devirtualization not by an actual receiver type but rather
by an actual virtual method implementation (which sometimes can be better)
2023-05-11 09:30:18 +00:00
Igor Chevdar
1ef81c005e
[K/N][tests] Fixed a test for KT-55938
...
Used in the test cache directory should be prepared before the test
2023-05-10 13:12:09 +00:00
Igor Chevdar
f5478bda3d
Handle recently added property to K2NativeCompilerArguments
2023-05-10 11:05:06 +00:00
Igor Chevdar
c129e91bd6
[K/N][gradle] Supported IC for caches
2023-05-10 08:37:32 +00:00
Igor Chevdar
9fcb4ece64
[K/N][tests] Added a bunch of tests on incremental compilation
2023-05-10 08:37:32 +00:00
Igor Chevdar
e4f30589a4
[K/N] Incremental compilation of per-file caches
2023-05-10 08:37:32 +00:00
Igor Chevdar
74864ba1d0
[K/N][codegen] Trampoline to call virtual functions to reduce dependencies coupling
2023-05-10 08:37:32 +00:00
Igor Chevdar
281296fc2a
[K/N] Rely on file fqName & path instead of unstable index
2023-05-10 08:37:32 +00:00
Igor Chevdar
f90db20512
[K/N][caches] Added klib hash computing and storing
2023-05-10 08:37:32 +00:00
Igor Chevdar
a8135c60ce
[K/N] Turn on optimistic escape analysis
...
For new MM (with tracing GC), it is safe to turn it on
2023-05-10 05:51:52 +00:00
Igor Chevdar
b6030b3517
[K/N] Devirtualization: virtual calls from external world fix
...
The fix deals with the situation where a virtual function potentially from
the external world (because of the receiver) returns a final type (if it isn't final,
then it's conservatively assumed that no devirtualization could be done on it).
#KT-57791 Fixed
2023-05-09 05:25:11 +00:00
Igor Chevdar
197cba35eb
[K/N] Added couple of reproducers for KT-57791
2023-05-09 05:25:11 +00:00
Igor Chevdar
3e0196da89
[K/N][IR] Used liveness analysis in the coroutines lowering
...
Liveness analysis results are used for spilling variables before
suspending a coroutine
2023-04-24 09:57:16 +03:00
Igor Chevdar
4e661a6337
[IR] Liveness analysis
...
Compute actually used variables for specified IR nodes
2023-04-24 09:57:06 +03:00
Igor Chevdar
6a79163205
[K/N][IR] Extracted a common util function
2023-04-24 09:36:43 +03:00
Igor Chevdar
cf58e5ff9f
[K/N] Extracted some common BitSet utils
2023-04-24 09:36:43 +03:00
Igor Chevdar
ab892037df
[K/N] Propagate IrMessageLogger to subcompilations
...
Otherwise, some warnings/errors (like from IrLinker) might be lost
2023-04-11 07:08:41 +00:00
Igor Chevdar
7db0bf0f3c
[K/N] Propagate -Xlazy-ir-for-caches to subcompilations
2023-04-11 07:08:40 +00:00
Igor Chevdar
e5523c196e
[K/N][codegen] Removed a thread unsafe optimization
...
It's not that needed anyway (according to the profile logs).
2023-03-10 11:05:55 +00:00
Igor Chevdar
ea7c851748
[K/N][IR][codegen] Fixed a number of thread safety problems
2023-03-10 11:05:55 +00:00
Igor Chevdar
f442936320
[K/N] Build per-file caches in parallel
2023-03-10 11:05:54 +00:00
Igor Chevdar
7f0a4ad737
[K/N][IR] Reworked saving inline function bodies for cross-file inlining
...
#KT-57053 Fixed
#KT-57029 Fixed
2023-03-08 06:48:52 +00:00
Igor Chevdar
315d9089b0
[box-tests] Another version of reproducer for KT-56965
2023-03-08 06:48:52 +00:00
Igor Chevdar
99ec3215d9
[box-tests] Added a reproducer for KT-57053
2023-03-08 06:48:51 +00:00
Igor Chevdar
a92c53daec
[K/N][IR] Do not save local inline functions before closure building
...
#KT-56965 Fixed
2023-03-01 08:09:52 +00:00
Igor Chevdar
c038bbde08
[box-tests] Added a reproducer for KT-56965
2023-03-01 08:09:51 +00:00
Igor Chevdar
0f384f5878
[K/N][IR] Workaround for off-scope type parameters
...
#KT-56500 Fixed
2023-02-23 15:32:25 +00:00
Igor Chevdar
5d3b61364a
Added a test for KT-56500
2023-02-23 15:32:25 +00:00
Igor Chevdar
564b40f05d
[K/N] Fixed resolve order of compiler caches
...
#KT-56611 Fixed
2023-02-15 07:06:05 +00:00
Igor Chevdar
951ebf4082
[K/N] Added a test for KT-56611
2023-02-15 07:06:05 +00:00
Igor Chevdar
ba172358d8
[K/N] Option to specify IR validation severity
2023-02-14 07:30:47 +00:00