public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "ebotcazou at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/55614] [4.6/4.7 Regression] vector extensions cause movdqa to be generated for memcpy on unaligned buffer Date: Fri, 07 Dec 2012 14:57:00 -0000 [thread overview] Message-ID: <bug-55614-4-43jJw3EygJ@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-55614-4@http.gcc.gnu.org/bugzilla/> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55614 --- Comment #5 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-12-07 14:57:28 UTC --- > The difference from broken to working starts at the esra pass: > <bb 3>: > - MEM[(char * {ref-all})x_1].v = r$v_15; > + MEM[(char * {ref-all})x_1] = r$v_15; > x_8 = x_1 + 16; > y_9 = y_2 + 18446744073709551600; > > Note that the MEM[(char * {ref-all})x_1] is > <mem_ref 0x7ffff1a93d48 > type <union_type 0x7ffff1a9cb28 sizes-gimplified type_0 TI > size <integer_cst 0x7ffff1982dc0 constant 128> > unit size <integer_cst 0x7ffff1982de0 constant 16> > align 8 symtab 0 alias set -1 canonical type 0x7ffff1a9c738 > fields <field_decl 0x7ffff19a45f0 v type <vector_type 0x7ffff1a9c498 T> > unsigned V4SI file rh885082.c line 7 col 13 size <integer_cst > 0x7ffff1982dc0 128> unit size <integer_cst 0x7ffff1982de0 16> > align 128 offset_align 128 > offset <integer_cst 0x7ffff1982d80 constant 0> > bit offset <integer_cst 0x7ffff1982e00 constant 0> context > <union_type 0x7ffff1a9c738>> context <function_decl 0x7ffff1a9ba00 foo>> How can a union have alignment 8 if it contains a field with alignment 128? That should only happen if the field is a bit-field... > thus it has the right TYPE_ALIGN. But when it is wrapped into COMPONENT_REF, > while the inner MEM_REF still has TYPE_ALIGN 8, the FIELD_REF has DECL_ALIGN > 128, which is probably why the expansion expands it as aligned. ...in which case the expansion should expand it as a bit-field. > If the r186501 patch is too risky for the release branches (did it need any > follow-ups so far?), an alternative would be to start doing what trunk does > only if the MEM_REF has lower alignment than the field. I don't think that r186501 can be backported, unless you want to break again the strict-alignment platforms. r161958 just fixed the disaster introduced on them by an ealier patch, see PR middle-end/44843.
next prev parent reply other threads:[~2012-12-07 14:57 UTC|newest] Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-12-07 12:15 [Bug c/55614] New: " soren.sandmann at gmail dot com 2012-12-07 13:59 ` [Bug c/55614] " mikpe at it dot uu.se 2012-12-07 14:06 ` [Bug c/55614] [4.6/4.7 Regression] " jakub at gcc dot gnu.org 2012-12-07 14:30 ` [Bug tree-optimization/55614] " jakub at gcc dot gnu.org 2012-12-07 14:56 ` jamborm at gcc dot gnu.org 2012-12-07 14:57 ` ebotcazou at gcc dot gnu.org [this message] 2012-12-07 15:29 ` jakub at gcc dot gnu.org 2012-12-07 15:41 ` ebotcazou at gcc dot gnu.org 2012-12-09 21:00 ` siarhei.siamashka at gmail dot com 2012-12-09 22:25 ` siarhei.siamashka at gmail dot com 2013-04-03 9:47 ` rguenth at gcc dot gnu.org 2013-04-12 15:15 ` [Bug tree-optimization/55614] [4.7 " jakub at gcc dot gnu.org 2014-06-12 13:20 ` rguenth at gcc dot gnu.org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-55614-4-43jJw3EygJ@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).