https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88593
Bug ID: 88593 Summary: internal compiler error: in verify_dominators, at dominance.c:1184 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: hjl.tools at gmail dot com Target Milestone: --- When we added a mode switching pass for PR 87007 after combine, we got [hjl@gnu-cfl-1 pr87007]$ cat pr69238.i extern int *ia, *ib; void foo (int n) { int i; for (i = 0; i < n; i++) ia[i] = ib[i]; } [hjl@gnu-cfl-1 pr87007]$ /export/build/gnu/gcc-intel/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc-intel/build-x86_64-linux/gcc/ -O2 -mavx -fno-forward-propagate -fno-rerun-cse-after-loop -S pr69238.i pr69238.i: In function \u2018foo\u2019: pr69238.i:9:1: error: dominator of 7 status unknown 9 | } | ^ during RTL pass: ce2 pr69238.i:9:1: internal compiler error: in verify_dominators, at dominance.c:1184 0xb105c1 verify_dominators(cdi_direction) /export/gnu/import/git/intel/gcc-upstream/gcc/dominance.c:1184 0xb0ddbd checking_verify_dominators /export/gnu/import/git/intel/gcc-upstream/gcc/dominance.h:76 0xb0f82c calculate_dominance_info(cdi_direction) /export/gnu/import/git/intel/gcc-upstream/gcc/dominance.c:746 0xa69cd9 flow_loops_find(loops*) /export/gnu/import/git/intel/gcc-upstream/gcc/cfgloop.c:431 0xe8ae9e loop_optimizer_init(unsigned int) /export/gnu/import/git/intel/gcc-upstream/gcc/loop-init.c:93 0x1ee1861 if_convert /export/gnu/import/git/intel/gcc-upstream/gcc/ifcvt.c:5374 0x1ee1c63 execute /export/gnu/import/git/intel/gcc-upstream/gcc/ifcvt.c:5553 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. [hjl@gnu-cfl-1 pr87007]$ even if our pass didn't change anything. It seems that mode switching doesn't use dominane info but can invalidate it in different ways.