libFirm
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
irloop.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 1995-2011 University of Karlsruhe. All right reserved.
3
*
4
* This file is part of libFirm.
5
*
6
* This file may be distributed and/or modified under the terms of the
7
* GNU General Public License version 2 as published by the Free Software
8
* Foundation and appearing in the file LICENSE.GPL included in the
9
* packaging of this file.
10
*
11
* Licensees holding valid libFirm Professional Edition licenses may use
12
* this file in accordance with the libFirm Commercial License.
13
* Agreement provided with the Software.
14
*
15
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16
* WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17
* PURPOSE.
18
*/
19
32
#ifndef FIRM_ANA_IRLOOP_H
33
#define FIRM_ANA_IRLOOP_H
34
35
#include "
firm_types.h
"
36
#include "
firm_common.h
"
37
#include "
begin.h
"
38
45
FIRM_API
int
is_backedge
(
const
ir_node
*n,
int
pos);
47
FIRM_API
void
set_backedge
(
ir_node
*n,
int
pos);
49
FIRM_API
void
set_not_backedge
(
ir_node
*n,
int
pos);
51
FIRM_API
int
has_backedges
(
const
ir_node
*n);
53
FIRM_API
void
clear_backedges
(
ir_node
*n);
54
56
typedef
union
{
57
firm_kind
*
kind
;
58
ir_node
*
node
;
59
ir_loop
*
son
;
60
ir_graph
*
irg
;
61
}
loop_element
;
62
66
FIRM_API
int
is_ir_loop
(
const
void
*thing);
67
69
FIRM_API
void
set_irg_loop
(
ir_graph
*irg,
ir_loop
*l);
70
72
FIRM_API
ir_loop
*
get_irg_loop
(
const
ir_graph
*irg);
73
75
FIRM_API
ir_loop
*
get_irn_loop
(
const
ir_node
*n);
76
78
FIRM_API
ir_loop
*
get_loop_outer_loop
(
const
ir_loop
*loop);
80
FIRM_API
unsigned
get_loop_depth
(
const
ir_loop
*loop);
81
83
FIRM_API
size_t
get_loop_n_elements
(
const
ir_loop
*loop);
84
87
FIRM_API
loop_element
get_loop_element
(
const
ir_loop
*loop,
size_t
pos);
88
92
FIRM_API
long
get_loop_loop_nr
(
const
ir_loop
*loop);
93
95
FIRM_API
void
set_loop_link
(
ir_loop
*loop,
void
*link);
98
FIRM_API
void
*
get_loop_link
(
const
ir_loop
*loop);
99
120
FIRM_API
int
construct_backedges
(
ir_graph
*irg);
121
138
FIRM_API
int
construct_cf_backedges
(
ir_graph
*irg);
139
145
FIRM_API
void
assure_loopinfo
(
ir_graph
*irg);
146
151
FIRM_API
void
free_loop_information
(
ir_graph
*irg);
153
FIRM_API
void
free_all_loop_information
(
void
);
154
162
FIRM_API
int
is_loop_invariant
(
const
ir_node
*n,
const
ir_node
*block);
163
166
#include "
end.h
"
167
168
#endif
libfirm
irloop.h
Generated on Sat Nov 24 2012 19:13:48 for libFirm by
1.8.1.2