Integrated: 8293844: C2: Verify Location::{oop,normal} types in PhaseOutput::FillLocArray

Aleksey Shipilev shade at openjdk.org
Mon Sep 19 06:22:13 UTC 2022


On Thu, 15 Sep 2022 08:50:58 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

> I have been debugging a weird issue in C2/deopt, and wanted to have stronger asserts in critical paths. One such place is `PhaseOutput::FillLocArray`, which emits `Location::normal` on unconditional `else` branch. `Location::normal` is described as "Ints, floats, double halves". I think we would be better off verifying the types explicitly. Same goes for `Location::oop`, which we can also verify.
> 
> Aside: In fact, I suspect the whole `Regalloc::is_oop` business can go away, and we can rely on reg types to sense if we are dealing with oops here, but that looks like a change with some unexpected effects, so I would like to do that separately, see [JDK-8293845](https://bugs.openjdk.org/browse/JDK-8293845).
> 
> Additional testing:
>  - [x] Linux x86_64 fastdebug `tier1`
>  - [x] Linux x86_64 fastdebug `tier2`
>  - [x] Linux x86_32 fastdebug `tier1`
>  - [x] Linux x86_32 fastdebug `tier2`

This pull request has now been integrated.

Changeset: 26e08cf3
Author:    Aleksey Shipilev <shade at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/26e08cf3d0cbd30395f3344669fcc20c0b52e2f6
Stats:     9 lines in 1 file changed: 8 ins; 0 del; 1 mod

8293844: C2: Verify Location::{oop,normal} types in PhaseOutput::FillLocArray

Reviewed-by: kvn, dlong

-------------

PR: https://git.openjdk.org/jdk/pull/10281


More information about the hotspot-compiler-dev mailing list