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 May 4, 2005, at 1:25 PM, Andrew MacLeod wrote:


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.

I thought this was addressed by, http://gcc.gnu.org/ml/gcc/2005-04/msg00848.html

This thread started at
    Semi-Latent Bug in tree vectorizer
    http://gcc.gnu.org/ml/gcc/2005-04/msg00382.html

-
Devang

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]