Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Jan 2007 03:20:16 GMT
From:      Mikhail Teterin <mi@corbulon.video-collage.com>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: bin/106734: [patch] SSE2 optimization for bzip2/libbz2
Message-ID:  <200701070320.l073KGNP004788@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/106734; it has been noted by GNATS.

From: Mikhail Teterin <mi@corbulon.video-collage.com>
To: jseward@acm.org (Julian Seward)
Cc: bug-followup@freebsd.org
Subject: Re: bin/106734: [patch] SSE2 optimization for bzip2/libbz2
Date: Sat, 6 Jan 2007 21:37:20 -0500 (EST)

 > According to Valgrind on amd64-linux, this patch causes bzip2 to
 > do comparisons based on uninitialised memory when compressing, for the
 > attached file (PLIST).
 > 
 > ==16140== Conditional jump or move depends on uninitialised value(s)
 > ==16140==    at 0x414ECF: mainGtU (blocksort.c:538)
 > ==16140==    by 0x414B08: mainSimpleSort (blocksort.c:690)
 > ==16140==    by 0x4150E1: mainQSort3 (blocksort.c:805)
 
 Julian! You informed me of this issue in a direct e-mail from Dec 19.
 I responded the next day on Dec 20:
 
 	------------------------------------------------------------
 = From my 5-minute investigation, I *think* this is because the loads
 
 =        /* Load the bytes: */
 =        n1 = (__m128i)_mm_loadu_pd((double *)(block + i1));
 =        n2 = (__m128i)_mm_loadu_pd((double *)(block + i2));
 
 I doubt it -- Valgrind's diagnostics says "Conditional jump or move
 depends on uninitialised value(s)". There are no jumps in the above
 code, there are two machine instructions (executed in parallel).
 	------------------------------------------------------------
 
 Have you not received the e-mail with above text? (Message-Id:
 <200612200615.22819@Misha>).
 
 Yours,
 
 	-mi



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200701070320.l073KGNP004788>