From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12982 invoked by alias); 25 Aug 2014 14:11:29 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 12965 invoked by uid 89); 25 Aug 2014 14:11:28 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Mon, 25 Aug 2014 14:11:26 +0000 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s7PEBOCH003806 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 25 Aug 2014 10:11:25 -0400 Received: from [10.3.226.53] (vpn-226-53.phx2.redhat.com [10.3.226.53]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s7PEBM2C029873; Mon, 25 Aug 2014 10:11:23 -0400 Message-ID: <1408975689.24896.20.camel@surprise> Subject: Re: [BUILDROBOT][PATCH] frv-linux fallout (was: [PATCH 009/236] Replace BB_HEAD et al macros with functions) From: David Malcolm To: Jan-Benedict Glaw Cc: Nick Clifton , Alexandre Oliva , gcc-patches@gcc.gnu.org Date: Mon, 25 Aug 2014 14:11:00 -0000 In-Reply-To: <20140823184932.GG12042@lug-owl.de> References: <1407345815-14551-1-git-send-email-dmalcolm@redhat.com> <1407345815-14551-10-git-send-email-dmalcolm@redhat.com> <20140823184932.GG12042@lug-owl.de> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-IsSubscribed: yes X-SW-Source: 2014-08/txt/msg02324.txt.bz2 On Sat, 2014-08-23 at 20:49 +0200, Jan-Benedict Glaw wrote: > On Wed, 2014-08-06 13:19:48 -0400, David Malcolm 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? Bother. Sorry about this. FWIW, BB_HEAD becomes a macro again at patch #178 of the series. In hindsight, how I've been committing the rtx-classes work is, ahem, suboptimal. I'm testing and committing individual patches, but this could have gone into trunk in one go. I got it into my head that this could either be an svn branch, *or* be rebased repeatedly in git until it's ready to go in... but I now think this is a false dichotomy: what I realize now is that I should have continued rebasing my patches in git until they were ready to go... but then committed them to a svn branch, with a ChangeLog.rtx-classes, and *immediately* merged that branch to trunk. This would have given the best of both approaches: the flexibility and resilience against bitrot of the git rebase approach, but also with the atomicity of the merge to trunk, and with the whole thing scripted. It's too late now to switch to this approach, so in the meantime I've been working on ways to make my bootstraps as fast as possible. Sorry again Dave > 2014-08-23 Jan-Benedict Glaw > * 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); >