osprey-gcc/gcc/ddg.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "toplev.h"
#include "rtl.h"
#include "tm_p.h"
#include "hard-reg-set.h"
#include "regs.h"
#include "function.h"
#include "flags.h"
#include "insn-config.h"
#include "insn-attr.h"
#include "except.h"
#include "recog.h"
#include "sched-int.h"
#include "target.h"
#include "cfglayout.h"
#include "cfgloop.h"
#include "sbitmap.h"
#include "expr.h"
#include "bitmap.h"
#include "df.h"
#include "ddg.h"

Include dependency graph for ddg.c:

Go to the source code of this file.

Enumerations

enum  edge_flag { NOT_IN_SCC = 0, IN_SCC, NOT_IN_SCC = 0, IN_SCC }

Functions/Subroutines

static void add_backarc_to_ddg (ddg_ptr, ddg_edge_ptr)
static void add_backarc_to_scc (ddg_scc_ptr, ddg_edge_ptr)
static void add_scc_to_ddg (ddg_all_sccs_ptr, ddg_scc_ptr)
static void create_ddg_dependence (ddg_ptr, ddg_node_ptr, ddg_node_ptr, rtx)
static void create_ddg_dep_no_link (ddg_ptr, ddg_node_ptr, ddg_node_ptr, dep_type, dep_data_type, int)
static ddg_edge_ptr create_ddg_edge (ddg_node_ptr, ddg_node_ptr, dep_type, dep_data_type, int, int)
static void add_edge_to_ddg (ddg_ptr g, ddg_edge_ptr)
static int mark_mem_use (rtx *x, void *data ATTRIBUTE_UNUSED)
static void mark_mem_use_1 (rtx *x, void *data)
static bool mem_read_insn_p (rtx insn)
static void mark_mem_store (rtx loc, rtx setter ATTRIBUTE_UNUSED, void *data ATTRIBUTE_UNUSED)
static bool mem_write_insn_p (rtx insn)
static bool rtx_mem_access_p (rtx x)
static bool mem_access_insn_p (rtx insn)
static void add_deps_for_def (ddg_ptr g, struct df *df, struct ref *rd)
static void add_deps_for_use (ddg_ptr g, struct df *df, struct ref *use)
static void build_inter_loop_deps (ddg_ptr g, struct df *df)
static void add_inter_loop_mem_dep (ddg_ptr g, ddg_node_ptr from, ddg_node_ptr to)
static void build_intra_loop_deps (ddg_ptr g)
ddg_ptr create_ddg (basic_block bb, struct df *df, int closing_branch_deps)
void free_ddg (ddg_ptr g)
void print_ddg_edge (FILE *dump_file, ddg_edge_ptr e)
void print_ddg (FILE *dump_file, ddg_ptr g)
void vcg_print_ddg (FILE *dump_file, ddg_ptr g)
static void set_recurrence_length (ddg_scc_ptr scc, ddg_ptr g)
static ddg_scc_ptr create_scc (ddg_ptr g, sbitmap nodes)
static void free_scc (ddg_scc_ptr scc)
ddg_node_ptr get_node_of_insn (ddg_ptr g, rtx insn)
void find_successors (sbitmap succ, ddg_ptr g, sbitmap ops)
void find_predecessors (sbitmap preds, ddg_ptr g, sbitmap ops)
static int compare_sccs (const void *s1, const void *s2)
static void order_sccs (ddg_all_sccs_ptr g)
ddg_all_sccs_ptr create_ddg_all_sccs (ddg_ptr g)
void free_ddg_all_sccs (ddg_all_sccs_ptr all_sccs)
int find_nodes_on_paths (sbitmap result, ddg_ptr g, sbitmap from, sbitmap to)
static int update_dist_to_successors (ddg_node_ptr u_node, sbitmap nodes, sbitmap tmp)
int longest_simple_path (struct ddg *g, int src, int dest, sbitmap nodes)

Variables

static bool mem_ref_p


Enumeration Type Documentation

enum edge_flag

Enumerator:
NOT_IN_SCC 
IN_SCC 
NOT_IN_SCC 
IN_SCC 

Definition at line 50 of file ddg.c.


Function Documentation

static void add_backarc_to_ddg ( ddg_ptr  g,
ddg_edge_ptr  e 
) [static]

Definition at line 738 of file ddg.c.

References add_edge_to_ddg(), ddg::backarcs, ddg::num_backarcs, size, and xrealloc().

Referenced by create_ddg_dep_no_link(), and create_ddg_dependence().

static void add_backarc_to_scc ( ddg_scc_ptr  scc,
ddg_edge_ptr  e 
) [static]

Definition at line 749 of file ddg.c.

References ddg_scc::backarcs, ddg_scc::num_backarcs, size, and xrealloc().

Referenced by create_scc().

static void add_deps_for_def ( ddg_ptr  g,
struct df df,
struct ref rd 
) [static]

static void add_deps_for_use ( ddg_ptr  g,
struct df df,
struct ref use 
) [static]

static void add_edge_to_ddg ( ddg_ptr g  ATTRIBUTE_UNUSED,
ddg_edge_ptr  e 
) [static]

static void add_inter_loop_mem_dep ( ddg_ptr  g,
ddg_node_ptr  from,
ddg_node_ptr  to 
) [static]

static void add_scc_to_ddg ( ddg_all_sccs_ptr  g,
ddg_scc_ptr  scc 
) [static]

Definition at line 759 of file ddg.c.

References ddg_all_sccs::num_sccs, ddg_all_sccs::sccs, size, and xrealloc().

Referenced by create_ddg_all_sccs().

static void build_inter_loop_deps ( ddg_ptr  g,
struct df df 
) [static]

static void build_intra_loop_deps ( ddg_ptr  g  )  [static]

static int compare_sccs ( const void s1,
const void s2 
) [static]

Definition at line 819 of file ddg.c.

Referenced by order_sccs().

ddg_ptr create_ddg ( basic_block  bb,
struct df df,
int  closing_branch_deps 
)

Definition at line 435 of file ddg.c.

ddg_all_sccs_ptr create_ddg_all_sccs ( ddg_ptr  g  ) 

Definition at line 838 of file ddg.c.

static void create_ddg_dep_no_link ( ddg_ptr  g,
ddg_node_ptr  from,
ddg_node_ptr  to,
dep_type  d_t,
dep_data_type  d_dt,
int  distance 
) [static]

static void create_ddg_dependence ( ddg_ptr  g,
ddg_node_ptr  src_node,
ddg_node_ptr  dest_node,
rtx  link 
) [static]

static ddg_edge_ptr create_ddg_edge ( ddg_node_ptr  src,
ddg_node_ptr  dest,
dep_type  t,
dep_data_type  dt,
int  l,
int  d 
) [static]

static ddg_scc_ptr create_scc ( ddg_ptr  g,
sbitmap  nodes 
) [static]

int find_nodes_on_paths ( sbitmap  result,
ddg_ptr  g,
sbitmap  from,
sbitmap  to 
)

Definition at line 901 of file ddg.c.

Referenced by create_ddg_all_sccs().

void find_predecessors ( sbitmap  preds,
ddg_ptr  g,
sbitmap  ops 
)

Definition at line 801 of file ddg.c.

void find_successors ( sbitmap  succ,
ddg_ptr  g,
sbitmap  ops 
)

Definition at line 783 of file ddg.c.

void free_ddg ( ddg_ptr  g  ) 

Definition at line 518 of file ddg.c.

void free_ddg_all_sccs ( ddg_all_sccs_ptr  all_sccs  ) 

Definition at line 883 of file ddg.c.

static void free_scc ( ddg_scc_ptr  scc  )  [static]

Definition at line 724 of file ddg.c.

References ddg_scc::backarcs, free(), ddg_scc::nodes, ddg_scc::num_backarcs, and sbitmap_free.

Referenced by free_ddg_all_sccs().

ddg_node_ptr get_node_of_insn ( ddg_ptr  g,
rtx  insn 
)

Definition at line 769 of file ddg.c.

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

int longest_simple_path ( struct ddg g,
int  src,
int  dest,
sbitmap  nodes 
)

static void mark_mem_store ( rtx  loc,
rtx setter  ATTRIBUTE_UNUSED,
void *data  ATTRIBUTE_UNUSED 
) [static]

Definition at line 92 of file ddg.c.

References MEM_P, and mem_ref_p.

Referenced by mem_write_insn_p().

static int mark_mem_use ( rtx x,
void *data  ATTRIBUTE_UNUSED 
) [static]

Definition at line 68 of file ddg.c.

References MEM_P, and mem_ref_p.

Referenced by mark_mem_use_1().

static void mark_mem_use_1 ( rtx x,
void data 
) [static]

Definition at line 77 of file ddg.c.

References for_each_rtx(), and mark_mem_use().

Referenced by mem_read_insn_p().

static bool mem_access_insn_p ( rtx  insn  )  [static]

Definition at line 142 of file ddg.c.

References PATTERN, and rtx_mem_access_p().

Referenced by build_intra_loop_deps(), and create_ddg_dependence().

static bool mem_read_insn_p ( rtx  insn  )  [static]

Definition at line 84 of file ddg.c.

References mark_mem_use_1(), mem_ref_p, note_uses(), NULL, and PATTERN.

Referenced by add_inter_loop_mem_dep(), and create_ddg().

static bool mem_write_insn_p ( rtx  insn  )  [static]

Definition at line 100 of file ddg.c.

References mark_mem_store(), mem_ref_p, note_stores(), NULL, and PATTERN.

Referenced by add_inter_loop_mem_dep(), and create_ddg().

static void order_sccs ( ddg_all_sccs_ptr  g  )  [static]

Definition at line 829 of file ddg.c.

References compare_sccs(), ddg_all_sccs::num_sccs, qsort(), and ddg_all_sccs::sccs.

Referenced by create_ddg_all_sccs().

void print_ddg ( FILE dump_file,
ddg_ptr  g 
)

Definition at line 567 of file ddg.c.

void print_ddg_edge ( FILE dump_file,
ddg_edge_ptr  e 
)

Definition at line 546 of file ddg.c.

Referenced by print_ddg().

static bool rtx_mem_access_p ( rtx  x  )  [static]

Definition at line 109 of file ddg.c.

References GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, MEM_P, XEXP, XVECEXP, and XVECLEN.

Referenced by mem_access_insn_p(), and rtx_mem_access_p().

static void set_recurrence_length ( ddg_scc_ptr  scc,
ddg_ptr  g 
) [static]

static int update_dist_to_successors ( ddg_node_ptr  u_node,
sbitmap  nodes,
sbitmap  tmp 
) [static]

void vcg_print_ddg ( FILE dump_file,
ddg_ptr  g 
)

Definition at line 590 of file ddg.c.


Variable Documentation

bool mem_ref_p [static]

Definition at line 64 of file ddg.c.

Referenced by mark_mem_store(), mark_mem_use(), mem_read_insn_p(), and mem_write_insn_p().


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