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