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: