JVM: erase conditional suspension markers from inline-only functions
Otherwise, the generated bytecode is unnecessarily suboptimal in some (arguably weird) cases. In the JVM backend, this was an accidental regression in #3260, as I had not noticed that effectively inline-only functions were handled by a separate branch in FunctionCodegen. In JVM_IR, I'm pretty sure the redundant markers have always been there as `isSuspensionPoint` in ExpressionCodegen never checked for effectively-inline-only-ness.
This commit is contained in:
@@ -1391,6 +1391,11 @@ public class BytecodeTextTestGenerated extends AbstractBytecodeTextTest {
|
||||
runTest("compiler/testData/codegen/bytecodeText/coroutines/doNotReassignContinuation.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("effectivelyInlineOnly.kt")
|
||||
public void testEffectivelyInlineOnly() throws Exception {
|
||||
runTest("compiler/testData/codegen/bytecodeText/coroutines/effectivelyInlineOnly.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("nonLocalReturn.kt")
|
||||
public void testNonLocalReturn() throws Exception {
|
||||
runTest("compiler/testData/codegen/bytecodeText/coroutines/nonLocalReturn.kt");
|
||||
|
||||
Reference in New Issue
Block a user