RFR: 8354282: C2: more crashes in compiled code because of dependency on removed range check CastIIs [v2]
    Emanuel Peter 
    epeter at openjdk.org
       
    Thu Oct  2 00:54:52 UTC 2025
    
    
  
On Wed, 1 Oct 2025 12:50:13 GMT, Roland Westrelin <roland at openjdk.org> wrote:
>> src/hotspot/share/opto/castnode.cpp line 39:
>> 
>>> 37: const ConstraintCastNode::DependencyType ConstraintCastNode::WidenTypeDependency(true, false, "widen type dependency"); // not pinned, doesn't narrow type
>>> 38: const ConstraintCastNode::DependencyType ConstraintCastNode::StrongDependency(false, true, "strong dependency"); // pinned, narrows type
>>> 39: const ConstraintCastNode::DependencyType ConstraintCastNode::UnconditionalDependency(false, false, "unconditional dependency"); // pinned, doesn't narrow type
>> 
>> Is there really a good reason to have the names `Regular`, `WidenType`, `Strong` and `Unconditional`? Did we just get used to these names over time, or do they really have a good reason for existance. They just don't really mean that much to me. Calling them (non)pinned and (non)narrowing would make more sense to me.
>
> So `NonPinnedNarrowingDependency`, `NonPinnedNonNarrowingDependeny`, `PinnedNarrowingDependency` and `NonPinnedNonNarrowingDependency`?
> 
> Or to avoid using a negation for the one that's the weakest dependency:
> 
> `FloatingNarrowingDependency`, `FloatingNonNarrowingDependency`, `NonFloatingNarrowingDependency` and `NonFloatingNonNarrowingDependency `?
> 
> What do you think @eme64 ?
Either of these sound great :)
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24575#discussion_r2396368531
    
    
More information about the hotspot-compiler-dev
mailing list