re PR tree-optimization/55334 (mgrid regression (ipa-cp disables vectorization))
authorMartin Jambor <mjambor@suse.cz>
Wed, 20 Feb 2013 12:56:30 +0000 (13:56 +0100)
committerMartin Jambor <jamborm@gcc.gnu.org>
Wed, 20 Feb 2013 12:56:30 +0000 (13:56 +0100)
2013-02-20  Martin Jambor  <mjambor@suse.cz>

PR tree-optimization/55334
* ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
restricted pointers to arrays.

From-SVN: r196171

gcc/ChangeLog
gcc/ipa-cp.c

index 5e18a6c..12380bd 100644 (file)
@@ -1,3 +1,9 @@
+2013-02-20  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/55334
+       * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
+       restricted pointers to arrays.
+
 2013-02-20  Richard Biener  <rguenther@suse.de>
        Jakub Jelinek  <jakub@redhat.com>
 
index 6feb6b6..c79f277 100644 (file)
@@ -730,6 +730,22 @@ initialize_node_lattices (struct cgraph_node *node)
                 cgraph_node_name (node), node->uid,
                 disable ? "BOTTOM" : "VARIABLE");
     }
+  if (!disable)
+    for (i = 0; i < ipa_get_param_count (info) ; i++)
+      {
+       struct ipcp_param_lattices *plats = ipa_get_parm_lattices (info, i);
+       tree t = TREE_TYPE (ipa_get_param(info, i));
+
+       if (POINTER_TYPE_P (t) && TYPE_RESTRICT (t)
+           && TREE_CODE (TREE_TYPE (t)) == ARRAY_TYPE)
+         {
+           set_lattice_to_bottom (&plats->itself);
+           if (dump_file && (dump_flags & TDF_DETAILS)
+               && !node->alias && !node->thunk.thunk_p)
+             fprintf (dump_file, "Going to ignore param %i of of %s/%i.\n",
+                      i, cgraph_node_name (node), node->uid);
+         }
+      }
 
   for (ie = node->indirect_calls; ie; ie = ie->next_callee)
     if (ie->indirect_info->polymorphic)