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.

Attachment: signature.asc
Description: Digital signature

Reply via email to