Goodbye REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED
authorAlan Modra <amodra@gmail.com>
Sat, 30 Apr 2016 00:01:52 +0000 (09:31 +0930)
committerAlan Modra <amodra@gcc.gnu.org>
Sat, 30 Apr 2016 00:01:52 +0000 (09:31 +0930)
* regs.h (struct reg_info_t): Delete freq_calls_crossed and
throw_calls_crossed.
(REG_FREQ_CALLS_CROSSED): Delete.
(REG_N_THROWING_CALLS_CROSSED): Delete.
* regstat.c (regstat_bb_compute_ri): Don't calculate
REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
(dump_reg_info): Don't print call cross frequency.
* ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
and REG_N_THROWING_CALLS_CROSSED.

From-SVN: r235664

gcc/ChangeLog
gcc/ira.c
gcc/regs.h
gcc/regstat.c

index 8e93e91598897f28886008ce757a64572034613f..98bd8481bd0d8a97496ab8749375bb56e826e7d2 100644 (file)
@@ -1,3 +1,15 @@
+2016-04-30  Alan Modra  <amodra@gmail.com>
+
+       * regs.h (struct reg_info_t): Delete freq_calls_crossed and
+       throw_calls_crossed.
+       (REG_FREQ_CALLS_CROSSED): Delete.
+       (REG_N_THROWING_CALLS_CROSSED): Delete.
+       * regstat.c (regstat_bb_compute_ri): Don't calculate
+       REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
+       (dump_reg_info): Don't print call cross frequency.
+       * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
+       and REG_N_THROWING_CALLS_CROSSED.
+
 2016-04-30  Alan Modra  <amodra@gmail.com>
 
        * regs.h (struct reg_info_t): Delete live_length.
index e597604b2ead0d18e732c92585b58bd108b2794a..a38e67e0b7c15338f6ee4dc2de1037575f764c90 100644 (file)
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -3738,8 +3738,6 @@ combine_and_move_insns (void)
 
          REG_BASIC_BLOCK (regno) = use_bb->index;
          REG_N_CALLS_CROSSED (regno) = 0;
-         REG_FREQ_CALLS_CROSSED (regno) = 0;
-         REG_N_THROWING_CALLS_CROSSED (regno) = 0;
 
          if (use_insn == BB_HEAD (use_bb))
            BB_HEAD (use_bb) = new_insn;
index 244250d127ccb3c85390a2374a0732ed05e83b6a..e07a003f4c409e39cc451c8a0788528fa319d103 100644 (file)
@@ -106,8 +106,6 @@ struct reg_info_t
   int freq;                    /* # estimated frequency (REG n) is used or set */
   int deaths;                  /* # of times (REG n) dies */
   int calls_crossed;           /* # of calls (REG n) is live across */
-  int freq_calls_crossed;      /* # estimated frequency (REG n) crosses call */
-  int throw_calls_crossed;     /* # of calls that may throw (REG n) is live across */
   int basic_block;             /* # of basic blocks (REG n) is used in */
 };
 
@@ -162,12 +160,6 @@ extern size_t reg_info_p_size;
 /* Indexed by N, gives number of CALL_INSNS across which (REG n) is live.  */
 
 #define REG_N_CALLS_CROSSED(N)  (reg_info_p[N].calls_crossed)
-#define REG_FREQ_CALLS_CROSSED(N)  (reg_info_p[N].freq_calls_crossed)
-
-/* Indexed by N, gives number of CALL_INSNS that may throw, across which
-   (REG n) is live.  */
-
-#define REG_N_THROWING_CALLS_CROSSED(N) (reg_info_p[N].throw_calls_crossed)
 
 /* Indexed by n, gives number of basic block that  (REG n) is used in.
    If the value is REG_BLOCK_GLOBAL (-1),
index b25a63c8258e91f70cdd1163c73bb1addeed61b0..a36ab18448a395958af33181d4c212a8ff3a6983 100644 (file)
@@ -94,8 +94,7 @@ regstat_free_n_sets_and_refs (void)
 /*----------------------------------------------------------------------------
    REGISTER INFORMATION
 
-   Process REG_N_DEATHS, REG_N_CALLS_CROSSED,
-   REG_N_THROWING_CALLS_CROSSED and REG_BASIC_BLOCK.
+   Process REG_N_DEATHS, REG_N_CALLS_CROSSED, and REG_BASIC_BLOCK.
 
    ----------------------------------------------------------------------------*/
 
@@ -156,16 +155,10 @@ regstat_bb_compute_ri (basic_block bb, bitmap live)
       /* Process the defs.  */
       if (CALL_P (insn))
        {
-         bool can_throw = can_throw_internal (insn);
          bool set_jump = (find_reg_note (insn, REG_SETJMP, NULL) != NULL);
          EXECUTE_IF_SET_IN_BITMAP (live, 0, regno, bi)
            {
              REG_N_CALLS_CROSSED (regno)++;
-             REG_FREQ_CALLS_CROSSED (regno) += REG_FREQ_FROM_BB (bb);
-             REG_FREQ_CALLS_CROSSED (regno) =
-               MIN (REG_FREQ_CALLS_CROSSED (regno), REG_FREQ_MAX);
-             if (can_throw)
-               REG_N_THROWING_CALLS_CROSSED (regno)++;
 
              /* We have a problem with any pseudoreg that lives
                 across the setjmp.  ANSI says that if a user variable
@@ -344,9 +337,6 @@ regstat_bb_compute_calls_crossed (unsigned int bb_index, bitmap live)
          EXECUTE_IF_SET_IN_BITMAP (live, 0, regno, bi)
            {
              REG_N_CALLS_CROSSED (regno)++;
-             REG_FREQ_CALLS_CROSSED (regno) += REG_FREQ_FROM_BB (bb);
-             REG_FREQ_CALLS_CROSSED (regno) =
-               MIN (REG_FREQ_CALLS_CROSSED (regno), REG_FREQ_MAX);
            }
        }
 
@@ -445,8 +435,6 @@ dump_reg_info (FILE *file)
        fputs ("; crosses 1 call", file);
       else if (REG_N_CALLS_CROSSED (i))
        fprintf (file, "; crosses %d calls", REG_N_CALLS_CROSSED (i));
-      if (REG_FREQ_CALLS_CROSSED (i))
-       fprintf (file, "; crosses call with %d frequency", REG_FREQ_CALLS_CROSSED (i));
       if (regno_reg_rtx[i] != NULL
          && PSEUDO_REGNO_BYTES (i) != UNITS_PER_WORD)
        fprintf (file, "; %d bytes", PSEUDO_REGNO_BYTES (i));