osprey-gcc-4.2.0/gcc/df.h File Reference

#include "bitmap.h"
#include "basic-block.h"
#include "alloc-pool.h"

Include dependency graph for df.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Types

type  df_problem
type  dataflow
type  df_mw_hardreg
type  df_insn_info
type  df_reg_info
type  df_ref
type  df_link
type  df_ref_info
type  df
type  df_scan_bb_info
type  df_ru_bb_info
type  df_rd_bb_info
type  df_lr_bb_info
type  df_ur_bb_info
type  df_urec_bb_info
type  web_entry

Defines

#define DF_SCAN   0
#define DF_RU   1
#define DF_RD   2
#define DF_LR   3
#define DF_UR   4
#define DF_UREC   5
#define DF_CHAIN   6
#define DF_RI   7
#define DF_LAST_PROBLEM_PLUS1   (DF_RI + 1)
#define DF_REF_TYPE_NAMES   {"def", "use", "mem load", "mem store"}
#define DF_HARD_REGS   1
#define DF_EQUIV_NOTES   2
#define DF_SUBREGS   4
#define DF_DU_CHAIN   1
#define DF_UD_CHAIN   2
#define DF_RI_LIFE   1
#define DF_SCAN_BB_INFO(DF, BB)   (df_scan_get_bb_info((DF)->problems_by_index[DF_SCAN],(BB)->index))
#define DF_RU_BB_INFO(DF, BB)   (df_ru_get_bb_info((DF)->problems_by_index[DF_RU],(BB)->index))
#define DF_RD_BB_INFO(DF, BB)   (df_rd_get_bb_info((DF)->problems_by_index[DF_RD],(BB)->index))
#define DF_LR_BB_INFO(DF, BB)   (df_lr_get_bb_info((DF)->problems_by_index[DF_LR],(BB)->index))
#define DF_UR_BB_INFO(DF, BB)   (df_ur_get_bb_info((DF)->problems_by_index[DF_UR],(BB)->index))
#define DF_UREC_BB_INFO(DF, BB)   (df_urec_get_bb_info((DF)->problems_by_index[DF_UREC],(BB)->index))
#define DF_LIVE_IN(DF, BB)   (DF_UR_BB_INFO(DF, BB)->in)
#define DF_LIVE_OUT(DF, BB)   (DF_UR_BB_INFO(DF, BB)->out)
#define DF_RA_LIVE_IN(DF, BB)   (DF_UREC_BB_INFO(DF, BB)->in)
#define DF_RA_LIVE_OUT(DF, BB)   (DF_UREC_BB_INFO(DF, BB)->out)
#define DF_UPWARD_LIVE_IN(DF, BB)   (DF_LR_BB_INFO(DF, BB)->in)
#define DF_UPWARD_LIVE_OUT(DF, BB)   (DF_LR_BB_INFO(DF, BB)->out)
#define DF_REF_REAL_REG(REF)
#define DF_REF_REGNO(REF)   ((REF)->regno)
#define DF_REF_REAL_LOC(REF)
#define DF_REF_REG(REF)   ((REF)->reg)
#define DF_REF_LOC(REF)   ((REF)->loc)
#define DF_REF_BB(REF)   ((REF)->bb)
#define DF_REF_BBNO(REF)   (DF_REF_BB (REF)->index)
#define DF_REF_INSN(REF)   ((REF)->insn)
#define DF_REF_INSN_UID(REF)   (INSN_UID ((REF)->insn))
#define DF_REF_TYPE(REF)   ((REF)->type)
#define DF_REF_CHAIN(REF)   ((REF)->chain)
#define DF_REF_ID(REF)   ((REF)->id)
#define DF_REF_FLAGS(REF)   ((REF)->flags)
#define DF_REF_NEXT_REG(REF)   ((REF)->next_reg)
#define DF_REF_PREV_REG(REF)   ((REF)->prev_reg)
#define DF_REF_NEXT_REF(REF)   ((REF)->next_ref)
#define DF_REF_DATA(REF)   ((REF)->data)
#define DF_REF_REG_DEF_P(REF)   (DF_REF_TYPE (REF) == DF_REF_REG_DEF)
#define DF_REF_REG_USE_P(REF)   ((REF) && !DF_REF_REG_DEF_P (REF))
#define DF_REF_REG_MEM_STORE_P(REF)   (DF_REF_TYPE (REF) == DF_REF_REG_MEM_STORE)
#define DF_REF_REG_MEM_LOAD_P(REF)   (DF_REF_TYPE (REF) == DF_REF_REG_MEM_LOAD)
#define DF_REF_REG_MEM_P(REF)
#define DF_DEFS_SIZE(DF)   ((DF)->def_info.bitmap_size)
#define DF_DEFS_GET(DF, ID)   ((DF)->def_info.refs[(ID)])
#define DF_DEFS_SET(DF, ID, VAL)   ((DF)->def_info.refs[(ID)]=(VAL))
#define DF_USES_SIZE(DF)   ((DF)->use_info.bitmap_size)
#define DF_USES_GET(DF, ID)   ((DF)->use_info.refs[(ID)])
#define DF_USES_SET(DF, ID, VAL)   ((DF)->use_info.refs[(ID)]=(VAL))
#define DF_REG_SIZE(DF)   ((DF)->def_info.regs_inited)
#define DF_REG_DEF_GET(DF, REG)   ((DF)->def_info.regs[(REG)])
#define DF_REG_DEF_SET(DF, REG, VAL)   ((DF)->def_info.regs[(REG)]=(VAL))
#define DF_REG_DEF_COUNT(DF, REG)   ((DF)->def_info.regs[(REG)]->n_refs)
#define DF_REG_USE_GET(DF, REG)   ((DF)->use_info.regs[(REG)])
#define DF_REG_USE_SET(DF, REG, VAL)   ((DF)->use_info.regs[(REG)]=(VAL))
#define DF_REG_USE_COUNT(DF, REG)   ((DF)->use_info.regs[(REG)]->n_refs)
#define DF_REGNO_FIRST_DEF(DF, REGNUM)   (DF_REG_DEF_GET(DF, REGNUM) ? DF_REG_DEF_GET(DF, REGNUM) : 0)
#define DF_REGNO_LAST_USE(DF, REGNUM)   (DF_REG_USE_GET(DF, REGNUM) ? DF_REG_USE_GET(DF, REGNUM) : 0)
#define DF_INSN_SIZE(DF)   ((DF)->insns_size)
#define DF_INSN_GET(DF, INSN)   ((DF)->insns[(INSN_UID(INSN))])
#define DF_INSN_SET(DF, INSN, VAL)   ((DF)->insns[(INSN_UID (INSN))]=(VAL))
#define DF_INSN_CONTAINS_ASM(DF, INSN)   (DF_INSN_GET(DF,INSN)->contains_asm)
#define DF_INSN_LUID(DF, INSN)   (DF_INSN_GET(DF,INSN)->luid)
#define DF_INSN_DEFS(DF, INSN)   (DF_INSN_GET(DF,INSN)->defs)
#define DF_INSN_USES(DF, INSN)   (DF_INSN_GET(DF,INSN)->uses)
#define DF_INSN_UID_GET(DF, UID)   ((DF)->insns[(UID)])
#define DF_INSN_UID_LUID(DF, INSN)   (DF_INSN_UID_GET(DF,INSN)->luid)
#define DF_INSN_UID_DEFS(DF, INSN)   (DF_INSN_UID_GET(DF,INSN)->defs)
#define DF_INSN_UID_USES(DF, INSN)   (DF_INSN_UID_GET(DF,INSN)->uses)
#define DF_INSN_UID_MWS(DF, INSN)   (DF_INSN_UID_GET(DF,INSN)->mw_hardregs)
#define df_finish(df)   {df_finish1(df); df=NULL;}

Typedefs

typedef void(* df_alloc_function )(struct dataflow *, bitmap, bitmap)
typedef void(* df_reset_function )(struct dataflow *, bitmap)
typedef void(* df_free_bb_function )(struct dataflow *, basic_block, void *)
typedef void(* df_local_compute_function )(struct dataflow *, bitmap, bitmap)
typedef void(* df_init_function )(struct dataflow *, bitmap)
typedef void(* df_dataflow_function )(struct dataflow *, bitmap, bitmap, int *, int, bool)
typedef void(* df_confluence_function_0 )(struct dataflow *, basic_block)
typedef void(* df_confluence_function_n )(struct dataflow *, edge)
typedef bool(* df_transfer_function )(struct dataflow *, int)
typedef void(* df_finalizer_function )(struct dataflow *, bitmap)
typedef void(* df_free_function )(struct dataflow *)
typedef void(* df_dump_problem_function )(struct dataflow *, FILE *)
typedef struct dataflow *(* df_dependent_problem_function )(struct df *, int)

Enumerations

enum  df_flow_dir {
  FORWARD, BACKWARD, FORWARD, BACKWARD,
  DF_FORWARD, DF_BACKWARD, DF_NONE, DF_FORWARD,
  DF_BACKWARD
}
enum  df_ref_type {
  DF_REF_REG_DEF, DF_REF_REG_USE, DF_REF_REG_MEM_LOAD, DF_REF_REG_MEM_STORE,
  DF_REF_REG_DEF, DF_REF_REG_USE, DF_REF_REG_MEM_LOAD, DF_REF_REG_MEM_STORE,
  DF_REF_REG_DEF, DF_REF_REG_USE, DF_REF_REG_MEM_LOAD, DF_REF_REG_MEM_STORE,
  DF_REF_REG_DEF, DF_REF_REG_USE, DF_REF_REG_MEM_LOAD, DF_REF_REG_MEM_STORE
}
enum  df_ref_flags {
  DF_REF_READ_WRITE = 1, DF_REF_MODE_CHANGE = 2, DF_REF_READ_WRITE = 1, DF_REF_MODE_CHANGE = 2,
  DF_REF_READ_WRITE = 1, DF_REF_STRIPPED = 2, DF_REF_READ_WRITE = 1, DF_REF_STRIPPED = 2,
  DF_REF_ARTIFICIAL = 4, DF_REF_AT_TOP = 8, DF_REF_IN_NOTE = 16, DF_REF_MAY_CLOBBER = 32,
  DF_REF_MUST_CLOBBER = 64, DF_REF_MW_HARDREG = 128, DF_REF_PARTIAL = 256
}

Functions/Subroutines

struct dfdf_init (int)
struct dataflowdf_add_problem (struct df *, struct df_problem *, int)
int df_set_flags (struct dataflow *, int)
int df_clear_flags (struct dataflow *, int)
void df_set_blocks (struct df *, bitmap)
void df_delete_basic_block (struct df *, int)
void df_finish1 (struct df *)
void df_analyze_problem (struct dataflow *, bitmap, bitmap, bitmap, int *, int, bool)
void df_analyze (struct df *)
void df_compact_blocks (struct df *)
void df_bb_replace (struct df *, int, basic_block)
struct df_refdf_bb_regno_last_use_find (struct df *, basic_block, unsigned int)
struct df_refdf_bb_regno_first_def_find (struct df *, basic_block, unsigned int)
struct df_refdf_bb_regno_last_def_find (struct df *, basic_block, unsigned int)
bool df_insn_regno_def_p (struct df *, rtx, unsigned int)
struct df_refdf_find_def (struct df *, rtx, rtx)
bool df_reg_defined (struct df *, rtx, rtx)
struct df_refdf_find_use (struct df *, rtx, rtx)
bool df_reg_used (struct df *, rtx, rtx)
void df_iterative_dataflow (struct dataflow *, bitmap, bitmap, int *, int, bool)
void df_dump (struct df *, FILE *)
void df_refs_chain_dump (struct df_ref *, bool, FILE *)
void df_regs_chain_dump (struct df *, struct df_ref *, FILE *)
void df_insn_debug (struct df *, rtx, bool, FILE *)
void df_insn_debug_regno (struct df *, rtx, FILE *)
void df_regno_debug (struct df *, unsigned int, FILE *)
void df_ref_debug (struct df_ref *, FILE *)
void debug_df_insn (rtx)
void debug_df_regno (unsigned int)
void debug_df_reg (rtx)
void debug_df_defno (unsigned int)
void debug_df_useno (unsigned int)
void debug_df_ref (struct df_ref *)
void debug_df_chain (struct df_link *)
struct df_linkdf_chain_create (struct dataflow *, struct df_ref *, struct df_ref *)
void df_chain_unlink (struct dataflow *, struct df_ref *, struct df_link *)
void df_chain_copy (struct dataflow *, struct df_ref *, struct df_link *)
bitmap df_get_live_in (struct df *, basic_block)
bitmap df_get_live_out (struct df *, basic_block)
void df_grow_bb_info (struct dataflow *)
void df_chain_dump (struct df_link *, FILE *)
void df_print_bb_index (basic_block bb, FILE *file)
struct dataflowdf_ru_add_problem (struct df *, int)
struct df_ru_bb_infodf_ru_get_bb_info (struct dataflow *, unsigned int)
struct dataflowdf_rd_add_problem (struct df *, int)
struct df_rd_bb_infodf_rd_get_bb_info (struct dataflow *, unsigned int)
struct dataflowdf_lr_add_problem (struct df *, int)
struct df_lr_bb_infodf_lr_get_bb_info (struct dataflow *, unsigned int)
struct dataflowdf_ur_add_problem (struct df *, int)
struct df_ur_bb_infodf_ur_get_bb_info (struct dataflow *, unsigned int)
struct dataflowdf_urec_add_problem (struct df *, int)
struct df_urec_bb_infodf_urec_get_bb_info (struct dataflow *, unsigned int)
struct dataflowdf_chain_add_problem (struct df *, int)
struct dataflowdf_ri_add_problem (struct df *, int)
struct df_scan_bb_infodf_scan_get_bb_info (struct dataflow *, unsigned int)
struct dataflowdf_scan_add_problem (struct df *, int)
void df_rescan_blocks (struct df *, bitmap)
struct df_refdf_ref_create (struct df *, rtx, rtx *, rtx, basic_block, enum df_ref_type, enum df_ref_flags)
struct df_refdf_get_artificial_defs (struct df *, unsigned int)
struct df_refdf_get_artificial_uses (struct df *, unsigned int)
void df_reg_chain_create (struct df_reg_info *, struct df_ref *)
struct df_refdf_reg_chain_unlink (struct dataflow *, struct df_ref *)
void df_ref_remove (struct df *, struct df_ref *)
void df_insn_refs_delete (struct dataflow *, rtx)
void df_bb_refs_delete (struct dataflow *, int)
void df_refs_delete (struct dataflow *, bitmap)
void df_reorganize_refs (struct df_ref_info *)
void df_hard_reg_init (void)
bool df_read_modify_subreg_p (rtx)
struct web_entryunionfind_root (struct web_entry *)
bool unionfind_union (struct web_entry *, struct web_entry *)
void union_defs (struct df *, struct df_ref *, struct web_entry *, struct web_entry *, bool(*fun)(struct web_entry *, struct web_entry *))

Variables

bitmap df_invalidated_by_call
struct dfshared_df


Define Documentation

#define DF_CHAIN   6

Definition at line 49 of file df.h.

Referenced by df_reg_chain_unlink().

#define DF_DEFS_GET ( DF,
ID   )     ((DF)->def_info.refs[(ID)])

#define DF_DEFS_SET ( DF,
ID,
VAL   )     ((DF)->def_info.refs[(ID)]=(VAL))

Definition at line 438 of file df.h.

Referenced by df_ref_create_structure(), df_ref_remove(), and df_reg_chain_unlink().

#define DF_DEFS_SIZE ( DF   )     ((DF)->def_info.bitmap_size)

#define DF_DU_CHAIN   1

Definition at line 224 of file df.h.

#define DF_EQUIV_NOTES   2

Definition at line 221 of file df.h.

#define df_finish ( df   )     {df_finish1(df); df=NULL;}

#define DF_HARD_REGS   1

Definition at line 220 of file df.h.

#define DF_INSN_CONTAINS_ASM ( DF,
INSN   )     (DF_INSN_GET(DF,INSN)->contains_asm)

Definition at line 465 of file df.h.

Referenced by df_insn_refs_record(), and df_lr_bb_local_compute().

#define DF_INSN_DEFS ( DF,
INSN   )     (DF_INSN_GET(DF,INSN)->defs)

Definition at line 467 of file df.h.

#define DF_INSN_GET ( DF,
INSN   )     ((DF)->insns[(INSN_UID(INSN))])

#define DF_INSN_LUID ( DF,
INSN   )     (DF_INSN_GET(DF,INSN)->luid)

Definition at line 466 of file df.h.

#define DF_INSN_SET ( DF,
INSN,
VAL   )     ((DF)->insns[(INSN_UID (INSN))]=(VAL))

Definition at line 464 of file df.h.

Referenced by df_insn_create_insn_record(), and df_insn_refs_delete().

#define DF_INSN_SIZE ( DF   )     ((DF)->insns_size)

Definition at line 462 of file df.h.

#define DF_INSN_UID_DEFS ( DF,
INSN   )     (DF_INSN_UID_GET(DF,INSN)->defs)

#define DF_INSN_UID_GET ( DF,
UID   )     ((DF)->insns[(UID)])

#define DF_INSN_UID_LUID ( DF,
INSN   )     (DF_INSN_UID_GET(DF,INSN)->luid)

Definition at line 471 of file df.h.

Referenced by df_insn_uid_debug().

#define DF_INSN_UID_MWS ( DF,
INSN   )     (DF_INSN_UID_GET(DF,INSN)->mw_hardregs)

Definition at line 474 of file df.h.

Referenced by df_insn_uid_debug(), and df_ri_bb_compute().

#define DF_INSN_UID_USES ( DF,
INSN   )     (DF_INSN_UID_GET(DF,INSN)->uses)

#define DF_INSN_USES ( DF,
INSN   )     (DF_INSN_GET(DF,INSN)->uses)

Definition at line 468 of file df.h.

#define DF_LAST_PROBLEM_PLUS1   (DF_RI + 1)

Definition at line 51 of file df.h.

#define DF_LIVE_IN ( DF,
BB   )     (DF_UR_BB_INFO(DF, BB)->in)

Definition at line 388 of file df.h.

Referenced by df_get_live_in().

#define DF_LIVE_OUT ( DF,
BB   )     (DF_UR_BB_INFO(DF, BB)->out)

Definition at line 389 of file df.h.

Referenced by df_get_live_out().

#define DF_LR   3

Definition at line 46 of file df.h.

#define DF_LR_BB_INFO ( DF,
BB   )     (df_lr_get_bb_info((DF)->problems_by_index[DF_LR],(BB)->index))

Definition at line 381 of file df.h.

#define DF_RA_LIVE_IN ( DF,
BB   )     (DF_UREC_BB_INFO(DF, BB)->in)

Definition at line 393 of file df.h.

Referenced by df_get_live_in().

#define DF_RA_LIVE_OUT ( DF,
BB   )     (DF_UREC_BB_INFO(DF, BB)->out)

Definition at line 394 of file df.h.

Referenced by df_get_live_out().

#define DF_RD   2

Definition at line 45 of file df.h.

#define DF_RD_BB_INFO ( DF,
BB   )     (df_rd_get_bb_info((DF)->problems_by_index[DF_RD],(BB)->index))

Definition at line 380 of file df.h.

Referenced by add_deps_for_use(), build_inter_loop_deps(), and latch_dominating_def().

#define DF_REF_BB ( REF   )     ((REF)->bb)

Definition at line 413 of file df.h.

#define DF_REF_BBNO ( REF   )     (DF_REF_BB (REF)->index)

Definition at line 414 of file df.h.

#define DF_REF_CHAIN ( REF   )     ((REF)->chain)

Definition at line 418 of file df.h.

#define DF_REF_DATA ( REF   )     ((REF)->data)

Definition at line 424 of file df.h.

#define DF_REF_FLAGS ( REF   )     ((REF)->flags)

Definition at line 420 of file df.h.

#define DF_REF_ID ( REF   )     ((REF)->id)

Definition at line 419 of file df.h.

#define DF_REF_INSN ( REF   )     ((REF)->insn)

Definition at line 415 of file df.h.

#define DF_REF_INSN_UID ( REF   )     (INSN_UID ((REF)->insn))

Definition at line 416 of file df.h.

#define DF_REF_LOC ( REF   )     ((REF)->loc)

Definition at line 412 of file df.h.

#define DF_REF_NEXT_REF ( REF   )     ((REF)->next_ref)

Definition at line 423 of file df.h.

#define DF_REF_NEXT_REG ( REF   )     ((REF)->next_reg)

Definition at line 421 of file df.h.

Referenced by df_reg_chain_create(), df_reg_chain_unlink(), and df_reorganize_refs().

#define DF_REF_PREV_REG ( REF   )     ((REF)->prev_reg)

Definition at line 422 of file df.h.

Referenced by df_reg_chain_create(), and df_reg_chain_unlink().

#define DF_REF_REAL_LOC ( REF   ) 

Value:

(GET_CODE ((REF)->reg) == SUBREG \
              ? &SUBREG_REG ((REF)->reg) : ((REF)->loc))

Definition at line 409 of file df.h.

#define DF_REF_REAL_REG ( REF   ) 

Value:

(GET_CODE ((REF)->reg) == SUBREG \
        ? SUBREG_REG ((REF)->reg) : ((REF)->reg))

Definition at line 406 of file df.h.

#define DF_REF_REG ( REF   )     ((REF)->reg)

Definition at line 411 of file df.h.

#define DF_REF_REG_DEF_P ( REF   )     (DF_REF_TYPE (REF) == DF_REF_REG_DEF)

Definition at line 428 of file df.h.

#define DF_REF_REG_MEM_LOAD_P ( REF   )     (DF_REF_TYPE (REF) == DF_REF_REG_MEM_LOAD)

Definition at line 431 of file df.h.

#define DF_REF_REG_MEM_P ( REF   ) 

Value:

Definition at line 432 of file df.h.

#define DF_REF_REG_MEM_STORE_P ( REF   )     (DF_REF_TYPE (REF) == DF_REF_REG_MEM_STORE)

Definition at line 430 of file df.h.

#define DF_REF_REG_USE_P ( REF   )     ((REF) && !DF_REF_REG_DEF_P (REF))

Definition at line 429 of file df.h.

#define DF_REF_REGNO ( REF   )     ((REF)->regno)

Definition at line 408 of file df.h.

#define DF_REF_TYPE ( REF   )     ((REF)->type)

Definition at line 417 of file df.h.

#define DF_REF_TYPE_NAMES   {"def", "use", "mem load", "mem store"}

Definition at line 69 of file df.h.

#define DF_REG_DEF_COUNT ( DF,
REG   )     ((DF)->def_info.regs[(REG)]->n_refs)

Definition at line 448 of file df.h.

Referenced by df_ri_alloc().

#define DF_REG_DEF_GET ( DF,
REG   )     ((DF)->def_info.regs[(REG)])

#define DF_REG_DEF_SET ( DF,
REG,
VAL   )     ((DF)->def_info.regs[(REG)]=(VAL))

Definition at line 447 of file df.h.

#define DF_REG_SIZE ( DF   )     ((DF)->def_info.regs_inited)

Definition at line 445 of file df.h.

Referenced by find_invariants_to_move().

#define DF_REG_USE_COUNT ( DF,
REG   )     ((DF)->use_info.regs[(REG)]->n_refs)

Definition at line 451 of file df.h.

Referenced by df_ri_alloc().

#define DF_REG_USE_GET ( DF,
REG   )     ((DF)->use_info.regs[(REG)])

#define DF_REG_USE_SET ( DF,
REG,
VAL   )     ((DF)->use_info.regs[(REG)]=(VAL))

Definition at line 450 of file df.h.

#define DF_REGNO_FIRST_DEF ( DF,
REGNUM   )     (DF_REG_DEF_GET(DF, REGNUM) ? DF_REG_DEF_GET(DF, REGNUM) : 0)

Definition at line 455 of file df.h.

#define DF_REGNO_LAST_USE ( DF,
REGNUM   )     (DF_REG_USE_GET(DF, REGNUM) ? DF_REG_USE_GET(DF, REGNUM) : 0)

Definition at line 457 of file df.h.

#define DF_RI   7

Definition at line 50 of file df.h.

#define DF_RI_LIFE   1

#define DF_RU   1

Definition at line 44 of file df.h.

#define DF_RU_BB_INFO ( DF,
BB   )     (df_ru_get_bb_info((DF)->problems_by_index[DF_RU],(BB)->index))

Definition at line 379 of file df.h.

Referenced by add_deps_for_def(), and build_inter_loop_deps().

#define DF_SCAN   0

#define DF_SCAN_BB_INFO ( DF,
BB   )     (df_scan_get_bb_info((DF)->problems_by_index[DF_SCAN],(BB)->index))

Definition at line 378 of file df.h.

#define DF_SUBREGS   4

Definition at line 222 of file df.h.

Referenced by df_ref_record(), and see_initialize_data_structures().

#define DF_UD_CHAIN   2

Definition at line 225 of file df.h.

#define DF_UPWARD_LIVE_IN ( DF,
BB   )     (DF_LR_BB_INFO(DF, BB)->in)

Definition at line 399 of file df.h.

Referenced by df_get_live_in().

#define DF_UPWARD_LIVE_OUT ( DF,
BB   )     (DF_LR_BB_INFO(DF, BB)->out)

Definition at line 400 of file df.h.

Referenced by df_get_live_out().

#define DF_UR   4

Definition at line 47 of file df.h.

Referenced by df_get_live_in(), and df_get_live_out().

#define DF_UR_BB_INFO ( DF,
BB   )     (df_ur_get_bb_info((DF)->problems_by_index[DF_UR],(BB)->index))

Definition at line 382 of file df.h.

#define DF_UREC   5

Definition at line 48 of file df.h.

Referenced by df_get_live_in(), and df_get_live_out().

#define DF_UREC_BB_INFO ( DF,
BB   )     (df_urec_get_bb_info((DF)->problems_by_index[DF_UREC],(BB)->index))

Definition at line 383 of file df.h.

#define DF_USES_GET ( DF,
ID   )     ((DF)->use_info.refs[(ID)])

#define DF_USES_SET ( DF,
ID,
VAL   )     ((DF)->use_info.refs[(ID)]=(VAL))

Definition at line 441 of file df.h.

Referenced by df_ref_create_structure(), df_ref_remove(), and df_reg_chain_unlink().

#define DF_USES_SIZE ( DF   )     ((DF)->use_info.bitmap_size)


Typedef Documentation

Definition at line 127 of file df.h.

Definition at line 152 of file df.h.

Definition at line 155 of file df.h.

typedef void(* df_dataflow_function)(struct dataflow *, bitmap, bitmap, int *, int, bool)

Definition at line 148 of file df.h.

Definition at line 171 of file df.h.

Definition at line 167 of file df.h.

Definition at line 161 of file df.h.

Definition at line 139 of file df.h.

Definition at line 164 of file df.h.

Definition at line 145 of file df.h.

Definition at line 142 of file df.h.

Definition at line 135 of file df.h.

Definition at line 158 of file df.h.


Enumeration Type Documentation

Enumerator:
FORWARD 
BACKWARD 
FORWARD 
BACKWARD 
DF_FORWARD 
DF_BACKWARD 
DF_NONE 
DF_FORWARD 
DF_BACKWARD 

Definition at line 55 of file df.h.

Enumerator:
DF_REF_READ_WRITE 
DF_REF_MODE_CHANGE 
DF_REF_READ_WRITE 
DF_REF_MODE_CHANGE 
DF_REF_READ_WRITE 
DF_REF_STRIPPED 
DF_REF_READ_WRITE 
DF_REF_STRIPPED 
DF_REF_ARTIFICIAL 
DF_REF_AT_TOP 
DF_REF_IN_NOTE 
DF_REF_MAY_CLOBBER 
DF_REF_MUST_CLOBBER 
DF_REF_MW_HARDREG 
DF_REF_PARTIAL 

Definition at line 71 of file df.h.

Enumerator:
DF_REF_REG_DEF 
DF_REF_REG_USE 
DF_REF_REG_MEM_LOAD 
DF_REF_REG_MEM_STORE 
DF_REF_REG_DEF 
DF_REF_REG_USE 
DF_REF_REG_MEM_LOAD 
DF_REF_REG_MEM_STORE 
DF_REF_REG_DEF 
DF_REF_REG_USE 
DF_REF_REG_MEM_LOAD 
DF_REF_REG_MEM_STORE 
DF_REF_REG_DEF 
DF_REF_REG_USE 
DF_REF_REG_MEM_LOAD 
DF_REF_REG_MEM_STORE 

Definition at line 66 of file df.h.


Function Documentation

void debug_df_chain ( struct df_link  ) 

Definition at line 3619 of file df.c.

References df_chain_dump(), and fputc().

void debug_df_defno ( unsigned  int  ) 

Definition at line 3603 of file df.c.

References df::defs, DF_DEFS_GET, and df_ref_debug().

void debug_df_insn ( rtx   ) 

Definition at line 3570 of file df.c.

References debug_rtx(), and df_insn_debug().

void debug_df_ref ( struct df_ref  ) 

Definition at line 1312 of file df-core.c.

References df_ref_debug().

void debug_df_reg ( rtx   ) 

Definition at line 3579 of file df.c.

References df_regno_debug(), and REGNO.

void debug_df_regno ( unsigned  int  ) 

Definition at line 3587 of file df.c.

References df_regno_debug().

void debug_df_useno ( unsigned  int  ) 

Definition at line 3611 of file df.c.

References df_ref_debug(), DF_USES_GET, and df::uses.

struct dataflow* df_add_problem ( struct df ,
struct df_problem ,
int   
) [read]

void df_analyze ( struct df  ) 

void df_analyze_problem ( struct dataflow ,
bitmap  ,
bitmap  ,
bitmap  ,
int *  ,
int  ,
bool   
)

void df_bb_refs_delete ( struct dataflow ,
int   
)

struct df_ref* df_bb_regno_first_def_find ( struct df ,
basic_block  ,
unsigned  int 
) [read]

struct df_ref* df_bb_regno_last_def_find ( struct df ,
basic_block  ,
unsigned  int 
) [read]

struct df_ref* df_bb_regno_last_use_find ( struct df ,
basic_block  ,
unsigned  int 
) [read]

void df_bb_replace ( struct df ,
int  ,
basic_block   
)

struct dataflow* df_chain_add_problem ( struct df ,
int   
) [read]

void df_chain_copy ( struct dataflow ,
struct df_ref ,
struct df_link  
)

Definition at line 130 of file df-problems.c.

References df_chain_create(), df_link::next, and df_link::ref.

struct df_link* df_chain_create ( struct dataflow ,
struct df_ref ,
struct df_ref  
) [read]

void df_chain_dump ( struct df_link ,
FILE  
)

void df_chain_unlink ( struct dataflow ,
struct df_ref ,
struct df_link  
)

int df_clear_flags ( struct dataflow ,
int   
)

void df_compact_blocks ( struct df  ) 

void df_delete_basic_block ( struct df ,
int   
)

void df_dump ( struct df ,
FILE  
)

struct df_ref* df_find_def ( struct df ,
rtx  ,
rtx   
) [read]

struct df_ref* df_find_use ( struct df ,
rtx  ,
rtx   
) [read]

void df_finish1 ( struct df  ) 

struct df_ref* df_get_artificial_defs ( struct df ,
unsigned  int 
) [read]

struct df_ref* df_get_artificial_uses ( struct df ,
unsigned  int 
) [read]

bitmap df_get_live_in ( struct df ,
basic_block   
)

bitmap df_get_live_out ( struct df ,
basic_block   
)

void df_grow_bb_info ( struct dataflow  ) 

void df_hard_reg_init ( void   ) 

struct df* df_init ( int   )  [read]

Definition at line 313 of file df-core.c.

References df_hard_reg_init(), df_scan_add_problem(), and XCNEW.

void df_insn_debug ( struct df ,
rtx  ,
bool  ,
FILE  
)

Definition at line 1233 of file df-core.c.

References df_insn_uid_debug(), and INSN_UID.

void df_insn_debug_regno ( struct df ,
rtx  ,
FILE  
)

void df_insn_refs_delete ( struct dataflow ,
rtx   
)

bool df_insn_regno_def_p ( struct df ,
rtx  ,
unsigned  int 
)

Definition at line 1037 of file df-core.c.

References defs, DF_INSN_UID_GET, DF_REF_REGNO, INSN_UID, and df_ref::next_ref.

void df_iterative_dataflow ( struct dataflow ,
bitmap  ,
bitmap  ,
int *  ,
int  ,
bool   
)

struct dataflow* df_lr_add_problem ( struct df ,
int   
) [read]

Definition at line 1772 of file df-problems.c.

References df_add_problem().

struct df_lr_bb_info* df_lr_get_bb_info ( struct dataflow ,
unsigned  int 
) [read]

void df_print_bb_index ( basic_block  bb,
FILE file 
)

struct dataflow* df_rd_add_problem ( struct df ,
int   
) [read]

Definition at line 1358 of file df-problems.c.

References df_add_problem().

Referenced by see_initialize_data_structures().

struct df_rd_bb_info* df_rd_get_bb_info ( struct dataflow ,
unsigned  int 
) [read]

bool df_read_modify_subreg_p ( rtx   ) 

Definition at line 1164 of file df-scan.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().

struct df_ref* df_ref_create ( struct df ,
rtx  ,
rtx ,
rtx  ,
basic_block  ,
enum  df_ref_type,
enum  df_ref_flags 
) [read]

void df_ref_debug ( struct df_ref ,
FILE  
)

void df_ref_remove ( struct df ,
struct df_ref  
)

void df_refs_chain_dump ( struct df_ref ,
bool  ,
FILE  
)

void df_refs_delete ( struct dataflow ,
bitmap   
)

Definition at line 862 of file df-scan.c.

References df_bb_refs_delete(), and EXECUTE_IF_SET_IN_BITMAP.

Referenced by df_rescan_blocks().

void df_reg_chain_create ( struct df_reg_info ,
struct df_ref  
)

Definition at line 602 of file df-scan.c.

References DF_REF_NEXT_REG, DF_REF_PREV_REG, NULL, and df_reg_info::reg_chain.

Referenced by df_ref_create_structure().

struct df_ref* df_reg_chain_unlink ( struct dataflow ,
struct df_ref  
) [read]

bool df_reg_defined ( struct df ,
rtx  ,
rtx   
)

Definition at line 1076 of file df-core.c.

References df_find_def(), and NULL.

bool df_reg_used ( struct df ,
rtx  ,
rtx   
)

Definition at line 3042 of file df.c.

References df_find_use(), DF_INSN_USES, DF_REF_REG, df_link::next, NULL, df_link::ref, and rtx_equal_p().

Referenced by add_deps_for_def().

void df_regno_debug ( struct df ,
unsigned  int,
FILE  
)

Definition at line 1262 of file df-core.c.

References DF_REG_DEF_GET, DF_REG_USE_GET, df_regs_chain_dump(), and fprintf().

void df_regs_chain_dump ( struct df ,
struct df_ref ,
FILE  
)

void df_reorganize_refs ( struct df_ref_info  ) 

void df_rescan_blocks ( struct df ,
bitmap   
)

struct dataflow* df_ri_add_problem ( struct df ,
int   
) [read]

Definition at line 3812 of file df-problems.c.

References df_add_problem().

struct dataflow* df_ru_add_problem ( struct df ,
int   
) [read]

Definition at line 834 of file df-problems.c.

References df_add_problem().

struct df_ru_bb_info* df_ru_get_bb_info ( struct dataflow ,
unsigned  int 
) [read]

struct dataflow* df_scan_add_problem ( struct df ,
int   
) [read]

Definition at line 340 of file df-scan.c.

References df_add_problem().

Referenced by df_init().

struct df_scan_bb_info* df_scan_get_bb_info ( struct dataflow ,
unsigned  int 
) [read]

void df_set_blocks ( struct df ,
bitmap   
)

int df_set_flags ( struct dataflow ,
int   
)

struct dataflow* df_ur_add_problem ( struct df ,
int   
) [read]

Definition at line 2128 of file df-problems.c.

References df_add_problem().

struct df_ur_bb_info* df_ur_get_bb_info ( struct dataflow ,
unsigned  int 
) [read]

struct dataflow* df_urec_add_problem ( struct df ,
int   
) [read]

Definition at line 2736 of file df-problems.c.

References df_add_problem().

struct df_urec_bb_info* df_urec_get_bb_info ( struct dataflow ,
unsigned  int 
) [read]

void union_defs ( struct df ,
struct df_ref ,
struct web_entry ,
struct web_entry ,
bool(*)(struct web_entry *, struct web_entry *)  fun 
)

struct web_entry* unionfind_root ( struct web_entry  )  [read]

Definition at line 70 of file web.c.

References web_entry::pred.

bool unionfind_union ( struct web_entry ,
struct web_entry  
)

Definition at line 90 of file web.c.

References web_entry::pred, and unionfind_root().


Variable Documentation

Definition at line 300 of file df-core.c.


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