GCC Middle and Back End API Reference
sel-sched-dump.h
Go to the documentation of this file.
1/* Instruction scheduling pass. Log dumping infrastructure.
2 Copyright (C) 2006-2024 Free Software Foundation, Inc.
3
4This file is part of GCC.
5
6GCC is free software; you can redistribute it and/or modify it under
7the terms of the GNU General Public License as published by the Free
8Software Foundation; either version 3, or (at your option) any later
9version.
10
11GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12WARRANTY; without even the implied warranty of MERCHANTABILITY or
13FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14for more details.
15
16You should have received a copy of the GNU General Public License
17along with GCC; see the file COPYING3. If not see
18<http://www.gnu.org/licenses/>. */
19
20
21#ifndef GCC_SEL_SCHED_DUMP_H
22#define GCC_SEL_SCHED_DUMP_H
23
24
25
26/* These values control the dumping of control flow graph to the .dot file. */
28 {
29 /* Dump only current region. */
31
32 /* Dump note_list for this bb. */
34
35 /* Dump availability set from the bb header. */
37
38 /* Dump liveness set from the bb header. */
40
41 /* Dump insns of the given block. */
43
44 /* Show current fences when dumping cfg. */
46
47 /* Show insn's seqnos when dumping cfg. */
49
50 /* Dump function name when dumping cfg. */
52
53 /* Dump loop father number of the given bb. */
55
56 /* The default flags for cfg dumping. */
65 };
66
67/* These values control the dumping of insns containing in expressions. */
69 {
70 /* Dump insn's UID. */
72
73 /* Dump insn's pattern. */
75
76 /* Dump insn's basic block number. */
78
79 /* Dump all of the above. */
82 };
83
84extern void dump_insn_rtx_1 (rtx, int);
85extern void dump_insn_rtx (rtx);
86extern void debug_insn_rtx (rtx);
87
88/* These values control dumping of vinsns. The meaning of different fields
89 of a vinsn is explained in sel-sched-ir.h. */
91 {
92 /* Dump the insn behind this vinsn. */
94
95 /* Dump vinsn's type. */
97
98 /* Dump vinsn's count. */
100
101 /* Dump the cost (default latency) of the insn behind this vinsn. */
103
104 /* Dump all of the above. */
107 };
108
109extern void dump_vinsn_1 (vinsn_t, int);
110extern void dump_vinsn (vinsn_t);
111extern void debug_vinsn (vinsn_t);
112
113extern void debug (vinsn_def &ref);
114extern void debug (vinsn_def *ptr);
115extern void debug_verbose (vinsn_def &ref);
116extern void debug_verbose (vinsn_def *ptr);
117
118
119/* These values control dumping of expressions. The meaning of the fields
120 is explained in sel-sched-ir.h. */
122 {
123 /* Dump the vinsn behind this expression. */
125
126 /* Dump expression's SPEC parameter. */
128
129 /* Dump expression's priority. */
131
132 /* Dump the number of times this expression was scheduled. */
134
135 /* Dump speculative status of the expression. */
137
138 /* Dump the basic block number which originated this expression. */
140
141 /* Dump expression's usefulness. */
143
144 /* Dump all of the above. */
148 };
149
150extern void dump_expr_1 (expr_t, int);
151extern void dump_expr (expr_t);
152extern void debug_expr (expr_t);
153
154extern void debug (expr_def &ref);
155extern void debug (expr_def *ptr);
156extern void debug_verbose (expr_def &ref);
157extern void debug_verbose (expr_def *ptr);
158
159
160/* A enumeration for dumping flags of an insn. The difference from
161 dump_insn_rtx_def is that these fields are for insns in stream only. */
163{
164 /* Dump expression of this insn. */
166
167 /* Dump insn's seqno. */
169
170 /* Dump the cycle on which insn was scheduled. */
172
173 /* Dump insn's UID. */
175
176 /* Dump insn's pattern. */
178
179 /* Dump insn's basic block number. */
181
182 /* Dump all of the above. */
186
187extern void dump_insn_1 (insn_t, int);
188extern void dump_insn (insn_t);
189extern void debug_insn (insn_t);
190
191/* When this flag is on, we are dumping to the .dot file.
192 When it is off, we are dumping to log. */
193extern bool sched_dump_to_dot_p;
194
195
196/* Functions from sel-sched-dump.cc. */
197extern void sel_print (const char *fmt, ...) ATTRIBUTE_PRINTF_1;
198extern const char * sel_print_insn (const rtx_insn *, int);
199extern void free_sel_dump_data (void);
200
201extern void block_start (void);
202extern void block_finish (void);
203extern int get_print_blocks_num (void);
204extern void line_start (void);
205extern void line_finish (void);
206
207extern void sel_print_rtl (rtx x);
208extern void dump_insn_1 (insn_t, int);
209extern void dump_insn (insn_t);
210extern void dump_insn_vector (rtx_vec_t);
211extern void dump_expr (expr_t);
212extern void dump_used_regs (bitmap);
213extern void dump_av_set (av_set_t);
214extern void dump_lv_set (regset);
215extern void dump_blist (blist_t);
216extern void dump_flist (flist_t);
217extern void dump_hard_reg_set (const char *, HARD_REG_SET);
218extern void sel_debug_cfg_1 (int);
219extern void sel_debug_cfg (void);
220extern void setup_dump_cfg_params (void);
221
222/* Debug functions. */
223extern void debug_expr (expr_t);
224extern void debug_av_set (av_set_t);
225extern void debug_lv_set (regset);
226extern void debug_ilist (ilist_t);
227extern void debug_blist (blist_t);
228extern void debug (vec<rtx> &ref);
229extern void debug (vec<rtx> *ptr);
230extern void debug_insn_vector (rtx_vec_t);
231extern void debug_hard_reg_set (HARD_REG_SET);
233#endif
bool debug
Definition collect-utils.cc:34
class bitmap_head * bitmap
Definition coretypes.h:51
static rtx_insn * debug_insn
Definition final.cc:110
HARD_REG_ELT_TYPE HARD_REG_SET
Definition hard-reg-set.h:47
bitmap regset
Definition regset.h:38
void dump_insn_rtx_1(rtx, int)
void dump_vinsn(vinsn_t)
void dump_used_regs(bitmap)
void dump_flist(flist_t)
dump_insn_def
Definition sel-sched-dump.h:163
@ DUMP_INSN_ALL
Definition sel-sched-dump.h:183
@ DUMP_INSN_PATTERN
Definition sel-sched-dump.h:177
@ DUMP_INSN_SCHED_CYCLE
Definition sel-sched-dump.h:171
@ DUMP_INSN_EXPR
Definition sel-sched-dump.h:165
@ DUMP_INSN_UID
Definition sel-sched-dump.h:174
@ DUMP_INSN_BBN
Definition sel-sched-dump.h:180
@ DUMP_INSN_SEQNO
Definition sel-sched-dump.h:168
void debug_lv_set(regset)
rtx debug_mem_addr_value(rtx)
void dump_hard_reg_set(const char *, HARD_REG_SET)
dump_vinsn_def
Definition sel-sched-dump.h:91
@ DUMP_VINSN_TYPE
Definition sel-sched-dump.h:96
@ DUMP_VINSN_ALL
Definition sel-sched-dump.h:105
@ DUMP_VINSN_COST
Definition sel-sched-dump.h:102
@ DUMP_VINSN_INSN_RTX
Definition sel-sched-dump.h:93
@ DUMP_VINSN_COUNT
Definition sel-sched-dump.h:99
sel_dump_cfg_def
Definition sel-sched-dump.h:28
@ SEL_DUMP_CFG_BB_NOTES_LIST
Definition sel-sched-dump.h:33
@ SEL_DUMP_CFG_BB_LOOP
Definition sel-sched-dump.h:54
@ SEL_DUMP_CFG_FLAGS
Definition sel-sched-dump.h:57
@ SEL_DUMP_CFG_INSN_SEQNO
Definition sel-sched-dump.h:48
@ SEL_DUMP_CFG_BB_INSNS
Definition sel-sched-dump.h:42
@ SEL_DUMP_CFG_LV_SET
Definition sel-sched-dump.h:39
@ SEL_DUMP_CFG_CURRENT_REGION
Definition sel-sched-dump.h:30
@ SEL_DUMP_CFG_FENCES
Definition sel-sched-dump.h:45
@ SEL_DUMP_CFG_FUNCTION_NAME
Definition sel-sched-dump.h:51
@ SEL_DUMP_CFG_AV_SET
Definition sel-sched-dump.h:36
void sel_print_rtl(rtx x)
void dump_insn(insn_t)
void debug_expr(expr_t)
void sel_print(const char *fmt,...) ATTRIBUTE_PRINTF_1
dump_expr_def
Definition sel-sched-dump.h:122
@ DUMP_EXPR_ORIG_BB
Definition sel-sched-dump.h:139
@ DUMP_EXPR_SPEC_DONE_DS
Definition sel-sched-dump.h:136
@ DUMP_EXPR_USEFULNESS
Definition sel-sched-dump.h:142
@ DUMP_EXPR_SPEC
Definition sel-sched-dump.h:127
@ DUMP_EXPR_SCHED_TIMES
Definition sel-sched-dump.h:133
@ DUMP_EXPR_VINSN
Definition sel-sched-dump.h:124
@ DUMP_EXPR_PRIORITY
Definition sel-sched-dump.h:130
@ DUMP_EXPR_ALL
Definition sel-sched-dump.h:145
void block_start(void)
void debug_vinsn(vinsn_t)
void dump_insn_1(insn_t, int)
void line_finish(void)
void dump_vinsn_1(vinsn_t, int)
void block_finish(void)
void debug_verbose(vinsn_def &ref)
void line_start(void)
void sel_debug_cfg(void)
void dump_insn_rtx(rtx)
int get_print_blocks_num(void)
const char * sel_print_insn(const rtx_insn *, int)
void setup_dump_cfg_params(void)
void dump_av_set(av_set_t)
void free_sel_dump_data(void)
void debug_insn_vector(rtx_vec_t)
void debug_insn_rtx(rtx)
bool sched_dump_to_dot_p
void debug_av_set(av_set_t)
void dump_blist(blist_t)
void dump_insn_vector(rtx_vec_t)
void sel_debug_cfg_1(int)
void dump_lv_set(regset)
dump_insn_rtx_def
Definition sel-sched-dump.h:69
@ DUMP_INSN_RTX_PATTERN
Definition sel-sched-dump.h:74
@ DUMP_INSN_RTX_ALL
Definition sel-sched-dump.h:80
@ DUMP_INSN_RTX_UID
Definition sel-sched-dump.h:71
@ DUMP_INSN_RTX_BBN
Definition sel-sched-dump.h:77
void debug_hard_reg_set(HARD_REG_SET)
Definition ira-color.cc:517
void dump_expr_1(expr_t, int)
void dump_expr(expr_t)
void debug_ilist(ilist_t)
void debug_blist(blist_t)
Definition sel-sched-ir.h:95
Definition sel-sched-ir.h:341
Definition rtl.h:311
Definition rtl.h:545
Definition vec.h:450
Definition sel-sched-ir.h:648