RFR: 8274328: C2: Redundant CFG edges fixup in block ordering
Tobias Hartmann
thartmann at openjdk.java.net
Thu Oct 28 07:47:10 UTC 2021
On Sun, 26 Sep 2021 10:40:43 GMT, Yi Yang <yyang at openjdk.org> wrote:
> I think Trace::fixup_blocks is redundant because PhaseCFG::fixup_flow will nevertheless fix up the CFG flow(i.e. flip successor blocks of IfNode) right after PhaseBlockLayout pass, we can remove this step when doing PhaseBlockLayout pass.(Testing: jtreg/compiler/c2, presubmit test)
>
> https://github.com/openjdk/jdk/blob/5ec1cdcaf39229a7d2457313600b0dc2bf8c6453/src/hotspot/share/opto/compile.cpp#L2765
>
> https://github.com/openjdk/jdk/blob/5ec1cdcaf39229a7d2457313600b0dc2bf8c6453/src/hotspot/share/opto/block.cpp#L1679
>
> https://github.com/openjdk/jdk/blob/5ec1cdcaf39229a7d2457313600b0dc2bf8c6453/src/hotspot/share/opto/block.cpp#L908-L916
That looks good to me but I'm not an expert in that code. I submitted some testing and it all passed.
src/hotspot/share/opto/block.cpp line 916:
> 914: ProjNode* tmp = proj0;
> 915: proj0 = proj1;
> 916: proj1 = tmp;
`swap(proj0, proj1)` can be used here.
-------------
Marked as reviewed by thartmann (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/5705
More information about the hotspot-compiler-dev
mailing list