GCC Middle and Back End API Reference
|
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_node * | ddg_node_ptr |
typedef struct ddg_edge * | ddg_edge_ptr |
typedef struct ddg * | ddg_ptr |
typedef struct ddg_scc * | ddg_scc_ptr |
typedef struct ddg_all_sccs * | ddg_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) |
#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 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> fa@i l.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. For basic_block.
typedef struct ddg_scc* ddg_scc_ptr |
enum dep_data_type |
enum dep_type |
ddg_ptr create_ddg | ( | basic_block | , |
int | closing_branch_deps | ||
) |
ddg_all_sccs_ptr create_ddg_all_sccs | ( | ddg_ptr | ) |
void free_ddg | ( | ddg_ptr | ) |
void free_ddg_all_sccs | ( | ddg_all_sccs_ptr | ) |
ddg_node_ptr get_node_of_insn | ( | ddg_ptr | , |
rtx | |||
) |
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 | |||
) |