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>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011020130244.A25443>