[patch] Make mcf.c and ira-conflicts.c not include tree.h
Richard Günther
richard.guenther@gmail.com
Sun Jul 8 18:04:00 GMT 2012
Steven Bosscher <stevenb.gcc@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.
More information about the Gcc-patches
mailing list