From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/9252 Path: news.gmane.org!not-for-mail From: Szabolcs Nagy Newsgroups: gmane.linux.lib.musl.general Subject: Re: Re: Julia on musl libc systems Date: Sun, 31 Jan 2016 21:42:22 +0100 Message-ID: <20160131204222.GB9621@port70.net> References: <20160130144011.GS9621@port70.net> <20160131010750.GT9621@port70.net> <20160131164956.GY9621@port70.net> <20160131180034.GZ9621@port70.net> <20160131184546.GG9349@brightrain.aerifal.cx> <20160131204050.GA9621@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="ZARJHfwaSJQLOEUz" X-Trace: ger.gmane.org 1454272977 1198 80.91.229.3 (31 Jan 2016 20:42:57 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 31 Jan 2016 20:42:57 +0000 (UTC) To: musl@lists.openwall.com, Alba Pompeo Original-X-From: musl-return-9265-gllmg-musl=m.gmane.org@lists.openwall.com Sun Jan 31 21:42:38 2016 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1aPypQ-0003Ny-Ul for gllmg-musl@m.gmane.org; Sun, 31 Jan 2016 21:42:37 +0100 Original-Received: (qmail 17495 invoked by uid 550); 31 Jan 2016 20:42:34 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 17473 invoked from network); 31 Jan 2016 20:42:33 -0000 Mail-Followup-To: musl@lists.openwall.com, Alba Pompeo Content-Disposition: inline In-Reply-To: <20160131204050.GA9621@port70.net> User-Agent: Mutt/1.5.24 (2015-08-30) Xref: news.gmane.org gmane.linux.lib.musl.general:9252 Archived-At: --ZARJHfwaSJQLOEUz Content-Type: text/plain; charset=us-ascii Content-Disposition: inline * Szabolcs Nagy [2016-01-31 21:40:50 +0100]: > * Rich Felker [2016-01-31 13:45:50 -0500]: > > Are they perhaps using C++ and precompiled headers? The latter are > > no, a reduced test case is attached now really > gcc -O3 bug.c > > fails, but > > gcc -O3 -fno-tree-slp-vectorize bug.c > > passes, so CFLAGS+=-fno-tree-slp-vectorize is a > workaround. > > probably related to > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68517 > (although i dont see 0 sized structs here), > but i could not reproduce it with another toolchain, > only with the alpine x86_64 gcc-5.3.0 one. --ZARJHfwaSJQLOEUz Content-Type: text/x-csrc; charset=us-ascii Content-Disposition: attachment; filename="bug.c" typedef unsigned long size_t; typedef struct cholmod_common_struct { struct cholmod_method_struct { int a; } method[9 + 1]; } cholmod_common; typedef struct cholmod_sparse_struct { int a; } cholmod_sparse; typedef struct cholmod_descendant_score_t { int a; } descendantScore; typedef struct cholmod_factor_struct { int a; } cholmod_factor; typedef struct cholmod_dense_struct { int a; } cholmod_dense; typedef struct Path_struct { int rank; } Path_type; static void updown_8_4(int update, int j, int e, double Alpha[], double W[], cholmod_factor *L, cholmod_common *Common) { double G0[4], G1[4], G2[4], G3[4]; double Z0[4], Z1[4], Z2[4], Z3[4]; double *W0, *W1, *W2, *W3, *Lx; int *Li, *Lp, *Lnz; int j1, j2, j3, p0, p1, p2, p3, parent, lnz, pend, k; for (; j <= e; j = parent) { { if ((j2 <= e) && (lnz == Lnz[j3] + 3)) { { double lx[2][2], w[2], *w0, *w1; lx[0][0] = Lx[p0]; lx[1][0] = Lx[p0 + 1]; lx[0][1] = Lx[p1]; lx[1][1] = Lx[p1 + 1]; lx[1][1] -= G1[1] * w[1]; w[0] = w0[2] - Z0[2] * lx[0][0]; w[1] = w1[2] - Z0[2] * lx[1][0]; lx[0][0] -= G0[2] * w[0]; lx[1][0] -= G0[2] * w[1]; w0[2] = w[0] -= Z1[2] * lx[0][1]; w1[2] = w[1] -= Z1[2] * lx[1][1]; lx[0][1] -= G1[2] * w[0]; Lx[p0] = lx[0][0]; Lx[p0 + 1] = lx[1][0]; Lx[p1] = lx[0][1]; Lx[p1 + 1] = lx[1][1]; } } } } } static void updown_8_r(int update, cholmod_sparse *C, int rank, cholmod_factor *L, double W[], Path_type Path[], int npaths, int mask[], int maskmark, cholmod_common *Common) { double *Cx, *Wpath, *W1, *a; int i, j, p, ccol, pend, wfirst, e, path=0, packed; { switch (Path[path].rank) { case 1: updown_8_4(update, j, e, a, W1, L, Common); } } } int cholmod_updown_mask2(int update, cholmod_sparse *C, int *colmark, int *mask, int maskmark, cholmod_factor *L, cholmod_dense *X, cholmod_dense *DeltaB, cholmod_common *Common) { double *Lx, *W=0, *Xx, *Nx; Path_type OrderedPath[32], Path[32]; int n, wdim, k1, k2, npaths=0, i, j, row, packed, ccol, p, cncol, do_solve, k=0, botrow; updown_8_r(update, C, k, L, W, OrderedPath, npaths, mask, maskmark, Common); return 0; } int cholmod_updown_mark(int update, cholmod_sparse *C, int *colmark, cholmod_factor *L, cholmod_dense *X, cholmod_dense *DeltaB, cholmod_common *Common) { return (cholmod_updown_mask2(update, C, colmark, ((void *)0), 0, L, X, DeltaB, Common)); } --ZARJHfwaSJQLOEUz--