GCC Middle and Back End API Reference
ddg.h File Reference
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_insn *)
 
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)
 
bool autoinc_var_is_used_p (rtx_insn *, rtx_insn *)
 

Macro Definition Documentation

◆ NODE_PREDECESSORS

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

◆ NODE_SUCCESSORS

#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

◆ ddg_all_sccs_ptr

◆ ddg_edge_ptr

◆ ddg_node_ptr

DDG - Data Dependence Graph - interface.
   Copyright (C) 2004-2024 Free Software Foundation, Inc.
   Contributed by Ayal Zaks and Mustafa Hagog <zaks,mustafa@il.ibm.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.   

◆ ddg_ptr

◆ ddg_scc_ptr

Enumeration Type Documentation

◆ dep_data_type

Enumerator
REG_OR_MEM_DEP 
REG_DEP 
MEM_DEP 
REG_AND_MEM_DEP 

◆ dep_type

Enumerator
TRUE_DEP 
OUTPUT_DEP 
ANTI_DEP 

Function Documentation

◆ autoinc_var_is_used_p()

bool autoinc_var_is_used_p ( rtx_insn * ,
rtx_insn *  )

◆ create_ddg()

ddg_ptr create_ddg ( basic_block ,
int closing_branch_deps )

◆ create_ddg_all_sccs()

ddg_all_sccs_ptr create_ddg_all_sccs ( ddg_ptr )

◆ find_nodes_on_paths()

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

◆ find_predecessors()

void find_predecessors ( sbitmap result,
ddg_ptr ,
sbitmap  )

◆ find_successors()

void find_successors ( sbitmap result,
ddg_ptr ,
sbitmap  )

◆ free_ddg()

void free_ddg ( ddg_ptr )

◆ free_ddg_all_sccs()

void free_ddg_all_sccs ( ddg_all_sccs_ptr )

◆ get_node_of_insn()

ddg_node_ptr get_node_of_insn ( ddg_ptr ,
rtx_insn *  )

◆ print_ddg()

void print_ddg ( FILE * ,
ddg_ptr  )

◆ print_ddg_edge()

void print_ddg_edge ( FILE * ,
ddg_edge_ptr  )

◆ print_sccs()

void print_sccs ( FILE * ,
ddg_all_sccs_ptr ,
ddg_ptr  )

◆ vcg_print_ddg()

void vcg_print_ddg ( FILE * ,
ddg_ptr  )