Remove outermost loop parameter.
[official-gcc/graphite-test-results.git] / libpcp / pcp_full_visitor.cc
blob1b6af0fc0609bec903142efdfef5f2a2ebc83184
1 // Copyright (C) 2009 Free Software Foundation, Inc.
2 // Contributed by Jan Sjodin <jan.sjodin@amd.com>.
4 // This file is part of the Polyhedral Compilation Package Library (libpcp).
6 // Libpcp is free software; you can redistribute it and/or modify it
7 // under the terms of the GNU Lesser General Public License as published by
8 // the Free Software Foundation; either version 2.1 of the License, or
9 // (at your option) any later version.
11 // Libpcp is distributed in the hope that it will be useful, but WITHOUT ANY
12 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13 // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
14 // more details.
16 // You should have received a copy of the GNU Lesser General Public License
17 // along with libpcp; see the file COPYING.LIB. If not, write to the
18 // Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 // MA 02110-1301, USA.
21 // As a special exception, if you link this library with other files, some
22 // of which are compiled with GCC, to produce an executable, this library
23 // does not by itself cause the resulting executable to be covered by the
24 // GNU General Public License. This exception does not however invalidate
25 // any other reasons why the executable file might be covered by the GNU
26 // General Public License.
28 #include "pcp.h"
29 #include "pcp_full_visitor.h"
32 void
33 PcpFullVisitor::visit(PcpArrayType* arrayType)
35 this->visitChildren(arrayType);
38 void
39 PcpFullVisitor::visit(PcpArith* arith)
41 this->visitChildren(arith);
44 void
45 PcpFullVisitor::visit(PcpConstant* constant)
47 // Leaf no need to visit
50 void
51 PcpFullVisitor::visit(PcpIv* iv)
53 // Leaf no need to visit
56 void
57 PcpFullVisitor::visit(PcpParameter* parameter)
59 // Leaf no need to visit
62 void
63 PcpFullVisitor::visit(PcpCompare* compare)
65 this->visitChildren(compare);
68 void
69 PcpFullVisitor::visit(PcpBoolArith* boolArith)
73 void
74 PcpFullVisitor::visit(PcpVariable* variable)
78 void
79 PcpFullVisitor::visit(PcpArrayAccess* arrayAccess)
83 void
84 PcpFullVisitor::visit(PcpCopy* copy)
88 void
89 PcpFullVisitor::visit(PcpUserStmt* userStmt)
91 this->visitChildren(userStmt);
94 void
95 PcpFullVisitor::visit(PcpSequence* sequence)
97 this->visitChildren(sequence);
100 void
101 PcpFullVisitor::visit(PcpGuard* guard)
103 this->visitChildren(guard);
106 void
107 PcpFullVisitor::visit(PcpLoop* loop)
109 this->visitChildren(loop);
112 void
113 PcpFullVisitor::visit(PcpScop* scop)
115 this->visitChildren(scop);
118 void
119 PcpFullVisitor::visit(PcpExpr* expr)
121 if(expr->isArith())
122 this->visit(expr->toArith());
123 else if(expr->isConstant())
124 this->visit(expr->toConstant());
125 else if(expr->isIv())
126 this->visit(expr->toIv());
127 else if(expr->isParameter())
128 this->visit(expr->toParameter());
129 else
130 PcpError::reportErrorNewline("Unknown expression\n");
133 void
134 PcpFullVisitor::visit(PcpBoolExpr* boolExpr)
138 void
139 PcpFullVisitor::visit(PcpStmt* stmt)
143 void
144 PcpFullVisitor::visit(PcpAnnot* annot)
148 void
149 PcpFullVisitor::visit(PcpAnnotSet* annot)
153 void
154 PcpFullVisitor::visit(PcpAnnotInt* annotInt)
158 void
159 PcpFullVisitor::visit(PcpAnnotTerm* annotTerm)
163 void
164 PcpFullVisitor::visit(PcpAnnotString* annotString)
168 void
169 PcpFullVisitor::visit(PcpAnnotObject* annotObject)
173 PcpFullVisitor::PcpFullVisitor()