aot compiler halts when there exists an infinite loop in clinit()
Yuting Chen
chenyt.cs.sjtu at gmail.com
Tue Apr 18 16:42:51 UTC 2017
Hi, are there any comments to this case? I found that the clinit
method will be compiled if it does not contain the infinite loop. It's
weird.
The bytecode is shown as follows:
public class Vector1
minor version: 0
major version: 52
flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
#1 = Utf8 Vector1
#2 = Class #1 // Vector1
#3 = Utf8 java/lang/Object
#4 = Class #3 // java/lang/Object
#5 = Utf8 serialVersionUID
#6 = Utf8 J
#7 = Long -2767605614048989439l
#9 = Utf8 <clinit>
#10 = Utf8 ()V
#11 = NameAndType #5:#6 // serialVersionUID:J
#12 = Fieldref #2.#11 // Vector1.serialVersionUID:J
#13 = Utf8 main
#14 = Utf8 ([Ljava/lang/String;)V
#15 = Utf8 ConstantValue
#16 = Utf8 Code
#17 = Utf8 StackMapTable
{
public static {};
descriptor: ()V
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc2_w #7 // long -2767605614048989439l
3: putstatic #12 // Field serialVersionUID:J
6: iconst_1
7: iconst_m1
8: iadd
9: ifge 0
12: return
StackMapTable: number_of_entries = 1
frame_type = 0 /* same */
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=0, locals=1, args_size=1
0: return
}
More information about the hotspot-compiler-dev
mailing list