combine.c (distribute_notes): Don't look at global_regs for pseudos.
authorZack Weinberg <zack@gcc.gnu.org>
Wed, 30 Jun 2004 03:28:31 +0000 (03:28 +0000)
committerZack Weinberg <zack@gcc.gnu.org>
Wed, 30 Jun 2004 03:28:31 +0000 (03:28 +0000)
* combine.c (distribute_notes): Don't look at global_regs for
pseudos.

From-SVN: r83889

gcc/ChangeLog
gcc/Makefile.in
gcc/combine.c

index 441759fc88fe33e45b93c29b2948dfc4d2598b28..94c5c964ea98e4d9afb9c4c3fd50d1a59206311e 100644 (file)
@@ -1,3 +1,8 @@
+2004-06-29  Zack Weinberg  <zack@codesourcery.com>
+
+       * combine.c (distribute_notes): Don't look at global_regs for
+       pseudos.
+
 2004-06-29  Richard Henderson  <rth@redhat.com>
 
        * gimplify.c (gimplify_modify_expr_rhs): Move immediately before
        * tree-ssa-dom.c (need_eh_cleanup): New.
        (tree_ssa_dominator_optimize): Allocate it.  Cleanup eh edges.
        (optimize_stmt): Cleanup eh stmts; set need_eh_cleanup.
-       
+
 2004-06-29  Alan Modra  <amodra@bigpond.net.au>
 
        * function.c (assign_parms): Don't abort with zero size stack
        tree_check4_failed, tree_check5_failed): Remove.
        (TREE_CHECK, TREE_CHECK2, TREE_CHECK3, TREE_CHECK4,
        TREE_CHECK5): Adjust.
-       (TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4, 
+       (TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4,
        TREE_NOT_CHECK5): New.
        (TREE_VEC_ELT_CHECK, PHI_NODE_ELT_CHECK, TREE_OPERAND_CHECK_CODE,
        TREE_RTL_OPERAND_CHECK): Adjust.
        (dump_generic_node, case DECL_EXPR): New case.
        (dump_generic_node, case PLACEHOLDER_EXPR): Handle.
        (print_declaration): Handle type and function declarations.
-       
+
        * tree-nested.c (create_tmp_var_for): Allow ARRAY_TYPE.
        (convert_nonlocal_reference, convert_local_reference): Properly
        convert nest of handled component references.
        <BIT_XOR_EXPR>: Optimize ~X|X and X|~X as -1.
        <BIT_AND_EXPR>: Optimize ~X&X and X&~X as 0.
        <TRUTH_AND_EXPR, TRUTH_ANDIF_EXPR>: Optimize !X&&X and X&&!X as false.
-        <TRUTH_OR_EXPR, TRUTH_ORIF_EXPR>: Optimize !X||X and !X||X as true.
+       <TRUTH_OR_EXPR, TRUTH_ORIF_EXPR>: Optimize !X||X and !X||X as true.
        <TRUTH_XOR_EXPR>: Optimize !X^X and X^X! as true.  Now that
        TRUTH_XOR_EXPR is a commutative tree code, don't test whether arg0
        is a constant.
        * tree.c (has_cleanups, case DECL_EXPR): New case.
        * tree.def (DECL_EXPR): New code.
        * tree.h (DECL_EXPR_DECL): New macro.
-       
+
        * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted.
 
 2004-06-26  Andrew Pinski  <pinskia@physics.uc.edu>
 
 2004-06-21  Richard Henderson  <rth@redhat.com>
 
-        PR rtl-opt/16114
-        * cse.c (merge_equiv_classes): Also rehash in response to
-        delete_reg_equiv changes.
-        (rehash_using_reg): Don't exclude REGs from rehashing.
+       PR rtl-opt/16114
+       * cse.c (merge_equiv_classes): Also rehash in response to
+       delete_reg_equiv changes.
+       (rehash_using_reg): Don't exclude REGs from rehashing.
 
 2004-06-21  Richard Henderson  <rth@redhat.com>
 
index 8a412fc0a78225877502c5f9a654672ee3c115dc..9577f12993a6488f3658724057bb8b53804c168d 100644 (file)
@@ -1376,7 +1376,7 @@ c-ppoutput.o : c-ppoutput.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
 c-objc-common.o : c-objc-common.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
     $(C_TREE_H) $(RTL_H) insn-config.h $(INTEGRATE_H) $(EXPR_H) $(C_TREE_H) \
     $(FLAGS_H) toplev.h tree-inline.h $(DIAGNOSTIC_H) $(VARRAY_H) \
-    langhooks.h $(GGC_H) $(TARGET_H) cgraph.h
+    langhooks.h $(GGC_H) $(TARGET_H)
 c-aux-info.o : c-aux-info.c  $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
     $(C_TREE_H) $(FLAGS_H) toplev.h
 c-convert.o : c-convert.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
index 7ce6b32c59a68d895eb997c3e8b48ea795376772..f82858023dc271effd08e5c1feda03fa8d8ef603 100644 (file)
@@ -11839,8 +11839,9 @@ distribute_notes (rtx notes, rtx from_insn, rtx i3, rtx i2)
                     TEM is doing.  If so, delete TEM.  Otherwise, make this
                     into a REG_UNUSED note instead. Don't delete sets to
                     global register vars.  */
-                 if (reg_set_p (XEXP (note, 0), PATTERN (tem))
-                     && !global_regs [REGNO(XEXP (note, 0))])
+                 if ((REGNO (XEXP (note, 0)) >= FIRST_PSEUDO_REGISTER
+                      || !global_regs[REGNO (XEXP (note, 0))])
+                     && reg_set_p (XEXP (note, 0), PATTERN (tem)))
                    {
                      rtx set = single_set (tem);
                      rtx inner_dest = 0;