public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Steve Ellcey <sellcey@mips.com>
To: Jakub Jelinek <jakub@redhat.com>
Cc: <gcc-patches@gcc.gnu.org>
Subject: Re: [Patch, PR 54128] ira.c change to fix mips bootstrap
Date: Fri, 07 Sep 2012 21:50:00 -0000	[thread overview]
Message-ID: <1347054581.14333.275.camel@ubuntu-sellcey> (raw)
In-Reply-To: <20120905061507.GD1999@tucnak.redhat.com>

On Wed, 2012-09-05 at 08:15 +0200, Jakub Jelinek wrote:
> On Fri, Aug 31, 2012 at 10:58:51AM -0700, Steve Ellcey  wrote:
> > Here is my patch to fix the bootstrap comparision failure (PR 54128) on
> > MIPS.  The reason for the comparision failure was a difference in
> > register usage and I tracked it down to build_insn_chain which checked
> > all instructions for register usage in order to set the dead_or_set
> > and live_relevant_regs bitmaps instead of checking only non-debug
> > instructions.  Changing INSN_P to NONDEBUG_INSN_P in build_insn_chain
> > allowed me to bootstrap and caused no regressions.
> 
> The debug insns generally shouldn't extend the lifetime of pseudos (see the
> valtrack.c stuff), so if you hit this, there is probably some earlier bug
> that didn't reset/adjust the debug insns in question.
> I'm not saying the ira.c patch is absolutely a bad idea, but it would be
> good if you could investigate where those debug insns started extending
> lifetime of pseudos.
> 
> > 2012-08-31  Steve Ellcey  <sellcey@mips.com>
> > 
> > 	PR bootstrap/54128
> > 	* ira.c (build_insn_chain): Check only NONDEBUG instructions for
> > 	register usage.
> 
> 	Jakub

I think I know where this may be going wrong, though I am having trouble
actually creating a patch.  I think MIPS should define
TARGET_DELAY_VARTRACK and call variable_tracking_main from mips_reorg.

The systems that define TARGET_DELAY_VARTRACK all have this comment:

/* Variable tracking should be run after all optimizations which
   change order of insns.  It also needs a valid CFG.  */
#undef TARGET_DELAY_VARTRACK
#define TARGET_DELAY_VARTRACK true

And I think mips_reorg could change the order of insns.  I have tried
putting a call to variable_tracking_main in mips_df_reorg (and changed
mips_cfg_in_reorg to return true if flag_var_tracking is true but that
didn't fix the problem.  I thought this might be because some of the
mips_reorg code that comes after mips_df_reorg is still changing
insn ordering.  I tried putting a call to variable_tracking_main at the
end of mips_reorg:

  if (flag_var_tracking)
    {
      compute_bb_for_insn ();
      df_analyze ();
      timevar_push (TV_VAR_TRACKING);
      variable_tracking_main ();
      timevar_pop (TV_VAR_TRACKING);
      df_finish_pass (false);
      free_bb_for_insn ();
    }

But I just get a seg fault in compute_bb_for_insn, If I remove
that (and free_bb_for_insn) I get a segfault in df_analyze.  I
am not sure exactly what I need to set up to call variable_tracking_main
at this point in the code.  Is there something else I need to call to
ensure that I have a valid control flow graph?  I don't see other
platforms that call variable_tracking_main from their reorg routines
doing anything else.

Steve Ellcey
sellcey@mips.com

  parent reply	other threads:[~2012-09-07 21:50 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-31 17:59 Steve Ellcey 
2012-09-05  6:19 ` Jakub Jelinek
2012-09-05 22:47   ` Steve Ellcey
2012-09-07 21:50   ` Steve Ellcey [this message]
2012-09-08 13:01     ` Richard Sandiford
2012-12-21  7:46 ` Jakub Jelinek
2012-12-21 18:55   ` Steve Ellcey

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1347054581.14333.275.camel@ubuntu-sellcey \
    --to=sellcey@mips.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jakub@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).