https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128182
--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Aldy Hernandez <[email protected]>: https://gcc.gnu.org/g:442eb35f4d2ed59a7977bf4f93a2e2545a5b451c commit r17-5593-g442eb35f4d2ed59a7977bf4f93a2e2545a5b451c Author: Aldy Hernandez <[email protected]> Date: Mon Oct 26 14:16:44 2026 +0000 sccvn: keep the executable dominators until finalize [PR128182] It looks like r17-5574 introduced a global table, vn_exec_idom, that we need to handle in vn_driver::finalize now. Not doing so is causing a bootstrap failure, as I neglected to do a full regstrap before I pushed the last commit in this area. It had been a few days since my testing, and a ./cc1 build and selftests were not enough. Sorry. Have the driver own the new global, as we do for the RPO numbering, and have finalize point the walk's globals at both while it cleans up. dominated_by_p_w_unex indexes the table by RPO number, so finalize points vn_bb_to_rpo at the driver's numbering as well. Keeping the table until finalize also allows us to use the value numbers between walk and finalize. Tested on ppc64le Linux. PR bootstrap/128182 gcc/ChangeLog: * tree-ssa-sccvn.h (class vn_driver): Add m_exec_idom. * tree-ssa-sccvn.cc (do_rpo_vn_1): Take the table of executable dominators from the caller and do not free it. (vn_driver::vn_driver): Allocate it. (vn_driver::~vn_driver): Free it. (vn_driver::finalize): Point vn_bb_to_rpo and vn_exec_idom at the walk's tables while cleaning up.
