This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH]: Fix df missing defs for some set destinations


df-scan missed set destinations if you had something like:


(set (parallel:DF (expr_list (reg:DF 136))))

(IE like you get on ia64).

The attached fixes it.

Bootstrapped and regtested on i686-pc-linux-gnu, and verified to fix the
problem on ia64-linux by zdenek.

Committed as obvious.

2006-02-08  Daniel Berlin  <dberlin@dberlin.org>

	* df-scan.c (df_def_record_1): A set destination may
	be a parallel regardless of mode.
Index: df-scan.c
===================================================================
--- df-scan.c	(revision 110757)
+++ df-scan.c	(working copy)
@@ -1116,9 +1116,8 @@ df_def_record_1 (struct dataflow *dflow,
     loc = &SET_DEST (x);
   dst = *loc;
 
-  /* Some targets place small structures in registers for
-     return values of functions.  */
-  if (GET_CODE (dst) == PARALLEL && GET_MODE (dst) == BLKmode)
+  /* It is legal to have a set destination be a parallel. */
+  if (GET_CODE (dst) == PARALLEL)
     {
       int i;
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]