Hi,

This is a patch to do some obvious cleanup and setting correct
input_location in ipa_prop (because it invokes gimplification
routines).

Bootstrapped and passed gcc regression tests.

Is it okay for trunk?

Thanks,
Dehao

gcc/ChangeLog:
2010-11-05  Dehao Chen  <de...@google.com>

        * ipa-prop.c (ipa_modify_call_arguments): Set input_location so that
        gimplification routines can have right location.
        * emit-rtl.c (last_location): Remove unused variable.
Index: gcc/ipa-prop.c
===================================================================
--- gcc/ipa-prop.c      (revision 193174)
+++ gcc/ipa-prop.c      (working copy)
@@ -2826,7 +2826,9 @@ ipa_modify_call_arguments (struct cgraph_edge *cs,
   gimple_stmt_iterator gsi;
   tree callee_decl;
   int i, len;
+  location_t saved_location = input_location;
 
+  input_location = gimple_location (stmt);
   len = VEC_length (ipa_parm_adjustment_t, adjustments);
   vargs = VEC_alloc (tree, heap, len);
   callee_decl = !cs ? gimple_call_fndecl (stmt) : cs->callee->symbol.decl;
@@ -3004,6 +3006,7 @@ ipa_modify_call_arguments (struct cgraph_edge *cs,
   if (cs)
     cgraph_set_call_stmt (cs, new_stmt);
   update_ssa (TODO_update_ssa);
+  input_location = saved_location;
   free_dominance_info (CDI_DOMINATORS);
 }
 
Index: gcc/emit-rtl.c
===================================================================
--- gcc/emit-rtl.c      (revision 193174)
+++ gcc/emit-rtl.c      (working copy)
@@ -5937,7 +5937,7 @@ location_t epilogue_location;
 /* Hold current location information and last location information, so the
    datastructures are built lazily only when some instructions in given
    place are needed.  */
-static location_t curr_location, last_location;
+static location_t curr_location;
 
 /* Allocate insn location datastructure.  */
 void
@@ -5945,7 +5945,6 @@ insn_locations_init (void)
 {
   prologue_location = epilogue_location = 0;
   curr_location = UNKNOWN_LOCATION;
-  last_location = UNKNOWN_LOCATION;
 }
 
 /* At the end of emit stage, clear current location.  */

Reply via email to