public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: Falk Hueffner <falk.hueffner@student.uni-tuebingen.de> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, Subject: optimization/7702: [PATCH] Make reload-cse honor CANNOT_CHANGE_MODE_CLASS Date: Fri, 14 Feb 2003 09:36:00 -0000 [thread overview] Message-ID: <20030214093601.32332.qmail@sources.redhat.com> (raw) The following reply was made to PR optimization/7702; it has been noted by GNATS. From: Falk Hueffner <falk.hueffner@student.uni-tuebingen.de> To: gcc-patches@gcc.gnu.org Cc: gcc-gnats@gcc.gnu.org, bfkelly@nsa.gov Subject: optimization/7702: [PATCH] Make reload-cse honor CANNOT_CHANGE_MODE_CLASS Date: 14 Feb 2003 10:25:54 +0100 --=-=-= Hi, This fixes PR 7702 and a miscompilation of openssh on Alpha ev6 (sshd wouldn't accept ssh2 connections). The CSE in reload wants to merge registers with equal content and widen them to word_mode while at it, but doesn't honor CANNOT_CHANGE_MODE_CLASS. When the register allocator is foolish enough to put two identical integer constants into floating point registers, this fails. Because of this dependency on the register allocator, the problem is very hard to isolate, both test cases work with mainline. However, doing an equivalent patch for 3.2 fixes the problem. Because of the ssh miscompilation, it would be nice if it could also be included on older branches. 2003-02-14 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de> PR optimization/7702 * reload1.c (reload_cse_simplify_set): Honor CANNOT_CHANGE_MODE_CLASS. -- Falk --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=reload1.patch Index: reload1.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/reload1.c,v retrieving revision 1.378 diff -u -r1.378 reload1.c --- reload1.c 11 Feb 2003 03:52:28 -0000 1.378 +++ reload1.c 13 Feb 2003 21:39:16 -0000 @@ -8282,7 +8282,13 @@ { #ifdef LOAD_EXTEND_OP if (GET_MODE_BITSIZE (GET_MODE (SET_DEST (set))) < BITS_PER_WORD - && extend_op != NIL) + && extend_op != NIL +#ifdef CANNOT_CHANGE_MODE_CLASS + && !CANNOT_CHANGE_MODE_CLASS (GET_MODE (SET_DEST (set)), + word_mode, + REGNO_REG_CLASS (REGNO (SET_DEST (set)))) +#endif + ) { rtx wide_dest = gen_rtx_REG (word_mode, REGNO (SET_DEST (set))); ORIGINAL_REGNO (wide_dest) = ORIGINAL_REGNO (SET_DEST (set)); --=-=-=--
next reply other threads:[~2003-02-14 9:36 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2003-02-14 9:36 Falk Hueffner [this message] 2003-02-14 22:36 Falk Hueffner 2003-02-14 22:36 Richard Henderson 2003-02-15 22:36 Falk Hueffner
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=20030214093601.32332.qmail@sources.redhat.com \ --to=falk.hueffner@student.uni-tuebingen.de \ --cc=gcc-prs@gcc.gnu.org \ --cc=nobody@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).