xref: /dflybsd-src/contrib/gcc-4.7/gcc/toplev.h (revision 04febcfb30580676d3e95f58a16c5137ee478b32)
1*e4b17023SJohn Marino /* toplev.h - Various declarations for functions found in toplev.c
2*e4b17023SJohn Marino    Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007,
3*e4b17023SJohn Marino    2008, 2009, 2010
4*e4b17023SJohn Marino    Free Software Foundation, Inc.
5*e4b17023SJohn Marino 
6*e4b17023SJohn Marino This file is part of GCC.
7*e4b17023SJohn Marino 
8*e4b17023SJohn Marino GCC is free software; you can redistribute it and/or modify it under
9*e4b17023SJohn Marino the terms of the GNU General Public License as published by the Free
10*e4b17023SJohn Marino Software Foundation; either version 3, or (at your option) any later
11*e4b17023SJohn Marino version.
12*e4b17023SJohn Marino 
13*e4b17023SJohn Marino GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14*e4b17023SJohn Marino WARRANTY; without even the implied warranty of MERCHANTABILITY or
15*e4b17023SJohn Marino FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
16*e4b17023SJohn Marino for more details.
17*e4b17023SJohn Marino 
18*e4b17023SJohn Marino You should have received a copy of the GNU General Public License
19*e4b17023SJohn Marino along with GCC; see the file COPYING3.  If not see
20*e4b17023SJohn Marino <http://www.gnu.org/licenses/>.  */
21*e4b17023SJohn Marino 
22*e4b17023SJohn Marino #ifndef GCC_TOPLEV_H
23*e4b17023SJohn Marino #define GCC_TOPLEV_H
24*e4b17023SJohn Marino 
25*e4b17023SJohn Marino /* Decoded options, and number of such options.  */
26*e4b17023SJohn Marino extern struct cl_decoded_option *save_decoded_options;
27*e4b17023SJohn Marino extern unsigned int save_decoded_options_count;
28*e4b17023SJohn Marino 
29*e4b17023SJohn Marino extern int toplev_main (int, char **);
30*e4b17023SJohn Marino extern void rest_of_decl_compilation (tree, int, int);
31*e4b17023SJohn Marino extern void rest_of_type_compilation (tree, int);
32*e4b17023SJohn Marino extern void tree_rest_of_compilation (tree);
33*e4b17023SJohn Marino extern void init_optimization_passes (void);
34*e4b17023SJohn Marino extern void finish_optimization_passes (void);
35*e4b17023SJohn Marino extern bool enable_rtl_dump_file (void);
36*e4b17023SJohn Marino 
37*e4b17023SJohn Marino /* In except.c.  Initialize exception handling.  This is used by the Ada
38*e4b17023SJohn Marino    and LTO front ends to initialize EH "on demand".  See lto-streamer-in.c
39*e4b17023SJohn Marino    and ada/gcc-interface/misc.c.  */
40*e4b17023SJohn Marino extern void init_eh (void);
41*e4b17023SJohn Marino 
42*e4b17023SJohn Marino extern void announce_function (tree);
43*e4b17023SJohn Marino 
44*e4b17023SJohn Marino extern void wrapup_global_declaration_1 (tree);
45*e4b17023SJohn Marino extern bool wrapup_global_declaration_2 (tree);
46*e4b17023SJohn Marino extern bool wrapup_global_declarations (tree *, int);
47*e4b17023SJohn Marino extern void check_global_declaration_1 (tree);
48*e4b17023SJohn Marino extern void check_global_declarations (tree *, int);
49*e4b17023SJohn Marino extern void emit_debug_global_declarations (tree *, int);
50*e4b17023SJohn Marino extern void write_global_declarations (void);
51*e4b17023SJohn Marino 
52*e4b17023SJohn Marino extern void dump_memory_report (bool);
53*e4b17023SJohn Marino 
54*e4b17023SJohn Marino extern void target_reinit (void);
55*e4b17023SJohn Marino 
56*e4b17023SJohn Marino /* A unique local time stamp, might be zero if none is available.  */
57*e4b17023SJohn Marino extern unsigned local_tick;
58*e4b17023SJohn Marino 
59*e4b17023SJohn Marino /* True if the user has tagged the function with the 'section'
60*e4b17023SJohn Marino    attribute.  */
61*e4b17023SJohn Marino 
62*e4b17023SJohn Marino extern bool user_defined_section_attribute;
63*e4b17023SJohn Marino 
64*e4b17023SJohn Marino /* See toplev.c.  */
65*e4b17023SJohn Marino extern int flag_rerun_cse_after_global_opts;
66*e4b17023SJohn Marino 
67*e4b17023SJohn Marino extern void print_version (FILE *, const char *);
68*e4b17023SJohn Marino 
69*e4b17023SJohn Marino /* The hashtable, so that the C front ends can pass it to cpplib.  */
70*e4b17023SJohn Marino extern struct ht *ident_hash;
71*e4b17023SJohn Marino 
72*e4b17023SJohn Marino /* Functions used to get and set GCC's notion of in what directory
73*e4b17023SJohn Marino    compilation was started.  */
74*e4b17023SJohn Marino 
75*e4b17023SJohn Marino extern const char *get_src_pwd	       (void);
76*e4b17023SJohn Marino extern bool set_src_pwd		       (const char *);
77*e4b17023SJohn Marino 
78*e4b17023SJohn Marino /* Functions used to manipulate the random seed.  */
79*e4b17023SJohn Marino 
80*e4b17023SJohn Marino extern HOST_WIDE_INT get_random_seed (bool);
81*e4b17023SJohn Marino extern const char *set_random_seed (const char *);
82*e4b17023SJohn Marino 
83*e4b17023SJohn Marino #endif /* ! GCC_TOPLEV_H */
84