osprey-gcc-4.2.0/gcc/bt-load.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "rtl.h"
#include "hard-reg-set.h"
#include "regs.h"
#include "fibheap.h"
#include "output.h"
#include "target.h"
#include "expr.h"
#include "flags.h"
#include "insn-attr.h"
#include "function.h"
#include "except.h"
#include "tm_p.h"
#include "toplev.h"
#include "tree-pass.h"

Include dependency graph for bt-load.c:

Go to the source code of this file.

Data Types

type  btr_def_group_s
type  btr_user_s
type  btr_def_s
type  defs_uses_info

Typedefs

typedef struct btr_def_group_sbtr_def_group
typedef struct btr_user_sbtr_user
typedef struct btr_def_sbtr_def

Functions/Subroutines

static int basic_block_freq (basic_block)
static int insn_sets_btr_p (rtx, int, int *)
static rtxfind_btr_use (rtx)
static int btr_referenced_p (rtx, rtx *)
static int find_btr_reference (rtx *, void *)
static void find_btr_def_group (btr_def_group *, btr_def)
static btr_def add_btr_def (fibheap_t, basic_block, int, rtx, unsigned int, int, btr_def_group *)
static btr_user new_btr_user (basic_block, int, rtx)
static void dump_hard_reg_set (HARD_REG_SET)
static void dump_btrs_live (int)
static void note_other_use_this_block (unsigned int, btr_user)
static void compute_defs_uses_and_gen (fibheap_t, btr_def *, btr_user *, sbitmap *, sbitmap *, HARD_REG_SET *)
static void compute_kill (sbitmap *, sbitmap *, HARD_REG_SET *)
static void compute_out (sbitmap *bb_out, sbitmap *, sbitmap *, int)
static void link_btr_uses (btr_def *, btr_user *, sbitmap *, sbitmap *, int)
static void build_btr_def_use_webs (fibheap_t)
static int block_at_edge_of_live_range_p (int, btr_def)
static void clear_btr_from_live_range (btr_def def)
static void add_btr_to_live_range (btr_def, int)
static void augment_live_range (bitmap, HARD_REG_SET *, basic_block, basic_block, int)
static int choose_btr (HARD_REG_SET)
static void combine_btr_defs (btr_def, HARD_REG_SET *)
static void btr_def_live_range (btr_def, HARD_REG_SET *)
static void move_btr_def (basic_block, int, btr_def, bitmap, HARD_REG_SET *)
static int migrate_btr_def (btr_def, int)
static void migrate_btr_defs (enum reg_class, int)
static int can_move_up (basic_block, rtx, int)
static void note_btr_set (rtx, rtx, void *)
static void note_btr_set (rtx dest, rtx set ATTRIBUTE_UNUSED, void *data)
void branch_target_load_optimize (bool after_prologue_epilogue_gen)
static bool gate_handle_branch_target_load_optimize (void)
static unsigned int rest_of_handle_branch_target_load_optimize (void)

Variables

static int issue_rate
static struct obstack migrate_btrl_obstack
static HARD_REG_SET * btrs_live
static HARD_REG_SET * btrs_live_at_end
static HARD_REG_SET all_btrs
static int first_btr
static int last_btr
static rtxbtr_reference_found
struct tree_opt_pass pass_branch_target_load_optimize


Typedef Documentation


Function Documentation

static btr_def add_btr_def ( fibheap_t  all_btr_defs,
basic_block  bb,
int  insn_luid,
rtx  insn,
unsigned int  dest_reg,
int  other_btr_uses_before_def,
btr_def_group all_btr_def_groups 
) [static]

static void add_btr_to_live_range ( btr_def  def,
int  own_end 
) [static]

static void augment_live_range ( bitmap  live_range,
HARD_REG_SET *  btrs_live_in_range,
basic_block  head_bb,
basic_block  new_bb,
int  full_range 
) [static]

static int basic_block_freq ( basic_block  bb  )  [static]

Definition at line 181 of file bt-load.c.

References basic_block_def::frequency.

static int block_at_edge_of_live_range_p ( int  bb,
btr_def  def 
) [static]

void branch_target_load_optimize ( bool  after_prologue_epilogue_gen  ) 

static void btr_def_live_range ( btr_def  def,
HARD_REG_SET *  btrs_live_in_range 
) [static]

static int btr_referenced_p ( rtx  x,
rtx excludep 
) [static]

Definition at line 217 of file bt-load.c.

References find_btr_reference(), and for_each_rtx().

static void build_btr_def_use_webs ( fibheap_t  all_btr_defs  )  [static]

static int can_move_up ( basic_block  bb,
rtx  insn,
int  n_insns 
) [static]

Definition at line 1241 of file bt-load.c.

References BB_HEAD, INSN_P, and PREV_INSN.

static int choose_btr ( HARD_REG_SET  used_btrs  )  [static]

Definition at line 988 of file bt-load.c.

References all_btrs, FIRST_PSEUDO_REGISTER, GO_IF_HARD_REG_SUBSET, i, and TEST_HARD_REG_BIT.

static void clear_btr_from_live_range ( btr_def  def  )  [static]

static void combine_btr_defs ( btr_def  def,
HARD_REG_SET *  btrs_live_in_range 
) [static]

static void compute_defs_uses_and_gen ( fibheap_t  all_btr_defs,
btr_def def_array,
btr_user use_array,
sbitmap btr_defset,
sbitmap bb_gen,
HARD_REG_SET *  btrs_written 
) [static]

static void compute_kill ( sbitmap bb_kill,
sbitmap btr_defset,
HARD_REG_SET *  btrs_written 
) [static]

static void compute_out ( sbitmap bb_out,
sbitmap bb_gen,
sbitmap bb_kill,
int  max_uid 
) [static]

static void dump_btrs_live ( int  bb  )  [static]

Definition at line 394 of file bt-load.c.

References btrs_live, dump_file, dump_hard_reg_set(), and fprintf().

static void dump_hard_reg_set ( HARD_REG_SET  s  )  [static]

Definition at line 384 of file bt-load.c.

References dump_file, FIRST_PSEUDO_REGISTER, fprintf(), and TEST_HARD_REG_BIT.

static void find_btr_def_group ( btr_def_group all_btr_def_groups,
btr_def  def 
) [static]

static int find_btr_reference ( rtx px,
void preg 
) [static]

Definition at line 193 of file bt-load.c.

References all_btrs, btr_reference_found, GET_MODE, hard_regno_nregs, i, REG_P, REGNO, TEST_HARD_REG_BIT, and x.

static rtx * find_btr_use ( rtx  insn  )  [static]

Definition at line 258 of file bt-load.c.

References btr_reference_found, btr_referenced_p(), and NULL.

static bool gate_handle_branch_target_load_optimize ( void   )  [static]

Definition at line 1497 of file bt-load.c.

References optimize.

static int insn_sets_btr_p ( rtx  insn,
int  check_const,
int *  regno 
) [static]

static void link_btr_uses ( btr_def def_array,
btr_user use_array,
sbitmap bb_out,
sbitmap btr_defset,
int  max_uid 
) [static]

static int migrate_btr_def ( btr_def  def,
int  min_cost 
) [static]

static void migrate_btr_defs ( enum reg_class  btr_class,
int  allow_callee_save 
) [static]

static void move_btr_def ( basic_block  new_def_bb,
int  btr,
btr_def  def,
bitmap  live_range,
HARD_REG_SET *  btrs_live_in_range 
) [static]

static btr_user new_btr_user ( basic_block  bb,
int  insn_luid,
rtx  insn 
) [static]

static void note_btr_set ( rtx  dest,
rtx set  ATTRIBUTE_UNUSED,
void data 
) [static]

static void note_btr_set ( rtx  ,
rtx  ,
void  
) [static]

static void note_other_use_this_block ( unsigned int  regno,
btr_user  users_this_bb 
) [static]

Definition at line 406 of file bt-load.c.

References btr_user_s::next, NULL, btr_user_s::other_use_this_block, REGNO, and btr_user_s::use.

static unsigned int rest_of_handle_branch_target_load_optimize ( void   )  [static]

Definition at line 1504 of file bt-load.c.

References branch_target_load_optimize(), epilogue_completed, and warning.


Variable Documentation

HARD_REG_SET all_btrs [static]

Definition at line 171 of file bt-load.c.

Definition at line 186 of file bt-load.c.

HARD_REG_SET* btrs_live [static]

Definition at line 164 of file bt-load.c.

HARD_REG_SET* btrs_live_at_end [static]

Definition at line 168 of file bt-load.c.

int first_btr [static]

Definition at line 175 of file bt-load.c.

int issue_rate [static]

Definition at line 111 of file bt-load.c.

int last_btr [static]

Definition at line 175 of file bt-load.c.

Definition at line 160 of file bt-load.c.

Initial value:

Definition at line 1525 of file bt-load.c.

Referenced by init_optimization_passes().


Generated on Wed Apr 8 14:19:32 2009 for Open64 by  doxygen 1.5.6