GCC Middle and Back End API Reference
rdg_vertex Struct Reference
Collaboration diagram for rdg_vertex:

Data Fields

gimple stmt
vec< data_reference_pdatarefs
bool has_mem_write
bool has_mem_reads

Detailed Description

Loop distribution. Copyright (C) 2006-2013 Free Software Foundation, Inc. Contributed by Georges-Andre Silber Georg.nosp@m.es-A.nosp@m.ndre..nosp@m.Silb.nosp@m.er@en.nosp@m.smp..nosp@m.fr and Sebastian Pop sebas.nosp@m.tian.nosp@m..pop@.nosp@m.amd..nosp@m.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/. This pass performs loop distribution: for example, the loop

|DO I = 2, N | A(I) = B(I) + C | D(I) = A(I-1)*E |ENDDO

is transformed to

|DOALL I = 2, N | A(I) = B(I) + C |ENDDO | |DOALL I = 2, N | D(I) = A(I-1)*E |ENDDO

This pass uses an RDG, Reduced Dependence Graph built on top of the data dependence relations. The RDG is then topologically sorted to obtain a map of information producers/consumers based on which it generates the new loops. A Reduced Dependence Graph (RDG) vertex representing a statement.


Field Documentation

vec<data_reference_p> rdg_vertex::datarefs

Vector of data-references in this statement.

bool rdg_vertex::has_mem_reads

True when the statement contains a read from memory.

bool rdg_vertex::has_mem_write

True when the statement contains a write to memory.

gimple rdg_vertex::stmt

The statement represented by this vertex.


The documentation for this struct was generated from the following file: