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

@verbatim 

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: