This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: var-tracking bugfix

On Thursday 23 November 2006 17:23, Daniel Jacobowitz wrote:
> On Thu, Nov 23, 2006 at 01:56:45PM +0100, Bernd Schmidt wrote:
> > The next Blackfin patch will add a call to split_all_insns from the
> > reorg pass.  split_all_insns calls verify_flow_info, and in 4.3 this
> > often aborts when debugging information is generated.  The var-tracking
> > pass can change basic block boundaries in such a way that a control flow
> > insn is no longer the last insn in a basic block, since a var tracking
> > note can replace it.

That sounds like a bug you would want to fix.

> > Fixed with this patch which just slightly changes the way these notes
> > are emitted.  Bootstrapped and regression tested on i686-linux; I've
> > also compiled a large number of files with -g before and after the
> > change, the output was identical.  Committed as 119116.
> Could you explain this a little more?  If I read it right, then the
> var tracking note can move from one basic block to another because of
> this patch.  Seems like that would be a problem, or at least a lurking
> time bomb.

What Bernd proposes here is definitely wrong, but I wonder if that
note is in the right location to begin with.  Seems to me that the
note should be at the head of the target basic block of the jump.  

Re. time bomb: Bernd's patch also breaks with some of the cfglayout
changes in my local tree (where the NEXT_INSN after the end of a
basic block is NULL).


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]