#include <stdio.h>#include <candl/statement.h>#include <candl/matrix.h>#include <candl/program.h>#include <candl/options.h>#include <candl/dependence.h>
Go to the source code of this file.
Classes | |
| struct | dv_descriptor |
| struct | candl_ddv |
Typedefs | |
| typedef enum dv_type | e_dv_type |
| typedef struct dv_descriptor | s_dv_descriptor |
| typedef struct candl_ddv | CandlDDV |
Enumerations | |
| enum | dv_type { candl_dv_scalar, candl_dv_plus, candl_dv_minus, candl_dv_star, candl_dv_eq } |
Functions | |
| CandlDDV * | candl_ddv_malloc () |
| CandlDDV * | candl_ddv_alloc (int) |
| void | candl_ddv_free (CandlDDV *) |
| void | candl_ddv_set_type_at (CandlDDV *, e_dv_type, int) |
| void | candl_ddv_set_value_at (CandlDDV *, int, int) |
| void | candl_ddv_set_deptype (CandlDDV *, int) |
| void | candl_ddv_print (FILE *, CandlDDV *) |
| CandlDDV * | candl_ddv_extract_in_loop (CandlProgram *, CandlDependence *, int) |
* Copyright (C) 2003-2008 Cedric Bastoul * * This 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 2 of the License, or (at your option) any later * version. * * This software 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 software; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * CAnDL, the Chunky Dependence Analyzer * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * *
| typedef struct dv_descriptor s_dv_descriptor |
| enum dv_type |
A DDV is a vector of elements, each of which has a type and optionally a scalar value.
Ex: DDV1 is ('=', '=', '<') Ex: DDV2 is ('1', '1', '*') Types of elements are defined with the e_dv_type enum. '=' -> candl_dv_eq '>' -> candl_dv_plus '<' -> candl_dv_minus '*' -> candl_dv_star 'x' -> candl_dv_scalar (x is some integer)
| CandlDDV* candl_ddv_alloc | ( | int | size | ) |
candl_ddv_alloc: Allocate a ddv for a loop of depth 'size'.
References candl_ddv_malloc(), candl_dv_star, candl_ddv::data, candl_ddv::length, dv_descriptor::type, and dv_descriptor::value.
Referenced by candl_ddv_create_from_dep().
| CandlDDV* candl_ddv_extract_in_loop | ( | CandlProgram * | program, | |
| CandlDependence * | deps, | |||
| int | loop_id | |||
| ) |
candl_ddv_extract_in_loop: Create a chained list of dependence distance vectors, from the list of polyhedral dependences. Only dependences involving statements surrounded by loop 'loop_id' are considered. One ddv is generated per polyhedral dependence.
References candl_ddv_create_from_dep(), candlstatement::depth, candlstatement::index, min, candl_ddv::next, candldependence::next, candldependence::source, and candldependence::target.
| void candl_ddv_free | ( | CandlDDV * | dv | ) |
candl_ddv_free: Free a ddv.
References candl_ddv::data, and candl_ddv::next.
| CandlDDV* candl_ddv_malloc | ( | ) |
candl_ddv_malloc: Allocate an empty ddv.
References candl_ddv::data, candl_ddv::length, and candl_ddv::next.
Referenced by candl_ddv_alloc().
| void candl_ddv_print | ( | FILE * | out, | |
| CandlDDV * | dv | |||
| ) |
candl_ddv_print: print a ddv.
References candl_dv_eq, candl_dv_minus, candl_dv_plus, candl_dv_scalar, candl_dv_star, candl_ddv::data, candl_ddv::length, candl_ddv::loop_id, dv_descriptor::type, and dv_descriptor::value.
| void candl_ddv_set_deptype | ( | CandlDDV * | dv, | |
| int | type | |||
| ) |
candl_ddv_set_type: Set the type of the dependence in CANDL_UNSET, CANDL_RAW, CANDL_WAR, CANDL_WAW, CANDL_RAR.
References candl_ddv::deptype.
candl_ddv_set_type_at: Set the type of a ddv component. Type is one of '=', '>', '<', '*' or 'constant' as defined by the enum e_dv_type.
References candl_ddv::data, and dv_descriptor::type.
Referenced by candl_ddv_create_from_dep().
| void candl_ddv_set_value_at | ( | CandlDDV * | dv, | |
| int | value, | |||
| int | pos | |||
| ) |
candl_ddv_set_value_at: Set the scalar value of a ddv component. This is meaningful only if the type of this component is 'constant'.
References candl_ddv::data, and dv_descriptor::value.
Referenced by candl_ddv_create_from_dep().
1.5.6