GCC Middle and Back End API Reference
graphite.h File Reference
#include "sese.h"
Include dependency graph for graphite.h:

Go to the source code of this file.

Data Structures

struct  poly_dr
 
struct  poly_bb
 
struct  dr_info
 
struct  scop
 

Macros

#define PDR_ID(PDR)
 
#define PDR_NB_REFS(PDR)
 
#define PDR_PBB(PDR)
 
#define PDR_TYPE(PDR)
 
#define PDR_ACCESSES(PDR)
 
#define PBB_BLACK_BOX(PBB)
 
#define PBB_SCOP(PBB)
 
#define PBB_DRS(PBB)
 

Typedefs

typedef struct poly_drpoly_dr_p
 
typedef struct poly_bbpoly_bb_p
 
typedef struct scopscop_p
 
typedef unsigned graphite_dim_t
 

Enumerations

enum  poly_dr_type { PDR_READ , PDR_WRITE , PDR_MAY_WRITE }
 

Functions

graphite_dim_t scop_nb_params (scop_p)
 
void new_poly_dr (poly_bb_p, gimple *, enum poly_dr_type, isl_map *, isl_set *)
 
void debug_pdr (poly_dr_p)
 
void print_pdr (FILE *, poly_dr_p)
 
bool pdr_read_p (poly_dr_p pdr)
 
bool pdr_write_p (poly_dr_p pdr)
 
bool pdr_may_write_p (poly_dr_p pdr)
 
poly_bb_p new_poly_bb (scop_p, gimple_poly_bb_p)
 
void print_pbb_domain (FILE *, poly_bb_p)
 
void print_pbb (FILE *, poly_bb_p)
 
void print_scop_context (FILE *, scop_p)
 
void print_scop (FILE *, scop_p)
 
void debug_pbb_domain (poly_bb_p)
 
void debug_pbb (poly_bb_p)
 
void print_pdrs (FILE *, poly_bb_p)
 
void debug_pdrs (poly_bb_p)
 
void debug_scop_context (scop_p)
 
void debug_scop (scop_p)
 
void print_scop_params (FILE *, scop_p)
 
void debug_scop_params (scop_p)
 
void print_iteration_domain (FILE *, poly_bb_p)
 
void print_iteration_domains (FILE *, scop_p)
 
void debug_iteration_domain (poly_bb_p)
 
void debug_iteration_domains (scop_p)
 
void print_isl_set (FILE *, isl_set *)
 
void print_isl_map (FILE *, isl_map *)
 
void print_isl_union_map (FILE *, isl_union_map *)
 
void print_isl_aff (FILE *, isl_aff *)
 
void print_isl_constraint (FILE *, isl_constraint *)
 
void print_isl_schedule (FILE *, isl_schedule *)
 
void debug_isl_schedule (isl_schedule *)
 
void print_isl_ast (FILE *, isl_ast_node *)
 
void debug_isl_ast (isl_ast_node *)
 
void debug_isl_set (isl_set *)
 
void debug_isl_map (isl_map *)
 
void debug_isl_union_map (isl_union_map *)
 
void debug_isl_aff (isl_aff *)
 
void debug_isl_constraint (isl_constraint *)
 
void debug_gmp_value (mpz_t)
 
void debug_scop_pbb (scop_p scop, int i)
 
void print_schedule_ast (FILE *, __isl_keep isl_schedule *, scop_p)
 
void debug_schedule_ast (__isl_keep isl_schedule *, scop_p)
 
basic_block pbb_bb (poly_bb_p pbb)
 
int pbb_index (poly_bb_p pbb)
 
loop_p pbb_loop (poly_bb_p pbb)
 
scop_p pdr_scop (poly_dr_p pdr)
 
void pbb_set_black_box (poly_bb_p pbb, gimple_poly_bb_p black_box)
 
scop_p new_scop (edge, edge)
 
void free_scop (scop_p)
 
gimple_poly_bb_p new_gimple_poly_bb (basic_block, vec< data_reference_p >, vec< scalar_use >, vec< tree >)
 
bool apply_poly_transforms (scop_p)
 
void scop_set_region (scop_p scop, sese_info_p region)
 
void scop_set_nb_params (scop_p scop, graphite_dim_t nb_params)
 
void scop_get_dependences (scop_p scop)
 
bool carries_deps (__isl_keep isl_union_map *schedule, __isl_keep isl_union_map *deps, int depth)
 
bool build_poly_scop (scop_p)
 
bool graphite_regenerate_ast_isl (scop_p)
 
void build_scops (vec< scop_p > *)
 
tree cached_scalar_evolution_in_region (const sese_l &, loop_p, tree)
 
void dot_all_sese (FILE *, vec< sese_l > &)
 
void dot_sese (sese_l &)
 
void dot_cfg ()
 

Macro Definition Documentation

◆ PBB_BLACK_BOX

#define PBB_BLACK_BOX ( PBB)
Value:
((gimple_poly_bb_p) PBB->black_box)
struct gimple_poly_bb * gimple_poly_bb_p

Referenced by pbb_bb(), and pbb_loop().

◆ PBB_DRS

#define PBB_DRS ( PBB)
Value:
(PBB->drs)

◆ PBB_SCOP

#define PBB_SCOP ( PBB)
Value:
(PBB->scop)

Referenced by pdr_scop().

◆ PDR_ACCESSES

#define PDR_ACCESSES ( PDR)
Value:
#define NULL
Definition system.h:50

◆ PDR_ID

#define PDR_ID ( PDR)
Value:
(PDR->id)

◆ PDR_NB_REFS

#define PDR_NB_REFS ( PDR)
Value:
(PDR->nb_refs)

◆ PDR_PBB

#define PDR_PBB ( PDR)
Value:
(PDR->pbb)

Referenced by pdr_scop().

◆ PDR_TYPE

#define PDR_TYPE ( PDR)
Value:
(PDR->type)

Referenced by pdr_may_write_p(), pdr_read_p(), and pdr_write_p().

Typedef Documentation

◆ graphite_dim_t

typedef unsigned graphite_dim_t

◆ poly_bb_p

typedef struct poly_bb* poly_bb_p

◆ poly_dr_p

typedef struct poly_dr* poly_dr_p
Graphite polyhedral representation.
   Copyright (C) 2009-2024 Free Software Foundation, Inc.
   Contributed by Sebastian Pop <sebastian.pop@amd.com> and
   Tobias Grosser <grosser@fim.uni-passau.de>.

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/>.   

◆ scop_p

typedef struct scop* scop_p

Enumeration Type Documentation

◆ poly_dr_type

A data reference can write or read some memory or we
just know it may write some memory.   
Enumerator
PDR_READ 
PDR_WRITE 
PDR_MAY_WRITE 

Function Documentation

◆ apply_poly_transforms()

bool apply_poly_transforms ( scop_p )
extern

◆ build_poly_scop()

bool build_poly_scop ( scop_p )
extern

◆ build_scops()

void build_scops ( vec< scop_p > * )
extern

◆ cached_scalar_evolution_in_region()

tree cached_scalar_evolution_in_region ( const sese_l & ,
loop_p ,
tree  )
extern

◆ carries_deps()

bool carries_deps ( __isl_keep isl_union_map * schedule,
__isl_keep isl_union_map * deps,
int depth )

◆ debug_gmp_value()

void debug_gmp_value ( mpz_t )
extern

◆ debug_isl_aff()

void debug_isl_aff ( isl_aff * )
extern

◆ debug_isl_ast()

void debug_isl_ast ( isl_ast_node * )
extern

◆ debug_isl_constraint()

void debug_isl_constraint ( isl_constraint * )
extern

◆ debug_isl_map()

void debug_isl_map ( isl_map * )
extern

◆ debug_isl_schedule()

void debug_isl_schedule ( isl_schedule * )
extern

◆ debug_isl_set()

void debug_isl_set ( isl_set * )
extern

◆ debug_isl_union_map()

void debug_isl_union_map ( isl_union_map * )
extern

◆ debug_iteration_domain()

void debug_iteration_domain ( poly_bb_p )
extern

◆ debug_iteration_domains()

void debug_iteration_domains ( scop_p )
extern

◆ debug_pbb()

void debug_pbb ( poly_bb_p )
extern

◆ debug_pbb_domain()

void debug_pbb_domain ( poly_bb_p )
extern

◆ debug_pdr()

void debug_pdr ( poly_dr_p )

◆ debug_pdrs()

void debug_pdrs ( poly_bb_p )
extern

◆ debug_schedule_ast()

void debug_schedule_ast ( __isl_keep isl_schedule * ,
scop_p  )
extern

◆ debug_scop()

void debug_scop ( scop_p )
extern

◆ debug_scop_context()

void debug_scop_context ( scop_p )
extern

◆ debug_scop_params()

void debug_scop_params ( scop_p )
extern

◆ debug_scop_pbb()

void debug_scop_pbb ( scop_p scop,
int i )
extern

◆ dot_all_sese()

void dot_all_sese ( FILE * ,
vec< sese_l > &  )
extern

◆ dot_cfg()

void dot_cfg ( )
extern

◆ dot_sese()

void dot_sese ( sese_l & )
extern

◆ free_scop()

void free_scop ( scop_p )
extern

◆ graphite_regenerate_ast_isl()

bool graphite_regenerate_ast_isl ( scop_p )
extern

◆ new_gimple_poly_bb()

gimple_poly_bb_p new_gimple_poly_bb ( basic_block ,
vec< data_reference_p > ,
vec< scalar_use > ,
vec< tree >  )
extern

◆ new_poly_bb()

poly_bb_p new_poly_bb ( scop_p ,
gimple_poly_bb_p  )
extern

◆ new_poly_dr()

void new_poly_dr ( poly_bb_p ,
gimple * ,
enum poly_dr_type,
isl_map * ,
isl_set *  )

◆ new_scop()

scop_p new_scop ( edge ,
edge  )
extern

◆ pbb_bb()

basic_block pbb_bb ( poly_bb_p pbb)
inline
The basic block of the PBB.   

References GBB_BB, and PBB_BLACK_BOX.

Referenced by pbb_index().

◆ pbb_index()

int pbb_index ( poly_bb_p pbb)
inline

References basic_block_def::index, and pbb_bb().

◆ pbb_loop()

loop_p pbb_loop ( poly_bb_p pbb)
inline
The loop of the PBB.   

References gbb_loop(), and PBB_BLACK_BOX.

◆ pbb_set_black_box()

void pbb_set_black_box ( poly_bb_p pbb,
gimple_poly_bb_p black_box )
inline
Set black box of PBB to BLACKBOX.   

References poly_bb::black_box.

◆ pdr_may_write_p()

bool pdr_may_write_p ( poly_dr_p pdr)
inline
Returns true when PDR is a "may write".   

References PDR_MAY_WRITE, and PDR_TYPE.

◆ pdr_read_p()

bool pdr_read_p ( poly_dr_p pdr)
inline

References PDR_READ, and PDR_TYPE.

◆ pdr_scop()

scop_p pdr_scop ( poly_dr_p pdr)
inline
The scop that contains the PDR.   

References PBB_SCOP, and PDR_PBB.

◆ pdr_write_p()

bool pdr_write_p ( poly_dr_p pdr)
inline
Returns true when PDR is a "write".   

References PDR_TYPE, and PDR_WRITE.

◆ print_isl_aff()

void print_isl_aff ( FILE * ,
isl_aff *  )
extern

◆ print_isl_ast()

void print_isl_ast ( FILE * ,
isl_ast_node *  )
extern

◆ print_isl_constraint()

void print_isl_constraint ( FILE * ,
isl_constraint *  )
extern

◆ print_isl_map()

void print_isl_map ( FILE * ,
isl_map *  )
extern

◆ print_isl_schedule()

void print_isl_schedule ( FILE * ,
isl_schedule *  )
extern

◆ print_isl_set()

void print_isl_set ( FILE * ,
isl_set *  )
extern

◆ print_isl_union_map()

void print_isl_union_map ( FILE * ,
isl_union_map *  )
extern

◆ print_iteration_domain()

void print_iteration_domain ( FILE * ,
poly_bb_p  )
extern

◆ print_iteration_domains()

void print_iteration_domains ( FILE * ,
scop_p  )
extern

◆ print_pbb()

void print_pbb ( FILE * ,
poly_bb_p  )
extern

◆ print_pbb_domain()

void print_pbb_domain ( FILE * ,
poly_bb_p  )
extern

◆ print_pdr()

void print_pdr ( FILE * ,
poly_dr_p  )

◆ print_pdrs()

void print_pdrs ( FILE * ,
poly_bb_p  )
extern

◆ print_schedule_ast()

void print_schedule_ast ( FILE * ,
__isl_keep isl_schedule * ,
scop_p  )
extern

◆ print_scop()

void print_scop ( FILE * ,
scop_p  )
extern

◆ print_scop_context()

void print_scop_context ( FILE * ,
scop_p  )
extern

◆ print_scop_params()

void print_scop_params ( FILE * ,
scop_p  )
extern

◆ scop_get_dependences()

void scop_get_dependences ( scop_p scop)
extern

◆ scop_nb_params()

graphite_dim_t scop_nb_params ( scop_p scop)
inline
Returns the number of parameters for SCOP.   

References scop::nb_params.

◆ scop_set_nb_params()

void scop_set_nb_params ( scop_p scop,
graphite_dim_t nb_params )
inline
Set the number of params of SCOP to NB_PARAMS.   

References scop::nb_params.

◆ scop_set_region()

void scop_set_region ( scop_p scop,
sese_info_p region )
inline
Set the region of SCOP to REGION.   

References scop::scop_info.