osprey-gcc-4.2.0/gcc/postreload-gcse.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "toplev.h"
#include "rtl.h"
#include "tree.h"
#include "tm_p.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "flags.h"
#include "real.h"
#include "insn-config.h"
#include "recog.h"
#include "basic-block.h"
#include "output.h"
#include "function.h"
#include "expr.h"
#include "except.h"
#include "intl.h"
#include "obstack.h"
#include "hashtab.h"
#include "params.h"
#include "target.h"
#include "timevar.h"
#include "tree-pass.h"

Include dependency graph for postreload-gcse.c:

Go to the source code of this file.

Data Types

type  expr
type  occr
type  unoccr
type  modifies_mem

Defines

#define INSN_CUID(INSN)   (uid_cuid[INSN_UID (INSN)])

Functions/Subroutines

static void alloc_mem (void)
static void free_mem (void)
static bool oprs_unchanged_p (rtx, rtx, bool)
static void record_last_reg_set_info (rtx, int)
static void record_last_mem_set_info (rtx)
static void record_last_set_info (rtx, rtx, void *)
static void record_opr_changes (rtx)
static void find_mem_conflicts (rtx, rtx, void *)
static int load_killed_in_block_p (int, rtx, bool)
static void reset_opr_set_tables (void)
static hashval_t hash_expr (rtx, int *)
static hashval_t hash_expr_for_htab (const void *)
static int expr_equiv_p (const void *, const void *)
static void insert_expr_in_table (rtx, rtx)
static struct exprlookup_expr_in_table (rtx)
static int dump_hash_table_entry (void **, void *)
static void dump_hash_table (FILE *)
static bool reg_killed_on_edge (rtx, edge)
static bool reg_used_on_edge (rtx, edge)
static rtx reg_set_between_after_reload_p (rtx, rtx, rtx)
static rtx reg_used_between_after_reload_p (rtx, rtx, rtx)
static rtx get_avail_load_store_reg (rtx)
static bool bb_has_well_behaved_predecessors (basic_block)
static struct occrget_bb_avail_insn (basic_block, struct occr *)
static void hash_scan_set (rtx)
static void compute_hash_table (void)
static void eliminate_partially_redundant_load (basic_block, rtx, struct expr *)
static void eliminate_partially_redundant_loads (void)
static void find_mem_conflicts (rtx dest, rtx setter ATTRIBUTE_UNUSED, void *data)
static void record_last_set_info (rtx dest, rtx setter ATTRIBUTE_UNUSED, void *data)
static bool reg_set_or_used_since_bb_start (rtx reg, basic_block bb, rtx up_to_insn)
static int delete_redundant_insns_1 (void **slot, void *data ATTRIBUTE_UNUSED)
static void delete_redundant_insns (void)
static void gcse_after_reload_main (rtx f ATTRIBUTE_UNUSED)
static bool gate_handle_gcse2 (void)
static unsigned int rest_of_handle_gcse2 (void)

Variables

type {
   int   moves_inserted
   int   copies_inserted
   int   insns_deleted
stats
static htab_t expr_table
static struct obstack expr_obstack
static struct obstack occr_obstack
static struct obstack unoccr_obstack
static int * reg_avail_info
static struct modifies_memmodifies_mem_list
static struct obstack modifies_mem_obstack
static struct modifies_memmodifies_mem_obstack_bottom
static int * uid_cuid
static int mems_conflict_p
struct tree_opt_pass pass_gcse2


Define Documentation

#define INSN_CUID ( INSN   )     (uid_cuid[INSN_UID (INSN)])

Definition at line 169 of file postreload-gcse.c.


Function Documentation

static void alloc_mem ( void   )  [static]

static bool bb_has_well_behaved_predecessors ( basic_block  bb  )  [static]

static void compute_hash_table ( void   )  [static]

static void delete_redundant_insns ( void   )  [static]

static int delete_redundant_insns_1 ( void **  slot,
void *data  ATTRIBUTE_UNUSED 
) [static]

static void dump_hash_table ( FILE file  )  [static]

static int dump_hash_table_entry ( void **  slot,
void filep 
) [static]

static void eliminate_partially_redundant_load ( basic_block  bb,
rtx  insn,
struct expr expr 
) [static]

static void eliminate_partially_redundant_loads ( void   )  [static]

static int expr_equiv_p ( const void exp1p,
const void exp2p 
) [static]

Definition at line 309 of file postreload-gcse.c.

References exp_equiv_p(), expr::expr, gcc_assert, and expr::hash.

static void find_mem_conflicts ( rtx  dest,
rtx setter  ATTRIBUTE_UNUSED,
void data 
) [static]

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

static void free_mem ( void   )  [static]

static bool gate_handle_gcse2 ( void   )  [static]

Definition at line 1362 of file postreload-gcse.c.

References optimize.

static void gcse_after_reload_main ( rtx f  ATTRIBUTE_UNUSED  )  [static]

static rtx get_avail_load_store_reg ( rtx  insn  )  [static]

Definition at line 952 of file postreload-gcse.c.

References gcc_assert, PATTERN, REG_P, SET_DEST, and SET_SRC.

static struct occr * get_bb_avail_insn ( basic_block  bb,
struct occr occr 
) [static, read]

Definition at line 991 of file postreload-gcse.c.

References BLOCK_FOR_INSN, occr::insn, occr::next, and NULL.

static hashval_t hash_expr ( rtx  x,
int *  do_not_record_p 
) [static]

Definition at line 287 of file postreload-gcse.c.

References GET_MODE, hash_rtx(), and NULL.

static hashval_t hash_expr_for_htab ( const void expp  )  [static]

Definition at line 299 of file postreload-gcse.c.

References exp, and expr::hash.

static void hash_scan_set ( rtx  insn  )  [static]

static void insert_expr_in_table ( rtx  x,
rtx  insn 
) [static]

static int load_killed_in_block_p ( int  uid_limit,
rtx  x,
bool  after_insn 
) [static]

static struct expr * lookup_expr_in_table ( rtx  pat  )  [static, read]

static bool oprs_unchanged_p ( rtx  x,
rtx  insn,
bool  after_insn 
) [static]

static void record_last_mem_set_info ( rtx  insn  )  [static]

static void record_last_reg_set_info ( rtx  insn,
int  regno 
) [inline, static]

Definition at line 638 of file postreload-gcse.c.

References INSN_CUID.

static void record_last_set_info ( rtx  dest,
rtx setter  ATTRIBUTE_UNUSED,
void data 
) [static]

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

static void record_opr_changes ( rtx  insn  )  [static]

static bool reg_killed_on_edge ( rtx  reg,
edge  e 
) [static]

Definition at line 831 of file postreload-gcse.c.

References modifies_mem::insn, INSN_P, NEXT_INSN, and reg_set_p().

static rtx reg_set_between_after_reload_p ( rtx  reg,
rtx  from_insn,
rtx  to_insn 
) [static]

static bool reg_set_or_used_since_bb_start ( rtx  reg,
basic_block  bb,
rtx  up_to_insn 
) [static]

static rtx reg_used_between_after_reload_p ( rtx  reg,
rtx  from_insn,
rtx  to_insn 
) [static]

static bool reg_used_on_edge ( rtx  reg,
edge  e 
) [static]

static void reset_opr_set_tables ( void   )  [static]

Definition at line 693 of file postreload-gcse.c.

References FIRST_PSEUDO_REGISTER, memset, modifies_mem_obstack, NULL, and obstack_free.

static unsigned int rest_of_handle_gcse2 ( void   )  [static]


Variable Documentation

Definition at line 86 of file postreload-gcse.c.

Definition at line 110 of file postreload-gcse.c.

htab_t expr_table [static]

Definition at line 95 of file postreload-gcse.c.

Definition at line 87 of file postreload-gcse.c.

int mems_conflict_p [static]

Definition at line 558 of file postreload-gcse.c.

Definition at line 156 of file postreload-gcse.c.

Definition at line 162 of file postreload-gcse.c.

Definition at line 163 of file postreload-gcse.c.

Definition at line 85 of file postreload-gcse.c.

Definition at line 126 of file postreload-gcse.c.

Initial value:

{
  "gcse2",                              
  gate_handle_gcse2,                    
  rest_of_handle_gcse2,                 
  NULL,                                 
  NULL,                                 
  0,                                    
  TV_GCSE_AFTER_RELOAD,                 
  0,                                    
  0,                                    
  0,                                    
  0,                                    
  TODO_dump_func |
  TODO_verify_flow | TODO_ggc_collect,  
  'J'                                   
}

Definition at line 1377 of file postreload-gcse.c.

Referenced by init_optimization_passes().

int* reg_avail_info [static]

Definition at line 148 of file postreload-gcse.c.

struct { ... } stats [static]

int* uid_cuid [static]

Definition at line 168 of file postreload-gcse.c.

Definition at line 137 of file postreload-gcse.c.


Generated on Wed Apr 8 14:21:45 2009 for Open64 by  doxygen 1.5.6