Integrated: 8273277: C2: Move conditional negation into rc_predicate
Nils Eliasson
neliasso at openjdk.java.net
Fri Nov 12 10:11:40 UTC 2021
On Mon, 18 Oct 2021 13:24:19 GMT, Nils Eliasson <neliasso at openjdk.org> wrote:
> Hi,
>
> I need some feedback on this patch. This was reported from Tencent and found in internal testing about the same time. This patch is based on a a patch provided by Tencent.
>
> In some very specific circumstances we need to negate the range checks that we create in PhaseIdealLoop::loop_predication_impl_helper. This is done in three places, but that method also calls insert_initial_skeleton_predicate where this isn't taken into account.
>
> To simplify things I have moved the negation logic into rc_predicate. This should prevent us from missing this check again.
>
> I do have a concern that negating the condition of the rangecheck in the skeleton predicate, since the skeleton predicate will be used as a clone template, and some rangechecks optimizations seems to assume that range checks always have LT as the condidtion. On the other hand - it is a really uncommon scenario since we haven't failed here before.
>
> Feedback appreciated.
>
> Best regards,
> Nils
This pull request has now been integrated.
Changeset: 710f4964
Author: Nils Eliasson <neliasso at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/710f496456d642c3e98d230270598f0b2dc75aba
Stats: 96 lines in 5 files changed: 71 ins; 12 del; 13 mod
8273277: C2: Move conditional negation into rc_predicate
Reviewed-by: thartmann, chagedorn, kvn
-------------
PR: https://git.openjdk.java.net/jdk/pull/5987
More information about the hotspot-compiler-dev
mailing list