Commit Graph

85921 Commits

Author SHA1 Message Date
Ilmir Usmanov 1cdae75dc3 Document coroutines codegen: debug 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 995062cb19 Document coroutines codegen: callable references
returning inline classes
2021-09-15 22:28:32 +02:00
Ilmir Usmanov fce06305b9 Document coroutines codegen: inliner part 3: returning inline classes
Update the information, mention, that there are two markers, not just
one
2021-09-15 22:28:32 +02:00
Ilmir Usmanov 7d41451fba Document coroutines codegen: inliner part 3: minor grammar fixes 2021-09-15 22:28:32 +02:00
Ilmir Usmanov a736d4fef1 Document coroutines codegen: callable references 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 3276ef6cf8 Document coroutines codegen: Returning Inline Classes 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 25af290266 Document coroutines codegen: inliner part 3: crossroutines 2021-09-15 22:28:32 +02:00
Ilmir Usmanov ddaab2c2bb Document coroutines codegen: inliner part 2 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 771b0c006f Document coroutines codegen: inliner part 1 2021-09-15 22:28:32 +02:00
Ilmir Usmanov e2c5f9d245 Document coroutines codegen: functions 2021-09-15 22:28:32 +02:00
Ilmir Usmanov a8aac955d9 Document coroutines codegen: split long lines 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 7263b6e5d6 Document coroutines codegen: rest of suspend lambda 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 0814c5cc93 Document coroutines codegen: superclasses 2021-09-15 22:28:32 +02:00
Ilmir Usmanov bfd0291572 Document coroutines codegen: interception 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 8b604b8ce1 Document coroutines codegen: intrinsics part 2 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 611c1b1a38 Document coroutines codegen: intrinsics 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 0943a31675 Document coroutines codegen: spilling 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 57e69202e8 Document coroutines codegen: resume with exception 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 7e047ac96f Document coroutines codegen: resume with result 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 355b36ead9 Document coroutines codegen: suspend function views 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 48fb31080e Document coroutines codegen: CPS 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 307e01e6b6 Document coroutines codegen: suspend markers: JS & Native 2021-09-15 22:28:32 +02:00
Ilmir Usmanov f7cf5f435f Document coroutines codegen: suspend markers 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 1d7a661624 Document coroutines codegen: state-machine 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 5fd08b3ee5 Document coroutines codegen: simple lambda example 2021-09-15 22:28:32 +02:00
Ilmir Usmanov 25edda02f4 Document coroutines codegen: introduction 2021-09-15 22:28:32 +02:00
Roman Golyshev 642591770e [FIR] Calculate lazy initializers in properties with backing fields
More tests should be added in the future
2021-09-15 18:33:43 +00:00
Roman Golyshev bb2b0107c6 [FIR] Render backing fields by FirRenderer 2021-09-15 18:33:43 +00:00
pyos 36b02082a6 FIR: try to load as Java class if KotlinClassFinder returns null
The IDE implementation of KotlinClassFinder does not always return the
class file contents.
2021-09-15 19:15:17 +03:00
Abduqodiri Qurbonzoda f1befc0108 Format Other_Uppercase/Other_Lowercase property as an identifier in docs 2021-09-15 17:31:52 +03:00
Mikhail Glukhikh b5e37cb201 Unmute now passing FIR visualizer test #KT-44811 Fixed 2021-09-15 17:11:56 +03:00
Dmitriy Novozhilov 37b427c656 [FIR] Combine type attributes in typealias expansion
^KT-48651 Fixed
2021-09-15 17:11:31 +03:00
Dmitriy Novozhilov 0f6b6dbca3 [FIR] Cleanup and reorganize utils in :compiler:fir:checkers 2021-09-15 17:11:31 +03:00
Dmitriy Novozhilov 9d09b9605f [FIR] Cleanup and reorganize utils in :compiler:fir:java 2021-09-15 17:11:30 +03:00
Dmitriy Novozhilov 7a347b11e3 [FIR] Use StandardClassIds instead of StandardNames everywhere it's possible 2021-09-15 17:11:30 +03:00
Dmitriy Novozhilov 5c2a3bb78e [FIR] Move duplicating names and classIds to StandardClassIds 2021-09-15 17:11:29 +03:00
Dmitriy Novozhilov 4793674eae [FIR] Move all CFA utils to separate package
Root org.jetbrains.kotlin.fir.analysis.cfa now contains only specific
  control flow analyzers
2021-09-15 17:11:28 +03:00
Dmitriy Novozhilov bce62430ce [FIR] Split CfaUtils to multiple files 2021-09-15 17:11:27 +03:00
Elena Lepilkina bdb61ec5d7 [K/N] Run inline property accessors later to inline all cases including devirtualized 2021-09-15 12:29:03 +00:00
Svyatoslav Scherbina b32ab48596 Native: add tests for autorelease optimization in ObjCExport
The compiler should do its best to avoid putting objects to autorelease
pools.
2021-09-15 11:48:17 +00:00
Svyatoslav Scherbina 8c923f6504 Native: optimize autorelease in ObjCExport calls to Kotlin
Use objc_autoreleaseReturnValue to eliminate the autorelease operation
for return value if the caller is optimized (usually it is).

This required moving autorelease operation from Kotlin -> ObjC ref
conversion to bridge epilogue.

To achieve this, also make ObjCExport Kotlin ref -> ObjC ref dynamic
converters return retained reference (instead of autoreleased one).
To reflect this, rename the corresponding entities in the code.
2021-09-15 11:48:16 +00:00
Svyatoslav Scherbina 75a3070067 Native: implement autoreleaseAndRet for ObjCExportCodeGenerator
This operation is equivalent to "autorelease and then return",
but it supports Obj-C runtime autorelease optimization for return value:
if the caller is optimized (which is usually true), then no autorelease
will happen at runtime.
2021-09-15 11:48:15 +00:00
Svyatoslav Scherbina e00fd6b9b3 Native: allow subclassing FunctionGenerationContext
This allows one to have domain-specific generator without polluting
the global namespace.

Also introduce builders and do minor refactoring.
2021-09-15 11:48:15 +00:00
Svyatoslav Scherbina be1acc8103 Native: eliminate autorelease in ObjCExport set/getAssociatedTypeInfo 2021-09-15 11:48:14 +00:00
pyos 8724bc9525 Add test for KT-48478 2021-09-15 13:23:11 +02:00
pyos 72752b64c5 Revert "JVM_IR: assume function reference adapters are tail-call"
This reverts commit 537ce05bc9.

 #KT-48478 Fixed
2021-09-15 13:23:11 +02:00
pyos 0864f9faf8 JVM_IR: mark inline lambda functions with a special origin
Keeping the origin as LOCAL_FUNCTION_FOR_LAMBDA was a mistake as this
tells codegen nothing. Changing the origin in allows, for example,
removing the hack that detaches inline lambdas from the IR tree before
verification and codegen, or treating inline lambdas and inline
anonymous functions the same way.

This includes fake functions created for inline callable references.

 #KT-48319 Fixed
 #KT-47279 Fixed?
2021-09-15 13:23:11 +02:00
pyos 6b58c3d035 JVM_IR: mark inlined callable references with a different origin
Makes them easier to find.
2021-09-15 13:23:11 +02:00
Ilya Kirillov 81336820e2 FIR IDE: regenerate diagnostics 2021-09-15 11:32:59 +02:00
Ilya Kirillov 585eb9a4f0 FIR IDE: regenerate analysis api tests 2021-09-15 11:32:49 +02:00