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.