Date: Sat, 20 Oct 2001 13:02:44 -0700 From: Marcel Moolenaar <marcel@xcllnt.net> To: Doug Rabson <dfr@nlsystems.com> Cc: ia64@freebsd.org Subject: Hazards [was: Re: cvs commit: src/sys/ia64/ia64 sal.c] Message-ID: <20011020130244.A25443@kayak.xcllnt.net> In-Reply-To: <20011020144512.W549-100000@salmon.nlsystems.com> References: <20011020031327.A6752@dhcp01.pn.xcllnt.net> <20011020144512.W549-100000@salmon.nlsystems.com>
index | next in thread | previous in thread | raw e-mail
On Sat, Oct 20, 2001 at 02:46:01PM +0100, Doug Rabson wrote:
>
> I have run all our code through GAS' dependancy checker FWIW. It still
> missed some problems though.
>
I run our hazard checker on sbin/umount (random pick):
50 unlikely hazards
128 potential hazards
28 certain hazards
Normally you can ignore the unlikely and potential hazards, because they
are mostly caused by insufficient static information.
27 of the 28 certain hazards are no hazards at all, because our
hazard checker was disassembling data.
Which leaves:
HAZARD (certain) WAW Dependency between 400000000003e500.0 and 400000000003e510.2 on p6
According to ski this gives:
400000000003e500 cmp.ge p6=r0,r33 MIB
nop.i 0x0
! (p6) br.ret.spnt.few b0
400000000003e510 nop.m 0x0 MII
mov.i r14=ar.lc
cmp.ltu p6=17,r33
This is clearly a hazard.
Since bin/csh seems to hang, I repeated the exercise for bin/csh:
145 certain hazards, of which 143 look like bogus hazards. This leaves:
1) HAZARD (certain) WAW Dependency between 40000000000d1940.2 and 40000000000d1960.0 on p6
2) HAZARD (certain) WAW Dependency between 400000000013dec0.0 and 400000000013ded0.2 on p6
Ad 1) Same problem as above:
40000000000d1940 adds r15=66,r0 MII
break.i 0x100000;;
cmp.ne p6=r0,r10
40000000000d1950 nop.m 0x0 MIB
nop.i 0x0
! (p6) br.cond.sptk.few 0x4000000000153a70
40000000000d1960 cmp.ne p6=r9,r0;; MMI
! (p6) mov r8=r0
nop.i 0x0
Ad 2) Same problem here:
400000000013dec0 cmp.ge p6=r0,r33 MIB
nop.i 0x0
! (p6) br.ret.spnt.few b0
400000000013ded0 nop.m 0x0 MII
mov.i r14=ar.lc
cmp.ltu p6=17,r33
This looks like a (structural) compiler bug in GCC-2.9-ia64-final
that GAS isn't catching. We should keep our eyes open for this in
GCC 3.x.
--
Marcel Moolenaar USPA: A-39004 marcel@xcllnt.net
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ia64" in the body of the message
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011020130244.A25443>
