OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [graphite-clast-to-gimple.h] - Diff between revs 816 and 826

Only display areas with differences | Details | Blame | View Log

Rev 816 Rev 826
/* Translation of CLAST (CLooG AST) to Gimple.
/* Translation of CLAST (CLooG AST) to Gimple.
   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
   Contributed by Sebastian Pop <sebastian.pop@amd.com>.
   Contributed by Sebastian Pop <sebastian.pop@amd.com>.
 
 
This file is part of GCC.
This file is part of GCC.
 
 
GCC is free software; you can redistribute it and/or modify
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
the Free Software Foundation; either version 3, or (at your option)
any later version.
any later version.
 
 
GCC is distributed in the hope that it will be useful,
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
GNU General Public License for more details.
 
 
You should have received a copy of the GNU General Public License
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.  */
<http://www.gnu.org/licenses/>.  */
 
 
#ifndef GCC_GRAPHITE_CLAST_TO_GIMPLE_H
#ifndef GCC_GRAPHITE_CLAST_TO_GIMPLE_H
#define GCC_GRAPHITE_CLAST_TO_GIMPLE_H
#define GCC_GRAPHITE_CLAST_TO_GIMPLE_H
 
 
/* Data structure for CLooG program representation.  */
/* Data structure for CLooG program representation.  */
 
 
typedef struct cloog_prog_clast {
typedef struct cloog_prog_clast {
  CloogProgram *prog;
  CloogProgram *prog;
  struct clast_stmt *stmt;
  struct clast_stmt *stmt;
} cloog_prog_clast;
} cloog_prog_clast;
 
 
/* Stores BB's related PBB.  */
/* Stores BB's related PBB.  */
 
 
typedef struct bb_pbb_def
typedef struct bb_pbb_def
{
{
  basic_block bb;
  basic_block bb;
  poly_bb_p pbb;
  poly_bb_p pbb;
}bb_pbb_def;
}bb_pbb_def;
 
 
extern bool gloog (scop_p, VEC (scop_p, heap) *, htab_t);
extern bool gloog (scop_p, VEC (scop_p, heap) *, htab_t);
extern cloog_prog_clast scop_to_clast (scop_p);
extern cloog_prog_clast scop_to_clast (scop_p);
extern void debug_clast_stmt (struct clast_stmt *);
extern void debug_clast_stmt (struct clast_stmt *);
extern void print_clast_stmt (FILE *, struct clast_stmt *);
extern void print_clast_stmt (FILE *, struct clast_stmt *);
extern void debug_clast_name_indexes (htab_t);
extern void debug_clast_name_indexes (htab_t);
 
 
/* Hash function for data base element BB_PBB.  */
/* Hash function for data base element BB_PBB.  */
 
 
static inline hashval_t
static inline hashval_t
bb_pbb_map_hash (const void *bb_pbb)
bb_pbb_map_hash (const void *bb_pbb)
{
{
  return (hashval_t)(((const bb_pbb_def *)bb_pbb)->bb->index);
  return (hashval_t)(((const bb_pbb_def *)bb_pbb)->bb->index);
}
}
 
 
/* Compare data base element BB_PBB1 and BB_PBB2.  */
/* Compare data base element BB_PBB1 and BB_PBB2.  */
 
 
static inline int
static inline int
eq_bb_pbb_map (const void *bb_pbb1, const void *bb_pbb2)
eq_bb_pbb_map (const void *bb_pbb1, const void *bb_pbb2)
{
{
  const bb_pbb_def *bp1 = (const bb_pbb_def *) bb_pbb1;
  const bb_pbb_def *bp1 = (const bb_pbb_def *) bb_pbb1;
  const bb_pbb_def *bp2 = (const bb_pbb_def *) bb_pbb2;
  const bb_pbb_def *bp2 = (const bb_pbb_def *) bb_pbb2;
  return (bp1->bb->index == bp2->bb->index);
  return (bp1->bb->index == bp2->bb->index);
}
}
 
 
/* Returns the scattering dimension for STMTFOR.
/* Returns the scattering dimension for STMTFOR.
 
 
   The relationship between dimension in scattering matrix
   The relationship between dimension in scattering matrix
   and the DEPTH of the loop is:
   and the DEPTH of the loop is:
   DIMENSION = 2*DEPTH - 1
   DIMENSION = 2*DEPTH - 1
*/
*/
 
 
static inline int get_scattering_level (int depth)
static inline int get_scattering_level (int depth)
{
{
  return 2 * depth - 1;
  return 2 * depth - 1;
}
}
 
 
#endif
#endif
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.