CR for RFR 8165565

Berg, Michael C michael.c.berg at intel.com
Wed Sep 7 16:57:45 UTC 2016


Hi Folks,

Some cases of CountedLoopEnd have side effect code on targets like SKX for vector processed post loops that are unsafe to translate to short branch versions. A recent change between b126 and b127 exposes this problem. The simple solution is to not allow short branch mapping for these cases. This produces correct code. A patch will be uploaded shortly to exemplify this case. The failures show up in SPECjvm2008 in the scimark metrics after b127 inclusive for SKX targets.

This code was tested as follows: hotspot jreg, SPECjvm2008 on bdw and skx complete with no issues.

Bug-id: https://bugs.openjdk.java.net/browse/JDK-8165565

webrev:
http://cr.openjdk.java.net/~mcberg/8165565/webrev.01/

Essentially it preserves this ad file pattern on x86 by disallowing branch shortening (this instruction pattern is predicate guarded for skx like platforms):

jmpLoopEnd_and_restoreMask() {
  match(CountedLoopEnd cop cr);
    __ jcc((Assembler::Condition)($cop$$cmpcode), *L, false);
    __ restorevectmask();

which has the restore vector mask side effect code.

Regards,
Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160907/880a6593/attachment-0001.html>


More information about the hotspot-compiler-dev mailing list