GCC Middle and Back End API Reference
graphite.c File Reference
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "diagnostic-core.h"
#include "tree.h"
#include "gimple.h"
#include "tree-cfg.h"
#include "tree-ssa-loop.h"
#include "tree-dump.h"
#include "cfgloop.h"
#include "tree-chrec.h"
#include "tree-data-ref.h"
#include "tree-scalar-evolution.h"
#include "sese.h"
#include "dbgcnt.h"
#include "tree-parloops.h"
#include "tree-pass.h"
#include "tree-cfgcleanup.h"
Include dependency graph for graphite.c:

Functions

static void graphite_transform_loops ()
static unsigned int graphite_transforms ()
static bool gate_graphite_transforms ()
gimple_opt_passmake_pass_graphite ()
gimple_opt_passmake_pass_graphite_transforms ()

Function Documentation

static bool gate_graphite_transforms ( )
static

Enable -fgraphite pass if any one of the graphite optimization flags is turned on.

Referenced by make_pass_graphite().

static void graphite_transform_loops ( )
static

Gimple Represented as Polyhedra. Copyright (C) 2006-2013 Free Software Foundation, Inc. Contributed by Sebastian Pop sebas.nosp@m.tian.nosp@m..pop@.nosp@m.inri.nosp@m.a.fr.

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/. This pass converts GIMPLE to GRAPHITE, performs some loop transformations and then converts the resulting representation back to GIMPLE.

An early description of this pass can be found in the GCC Summit'06 paper "GRAPHITE: Polyhedral Analyses and Optimizations for GCC". The wiki page http://gcc.gnu.org/wiki/Graphite contains pointers to the related work.

One important document to read is CLooG's internal manual: http://repo.or.cz/w/cloog-ppl.git?a=blob_plain;f=doc/cloog.texi;hb=HEAD that describes the data structure of loops used in this file, and the functions that are used for transforming the code.

static unsigned int graphite_transforms ( )
static

Referenced by make_pass_graphite().

gimple_opt_pass* make_pass_graphite_transforms ( )