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
Igor Chevdar
a14f3c8cc2
[K/N] Fixed wrong initializer call extraction for interop-visible functions
...
#KT-56521 Fixed
2023-02-10 15:45:11 +00:00
Igor Chevdar
2281d9700d
[K/N] Added a test for #KT-56521
2023-02-10 15:45:10 +00:00
Igor Chevdar
633d182846
[gradle] Do not pass cache-related options for optimized compilation
...
#KT-56443 Fixed
2023-02-08 18:36:35 +00:00
Igor Chevdar
12d0b1e846
[K/N][codegen] Fixed wrong arguments evaluation order for IrSetField
...
#KT-56326 Fixed
2023-02-08 06:56:09 +00:00
Igor Chevdar
32ce254001
[K/N] Added a filecheck test on suspend lambdas tail calls
2023-02-03 11:14:54 +00:00
Igor Chevdar
707fbe7a6c
[K/N] Follow-up for the fix for #KT-55869
2023-02-03 11:14:54 +00:00
Igor Chevdar
c871ccc4dd
[K/N][IR] Turned off partial tail call optimization
...
It is difficult to implement properly tail calls for a real coroutine (when there
are other non tail calls), because of continuation interception semantics. And the
benefits aren't clear at this point, so let's turn it off for now.
2023-02-03 11:14:53 +00:00
Igor Chevdar
716853dd00
[K/N][IR] Tail call optimization for suspend lambdas
2023-02-03 11:14:53 +00:00
Igor Chevdar
29b7a8e435
[K/N] Supported ..< operator for BCE optimization
2023-01-26 12:54:19 +00:00
Igor Chevdar
9d911247fa
[K/N] Wrap continuation with ContinuationImpl on callable references
...
#KT-55869
2023-01-25 15:55:16 +00:00
Igor Chevdar
bd24fc4f0c
[IR] Don't wrap KotlinExceptionWithAttachments
...
#KT-56015 Fixed
2023-01-18 15:47:48 +00:00
Igor Chevdar
df778b8a6e
[K/N] Pass transitive dependencies for forked caching compilation
2023-01-12 19:59:37 +00:00
Igor Chevdar
ebaa09a710
[K/N][gradle] Fixed some gradle integration tests
2023-01-11 14:13:05 +00:00
Igor Chevdar
84d9afafd2
[gradle] Gradle property to switch between caching orchestration machineries
...
This is needed only for the translation period between old (Gradle) machinery
and the one (implemented directly in the K/N compiler)
2023-01-11 14:13:05 +00:00
Igor Chevdar
9aa287257b
[K/N] Refactored a bit configuration setup
2023-01-11 14:13:04 +00:00
Igor Chevdar
ae56f2686a
[K/N][tests] Extracted common utility functions
2023-01-11 14:13:03 +00:00
Igor Chevdar
758e9ea9ae
[K/N][tests] Added a couple of tests on caches
2023-01-11 14:13:03 +00:00
Igor Chevdar
342236491a
[K/N] Supported different runtime options for caches
2023-01-11 14:13:02 +00:00
Igor Chevdar
73e10b17c6
[K/N][gradle] Set klib version from gradle
2023-01-11 14:13:02 +00:00
Igor Chevdar
9c86532eb0
[K/N] Implemented cache orchestration machinery in the compiler
2023-01-11 14:13:01 +00:00
Igor Chevdar
c9ba9b995e
[K/N] Fixed a dependency tracking bug
2022-12-21 15:59:20 +00:00
Igor Chevdar
04fcf25ae0
[K/N] Merged CachedLibraries.Dependency into DependenciesTracker
2022-12-20 14:24:55 +00:00
Igor Chevdar
c1bc6682fa
[K/N] Merged two ways of overriding llvm globals
2022-12-20 14:24:55 +00:00
Igor Chevdar
9732100764
[K/N][IR][codegen] Introduced DependenciesTracker
2022-12-20 14:24:54 +00:00
Igor Chevdar
c88ac7cc86
[K/N][IR][codegen] Build per-file dependencies for caches
2022-12-20 14:24:54 +00:00
Igor Chevdar
a058fcb628
[K/N][runtime] Do not export ImmutableBlob type info
...
It's not used by the native runtime
2022-12-20 14:24:54 +00:00
Igor Chevdar
0e4e53786c
[K/N] Fixed a problem with built coroutine visibility
...
#KT-55494 Fixed
2022-12-16 18:32:43 +00:00