* predict.def: Set hitrates according our experimental run.
authorJan Hubicka <jh@suse.cz>
Wed, 8 Aug 2001 16:46:22 +0000 (18:46 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Wed, 8 Aug 2001 16:46:22 +0000 (16:46 +0000)
From-SVN: r44719

gcc/ChangeLog
gcc/config/i386/i386.h
gcc/predict.def

index 3e9cb99..aa19eca 100644 (file)
@@ -1,3 +1,11 @@
+Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * predict.def: Set hitrates according our experimental run.
+
+Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.h (HARD_REGNO_RENAME_OK): New macro.
+
 2001-08-08  H.J. Lu <hjl@gnu.org>
 
        * config/mips/mips.c (mips_unique_section): New. Copied from
index e145cae..a0d23f6 100644 (file)
@@ -3186,6 +3186,15 @@ enum fp_cw_mode {FP_CW_STORED, FP_CW_UNINITIALIZED, FP_CW_ANY};
    ? emit_i387_cw_initialization (assign_386_stack_local (HImode, 1),  \
                                  assign_386_stack_local (HImode, 2)), 0\
    : 0)
+\f
+/* Avoid renaming of stack registers, as doing so in combination with
+   scheduling just increases amount of live registers at time and in
+   the turn amount of fxch instructions needed.
+
+   ??? Maybe Pentium chips benefits from renaming, someone can try...  */
+
+#define HARD_REGNO_RENAME_OK(src,target)  \
+   ((src) < FIRST_STACK_REG || (src) > LAST_STACK_REG)
 
 \f
 /*
index 28b0bbf..7559a12 100644 (file)
@@ -66,7 +66,7 @@ DEF_PREDICTOR (PRED_LOOP_BRANCH, "loop branch", HITRATE (88),
               PRED_FLAG_FIRST_MATCH)
 
 /* Edge causing loop to terminate is probably not taken. */
-DEF_PREDICTOR (PRED_LOOP_EXIT, "loop exit", HITRATE (80),
+DEF_PREDICTOR (PRED_LOOP_EXIT, "loop exit", HITRATE (92),
               PRED_FLAG_FIRST_MATCH)
 
 /* Condition emitted by preconditiong code to ensure that variable
@@ -77,16 +77,16 @@ DEF_PREDICTOR (PRED_LOOP_CONDITION, "loop condition", PROB_VERY_LIKELY, 0)
 DEF_PREDICTOR (PRED_LOOP_PRECONDITIONING, "loop preconditioning", PROB_VERY_LIKELY, 0)
 
 /* Copied condition for the first iteration of loop is probably true.  */
-DEF_PREDICTOR (PRED_LOOP_HEADER, "loop header", HITRATE (75), 0)
+DEF_PREDICTOR (PRED_LOOP_HEADER, "loop header", HITRATE (60), 0)
 
 /* Pointers are usually not NULL.  */
-DEF_PREDICTOR (PRED_POINTER, "pointer", HITRATE (60), 0)
+DEF_PREDICTOR (PRED_POINTER, "pointer", HITRATE (75), 0)
 
 /* NE is probable, EQ not etc...  */
-DEF_PREDICTOR (PRED_OPCODE, "opcode", HITRATE (84), 0)
+DEF_PREDICTOR (PRED_OPCODE, "opcode", HITRATE (53), 0)
 
 /* Branch guarding call is probably taken.  */
-DEF_PREDICTOR (PRED_CALL, "call", HITRATE (78), 0)
+DEF_PREDICTOR (PRED_CALL, "call", HITRATE (66), 0)
 
 /* Branch causing function to terminate is probably not taken.  */
 DEF_PREDICTOR (PRED_ERROR_RETURN, "error return", PROB_LIKELY, 0)