On Wed, 2014-08-06 13:19:48 -0400, David Malcolm <dmalc...@redhat.com> wrote: > This is further scaffolding; convert the BB_* and SET_BB_* macros > into functions. Convert the BB_* rvalue-style functions into returning > rtx_insn * rather than plain rtx. [...]
This gave some fallout for frv-linux (see eg. build http://toolchain.lug-owl.de/buildbot/show_build_details.php?id=345281): g++ -c -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common -DHAVE_CONFIG_H -I. -I. -I/home/vaxbuild/repos/gcc/gcc -I/home/vaxbuild/repos/gcc/gcc/. -I/home/vaxbuild/repos/gcc/gcc/../include -I/home/vaxbuild/repos/gcc/gcc/../libcpp/include -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libdecnumber/dpd -I../libdecnumber -I/home/vaxbuild/repos/gcc/gcc/../libbacktrace -o ifcvt.o -MT ifcvt.o -MMD -MP -MF ./.deps/ifcvt.TPo /home/vaxbuild/repos/gcc/gcc/ifcvt.c In file included from ./tm.h:23:0, from /home/vaxbuild/repos/gcc/gcc/ifcvt.c:23: /home/vaxbuild/repos/gcc/gcc/ifcvt.c: In function ‘int cond_exec_process_insns(ce_if_block*, rtx, rtx, rtx, int, int)’: /home/vaxbuild/repos/gcc/gcc/config/frv/frv.h:1964:58: error: ‘frv_ifcvt_modify_insn’ was not declared in this scope (PATTERN) = frv_ifcvt_modify_insn (CE_INFO, PATTERN, INSN) ^ /home/vaxbuild/repos/gcc/gcc/ifcvt.c:408:7: note: in expansion of macro ‘IFCVT_MODIFY_INSN’ IFCVT_MODIFY_INSN (ce_info, pattern, insn); ^ /home/vaxbuild/repos/gcc/gcc/ifcvt.c: In function ‘int cond_exec_process_if_block(ce_if_block*, int)’: /home/vaxbuild/repos/gcc/gcc/config/frv/frv.h:1948:57: error: ‘frv_ifcvt_modify_tests’ was not declared in this scope frv_ifcvt_modify_tests (CE_INFO, &TRUE_EXPR, &FALSE_EXPR) ^ /home/vaxbuild/repos/gcc/gcc/ifcvt.c:613:3: note: in expansion of macro ‘IFCVT_MODIFY_TESTS’ IFCVT_MODIFY_TESTS (ce_info, true_expr, false_expr); ^ /home/vaxbuild/repos/gcc/gcc/config/frv/frv.h:1957:70: error: ‘frv_ifcvt_modify_multiple_tests’ was not declared in this scope frv_ifcvt_modify_multiple_tests (CE_INFO, BB, &TRUE_EXPR, &FALSE_EXPR) ^ /home/vaxbuild/repos/gcc/gcc/ifcvt.c:686:4: note: in expansion of macro ‘IFCVT_MODIFY_MULTIPLE_TESTS’ IFCVT_MODIFY_MULTIPLE_TESTS (ce_info, bb, t, f); ^ /home/vaxbuild/repos/gcc/gcc/config/frv/frv.h:1974:70: error: ‘frv_ifcvt_modify_cancel’ was not declared in this scope #define IFCVT_MODIFY_CANCEL(CE_INFO) frv_ifcvt_modify_cancel (CE_INFO) ^ /home/vaxbuild/repos/gcc/gcc/ifcvt.c:724:7: note: in expansion of macro ‘IFCVT_MODIFY_CANCEL’ IFCVT_MODIFY_CANCEL (ce_info); ^ /home/vaxbuild/repos/gcc/gcc/config/frv/frv.h:1969:68: error: ‘frv_ifcvt_modify_final’ was not declared in this scope #define IFCVT_MODIFY_FINAL(CE_INFO) frv_ifcvt_modify_final (CE_INFO) ^ /home/vaxbuild/repos/gcc/gcc/ifcvt.c:731:3: note: in expansion of macro ‘IFCVT_MODIFY_FINAL’ IFCVT_MODIFY_FINAL (ce_info); ^ /home/vaxbuild/repos/gcc/gcc/config/frv/frv.h:1974:70: error: ‘frv_ifcvt_modify_cancel’ was not declared in this scope #define IFCVT_MODIFY_CANCEL(CE_INFO) frv_ifcvt_modify_cancel (CE_INFO) ^ /home/vaxbuild/repos/gcc/gcc/ifcvt.c:761:3: note: in expansion of macro ‘IFCVT_MODIFY_CANCEL’ IFCVT_MODIFY_CANCEL (ce_info); ^ Makefile:1064: recipe for target 'ifcvt.o' failed This is because the macro-implementing functions are declared in frv-protos.h iff BB_HEAD is define'd. Is this okay to apply? 2014-08-23 Jan-Benedict Glaw <jbg...@lug-owl.de> * config/frv/frv-protos.h (frv_ifcvt_init_extra_fields): Declare unconditionally. (frv_ifcvt_modify_tests): Ditto. (frv_ifcvt_modify_multiple_tests): Ditto. (frv_ifcvt_modify_insn): Ditto. (frv_ifcvt_modify_final): Ditto. (frv_ifcvt_modify_cancel): Ditto. diff --git a/gcc/config/frv/frv-protos.h b/gcc/config/frv/frv-protos.h index d50ca64..c689813 100644 --- a/gcc/config/frv/frv-protos.h +++ b/gcc/config/frv/frv-protos.h @@ -61,7 +61,6 @@ extern rtx frv_split_minmax (rtx *); extern rtx frv_split_abs (rtx *); extern void frv_split_double_load (rtx, rtx); extern void frv_split_double_store (rtx, rtx); -#ifdef BB_HEAD extern void frv_ifcvt_init_extra_fields (ce_if_block *); extern void frv_ifcvt_modify_tests (ce_if_block *, rtx *, rtx *); extern void frv_ifcvt_modify_multiple_tests @@ -70,7 +69,6 @@ extern void frv_ifcvt_modify_multiple_tests extern rtx frv_ifcvt_modify_insn (ce_if_block *, rtx, rtx); extern void frv_ifcvt_modify_final (ce_if_block *); extern void frv_ifcvt_modify_cancel (ce_if_block *); -#endif extern enum reg_class frv_secondary_reload_class (enum reg_class, enum machine_mode, rtx); -- Jan-Benedict Glaw jbg...@lug-owl.de +49-172-7608481 Signature of: If it doesn't work, force it. the second : If it breaks, it needed replacing anyway.
signature.asc
Description: Digital signature