ICF: Validate correctly hard register variables.
authorMartin Liska <mliska@suse.cz>
Wed, 25 Feb 2015 17:38:09 +0000 (18:38 +0100)
committerMartin Liska <marxin@gcc.gnu.org>
Wed, 25 Feb 2015 17:38:09 +0000 (17:38 +0000)
* ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
hard register variables.

From-SVN: r220985

gcc/ChangeLog
gcc/ipa-icf-gimple.c

index c9270c80d151656866c6e59eb21355614fb0c42b..4d231c3a5ba7b456106d576939680087f90420d6 100644 (file)
@@ -1,3 +1,8 @@
+2015-02-25  Martin Liska  <mliska@suse.cz>
+
+       * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
+       hard register variables.
+
 2015-02-25  Kai Tietz  <ktietz@redhat.com>
 
        PR target/64212
index 5b176d019d71d986b4e7ac2aa5d97854bc00c3e5..53d2c38bc9f08e6792c96d89e4969dd1cd947565 100644 (file)
@@ -575,6 +575,13 @@ func_checker::compare_variable_decl (tree t1, tree t2)
   if (t1 == t2)
     return true;
 
+  if (DECL_HARD_REGISTER (t1) != DECL_HARD_REGISTER (t2))
+    return return_false_with_msg ("DECL_HARD_REGISTER are different");
+
+  if (DECL_HARD_REGISTER (t1)
+      && DECL_ASSEMBLER_NAME (t1) != DECL_ASSEMBLER_NAME (t2))
+    return return_false_with_msg ("HARD REGISTERS are different");
+
   if (TREE_CODE (t1) == VAR_DECL && (DECL_EXTERNAL (t1) || TREE_STATIC (t1)))
     {
       symtab_node *n1 = symtab_node::get (t1);