[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: WAW and RAW warnings in kernel build



Before trying to locate the precise lines in the kernel, I tried
an experiment.  I I took a small routine in assembly
from the book "IA64 and Elementary Functions" (page 36) and
assembled it.  I got several WAW warnings. All the instructions
involved are predicated with it arranged that only one
predicate will be true. But apparently the assembler can't detect that.
I don't know how much the assembler tries to do in this case
but appears to me to be non-trivial. This case involves four
predicates all set on the same pass in a loop. But the tests that
set them are controlled by two more predictates that are set
on a previous pass. And the numbers have changed because
of register rotation.

I can stil try to find the lines in question in the kernel, if anybody
thinks that would be useful. Also, I could email a copy of the
routine described above.

Richard

On Tuesday 05 August 2003 09:19 am, Al Stone wrote:
> If someone will send me the snippets of code
> with the warnings, I'll take a look at both the code
> and gas to see what it's doing....
>
> On Mon, 2003-08-04 at 15:04, David Mosberger wrote:
> > >>>>> On Mon, 4 Aug 2003 10:03:50 -0600, Bjorn Helgaas
> > >>>>> <bjorn.helgaas@hp.com> said:
> >
> >   Bjorn> They've been there for years, so I've learned to ignore them.
> >
> > I wouldn't want to encourage people to ignore those messages.  Yes,
> > some of them can be ignored, but if you develop new assembly code, I'd
> > definitely pay attention.
> >
> > Unfortunately, GCC sometimes doesn't provide sufficient annotation to
> > the assembler so that it could know that the offending code is indeed
> > safe.
> >
> > Also, in the hand-coded assembly routines, there are a few places
> > where hazard warnings are a bit difficult to avoid.  It's something we
> > should fix eventually, but it may require some help from gas.
> >
> > 	--david



Reply to: