This is the mail archive of the gcc-patches@gcc.gnu.org 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: Patches ping


On Wed, 2005-05-04 at 15:23, Devang Patel wrote:
> On May 4, 2005, at 11:44 AM, Zdenek Dvorak wrote:
> 
> > The problem is known for about a month now, and nobody bothered to do
> > anything about it.
> 
> IIRC, one problem in this area was fixed By Diego and/or Jeff. In any  
> case,
> it would be useful if you provide more info to refresh our memory.

I don't know what the issue was. You can see it yourself if you apply
the patch. basically, at the end of the vectorizing pass, there are
statements which if you call update_stmt() on them, they get a different
set of operands. This means they needed to be updated during the pass
because they are out of date when the pass is over.

in the example I had in gen-vect-11.c  

before updating:

#   VUSE <ib_57>;
vect_var_.6_1 = *vect_pib.7_2;

And after updating:

#   VUSE <ia>;
#   VUSE <ic>;
#   VUSE <ib_57>;
vect_var_.6_1 = *vect_pib.7_2;

AS you can see, calling update_stmt on this stmt has added 2
additionally VUSES. I'm guessing this is alias related adn that the
alias sets for vect_pib.7_2 hgave changed, but that this stmt wasn't
updated after the alias sets were changed.

Just a guess tho.

the new code in the patch will simple assert/trap after it has updated
the statement to have the 3 uses, and detects that it doesn't match the
list from the 'before' case.  This all happens in verify_ssa.

Andrew


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