This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Save alias set information in PCH.


> 	The following is a GDB session of cc1plus rebuilt with the varray
> patch compiling header_csetjmp.cc testcase.  The address 0x32350fd0 is the
> location of the alias set number that will be restored by PCH.  The alias
> set is 7, but the varray only contains 5 elements.
> 
> Breakpoint 6, gt_pch_restore (f=0xf01aec98)
>     at /gcc/dje/src/gcc/ggc-common.c:555
> 555       for (rt = gt_ggc_deletable_rtab; *rt; rt++)
> (gdb) print *(long long *) 0x32350fd0
> Cannot access memory at address 0x32350fd0
> (gdb) finish
> Run till exit from #0  gt_pch_restore (f=0xf01aec98)
>     at /gcc/dje/src/gcc/ggc-common.c:555
> 0x1039fa20 in c_common_read_pch (pfile=0x2009bde8,
>     name=0x200c11a8
>     "/gcc/dje/build/powerpc-ibm-aix5.1.0.0-20040115/powerpc-ibm-
> aix5.1.0.0/libstdc++-v3/include/powerpc-ibm-aix5.1.0.0/bits/stdc++.h",
>     fd=16384, orig_name=0x3230a000 "1") at /gcc/dje/src/gcc/c-pch.c:388
> 388       gt_pch_restore (f);
> (gdb) print *(long long *) 0x32350fd0
> $3 = 7
> (gdb) c
> Continuing.
> 
> Breakpoint 4, new_alias_set () at /gcc/dje/src/gcc/alias.c:600
> (gdb) print last_alias_set
> $4 = 2
> (gdb) c
> Continuing.
> 
> Breakpoint 5, get_alias_set (t=0x32350f80) at /gcc/dje/src/gcc/alias.c:453
> 453       if (! flag_strict_aliasing || t == error_mark_node
> (gdb) print t->type.alias_set
> $5 = 7
> (gdb) print &(t->type.alias_set)
> $6 = (long long *) 0x32350fd0
> (gdb) print alias_sets->elements_used
> $7 = 0
> (gdb) print alias_sets->num_elements
> $8 = 5
Yes, this is still the same situation we observed originally.  It looks
like PCH didn't restore the varray even tought it is marged GTY by
Geoff's patch.
Perhaps the reason is that the array is initialized from rs6000 frontend
already during argument parsing.  What GTY does to datastructures that
are already built but marked GTY druing restore?

Honza


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]