Steven Bosscher <stevenb....@gmail.com> wrote:

>Hello,
>
>IMHO, no RTL pass implementation file should have to include tree.h.
>So ira-conflicts.c shouldn't need tree.h. The reason it needed it, was
>because there is code to avoid putting user variables in callee
>clobbered registers, and ira-conflict.c looked at DECL_ARTIFICIAL
>(REG_EXPR (reg)). But it can just look at REG_USERVAR_P(reg) instead,
>which is simper and cleaner.
>
>Likewise, IMHO no CFG implementation files should need tree.h, because
>the CFG should be IR agnostic. But mcf.c needed tree.h for
>lang_hooks.decl_printable_name from langhooks.h. It can use
>current_function_name() instead.
>
>Bootstrapped and tested on powerpc64-unknown-linux-gnu. OK for trunk?

Ok.

Thanks,
Richard.

>Ciao!
>Steven
>
>       * mcf.c: Do not include tm.h, tree.h, and langhooks.h.
>       (dump_fixup_graph): Use current_function_name.
>       (adjust_cfg_counts): Likewise.
>       * ira-conflicts.c: Do not include tree.h.
>       (ira_build_conflicts): Use REG_USERVAR_P instead of DECL_ARTIFICIAL.
>
>Index: mcf.c
>===================================================================
>--- mcf.c      (revision 189359)
>+++ mcf.c      (working copy)
>@@ -46,13 +46,8 @@ along with GCC; see the file COPYING3.  If not see
> #include "config.h"
> #include "system.h"
> #include "coretypes.h"
>-#include "tm.h"
> #include "basic-block.h"
>-#include "tree.h"             /* FIXME: Only for langhooks.h.  */
>-#include "langhooks.h"
>-#include "tree.h"
> #include "gcov-io.h"
>-
> #include "profile.h"
>
> /* CAP_INFINITY: Constant to represent infinite capacity.  */
>@@ -290,7 +285,7 @@ dump_fixup_graph (FILE *file, fixup_graph_type *fi
>   fnum_edges = fixup_graph->num_edges;
>
>   fprintf (file, "\nDump fixup graph for %s(): %s.\n",
>-         lang_hooks.decl_printable_name (current_function_decl, 2), msg);
>+         current_function_name (), msg);
>   fprintf (file,
>          "There are %d vertices and %d edges. new_exit_index is %d.\n\n",
>          fnum_vertices, fnum_edges, fixup_graph->new_exit_index);
>@@ -1280,8 +1275,8 @@ adjust_cfg_counts (fixup_graph_type *fixup_graph)
>   if (dump_file)
>     {
>       fprintf (dump_file, "\nCheck %s() CFG flow conservation:\n",
>-           lang_hooks.decl_printable_name (current_function_decl, 2));
>-      FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR->next_bb, EXIT_BLOCK_PTR,
>next_bb)
>+             current_function_name ());
>+      FOR_EACH_BB (bb)
>         {
>           if ((bb->count != sum_edge_counts (bb->preds))
>                || (bb->count != sum_edge_counts (bb->succs)))
>Index: ira-conflicts.c
>===================================================================
>--- ira-conflicts.c    (revision 189359)
>+++ ira-conflicts.c    (working copy)
>@@ -25,7 +25,6 @@ along with GCC; see the file COPYING3.  If not see
> #include "tm.h"
> #include "regs.h"
> #include "rtl.h"
>-#include "tree.h"             /* For DECL_ARTIFICIAL and friends.  */
> #include "tm_p.h"
> #include "target.h"
> #include "flags.h"
>@@ -893,17 +892,12 @@ ira_build_conflicts (void)
>       for (i = 0; i < n; i++)
>       {
>         ira_object_t obj = ALLOCNO_OBJECT (a, i);
>-        reg_attrs *attrs = REG_ATTRS (regno_reg_rtx [ALLOCNO_REGNO (a)]);
>-        tree decl;
>+        rtx allocno_reg = regno_reg_rtx [ALLOCNO_REGNO (a)];
>
>         if ((! flag_caller_saves && ALLOCNO_CALLS_CROSSED_NUM (a) != 0)
>             /* For debugging purposes don't put user defined variables in
>                callee-clobbered registers.  */
>-            || (optimize == 0
>-                && attrs != NULL
>-                && (decl = attrs->decl) != NULL
>-                && VAR_OR_FUNCTION_DECL_P (decl)
>-                && ! DECL_ARTIFICIAL (decl)))
>+            || (optimize == 0 && REG_USERVAR_P (allocno_reg)))
>           {
>             IOR_HARD_REG_SET (OBJECT_TOTAL_CONFLICT_HARD_REGS (obj),
>                               call_used_reg_set);


-- 
Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.

Reply via email to