GCC Middle and Back End API Reference
ddg.h File Reference
#include "sbitmap.h"
#include "basic-block.h"
#include "df.h"
Include dependency graph for ddg.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ddg_node
struct  ddg_edge
struct  ddg
struct  ddg_scc
struct  ddg_all_sccs

Macros

#define NODE_SUCCESSORS(x)   ((x)->successors)
#define NODE_PREDECESSORS(x)   ((x)->predecessors)

Typedefs

typedef struct ddg_nodeddg_node_ptr
typedef struct ddg_edgeddg_edge_ptr
typedef struct ddgddg_ptr
typedef struct ddg_sccddg_scc_ptr
typedef struct ddg_all_sccsddg_all_sccs_ptr

Enumerations

enum  dep_type { TRUE_DEP, OUTPUT_DEP, ANTI_DEP }
enum  dep_data_type { REG_OR_MEM_DEP, REG_DEP, MEM_DEP, REG_AND_MEM_DEP }

Functions

ddg_ptr create_ddg (basic_block, int closing_branch_deps)
void free_ddg (ddg_ptr)
void print_ddg (FILE *, ddg_ptr)
void vcg_print_ddg (FILE *, ddg_ptr)
void print_ddg_edge (FILE *, ddg_edge_ptr)
void print_sccs (FILE *, ddg_all_sccs_ptr, ddg_ptr)
ddg_node_ptr get_node_of_insn (ddg_ptr, rtx)
void find_successors (sbitmap result, ddg_ptr, sbitmap)
void find_predecessors (sbitmap result, ddg_ptr, sbitmap)
ddg_all_sccs_ptr create_ddg_all_sccs (ddg_ptr)
void free_ddg_all_sccs (ddg_all_sccs_ptr)
int find_nodes_on_paths (sbitmap result, ddg_ptr, sbitmap from, sbitmap to)
int longest_simple_path (ddg_ptr, int from, int to, sbitmap via)
bool autoinc_var_is_used_p (rtx, rtx)

Macro Definition Documentation

#define NODE_PREDECESSORS (   x)    ((x)->predecessors)
#define NODE_SUCCESSORS (   x)    ((x)->successors)

The following two macros enables direct access to the successors and predecessors bitmaps held in each ddg_node. Do not make changes to these bitmaps, unless you want to change the DDG.


Typedef Documentation

typedef struct ddg_all_sccs* ddg_all_sccs_ptr
typedef struct ddg_edge* ddg_edge_ptr
typedef struct ddg_node* ddg_node_ptr

DDG - Data Dependence Graph - interface. Copyright (C) 2004-2013 Free Software Foundation, Inc. Contributed by Ayal Zaks and Mustafa Hagog <zaks,musta.nosp@m.fa@i.nosp@m.l.ibm.nosp@m..com>

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see http://www.gnu.org/licenses/. For sbitmap. For basic_block.

typedef struct ddg* ddg_ptr
typedef struct ddg_scc* ddg_scc_ptr

Enumeration Type Documentation

Enumerator:
REG_OR_MEM_DEP 
REG_DEP 
MEM_DEP 
REG_AND_MEM_DEP 
enum dep_type
Enumerator:
TRUE_DEP 
OUTPUT_DEP 
ANTI_DEP 

Function Documentation

bool autoinc_var_is_used_p ( rtx  ,
rtx   
)
ddg_ptr create_ddg ( basic_block  ,
int  closing_branch_deps 
)
ddg_all_sccs_ptr create_ddg_all_sccs ( ddg_ptr  )
int find_nodes_on_paths ( sbitmap  result,
ddg_ptr  ,
sbitmap  from,
sbitmap  to 
)
void find_predecessors ( sbitmap  result,
ddg_ptr  ,
sbitmap   
)
void find_successors ( sbitmap  result,
ddg_ptr  ,
sbitmap   
)
void free_ddg ( ddg_ptr  )
void free_ddg_all_sccs ( ddg_all_sccs_ptr  )
ddg_node_ptr get_node_of_insn ( ddg_ptr  ,
rtx   
)
int longest_simple_path ( ddg_ptr  ,
int  from,
int  to,
sbitmap  via 
)
void print_ddg ( FILE *  ,
ddg_ptr   
)
void print_ddg_edge ( FILE *  ,
ddg_edge_ptr   
)
void print_sccs ( FILE *  ,
ddg_all_sccs_ptr  ,
ddg_ptr   
)
void vcg_print_ddg ( FILE *  ,
ddg_ptr   
)