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

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

Go to the source code of this file.

Data Types

type  df_link
type  ref
type  insn_info
type  reg_info
type  bb_info
type  df
type  df_map

Defines

#define DF_RD   1
#define DF_RU   2
#define DF_LR   4
#define DF_DU_CHAIN   8
#define DF_UD_CHAIN   16
#define DF_REG_INFO   32
#define DF_RD_CHAIN   64
#define DF_RU_CHAIN   128
#define DF_ALL   255
#define DF_HARD_REGS   1024
#define DF_EQUIV_NOTES   2048
#define DF_REF_TYPE_NAMES   {"def", "use", "mem load", "mem store"}
#define DF_BB_INFO(REFS, BB)   (&REFS->bbs[(BB)->index])
#define DF_REF_REAL_REG(REF)
#define DF_REF_REGNO(REF)   REGNO (DF_REF_REAL_REG (REF))
#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)   (BLOCK_FOR_INSN ((REF)->insn))
#define DF_REF_BBNO(REF)   (BLOCK_FOR_INSN ((REF)->insn)->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_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_REGNO_FIRST_DEF(DF, REGNUM)   ((DF)->regs[REGNUM].defs ? (DF)->regs[REGNUM].defs->ref : 0)
#define DF_REGNO_LAST_USE(DF, REGNUM)   ((DF)->regs[REGNUM].uses ? (DF)->regs[REGNUM].uses->ref : 0)
#define DF_REGNO_FIRST_BB(DF, REGNUM)
#define DF_REGNO_LAST_BB(DF, REGNUM)
#define DF_INSN_LUID(DF, INSN)   ((DF)->insns[INSN_UID (INSN)].luid)
#define DF_INSN_DEFS(DF, INSN)   ((DF)->insns[INSN_UID (INSN)].defs)
#define DF_INSN_USES(DF, INSN)   ((DF)->insns[INSN_UID (INSN)].uses)

Typedefs

typedef void
transfer_function_sbitmap 
PARAMS ((int, int *, sbitmap, sbitmap, sbitmap, sbitmap, void *))

Enumerations

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
}
enum  df_confluence_op {
  UNION, INTERSECTION, UNION, INTERSECTION,
  DF_UNION, DF_INTERSECTION
}
enum  df_flow_dir {
  FORWARD, BACKWARD, FORWARD, BACKWARD,
  DF_FORWARD, DF_BACKWARD, DF_NONE, DF_FORWARD,
  DF_BACKWARD
}

Functions/Subroutines

struct df *df_init PARAMS ((void))
int df_analyse PARAMS ((struct df *, bitmap, int))
void df_finish PARAMS ((struct df *))
void df_dump PARAMS ((struct df *, int, FILE *))
void df_insn_modify PARAMS ((struct df *, basic_block, rtx))
rtx df_pattern_emit_before PARAMS ((struct df *, rtx, basic_block, rtx))
rtx df_insn_move_before PARAMS ((struct df *, basic_block, rtx, basic_block, rtx))
int df_reg_replace PARAMS ((struct df *, bitmap, rtx, rtx))
int df_ref_reg_replace PARAMS ((struct df *, struct ref *, rtx, rtx))
int df_ref_remove PARAMS ((struct df *, struct ref *))
int df_insn_reg_replace PARAMS ((struct df *, basic_block, rtx, rtx, rtx))
struct ref *df_bb_def_use_swap PARAMS ((struct df *, basic_block, rtx, rtx, unsigned int))
basic_block df_regno_bb PARAMS ((struct df *, unsigned int))
int df_reg_lifetime PARAMS ((struct df *, rtx))
int df_insn_regno_def_p PARAMS ((struct df *, basic_block, rtx, unsigned int))
int df_insn_dominates_uses_p PARAMS ((struct df *, basic_block, rtx, bitmap))
int df_bb_regs_lives_compare PARAMS ((struct df *, basic_block, rtx, rtx))
void debug_df_insn PARAMS ((rtx))
void debug_df_regno PARAMS ((unsigned int))
void debug_df_ref PARAMS ((struct ref *))
void debug_df_chain PARAMS ((struct df_link *))
void df_insn_debug PARAMS ((struct df *, rtx, FILE *))
void iterative_dataflow_sbitmap PARAMS ((sbitmap *, sbitmap *, sbitmap *, sbitmap *, bitmap, enum df_flow_dir, enum df_confluence_op, transfer_function_sbitmap, int *, void *))
void iterative_dataflow_bitmap PARAMS ((bitmap *, bitmap *, bitmap *, bitmap *, bitmap, enum df_flow_dir, enum df_confluence_op, transfer_function_bitmap, int *, void *))


Define Documentation

#define DF_ALL   255

Definition at line 31 of file df.h.

Referenced by df_free().

#define DF_BB_INFO ( REFS,
BB   )     (&REFS->bbs[(BB)->index])

#define DF_DU_CHAIN   8

#define DF_EQUIV_NOTES   2048

#define DF_HARD_REGS   1024

#define DF_INSN_DEFS ( DF,
INSN   )     ((DF)->insns[INSN_UID (INSN)].defs)

#define DF_INSN_LUID ( DF,
INSN   )     ((DF)->insns[INSN_UID (INSN)].luid)

#define DF_INSN_USES ( DF,
INSN   )     ((DF)->insns[INSN_UID (INSN)].uses)

#define DF_LR   4

#define DF_RD   1

#define DF_RD_CHAIN   64

#define DF_REF_BB ( REF   )     (BLOCK_FOR_INSN ((REF)->insn))

#define DF_REF_BBNO ( REF   )     (BLOCK_FOR_INSN ((REF)->insn)->index)

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

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

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

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

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

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

#define DF_REF_REAL_LOC ( REF   ) 

Value:

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

Definition at line 177 of file df.h.

Referenced by emit_colors(), and replace_ref().

#define DF_REF_REAL_REG ( REF   ) 

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

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

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

Definition at line 200 of file df.h.

#define DF_REF_REG_MEM_P ( REF   ) 

Value:

Definition at line 201 of file df.h.

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

Definition at line 199 of file df.h.

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

Definition at line 198 of file df.h.

#define DF_REF_REGNO ( REF   )     REGNO (DF_REF_REAL_REG (REF))

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

Definition at line 190 of file df.h.

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

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

Definition at line 38 of file df.h.

#define DF_REG_INFO   32

#define DF_REGNO_FIRST_BB ( DF,
REGNUM   ) 

Value:

(DF_REGNO_FIRST_DEF (DF, REGNUM) \
? DF_REF_BB (DF_REGNO_FIRST_DEF (DF, REGNUM)) : 0)

Definition at line 212 of file df.h.

#define DF_REGNO_FIRST_DEF ( DF,
REGNUM   )     ((DF)->regs[REGNUM].defs ? (DF)->regs[REGNUM].defs->ref : 0)

Definition at line 207 of file df.h.

Referenced by find_invariants_to_move().

#define DF_REGNO_LAST_BB ( DF,
REGNUM   ) 

Value:

(DF_REGNO_LAST_USE (DF, REGNUM) \
? DF_REF_BB (DF_REGNO_LAST_USE (DF, REGNUM)) : 0)

Definition at line 215 of file df.h.

#define DF_REGNO_LAST_USE ( DF,
REGNUM   )     ((DF)->regs[REGNUM].uses ? (DF)->regs[REGNUM].uses->ref : 0)

Definition at line 209 of file df.h.

Referenced by find_invariants_to_move().

#define DF_RU   2

#define DF_RU_CHAIN   128

#define DF_UD_CHAIN   16


Typedef Documentation

typedef void transfer_function_bitmap PARAMS((int, int *, bitmap, bitmap,bitmap, bitmap, void *))

Definition at line 329 of file df.h.


Enumeration Type Documentation

Enumerator:
UNION 
INTERSECTION 
UNION 
INTERSECTION 
DF_UNION 
DF_INTERSECTION 

Definition at line 317 of file df.h.

Enumerator:
FORWARD 
BACKWARD 
FORWARD 
BACKWARD 
DF_FORWARD 
DF_BACKWARD 
DF_NONE 
DF_FORWARD 
DF_BACKWARD 

Definition at line 323 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 51 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 35 of file df.h.


Function Documentation

void iterative_dataflow_bitmap PARAMS ( (bitmap *, bitmap *, bitmap *, bitmap *, bitmap, enum df_flow_dir, enum df_confluence_op, transfer_function_bitmap, int *, void *)   ) 

void iterative_dataflow_sbitmap PARAMS ( (sbitmap *, sbitmap *, sbitmap *, sbitmap *, bitmap, enum df_flow_dir, enum df_confluence_op, transfer_function_sbitmap, int *, void *)   ) 

void df_insn_debug PARAMS ( (struct df *, rtx, FILE *)   ) 

void debug_df_chain PARAMS ( (struct df_link *)   ) 

void debug_df_ref PARAMS ( (struct ref *)   ) 

void debug_df_regno PARAMS ( (unsigned int)   ) 

void debug_df_insn PARAMS ( (rtx  ) 

int df_bb_regs_lives_compare PARAMS ( (struct df *, basic_block, rtx, rtx  ) 

int df_insn_dominates_uses_p PARAMS ( (struct df *, basic_block, rtx, bitmap  ) 

int df_insn_regno_def_p PARAMS ( (struct df *, basic_block, rtx, unsigned int)   ) 

int df_reg_lifetime PARAMS ( (struct df *, rtx  ) 

basic_block df_regno_bb PARAMS ( (struct df *, unsigned int)   ) 

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

int df_insn_reg_replace PARAMS ( (struct df *, basic_block, rtx, rtx, rtx  ) 

int df_ref_remove PARAMS ( (struct df *, struct ref *)   ) 

int df_ref_reg_replace PARAMS ( (struct df *, struct ref *, rtx, rtx  ) 

int df_reg_replace PARAMS ( (struct df *, bitmap, rtx, rtx  ) 

rtx df_insn_move_before PARAMS ( (struct df *, basic_block, rtx, basic_block, rtx  ) 

rtx df_pattern_emit_before PARAMS ( (struct df *, rtx, basic_block, rtx  ) 

void df_insn_modify PARAMS ( (struct df *, basic_block, rtx  ) 

void df_dump PARAMS ( (struct df *, int, FILE *)   ) 

void df_finish PARAMS ( (struct df *)   ) 

int df_analyse PARAMS ( (struct df *, bitmap, int)   ) 

struct df* df_init PARAMS ( (void  )  [read]

Definition at line 77 of file cplus-dem.c.


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