OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [sel-sched-dump.h] - Blame information for rev 849

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.