[13] RFR(XS):8226287: Make process_users_of_allocation handle gc barriers
Roland Westrelin
rwestrel at redhat.com
Wed Jun 26 14:09:00 UTC 2019
> _igvn.replace_node(ctrl_proj, init->in(TypeFunc::Control)) should always
> work.
>
> I added the checks to be able to keep the
> "assert(init->in(TypeFunc::Control) == _fallthroughcatchproj,
> "allocation control projection");"
>
> Mostly because it could be nice to catch any other malformed control
> flow here. And from the beginning I was a bit unsure if there where
> other code paths that assumes the
> alloc->proj->catch->catchproj->initialize pattern.
>
> I can remove it if you want to. It definitely gets easier to read.
It makes sense now. I think it would be better to not make:
_igvn.replace_node(ctrl_proj, init->in(TypeFunc::Control));
conditional but modify the assert:
assert(init->in(TypeFunc::Control) == _fallthroughcatchproj ||
(bs->is_gc_barrier_node(init->in(TypeFunc::Control ...)
Otherwise it seems that sometimes we don't remove the init barrier but
it's unclear why. Also a comment would be nice.
Roland.
More information about the hotspot-compiler-dev
mailing list