Ilmir Usmanov
755b92b0e9
Document coroutines codegen. Remove mentions of experimental coroutines
2021-09-15 22:28:32 +02:00
Ilmir Usmanov
4d1545d522
More minor changes
2021-09-15 22:28:32 +02:00
Ilmir Usmanov
6a150fffe6
Minor spelling changes
2021-09-15 22:28:32 +02:00
Ilmir Usmanov
de3ffc4a89
Remove obsolete FIXME
2021-09-15 22:28:32 +02:00
Ilmir Usmanov
0372d9050a
Clarify tail-call optimization for functions returning Unit
...
Review fixes.
2021-09-15 22:28:32 +02:00
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
Alexander Udalov
e857966edb
JVM: remove support for disabling NoConstantValueAttributeForNonConstVals
...
This feature is enabled by default since 1.4, which is the earliest
language version supported by Kotlin at this moment.
2021-09-14 22:29:12 +02:00
Dmitriy Novozhilov
70e8d23d6b
Fix new warnings in project code
2021-09-12 16:19:33 +03:00
Ivan Kochurkin
8cdb79f969
Move JvmNames, JvmFieldApplicabilityProblem to common.jvm module
2021-09-10 00:49:10 +03:00
Ivan Kochurkin
2baed77598
[FIR] Add JVM_SYNTHETIC_ON_DELEGATE diagnostic
...
Extract JVM names to common JvmNames
2021-09-10 00:49:03 +03:00
Dmitry Petrov
e28d4a1877
JVM_IR allow remapped variables in inplace arguments transformation
2021-09-07 19:46:03 +03:00
Georgy Bronnikov
bf62e98a1a
JVM_IR: protect LookupTracker use by a lock
2021-09-06 23:39:12 +03:00
Alexander Udalov
8cb9a5ff67
Slightly cleanup coroutine codegen and utilities
...
Reformat, fix inspections, remove some minor leftovers after dropping
experimentail coroutines.
2021-09-02 22:11:22 +02:00
Alexander Udalov
0a10cec579
Remove obsolete -X compiler arguments for JVM backend
...
-Xno-exception-on-explicit-equals-for-boxed-null
-Xstrict-java-nullability-assertions
-Xuse-old-spilled-var-type-analysis
-Xpolymorphic-signature
2021-09-02 22:11:22 +02:00
Alexander Udalov
1864716c83
Remove -Xnormalize-constructor-calls
...
Constructor call normalization is enabled by default since 1.3.
2021-09-02 22:11:22 +02:00
Mikhael Bogdanov
cb7a59ea0e
Small optimization
2021-09-01 14:03:57 +00:00
Mikhael Bogdanov
f9b5414453
Calculate string encoding size more precisely
2021-09-01 14:03:56 +00:00
Mikhael Bogdanov
19474ee30f
Support large strings in indy-with-constants concatenation
...
#KT-47917 Fixed
2021-09-01 14:03:56 +00:00
Mikhael Bogdanov
d2d3708827
Refactor a bit StringConcatGenerator class
2021-09-01 14:03:55 +00:00
Dmitry Petrov
1c1b9547c1
JVM_IR KT-48435 use Java-like counter loop when possible
2021-08-31 16:39:25 +03:00
pyos
5e4f022c59
JVM_IR: use nullability when boxing/unboxing inline class types
...
Given inline class V(Any?), a coercion from (Object, V) to (Object, V?)
is boxing.
In theory, the same issue in the old backend can be fixed by making
`KotlinTypeMapper.mapUnderlyingTypeOfInlineClassType` use
`computeExpandedTypeForInlineClass`, but for some reason this breaks a
lot of stuff.
#KT-48430 Fixed
2021-08-31 12:05:34 +03:00
Ilmir Usmanov
97176b5d60
Remove experimental coroutines wrapper generation
2021-08-30 14:21:58 +03:00
Ilmir Usmanov
1f8dd45c2b
Remove experimental coroutines support. Part 2
2021-08-30 14:21:57 +03:00
Mads Ager
8dee3c1ca0
[JVM] Do not unbox when local variable initialized with null.
...
This is already the case for straightline code such as
```
inline fun <R> f(size: Int, block: () -> R): R {
var result: R
result = block()
return result
}
```
However, if the local variable introduction happens at a merge
point as in the following example, we allow the unboxing but
only do it halfway. The initialization of the local is still
done with a null value.
```
inline fun <R> f(size: Int, block: () -> R): R {
var result: R
while (true) {
result = block()
if (size == 0) break
}
return result
}
```
This change disallows unboxing for this move complicated
case as well by bailing out if a local use is with a
TaintedBoxedValue (merge of Object and Integer).
^KT-48394 Fixed.
2021-08-26 15:14:02 +03:00
Dmitry Petrov
f4a1e27124
JVM optimize unneeded temporary vals
2021-08-24 18:56:20 +03:00