libFirm
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
irmemory.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 1995-2010 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
26
#ifndef FIRM_ANA_IRMEMORY_H
27
#define FIRM_ANA_IRMEMORY_H
28
29
#include "
firm_types.h
"
30
#include "
begin.h
"
31
42
typedef
enum
ir_alias_relation
{
43
ir_no_alias
,
44
ir_may_alias
,
45
ir_sure_alias
46
}
ir_alias_relation
;
47
49
typedef
enum
ir_entity_usage_computed_state
{
50
ir_entity_usage_not_computed,
51
ir_entity_usage_computed
52
}
ir_entity_usage_computed_state
;
53
55
typedef
enum
ir_disambuigator_options
{
56
aa_opt_no_opt
= 0,
57
aa_opt_type_based
= 1,
58
aa_opt_byte_type_may_alias
= 2,
59
aa_opt_no_alias_args
= 4,
60
aa_opt_no_alias_args_global
= 8,
61
aa_opt_no_alias
= 16,
62
aa_opt_inherited
= 128
63
}
ir_disambuigator_options
;
64
ENUM_BITSET
(
ir_disambuigator_options
)
65
66
72
typedef enum
ir_storage_class_class_t
{
73
ir_sc_pointer
= 0x0,
74
ir_sc_globalvar
= 0x1,
75
ir_sc_localvar
= 0x2,
76
ir_sc_tls
= 0x3,
77
ir_sc_malloced
= 0x4,
78
ir_sc_globaladdr
= 0x5,
80
ir_sc_modifier_nottaken
= 0x80,
81
ir_sc_modifier_argument
= 0x40,
82
ir_sc_modifiers =
ir_sc_modifier_nottaken
|
ir_sc_modifier_argument
83
}
ir_storage_class_class_t
;
84
ENUM_BITSET
(
ir_storage_class_class_t
)
85
86
87
FIRM_API
ir_storage_class_class_t
get_base_sc
(
ir_storage_class_class_t
x);
88
93
typedef
ir_alias_relation
(*
DISAMBIGUATOR_FUNC
)(
94
const
ir_node
*adr1, const
ir_mode
*mode1,
95
const
ir_node
*adr2, const
ir_mode
*mode2);
96
103
FIRM_API
ir_storage_class_class_t
classify_pointer
(const
ir_node
*irn,
104
const
ir_entity
*ent);
105
109
FIRM_API
const
char
*
get_ir_alias_relation_name
(
ir_alias_relation
rel);
110
144
FIRM_API
ir_alias_relation
get_alias_relation
(
145
const
ir_node
*adr1, const
ir_mode
*mode1,
146
const
ir_node
*adr2, const
ir_mode
*mode2);
147
153
FIRM_API
void
set_language_memory_disambiguator
(
DISAMBIGUATOR_FUNC
func);
154
158
FIRM_API
void
mem_disambig_init
(
void
);
159
171
FIRM_API
ir_alias_relation
get_alias_relation_ex
(
172
const
ir_node
*adr1, const
ir_mode
*mode1,
173
const
ir_node
*adr2, const
ir_mode
*mode2);
174
178
FIRM_API
void
mem_disambig_term
(
void
);
179
188
FIRM_API
void
assure_irg_entity_usage_computed
(
ir_graph
*irg);
189
193
FIRM_API
ir_entity_usage_computed_state
get_irp_globals_entity_usage_state
(
void
);
194
200
FIRM_API
void
set_irp_globals_entity_usage_state
(
ir_entity_usage_computed_state
state);
201
214
FIRM_API
void
assure_irp_globals_entity_usage_computed
(
void
);
215
221
FIRM_API
unsigned
get_irg_memory_disambiguator_options
(const
ir_graph
*irg);
222
229
FIRM_API
void
set_irg_memory_disambiguator_options
(
ir_graph
*irg,
230
unsigned
options);
231
238
FIRM_API
void
set_irp_memory_disambiguator_options
(
unsigned
options);
239
245
FIRM_API
void
mark_private_methods
(
void
);
246
254
FIRM_API
ir_prog_pass_t
*
mark_private_methods_pass
(const
char
*name);
255
258
#include "end.h"
259
260
#endif
libfirm
irmemory.h
Generated on Sat Nov 24 2012 19:13:48 for libFirm by
1.8.1.2