CR for RFR 8165565
Vladimir Kozlov
vladimir.kozlov at oracle.com
Wed Sep 7 17:09:50 UTC 2016
Michael, I think you should instead modify first condition in
InstructForm::check_branch_variant()
Thanks,
Vladimir
On 9/7/16 9:57 AM, Berg, Michael C wrote:
> 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
>
More information about the hotspot-compiler-dev
mailing list