Re: [BUGS] BUG #14897: Segfault on statitics SQL request
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Michael Paquier <michael.paquier@gmail.com>
Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Andres Freund <andres@anarazel.de>,
Peter Eisentraut <peter.eisentraut@2ndquadrant.com>,
Vincent Lachenal <vincent.lachenal@gmail.com>,
PostgreSQL mailing lists <pgsql-bugs@postgresql.org>
Date: 2017-11-14T05:31:35Z
Lists: pgsql-bugs
Michael Paquier <michael.paquier@gmail.com> writes: > On Tue, Nov 14, 2017 at 12:31 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: >> Concretely, the attached patch fixes it for me. I've verified by >> examining the assembly code that this stops gcc from using movdqa or >> movaps in numeric.c, except for one place where it apparently can >> prove that it's dealing with a sufficiently-aligned local variable. > I am not seeing any difference in the assembly code generated by gcc > -S with and without your patch. Perhaps I am missing something? What > are you actually seeing? Hm, double-check your procedure. I get this: $ diff numeric.s.std numeric.s.patch 2746c2746 < movaps %xmm0, (%r14) --- > movups %xmm0, (%r14) 13948,13951c13948,13951 < movdqa 16(%rbp), %xmm0 < movaps %xmm0, 16(%rax) < movdqa 32(%rbp), %xmm0 < movaps %xmm0, 32(%rax) --- > movdqu 16(%rbp), %xmm0 > movups %xmm0, 16(%rax) > movdqu 32(%rbp), %xmm0 > movups %xmm0, 32(%rax) 14434,14435c14434,14435 < movdqa 16(%rbp), %xmm0 < movaps %xmm0, 16(%rax) --- > movdqu 16(%rbp), %xmm0 > movups %xmm0, 16(%rax) (If using -g, there are a bunch more diffs in the debug tables.) regards, tom lane
Commits
-
Prevent int128 from requiring more than MAXALIGN alignment.
- d4e38489f98a 9.5.11 landed
- 619a8c47da72 10.2 landed
- 4a15f87d2277 9.6.7 landed
- 7518049980be 11.0 landed
-
Rearrange c.h to create a "compiler characteristics" section.
- cfc157078f2e 9.5.11 landed
- a8910506757c 10.2 landed
- 6c35b3aa465e 9.6.7 landed
- 91aec93e6089 11.0 landed