OSDN Git Service

* predict.def: Set outcomes according to more recent results.
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Feb 2007 00:07:03 +0000 (00:07 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 27 Feb 2007 00:07:03 +0000 (00:07 +0000)
(PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
Remove dead predictors.
* predict.c (return_prediction): Fix pasto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122347 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/predict.c
gcc/predict.def

index dc22856..061145d 100644 (file)
@@ -1,3 +1,10 @@
+2007-02-26  Jan Hubicka  <jh@suse.cz>
+
+       * predict.def: Set outcomes according to more recent results.
+       (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
+       Remove dead predictors.
+       * predict.c (return_prediction): Fix pasto.
+
 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
 
        * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
index 0e86c52..f390ebe 100644 (file)
@@ -1152,7 +1152,7 @@ return_prediction (tree val, enum prediction *prediction)
          && (!integer_zerop (val) && !integer_onep (val)))
        {
          *prediction = TAKEN;
-         return PRED_NEGATIVE_RETURN;
+         return PRED_CONST_RETURN;
        }
     }
   return PRED_NO_PREDICTION;
index 22474b3..da27031 100644 (file)
@@ -74,41 +74,30 @@ DEF_PREDICTOR (PRED_NORETURN, "noreturn call", HITRATE (99),
               PRED_FLAG_FIRST_MATCH)
 
 /* Loopback edge is taken.  */
-DEF_PREDICTOR (PRED_LOOP_BRANCH, "loop branch", HITRATE (89),
+DEF_PREDICTOR (PRED_LOOP_BRANCH, "loop branch", HITRATE (86),
               PRED_FLAG_FIRST_MATCH)
 
 /* Edge causing loop to terminate is probably not taken.  */
-DEF_PREDICTOR (PRED_LOOP_EXIT, "loop exit", HITRATE (90),
+DEF_PREDICTOR (PRED_LOOP_EXIT, "loop exit", HITRATE (91),
               PRED_FLAG_FIRST_MATCH)
 
-/* Condition emitted by preconditiong code to ensure that variable
-   setting number of iterations is greater than initial value of iterator.  */
-DEF_PREDICTOR (PRED_LOOP_CONDITION, "loop condition", PROB_VERY_LIKELY, 0)
-
-/* Preconditioning makes linear list of branches.  */
-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 (64), 0)
-
 /* Pointers are usually not NULL.  */
-DEF_PREDICTOR (PRED_POINTER, "pointer", HITRATE (81), 0)
-DEF_PREDICTOR (PRED_TREE_POINTER, "pointer (on trees)", HITRATE (81), 0)
+DEF_PREDICTOR (PRED_POINTER, "pointer", HITRATE (85), 0)
+DEF_PREDICTOR (PRED_TREE_POINTER, "pointer (on trees)", HITRATE (85), 0)
 
 /* NE is probable, EQ not etc...  */
 DEF_PREDICTOR (PRED_OPCODE_POSITIVE, "opcode values positive", HITRATE (79), 0)
 DEF_PREDICTOR (PRED_OPCODE_NONEQUAL, "opcode values nonequal", HITRATE (71), 0)
 DEF_PREDICTOR (PRED_FPOPCODE, "fp_opcode", HITRATE (90), 0)
-DEF_PREDICTOR (PRED_TREE_OPCODE_POSITIVE, "opcode values positive (on trees)", HITRATE (79), 0)
-DEF_PREDICTOR (PRED_TREE_OPCODE_NONEQUAL, "opcode values nonequal (on trees)", HITRATE (71), 0)
+DEF_PREDICTOR (PRED_TREE_OPCODE_POSITIVE, "opcode values positive (on trees)", HITRATE (70), 0)
+DEF_PREDICTOR (PRED_TREE_OPCODE_NONEQUAL, "opcode values nonequal (on trees)", HITRATE (69), 0)
 DEF_PREDICTOR (PRED_TREE_FPOPCODE, "fp_opcode (on trees)", HITRATE (90), 0)
 
 /* Branch guarding call is probably taken.  */
-DEF_PREDICTOR (PRED_CALL, "call", HITRATE (70), 0)
+DEF_PREDICTOR (PRED_CALL, "call", HITRATE (69), 0)
 
 /* Branch causing function to terminate is probably not taken.  */
-DEF_PREDICTOR (PRED_EARLY_RETURN, "early return", HITRATE (67), 0)
-DEF_PREDICTOR (PRED_TREE_EARLY_RETURN, "early return (on trees)", HITRATE (67), 0)
+DEF_PREDICTOR (PRED_TREE_EARLY_RETURN, "early return (on trees)", HITRATE (45), 0)
 
 /* Branch containing goto is probably not taken.  */
 DEF_PREDICTOR (PRED_GOTO, "goto", HITRATE (70), 0)
@@ -117,10 +106,10 @@ DEF_PREDICTOR (PRED_GOTO, "goto", HITRATE (70), 0)
 DEF_PREDICTOR (PRED_CONST_RETURN, "const return", HITRATE (95), 0)
 
 /* Branch ending with return negative constant is probably not taken.  */
-DEF_PREDICTOR (PRED_NEGATIVE_RETURN, "negative return", HITRATE (96), 0)
+DEF_PREDICTOR (PRED_NEGATIVE_RETURN, "negative return", HITRATE (77), 0)
 
 /* Branch ending with return; is probably not taken */
-DEF_PREDICTOR (PRED_NULL_RETURN, "null return", HITRATE (90), 0)
+DEF_PREDICTOR (PRED_NULL_RETURN, "null return", HITRATE (96), 0)
 
 /* Branches to a mudflap bounds check are extremely unlikely.  */
-DEF_PREDICTOR (PRED_MUDFLAP, "mudflap check", HITRATE (99), 0)
+DEF_PREDICTOR (PRED_MUDFLAP, "mudflap check", PROB_VERY_LIKELY, 0)