public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "law at redhat dot com" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug rtl-optimization/56069] [4.7/4.8/4.9 Regression] RA pessimization Date: Fri, 20 Dec 2013 21:23:00 -0000 [thread overview] Message-ID: <bug-56069-4-Awn56skc6s@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-56069-4@http.gcc.gnu.org/bugzilla/> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56069 Jeffrey A. Law <law at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |law at redhat dot com --- Comment #5 from Jeffrey A. Law <law at redhat dot com> --- Maybe I'm missing something here. We have this immediately prior to IRA: (insn 2 4 3 2 (set (reg/v:DI 86 [ mem ]) (reg:DI 5 di [ mem ])) j.c:2 89 {*movdi_internal} (expr_list:REG_DEAD (reg:DI 5 di [ mem ]) (nil))) (note 3 2 6 2 NOTE_INSN_FUNCTION_BEG) (insn 6 3 7 2 (parallel [ (set (reg:DI 88 [ D.1760 ]) (lshiftrt:DI (reg/v:DI 86 [ mem ]) (const_int 3 [0x3]))) (clobber (reg:CC 17 flags)) ]) j.c:3 562 {*lshrdi3_1} (expr_list:REG_DEAD (reg/v:DI 86 [ mem ]) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil)))) (insn 7 6 8 2 (set (reg:DI 89) (const_int 17592186044416 [0x100000000000])) j.c:3 89 {*movdi_internal} (nil)) (insn 8 7 13 2 (parallel [ (set (reg:DI 87 [ D.1760 ]) (ior:DI (reg:DI 88 [ D.1760 ]) (reg:DI 89))) (clobber (reg:CC 17 flags)) ]) j.c:3 421 {*iordi_1} (expr_list:REG_DEAD (reg:DI 89) (expr_list:REG_DEAD (reg:DI 88 [ D.1760 ]) (expr_list:REG_UNUSED (reg:CC 17 flags) (expr_list:REG_EQUAL (ior:DI (reg:DI 88 [ D.1760 ]) (const_int 17592186044416 [0x100000000000])) (nil)))))) (insn 13 8 16 2 (set (reg/i:DI 0 ax) (reg:DI 87 [ D.1760 ])) j.c:4 89 {*movdi_internal} (expr_list:REG_DEAD (reg:DI 87 [ D.1760 ]) (nil))) (insn 16 13 0 2 (use (reg/i:DI 0 ax)) j.c:4 -1 (nil)) ISTM that we want (reg 86) to prefer di and (reg 87) to prefer ax by way of the hard register copies. (reg 88) should then prefer di by way of insn 6. (reg 89) really doesn't need a preference and can go anywhere that doesn't conflict. So if we look at the IRA dump we have: Pass 1 for finding pseudo/allocno costs r89: preferred GENERAL_REGS, alternative NO_REGS, allocno GENERAL_REGS r88: preferred GENERAL_REGS, alternative NO_REGS, allocno GENERAL_REGS r87: preferred AREG, alternative GENERAL_REGS, allocno GENERAL_REGS r86: preferred DIREG, alternative GENERAL_REGS, allocno GENERAL_REGS Which I guess is OK. A bit surprised to not see r88 preferring DIreg at this point, but I guess copies implied by the 2 operand nature are handled later. ISTM that the copy implied by insn 6 should result in 88 somehow preferring DIreg. Then, ideally we'd see that while 89 can go anywhere it's best to match it with 87. Vlad, what am I missing here?
next prev parent reply other threads:[~2013-12-20 21:23 UTC|newest] Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-01-21 17:37 [Bug rtl-optimization/56069] New: [4.6/4.7/4.8 " jakub at gcc dot gnu.org 2013-01-21 21:56 ` [Bug rtl-optimization/56069] " vmakarov at gcc dot gnu.org 2013-01-22 21:02 ` vmakarov at redhat dot com 2013-01-22 21:10 ` [Bug rtl-optimization/56069] [4.6/4.7/4.8/4.9 " jakub at gcc dot gnu.org 2013-10-25 12:17 ` [Bug rtl-optimization/56069] [4.7/4.8/4.9 " rguenth at gcc dot gnu.org 2013-12-20 21:23 ` law at redhat dot com [this message] 2013-12-20 22:40 ` vmakarov at gcc dot gnu.org 2014-04-22 11:36 ` [Bug rtl-optimization/56069] [4.7/4.8/4.9/4.10 " jakub at gcc dot gnu.org 2014-07-16 13:28 ` [Bug rtl-optimization/56069] [4.8/4.9/4.10 " jakub at gcc dot gnu.org 2014-10-30 10:39 ` [Bug rtl-optimization/56069] [4.8/4.9/5 " jakub at gcc dot gnu.org 2015-06-26 19:53 ` [Bug rtl-optimization/56069] [4.9/5/6 " jakub at gcc dot gnu.org 2015-06-26 20:26 ` jakub at gcc dot gnu.org 2020-03-12 11:58 ` [Bug rtl-optimization/56069] [7 " jakub at gcc dot gnu.org 2021-05-04 12:31 ` rguenth at gcc dot gnu.org 2021-06-01 8:05 ` rguenth at gcc dot gnu.org 2022-05-27 8:00 ` 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-56069-4-Awn56skc6s@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).