Commit Graph
100 Commits
Author SHA1 Message Date
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
Igor Chevdar 4fd063bd4b [K/N][driver] Some tweaks in IrValidator setup 2023-02-14 07:30:46 +00:00
Igor Chevdar 95c4ded9d0 [K/N][IR] Fixed wrong IrCall type (to fix IR validation) 2023-02-14 07:30:46 +00:00
Igor Chevdar 0655b02097 [IR] Proper error message for IR validation 2023-02-14 07:30:46 +00:00
Igor Chevdar 1e8cd91e0f [IR] Fixed wrong IrCall type (to fix IR validation) 2023-02-14 07:30:45 +00:00
Igor Chevdar 18e213426c [IR] Fixed wrong IrConst type (to fix IR validation) 2023-02-14 07:30:45 +00:00
Igor Chevdar 3dad0cfb05 [IR] Fixed wrong IrCall type (to fix IR validation) 2023-02-14 07:30:45 +00:00
Igor Chevdar 5e6aa649ed [IR] Extracted implicitCastIfNeeded to common utils 2023-02-14 07:30:44 +00:00
Igor Chevdar 750bb5c8c4 [K/N][IR] Added proper parent 2023-02-14 07:30:44 +00:00
Igor Chevdar ea2ce2b52e [IR] Fixed wrong parents 2023-02-14 07:30:44 +00:00