Home | History | Annotate | Download | only in include
      1 /* Definitions for branch prediction routines in the GNU compiler.
      2    Copyright (C) 2001, 2003, 2004, 2007, 2008, 2010
      3    Free Software Foundation, Inc.
      4 
      5 This file is part of GCC.
      6 
      7 GCC is free software; you can redistribute it and/or modify it under
      8 the terms of the GNU General Public License as published by the Free
      9 Software Foundation; either version 3, or (at your option) any later
     10 version.
     11 
     12 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
     13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
     14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
     15 for more details.
     16 
     17 You should have received a copy of the GNU General Public License
     18 along with GCC; see the file COPYING3.  If not see
     19 <http://www.gnu.org/licenses/>.  */
     20 
     21 #ifndef GCC_PREDICT_H
     22 #define GCC_PREDICT_H
     23 
     24 #define DEF_PREDICTOR(ENUM, NAME, HITRATE, FLAGS) ENUM,
     25 enum br_predictor
     26 {
     27 #include "predict.def"
     28 
     29   /* Upper bound on non-language-specific builtins.  */
     30   END_PREDICTORS
     31 };
     32 #undef DEF_PREDICTOR
     33 enum prediction
     34 {
     35    NOT_TAKEN,
     36    TAKEN
     37 };
     38 
     39 extern void predict_insn_def (rtx, enum br_predictor, enum prediction);
     40 extern int counts_to_freqs (void);
     41 extern void estimate_bb_frequencies (void);
     42 extern const char *predictor_name (enum br_predictor);
     43 extern tree build_predict_expr (enum br_predictor, enum prediction);
     44 extern void tree_estimate_probability (void);
     45 extern void compute_function_frequency (void);
     46 extern void rebuild_frequencies (void);
     47 
     48 #endif  /* GCC_PREDICT_H */
     49