This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Basic block duplication
> On Wed, Oct 12, 2005 at 10:38:50AM -0400, mcrosier@ncsu.edu wrote:
>> For very small procedures (3-5 basic blocks) I don't have a problem, but
>> for larger (> 5 basic block) procedures I go boom. Can someone please
>> shed some light on my error?
>
> You didn't say how you go boom.
>
>
> r~
>
For this test program:
-----
#include <stdio.h>
int acker(int, int);
int
main(void)
{
int n = acker(3,6);
if (n != 509)
printf("acker(3,6) = %d != 509\n", n);
return(0);
}
int
acker(int x,int y)
{
if (x==0)
return(y+1);
else if (y==0)
return(acker(x-1,1));
else
return(acker(x-1, acker(x, y-1)));
}
-----
I get this error:
test03.c: In function 'acker':
test03.c:23: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Big help huh!
>From gdb the segfault occurs at:
lists.c:51 link = XEXP (prev_link, 1);
And here's the backtrace:
#0 free_list (listp=0x60000000000d5ed8, unused_listp=0x6000000000019b50)
at ../../src/gcc-4.0.2/gcc/lists.c:51
#1 0x40000000006646d0 in free_deps (deps=0x60000fffffffb250) at
../../src/gcc-4.0.2/gcc/sched-deps.c:1481
#2 0x4000000000673ec0 in compute_block_backward_dependences (bb=0) at
../../src/gcc-4.0.2/gcc/sched-rgn.c:2851
#3 0x4000000000674980 in schedule_region (rgn=1) at
../../src/gcc-4.0.2/gcc/sched-rgn.c:3008
#4 0x4000000000676110 in schedule_insns (dump_file=0x2) at
../../src/gcc-4.0.2/gcc/sched-rgn.c:3288
#5 0x400000000050cde0 in rest_of_handle_sched () at
../../src/gcc-4.0.2/gcc/passes.c:625
So, I'm going boom when the dependency chains are begin manipulated. For
another test case I get a similar error, but it happens at
haifa-sched.c:604
Any help/ideas would be *greatly* appreciated!
Chad