Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
Windows, IA32
Description
When using -XX:gc.generate_barrier=true, even a simple HelloWorld couldn't run correctly. The bug is from an peephole optimization on ADD inst in H5826 which assumes no control flow branch in the middle of a basic block. In fact, some CALL insts break the assumption and make the optimization effective in wrong cases. Following is an example:
I4: t5:ref:cls:java/lang/ref/ReferenceQueue =ADD t0:cls:java/lang/ref/Reference, t4(0):intptr
I5: CALL t7(0):I_32 (AU:t0:cls:java/lang/ref/Reference, t5:ref:cls:java/lang/ref/ReferenceQueue, t2:cls:java/lang/ref/ReferenceQueue) [bcmap:6]
I6: t9:ref:cls:java/lang/Object =ADD t0:cls:java/lang/ref/Reference,t8(0):intptr
I7: CALL t10(0):I_32 (AU:t0:cls:java/lang/ref/Reference,t9:ref:cls:java/lang/Object,t1:cls:java/lang/Object) [bcmap:11]
I8: RET t11(0):int16
Attachments
Attachments
Issue Links
- is related to
-
HARMONY-5826 [drlvm][jit][opt][performance] Magic for java.math.Multiplication.unsignedMultAdd2
- Open