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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [toplev.h] - Blame information for rev 859

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

Line No. Rev Author Line
1 280 jeremybenn
/* toplev.h - Various declarations for functions found in toplev.c
2
   Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007,
3
   2008, 2009, 2010
4
   Free Software Foundation, Inc.
5
 
6
This file is part of GCC.
7
 
8
GCC is free software; you can redistribute it and/or modify it under
9
the terms of the GNU General Public License as published by the Free
10
Software Foundation; either version 3, or (at your option) any later
11
version.
12
 
13
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14
WARRANTY; without even the implied warranty of MERCHANTABILITY or
15
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
16
for more details.
17
 
18
You should have received a copy of the GNU General Public License
19
along with GCC; see the file COPYING3.  If not see
20
<http://www.gnu.org/licenses/>.  */
21
 
22
#ifndef GCC_TOPLEV_H
23
#define GCC_TOPLEV_H
24
#include "input.h"
25
#include "bversion.h"
26
 
27
/* If non-NULL, return one past-the-end of the matching SUBPART of
28
   the WHOLE string.  */
29
#define skip_leading_substring(whole,  part) \
30
   (strncmp (whole, part, strlen (part)) ? NULL : whole + strlen (part))
31
 
32
extern int toplev_main (int, char **);
33
extern int read_integral_parameter (const char *, const char *, const int);
34
extern void strip_off_ending (char *, int);
35
extern const char *trim_filename (const char *);
36
extern void _fatal_insn_not_found (const_rtx, const char *, int, const char *)
37
     ATTRIBUTE_NORETURN;
38
extern void _fatal_insn (const char *, const_rtx, const char *, int, const char *)
39
     ATTRIBUTE_NORETURN;
40
 
41
#define fatal_insn(msgid, insn) \
42
        _fatal_insn (msgid, insn, __FILE__, __LINE__, __FUNCTION__)
43
#define fatal_insn_not_found(insn) \
44
        _fatal_insn_not_found (insn, __FILE__, __LINE__, __FUNCTION__)
45
 
46
/* If we haven't already defined a frontend specific diagnostics
47
   style, use the generic one.  */
48
#ifndef GCC_DIAG_STYLE
49
#define GCC_DIAG_STYLE __gcc_tdiag__
50
#endif
51
/* None of these functions are suitable for ATTRIBUTE_PRINTF, because
52
   each language front end can extend them with its own set of format
53
   specifiers.  We must use custom format checks.  */
54
#if (ENABLE_CHECKING && GCC_VERSION >= 4001) || GCC_VERSION == BUILDING_GCC_VERSION
55
#define ATTRIBUTE_GCC_DIAG(m, n) __attribute__ ((__format__ (GCC_DIAG_STYLE, m, n))) ATTRIBUTE_NONNULL(m)
56
#else
57
#define ATTRIBUTE_GCC_DIAG(m, n) ATTRIBUTE_NONNULL(m)
58
#endif
59
extern void internal_error (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2)
60
     ATTRIBUTE_NORETURN;
61
/* Pass one of the OPT_W* from options.h as the first parameter.  */
62
extern bool warning (int, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
63
extern bool warning_at (location_t, int, const char *, ...)
64
    ATTRIBUTE_GCC_DIAG(3,4);
65
extern void error (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2);
66
extern void error_n (location_t, int, const char *, const char *, ...)
67
    ATTRIBUTE_GCC_DIAG(3,5) ATTRIBUTE_GCC_DIAG(4,5);
68
extern void error_at (location_t, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
69
extern void fatal_error (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2)
70
     ATTRIBUTE_NORETURN;
71
/* Pass one of the OPT_W* from options.h as the second parameter.  */
72
extern bool pedwarn (location_t, int, const char *, ...)
73
     ATTRIBUTE_GCC_DIAG(3,4);
74
extern bool permerror (location_t, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
75
extern void sorry (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2);
76
extern void inform (location_t, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
77
extern void inform_n (location_t, int, const char *, const char *, ...)
78
    ATTRIBUTE_GCC_DIAG(3,5) ATTRIBUTE_GCC_DIAG(4,5);
79
extern void verbatim (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2);
80
 
81
extern void rest_of_decl_compilation (tree, int, int);
82
extern void rest_of_type_compilation (tree, int);
83
extern void tree_rest_of_compilation (tree);
84
extern void init_optimization_passes (void);
85
extern void finish_optimization_passes (void);
86
extern bool enable_rtl_dump_file (void);
87
 
88
extern void announce_function (tree);
89
 
90
extern void error_for_asm (const_rtx, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
91
extern void warning_for_asm (const_rtx, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
92
extern void warn_deprecated_use (tree, tree);
93
extern bool parse_optimize_options (tree, bool);
94
 
95
#ifdef BUFSIZ
96
extern void output_quoted_string        (FILE *, const char *);
97
extern void output_file_directive       (FILE *, const char *);
98
#endif
99
 
100
#ifdef BUFSIZ
101
  /* N.B. Unlike all the others, fnotice is just gettext+fprintf, and
102
     therefore it can have ATTRIBUTE_PRINTF.  */
103
extern void fnotice                     (FILE *, const char *, ...)
104
     ATTRIBUTE_PRINTF_2;
105
#endif
106
 
107
extern void wrapup_global_declaration_1 (tree);
108
extern bool wrapup_global_declaration_2 (tree);
109
extern bool wrapup_global_declarations (tree *, int);
110
extern void check_global_declaration_1 (tree);
111
extern void check_global_declarations (tree *, int);
112
extern void emit_debug_global_declarations (tree *, int);
113
extern void write_global_declarations (void);
114
 
115
extern void dump_memory_report (bool);
116
 
117
extern void target_reinit (void);
118
 
119
/* A unique local time stamp, might be zero if none is available.  */
120
extern unsigned local_tick;
121
 
122
extern const char *progname;
123
extern const char *dump_base_name;
124
extern const char *dump_dir_name;
125
extern const char *aux_base_name;
126
extern const char *aux_info_file_name;
127
extern const char *profile_data_prefix;
128
extern const char *asm_file_name;
129
extern bool exit_after_options;
130
 
131
/* True if the user has tagged the function with the 'section'
132
   attribute.  */
133
 
134
extern bool user_defined_section_attribute;
135
 
136
/* See toplev.c.  */
137
extern int flag_crossjumping;
138
extern int flag_if_conversion;
139
extern int flag_if_conversion2;
140
extern int flag_keep_static_consts;
141
extern int flag_peel_loops;
142
extern int flag_rerun_cse_after_global_opts;
143
extern int flag_rerun_cse_after_loop;
144
extern int flag_thread_jumps;
145
extern int flag_tracer;
146
extern int flag_unroll_loops;
147
extern int flag_unroll_all_loops;
148
extern int flag_unswitch_loops;
149
extern int flag_cprop_registers;
150
extern int time_report;
151
extern int flag_ira_loop_pressure;
152
extern int flag_ira_coalesce;
153
extern int flag_ira_move_spills;
154
extern int flag_ira_share_save_slots;
155
extern int flag_ira_share_spill_slots;
156
 
157
/* Things to do with target switches.  */
158
extern void print_version (FILE *, const char *);
159
extern void * default_get_pch_validity (size_t *);
160
extern const char * default_pch_valid_p (const void *, size_t);
161
 
162
/* The hashtable, so that the C front ends can pass it to cpplib.  */
163
extern struct ht *ident_hash;
164
 
165
/* This function can be used by targets to set the flags originally
166
    implied by -ffast-math and -fno-fast-math.  */
167
 
168
extern void set_fast_math_flags         (int);
169
 
170
extern void set_unsafe_math_optimizations_flags (int);
171
 
172
/* Handle -d switch.  */
173
extern void decode_d_option             (const char *);
174
 
175
/* Return true iff flags are set as if -ffast-math.  */
176
extern bool fast_math_flags_set_p       (void);
177
extern bool fast_math_flags_struct_set_p (struct cl_optimization *);
178
 
179
/* Inline versions of the above for speed.  */
180
#if GCC_VERSION < 3004
181
 
182
/* Return log2, or -1 if not exact.  */
183
extern int exact_log2                  (unsigned HOST_WIDE_INT);
184
 
185
/* Return floor of log2, with -1 for zero.  */
186
extern int floor_log2                  (unsigned HOST_WIDE_INT);
187
 
188
#else /* GCC_VERSION >= 3004 */
189
 
190
# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
191
#  define CLZ_HWI __builtin_clzl
192
#  define CTZ_HWI __builtin_ctzl
193
# elif HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONGLONG
194
#  define CLZ_HWI __builtin_clzll
195
#  define CTZ_HWI __builtin_ctzll
196
# else
197
#  define CLZ_HWI __builtin_clz
198
#  define CTZ_HWI __builtin_ctz
199
# endif
200
 
201
static inline int
202
floor_log2 (unsigned HOST_WIDE_INT x)
203
{
204
  return x ? HOST_BITS_PER_WIDE_INT - 1 - (int) CLZ_HWI (x) : -1;
205
}
206
 
207
static inline int
208
exact_log2 (unsigned HOST_WIDE_INT x)
209
{
210
  return x == (x & -x) && x ? (int) CTZ_HWI (x) : -1;
211
}
212
 
213
#endif /* GCC_VERSION >= 3004 */
214
 
215
/* Functions used to get and set GCC's notion of in what directory
216
   compilation was started.  */
217
 
218
extern const char *get_src_pwd         (void);
219
extern bool set_src_pwd                (const char *);
220
 
221
/* Functions used to manipulate the random seed.  */
222
 
223
extern const char *get_random_seed (bool);
224
extern const char *set_random_seed (const char *);
225
 
226
#endif /* ! GCC_TOPLEV_H */

powered by: WebSVN 2.1.0

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