]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/output.h
Merge tree-ssa-20020619-branch into mainline.
[thirdparty/gcc.git] / gcc / output.h
CommitLineData
26b071b0 1/* Declarations for insn-output.c. These functions are defined in recog.c,
2 final.c, and varasm.c.
9daf6266 3 Copyright (C) 1987, 1991, 1994, 1997, 1998,
e69efecb 4 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
26b071b0 5
f12b58b3 6This file is part of GCC.
26b071b0 7
f12b58b3 8GCC is free software; you can redistribute it and/or modify it under
9the terms of the GNU General Public License as published by the Free
10Software Foundation; either version 2, or (at your option) any later
11version.
26b071b0 12
f12b58b3 13GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14WARRANTY; without even the implied warranty of MERCHANTABILITY or
15FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16for more details.
26b071b0 17
18You should have received a copy of the GNU General Public License
f12b58b3 19along with GCC; see the file COPYING. If not, write to the Free
20Software Foundation, 59 Temple Place - Suite 330, Boston, MA
2102111-1307, USA. */
26b071b0 22
10f913f2 23#ifndef GCC_OUTPUT_H
24#define GCC_OUTPUT_H
25
312866af 26/* Compute branch alignments based on frequency information in the CFG. */
3ad4992f 27extern void compute_alignments (void);
312866af 28
82b5e01f 29/* Initialize data in final at the beginning of a compilation. */
3ad4992f 30extern void init_final (const char *);
82b5e01f 31
82b5e01f 32/* Enable APP processing of subsequent output.
33 Used before the output from an `asm' statement. */
3ad4992f 34extern void app_enable (void);
82b5e01f 35
36/* Disable APP processing of subsequent output.
37 Called from varasm.c before most kinds of output. */
3ad4992f 38extern void app_disable (void);
82b5e01f 39
072dd462 40/* Return the number of slots filled in the current
82b5e01f 41 delayed branch sequence (we don't count the insn needing the
42 delay slot). Zero if not in a delayed branch sequence. */
3ad4992f 43extern int dbr_sequence_length (void);
82b5e01f 44
45/* Indicate that branch shortening hasn't yet been done. */
3ad4992f 46extern void init_insn_lengths (void);
82b5e01f 47
48/* Obtain the current length of an insn. If branch shortening has been done,
49 get its actual length. Otherwise, get its maximum length. */
3ad4992f 50extern int get_attr_length (rtx);
82b5e01f 51
52/* Make a pass over all insns and compute their actual lengths by shortening
53 any branches of variable length if possible. */
3ad4992f 54extern void shorten_branches (rtx);
82b5e01f 55
56/* Output assembler code for the start of a function,
57 and initialize some of the variables in this file
58 for the new function. The label for the function and associated
59 assembler pseudo-ops have already been output in
60 `assemble_start_function'. */
3ad4992f 61extern void final_start_function (rtx, FILE *, int);
82b5e01f 62
63/* Output assembler code for the end of a function.
64 For clarity, args are same as those of `final_start_function'
65 even though not all of them are needed. */
3ad4992f 66extern void final_end_function (void);
82b5e01f 67
68/* Output assembler code for some insns: all or part of a function. */
3ad4992f 69extern void final (rtx, FILE *, int, int);
82b5e01f 70
fbf5169c 71/* The final scan for one insn, INSN. Args are same as in `final', except
72 that INSN is the insn being scanned. Value returned is the next insn to
73 be scanned. */
74extern rtx final_scan_insn (rtx, FILE *, int, int, int, int *);
75
82b5e01f 76/* Replace a SUBREG with a REG or a MEM, based on the thing it is a
77 subreg of. */
3ad4992f 78extern rtx alter_subreg (rtx *);
82b5e01f 79
80/* Report inconsistency between the assembler template and the operands.
81 In an `asm', it's the user's fault; otherwise, the compiler's fault. */
3ad4992f 82extern void output_operand_lossage (const char *, ...) ATTRIBUTE_PRINTF_1;
7ba2cd99 83
26b071b0 84/* Output a string of assembler code, substituting insn operands.
85 Defined in final.c. */
3ad4992f 86extern void output_asm_insn (const char *, rtx *);
26b071b0 87
0e93a6ac 88/* Compute a worst-case reference address of a branch so that it
89 can be safely used in the presence of aligned labels.
90 Defined in final.c. */
3ad4992f 91extern int insn_current_reference_address (rtx);
0e93a6ac 92
849674a3 93/* Find the alignment associated with a CODE_LABEL.
94 Defined in final.c. */
3ad4992f 95extern int label_to_alignment (rtx);
849674a3 96
82b5e01f 97/* Output a LABEL_REF, or a bare CODE_LABEL, as an assembler symbol. */
3ad4992f 98extern void output_asm_label (rtx);
82b5e01f 99
100/* Print a memory reference operand for address X
101 using machine-dependent assembler syntax. */
3ad4992f 102extern void output_address (rtx);
50ec54d9 103
4d3281c9 104/* Print an integer constant expression in assembler syntax.
105 Addition and subtraction are the only arithmetic
106 that may appear in these expressions. */
3ad4992f 107extern void output_addr_const (FILE *, rtx);
4d3281c9 108
82b5e01f 109/* Output a string of assembler code, substituting numbers, strings
110 and fixed syntactic prefixes. */
c54d077b 111#if GCC_VERSION >= 3004
112#define ATTRIBUTE_ASM_FPRINTF(m, n) __attribute__ ((__format__ (__asm_fprintf__, m, n))) ATTRIBUTE_NONNULL(m)
113/* This is a magic identifier which allows GCC to figure out the type
114 of HOST_WIDE_INT for %wd specifier checks. You must issue this
115 typedef before using the __asm_fprintf__ format attribute. */
116typedef HOST_WIDE_INT __gcc_host_wide_int__;
117#else
118#define ATTRIBUTE_ASM_FPRINTF(m, n) ATTRIBUTE_NONNULL(m)
119#endif
120
3ad4992f 121extern void asm_fprintf (FILE *file, const char *p, ...)
122 ATTRIBUTE_ASM_FPRINTF(2, 3);
82b5e01f 123
124/* Split up a CONST_DOUBLE or integer constant rtx into two rtx's for single
125 words. */
3ad4992f 126extern void split_double (rtx, rtx *, rtx *);
82b5e01f 127
128/* Return nonzero if this function has no function calls. */
3ad4992f 129extern int leaf_function_p (void);
82b5e01f 130
edc2a478 131/* Return 1 if branch is a forward branch.
072dd462 132 Uses insn_shuid array, so it works only in the final pass. May be used by
133 output templates to add branch prediction hints, for example. */
3ad4992f 134extern int final_forward_branch_p (rtx);
072dd462 135
82b5e01f 136/* Return 1 if this function uses only the registers that can be
137 safely renumbered. */
3ad4992f 138extern int only_leaf_regs_used (void);
82b5e01f 139
140/* Scan IN_RTX and its subexpressions, and renumber all regs into those
141 available in leaf functions. */
3ad4992f 142extern void leaf_renumber_regs_insn (rtx);
500993f8 143
ae9660c8 144/* Locate the proper template for the given insn-code. */
3ad4992f 145extern const char *get_insn_template (int, rtx);
ae9660c8 146
b7fdac4b 147/* Add function NAME to the weak symbols list. VALUE is a weak alias
148 associated with NAME. */
3ad4992f 149extern int add_weak (tree, const char *, const char *);
b7fdac4b 150
500993f8 151/* Functions in flow.c */
3ad4992f 152extern void allocate_for_life_analysis (void);
3ad4992f 153extern int regno_clobbered_at_setjmp (int);
454fcc7a 154
155/* Functions in varasm.c. */
156
157/* Tell assembler to switch to text section. */
3ad4992f 158extern void text_section (void);
454fcc7a 159
4f18499c 160/* Tell assembler to switch to unlikely-to-be-executed text section. */
161extern void unlikely_text_section (void);
162
454fcc7a 163/* Tell assembler to switch to data section. */
3ad4992f 164extern void data_section (void);
454fcc7a 165
166/* Tell assembler to switch to read-only data section. This is normally
167 the text section. */
3ad4992f 168extern void readonly_data_section (void);
454fcc7a 169
88b5b080 170/* Determine if we're in the text section. */
3ad4992f 171extern int in_text_section (void);
454fcc7a 172
4f18499c 173/* Determine if we're in the unlikely-to-be-executed text section. */
174extern int in_unlikely_text_section (void);
175
bf008cdd 176#ifdef CTORS_SECTION_ASM_OP
3ad4992f 177extern void ctors_section (void);
bf008cdd 178#endif
179
180#ifdef DTORS_SECTION_ASM_OP
3ad4992f 181extern void dtors_section (void);
bf008cdd 182#endif
183
184#ifdef BSS_SECTION_ASM_OP
3ad4992f 185extern void bss_section (void);
bf008cdd 186#endif
187
60548826 188#ifdef INIT_SECTION_ASM_OP
3ad4992f 189extern void init_section (void);
60548826 190#endif
191
192#ifdef FINI_SECTION_ASM_OP
3ad4992f 193extern void fini_section (void);
60548826 194#endif
bf008cdd 195
0c87a39e 196#ifdef EXPORTS_SECTION_ASM_OP
3ad4992f 197extern void exports_section (void);
0c87a39e 198#endif
199
e906a16a 200#ifdef DRECTVE_SECTION_ASM_OP
3ad4992f 201extern void drectve_section (void);
e906a16a 202#endif
203
7e6b5e54 204#ifdef SDATA_SECTION_ASM_OP
3ad4992f 205extern void sdata_section (void);
7e6b5e54 206#endif
207
454fcc7a 208/* Tell assembler to change to section NAME for DECL.
209 If DECL is NULL, just switch to section NAME.
9b6402f5 210 If NAME is NULL, get the name from DECL.
211 If RELOC is 1, the initializer for DECL contains relocs. */
3ad4992f 212extern void named_section (tree, const char *, int);
454fcc7a 213
b409d58e 214/* Tell assembler to switch to the section for function DECL. */
3ad4992f 215extern void function_section (tree);
b409d58e 216
bb2821c0 217/* Tell assembler to switch to the section for string merging. */
3ad4992f 218extern void mergeable_string_section (tree, unsigned HOST_WIDE_INT,
219 unsigned int);
bb2821c0 220
221/* Tell assembler to switch to the section for constant merging. */
3ad4992f 222extern void mergeable_constant_section (enum machine_mode,
223 unsigned HOST_WIDE_INT, unsigned int);
bb2821c0 224
cd03a192 225/* Declare DECL to be a weak symbol. */
3ad4992f 226extern void declare_weak (tree);
296c463e 227/* Merge weak status. */
3ad4992f 228extern void merge_weak (tree, tree);
cd03a192 229
ebd9163c 230/* Emit any pending weak declarations. */
3ad4992f 231extern void weak_finish (void);
ebd9163c 232
454fcc7a 233/* Decode an `asm' spec for a declaration as a register name.
234 Return the register number, or -1 if nothing specified,
235 or -2 if the ASMSPEC is not `cc' or `memory' and is not recognized,
236 or -3 if ASMSPEC is `cc' and is not recognized,
237 or -4 if ASMSPEC is `memory' and is not recognized.
238 Accept an exact spelling or a decimal number.
239 Prefixes such as % are optional. */
3ad4992f 240extern int decode_reg_name (const char *);
454fcc7a 241
454fcc7a 242/* Make the rtl for variable VAR be volatile.
243 Use this only for static variables. */
3ad4992f 244extern void make_var_volatile (tree);
454fcc7a 245
3ad4992f 246extern void assemble_alias (tree, tree);
cd03a192 247
3ad4992f 248extern void default_assemble_visibility (tree, int);
b4cf9ec1 249
454fcc7a 250/* Output a string of literal assembler code
251 for an `asm' keyword used between functions. */
3ad4992f 252extern void assemble_asm (tree);
454fcc7a 253
454fcc7a 254/* Output assembler code for the constant pool of a function and associated
255 with defining the name of the function. DECL describes the function.
256 NAME is the function's name. For the constant pool, we use the current
257 constant pool data. */
3ad4992f 258extern void assemble_start_function (tree, const char *);
454fcc7a 259
260/* Output assembler code associated with defining the size of the
261 function. DECL describes the function. NAME is the function's name. */
3ad4992f 262extern void assemble_end_function (tree, const char *);
454fcc7a 263
454fcc7a 264/* Assemble everything that is needed for a variable or function declaration.
265 Not used for automatic variables, and not used for function definitions.
266 Should not be called for variables of incomplete structure type.
267
268 TOP_LEVEL is nonzero if this variable has file scope.
269 AT_END is nonzero if this is the special handling, at end of compilation,
270 to define things that have had only tentative definitions.
271 DONT_OUTPUT_DATA if nonzero means don't actually output the
272 initial value (that will be done by the caller). */
3ad4992f 273extern void assemble_variable (tree, int, int, int);
454fcc7a 274
454fcc7a 275/* Output something to declare an external symbol to the assembler.
276 (Most assemblers don't need this, so we normally output nothing.)
277 Do nothing if DECL is not external. */
3ad4992f 278extern void assemble_external (tree);
454fcc7a 279
6e844d29 280/* Assemble code to leave SIZE bytes of zeros. */
3ad4992f 281extern void assemble_zeros (unsigned HOST_WIDE_INT);
6e844d29 282
283/* Assemble an alignment pseudo op for an ALIGN-bit boundary. */
3ad4992f 284extern void assemble_align (int);
285extern void assemble_eh_align (int);
6e844d29 286
287/* Assemble a string constant with the specified C string as contents. */
3ad4992f 288extern void assemble_string (const char *, int);
6e844d29 289
454fcc7a 290/* Similar, for calling a library function FUN. */
3ad4992f 291extern void assemble_external_libcall (rtx);
82b5e01f 292
454fcc7a 293/* Assemble a label named NAME. */
3ad4992f 294extern void assemble_label (const char *);
295extern void assemble_eh_label (const char *);
454fcc7a 296
297/* Output to FILE a reference to the assembler name of a C-level name NAME.
298 If NAME starts with a *, the rest of NAME is output verbatim.
299 Otherwise NAME is transformed in an implementation-defined way
300 (usually by the addition of an underscore).
301 Many macros in the tm file are defined to call this function. */
3ad4992f 302extern void assemble_name (FILE *, const char *);
454fcc7a 303
58356836 304/* Return the assembler directive for creating a given kind of integer
305 object. SIZE is the number of bytes in the object and ALIGNED_P
306 indicates whether it is known to be aligned. Return NULL if the
307 assembly dialect has no such directive.
308
309 The returned string should be printed at the start of a new line and
310 be followed immediately by the object's initial value. */
3ad4992f 311extern const char *integer_asm_op (int, int);
58356836 312
58356836 313/* Use directive OP to assemble an integer object X. Print OP at the
314 start of the line, followed immediately by the value of X. */
3ad4992f 315extern void assemble_integer_with_op (const char *, rtx);
58356836 316
317/* The default implementation of the asm_out.integer target hook. */
3ad4992f 318extern bool default_assemble_integer (rtx, unsigned int, int);
58356836 319
09d688ff 320/* Assemble the integer constant X into an object of SIZE bytes. ALIGN is
321 the alignment of the integer in bits. Return 1 if we were able to output
7fd957fe 322 the constant, otherwise 0. If FORCE is nonzero, abort if we can't output
09d688ff 323 the constant. */
3ad4992f 324extern bool assemble_integer (rtx, unsigned, unsigned, int);
58356836 325
326/* An interface to assemble_integer for the common case in which a value is
327 fully aligned and must be printed. VALUE is the value of the integer
328 object and SIZE is the number of bytes it contains. */
329#define assemble_aligned_integer(SIZE, VALUE) \
330 assemble_integer (VALUE, SIZE, (SIZE) * BITS_PER_UNIT, 1)
454fcc7a 331
1f3233d1 332#ifdef REAL_VALUE_TYPE_SIZE
454fcc7a 333/* Assemble the floating-point constant D into an object of size MODE. */
3ad4992f 334extern void assemble_real (REAL_VALUE_TYPE, enum machine_mode, unsigned);
454fcc7a 335#endif
454fcc7a 336
454fcc7a 337/* Return the size of the constant pool. */
3ad4992f 338extern int get_pool_size (void);
454fcc7a 339
867b95d0 340#ifdef HAVE_peephole
3ad4992f 341extern rtx peephole (rtx);
867b95d0 342#endif
343
454fcc7a 344/* Write all the constants in the constant pool. */
3ad4992f 345extern void output_constant_pool (const char *, tree);
454fcc7a 346
155b05dc 347/* Return nonzero if VALUE is a valid constant-valued expression
348 for use in initializing a static variable; one that can be an
349 element of a "constant" initializer.
350
351 Return null_pointer_node if the value is absolute;
352 if it is relocatable, return the variable that determines the relocation.
353 We assume that VALUE has been folded as much as possible;
354 therefore, we do not need to check for such things as
355 arithmetic-combinations of integers. */
3ad4992f 356extern tree initializer_constant_valid_p (tree, tree);
155b05dc 357
454fcc7a 358/* Output assembler code for constant EXP to FILE, with no label.
359 This includes the pseudo-op such as ".int" or ".byte", and a newline.
360 Assumes output_addressed_constants has been done on EXP already.
361
362 Generate exactly SIZE bytes of assembler data, padding at the end
09d688ff 363 with zeros if necessary. SIZE must always be specified.
364
365 ALIGN is the alignment in bits that may be assumed for the data. */
3ad4992f 366extern void output_constant (tree, unsigned HOST_WIDE_INT, unsigned int);
4d3281c9 367
26b071b0 368/* When outputting delayed branch sequences, this rtx holds the
369 sequence being output. It is null when no delayed branch
370 sequence is being output, so it can be used as a test in the
371 insn output code.
372
373 This variable is defined in final.c. */
374extern rtx final_sequence;
375
56f6686b 376/* The line number of the beginning of the current function. Various
377 md code needs this so that it can output relative linenumbers. */
378
379#ifdef SDB_DEBUGGING_INFO /* Avoid undef sym in certain broken linkers. */
380extern int sdb_begin_function_line;
381#endif
382
0a893c29 383/* File in which assembler code is being written. */
26b071b0 384
0a893c29 385#ifdef BUFSIZ
386extern FILE *asm_out_file;
387#endif
e772a198 388
389/* The first global object in the file. */
390extern const char *first_global_object_name;
391
392/* The first weak object in the file. */
393extern const char *weak_global_object_name;
394
b3b67b7c 395/* Nonzero if function being compiled doesn't contain any calls
396 (ignoring the prologue and epilogue). This is set prior to
397 local register allocation and is valid for the remaining
88b5b080 398 compiler passes. */
b3b67b7c 399
400extern int current_function_is_leaf;
401
f929a98a 402/* Nonzero if function being compiled doesn't contain any instructions
403 that can throw an exception. This is set prior to final. */
404
405extern int current_function_nothrow;
406
22c8984a 407/* Nonzero if function being compiled doesn't modify the stack pointer
408 (ignoring the prologue and epilogue). This is only valid after
88b5b080 409 life_analysis has run. */
22c8984a 410
411extern int current_function_sp_is_unchanging;
412
b3b67b7c 413/* Nonzero if the function being compiled is a leaf function which only
414 uses leaf registers. This is valid after reload (specifically after
415 sched2) and is useful only if the port defines LEAF_REGISTERS. */
416
417extern int current_function_uses_only_leaf_regs;
418
9f1379d7 419/* Default file in which to dump debug output. */
420
421#ifdef BUFSIZ
450d042a 422extern FILE *dump_file;
9f1379d7 423#endif
424
308f360f 425/* Nonnull if the insn currently being emitted was a COND_EXEC pattern. */
00ea394c 426extern rtx current_insn_predicate;
308f360f 427
19f8cf12 428/* Last insn processed by final_scan_insn. */
00ea394c 429extern rtx current_output_insn;
19f8cf12 430
a8fb9348 431/* Nonzero while outputting an `asm' with operands.
432 This means that inconsistencies are the user's fault, so don't abort.
433 The precise value is the insn being output, to pass to error_for_asm. */
434extern rtx this_is_asm_operands;
435
a49a878f 436/* Carry information from ASM_DECLARE_OBJECT_NAME
437 to ASM_FINISH_DECLARE_OBJECT. */
438extern int size_directive_output;
439extern tree last_assemble_variable_decl;
440
f4111c94 441/* Decide whether DECL needs to be in a writable section.
442 RELOC is the same as for SELECT_SECTION. */
3ad4992f 443extern bool decl_readonly_section (tree, int);
444extern bool decl_readonly_section_1 (tree, int, int);
95c4b02a 445
ee4722fe 446/* This can be used to compute RELOC for the function above, when
447 given a constant expression. */
448extern int compute_reloc_for_constant (tree);
449
95c4b02a 450/* User label prefix in effect for this compilation. */
951f0f62 451extern const char *user_label_prefix;
1c5153f2 452
17d9b0c3 453/* Default target function prologue and epilogue assembler output. */
3ad4992f 454extern void default_function_pro_epilogue (FILE *, HOST_WIDE_INT);
85ae73e8 455
13c14f1c 456/* Tell assembler to switch to the section for the exception table. */
3ad4992f 457extern void default_exception_section (void);
13c14f1c 458
459/* Tell assembler to switch to the section for the EH frames. */
4e2b8565 460extern void named_section_eh_frame_section (void);
461extern void collect2_eh_frame_section (void);
3ad4992f 462extern void default_eh_frame_section (void);
13c14f1c 463
85ae73e8 464/* Default target hook that outputs nothing to a stream. */
3ad4992f 465extern void no_asm_to_stream (FILE *);
2cb4ac60 466
41a6f238 467/* Flags controlling properties of a section. */
bb2821c0 468#define SECTION_ENTSIZE 0x000ff /* entity size in section */
469#define SECTION_CODE 0x00100 /* contains code */
470#define SECTION_WRITE 0x00200 /* data is writable */
471#define SECTION_DEBUG 0x00400 /* contains debug data */
472#define SECTION_LINKONCE 0x00800 /* is linkonce */
473#define SECTION_SMALL 0x01000 /* contains "small data" */
474#define SECTION_BSS 0x02000 /* contains zeros only */
475#define SECTION_FORGET 0x04000 /* forget that we've entered the section */
476#define SECTION_MERGE 0x08000 /* contains mergeable data */
477#define SECTION_STRINGS 0x10000 /* contains zero terminated strings without
478 embedded zeros */
2ab08d57 479#define SECTION_OVERRIDE 0x20000 /* allow override of default flags */
2a6f0f81 480#define SECTION_TLS 0x40000 /* contains thread-local storage */
73062b44 481#define SECTION_NOTYPE 0x80000 /* don't output @progbits */
482#define SECTION_MACH_DEP 0x100000 /* subsequent bits reserved for target */
2cb4ac60 483
3ad4992f 484extern unsigned int get_named_section_flags (const char *);
485extern bool set_named_section_flags (const char *, unsigned int);
486extern void named_section_flags (const char *, unsigned int);
487extern bool named_section_first_declaration (const char *);
00ea394c 488extern unsigned int default_section_type_flags (tree, const char *, int);
489extern unsigned int default_section_type_flags_1 (tree, const char *, int, int);
3ad4992f 490
491extern void default_no_named_section (const char *, unsigned int);
492extern void default_elf_asm_named_section (const char *, unsigned int);
493extern void default_coff_asm_named_section (const char *, unsigned int);
494extern void default_pe_asm_named_section (const char *, unsigned int);
495
00ea394c 496extern void default_stabs_asm_out_destructor (rtx, int);
497extern void default_named_section_asm_out_destructor (rtx, int);
498extern void default_dtor_section_asm_out_destructor (rtx, int);
499extern void default_stabs_asm_out_constructor (rtx, int);
500extern void default_named_section_asm_out_constructor (rtx, int);
501extern void default_ctor_section_asm_out_constructor (rtx, int);
3ad4992f 502
503extern void default_select_section (tree, int, unsigned HOST_WIDE_INT);
504extern void default_elf_select_section (tree, int, unsigned HOST_WIDE_INT);
505extern void default_elf_select_section_1 (tree, int,
506 unsigned HOST_WIDE_INT, int);
507extern void default_unique_section (tree, int);
508extern void default_unique_section_1 (tree, int, int);
509extern void default_select_rtx_section (enum machine_mode, rtx,
510 unsigned HOST_WIDE_INT);
511extern void default_elf_select_rtx_section (enum machine_mode, rtx,
512 unsigned HOST_WIDE_INT);
513extern void default_encode_section_info (tree, rtx, int);
514extern const char *default_strip_name_encoding (const char *);
515extern bool default_binds_local_p (tree);
516extern bool default_binds_local_p_1 (tree, int);
517extern void default_globalize_label (FILE *, const char *);
2f9fc8ef 518extern void default_emit_unwind_label (FILE *, tree, int);
3ad4992f 519extern void default_internal_label (FILE *, const char *, unsigned long);
520extern void default_file_start (void);
521extern void file_end_indicate_exec_stack (void);
522extern bool default_valid_pointer_mode (enum machine_mode);
7b4a38a6 523
3ad4992f 524extern int default_address_cost (rtx);
10f913f2 525
526#endif /* ! GCC_OUTPUT_H */