public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
From: Keith Owens <kaos@ocs.com.au>
To: linux-ia64@vger.kernel.org
Subject: Re: [Linux-ia64] [hinkelbein@ti.uni-mannheim.de: Re: Strange problems building bigloo on ia64]
Date: Mon, 19 May 2003 16:27:16 +0000	[thread overview]
Message-ID: <marc-linux-ia64-105590723705944@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590723705942@msgid-missing>

On Mon, 19 May 2003 14:36:51 +0100, 
Matthew Wilcox <willy@debian.org> wrote:
>
>I don't grok ia64 asm enough to answer his question...
>Yann Dirson schrieb:
>~/src/ia64 > gcc -c -O3 waw.c
>/tmp/cchXUlJF.s: Assembler messages:
>/tmp/cchXUlJF.s:27: Warning: Use of 'addl' may violate WAW dependency 'GR%, % in
>1 - 127' (impliedf), specific resource number is 8
>/tmp/cchXUlJF.s:27: Warning: Only the first path encountering the conflict is
>reported
>/tmp/cchXUlJF.s:25: Warning: This is the location of the conflicting usage
>~/src/ia64 >
>
>This only occurs when using option -O3 to gcc.
>This looks like beeing an assembler problem, not one from gcc.
>Also, when looking into the assembler output, i could not find an error:
>
>        .file   "waw.c"
>        .pred.safe_across_calls p1-p5,p16-p63
>        .text
>        .align 16
>        .global f#
>        .proc f#
>f:
>        .prologue
>        .body
>        .mii
>        addl r3 = @ltoff(sh#), gp
>        cmp4.eq p8, p9 = 0, r32
>        ;;
>        nop.i 0
>        .mmi
>        ld8 r2 = [r3]
>        ;;
>        ld4 r14 = [r2]
>        nop.i 0
>        ;;
>        .mii
>        (p9) cmp4.eq p6, p7 = 1, r14     ! it is this stuff that triggers the
>asm warning.
>        (p8) cmp4.eq p6, p7 = 2, r14     !
>        ;;                               !
>        (p6) mov r8 = r0                 !
>        .mib                             !
>        (p7) addl r8 = 13, r0            !
>        nop.i 0                          !
>        br.ret.sptk.many rp              !
>        .endp f#
>        .common sh#,4,4
>        .ident  "GCC: (GNU) 3.2"

The assembler normally recognises that two predicates are exclusive.
In this case the setting of p6 and p7 is itself predicated (by p8, p9)
so the assembler cannot analyse the logic flow well enough to see that
p6 and p7 are exclusive.  IMHO gcc should issue .pred.rel directives
for complex predicates like this, e.g.

	.pred.rel "mutex", p6, p7
        (p6) mov r8 = r0
        (p7) addl r8 = 13, r0
	.pred.rel "clear", p6, p7

gcc knows that the predicates are exclusive and it is far easier for
gcc to issue the .pred.rel directives than for the assembler to do
complex logic path analysis to deduce what gcc already knows.



      parent reply	other threads:[~2003-05-19 16:27 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-19 13:36 [Linux-ia64] [hinkelbein@ti.uni-mannheim.de: Re: Strange problems building bigloo on ia64] Matthew Wilcox
2003-05-19 14:33 ` [Linux-ia64] [hinkelbein@ti.uni-mannheim.de: Re: Strange problems CH Gowri Kumar
2003-05-19 16:27 ` Keith Owens [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=marc-linux-ia64-105590723705944@msgid-missing \
    --to=kaos@ocs.com.au \
    --cc=linux-ia64@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox