This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [SFN] Bootstrap broken
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Alexandre Oliva <aoliva at redhat dot com>
- Cc: Andreas Schwab <schwab at linux-m68k dot org>, David Edelsohn <dje dot gcc at gmail dot com>, Rainer Orth <ro at cebitec dot uni-bielefeld dot de>, Jeffrey Law <law at redhat dot com>, Richard Biener <richard dot guenther at gmail dot com>, Jason Merrill <jason at redhat dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 14 Dec 2017 19:14:43 +0100
- Subject: Re: [SFN] Bootstrap broken
- Authentication-results: sourceware.org; auth=none
- References: <CAGWvny=4dmX11q5dBvy2SpAtRZYBygpb87JOwpzBZN6WS_qhDQ@mail.gmail.com> <yddo9n3n5ni.fsf@CeBiTec.Uni-Bielefeld.DE> <CAGWvnykHQmrxBU6rF=N+4MQskLdKW3vFqYwOQgqPo4jFrmLQvA@mail.gmail.com> <ormv2n6q7b.fsf@lxoliva.fsfla.org> <or1sjx2nde.fsf@lxoliva.fsfla.org>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Thu, Dec 14, 2017 at 04:08:45PM -0200, Alexandre Oliva wrote:
> On Dec 13, 2017, Alexandre Oliva <aoliva@redhat.com> wrote:
>
> > On Dec 12, 2017, David Edelsohn <dje.gcc@gmail.com> wrote:
> >> Rainer,
> >> PR83396 opened. you can add Solaris to the list of targets.
>
> > Andreas,
>
> > Here's a fix for the ia64 regression you mentioned in that PR.
>
> And here's a patch that fixes the two other ia64 build failures you'd
> mentioned.
>
> Regstrapped on x86_64- and i686-linux-gnu by myself; bootstrapped on
> ia64-linux-gnu by yourself IIUC, though with some weird bootstrap
> compare errors I'm very curious to learn more about.
>
> Ok to install?
>
> Emitting markers before labels turned out to not be worth the trouble.
> The markers outside BBs confuse the ebb scheduler, and they don't add
> any useful information. I'll arrange for markers to be moved past
> labels, even in gimple, but for now this will fix the two remaining
> known problems on ia64.
>
> for gcc/ChangeLog
>
> PR bootstrap/83396
> * cfgexpand.c (expand_gimple_basic_block): Expand label first,
> even if there are markers before it.
> * cfgrtl.c (rtl_verify_bb_layout): Reject DEBUG_INSNs outside BBs.
Ok, but please work on reversion of everything that has been changed
in order to support those (on RTL e.g. the var-tracking.c
for (insn = get_first_insn (bb);
insn != BB_HEAD (bb->next_bb)
? next = NEXT_INSN (insn), true : false;
insn = next)
and
rtx_insn *next;
bool outside_bb = true;
for (insn = get_first_insn (bb); insn != BB_HEAD (bb->next_bb);
insn = next)
{
if (insn == BB_HEAD (bb))
outside_bb = false;
else if (insn == NEXT_INSN (BB_END (bb)))
outside_bb = true;
...
if (outside_bb)
{
/* Ignore non-debug insns outside of basic blocks. */
if (!DEBUG_INSN_P (insn))
continue;
/* Debug binds shouldn't appear outside of bbs. */
gcc_assert (!DEBUG_BIND_INSN_P (insn));
}
and the NULL BLOCK_FOR_INSN stuff, on GIMPLE the gsi_after_labels changes,
the tree-cfg.c verification needs to be changed to disallow even the
markers before labels, ...). That can be done incrementally, it is better
to unbreak the tree ASAP.
Jakub