On Thu, Dec 14, 2017 at 04:08:45PM -0200, Alexandre Oliva wrote:
> On Dec 13, 2017, Alexandre Oliva <[email protected]> wrote:
>
> > On Dec 12, 2017, David Edelsohn <[email protected]> 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