Traverse store-load chains for POP instructions

POP instructions can be only live usages for functional parameters,
e.g., when corresponding invoke is in dead code (KT-17591).
This commit is contained in:
Dmitry Petrov
2017-04-25 18:07:57 +03:00
parent fe571a7dfa
commit a39a0abb2a
6 changed files with 70 additions and 2 deletions
@@ -2483,6 +2483,24 @@ public class BlackBoxInlineCodegenTestGenerated extends AbstractBlackBoxInlineCo
doTest(fileName);
}
@TestMetadata("kt17591.kt")
public void testKt17591() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/stackOnReturn/kt17591.kt");
doTest(fileName);
}
@TestMetadata("kt17591a.kt")
public void testKt17591a() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/stackOnReturn/kt17591a.kt");
doTest(fileName);
}
@TestMetadata("kt17591b.kt")
public void testKt17591b() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/stackOnReturn/kt17591b.kt");
doTest(fileName);
}
@TestMetadata("mixedTypesOnStack1.kt")
public void testMixedTypesOnStack1() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/stackOnReturn/mixedTypesOnStack1.kt");