bin/106734: [patch] SSE2 optimization for bzip2/libbz2
Mikhail Teterin
mi at corbulon.video-collage.com
Sat Jan 6 19:20:16 PST 2007
The following reply was made to PR bin/106734; it has been noted by GNATS.
From: Mikhail Teterin <mi at corbulon.video-collage.com>
To: jseward at acm.org (Julian Seward)
Cc: bug-followup at 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 at Misha>).
Yours,
-mi
More information about the freebsd-bugs
mailing list