PandA-2024.02
ext_tree_node.cpp
Go to the documentation of this file.
1 /*
2  *
3  * _/_/_/ _/_/ _/ _/ _/_/_/ _/_/
4  * _/ _/ _/ _/ _/_/ _/ _/ _/ _/ _/
5  * _/_/_/ _/_/_/_/ _/ _/_/ _/ _/ _/_/_/_/
6  * _/ _/ _/ _/ _/ _/ _/ _/ _/
7  * _/ _/ _/ _/ _/ _/_/_/ _/ _/
8  *
9  * ***********************************************
10  * PandA Project
11  * URL: http://panda.dei.polimi.it
12  * Politecnico di Milano - DEIB
13  * System Architectures Group
14  * ***********************************************
15  * Copyright (C) 2004-2024 Politecnico di Milano
16  *
17  * This file is part of the PandA framework.
18  *
19  * The PandA framework is free software; you can redistribute it and/or modify
20  * it under the terms of the GNU General Public License as published by
21  * the Free Software Foundation; either version 3 of the License, or
22  * (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program. If not, see <http://www.gnu.org/licenses/>.
31  *
32  */
44 #include "ext_tree_node.hpp"
45 
46 void null_node::visit(tree_node_visitor* const v) const
47 {
48  unsigned int mask = ALL_VISIT;
49  (*v)(this, mask);
50  VISIT_SC(mask, tree_node, visit(v));
51 }
52 
54 {
55  unsigned int mask = ALL_VISIT;
56  (*v)(this, mask);
57  VISIT_SC(mask, gimple_node, visit(v));
58  VISIT_MEMBER(mask, scope, visit(v));
59  VISIT_MEMBER(mask, directive, visit(v));
60 }
61 
63 {
64  unsigned int mask = ALL_VISIT;
65  (*v)(this, mask);
66  VISIT_SC(mask, map_pragma, visit(v));
67 }
68 
70 {
71  unsigned int mask = ALL_VISIT;
72  (*v)(this, mask);
73  VISIT_SC(mask, map_pragma, visit(v));
74 }
75 
77 {
78  unsigned int mask = ALL_VISIT;
79  (*v)(this, mask);
80  VISIT_SC(mask, tree_node, visit(v));
81 }
82 
84 {
85  unsigned int mask = ALL_VISIT;
86  (*v)(this, mask);
87  VISIT_SC(mask, profiling_pragma, visit(v));
88 }
89 
91 {
92  unsigned int mask = ALL_VISIT;
93  (*v)(this, mask);
94  VISIT_SC(mask, omp_pragma, visit(v));
95 }
96 
98 {
99  unsigned int mask = ALL_VISIT;
100  (*v)(this, mask);
101  VISIT_SC(mask, omp_pragma, visit(v));
102 }
103 
105 {
106  unsigned int mask = ALL_VISIT;
107  (*v)(this, mask);
108  VISIT_SC(mask, omp_pragma, visit(v));
109  VISIT_MEMBER(mask, op0, visit(v));
110  VISIT_MEMBER(mask, op1, visit(v));
111 }
112 
114 {
115  unsigned int mask = ALL_VISIT;
116  (*v)(this, mask);
117  VISIT_SC(mask, omp_pragma, visit(v));
118 }
119 
121 {
122 }
123 
125 {
126  unsigned int mask = ALL_VISIT;
127  (*v)(this, mask);
128  VISIT_SC(mask, omp_pragma, visit(v));
129 }
130 
132 {
133 }
134 
136 {
137  unsigned int mask = ALL_VISIT;
138  (*v)(this, mask);
139  VISIT_SC(mask, omp_pragma, visit(v));
140 }
141 
143 {
144 }
145 
147 {
148  unsigned int mask = ALL_VISIT;
149  (*v)(this, mask);
150  VISIT_SC(mask, omp_pragma, visit(v));
151 }
152 
154 {
155  unsigned int mask = ALL_VISIT;
156  (*v)(this, mask);
157  VISIT_SC(mask, omp_pragma, visit(v));
158 }
159 
161 {
162  unsigned int mask = ALL_VISIT;
163  (*v)(this, mask);
164  VISIT_SC(mask, omp_pragma, visit(v));
165 }
166 
168 {
169  unsigned int mask = ALL_VISIT;
170  (*v)(this, mask);
171  VISIT_SC(mask, omp_pragma, visit(v));
172 }
173 
175 {
176  unsigned int mask = ALL_VISIT;
177  (*v)(this, mask);
178  VISIT_SC(mask, omp_pragma, visit(v));
179 }
180 
182 {
183  unsigned int mask = ALL_VISIT;
184  (*v)(this, mask);
185  VISIT_SC(mask, tree_node, visit(v));
186 }
187 
189 {
190  unsigned int mask = ALL_VISIT;
191  (*v)(this, mask);
192  VISIT_SC(mask, tree_node, visit(v));
193 }
194 
196 {
197  unsigned int mask = ALL_VISIT;
198  (*v)(this, mask);
199  VISIT_SC(mask, issue_pragma, visit(v));
200 }
201 
203 {
204  unsigned int mask = ALL_VISIT;
205  (*v)(this, mask);
206  VISIT_SC(mask, tree_node, visit(v));
207 }
208 
210 {
211  unsigned int mask = ALL_VISIT;
212  (*v)(this, mask);
213  VISIT_SC(mask, gimple_node, visit(v));
214  VISIT_MEMBER(mask, op0, visit(v));
215 }
216 
218 {
219  unsigned int mask = ALL_VISIT;
220  (*v)(this, mask);
221  VISIT_SC(mask, gimple_while, visit(v));
222  VISIT_MEMBER(mask, op1, visit(v));
223  VISIT_MEMBER(mask, op2, visit(v));
224 }
225 
226 void gimple_multi_way_if::add_cond(const tree_nodeRef& cond, unsigned int bb_ind)
227 {
228  list_of_cond.emplace_back(cond, bb_ind);
229 }
230 
232 {
233  unsigned int mask = ALL_VISIT;
234  (*v)(this, mask);
235  VISIT_SC(mask, gimple_node, visit(v));
236  for(const auto& cond : list_of_cond)
237  {
238  VISIT_MEMBER_NAMED(list_of_cond, mask, cond.first, visit(v));
239  }
240 }
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
#define VISIT_SC(mask, superclass, method)
macro used to visit the super class
Definition: visitor.hpp:55
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
omp_target_pragma(unsigned int i)
constructor
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
Abstract pure class for the tree structure.
Definition: tree_node.hpp:139
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
#define VISIT_MEMBER(mask, ref_obj, method)
Definition: visitor.hpp:62
#define ALL_VISIT
constant used to allow member visit
Definition: visitor.hpp:71
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
#define VISIT_MEMBER_NAMED(ref_obj_name, mask, ref_obj, method)
macro used to visit a non null member
Definition: visitor.hpp:59
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void add_cond(const tree_nodeRef &cond, unsigned int bb_ind)
Add a pair <cond, bb_index> to the list of cond.
struct definition of the common part of a gimple with virtual operands
Definition: tree_node.hpp:1078
Classes specification of the tree_node data structures not present in the gcc.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
omp_task_pragma(unsigned int i)
constructor
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.
omp_critical_pragma(unsigned int i)
constructor
This struct specifies the while expression Used to represent a while construct.
void visit(tree_node_visitor *const v) const override
Redefinition of get_kind_text.

Generated on Mon Feb 12 2024 13:02:55 for PandA-2024.02 by doxygen 1.8.13