ba933fa887
Revert changes for "tolerant to uninitialized values" in OptimizationBasicInterpreter: this approach doesn't converge for some specific cases where local variable is reused (e.g., in several inlined functions - see https://youtrack.jetbrains.com/issue/KT-15112). Instead, treat fake always-false conditional jump in the beginning of the post-condition loop as a "reference point" for stack on loop break / continue. This requires an extra abstraction layer in FixStackAnalyzer, since we can't perform fine-grain manipulations on Frames (such as "combine frame C from local variables of frame A and stack of frame B"). NB additional NOPs will be generated for post-condition loops. Should make a separate bytecode postprocessing pass to get rid of unnecessary NOPs (several YT issues for perceived quality of the generated bytecode are about such NOPs).
24 lines
1022 B
Plaintext
Vendored
24 lines
1022 B
Plaintext
Vendored
LineBreakpoint created at stepOverWhileWithInline.kt:5
|
|
!JDK_HOME!\bin\java -agentlib:jdwp=transport=dt_socket,address=!HOST_NAME!:!HOST_PORT!,suspend=y,server=n -Dfile.encoding=!FILE_ENCODING! -classpath !OUTPUT_PATH!;!KOTLIN_RUNTIME!;!CUSTOM_LIBRARY!;!RT_JAR! stepOverWhileWithInline.StepOverWhileWithInlineKt
|
|
Connected to the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
|
stepOverWhileWithInline.kt:5
|
|
stepOverWhileWithInline.kt:7
|
|
stepOverWhileWithInline.kt:8
|
|
stepOverWhileWithInline.kt:9
|
|
stepOverWhileWithInline.kt:7
|
|
stepOverWhileWithInline.kt:13
|
|
stepOverWhileWithInline.kt:14
|
|
stepOverWhileWithInline.kt:15
|
|
stepOverWhileWithInline.kt:13
|
|
stepOverWhileWithInline.kt:18
|
|
stepOverWhileWithInline.kt:19
|
|
stepOverWhileWithInline.kt:20
|
|
stepOverWhileWithInline.kt:21
|
|
stepOverWhileWithInline.kt:23
|
|
stepOverWhileWithInline.kt:24
|
|
stepOverWhileWithInline.kt:25
|
|
stepOverWhileWithInline.kt:26
|
|
Disconnected from the target VM, address: '!HOST_NAME!:PORT_NAME!', transport: 'socket'
|
|
|
|
Process finished with exit code 0
|