This is the mail archive of the gcc@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: [tree-ssa][unit-at-a-time] bootstrap



On Thursday, August 21, 2003, at 9:37 AM, Andrew Pinski wrote:


I think this is a bad interaction between the inter-modular optimization, unit-at-a-time and the tree-ssa
stuff but I do not know what is going on as I cannot even bootstrap any more on the tree-ssa branch on powerpc-apple-darwin6.6.

I can't either, but if you remove the abort in fold-const (I assume you are seeing the abort when compiling gimplify.c trying to invert a truthop), it seems to work again.



Thanks, Andrew Pinski


On Thursday, Aug 21, 2003, at 00:07 US/Eastern, JUDD JENNE wrote:



I get the following error during a bootstrap on SSA after the merge.


Please note the BOOT_CFLAGS setting includes -funit-at-a-time.

Over the weekend, I observed comparison failures during bootstrap, however I
wanted to wait until the merge picked up recent changes to the unit-at-a-time
machinery before mentioning anything. (This same process passed bootstrap on mainline both tonight and
during the weekend.)


My impression of the error below is that the listed function is being inlined
into "main" and the two variables are being lost or confused in the process.


I don't believe I used "-g" when I first ran the bootstrap. Also, the issue
may not require c++ & objc, though I do not know.


Here are some relevant pieces:

Machine: Gentoo-Linux Distribution ~v1.4 on athlon-xp
gcc version 3.2.3 20030422 (Gentoo Linux 1.4 3.2.3-r1, propolice)
GNU ld version 2.14.90.0.2 20030515

Configure and build lines:

/full/path1/configure --prefix=/full/path2/bin-ssa
--enable-languages=c,c++,objc --disable-libgcj --enable-checking

make BOOT_CFLAGS='-O2 -g -funit-at-a-time' bootstrap 2>&1 | tee ssa.log

Fragment of function in main:

record_insn_name (insn_code_number, XSTR (desc, 0));

The first few lines of the associated function:

static void
record_insn_name (int code, const char *name)
{
  static const char *last_real_name = "insn";
  static int last_real_code = 0;
  char *new;
...

Notice last_real_name and last_real_code?

Location of Failure (last portion of ssa.log):

stage1/xgcc -Bstage1/ -B/home/judd/gcc-dev/bin-ssa/i686-pc-linux-gnu/bin/ -O2 -g -funit-at-a-time -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Werror -fno-common -DHAVE_CONFIG_H -DGENERATOR_FILE -o genextract > \
genextract.o rtl.o read-rtl.o bitmap.o ggc-none.o gensupport.o insn-conditions.o print-rtl1.o \
errors.o ../libiberty/libiberty.a
genextract.o(.text+0x824): In function `main':
/home/judd/gcc-dev/gcc-ssa/gcc/genextract.c:519: undefined reference to `last_real_name.0'
genextract.o(.text+0x83f):/home/judd/gcc-dev/gcc-ssa/gcc/ genextract.c:520: undefined reference to `last_real_code.1'
genextract.o(.text+0x84d):/home/judd/gcc-dev/gcc-ssa/gcc/ genextract.c:520: undefined reference to `last_real_name.0'
genextract.o(.text+0x9b1):/home/judd/gcc-dev/gcc-ssa/gcc/ genextract.c:524: undefined reference to `last_real_name.0'
genextract.o(.text+0x9bc):/home/judd/gcc-dev/gcc-ssa/gcc/ genextract.c:525: undefined reference to `last_real_code.1'
collect2: ld returned 1 exit status
make[2]: *** [genextract] Error 1
make[2]: Leaving directory `/home/judd/gcc-dev/obj-ssa/gcc'
make[1]: *** [stage2_build] Error 2
make[1]: Leaving directory `/home/judd/gcc-dev/obj-ssa/gcc'
make: *** [bootstrap] Error 2



If you would like more information or a formal and complete bug report, please
let me know.


Keep up the great work.


Judd Jenne






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