This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/24483] [4.1 Regression] ICE in ivopts
- From: "rakdver at atrey dot karlin dot mff dot cuni dot cz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 25 Oct 2005 15:56:01 -0000
- Subject: [Bug tree-optimization/24483] [4.1 Regression] ICE in ivopts
- References: <bug-24483-6528@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #2 from rakdver at atrey dot karlin dot mff dot cuni dot cz 2005-10-25 15:56 -------
Subject: Re: [4.1 Regression] ICE in ivopts
Hello,
> Breakpoint 1, fancy_abort (file=0xb1cc18
> "../../mainline/gcc/tree-ssa-loop-ivopts.c",
> line=2948, function=0xb1d0bb "aff_combination_to_tree") at diagnostic.c:590
> 590 internal_error ("in %s, at %s:%d", function, trim_filename (file),
> line);
> (gdb) up
> #1 0x000000000056db37 in aff_combination_to_tree (comb=0x7fbfffec30)
> at tree-ssa-loop-ivopts.c:2948
> 2948 gcc_assert (comb->n == MAX_AFF_ELTS || comb->rest == NULL_TREE);
> (gdb) p *comb
> $17 = {type = 0x2a9589e580, mask = 4294967295, offset = 0, n = 2, elts =
> {0x2a95a8f680,
> 0x2a95a639a0, 0x2a95a6d8c0, 0x2a95a6d850, 0x2a95a6d850, 0x2a95a6d8c0,
> 0x2a95a6d930,
> 0x2a95a6d9a0}, coefs = {1, 1, 0, 0, 1, 1, 1, 1}, rest = 0x2a95a8f700}
> (gdb) call debug_generic_expr (comb->elts[0])
> (unsigned intD.3) -j9D.1618_41
> (gdb) call debug_generic_expr (comb->elts[1])
> ivtmp.30D.1722_4
> (gdb) call debug_generic_expr (comb->elts[2])
> j6D.1615_65
> (gdb) call debug_generic_expr (comb->elts[3])
> j5D.1614_64
> (gdb) call debug_generic_expr (comb->elts[4])
> j5D.1614_64
> (gdb) call debug_generic_expr (comb->elts[5])
> j6D.1615_65
> (gdb) call debug_generic_expr (comb->elts[6])
> j7D.1616_66
> (gdb) call debug_generic_expr (comb->elts[7])
> j8D.1617_67
> (gdb) call debug_generic_expr (comb->rest)
> (unsigned intD.3) j9D.1618_41
> (gdb)
>
> Why do we have (comb->n == 2) when we have 8 elts?
that's not necessarily a bug, # of elements in the combination may get
changed due to arithmetical operations with it, and the old elements
are not zeroed. But once comb->n < MAX_AFF_ELTS, comb->rest should be
moved to the available slot in elts, which apparently some function
fails to do. I will have a look.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24483