This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH]: Fix df missing defs for some set destinations
- From: Daniel Berlin <dberlin at dberlin dot org>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 08 Feb 2006 13:36:29 -0500
- Subject: [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;