osprey/kg++fe/gnu/df.c File Reference

#include "config.h"
#include "system.h"
#include "rtl.h"
#include "tm_p.h"
#include "insn-config.h"
#include "recog.h"
#include "function.h"
#include "regs.h"
#include "obstack.h"
#include "hard-reg-set.h"
#include "basic-block.h"
#include "sbitmap.h"
#include "bitmap.h"
#include "df.h"
#include "fibheap.h"

Include dependency graph for df.c:

Go to the source code of this file.

Data Types

type  replace_args

Defines

#define FOR_EACH_BB_IN_BITMAP(BITMAP, MIN, BB, CODE)

Functions/Subroutines

static void df_reg_table_realloc PARAMS ((struct df *, int))
static void df_insn_table_realloc PARAMS ((struct df *, unsigned int))
static void df_free PARAMS ((struct df *))
static rtx df_reg_clobber_gen PARAMS ((unsigned int))
static struct df_link
*df_link_create 
PARAMS ((struct ref *, struct df_link *))
static struct df_link
*df_ref_unlink 
PARAMS ((struct df_link **, struct ref *))
static void df_def_unlink PARAMS ((struct df *, struct ref *))
static void df_insn_refs_unlink PARAMS ((struct df *, basic_block, rtx))
static struct ref *df_ref_create PARAMS ((struct df *, rtx, rtx *, rtx, enum df_ref_type, enum df_ref_flags))
static void df_def_record_1 PARAMS ((struct df *, rtx, basic_block, rtx))
static void df_uses_record PARAMS ((struct df *, rtx *, enum df_ref_type, basic_block, rtx, enum df_ref_flags))
static void df_bb_refs_record PARAMS ((struct df *, basic_block))
static void df_refs_record PARAMS ((struct df *, bitmap))
static void df_bb_du_chain_create PARAMS ((struct df *, basic_block, bitmap))
static int df_bb_luids_set PARAMS ((struct df *df, basic_block))
static int df_luids_set PARAMS ((struct df *df, bitmap))
static void df_analyse_1 PARAMS ((struct df *, bitmap, int, int))
static void df_insns_modify PARAMS ((struct df *, basic_block, rtx, rtx))
static int df_rtx_mem_replace PARAMS ((rtx *, void *))
void df_refs_reg_replace PARAMS ((struct df *, bitmap, struct df_link *, rtx, rtx))
static int
df_def_dominates_all_uses_p 
PARAMS ((struct df *, struct ref *def))
static int df_def_dominates_uses_p PARAMS ((struct df *, struct ref *def, bitmap))
static struct ref
*df_bb_regno_last_use_find 
PARAMS ((struct df *, basic_block, unsigned int))
static struct ref
*df_bb_insn_regno_last_use_find 
PARAMS ((struct df *, basic_block, rtx, unsigned int))
static void df_chain_dump PARAMS ((struct df_link *, FILE *file))
static void df_regno_debug PARAMS ((struct df *, unsigned int, FILE *))
static void df_ref_debug PARAMS ((struct df *, struct ref *, FILE *))
static void df_rd_transfer_function PARAMS ((int, int *, bitmap, bitmap, bitmap, bitmap, void *))
static void hybrid_search_bitmap PARAMS ((basic_block, bitmap *, bitmap *, bitmap *, bitmap *, enum df_flow_dir, enum df_confluence_op, transfer_function_bitmap, sbitmap, sbitmap, void *))
static void hybrid_search_sbitmap PARAMS ((basic_block, sbitmap *, sbitmap *, sbitmap *, sbitmap *, enum df_flow_dir, enum df_confluence_op, transfer_function_sbitmap, sbitmap, sbitmap, void *))
static bool read_modify_subreg_p PARAMS ((rtx))
static void df_insn_table_realloc (struct df *df, unsigned int size)
static void df_reg_table_realloc (struct df *df, int size)
static void df_bitmaps_alloc (struct df *df, int flags)
static void df_bitmaps_free (df, int flags)
static void df_alloc (struct df *df, int n_regs)
static void df_free (struct df *df)
static rtx df_reg_use_gen (unsigned int regno)
static rtx df_reg_clobber_gen (unsigned int regno)
static struct df_linkdf_link_create (struct ref *ref, struct df_link *next)
static struct df_linkdf_ref_unlink (struct df_link **phead, struct ref *ref)
int df_ref_remove (struct df *df, struct ref *ref)
static void df_def_unlink (df, struct ref *def)
static void df_use_unlink (df, struct ref *use)
static struct refdf_ref_create (struct df *df, rtx reg, rtx *loc, rtx insn, enum df_ref_type ref_type, enum df_ref_flags ref_flags)
static void df_ref_record_1 (struct df *df, rtx reg, rtx *loc, rtx insn, enum df_ref_type ref_type, enum df_ref_flags ref_flags)
static void df_ref_record (struct df *df, rtx reg, rtx *loc, rtx insn, enum df_ref_type ref_type, enum df_ref_flags ref_flags)
static bool read_modify_subreg_p (rtx x)
static void df_def_record_1 (struct df *df, rtx x, basic_block bb, rtx insn)
static void df_defs_record (struct df *df, rtx x, basic_block bb, rtx insn)
static void df_uses_record (struct df *df, rtx *loc, enum df_ref_type ref_type, basic_block bb, rtx insn, enum df_ref_flags flags)
static void df_insn_refs_record (struct df *df, basic_block bb, rtx insn)
static void df_bb_refs_record (struct df *df, basic_block bb)
static void df_refs_record (struct df *df, bitmap blocks)
static void df_bb_reg_def_chain_create (struct df *df, basic_block bb)
static void df_reg_def_chain_create (struct df *df, bitmap blocks)
static void df_bb_reg_use_chain_create (struct df *df, basic_block bb)
static void df_reg_use_chain_create (struct df *df, bitmap blocks)
static void df_bb_du_chain_create (struct df *df, basic_block bb, bitmap ru)
static void df_du_chain_create (struct df *df, bitmap blocks)
static void df_bb_ud_chain_create (struct df *df, basic_block bb)
static void df_ud_chain_create (struct df *df, bitmap blocks)
static void df_rd_transfer_function (bb, int *changed, bitmap in, bitmap out, bitmap gen, bitmap kill, data)
static void df_ru_transfer_function (bb, int *changed, bitmap in, bitmap out, bitmap gen, bitmap kill, data)
static void df_lr_transfer_function (bb, int *changed, bitmap in, bitmap out, bitmap use, bitmap def, data)
static void df_bb_rd_local_compute (struct df *df, basic_block bb)
static void df_rd_local_compute (struct df *df, bitmap blocks)
static void df_bb_ru_local_compute (struct df *df, basic_block bb)
static void df_ru_local_compute (struct df *df, bitmap blocks)
static void df_bb_lr_local_compute (struct df *df, basic_block bb)
static void df_lr_local_compute (struct df *df, bitmap blocks)
static void df_bb_reg_info_compute (struct df *df, basic_block bb, bitmap live)
static void df_reg_info_compute (struct df *df, bitmap blocks)
static int df_bb_luids_set (struct df *df, basic_block bb)
static int df_luids_set (struct df *df, bitmap blocks)
static void df_analyse_1 (struct df *df, bitmap blocks, int flags, int update)
struct dfdf_init ()
static int df_refs_queue (struct df *df)
static int df_refs_process (struct df *df)
static int df_bb_refs_update (struct df *df, basic_block bb)
static int df_refs_update (struct df *df)
static int df_modified_p (struct df *df, bitmap blocks)
int df_analyse (struct df *df, bitmap blocks, int flags)
void df_finish (struct df *df)
static void df_insn_refs_unlink (struct df *df, bb, rtx insn)
rtx df_insn_delete (struct df *df, bb, rtx insn)
void df_insn_modify (struct df *df, basic_block bb, rtx insn)
static int df_rtx_mem_replace (rtx *px, void *data)
int df_insn_mem_replace (struct df *df, basic_block bb, rtx insn, rtx mem, rtx reg)
static int df_rtx_reg_replace (rtx *px, void *data)
void df_refs_reg_replace (struct df *df, bitmap blocks, struct df_link *chain, rtx oldreg, rtx newreg)
int df_reg_replace (struct df *df, bitmap blocks, rtx oldreg, rtx newreg)
int df_ref_reg_replace (struct df *df, struct ref *ref, rtx oldreg, rtx newreg)
struct refdf_bb_def_use_swap (struct df *df, basic_block bb, rtx def_insn, rtx use_insn, unsigned int regno)
static void df_insns_modify (struct df *df, basic_block bb, rtx first_insn, rtx last_insn)
rtx df_pattern_emit_before (df, rtx pattern, basic_block bb, rtx insn)
rtx df_pattern_emit_after (struct df *df, rtx pattern, basic_block bb, rtx insn)
rtx df_jump_pattern_emit_after (struct df *df, rtx pattern, basic_block bb, rtx insn)
rtx df_insn_move_before (struct df *df, basic_block bb, rtx insn, basic_block before_bb, rtx before_insn)
int df_insn_regno_def_p (struct df *df, bb, rtx insn, unsigned int regno)
static int df_def_dominates_all_uses_p (df, struct ref *def)
int df_insn_dominates_all_uses_p (struct df *df, bb, rtx insn)
static int df_def_dominates_uses_p (df, struct ref *def, bitmap blocks)
int df_insn_dominates_uses_p (struct df *df, bb, rtx insn, bitmap blocks)
basic_block df_regno_bb (struct df *df, unsigned int regno)
int df_reg_global_p (struct df *df, rtx reg)
int df_reg_lifetime (struct df *df, rtx reg)
int df_bb_reg_live_start_p (df, basic_block bb, rtx reg)
int df_bb_reg_live_end_p (df, basic_block bb, rtx reg)
int df_bb_regs_lives_compare (struct df *df, basic_block bb, rtx reg1, rtx reg2)
static struct refdf_bb_regno_last_use_find (struct df *df, bb, unsigned int regno)
static struct refdf_bb_regno_first_def_find (struct df *df, bb, unsigned int regno)
static struct refdf_bb_insn_regno_last_use_find (struct df *df, bb, rtx insn, unsigned int regno)
static struct refdf_bb_insn_regno_first_def_find (struct df *df, bb, rtx insn, unsigned int regno)
rtx df_bb_single_def_use_insn_find (struct df *df, basic_block bb, rtx insn, rtx reg)
static void df_chain_dump (struct df_link *link, FILE *file)
static void df_chain_dump_regno (struct df_link *link, FILE *file)
void df_dump (struct df *df, int flags, FILE *file)
void df_insn_debug (struct df *df, rtx insn, FILE *file)
void df_insn_debug_regno (struct df *df, rtx insn, FILE *file)
static void df_regno_debug (struct df *df, unsigned int regno, FILE *file)
static void df_ref_debug (struct df *df, struct ref *ref, FILE *file)
void debug_df_insn (rtx insn)
void debug_df_reg (rtx reg)
void debug_df_regno (unsigned int regno)
void debug_df_ref (struct ref *ref)
void debug_df_defno (unsigned int defno)
void debug_df_useno (unsigned int defno)
void debug_df_chain (struct df_link *link)
static void hybrid_search_bitmap (basic_block block, bitmap *in, bitmap *out, bitmap *gen, bitmap *kill, enum df_flow_dir dir, enum df_confluence_op conf_op, transfer_function_bitmap transfun, sbitmap visited, sbitmap pending, void *data)
static void hybrid_search_sbitmap (basic_block block, sbitmap *in, sbitmap *out, sbitmap *gen, sbitmap *kill, enum df_flow_dir dir, enum df_confluence_op conf_op, transfer_function_sbitmap transfun, sbitmap visited, sbitmap pending, void *data)
void iterative_dataflow_sbitmap (sbitmap *in, sbitmap *out, sbitmap *gen, sbitmap *kill, bitmap blocks, enum df_flow_dir dir, enum df_confluence_op conf_op, transfer_function_sbitmap transfun, int *order, void *data)
void iterative_dataflow_bitmap (bitmap *in, bitmap *out, bitmap *gen, bitmap *kill, bitmap blocks, enum df_flow_dir dir, enum df_confluence_op conf_op, transfer_function_bitmap transfun, int *order, void *data)

Variables

static struct obstack df_ref_obstack
static struct dfddf


Define Documentation

#define FOR_EACH_BB_IN_BITMAP ( BITMAP,
MIN,
BB,
CODE   ) 


Function Documentation

void debug_df_chain ( struct df_link link  ) 

Definition at line 3619 of file df.c.

void debug_df_defno ( unsigned int  defno  ) 

Definition at line 3603 of file df.c.

void debug_df_insn ( rtx  insn  ) 

Definition at line 3570 of file df.c.

void debug_df_ref ( struct ref ref  ) 

Definition at line 3595 of file df.c.

void debug_df_reg ( rtx  reg  ) 

Definition at line 3579 of file df.c.

void debug_df_regno ( unsigned int  regno  ) 

Definition at line 3587 of file df.c.

void debug_df_useno ( unsigned int  defno  ) 

Definition at line 3611 of file df.c.

static void df_alloc ( struct df df,
int  n_regs 
) [static]

int df_analyse ( struct df df,
bitmap  blocks,
int  flags 
)

static void df_analyse_1 ( struct df df,
bitmap  blocks,
int  flags,
int  update 
) [static]

struct ref* df_bb_def_use_swap ( struct df df,
basic_block  bb,
rtx  def_insn,
rtx  use_insn,
unsigned int  regno 
) [read]

Definition at line 2706 of file df.c.

static void df_bb_du_chain_create ( struct df df,
basic_block  bb,
bitmap  ru 
) [static]

static struct ref* df_bb_insn_regno_first_def_find ( struct df df,
bb  ,
rtx  insn,
unsigned int  regno 
) [static, read]

Definition at line 3207 of file df.c.

References DF_REF_REGNO, INSN_UID, df_link::next, and df_link::ref.

Referenced by df_bb_def_use_swap(), and df_bb_single_def_use_insn_find().

static struct ref* df_bb_insn_regno_last_use_find ( struct df df,
bb  ,
rtx  insn,
unsigned int  regno 
) [static, read]

Definition at line 3182 of file df.c.

References DF_REF_REGNO, INSN_UID, df_link::next, and df_link::ref.

Referenced by df_bb_def_use_swap().

static void df_bb_lr_local_compute ( struct df df,
basic_block  bb 
) [static]

static int df_bb_luids_set ( struct df df,
basic_block  bb 
) [static]

Definition at line 1933 of file df.c.

References DF_INSN_LUID, basic_block_def::end, basic_block_def::head, ref::insn, INSN_P, and NEXT_INSN.

Referenced by df_luids_set().

static void df_bb_rd_local_compute ( struct df df,
basic_block  bb 
) [static]

static void df_bb_refs_record ( struct df df,
basic_block  bb 
) [static]

Definition at line 1318 of file df.c.

References df_insn_refs_record(), basic_block_def::end, basic_block_def::head, ref::insn, INSN_P, and NEXT_INSN.

Referenced by df_refs_record().

static int df_bb_refs_update ( struct df df,
basic_block  bb 
) [static]

static void df_bb_reg_def_chain_create ( struct df df,
basic_block  bb 
) [static]

static void df_bb_reg_info_compute ( struct df df,
basic_block  bb,
bitmap  live 
) [static]

int df_bb_reg_live_end_p ( df  ,
basic_block  bb,
rtx  reg 
)

Definition at line 3076 of file df.c.

References abort, bitmap_bit_p(), DF_BB_INFO, bb_info::lr_in, bb_info::lr_out, and REGNO.

int df_bb_reg_live_start_p ( df  ,
basic_block  bb,
rtx  reg 
)

Definition at line 3058 of file df.c.

References abort, bitmap_bit_p(), DF_BB_INFO, bb_info::lr_in, and REGNO.

static void df_bb_reg_use_chain_create ( struct df df,
basic_block  bb 
) [static]

static struct ref* df_bb_regno_first_def_find ( struct df df,
bb  ,
unsigned int  regno 
) [static, read]

Definition at line 3158 of file df.c.

References DF_REF_BB, df_link::next, and df_link::ref.

Referenced by add_deps_for_def(), add_deps_for_use(), and df_bb_regs_lives_compare().

static struct ref* df_bb_regno_last_use_find ( struct df df,
bb  ,
unsigned int  regno 
) [static, read]

Definition at line 3134 of file df.c.

References DF_REF_BB, df_link::next, and df_link::ref.

Referenced by df_bb_regs_lives_compare().

int df_bb_regs_lives_compare ( struct df df,
basic_block  bb,
rtx  reg1,
rtx  reg2 
)

Definition at line 3095 of file df.c.

static void df_bb_ru_local_compute ( struct df df,
basic_block  bb 
) [static]

rtx df_bb_single_def_use_insn_find ( struct df df,
basic_block  bb,
rtx  insn,
rtx  reg 
)

Definition at line 3233 of file df.c.

static void df_bb_ud_chain_create ( struct df df,
basic_block  bb 
) [static]

static void df_bitmaps_alloc ( struct df df,
int  flags 
) [static]

static void df_bitmaps_free ( df  ,
int  flags 
) [static]

static void df_chain_dump ( struct df_link link,
FILE file 
) [static]

static void df_chain_dump_regno ( struct df_link link,
FILE file 
) [static]

Definition at line 3286 of file df.c.

References DF_REF_ID, DF_REF_REG_DEF_P, DF_REF_REGNO, and fprintf().

Referenced by df_insn_debug_regno().

static int df_def_dominates_all_uses_p ( df  ,
struct ref def 
) [static]

Definition at line 2914 of file df.c.

References DF_REF_CHAIN, df_link::next, and df_link::ref.

Referenced by df_insn_dominates_all_uses_p().

static int df_def_dominates_uses_p ( df  ,
struct ref def,
bitmap  blocks 
) [static]

Definition at line 2961 of file df.c.

References bitmap_bit_p(), DF_REF_BBNO, DF_REF_CHAIN, df_link::next, and df_link::ref.

Referenced by df_insn_dominates_uses_p().

static void df_def_record_1 ( struct df df,
rtx  x,
basic_block  bb,
rtx  insn 
) [static]

static void df_def_unlink ( df  ,
struct ref def 
) [static]

Definition at line 723 of file df.c.

References DF_REF_CHAIN, DF_REF_ID, DF_REF_REGNO, df_ref_unlink(), df_link::next, and df_link::ref.

Referenced by df_insn_refs_unlink(), and df_ref_remove().

static void df_defs_record ( struct df df,
rtx  x,
basic_block  bb,
rtx  insn 
) [static]

Definition at line 986 of file df.c.

References df_def_record_1(), GET_CODE, RTX_CODE, SET, XVECEXP, and XVECLEN.

Referenced by df_defs_record(), and df_insn_refs_record().

static void df_du_chain_create ( struct df df,
bitmap  blocks 
) [static]

Definition at line 1528 of file df.c.

References BITMAP_XFREE, BITMAP_XMALLOC, df_bb_du_chain_create(), and FOR_EACH_BB_IN_BITMAP.

Referenced by df_analyse_1(), and df_analyze_1().

void df_dump ( struct df df,
int  flags,
FILE file 
)

Definition at line 3303 of file df.c.

Referenced by reg_alloc(), see_initialize_data_structures(), and web_main().

void df_finish ( struct df df  ) 

Definition at line 2372 of file df.c.

static void df_free ( struct df df  )  [static]

Definition at line 565 of file df.c.

References BITMAP_XFREE, DF_ALL, df_bitmaps_free(), df_ref_obstack, free(), NULL, and obstack_free.

Referenced by df_analyse(), df_analyze(), and df_finish().

struct df* df_init ( void   )  [read]

void df_insn_debug ( struct df df,
rtx  insn,
FILE file 
)

Definition at line 3477 of file df.c.

Referenced by debug_df_insn().

void df_insn_debug_regno ( struct df df,
rtx  insn,
FILE file 
)

Definition at line 3505 of file df.c.

Referenced by reg_alloc().

rtx df_insn_delete ( struct df df,
bb  ,
rtx  insn 
)

Definition at line 2457 of file df.c.

References abort, delete_insn(), df_insn_modify(), and NEXT_INSN.

Referenced by delete_moves(), ssa_ccp_df_delete_unreachable_insns(), and ssa_fast_dce().

int df_insn_dominates_all_uses_p ( struct df df,
bb  ,
rtx  insn 
)

Definition at line 2936 of file df.c.

References df_def_dominates_all_uses_p(), INSN_UID, df_link::next, and df_link::ref.

int df_insn_dominates_uses_p ( struct df df,
bb  ,
rtx  insn,
bitmap  blocks 
)

int df_insn_mem_replace ( struct df df,
basic_block  bb,
rtx  insn,
rtx  mem,
rtx  reg 
)

Definition at line 2556 of file df.c.

void df_insn_modify ( struct df df,
basic_block  bb,
rtx  insn 
)

rtx df_insn_move_before ( struct df df,
basic_block  bb,
rtx  insn,
basic_block  before_bb,
rtx  before_insn 
)

Definition at line 2855 of file df.c.

static void df_insn_refs_record ( struct df df,
basic_block  bb,
rtx  insn 
) [static]

static void df_insn_refs_unlink ( struct df df,
bb  ,
rtx  insn 
) [static]

Definition at line 2382 of file df.c.

References df_def_unlink(), df_use_unlink(), INSN_UID, df_link::next, and df_link::ref.

Referenced by df_bb_refs_update().

int df_insn_regno_def_p ( struct df df,
bb  ,
rtx  insn,
unsigned int  regno 
)

Definition at line 2890 of file df.c.

References DF_REF_REGNO, INSN_UID, df_link::next, and df_link::ref.

static void df_insn_table_realloc ( struct df df,
unsigned int  size 
) [static]

Definition at line 303 of file df.c.

References BITMAP_XMALLOC, bitmap_zero, memset, and xrealloc().

Referenced by df_alloc(), df_insn_modify(), and df_insns_modify().

static void df_insns_modify ( struct df df,
basic_block  bb,
rtx  first_insn,
rtx  last_insn 
) [static]

rtx df_jump_pattern_emit_after ( struct df df,
rtx  pattern,
basic_block  bb,
rtx  insn 
)

Definition at line 2832 of file df.c.

static struct df_link* df_link_create ( struct ref ref,
struct df_link next 
) [static, read]

static void df_lr_local_compute ( struct df df,
bitmap  blocks 
) [static]

Definition at line 1845 of file df.c.

References df_bb_lr_local_compute(), and FOR_EACH_BB_IN_BITMAP.

Referenced by df_analyse_1(), and df_analyze_1().

static void df_lr_transfer_function ( bb  ,
int *  changed,
bitmap  in,
bitmap  out,
bitmap  use,
bitmap  def,
data   
) [static]

Definition at line 1658 of file df.c.

References bitmap_union_of_diff().

Referenced by df_analyse_1(), and df_analyze_1().

static int df_luids_set ( struct df df,
bitmap  blocks 
) [static]

Definition at line 1957 of file df.c.

References df_bb_luids_set(), and FOR_EACH_BB_IN_BITMAP.

Referenced by df_analyse_1(), and df_analyze_1().

static int df_modified_p ( struct df df,
bitmap  blocks 
) [static]

Definition at line 2300 of file df.c.

References bitmap_bit_p(), FOR_EACH_BB, and basic_block_def::index.

Referenced by df_analyse(), and df_analyze().

rtx df_pattern_emit_after ( struct df df,
rtx  pattern,
basic_block  bb,
rtx  insn 
)

Definition at line 2813 of file df.c.

Referenced by move_invariant_reg().

rtx df_pattern_emit_before ( df  ,
rtx  pattern,
basic_block  bb,
rtx  insn 
)

static void df_rd_local_compute ( struct df df,
bitmap  blocks 
) [static]

Definition at line 1717 of file df.c.

References df_bb_rd_local_compute(), and FOR_EACH_BB_IN_BITMAP.

Referenced by df_analyse_1(), and df_analyze_1().

static void df_rd_transfer_function ( bb  ,
int *  changed,
bitmap  in,
bitmap  out,
bitmap  gen,
bitmap  kill,
data   
) [static]

Definition at line 1639 of file df.c.

References bitmap_union_of_diff().

Referenced by df_analyse_1(), and df_analyze_1().

static struct ref* df_ref_create ( struct df df,
rtx  reg,
rtx loc,
rtx  insn,
enum df_ref_type  ref_type,
enum df_ref_flags  ref_flags 
) [static, read]

static void df_ref_debug ( struct df df,
struct ref ref,
FILE file 
) [static]

static void df_ref_record ( struct df df,
rtx  reg,
rtx loc,
rtx  insn,
enum df_ref_type  ref_type,
enum df_ref_flags  ref_flags 
) [static]

static void df_ref_record_1 ( struct df df,
rtx  reg,
rtx loc,
rtx  insn,
enum df_ref_type  ref_type,
enum df_ref_flags  ref_flags 
) [static]

Definition at line 830 of file df.c.

References df_ref_create().

Referenced by df_ref_record().

int df_ref_reg_replace ( struct df df,
struct ref ref,
rtx  oldreg,
rtx  newreg 
)

Definition at line 2683 of file df.c.

Referenced by df_refs_reg_replace().

int df_ref_remove ( struct df df,
struct ref ref 
)

Definition at line 703 of file df.c.

static struct df_link* df_ref_unlink ( struct df_link **  phead,
struct ref ref 
) [static, read]

Definition at line 659 of file df.c.

References abort, df_link::next, NULL, and df_link::ref.

Referenced by df_bb_def_use_swap(), df_def_unlink(), df_ref_remove(), and df_use_unlink().

static int df_refs_process ( struct df df  )  [static]

Definition at line 2207 of file df.c.

References df_link_create(), and DF_REF_INSN_UID.

Referenced by df_analyse_1(), and df_analyze_1().

static int df_refs_queue ( struct df df  )  [static]

Definition at line 2194 of file df.c.

Referenced by df_analyse_1(), df_analyze_1(), and df_refs_update().

static void df_refs_record ( struct df df,
bitmap  blocks 
) [static]

Definition at line 1340 of file df.c.

References df_bb_refs_record(), and FOR_EACH_BB_IN_BITMAP.

Referenced by df_analyse_1(), df_analyze_1(), and df_rescan_blocks().

void df_refs_reg_replace ( struct df df,
bitmap  blocks,
struct df_link chain,
rtx  oldreg,
rtx  newreg 
)

Definition at line 2613 of file df.c.

Referenced by df_reg_replace().

static int df_refs_update ( struct df df  )  [static]

static rtx df_reg_clobber_gen ( unsigned int  regno  )  [static]

Definition at line 627 of file df.c.

References gen_rtx_CLOBBER, GET_MODE, and regno_reg_rtx.

Referenced by df_insn_refs_record().

static void df_reg_def_chain_create ( struct df df,
bitmap  blocks 
) [static]

Definition at line 1398 of file df.c.

References df_bb_reg_def_chain_create(), and FOR_EACH_BB_IN_BITMAP.

Referenced by df_analyse_1(), and df_analyze_1().

int df_reg_global_p ( struct df df,
rtx  reg 
)

Definition at line 3038 of file df.c.

static void df_reg_info_compute ( struct df df,
bitmap  blocks 
) [static]

Definition at line 1913 of file df.c.

References BITMAP_XFREE, BITMAP_XMALLOC, df_bb_reg_info_compute(), and FOR_EACH_BB_IN_BITMAP.

Referenced by df_analyse_1(), and df_analyze_1().

int df_reg_lifetime ( struct df df,
rtx  reg 
)

Definition at line 3048 of file df.c.

int df_reg_replace ( struct df df,
bitmap  blocks,
rtx  oldreg,
rtx  newreg 
)

Definition at line 2666 of file df.c.

static void df_reg_table_realloc ( struct df df,
int  size 
) [static]

Definition at line 333 of file df.c.

References max_reg_num(), memset, and xrealloc().

Referenced by df_alloc(), and df_refs_update().

static void df_reg_use_chain_create ( struct df df,
bitmap  blocks 
) [static]

Definition at line 1452 of file df.c.

References df_bb_reg_use_chain_create(), and FOR_EACH_BB_IN_BITMAP.

Referenced by df_analyse_1(), and df_analyze_1().

static rtx df_reg_use_gen ( unsigned int  regno  )  [static]

Definition at line 613 of file df.c.

References gen_rtx_USE, GET_MODE, and regno_reg_rtx.

Referenced by df_insn_refs_record().

basic_block df_regno_bb ( struct df df,
unsigned int  regno 
)

Definition at line 3019 of file df.c.

Referenced by df_bb_regs_lives_compare(), df_dump(), and df_reg_global_p().

static void df_regno_debug ( struct df df,
unsigned int  regno,
FILE file 
) [static]

Definition at line 3533 of file df.c.

References df_chain_dump(), and fprintf().

Referenced by debug_df_reg(), and debug_df_regno().

static int df_rtx_mem_replace ( rtx px,
void data 
) [static]

static int df_rtx_reg_replace ( rtx px,
void data 
) [static]

static void df_ru_local_compute ( struct df df,
bitmap  blocks 
) [static]

Definition at line 1790 of file df.c.

References df_bb_ru_local_compute(), and FOR_EACH_BB_IN_BITMAP.

Referenced by df_analyse_1(), and df_analyze_1().

static void df_ru_transfer_function ( bb  ,
int *  changed,
bitmap  in,
bitmap  out,
bitmap  gen,
bitmap  kill,
data   
) [static]

Definition at line 1648 of file df.c.

References bitmap_union_of_diff().

Referenced by df_analyse_1(), and df_analyze_1().

static void df_ud_chain_create ( struct df df,
bitmap  blocks 
) [static]

Definition at line 1624 of file df.c.

References df_bb_ud_chain_create(), and FOR_EACH_BB_IN_BITMAP.

Referenced by df_analyse_1(), and df_analyze_1().

static void df_use_unlink ( df  ,
struct ref use 
) [static]

static void df_uses_record ( struct df df,
rtx loc,
enum df_ref_type  ref_type,
basic_block  bb,
rtx  insn,
enum df_ref_flags  flags 
) [static]

static void hybrid_search_bitmap ( basic_block  block,
bitmap in,
bitmap out,
bitmap gen,
bitmap kill,
enum df_flow_dir  dir,
enum df_confluence_op  conf_op,
transfer_function_bitmap  transfun,
sbitmap  visited,
sbitmap  pending,
void data 
) [static]

static void hybrid_search_sbitmap ( basic_block  block,
sbitmap in,
sbitmap out,
sbitmap gen,
sbitmap kill,
enum df_flow_dir  dir,
enum df_confluence_op  conf_op,
transfer_function_sbitmap  transfun,
sbitmap  visited,
sbitmap  pending,
void data 
) [static]

void iterative_dataflow_bitmap ( bitmap in,
bitmap out,
bitmap gen,
bitmap kill,
bitmap  blocks,
enum df_flow_dir  dir,
enum df_confluence_op  conf_op,
transfer_function_bitmap  transfun,
int *  order,
void data 
)

void iterative_dataflow_sbitmap ( sbitmap in,
sbitmap out,
sbitmap gen,
sbitmap kill,
bitmap  blocks,
enum df_flow_dir  dir,
enum df_confluence_op  conf_op,
transfer_function_sbitmap  transfun,
int *  order,
void data 
)

static bool read_modify_subreg_p PARAMS ( (rtx  )  [inline, static]

static void hybrid_search_sbitmap PARAMS ( (basic_block, sbitmap *, sbitmap *, sbitmap *, sbitmap *, enum df_flow_dir, enum df_confluence_op, transfer_function_sbitmap, sbitmap, sbitmap, void *)   )  [static]

static void hybrid_search_bitmap PARAMS ( (basic_block, bitmap *, bitmap *, bitmap *, bitmap *, enum df_flow_dir, enum df_confluence_op, transfer_function_bitmap, sbitmap, sbitmap, void *)   )  [static]

static void df_rd_transfer_function PARAMS ( (int, int *, bitmap, bitmap, bitmap, bitmap, void *)   )  [static]

static void df_ref_debug PARAMS ( (struct df *, struct ref *, FILE *)   )  [static]

static void df_regno_debug PARAMS ( (struct df *, unsigned int, FILE *)   )  [static]

static void df_chain_dump PARAMS ( (struct df_link *, FILE *file  )  [static]

static struct ref* df_bb_insn_regno_last_use_find PARAMS ( (struct df *, basic_block, rtx, unsigned int)   )  [static, read]

static struct ref* df_bb_regno_last_use_find PARAMS ( (struct df *, basic_block, unsigned int)   )  [static, read]

static int df_def_dominates_uses_p PARAMS ( (struct df *, struct ref *def, bitmap  )  [static]

static int df_def_dominates_all_uses_p PARAMS ( (struct df *, struct ref *def  )  [static]

void df_refs_reg_replace PARAMS ( (struct df *, bitmap, struct df_link *, rtx, rtx  ) 

static int df_rtx_mem_replace PARAMS ( (rtx *, void *)   )  [static]

static void df_insns_modify PARAMS ( (struct df *, basic_block, rtx, rtx  )  [static]

static void df_analyse_1 PARAMS ( (struct df *, bitmap, int, int)   )  [static]

static int df_luids_set PARAMS ( (struct df *df, bitmap  )  [static]

static int df_bb_luids_set PARAMS ( (struct df *df, basic_block  )  [static]

static void df_bb_du_chain_create PARAMS ( (struct df *, basic_block, bitmap  )  [static]

static void df_refs_record PARAMS ( (struct df *, bitmap  )  [static]

static void df_bb_refs_record PARAMS ( (struct df *, basic_block  )  [static]

static void df_uses_record PARAMS ( (struct df *, rtx *, enum df_ref_type, basic_block, rtx, enum df_ref_flags  )  [static]

static void df_def_record_1 PARAMS ( (struct df *, rtx, basic_block, rtx  )  [static]

static struct ref* df_ref_create PARAMS ( (struct df *, rtx, rtx *, rtx, enum df_ref_type, enum df_ref_flags  )  [static, read]

static void df_insn_refs_unlink PARAMS ( (struct df *, basic_block, rtx  )  [static]

static void df_def_unlink PARAMS ( (struct df *, struct ref *)   )  [static]

static struct df_link* df_ref_unlink PARAMS ( (struct df_link **, struct ref *)   )  [static, read]

static struct df_link* df_link_create PARAMS ( (struct ref *, struct df_link *)   )  [static, read]

static rtx df_reg_clobber_gen PARAMS ( (unsigned int)   )  [static]

static void df_free PARAMS ( (struct df *)   )  [static]

static void df_insn_table_realloc PARAMS ( (struct df *, unsigned int)   )  [static]

static void df_reg_table_realloc PARAMS ( (struct df *, int)   )  [static]

static bool read_modify_subreg_p ( rtx  x  )  [inline, static]

Definition at line 906 of file df.c.

References GET_CODE, GET_MODE, GET_MODE_SIZE, SUBREG_REG, and UNITS_PER_WORD.

Referenced by df_def_record_1(), df_uses_record(), and sched_analyze_1().


Variable Documentation

struct df* ddf [static]

Definition at line 182 of file df.c.

Definition at line 181 of file df.c.

Referenced by df_alloc(), df_free(), df_link_create(), and df_ref_create().


Generated on Wed Apr 8 15:31:06 2009 for Open64 by  doxygen 1.5.6