public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: optimization/7702: [PATCH] Make reload-cse honor CANNOT_CHANGE_MODE_CLASS
@ 2003-02-14 22:36 Richard Henderson
  0 siblings, 0 replies; 4+ messages in thread
From: Richard Henderson @ 2003-02-14 22:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR optimization/7702; it has been noted by GNATS.

From: Richard Henderson <rth@redhat.com>
To: Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
Cc: gcc-patches@gcc.gnu.org, gcc-gnats@gcc.gnu.org, bfkelly@nsa.gov
Subject: Re: optimization/7702: [PATCH] Make reload-cse honor CANNOT_CHANGE_MODE_CLASS
Date: Fri, 14 Feb 2003 14:26:52 -0800

 On Fri, Feb 14, 2003 at 10:25:54AM +0100, Falk Hueffner wrote:
 > 	* reload1.c (reload_cse_simplify_set): Honor
 > 	CANNOT_CHANGE_MODE_CLASS.
 
 Applied to mainline.
 
 I'm fairly certain that the exact form of this macro was
 different in both 3.3 and 3.2.  Would you generate and test
 patches for these branches?
 
 
 r~


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: optimization/7702: [PATCH] Make reload-cse honor CANNOT_CHANGE_MODE_CLASS
@ 2003-02-15 22:36 Falk Hueffner
  0 siblings, 0 replies; 4+ messages in thread
From: Falk Hueffner @ 2003-02-15 22:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

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: Richard Henderson <rth@redhat.com>
Cc: gcc-patches@gcc.gnu.org,  gcc-gnats@gcc.gnu.org
Subject: Re: optimization/7702: [PATCH] Make reload-cse honor CANNOT_CHANGE_MODE_CLASS
Date: 15 Feb 2003 23:30:31 +0100

 --=-=-=
 
 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de> writes:
 
 > Richard Henderson <rth@redhat.com> writes:
 > > I'm fairly certain that the exact form of this macro was different
 > > in both 3.3 and 3.2.  Would you generate and test patches for these
 > > branches?
 > 
 > I have this patch for 3.2. I'll check out 3.3.
 
 It needs the same patch as 3.4. I've attached it.
 
 -- 
 	Falk
 
 --=-=-=
 Content-Type: text/x-patch
 Content-Disposition: attachment; filename=reload-cse-3.3.patch
 
 --- reload1.c~	2003-02-15 23:27:30.000000000 +0100
 +++ reload1.c	2003-02-15 23:26:29.000000000 +0100
 @@ -8275,7 +8275,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));
 
 --=-=-=--


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: optimization/7702: [PATCH] Make reload-cse honor CANNOT_CHANGE_MODE_CLASS
@ 2003-02-14 22:36 Falk Hueffner
  0 siblings, 0 replies; 4+ messages in thread
From: Falk Hueffner @ 2003-02-14 22:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

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: Richard Henderson <rth@redhat.com>
Cc: gcc-patches@gcc.gnu.org,  gcc-gnats@gcc.gnu.org,  bfkelly@nsa.gov
Subject: Re: optimization/7702: [PATCH] Make reload-cse honor CANNOT_CHANGE_MODE_CLASS
Date: 14 Feb 2003 23:31:11 +0100

 --=-=-=
 
 Richard Henderson <rth@redhat.com> writes:
 
 > On Fri, Feb 14, 2003 at 10:25:54AM +0100, Falk Hueffner wrote:
 > > 	* reload1.c (reload_cse_simplify_set): Honor
 > > 	CANNOT_CHANGE_MODE_CLASS.
 > 
 > Applied to mainline.
 
 Thanks.
 
 > I'm fairly certain that the exact form of this macro was different
 > in both 3.3 and 3.2.  Would you generate and test patches for these
 > branches?
 
 I have this patch for 3.2. I'll check out 3.3.
 
 -- 
 	Falk
 
 
 --=-=-=
 Content-Type: text/x-patch
 Content-Disposition: attachment; filename=reload-cse-3.2.2.patch
 
 --- reload1.c.orig	2003-02-14 22:34:42.000000000 +0100
 +++ reload1.c	2003-02-14 22:31:14.000000000 +0100
 @@ -8277,7 +8277,14 @@
  	{
  #ifdef LOAD_EXTEND_OP
  	  if (GET_MODE_BITSIZE (GET_MODE (SET_DEST (set))) < BITS_PER_WORD
 -	      && extend_op != NIL)
 +	      && extend_op != NIL
 +#ifdef CLASS_CANNOT_CHANGE_MODE
 +	      && !(REGNO_REG_CLASS (REGNO (SET_DEST (set)))
 +		   == CLASS_CANNOT_CHANGE_MODE
 +		   && CLASS_CANNOT_CHANGE_MODE_P (GET_MODE (SET_DEST (set)),
 +						  word_mode))
 +#endif
 +	      )
  	    {
  	      rtx wide_dest = gen_rtx_REG (word_mode, REGNO (SET_DEST (set)));
  	      ORIGINAL_REGNO (wide_dest) = ORIGINAL_REGNO (SET_DEST (set));
 
 --=-=-=--


^ permalink raw reply	[flat|nested] 4+ messages in thread

* optimization/7702: [PATCH] Make reload-cse honor CANNOT_CHANGE_MODE_CLASS
@ 2003-02-14  9:36 Falk Hueffner
  0 siblings, 0 replies; 4+ messages in thread
From: Falk Hueffner @ 2003-02-14  9:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

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));
 
 --=-=-=--


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2003-02-15 22:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-02-14 22:36 optimization/7702: [PATCH] Make reload-cse honor CANNOT_CHANGE_MODE_CLASS Richard Henderson
  -- strict thread matches above, loose matches on Subject: below --
2003-02-15 22:36 Falk Hueffner
2003-02-14 22:36 Falk Hueffner
2003-02-14  9:36 Falk Hueffner

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).