ipa-prop.c (ipa_impossible_devirt_target): No longer static, renamed to ipa_impossibl...
authorMartin Jambor <mjambor@suse.cz>
Thu, 26 Jun 2014 12:55:40 +0000 (14:55 +0200)
committerMartin Jambor <jamborm@gcc.gnu.org>
Thu, 26 Jun 2014 12:55:40 +0000 (14:55 +0200)
2014-06-26  Martin Jambor  <mjambor@suse.cz>

* ipa-prop.c (ipa_impossible_devirt_target): No longer static,
renamed to ipa_impossible_devirt_target.  Fix typo.
* ipa-prop.h (ipa_impossible_devirt_target): Declare.
* ipa-cp.c (ipa_get_indirect_edge_target_1): Use
ipa_impossible_devirt_target.

testsuite/
* g++.dg/ipa/pr60600.C: Fix typo.
* g++.dg/ipa/devirt-25.C: Likewise.
* g++.dg/ipa/pr61540.C: Likewise.

From-SVN: r212028

gcc/ChangeLog
gcc/ipa-cp.c
gcc/ipa-prop.c
gcc/ipa-prop.h
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ipa/devirt-25.C
gcc/testsuite/g++.dg/ipa/pr60600.C

index e7ced0c..31712fa 100644 (file)
@@ -1,3 +1,11 @@
+2014-06-26  Martin Jambor  <mjambor@suse.cz>
+
+       * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
+       renamed to ipa_impossible_devirt_target.  Fix typo.
+       * ipa-prop.h (ipa_impossible_devirt_target): Declare.
+       * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
+       ipa_impossible_devirt_target.
+
 2014-06-26  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/61607
index 04e88b5..bc0ab56 100644 (file)
@@ -1587,15 +1587,7 @@ ipa_get_indirect_edge_target_1 (struct cgraph_edge *ie,
                   && DECL_FUNCTION_CODE (target) == BUILT_IN_UNREACHABLE)
                  || !possible_polymorphic_call_target_p
                       (ie, cgraph_get_node (target)))
-               {
-                 if (dump_file)
-                   fprintf (dump_file,
-                            "Type inconsident devirtualization: %s/%i->%s\n",
-                            ie->caller->name (), ie->caller->order,
-                            IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (target)));
-                 target = builtin_decl_implicit (BUILT_IN_UNREACHABLE);
-                 cgraph_get_create_node (target);
-               }
+               target = ipa_impossible_devirt_target (ie, target);
              return target;
            }
        }
@@ -1629,7 +1621,7 @@ ipa_get_indirect_edge_target_1 (struct cgraph_edge *ie,
       if (targets.length () == 1)
        target = targets[0]->decl;
       else
-       target = builtin_decl_implicit (BUILT_IN_UNREACHABLE);
+       target = ipa_impossible_devirt_target (ie, NULL_TREE);
     }
   else
     {
@@ -1643,15 +1635,7 @@ ipa_get_indirect_edge_target_1 (struct cgraph_edge *ie,
 
   if (target && !possible_polymorphic_call_target_p (ie,
                                                     cgraph_get_node (target)))
-    {
-      if (dump_file)
-       fprintf (dump_file,
-                "Type inconsident devirtualization: %s/%i->%s\n",
-                ie->caller->name (), ie->caller->order,
-                IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (target)));
-      target = builtin_decl_implicit (BUILT_IN_UNREACHABLE);
-      cgraph_get_create_node (target);
-    }
+    target = ipa_impossible_devirt_target (ie, target);
 
   return target;
 }
index 5f5bf89..1e10b53 100644 (file)
@@ -2915,14 +2915,14 @@ try_make_edge_direct_simple_call (struct cgraph_edge *ie,
 /* Return the target to be used in cases of impossible devirtualization.  IE
    and target (the latter can be NULL) are dumped when dumping is enabled.  */
 
-static tree
-impossible_devirt_target (struct cgraph_edge *ie, tree target)
+tree
+ipa_impossible_devirt_target (struct cgraph_edge *ie, tree target)
 {
   if (dump_file)
     {
       if (target)
        fprintf (dump_file,
-                "Type inconsident devirtualization: %s/%i->%s\n",
+                "Type inconsistent devirtualization: %s/%i->%s\n",
                 ie->caller->name (), ie->caller->order,
                 IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (target)));
       else
@@ -2969,7 +2969,7 @@ try_make_edge_direct_virtual_call (struct cgraph_edge *ie,
                   && DECL_FUNCTION_CODE (target) == BUILT_IN_UNREACHABLE)
                  || !possible_polymorphic_call_target_p
                       (ie, cgraph_get_node (target)))
-               target = impossible_devirt_target (ie, target);
+               target = ipa_impossible_devirt_target (ie, target);
              return ipa_make_edge_direct_to_target (ie, target);
            }
        }
@@ -2999,7 +2999,7 @@ try_make_edge_direct_virtual_call (struct cgraph_edge *ie,
       if (targets.length () == 1)
        target = targets[0]->decl;
       else
-       target = impossible_devirt_target (ie, NULL_TREE);
+       target = ipa_impossible_devirt_target (ie, NULL_TREE);
     }
   else
     {
@@ -3015,7 +3015,7 @@ try_make_edge_direct_virtual_call (struct cgraph_edge *ie,
   if (target)
     {
       if (!possible_polymorphic_call_target_p (ie, cgraph_get_node (target)))
-       target = impossible_devirt_target (ie, target);
+       target = ipa_impossible_devirt_target (ie, target);
       return ipa_make_edge_direct_to_target (ie, target);
     }
   else
index cb23698..8886e93 100644 (file)
@@ -586,6 +586,7 @@ tree ipa_get_indirect_edge_target (struct cgraph_edge *ie,
 struct cgraph_edge *ipa_make_edge_direct_to_target (struct cgraph_edge *, tree);
 tree ipa_binfo_from_known_type_jfunc (struct ipa_jump_func *);
 tree ipa_intraprocedural_devirtualization (gimple);
+tree ipa_impossible_devirt_target (struct cgraph_edge *, tree);
 
 /* Functions related to both.  */
 void ipa_analyze_node (struct cgraph_node *);
index 5266253..ff3d0b0 100644 (file)
@@ -1,3 +1,8 @@
+2014-06-26  Martin Jambor  <mjambor@suse.cz>
+
+       * g++.dg/ipa/pr60600.C: Fix typo.
+       * g++.dg/ipa/devirt-25.C: Likewise.
+
 2014-06-26  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/61607
index 387d529..5a8a04f 100644 (file)
@@ -23,5 +23,5 @@ void dpr_run(ebs_Object& objectA) {
   dpr_Job jobL;
   dpr_run(jobL);
 }
-/* { dg-final { scan-ipa-dump "Type inconsident devirtualization" "cp"  } } */
+/* { dg-final { scan-ipa-dump "Type inconsistent devirtualization" "cp"  } } */
 /* { dg-final { cleanup-ipa-dump "cp" } } */
index 00c368e..0753931 100644 (file)
@@ -30,5 +30,5 @@ void test(top& t)
     test(d);
 }
 
-/* { dg-final { scan-ipa-dump "Type inconsident devirtualization" "cp" } } */
+/* { dg-final { scan-ipa-dump "Type inconsistent devirtualization" "cp" } } */
 /* { dg-final { cleanup-ipa-dump "cp" } } */