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] Preserve DECL_GIMPLE_REG_P flag in outof-ssa (PR tree-optimization/34618)


Hi!

On this testcase we get a checking ICE in mudflap2 pass, because one of
a PLUS_EXPR operands is not is_gimple_val.  It has been created by outof-ssa
create_temp from another VAR_DECL, is a vector var but doesn't have
DECL_GIMPLE_REG_P on it.

Fixed by preserving DECL_GIMPLE_REG_P in outof-ssa, bootstrapped/regtested
on powerpc64-linux (and testcase also tested on x86_64-linux), ok for trunk?

2008-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/34618
	* tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
	flag from T.

	* testsuite/libmudflap.c/pass62-frag.c: New test.

--- gcc/tree-outof-ssa.c.jj	2007-11-01 22:20:44.000000000 +0100
+++ gcc/tree-outof-ssa.c	2008-01-05 10:39:31.000000000 +0100
@@ -1,5 +1,5 @@
 /* Convert a program in SSA form into Normal form.
-   Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
    Contributed by Andrew Macleod <amacleod@redhat.com>
 
 This file is part of GCC.
@@ -119,6 +119,7 @@ create_temp (tree t)
     }
   DECL_ARTIFICIAL (tmp) = DECL_ARTIFICIAL (t);
   DECL_IGNORED_P (tmp) = DECL_IGNORED_P (t);
+  DECL_GIMPLE_REG_P (tmp) = DECL_GIMPLE_REG_P (t);
   add_referenced_var (tmp);
 
   /* add_referenced_var will create the annotation and set up some
--- libmudflap/testsuite/libmudflap.c/pass62-frag.c.jj	2008-01-04 23:46:24.000000000 +0100
+++ libmudflap/testsuite/libmudflap.c/pass62-frag.c	2008-01-04 23:17:19.000000000 +0100
@@ -0,0 +1,13 @@
+/* PR tree-optimization/34618 */
+/* { dg-do compile } */
+/* { dg-options "-O3 -fmudflap" } */
+
+int a[16];
+
+void
+foo ()
+{
+  int i;
+  for (i = 0; i < 16; i++)
+    a[i] = i;
+}

	Jakub


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