Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Blocker
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 2.9.3
-
Component/s: Compiler: Optimizing
-
Labels:None
-
Number of attachments :
Description
When compiling the method spec.benchmarks._213_javac.Instruction.optimize with just O0 as in:
RVMROOT/dist/prototype-opt_x86_64-linux/rvm -X:aos:initial_compiler=base -X:aos:enable_recompilation=false org.jikesrvm.tools.oth.OptTestHarness -oc:O0 -methodOpt spec.benchmarks._213_javac.Instruction optimize - -main SpecApplication -m20 -M20 -a _213_javac
SPEC JVM's javac fails to pass its internal check. There is no expression folding occurring so my current thinking is this is a simplifier bug. This needs to be cleared up ASAP.
When replacing the pattern cmp, setb, movzx with xor, cmp, setb the case of long compares need special attention as the xor can't come between the cmp and sbb combination. A fix to ensure that the flag setting instruction that the xor must come before doesn't use the eflags has been committed in r13902. I'll close the issue when we get some clean regression tests.