On Sun, Jun 15, 2014 at 1:27 PM, Hans-Peter Nilsson wrote: > On Sat, 14 Jun 2014, Richard Sandiford wrote: > >> To make the final representation change easier, this patch introduces >> macros for iterating over lists of defs, uses and eq_uses. At the >> moment there are three possible keys when accessing df_ref lists: >> the insn rtx (DF_INSN_*), the insn uid (DF_INSN_UID_*) and the >> df_insn_info (DF_INSN_INFO_*). I don't think it's worth adding >> iterators for uids though. Any code that's going to the trouble of >> caching the uid might as well go the whole hog and cache the underlying >> df_insn_info. >> >> After the feedback to the BB iterator patch: >> >> https://gcc.gnu.org/ml/gcc-patches/2014-06/msg00676.html >> >> I've kept the iterator variable definitions outside the FOR_* macros >> rather than make the FOR_* macros define the variables themselves. >> >> Richard >> >> >> gcc/ >> * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros. >> (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise. >> (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise. >> * auto-inc-dec.c (find_inc, merge_in_block): Use them. > > > One of these patches (in 211677:211684) broke cris-elf: > > g++ -c -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE > -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall > \ > -Wwrite-strings -Wcast-qual -Wmissing-format-attribute > -Woverloaded-virtual -pedantic -Wno-long-long > -Wno-variadic-macr\ > os -Wno-overlength-strings -fno-common -DHAVE_CONFIG_H -I. -I. > -I/tmp/hpautotest-gcc0/gcc/gcc -I/tmp/hpautotest-gcc0/g\ > cc/gcc/. -I/tmp/hpautotest-gcc0/gcc/gcc/../include > -I/tmp/hpautotest-gcc0/gcc/gcc/../libcpp/include > -I/tmp/hpautotest-g\ > cc0/cris-elf/gccobj/./gmp -I/tmp/hpautotest-gcc0/gcc/gmp > -I/tmp/hpautotest-gcc0/cris-elf/gccobj/./mpfr -I/tmp/hpautotes\ > t-gcc0/gcc/mpfr -I/tmp/hpautotest-gcc0/gcc/mpc/src > -I/tmp/hpautotest-gcc0/gcc/gcc/../libdecnumber > -I/tmp/hpautotest-gc\ > c0/gcc/gcc/../libdecnumber/dpd -I../libdecnumber > -I/tmp/hpautotest-gcc0/gcc/gcc/../libbacktrace -o > auto-inc-dec.o -M\ > T auto-inc-dec.o -MMD -MP -MF ./.deps/auto-inc-dec.TPo > /tmp/hpautotest-gcc0/gcc/gcc/auto-inc-dec.c > /tmp/hpautotest-gcc0/gcc/gcc/auto-inc-dec.c: In function 'void > merge_in_block(int, basic_block_def*)': > /tmp/hpautotest-gcc0/gcc/gcc/auto-inc-dec.c:1442: error: 'uid' > was not declared in this scope > make[2]: *** [auto-inc-dec.o] Error 1 > > brgds, H-P
Bah, this is why I just *hate* all the gcc code that's only compiled if certain #defines are set... Can you please try: Index: auto-inc-dec.c =================================================================== --- auto-inc-dec.c (revision 211685) +++ auto-inc-dec.c (working copy) @@ -1439,7 +1439,8 @@ merge_in_block (int max_reg, basic_block bb) } } else if (dump_file) - fprintf (dump_file, "skipping update of deleted insn %d\n", uid); + fprintf (dump_file, "skipping update of deleted insn %d\n", + INSN_UID (insn)); } /* If we were successful, try again. There may have been several Ciao! Steven