GCC Middle and Back End API Reference
Main Page
Namespaces
Data Structures
Files
File List
Globals
tree-cfg.h
Go to the documentation of this file.
1
/* Data and Control Flow Analysis for Trees.
2
Copyright (C) 2001-2013 Free Software Foundation, Inc.
3
Contributed by Diego Novillo <dnovillo@redhat.com>
4
5
This file is part of GCC.
6
7
GCC is free software; you can redistribute it and/or modify
8
it under the terms of the GNU General Public License as published by
9
the Free Software Foundation; either version 3, or (at your option)
10
any later version.
11
12
GCC is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
16
17
You should have received a copy of the GNU General Public License
18
along with GCC; see the file COPYING3. If not see
19
<http://www.gnu.org/licenses/>. */
20
21
#ifndef _TREE_CFG_H
22
#define _TREE_CFG_H
23
24
/* Location to track pending stmt for edge insertion. */
25
#define PENDING_STMT(e) ((e)->insns.g)
26
27
extern
void
init_empty_tree_cfg_for_function
(
struct
function
*);
28
extern
void
init_empty_tree_cfg
(
void
);
29
extern
void
fold_cond_expr_cond
(
void
);
30
extern
void
start_recording_case_labels
(
void
);
31
extern
void
end_recording_case_labels
(
void
);
32
extern
basic_block
label_to_block_fn
(
struct
function
*,
tree
);
33
#define label_to_block(t) (label_to_block_fn (cfun, t))
34
extern
void
make_abnormal_goto_edges
(
basic_block
,
bool
);
35
extern
void
cleanup_dead_labels
(
void
);
36
extern
void
group_case_labels_stmt
(
gimple
);
37
extern
void
group_case_labels
(
void
);
38
extern
void
replace_uses_by
(
tree
,
tree
);
39
extern
basic_block
single_noncomplex_succ
(
basic_block
bb);
40
extern
void
notice_special_calls
(
gimple
);
41
extern
void
clear_special_calls
(
void
);
42
extern
edge
find_taken_edge
(
basic_block
,
tree
);
43
extern
void
gimple_debug_bb
(
basic_block
);
44
extern
basic_block
gimple_debug_bb_n
(
int
);
45
extern
void
gimple_debug_cfg
(
int
);
46
extern
void
gimple_dump_cfg
(FILE *,
int
);
47
extern
void
dump_cfg_stats
(FILE *);
48
extern
void
debug_cfg_stats
(
void
);
49
extern
bool
stmt_can_make_abnormal_goto
(
gimple
);
50
extern
bool
is_ctrl_stmt
(
gimple
);
51
extern
bool
is_ctrl_altering_stmt
(
gimple
);
52
extern
bool
simple_goto_p
(
gimple
);
53
extern
bool
stmt_ends_bb_p
(
gimple
);
54
extern
void
delete_tree_cfg_annotations
(
void
);
55
extern
gimple
first_stmt
(
basic_block
);
56
extern
gimple
last_stmt
(
basic_block
);
57
extern
gimple
last_and_only_stmt
(
basic_block
);
58
extern
void
verify_gimple_in_seq
(
gimple_seq
);
59
extern
void
verify_gimple_in_cfg
(
struct
function
*);
60
extern
tree
gimple_block_label
(
basic_block
);
61
extern
void
add_phi_args_after_copy_bb
(
basic_block
);
62
extern
void
add_phi_args_after_copy
(
basic_block
*,
unsigned
,
edge
);
63
extern
bool
gimple_duplicate_sese_region
(
edge
,
edge
,
basic_block
*,
unsigned
,
64
basic_block
*,
bool
);
65
extern
bool
gimple_duplicate_sese_tail
(
edge
,
edge
,
basic_block
*,
unsigned
,
66
basic_block
*);
67
extern
void
gather_blocks_in_sese_region
(
basic_block
entry,
basic_block
exit,
68
vec<basic_block>
*bbs_p);
69
extern
basic_block
move_sese_region_to_fn
(
struct
function
*,
basic_block
,
70
basic_block
,
tree
);
71
extern
void
dump_function_to_file
(
tree
, FILE *,
int
);
72
extern
void
debug_function
(
tree
,
int
) ;
73
extern
void
print_loops_bb
(FILE *,
basic_block
,
int
,
int
);
74
extern
void
print_loops
(FILE *,
int
);
75
extern
void
debug
(
struct
loop
&ref);
76
extern
void
debug
(
struct
loop
*ptr);
77
extern
void
debug_verbose
(
struct
loop
&ref);
78
extern
void
debug_verbose
(
struct
loop
*ptr);
79
extern
void
debug_loops
(
int
);
80
extern
void
debug_loop
(
struct
loop
*,
int
);
81
extern
void
debug_loop_num
(
unsigned
,
int
);
82
extern
void
remove_edge_and_dominated_blocks
(
edge
);
83
extern
bool
gimple_purge_dead_eh_edges
(
basic_block
);
84
extern
bool
gimple_purge_all_dead_eh_edges
(
const_bitmap
);
85
extern
bool
gimple_purge_dead_abnormal_call_edges
(
basic_block
);
86
extern
bool
gimple_purge_all_dead_abnormal_call_edges
(
const_bitmap
);
87
extern
tree
gimplify_build3
(
gimple_stmt_iterator
*,
enum
tree_code
,
88
tree
,
tree
,
tree
,
tree
);
89
extern
tree
gimplify_build2
(
gimple_stmt_iterator
*,
enum
tree_code
,
90
tree
,
tree
,
tree
);
91
extern
tree
gimplify_build1
(
gimple_stmt_iterator
*,
enum
tree_code
,
92
tree
,
tree
);
93
extern
void
extract_true_false_edges_from_block
(
basic_block
,
edge
*,
edge
*);
94
extern
unsigned
int
execute_fixup_cfg
(
void
);
95
96
#endif
/* _TREE_CFG_H */
gcc
tree-cfg.h
Generated by
1.8.1.1