gimple.c (gimple_call_same_target_p): Unique functions are eq.
authorNathan Sidwell <nathan@codesourcery.com>
Fri, 6 May 2016 13:02:42 +0000 (13:02 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Fri, 6 May 2016 13:02:42 +0000 (13:02 +0000)
* gimple.c (gimple_call_same_target_p): Unique functions are eq.
* tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
equality first.

From-SVN: r235964

gcc/ChangeLog
gcc/gimple.c
gcc/tree-ssa-tail-merge.c

index 4f7ad75da01890804d29b6e9679336d940d37efc..eea7c7a534bace124b7c84a1f1dd7c256bb2030c 100644 (file)
@@ -1,3 +1,9 @@
+2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * gimple.c (gimple_call_same_target_p): Unique functions are eq.
+       * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
+       equality first.
+
 2016-05-06  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/70948
index 25d965cead224a2e0506b787d8a49b19bb799c17..1a22e8235f100fba8f213dbd5f5bc3d9f259161b 100644 (file)
@@ -1355,7 +1355,8 @@ gimple_call_same_target_p (const gimple *c1, const gimple *c2)
   if (gimple_call_internal_p (c1))
     return (gimple_call_internal_p (c2)
            && gimple_call_internal_fn (c1) == gimple_call_internal_fn (c2)
-           && !gimple_call_internal_unique_p (as_a <const gcall *> (c1)));
+           && (!gimple_call_internal_unique_p (as_a <const gcall *> (c1))
+               || c1 == c2));
   else
     return (gimple_call_fn (c1) == gimple_call_fn (c2)
            || (gimple_call_fndecl (c1)
index e95879fb8aa07a936be1d1c8b94aaff911c4971b..3df41fd08fcb9610138a5ef6d1483ebf93fb57a9 100644 (file)
@@ -538,6 +538,9 @@ same_succ::equal (const same_succ *e1, const same_succ *e2)
   gimple *s1, *s2;
   basic_block bb1, bb2;
 
+  if (e1 == e2)
+    return 1;
+
   if (e1->hashval != e2->hashval)
     return 0;