RFR: 8333393: PhaseCFG::insert_anti_dependences can fail to raise LCAs and to add necessary anti-dependence edges [v11]

Daniel Lundén dlunden at openjdk.org
Thu Jan 30 13:51:55 UTC 2025


On Thu, 30 Jan 2025 13:34:40 GMT, Quan Anh Mai <qamai at openjdk.org> wrote:

> But if the memory input of a load is `m`, we will never find `kill m1`?

That is an interesting question. I believe the answer is that the load we are considering cannot have `m` as `initial_mem`, as `initial_mem` is always the earliest possible memory definition (`m1`, in this case).

As a thought experiment, if we instead were to consider loading the parts of memory killed by `m2`, `initial_mem` would instead be `m`. There could also be no kills of the load-relevant parts of `m1` or `m2` after `m`, as they are now already killed by `m` (the `Phi` now actually matters as the part of memory we are loading is different in `m1` and `m2`).

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

PR Comment: https://git.openjdk.org/jdk/pull/22852#issuecomment-2624570257


More information about the hotspot-compiler-dev mailing list