[Bug tree-optimization/71253] New: [7 Regression] ICE during loop distribution w/ -O2 -ftree-loop-distribution

asolokha at gmx dot com gcc-bugzilla@gcc.gnu.org
Tue May 24 07:26:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71253

            Bug ID: 71253
           Summary: [7 Regression] ICE during loop distribution w/ -O2
                    -ftree-loop-distribution
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---

gcc-7.0.0-alpha20160522 segfaults when compiling the following reduces snippet
w/ -O2 -ftree-loop-distribution:

int jo, af, yb;
long int wt;

void
nr (void)
{
  int *bf = &yb;
  for (;;)
    {
      while (jo != 0)
        {
          long int *ad = (long int *) &yb;
          for (;;)
            {
              int fv;
              for (*ad = 1; *ad < 3; ++(*ad))
                {
                  af = *bf;
                  fv = wt;
                }
              bf = (int *) &wt;
              ad = &wt;
              do
                {
                  jo = wt = ((wt != 0) ? 1 : fv);
                }
              while (jo != 0);
            }
        }
      bf = ⁡
    }
}

% x86_64-pc-linux-gnu-gcc-7.0.0-alpha20160522 -c -O2 -ftree-loop-distribution
gdgqziql.c 
gdgqziql.c: In function 'nr':
gdgqziql.c:5:1: internal compiler error: Segmentation fault
 nr (void)
 ^~

#0  0x0000000000bc7170 in last_stmt(basic_block_def*) ()
#1  0x0000000000c2008b in create_edge_for_control_dependence(graph*,
basic_block_def*, int, control_dependences*) [clone .isra.31] ()
#2  0x0000000000c2141c in build_rdg(vec<loop*, va_heap, vl_ptr>,
control_dependences*) ()
#3  0x0000000000c21740 in distribute_loop(loop*, vec<gimple*, va_heap, vl_ptr>,
control_dependences*, int*, bool*) ()
#4  0x0000000000c246ff in (anonymous
namespace)::pass_loop_distribution::execute(function*) ()
#5  0x0000000000ac4f5c in execute_one_pass(opt_pass*) ()
#6  0x0000000000ac5518 in execute_pass_list_1(opt_pass*) ()
#7  0x0000000000ac552a in execute_pass_list_1(opt_pass*) ()
#8  0x0000000000ac552a in execute_pass_list_1(opt_pass*) ()
#9  0x0000000000ac5575 in execute_pass_list(function*, opt_pass*) ()
#10 0x00000000007b1614 in cgraph_node::expand() ()
#11 0x00000000007b2ec0 in symbol_table::compile() [clone .part.49] ()
#12 0x00000000007b5273 in symbol_table::finalize_compilation_unit() ()
#13 0x0000000000b8ebba in compile_file() ()
#14 0x000000000061a6df in toplev::main(int, char**) ()
#15 0x000000000061c8f7 in main ()


More information about the Gcc-bugs mailing list