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.

Reply via email to