1 2002-06-05 Neil Booth <neil@daikokuya.demon.co.uk>
4 * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS.
5 * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than
6 CPP_PREDEFINES and part of CPP_SPEC.
7 i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h,
8 i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly.
10 Wed Jun 5 15:20:58 CEST 2002 Jan Hubicka <jh@suse.cz>
12 * reg-stack.c (reg_to_stack): Do not call find_basic_blocks.
14 2002-06-05 Alan Modra <amodra@bigpond.net.au>
16 * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
18 2002-06-04 Zack Weinberg <zack@codesourcery.com>
20 * gengtype-yacc.y: Make sure all rules end with a semicolon.
22 2002-06-04 Bob Wilson <bob.wilson@acm.org>
24 * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
25 typo in function prototype and include "ggc.h" header.
27 2002-06-04 Richard Henderson <rth@redhat.com>
29 * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
30 (print_operand) ['U']: Likewise.
31 (alpha_expand_unaligned_store): Correct constants for 32-bit cross.
32 (alpha_expand_unaligned_store_words): Likewise.
33 (alpha_expand_builtin_vector_binop): Fix typo.
34 (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
36 (one_arg_builtins): Add cix builtins.
37 (two_arg_builtins): Add ext, ins, msk, umulh builtins.
38 (alpha_expand_builtin): Fix typo in arity.
39 * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
40 (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
41 builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
42 builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
43 builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
44 builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
45 builtin_ctlz, builtin_ctpop): New.
46 * doc/extend.texi (Alpha Built-in Functions): Update.
48 2002-06-04 Geoffrey Keating <geoffk@redhat.com>
50 * gengtype.c (write_gc_root): Don't unnecessarily prevent
51 global variable-length arrays being roots.
53 * config.gcc (powerpc-*-darwin*): Set config_gtfiles.
54 * configure.in (config_gtfiles): New variable.
55 (all_gtfiles): Initialise from config_gtfiles.
56 * configure: Regenerate.
58 2002-06-04 Neil Booth <neil@daikokuya.demon.co.uk>
61 * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
62 i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
63 mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
64 sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
65 win32.h (CPP_SPEC): Remove cpp_cpu.
66 * i386.h (TARGET_CPU_CPP_BUILTINS): Use.
67 (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!
69 2002-06-04 Janis Johnson <janis187@us.ibm.com>
71 * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
73 2002-06-04 Jeff Law <law@redhat.com.
74 David Edelsohn <edelsohn@gnu.org>
75 Michael Matz <matz@kde.org>
77 * sched-int.h (struct deps): New field libcall_block_tail_insn.
78 * sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
79 * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
80 is set, then mark the current insn as being part of a libcall
82 (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
84 * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
85 insns against the issue rate.
87 Tue Jun 4 19:29:42 CEST 2002 Jan Hubicka <jh@suse.cz>
89 * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
90 * final.c (final_scan_insn): Likewise.
91 * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
92 NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
93 * haifa-sched.c (unlink_other_notes): Likeewise.
94 (reemit_notes): Likewise.
95 * print-rtl.c (print_rtx): Likewise.
96 * sched-deps (sched-analyze): Likewise.
97 * rtl.c (note_insn_name): Likewise.
98 * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
99 (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
102 2002-06-04 Jason Thorpe <thorpej@wasabisystems.com>
104 * varasm.c (mark_constants): Handle RTX format 'B'.
106 2002-06-04 Neil Booth <neil@daikokuya.demon.co.uk>
108 * cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
109 (struct cpp_context): Add traditional fields.
110 * cppmacro.c (paste_all_tokens, push_ptoken_context,
111 push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
112 * cpptrad.c (skip_comment, lex_identifier,
113 _cpp_read_logical_line_trad, scan_out_logical_line): Update.
115 2002-06-04 Kazu Hirata <kazu@cs.umass.edu>
117 * gbl-ctors.h: Fix formatting.
119 * gccspec.c: Likewise.
121 * gcov-io.h: Likewise.
123 * ggc-common.c: Likewise.
125 * ggc-page.c: Likewise.
126 * ggc-simple.c: Likewise.
127 * global.c: Likewise.
129 * gthr-dce.h: Likewise.
131 * gthr-posix.h: Likewise.
132 * gthr-rtems.h: Likewise.
133 * gthr-solaris.h: Likewise.
134 * gthr-win32.h: Likewise.
136 2002-06-03 Geoffrey Keating <geoffk@redhat.com>
138 Merge from pch-branch:
140 * gengtype.h (UNION_OR_STRUCT_P): New macro.
141 * gengtype.c (write_gc_structure_fields): Use it.
142 (write_gc_root): Use it here too.
144 * gengtype.c (write_gc_structure_fields): Assume that lengths
145 of typenames fit into an 'int'; don't pass a size_t to "%d" in
147 (write_gc_marker_routine_for_structure): Likewise.
148 (write_gc_types): Likewise.
149 (write_gc_root): Likewise.
151 * varray.h (VARRAY_CLEAR): New.
152 (varray_clear): Prototype.
153 * varray.c (varray_clear): New.
154 * cselib.c (reg_values_old): New.
155 (used_regs_old): New.
156 (cselib_init): Use cached varrays if available to avoid
157 generating large amounts of garbage.
158 (cselib_finish): Don't throw away old varrays.
160 * final.c (insn_addresses_): Move out of ifdef.
162 * varray.c (uses_ggc): Make more varray kinds GCable.
163 * varray.h (union varray_data_tag): Let gengtype see
164 fields 'generic' and 'te'.
165 * reg-stack.c: Include gt-reg-stack.h, ggc.h.
166 (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
167 (reg_to_stack): Don't call VARRAY_FREE.
168 * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
169 (insn_addresses_): Use gengtype to mark.
170 * gengtype.c (write_gc_structure_fields): Handle arrays of generic
171 pointers; handle generic pointers in unused union fields.
172 (get_output_file_with_visibility): Include cselib.h,
173 insn-addr.h in gtype-desc.c.
174 * function.c (prologue): Use gengtype to mark.
175 (epilogue): Likewise.
176 (sibcall_epilogue): Likewise.
177 * dependence.c: Include gt-dependence.h, ggc.h.
178 (struct def_use): Use gengtype to mark.
179 (struct loop): Likewise.
180 (struct induction): Likewise.
181 (struct dependence): Likewise.
182 (def_use_chain): Likewise.
183 (dep_chain): Likewise.
184 (loop_chain): Likewise.
185 (induction_chain): Likewise.
186 (init_dependence_analysis): Don't free anything, just clear pointers.
187 (build_def_use): Use GGC to allocate def_use.
188 (add_loop): Use GGC to allocate loop.
189 (find_induction_variable): Use GGC to allocate induction.
190 (check_node_dependence): Use GGC to allocate induction, dependence.
191 (dump_node_dependence): Don't free varrays.
192 (end_dependence_analysis): Likewise.
193 * cselib.h (struct cselib_val_struct): Use gengtype to mark.
194 (struct elt_loc_list): Likewise.
195 (struct elt_list): Likewise.
196 * cselib.c: Don't include obstack.h.
197 (hash_table): Use gengtype to mark.
198 (reg_values): Use gengtype to mark.
199 (used_regs): Use gengtype to mark.
200 (cselib_obstack): Delete.
201 (cselib_startobj): Delete.
202 (empty_vals): Mark as deletable.
203 (empty_elt_lists): Mark as deletable.
204 (empty_elt_loc_lists): Mark as deletable.
205 (new_elt_list): Use GGC to allocate struct elt_list.
206 (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
207 (clear_table): Don't delete obstack; don't unnecessarily clear
209 (new_cselib_val): Use GGC to allocate struct cselib_val.
210 (cselib_init): Don't set up obstacks. Use GGC to allocate
212 (cselib_finish): Just clear variables, don't free anything.
213 * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
214 (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
215 (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
216 (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
217 (gt-reg-stack.h): New rule.
218 (gt-dependence.h): New rule.
219 (gtype-desc.o): Add cselib.h, insn-addr.h.
221 * varray.c: Use only necessary headers.
224 (varray_init): Take type, not size. Use GGC if appropriate.
225 (varray_grow): Update for change to struct varray_head_tag.
226 Use GGC if appropriate.
227 * varray.h (struct const_equiv_data): Use gengtype.
228 (enum varray_data_enum): New.
229 (union varray_data_tag): Use gengtype.
230 (struct varray_head_tag): Use gengtype. Replace size field with
231 enum varray_data_enum.
232 (varray_init): Update prototype.
233 (VARRAY_SCHED_INIT): Delete.
234 (VARRAY_*_INIT): Update for change to varray_init.
235 (VARRAY_SCHED): Delete.
236 (VARRAY_PUSH_SCHED): Delete.
237 (VARRAY_TOP_SCHED): Delete.
238 * tree.h: Update for change to length specifier.
239 * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
240 (clone_body): Likewise.
241 * ssa.h (ssa_definition): Use gengtype to mark.
242 * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
243 * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
244 * rtl.h (struct rtvec_def): Update for change to length specifier.
245 * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
246 (struct initial_value_struct): Update for change to length specifier.
247 * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
248 (ggc_add_tree_varray_root): Delete prototype.
249 (ggc_mark_rtx_varray): Delete prototype.
250 (ggc_mark_tree_varray): Delete prototype.
251 * ggc-common.c (ggc_add_rtx_varray_root): Delete.
252 (ggc_add_tree_varray_root): Delete.
253 (ggc_mark_rtx_varray): Delete.
254 (ggc_mark_tree_varray): Delete.
255 (ggc_mark_rtx_varray_ptr): Delete.
256 (ggc_mark_tree_varray_ptr): Delete.
257 * gengtype.h (enum typekind): Remove TYPE_VARRAY.
258 (create_varray): Delete prototype.
259 * gengtype.c (varrays): Delete.
260 (create_varray): Delete.
261 (adjust_field_type): Detect array of string pointers.
262 (process_gc_options): Remove code to handle varray_type option.
263 (set_gc_used_type): Remove TYPE_VARRAY case.
264 (output_escaped_param): New.
265 (write_gc_structure_fields): Use output_escaped_param on all
266 parameters. Handle 'skip' with 'use_param' option. Handle
267 arrays of strings. Remove TYPE_VARRAY handling.
268 (write_gc_roots): Use boolean to detect 'length' option.
269 * gengtype-yacc.y (VARRAY_TYPE): Delete token.
270 (struct_fields): Call adjust_field_type on array fields.
271 (type): Remove VARRAY_TYPE case.
272 (type_option): Likewise.
273 * gengtype-lex.l: Don't consider varray_type a keyword.
274 * function.h: Update for change to length specifier.
275 (free_eh_status): Delete prototype.
276 * function.c (free_after_compilation): Don't call free_eh_status.
277 (reorder_blocks): Don't use VARRAY_FREE.
278 * except.c (struct eh_status): Update for change to length specifier.
279 remove varray_type specifier.
280 (free_eh_status): Delete.
281 * dwarf2out.c: Include gt-dwarf2out.h.
282 (used_rtx_varray): Use gengtype to mark, move
284 (incomplete_types): Likewise.
285 (decl_scope_table): Likewise.
286 (dwarf2out_init): Don't call ggc_add_tree_varray_root.
287 * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
288 * c-tree.h (struct lang_type): Update for change to length specifier.
289 * c-parse.in (yylexstring): Don't use VARRAY_FREE.
290 * c-objc-common.c: Include gt-c-objc-common.h.
291 (deferred_fns): Mark for gengtype.
292 (c_objc_common_init): Don't call ggc_add_tree_varray_root.
293 (expand_deferred_fns): Just set deferred_fns to 0 to free it.
294 * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
295 (gtype-desc.o): Update dependencies.
296 (dwarf2out.o): Add gt-dwarf2out.h.
297 (varray.o): Update dependencies.
298 (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
299 (gt-c-objc-common.h): New rule.
300 (gt-dwarf2out.h): New rule.
301 * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
303 * doc/gty.texi (GTY Options): Correct spelling.
304 (GGC Roots): Likewise.
305 * Makefile.in (TEXI_CPP_FILES): New.
306 (TEXI_GCC_FILES): New.
307 (TEXI_GCCINT_FILES): New.
308 (TEXI_CPPINT_FILES): New.
309 ($(docdir)/cpp.info): Use new macros.
310 ($(docdir)/gcc.info): Likewise.
311 ($(docdir)/gccint.info): Likewise.
312 ($(docdir)/cppinternals.info): Likewise.
315 (gccint.dvi): Likewise.
316 (cppinternals.dvi): Likewise.
318 * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
319 * doc/gccint.texi (Top): Include gty.texi.
320 * doc/gty.texi: New file.
322 * bitmap.c: Include ggc.h, gt-bitmap.h.
323 (bitmap_ggc_free): New.
324 (bitmap_elem_to_freelist): New.
325 (bitmap_element_free): Use bitmap_elem_to_freelist.
326 (bitmap_element_allocate): Allow use of GGC.
327 (bitmap_clear): Use bitmap_elem_to_freelist.
328 (bitmap_copy): Update for change to bitmap_element_allocate.
329 (bitmap_set_bit): Likewise.
330 (bitmap_operation): Update for changes elsewhere.
331 (bitmap_initialize): Allow to create bitmaps that will use GGC.
332 * bitmap.h (struct bitmap_element_def): Use gengtype.
333 (struct bitmap_head_def): Likewise. Also add 'using_obstack' field.
334 (bitmap_initialize): Add extra parameter.
335 (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
336 (BITMAP_ALLOCA): Delete.
337 (BITMAP_XMALLOC): Update for change to bitmap_initialize.
338 (BITMAP_GGC_ALLOC): New.
339 * Makefile.in (gtype-desc.o): Add bitmap.h.
340 (bitmap.o): Add gt-bitmap.h, $(GGC_H).
341 (GTFILES): Add bitmap.c.
342 (gt-bitmap.h): New rule.
343 ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
344 * basic-block.h: Update for changes to bitmap_initialize.
345 * except.c (exception_handler_label_map): Move into...
346 (struct eh_status): Here.
347 (struct eh_region): Make 'aka' GCable.
348 (free_eh_status): Don't need to specially handle
349 exception_handler_label_map.
350 (add_ehl_entry): Update for changes to exception_handler_label_map.
351 (find_exception_handler_labels): Likewise.
352 (remove_exception_handler_label): Likewise.
353 (maybe_remove_eh_handler): Likewise.
354 (for_each_eh_label): Likewise.
355 (remove_eh_handler): Allocate 'aka' using GGC.
356 * gengtype.c (get_output_file_with_visibility): Add bitmap.h
359 * gengtype.c (write_gc_marker_routine_for_structure): Name
360 the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.
361 (write_gc_types): Arrange for the tests with NULL to be inlined.
362 (write_gc_roots): Update uses of procedure pointers.
363 * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
365 * Makefile.in (explow.o): Add dependency on gt-explow.h.
366 (sdbout.o): Add dependency on gt-sdbout.h.
368 * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
369 (mem_attrs_htab): Likewise.
370 (init_emit_once): Don't call ggc_add_deletable_htab.
371 * fold-const.c (size_htab): Use gengtype to clear unused entries.
372 (size_int_type_wide): Don't call ggc_add_deletable_htab.
373 * gengtype.c (finish_root_table): Add LASTNAME and TNAME
374 parameters, use them, change callers.
375 (write_gc_root): Add IF_MARKED parameter, use it, change callers.
376 (write_gc_roots): Handle 'if_marked' option.
377 (main): Don't need to call set_gc_used_type any more.
378 * ggc.h (ggc_htab_marked_p): Delete.
379 (ggc_htab_mark): Delete.
380 (struct ggc_cache_tab): New.
381 (gt_ggc_cache_rtab): New declaration.
382 * ggc-common.c (struct d_htab_root): Delete.
383 (d_htab_roots): Delete.
384 (ggc_add_deletable_htab): Delete.
385 (ggc_htab_delete): Handle new htab-deleting mechanism.
386 (ggc_mark_roots): Use new htab-deleting mechanism.
387 * tree.c (type_hash_table): Use gengtype to clear unused entries.
389 (init_obstacks): Don't call ggc_add_deletable_htab.
391 * objc/objc-act.h (struct hashed_attribute): Use gengtype.
392 (struct hashed_entry): Likewise.
393 (nst_method_hash_list): Likewise.
394 (cls_method_hash_list): Likewise.
395 (HASH_ALLOC_LIST_SIZE): Delete.
396 (ATTR_ALLOC_LIST_SIZE): Delete.
397 * objc/objc-act.c (hash_init): Use ggc to allocate
398 nst_method_hash_list, cls_method_hash_list.
399 (hash_enter): Use ggc to allocate; allocate one entry at a time.
400 (hash_add_attr): Likewise.
401 (ggc_mark_hash_table): Delete.
402 (objc_act_parse_init): Delete.
403 (objc_init): Delete reference to objc_act_parse_init.
404 * tlink.c: Replace hash.h with hashtab.h. Explicitly include
405 obstack.h. Replace references to 'struct hash_table' with htab_t.
406 (struct symbol_hash_entry): Replace hash header with key field.
407 (struct file_hash_entry): Replace hash header with key field.
408 (struct demangled_hash_entry): Replace hash header with key field.
409 (hash_string_eq): New.
410 (hash_string_hash): New.
411 (symbol_hash_newfunc): Delete.
412 (symbol_hash_lookup): Modify to use htab_t.
413 (file_hash_newfunc): Delete.
414 (file_hash_lookup): Modify to use htab_t.
415 (demangled_hash_newfunc): Delete.
416 (demangled_hash_lookup): Modify to use htab_t.
417 (tlink_init): Modify to use htab_t.
420 * ggc.h: Delete forward structure declarations.
421 Delete prototypes for deleted functions.
422 * ggc-common.c: Don't include hash.h.
423 (ggc_add_tree_hash_table_root): Delete.
424 (ggc_mark_tree_hash_table_entry): Delete.
425 (ggc_mark_tree_hash_table): Delete.
426 (ggc_mark_tree_hash_table_ptr): Delete.
427 * gengtype.c (write_gc_structure_fields): Allow param_is option.
428 (write_gc_marker_routine_for_structure): Use visibility of
429 the parameter if there is one.
430 * function.c: Replace hash.h with hashtab.h. Replace references
431 to 'struct hash_table *' with htab_t.
432 (struct insns_for_mem_entry): Include a plain key.
433 (fixup_var_refs_insns_with_hash): Update to use htab_t.
434 (insns_for_mem_newfunc): Delete.
435 (insns_for_mem_hash): Update to use htab_t.
436 (insns_for_mem_comp): Likewise.
437 (insns_for_mem_walk): Likewise.
438 * c-lang.c: Include ggc.h.
439 * Makefile.in (OBJS): Remove hash.o.
440 (c-lang.o): Add GGC_H.
441 (COLLECT2_OBJS): Remove hash.o.
442 (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
443 (ggc-common.o): Remove hash.h.
444 (function.o): Remove hash.h, add HASHTAB_H.
445 (genautomata.o): Remove hash.h, add HASHTAB_H.
447 * varasm.c (mark_const_str_htab_1): Delete.
448 (mark_const_str_htab): Delete.
449 (const_str_htab_del): Delete.
450 (const_str_htab): Use gengtype to mark.
451 (init_varasm_once): Use gengtype to mark hashtables. Use GC to
453 * tree.c (mark_tree_hashtable_entry): Delete.
454 (mark_tree_hashtable): Delete.
455 * tree.h (mark_tree_hashtable): Delete prototype.
456 * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
457 (ggc_mark): Likewise.
459 (htab_create_ggc): New.
460 * ggc-common.c (ggc_calloc): New.
461 * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
462 (struct type): Add param_struct structure.
463 * gengtype.c (param_structs): New.
464 (adjust_field_type): Handle param_is option.
465 (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
466 (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
467 (write_gc_structure_fields): Add new PARAM parameter. Update
468 callers. Handle use_param option. Handle TYPE_PARAM_STRUCT.
469 (write_gc_marker_routine_for_structure): Add new PARAM parameter.
470 Use it to generate function name. Update callers.
471 (write_gc_types): Add new PARAM_STRUCTS parameter. Update callers.
473 (write_gc_roots): Handle TYPE_PARAM_STRUCT. Allow param_is
475 (main): Define PTR as pointer-to-scalar. Don't specially
476 mark deferred_string or ehl_map_entry.
477 * gengtype-yacc.y (PARAM_IS): Add new token.
478 (externstatic): Use adjust_field_type.
479 (type_option): Add PARAM_IS.
480 * gengtype-lex.l: Add rule for typedef of function pointers.
481 Add rule for PARAM_IS.
483 * except.c (exception_handler_label_map): Use gengtype to mark.
484 (type_to_runtime_map): Likewise.
485 (mark_ehl_map_entry): Delete.
486 (mark_ehl_map): Delete.
487 (init_eh): Use gengtype for roots; use GC to allocate hash tables.
488 (t2r_mark_1): Delete.
490 * Makefile.in (gtype-desc.o): Correct dependencies.
491 (GTFILES): Add hashtab.h.
492 (genautomata.o): Actually uses hashtab.h.
494 * Makefile.in (stringpool.o): Add $(GGC_H).
495 (dwarf2asm.o): Likewise.
496 (GTFILES): Add hashtable.h.
497 * c-common.h (struct c_common_identifier): Use gengtype.
498 * c-decl.h (c_mark_tree): Delete.
499 * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
500 * c-tree.h (struct lang_identifier): Use gengtype.
501 (union lang_tree_node): New.
502 (c_mark_tree): Delete prototype.
503 * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy
505 * gengtype-lex.l (IWORD): Allow 'bool'.
507 * gengtype-yacc.y (ALIAS): New token.
508 (type_option): New rule.
509 (option): Use type_option.
510 * gengtype.c (process_gc_options): New.
511 (set_gc_used_type): Use it.
512 (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
513 Add new variable 't' to hold the type of the field being processed.
514 Add more error checking. Use UNION_P when looking at 'desc' option.
515 Handle language-specific structures containing other
516 language-specific structures.
517 (write_gc_types): Handle 'ptr_alias' option.
518 (main): Don't need to specially output lang_type, lang_decl, lang_id2.
519 * ggc-common.c (ggc_pending_trees): Delete.
520 (ggc_mark_roots): Don't manipulate ggc_pending_trees.
521 (ggc_mark_trees): Delete.
522 (gt_ggc_m_tree_node): Delete.
523 * ggc.h (ggc_pending_trees): Delete.
524 (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
525 * hashtable.h (ht_identifier): Use gengtype.
526 * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
527 * langhooks.h (struct lang_hooks): Delete mark_tree.
528 * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
530 * system.h: Poison LANG_HOOKS_MARK_TREE.
531 * tree.c (tree_node_structure): New.
532 * tree.h (struct tree_common): Use gengtype.
533 (struct tree_int_cst): Likewise.
534 (struct tree_real_cst): Likewise.
535 (struct tree_string): Likewise.
536 (struct tree_complex): Likewise.
537 (struct tree_vector): Likewise.
538 (struct tree_identifier): Likewise.
539 (struct tree_list): Likewise.
540 (struct tree_vec): Likewise.
541 (struct tree_exp): Likewise.
542 (struct tree_block): Likewise.
543 (struct tree_type): Likewise.
544 (struct tree_decl): Likewise.
545 (enum tree_structure_enum): New.
546 (union tree_node): Use gengtype, with an alias.
547 (tree_node_structure): Prototype.
548 * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
550 Merge to tag pch-merge-20020430. The LANG_HOOKS_FUNCTION_MARK
551 macro was deleted. The LANG_HOOKS_FUNCTION_FREE macro was renamed
552 to LANG_HOOKS_FUNCTION_FINAL.
553 * Makefile.in (GTFILES): Add bitmap.h.
554 * except.c (struct eh_region): Mark field 'aka' to be skipped.
556 * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
557 (alpha_init_machine_status): Give proper type.
558 * Makefile.in (c-lang.o): Depend on gtype-c.h.
559 (optabs.o): Depend on gt-optabs.h.
560 (GTFILES): Add optabs.o.
561 (gt-optabs.h): Add rule.
562 * optabs.c: Include gt-optabs.h.
564 * gengtype.c (set_gc_used_type): Correct some errors in last change.
565 (write_gc_structure_fields): If a field which should be NULL is
567 * c-pragma.c: Move struct align_stack and variable alignment_stack
570 * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
571 * config/xtensa/xtensa.c: Include gt-cris.h.
572 (struct machine_function): Use gengtype to mark.
573 * config/mmix/mmix.h (struct machine_function): Use gengtype
575 * config/cris/t-cris: Add dependencies for gt-cris.h.
576 * config/cris/cris.c: Include gt-cris.h.
577 (struct machine_function): Use gengtype to mark.
578 * config/rs6000/rs6000.h (struct machine_function): Use gengtype
580 * doc/tm.texi (Per-Function Data): Delete references to
582 * config/ia64/ia64.c (ia64_override_options): Don't set
584 * config/i386/i386.c (override_options): Likewise.
585 * config/d30v/d30v.c (d30v_init_expanders): Likewise.
586 * config/arm/arm.c (arm_init_expanders): Likewise.
587 * config/alpha/alpha.c (override_options): Likewise.
588 * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO.
589 * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
590 (write_gc_structure_fields): Don't handle 'really' option.
591 Handle 'maybe_null' option.
592 (write_gc_types): Handle 'maybe_null' option.
593 * function.h (struct function): Don't use "really".
594 (mark_machine_status): Delete declaration.
595 (mark_lang_status): Delete declaration.
596 (gt_ggc_mr_machine_function): Delete prototype.
597 (gt_ggc_mr_language_function): Delete prototype.
598 * function.c (mark_machine_status): Delete.
599 (mark_lang_status): Delete.
600 (gt_ggc_mr_machine_function): Delete.
601 (gt_ggc_mr_language_function): Delete.
602 * c-tree.h (mark_c_function_context): Delete prototype.
603 * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
604 * c-decl.c (struct language_function): Rename from struct
605 c_language_function. Update uses. Use gengtype to mark.
606 (mark_c_function_context): Delete.
607 * c-common.h (struct c_language_function): Rename from struct
609 (mark_stmt_tree): Delete prototype.
610 (c_mark_lang_decl): Delete prototype.
611 (mark_c_language_function): Delete prototype.
612 * c-common.c (mark_stmt_tree): Delete.
613 (c_mark_lang_decl): Delete.
614 (mark_c_language_function): Delete.
616 * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
617 (lang_bitmap): New typedef. Use where appropriate.
618 (struct type): Add gc_used field, lang_struct field.
619 (UNION_P): New macro.
620 (new_structure): New prototype.
621 (find_structure): Remove 'pos' parameter. Change all callers.
622 * gengtype-lex.l: Update for changes to find_structure.
623 * gengtype-yacc.y (typedef_struct): Use new_structure.
624 (yacc_ids): Suppress warning.
625 (type): Use new_structure.
626 * gengtype.c (string_type): Update for changes to struct type.
627 (find_structure): Just find a structure, don't worry about
629 (new_structure): New.
630 (note_yacc_type): Use new_structure.
631 (set_gc_used_type): New.
633 (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
634 (write_gc_types): Handle TYPE_LANG_STRUCT.
635 (write_gc_marker_routine_for_structure): New.
636 (main): Call set_gc_used. Add some calls to set_gc_used_type
637 for places where GCC doesn't use gengtype properly yet.
638 * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
639 (gt_ggc_m_tree_node): Likewise.
641 * varasm.c (copy_constant): Call expand_constant if we hit
642 something we can't recognise.
644 * ggc-common.c (ggc_mark_rtvec_children): Delete.
645 (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
646 (lang_mark_false_label_stack): Delete.
647 * rtl.h (struct rtvec_def): Use gengtype to mark.
648 * ggc.h (ggc_mark_rtvec): Delete.
649 (gt_ggc_m_rtvec_def): Delete.
650 (ggc_mark_nonnull_tree): Delete.
651 (ggc_mark_rtvec_children): Delete prototype.
652 (lang_mark_false_label_stack): Delete declaration.
654 * gengtype.h (note_yacc_type): Add prototype.
655 * gengtype.c (note_yacc_type): New function.
656 * gengtype-lex.l: Add lexer support for yacc files.
657 * gengtype-yacc.y (start): Extract union from yacc files.
658 (yacc_union): New rule.
659 (yacc_typematch): New rule.
660 (yacc_ids): New rule.
661 (enum_items): Tweak for efficiency.
662 (optionseq): Likewise.
664 * c-common.h (struct language_function): Use gengtype.
665 (struct c_lang_decl): Likewise.
666 * c-tree.h (struct lang_decl): Likewise.
667 (struct lang_type): Likewise.
668 * c-decl.c (lang_mark_tree): Use generated marker routines to mark
669 tree language substructures.
671 * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
673 * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
675 * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
677 * stmt.c (struct nesting): Add discriminator. Use gengtype to
678 mark. Remove 'data.block.cleanup_ptr' field.
679 (struct stmt_status): Use usual technique to mark struct nesting.
680 (gt_ggc_mr_nesting_cond): Delete.
681 (gt_ggc_mr_nesting_loop): Delete.
682 (gt_ggc_mr_nesting_block): Delete.
683 (gt_ggc_mr_nesting_case_stmt): Delete.
684 (expand_start_cond): Set discriminator.
685 (expand_start_loop): Likewise.
686 (expand_start_null_loop): Likewise.
687 (expand_start_bindings_and_block): Set discriminator. Don't set
689 (expand_decl_cleanup): Replace 'cleanup_ptr' with
690 &thisblock->data.block.cleanups.
691 (expand_start_case): Set discriminator.
692 (expand_start_case_dummy): Set discriminator.
694 * ggc-callbacks.c: Remove.
696 * gengtype.h (struct type): Add 'u.s.bitmap' field.
697 (find_structure): Add 'pos' parameter.
698 * gengtype-lex.l: Update callers to find_structure.
699 * gengtype-yacc.y: Likewise.
700 * gengtype.c (find_structure): Allow for structures to be defined
701 in multiple language backends.
702 (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
703 (counter): Rename to gc_counter.
704 (write_gc_structure_fields): Fail when writing out fields for
705 an incomplete structure. Ignore arrays of scalars. Handle
707 (write_gc_types): Reset counter for each procedure written.
709 * stmt.c (add_case_node): Use GGC to allocate struct case_node.
710 (free_case_nodes): Delete.
711 (expand_end_case_type): Delete call to free_case_nodes.
713 * Makefile.in (cselib.o): Include gt-<filename>.h.
715 (profile.o): Likewise.
717 (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
718 alphabetize backend files.
719 (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
720 * alias.c: Use gengtype for roots.
721 * c-common.h (struct stmt_tree_s): Use gengtype.
722 * c-decl.c: Use gengtype for roots.
723 * cselib.c: Use gengtype for roots.
724 * expr.c: Use gengtype for roots.
725 * fold-const.c: Use gengtype for roots.
726 * gcse.c: Use gengtype for roots.
727 * gengtype-lex.l: Handle typedefs of function types.
728 Allow for empty array bounds.
729 Allow processing to stop on initialisers.
730 * gengtype-yacc.y (externstatic): Stop processing on initialisers.
731 (semiequal): New rule.
732 * gengtype.c (create_file): Tidy output files.
733 (get_output_file_with_visibility): Fix paren warning. Fix bug
734 involving multiple input files mapping to one output file.
735 (write_gc_structure_fields): Skip arrays of scalars.
736 (write_gc_types): Tidy output files.
737 (write_gc_root): New function.
738 (write_gc_roots): Fix bugs, add support for roots that are
740 * ggc-common.c (ggc_mark_rtx_ptr): Delete.
741 (ggc_mark_tree_ptr): Delete.
742 (ggc_add_rtx_root): Delete.
743 (ggc_add_tree_root): Delete.
744 (ggc_del_root): Delete.
745 * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
746 allocate struct initial_value_struct.
747 * profile.c: Use gengtype for roots.
748 * sdbout.c: Use gengtype for roots.
749 * varasm.c (mark_weak_decls): Delete unused prototype.
750 (mark_const_hash_entry): Delete unused function.
751 * config/darwin-protos.h: Use gengtype for roots.
752 (machopic_add_gc_roots): Delete.
753 * config/arm/arm.c: Use gengtype for roots.
754 * config/arm/arm.h: Use gengtype for roots.
755 * config/c4x/c4x-protos.h: Use gengtype for roots.
756 * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
757 * config/d30v/d30v-protos.h: Use gengtype for roots.
758 * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
759 * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
760 * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
761 * config/ia64/ia64-protos.h: Use gengtype for roots.
762 * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
763 * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
764 * config/m68hc11/m68hc11.c (z_reg): Make global.
765 (z_reg_qi): Make global.
766 (m68hc11_add_gc_roots): Delete.
767 * config/mcore/mcore-protos.h: Use gengtype for roots.
768 * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
769 * config/mips/mips.c (mips_add_gc_roots): Delete.
770 * config/mips/mips.h: Use gengtype for roots.
771 * config/mmix/mmix.c (override_options): Use gengtype for roots.
772 * config/mmix/mmix.h: Use gengtype for roots.
773 * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
774 * config/mn10200/mn10200.h: Use gengtype for roots.
775 * config/pa/pa.c: Use gengtype for roots, marking.
776 (struct deferred_plabel): Use GGC, gengtype.
777 (pa_add_gc_roots): Delete.
778 (mark_deferred_plabels): Delete.
779 * config/pj/pj-protos.h: Use gengtype for roots.
780 * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
781 * config/rs6000/rs6000.c: Use gengtype for roots. Don't call
782 machopic_add_gc_roots.
783 * config/rs6000/rs6000.h: Use gengtype for roots.
784 * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
785 (gt-darwin.h): Add rule.
786 * config/sh/sh.c: Use gengtype for roots.
787 * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
789 * config/sparc/sparc.c: Use gengtype for roots.
790 (sparc_add_gc_roots): Delete.
791 (struct ultrasparc_pipeline_state): Use GGC, gengtype.
792 (mark_ultrasparc_pipeline_state): Delete.
793 * config/sparc/sparc.h: Use gengtype for roots.
795 * Makefile.in (c-parse.o): Update dependencies.
796 (c-common.o): Likewise.
797 (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
798 Add dependencies for the files they generate.
799 * c-common.c: Replace ggc_add_* uses with GTY annotations.
800 * c-common.h: Likewise.
801 * c-decl.c: Likewise.
802 (gt_ggc_mp_binding_level): Delete.
803 * c-lang.c: Include gtype-c.h.
804 * c-parse.in: Replace ggc_add_* uses with GTY annotations. Include
806 * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
807 (gt_ggc_mp_align_stack): Delete.
808 * c-tree.h: Replace ggc_add_* uses with GTY annotations.
809 * function.c: Replace ggc_add_* uses with GTY annotations.
810 (gt_ggc_mp_function): Delete.
811 * function.h: Replace ggc_add_* uses with GTY annotations.
812 * gengtype.c (lang_names): New.
813 (NUM_BASE_FILES): New.
814 (open_base_files): Create language base files.
816 (get_file_basename): New.
817 (get_base_file_bitmap): New.
818 (get_output_file_with_visibility): Rename from get_output_file.
819 Add more mappings for various C/Objc filenames.
820 (finish_root_table): New.
821 (write_gc_roots): Handle dependencies and scoping properly.
822 * gengtype.h: Add prototypes for new functions.
823 * ggc-common.c (struct deletable_root): Delete.
824 (deletables): Delete.
825 (ggc_add_deletable_root): Delete.
826 (ggc_mark_roots): No need to deal with deleted functionality.
827 * ggc.h (ggc_add_deletable_root): Delete prototype.
828 * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
829 (gtype-objc.h): Add rule to create.
830 * objc/config-lang.in (gtfiles): New.
831 * objc/objc-act.c: Allocate imp_list using GGC. Replace uses of
832 ggc_add_* with GTY markers. Include gtype-objc.h.
833 (ggc_mark_imp_list): Delete.
834 * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
835 * objc/objc-lang.c: Random Whitespace Change.
837 * except.h (exception_handler_labels): Delete.
838 (get_exception_handler_labels): New.
839 * except.c (exception_handler_labels): Delete.
840 (struct eh_status): Add exception_handler_labels field.
841 (doing_eh): Don't add exception_handler_labels as root.
842 (free_eh_status): Don't need to free exception_handler_labels.
843 (get_exception_handler_labels): New.
844 (find_exception_handler_labels): Update for move of
845 exception_handler_labels.
846 (remove_exception_handler_label): Likewise.
847 * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
848 * jump.c (rebuild_jump_labels): Likewise.
849 * loop.c (find_and_verify_loops): Likewise.
850 * sched-rgn.c (is_cfg_nonregular): Likewise.
852 * gengtype.c (write_gc_structure_fields): Handle variable-length
855 * varasm.c (struct weak_syms): Use GGC, gengtype.
856 (mark_weak_decls): Delete.
857 (weak_decls): Likewise.
858 (add_weak): Likewise.
859 (remove_from_pending_weak_list): Likewise.
860 (init_varasm_once): Likewise.
862 * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
863 (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
864 stor-layout.c, regclass.c, and lists.c.
865 Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
866 gt-regclass.h and gt-lists.h on s-gtype.
867 * emit-rtl.c: Use gengtype for roots. Include gt-emit-rtl.h.
868 * except.c: Use gengtype for roots.
869 * explow.c: Use gengtype for roots. Include gt-explow.h.
870 * expr.h (init_stor_layout_once): Delete prototype.
871 * function.c: Use gengtype for roots.
872 * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
873 * gengtype-yacc.y (start): Can also be an externstatic.
874 (externstatic): New production.
875 (struct_fields): Correct array bounds inversion for 2-d arrays.
876 * gengtype.c (variables): New variable.
877 (note_variable): New function.
878 (get_output_file): Include libfuncs.h into gtype-desc.c.
879 (get_output_file_name): New function.
880 (write_gc_structure_fields): Suppress warnings.
881 (write_gc_types): Make static.
882 (put_mangled_filename): New function.
883 (write_gc_roots): New function.
884 (main): Call write_gc_roots.
885 * gengtype.h (note_variable): Prototype.
886 (get_output_file_name): Prototype.
887 (write_gc_types): Delete prototype.
888 * ggc.h: Clean up unnecessary structure predefinitions.
889 (struct ggc_root_tab): Define.
890 (gt_ggc_m_rtx_def): Make function, not macro.
891 (gt_ggc_m_tree_node): Likewise.
892 * libfuncs.h: Use gengtype for roots.
893 * lists.c: Use gengtype for roots. Include gt-lists.h.
894 (init_EXPR_INSN_LIST_cache): Delete.
895 * optabs.c: Use gengtype for roots.
896 (gt_ggc_mp_optab): Delete.
897 * optabs.h: Use gengtype for roots.
898 * regclass.c: Use gengtype for roots. Include gt-regclass.h.
899 * rtl.h: Use gengtype for roots.
900 (init_EXPR_INSN_LIST_cache): Delete prototype.
901 * stor-layout.c: Use gengtype for roots.
902 Include gt-stor-layout.h.
903 (init_stor_layout_once): Delete.
904 * toplev.c: Use gengtype for roots. Delete calls to deleted
906 * tree.c: Use gengtype for roots.
907 * tree.h: Use gengtype for roots.
908 * varasm.c: Use gengtype for roots.
910 * Makefile.in (GTFILES): Add @all_gtfiles@.
911 * configure: Regenerate.
912 * configure.in: Construct all_gtfiles from the gtfiles definitions
914 * gengtype-yacc.y (type): Warn about duplicate structure names.
915 * gengtype.c (get_output_file): Handle .c files in language
918 * Makefile.in (GTFILES): Run gengtype on all the config files
919 and on the target .c file.
920 * except.c (mark_eh_region): Delete.
921 (init_eh_for_function): Use GGC on struct eh_status.
922 (mark_eh_status): Delete.
923 (free_eh_status): Use GGC.
924 (expand_eh_region_start): Use GGC to
925 (collect_eh_region_array): Allocate last_region_number using GGC.
926 (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
927 (remove_eh_handler): Let GGC free struct eh_region.
928 (add_call_site): Use GGC to reallocate call_site_record array.
929 * function.c (init_machine_status): Update calling sequence.
930 (mark_machine_status): Likewise.
931 (mark_lang_status): Likewise.
932 (prepare_function_start): Update init_machine_status call.
933 (mark_function_status): Delete.
934 (maybe_mark_struct_function): Delete.
935 (ggc_mark_struct_function): Delete.
936 (gt_ggc_mp_function): New.
937 (gt_ggc_mr_machine_function): New.
938 (gt_ggc_mr_language_function): New.
939 (init_function_once): Use canonical names.
940 * function.h (struct function): Use gengtype.
941 (init_machine_status): Return the structure.
942 (mark_machine_status): Take a 'void *'.
943 (mark_lang_status): Likewise.
944 * ggc-common.c (ggc_mark_trees): Use canonical name for
945 ggc_mark_struct_function.
946 * tree.h (ggc_mark_struct_function): Delete prototype.
947 * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
948 (alpha_init_machine_status): Likewise.
949 (override_options): Use canonical name for alpha_mark_machine_status.
950 * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
951 * config/arm/arm.h (struct machine_function): Use gengtype.
952 * config/arm/arm.c (arm_mark_machine_status): Delete.
953 (arm_init_machine_status): Update calling sequence.
954 (arm_init_expanders): Use canonical name for arm_mark_machine_status.
955 * config/cris/cris.c (cris_init_machine_status): Update
957 * config/d30v/d30v.h (struct machine_function): Use gengtype.
958 * config/d30v/d30v.c (d30v_init_machine_status): Update
960 (d30v_mark_machine_status): Delete.
961 * config/i386/i386.c: Include gt-i386.h.
962 (struct machine_function): Use gengtype.
963 (ix86_init_machine_status): Update calling sequence.
964 (ix86_mark_machine_status): Delete.
965 (override_options): Use canonical namke for ix86_mark_machine_status.
966 * config/ia64/ia64.h (struct machine_function): Use gengtype.
967 * config/ia64/ia64.c (ia64_init_machine_status): Update calling
969 (ia64_mark_machine_status): Delete.
970 (ia64_override_options): Use canonical name for
971 ia64_mark_machine_status.
972 * config/mmix/mmix.c (mmix_init_machine_status): Update calling
974 * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
975 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
976 * gengtype.c (get_output_file): Fix warning.
977 (main): Add prototype to suppress warning.
978 * tree.c: Remove tree_hash_mark prototype.
980 * tree.h (init_stmt): Delete prototype.
981 * toplev.c (lang_independent_init): Don't call init_stmt.
982 * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
983 (stmt_obstack): Delete.
984 (POPSTACK): No need to free 'struct nesting'.
985 (gt_ggc_mr_nesting_cond): Use canonical names.
986 (gt_ggc_mr_nesting_loop): Use canonical names.
987 (gt_ggc_mr_nesting_block): Use canonical names.
988 (gt_ggc_mr_nesting_case_stmt): Use canonical names.
989 (mark_stmt_status): Delete.
991 (clear_last_expr): Clear both last_expr_type and last_expr_value.
992 Use it everywhere that last_expr_type was cleared.
993 * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
995 * ggc.h (ggc_add_deletable_root): Prototype.
996 (mark_stmt_status): Remove prototype.
997 * ggc-common.c (ggc_add_deletable_root): New.
998 (ggc_mark_roots): Handle deletable roots.
999 * function.c (ggc_mark_struct_function): Use canonical name
1000 for mark_stmt_status.
1001 * emit-rtl.c (free_sequence_stack): New.
1002 (start_sequence): Use a freelist for sequences.
1003 (end_sequence): Likewise.
1004 (init_emit_once): Add free_sequence_stack as a deleteable root.
1005 * c-pragma.c Include gt-c-pragma.h.
1006 (struct align_stack): Use gengtype.
1007 (push_alignment): Use GGC for struct align_stack.
1008 (mark_align_stack): Delete.
1009 (gt_ggc_mp_align_stack): New.
1010 (init_pragma): Use canonical name for mark_align_stack.
1011 * c-decl.c: Include gt-c-decl.h.
1012 (struct binding_level): Use gengtype.
1013 (make_binding_level): Use GGC; handle the freelist here.
1014 (pop_binding_level): New.
1015 (pushlevel): Move code into make_binding_level.
1016 (push_label_level): Likewise.
1017 (poplevel): Move code into pop_binding_level.
1018 (pop_label_level): Likewise.
1019 (mark_binding_level): Delete.
1020 (gt_ggc_mp_binding_level): New.
1021 (c_init_decl_processing): Use canonical name for mark_binding_level.
1022 Add free_binding_level as deletable root.
1023 (mark_c_function_context): Use canonical name for mark_binding_level.
1024 * Makefile.in (c-decl.o): Add gt-c-decl.h.
1025 (c-pragma.o): Add gt-c-pragma.h.
1026 (GTFILES): Add c-decl.c and c-pragma.c.
1027 (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
1029 * tree.c (struct type_hash): Use gengtype.
1030 (init_obstacks): Use canonical name for type_hash_mark.
1031 (type_hash_mark): Delete.
1033 * rtl.h (struct mem_attrs): Use gengtype.
1034 * optabs.h (struct optab): Use gengtype.
1035 * optabs.c (expand_binop): Squish signed/unsigned warning.
1036 (mark_optab): Make local, use canonical name, use autogenerated
1038 (init_optabs): Use canonical name for mark_optab.
1039 (new_optab): Use GGC to allocate optabs.
1040 * ggc.h: Delete mark_optab prototype.
1041 * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
1042 mem_attrs marker procedure.
1043 * gengtype.c (get_output_file): Include headers in gtype-desc.c
1044 explicitly rather than deducing them from file names.
1045 (write_gc_structure_fields): Handle arrays of structures.
1046 (main): Return non-zero exit code if errors occur during output.
1047 * emit-rtl.c (mem_attrs_mark): Delete.
1048 (init_emit_once): Use canonical name for mem_attrs marker procedure.
1049 * Makefile.in (gtype-desc.o): Explicitly name dependencies.
1050 (tree.o): Depend on gt-tree.h.
1051 (GTFILES): Add rtl.h, optabs.h, tree.c.
1052 (gt-tree.h): Add it to s-gtype rule.
1054 * .cvsignore: Ignore gengtype flex/bison generated files.
1055 * Makefile.in (GGC_H): Add gtype-desc.h.
1056 (OBJS): Add gtype-desc.o.
1057 (GEN): Add gengtype.
1058 (STAGESTUFF): Add gengtype.
1059 (varasm.o): Add gt-varasm.h.
1060 (stmt.o): Add gt-stmt.h.
1061 (except.o): Add gt-except.h.
1062 (integrate.o): Add gt-integrate.h.
1064 Add new rules for new files.
1065 * configure: Regenerate.
1066 * configure.in: Correct defaults.h paths.
1067 * emit-rtl.c (mark_sequence_stack): Delete.
1068 (mark_emit_status): Delete.
1069 (start_sequence): Allocate sequence structures using GGC.
1070 (end_sequence): Allocate sequence structures using GGC.
1071 * except.c: Use gengtype for various structures. Include
1073 * expr.c (mark_expr_status): Delete.
1074 * function.c: Use gengtype for various structures. Include
1076 (mark_function_status): Use standard gt_ggc names for marker functions.
1077 (ggc_mark_struct_function): Likewise.
1078 * function.h: Use gengtype for various structures.
1079 * gengtype-lex.l: New file.
1080 * gengtype-yacc.y: New file.
1081 * gengtype.c: New file.
1082 * gengtype.h: New file.
1083 * ggc.h: Include gtype-desc.h. Alias some marker procedures to
1084 the standard names. Remove some now-unnecessary prototypes.
1085 * integrate.c: Use gengtype for various structures. Include
1087 (mark_hard_reg_initial_vals): Delete.
1088 * integrate.h (mark_hard_reg_initial_vals): Delete.
1089 * stmt.c: Use gengtype for various structures. Include
1091 (mark_case_node): Delete.
1092 (mark_goto_fixup): Delete.
1093 (mark_stmt_status): Use standard gt_ggc names for marker functions.
1094 * system.h: Define GTY to empty. In flex/bison files,
1095 don't poison malloc or realloc, instead just define them to
1096 xmalloc and xrealloc.
1097 * varasm.c: Use gengtype for various structures. Include
1098 gt-varasm.h. Use standard gt_ggc names for marker functions.
1099 (mark_pool_constant): Delete.
1100 (mark_varasm_status): Delete.
1101 (decode_rtx_const): #if 0 out non-typesafe hack.
1103 * function.h (free_lang_status): Mark as obsolete.
1104 * function.c (free_lang_status): Mark as obsolete.
1105 * c-decl.c (push_c_function_context): Use GC to allocate and free
1106 struct language_function.
1107 (pop_c_function_context): Likewise.
1108 * c-common.c (mark_c_language_function): Mark struct
1111 * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
1112 Document that the machine_function structures must be allocated
1113 using GC. Update mark_machine_status documentation.
1114 * function.h: Don't declare free_machine_status.
1115 * function.c (free_machine_status): Don't define.
1116 (free_after_compilation): Don't call free_machine_status.
1117 (ggc_mark_struct_function): Mark f->machine. Call
1118 mark_machine_status only on non-NULL pointers.
1119 * system.h: Poison free_machine_status.
1120 * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
1121 struct machine_function.
1122 (xtensa_free_machine_status): Delete.
1123 (override_options): Don't set free_machine_status.
1124 * config/rs6000/rs6000.c (rs6000_override_options): Don't set
1125 free_machine_status.
1126 (rs6000_init_machine_status): Use GC on struct machine_function.
1127 (rs6000_free_machine_status): Delete.
1128 * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
1130 (ia64_mark_machine_status): Likewise.
1131 (ia64_free_machine_status): Delete.
1132 (ia64_override_options): Don't set free_machine_status.
1133 * config/i386/i386.c (override_options): Don't set
1134 free_machine_status.
1135 (ix86_init_machine_status): Use GC on struct machine_function.
1136 (ix86_mark_machine_status): Likewise.
1137 (ix86_free_machine_status): Delete.
1138 * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
1140 (d30v_mark_machine_status): Likewise.
1141 (d30v_free_machine_status): Delete.
1142 (d30v_init_expanders): Don't set free_machine_status.
1143 * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
1145 (arm_init_machine_status): Likewise.
1146 (arm_free_machine_status): Delete.
1147 (arm_init_expanders): Don't set free_machine_status.
1148 * config/alpha/alpha.c (override_options): Don't set
1149 free_machine_status.
1150 (alpha_init_machine_status): Use GC on struct machine_function.
1151 (alpha_mark_machine_status): Likewise.
1152 (alpha_free_machine_status): Delete.
1154 * varasm.c (compare_constant): Fix typo.
1156 * varasm.c: Don't include obstack.h.
1157 (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
1158 (struct rtx_const): Give substructures names, improve formatting.
1159 (struct constant_descriptor): Delete.
1160 (struct constant_descriptor_tree): New, based on constant_descriptor.
1161 (const_hash_table): Is a hash table of trees.
1162 (mark_const_hash_entry): Is used for hashes of trees. Mark
1163 constant_descriptor_tree structure.
1164 (mark_const_str_htab_1): Mark deferred_string structure.
1165 (compare_constant): Rewrite to compare trees.
1166 (compare_constant_1): Delete.
1167 (record_constant): Delete.
1168 (record_constant_1): Delete.
1169 (output_constant_def): Use struct constant_descriptor_tree.
1170 Don't duplicate trees twice.
1171 (struct constant_descriptor_rtx): New.
1172 (struct pool_constant): Used for rtx constants.
1173 (init_varasm_status): Update for change to struct varasm_status.
1174 (mark_varasm_status): Likewise.
1175 (free_varasm_status): Delete.
1176 (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
1177 (record_constant_rtx): Likewise.
1178 (mem_for_const_double): Update to use struct constant_descriptor_rtx.
1179 (force_const_mem): Likewise.
1180 * Makefile.in (varasm.o): Doesn't depend on obstack.h.
1181 * function.c (free_after_compilation): Don't use free_varasm_status.
1182 * function.h: Don't prototype free_varasm_status.
1184 * ggc-common.c (ggc_realloc): Handle X being NULL.
1186 * ggc-common.c (ggc_realloc): New function.
1187 * ggc.h: Prototype it.
1188 * emit-rtl.c (free_emit_status): Delete.
1189 (init_emit): Allocate emit subarrays using GC.
1190 (gen_reg_rtx): Reallocate subarrays using GC.
1191 (init_emit): Use GC to allocate 'struct emit_status' and its
1193 (mark_emit_status): Mark structure and its subarrays.
1194 * stmt.c (free_stmt_status): Delete.
1195 * expr.c (free_expr_status): Delete.
1196 * function.h: Remove prototypes for deleted functions.
1197 * function.c (free_after_compilation): Don't use deleted functions.
1198 Don't call free() on x_parm_reg_stack_loc.
1199 (free_after_parsing): Don't use free_stmt_status.
1200 (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
1201 (mark_function_status): Mark x_parm_reg_stack_loc.
1203 * varasm.c (init_varasm_status): Use GC to allocate
1204 'struct varasm_status' and its fields x_const_rtx_hash_table
1205 and x_const_rtx_sym_hash_table.
1206 (mark_varasm_status): Mark them.
1207 (free_varasm_status): Use GC to free them.
1208 * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
1209 (mark_expr_status): Mark the structure itself.
1210 (free_expr_status): Use GC to free the structure.
1211 * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
1212 (mark_stmt_status): Mark the 'struct stmt_status' itself.
1213 (init_stmt_for_function): Allocate the structure for GC.
1215 * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
1216 (equate_type_number_to_die): Likewise.
1217 * tree.h (TYPE_SYMTAB_DIE): New macro.
1218 (struct die_struct): Predeclare.
1219 (struct tree_type): Add field symtab.die. Add a tag
1220 to the union type of field symtab.
1222 * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
1223 'struct rtvec_def *', not 'struct rtvec_def'.
1225 * function.h (original_arg_vector): Make a real rtvec.
1226 * function.c (ggc_mark_struct_function): Adjust.
1227 * integrate.c (expand_inline_function): Adjust.
1229 2002-06-04 Jason Thorpe <thorpej@wasabisystems.com>
1231 * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
1232 (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
1233 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
1234 (TARGET_VERSION_CPU): Define according to the
1236 (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
1238 (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
1239 if TARGET_SHMEDIA64.
1240 (LINK_DEFAULT_CPU_EMUL): Define according to the
1242 (SUBTARGET_LINK_EMUL_SUFFIX): Define.
1243 (SUBTARGET_LINK_SPEC): Define.
1244 (LINK_SPEC): Use SH_LINK_SPEC.
1246 (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
1247 (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
1248 and TARGET_SHMEDIA64 which abort, for now.
1249 * config/sh/t-netbsd-sh5: New file.
1250 * config/sh/t-netbsd-sh5-32: New file.
1251 * config/sh/t-netbsd-sh5-64: New file.
1253 2002-06-03 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
1254 Richard Henderson <rth@redhat.com>
1256 * config/alpha/alpha.c (reg_or_const_int_operand): New.
1257 (some_operand, input_operand): Accept CONST_VECTOR.
1258 (alpha_extra_constraint): Add 'W'.
1259 (alpha_expand_zap_mask): New.
1260 (alpha_expand_builtin_vector_binop): New.
1261 (enum alpha_builtin): New.
1262 (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
1263 (alpha_init_builtins, alpha_expand_builtin): New.
1264 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
1265 * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
1266 (PREDICATE_CODES): Update.
1267 * config/alpha/alpha-protos.h: Update.
1268 * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
1269 UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
1270 (movv8qi, movv8qi_fix, movv8qi_nofix): New.
1271 (movv4hi, movv4hi_fix, movv4hi_nofix): New.
1272 (movv2si, movv2si_fix, movv2si_nofix): New.
1273 (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
1274 (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
1275 (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
1276 builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
1277 builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
1278 builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
1279 builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
1280 pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
1281 builtin_unpkbw, unpkbw): New.
1282 * doc/extend.texi (Alpha Built-in Functions): New.
1284 2002-06-03 Richard Henderson <rth@redhat.com>
1286 * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
1287 USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
1289 2002-06-03 Richard Henderson <rth@redhat.com>
1291 * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
1293 * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
1294 (const0_operand): New.
1295 (reg_or_fp0_operand, fp0_operand): Remove.
1296 * config/alpha/alpha.h (PREDICATE_CODES): Update.
1297 * config/alpha/alpha-protos.h: Update.
1298 * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
1299 and fp0_operand with reg_or_0_operand and const0_operand.
1301 2002-06-03 Dan Nicolaescu <dann@godzilla.ics.uci.edu>
1303 * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
1305 2002-06-03 Roger Sayle <roger@eyesopen.com>
1307 * gcse.c (cprop_jump): Use single_set to get the pattern
1308 from the setcc argument.
1310 2002-06-03 Gabriel Dos Reis <gdr@codesourcery.com>
1312 * diagnostic.h (diagnostic_count): Move from output_buffer to
1314 (diagnostic_kind_count): Adjust definition.
1316 Mon Jun 3 19:11:53 CEST 2002 Jan Hubicka <jh@suse.cz>
1318 * except.c (except.c): Do not rebuild CFG.
1319 * toplev.c (rest_of_compilation): Recompute CFG after sibcall
1322 Mon Jun 3 11:53:01 CEST 2002 Jan Hubicka <jh@suse.cz>
1324 * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
1325 * toplev.c: Include cfglahout.h
1326 * Makefile.in (toplev.c): Add dependnecy.
1328 2002-06-03 Neil Booth <neil@daikokuya.demon.co.uk>
1330 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
1331 (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
1332 (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
1334 2002-06-03 Jason Thorpe <thorpej@wasabisystems.com>
1336 * config/ns32k/netbsd.h: Update copyright years.
1337 (TARGET_OS_CPP_BUILTINS): Define.
1338 (CPP_PREDEFINES): Remove.
1339 * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
1340 (TARGET_CPU_CPP_BUILTINS): Define.
1342 2002-06-02 Kazu Hirata <kazu@cs.umass.edu>
1344 * emit-rtl.c: Fix formatting.
1345 * errors.h: Likewise.
1346 * except.c: Likewise.
1347 * explow.c: Likewise.
1348 * expmed.c: Likewise.
1352 2002-06-02 Kazu Hirata <kazu@cs.umass.edu>
1354 * config/h8300/elf.h: Fix formatting.
1355 * config/h8300/rtems.h: Likewise.
1357 2002-06-03 Jason Thorpe <thorpej@wasabisystems.com>
1359 * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
1361 2002-06-02 Tom Tromey <tromey@redhat.com>
1363 * fixinc/fixincl.x: Rebuilt.
1364 * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
1366 2002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
1369 * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
1370 * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
1374 Mon Jun 3 00:18:20 CEST 2002 Jan Hubicka <jh@suse.cz>
1376 * final.c (final): Allow notes to not have computed addresses;
1377 kill no longer needed STACK_REGS ifdef.
1379 2002-06-02 Richard Henderson <rth@redhat.com>
1381 * gcse.c (bypass_conditional_jumps): Fix typo last change.
1383 Sun Jun 2 23:02:11 CEST 2002 Jan Hubicka <jh@suse.cz>
1385 * loop.c (emit_prefetch_instructions): Properly place the address
1388 Sun Jun 2 22:56:48 CEST 2002 Jan Hubicka <jh@suse.cz>
1390 * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
1391 (set_block_for_insn): Turn into macro.
1392 * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
1393 * cfglayout.c (insn_scopes): Kill.
1394 (scope_to_insns_initialize): Do not use insn_scopes.
1395 (scope_to_insns_finalize): Likewise.
1396 (duplicate_insn_chain): Likewise.
1397 (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
1398 * cfgrtl.c (basic_block_for_insn): Kill.
1399 (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
1400 (create_basic_block_structure): Use reorder_insns.
1401 (compute_bb_for_insn): Do not use basic_block_for_insn.
1402 (merge_blocks_nomove): Likewise.
1403 (update_bb_for_insn): Likewise.
1404 (verify_flow_info): Likewise.
1405 (set_block_for_insn): Kill.
1406 * combine.c (try_combine): Update gen_rtx_INSN call.
1407 * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
1408 (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
1410 (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
1411 (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
1413 (emit_insns_after): Simplify.
1414 (emit_copy_of_insn_after): Copy scope.
1415 * final.c (final_start_function): Lower scopes.
1416 * flow.c (check_function_return_warnings): Do not rely on deleted insn.
1417 * integrate.c (copy_insn_list): Cope scopes.
1418 * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
1419 * loop.c (loop_optimize): Do not care block notes.
1420 * print-rtl.c (print_rtx): Print BB.
1421 * recog.c (apply_change_group): Simplify.
1422 * rtl.c (copy_rtx): Handle 'B'.
1423 * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
1424 * rtl.h (Field accessors): Update indexes.
1425 * sched-ebb.c (schedule_ebbs): Do not lower notes.
1426 * sched-rgn.c (schedule_insns): Likewise.
1427 * toplev.c (rest_of_compilation): Lower notes.
1428 * unroll.c (unroll_loop): Do not care scoping notes.
1429 (copy_loop_body): Copy scopes.
1431 2002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
1434 * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
1436 * rtems.h: Similarly.
1437 * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
1438 EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
1439 (TARGET_CPU_CPP_BUILTINS): Use.
1441 2002-06-02 Richard Henderson <rth@redhat.com>
1443 * alias.c: Include target.h.
1444 (mark_constant_function): Use targetm.binds_local_p instead
1445 of checking TREE_PUBLIC ourselves.
1446 * Makefile.in (alias.o): Add TARGET_H.
1448 2002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
1450 * c-lex.c: Update copyright and file description.
1452 2002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
1454 * config/fr30/fr30.h: Update to new CPP macros.
1456 2002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
1458 * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
1460 2002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
1461 Zack Weinberg <zack@codesourcery.com>
1463 * c-common.c (c_common_init): Override cpplib's default
1464 warn_long_long setting.
1465 * c-lex.c (lex_number): Replace with interpret_integer,
1466 interpret_float, narrowest_unsigned_type and
1467 narrowest_signed_type, taking advantage of the new
1468 cpplib functionality.
1469 * cpperror.c (_cpp_begin_message): If a warning is turned
1470 into an error, avoid printing "warning:".
1471 * cppexp.c (cpp_num_sign_extend): New.
1472 * cppinit.c: Update comment.
1473 * cpplib.h (cpp_num_sign_extend): New.
1474 * tree.h: Update comment.
1476 2002-06-02 Gabriel Dos Reis <gdr@codesourcery.com>
1478 * diagnostic.h (struct diagnostic_context): Add new member
1480 (internal_error_function): Remove declaration.
1481 * diagnostic.c (internal_error_function): Remove definition..
1482 (internal_error): Adjust use.
1484 2002-06-02 Richard Henderson <rth@redhat.com>
1486 * rtl.h (CC0_P): New.
1487 * gcse.c (cprop_jump): Use it with single_set. Tweak dump text.
1488 (cprop_insn): Allow any mode register; use CC0_P. CSE out single_set.
1489 (bypass_block): Save old dest block for dump text.
1490 (bypass_conditional_jumps): Allow any mode register; use CC0_P.
1491 Allow only true SET insns, not single_set.
1493 2002-06-02 Gabriel Dos Reis <gdr@codesourcery.com>
1495 * diagnostic.c (diagnostic_finish): Rename to output_flush.
1496 (clear_disgnostic_info): Rename to output_clear_data. Use false
1497 instead of 0 for boolean value.
1498 Adjust function call throughout.
1500 Sun Jun 2 19:15:27 CEST 2002 Jan Hubicka <jh@suse.cz>
1502 * cfgrtl.c (commit_one_edge_insertion): Fix warning.
1503 * gcse.c (bypass_conditional_jumps): CSE out single_set call.
1505 2002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
1507 * d30v.h (CPP_PREDEFINES): Replace with
1508 (TARGET_CPU_CPP_BUILTINS): New.
1510 2002-06-02 Roger Sayle <roger@eyesopen.com>
1512 * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
1514 Sun Jun 2 12:11:52 CEST 2002 Jan Hubicka <jh@suse.cz>
1516 * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
1518 2002-06-02 Richard Henderson <rth@redhat.com>
1520 * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
1522 2002-06-02 Marek Michalkiewicz <marekm@amelek.gda.pl>
1524 Support for C++ constructors/destructors.
1525 * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
1526 instead of looping if main() returns.
1527 (asm_file_start): Output global symbols that cause .data and .bss
1528 initialization code to be linked in, unconditionally for now.
1529 (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
1530 * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
1531 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
1533 * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
1534 (__tablejump__): New.
1535 (__do_copy_data, __do_clear_bss): New.
1536 (__do_global_ctors, __do_global_dtors): New.
1537 * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
1540 2002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
1542 * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
1543 (CPP_SPEC, CPP_PREDEFINES): Kill.
1544 * c4x/rtems.h (CPP_PREDEFINES): Kill.
1545 (TARGET_OS_CPP_BUILTINS): New.
1547 Sat Jun 1 23:29:51 CEST 2002 Jan Hubicka <jh@suse.cz>
1549 * Makefile.in (tracer.o): New.
1550 * params.def (TRACER_*): New options.
1551 * rtl.h (tracer): Declare.
1552 * timevar.def (TV_TRACER): New.
1553 * toplev.c (dump_file_index): Add DFI_tracer.
1554 (dump_file_info): Add tracer.
1556 (lang_indepdenent_options): Add tracer.
1557 (rest_of_compilation): Call tracer.
1558 * tracer.c: New file.
1559 * invoke.texi (-ftracer): Document.
1560 (--param tracer-*): Document.
1562 2002-06-01 Daniel Berlin <dberlin@dberlin.org>
1564 * tree-inline.c (expand_call_inline): Make the statement
1565 expression we generate have a COMPOUND_STMT.
1567 2002-06-01 Roger Sayle <roger@eyesopen.com>
1569 * gcse.c (cprop_cc0_jump): Function deleted.
1570 (cprop_jump): Take an additional argument which is the possibly
1571 NULL cc setting insn immediately before the conditional jump.
1572 When a MODE_CC set is present, substitute it into the JUMP_INSN
1573 before attempting the constant propagation.
1574 (cprop_insn): Recognize cc setters followed by conditional jumps
1575 as a special case. Use cprop_jump instead of cprop_cc0_jump.
1576 (cprop_one_pass): Call bypass_conditional_jumps if altering jumps.
1577 (find_bypass_set): New function based upon find_avail_set used by
1578 cprop, but finds constant expressions available at the end of
1580 (bypass_block): New function. Given a basic block that begins
1581 with a conditional jump and multiple incoming edges, perform
1582 the jump bypass optimization.
1583 (bypass_conditional_jumps): New function. Call bypass_block with
1584 each suitable basic block in the CFG using a simple single pass.
1586 2002-06-01 Roger Sayle <roger@eyesopen.com>
1588 * tree.c (real_minus_onep): New function to test for -1.0.
1589 * fold-const.c (fold) [MULT_EXPR]: Optimize -1.0*x into -x.
1591 2002-06-01 Roger Sayle <roger@eyesopen.com>
1593 * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
1594 and "!p && !q" into "(p|q) == 0" under suitable conditions.
1596 2002-06-01 Andreas Jaeger <aj@suse.de>
1598 * cppexp.c (cpp_classify_number): Cast precission to int for
1599 correct printf format.
1601 2002-06-01 Marek Michalkiewicz <marekm@amelek.gda.pl>
1603 * config/avr/avr.c (avr_mcu_types): Remove devices that were once
1604 expected, but don't really exist: atmega83, atmega85, attiny10.
1605 * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
1606 emulations for all devices.
1607 (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
1608 * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
1610 2002-06-01 Kazu Hirata <kazu@cs.umass.edu>
1612 * config/h8300/h8300-protos.h: Add a prototype for
1613 h8300_shift_needs_scratch_p.
1614 * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
1615 * config/h8300/h8300.h (OK_FOR_R): New.
1616 (OK_FOR_S): Likewise.
1617 (OK_FOR_T): Likewise.
1618 (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
1619 * config/h8300/h8300.md (anonymous shift patterns): Use
1620 constraints R, S, and T.
1622 Sat Jun 1 11:23:22 CEST 2002 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1624 * basic-block.h (struct basic_block_def): New field loop_father.
1625 (BB_VISITED): New flag.
1626 (struct loop): New field pred, removed field shared.
1627 (struct loops): New field parray.
1628 (LOOP_EXITS_DOMS): Removed.
1629 (flow_loop_tree_node_add, flow_loop_tree_node_remove,
1630 flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
1631 dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
1632 add_bb_to_loop, remove_bb_from_loops, find_common_loop,
1633 verify_loop_structure): Declare.
1634 * cfg.c (entry_exit_blocks): Initialize loop_father field.
1635 * cfganal.c (dfs_enumerate_from): New function.
1636 * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
1637 (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
1638 flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
1639 flow_loop_dump, flow_loops_dump, flow_loops_free,
1640 flow_loop_tree_node_add, flow_loop_level_compute,
1641 flow_loops_level_compute, flow_loop_scan, flow_loops_update,
1642 flow_loop_outside_edge_p): Modified for new infrastructure.
1643 (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
1644 redirect_edge_with_latch_update, flow_loop_free): New static functions.
1645 (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
1646 get_loop_body, add_bb_to_loop, remove_bb_from_loops,
1647 find_common_loop, verify_loop_structure, loop_latch_edge,
1648 loop_preheader_edge): New functions.
1649 (flow_loops_cfg_dump): Do not show dominators, as this information
1650 does not remain up to date long.
1651 (flow_loops_find): Store results in new format.
1652 * predict.c (propagate_freq, estimate_probability,
1653 estimate_loops_at_level, estimate_bb_frequencies): Use new loop
1656 2002-06-01 Alan Lehotsky <apl@alum.mit.edu>
1658 * except.c (nothrow_function_p): Walk epilogue delay list
1659 checking the insn, not the chain for potential throws.
1661 2002-05-31 Zack Weinberg <zack@codesourcery.com>
1663 * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
1664 (install): Refer to install-cpp directly.
1665 (uninstall-cpp): Folded into uninstall rule.
1666 * configure.in: Delete all code relating to --disable-cpp.
1667 * configure: Regenerate.
1668 * config/t-install-cpp: Delete.
1670 2002-05-31 Richard Henderson <rth@redhat.com>
1672 * configure.in (HAVE_AS_TLS): Add alpha tests.
1673 * configure: Rebuild.
1674 * config/alpha/alpha.c (TARGET_AS_TLS): New.
1675 (alpha_tls_size, alpha_tls_size_string): New.
1676 (overide_options): Set it. Always install machine_status hooks.
1677 (input_operand): Accept got tls predicates.
1678 (local_symbol_p): Merge into ...
1679 (local_symbolic_operand): ... here. Reject tls symbols.
1680 (global_symbolic_operand): Likewise.
1681 (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
1682 (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
1683 (tp16_symbolic_operand, tp32_symbolic_operand): New.
1684 (gottp_symbolic_operand, tls_symbolic_operand_type): New.
1685 (alpha_encode_section_info): Handle TLS symbols.
1686 (alpha_strip_name_encoding): Likewise.
1687 (alpha_legitimate_address_p): Likewise.
1688 (alpha_legitimize_address): Likewise.
1689 (alpha_expand_mov): Early exit to avoid nop moves.
1690 (struct machine_function): Move from unicosmk.h. Add some_ld_name.
1691 (alpha_init_machine_status, alpha_mark_machine_status,
1692 alpha_free_machine_status): Always define.
1693 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
1694 (print_operand, print_operand_address): Add TLS relocs.
1695 * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
1696 (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
1697 (TARGET_SWITCHES): Add -mtls-kernel.
1698 (alpha_tls_size, alpha_tls_size_string): New.
1699 (TARGET_OPTIONS): Add -mtls-size=.
1700 (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
1701 REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
1702 (ASM_OUTPUT_LABELREF): Skip %.
1703 (PRINT_OPERAND_PUNCT_VALID_P): Add &.
1704 (PREDICATE_CODES): Update.
1705 * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
1706 UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
1707 UNSPEC_TP, UNSPECV_SET_TP): New.
1708 (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
1709 adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
1710 set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
1711 movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
1712 (call_value_osf_2_er): Accept anything as op4.
1713 * config/alpha/alpha-protos.h: Update.
1714 * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
1716 2002-05-31 Zack Weinberg <zack@codesourcery.com>
1718 * cppinit.c (append_include_chain): Always pay attention to
1719 cxx_aware when setting new->sysp. Remove ATTRIBUTE_UNUSED
1722 2002-05-31 Kazu Hirata <kazu@cs.umass.edu>
1724 * target.h: Fix formatting.
1725 * timevar.h: Likewise.
1726 * tlink.c: Likewise.
1727 * toplev.c: Likewise.
1728 * toplev.h: Likewise.
1730 * tree-dump.h: Likewise.
1732 * tree-inline.h: Likewise.
1733 * unroll.c: Likewise.
1734 * unwind-dw2.c: Likewise.
1735 * unwind-dw2-fde.c: Likewise.
1736 * unwind-dw2-fde-glibc.c: Likewise.
1737 * unwind-dw2-fde.h: Likewise.
1738 * unwind.h: Likewise.
1739 * unwind-sjlj.c: Likewise.
1740 * varasm.c: Likewise.
1741 * varray.h: Likewise.
1742 * vmsdbg.h: Likewise.
1743 * vmsdbgout.c: Likewise.
1744 * xcoffout.h: Likewise.
1746 2002-05-31 Igor Shevlyakov <igor@microunity.com>
1748 * expr.c (compare_from_rtx): Generate comparison between op0 and op1
1749 rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
1751 2002-05-31 Matthew Woodcraft <mattheww@chiark.greenend.org.uk>
1753 * gcc.c (cpp_unique_options): Remove "-d" options.
1754 (cpp_debug_options): New spec string.
1755 (default_compilers): Use it.
1756 * objc/lang-specs.h: Likewise.
1758 2002-05-31 Nathanael Nerode <neroden@twcny.rr.com>
1760 * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
1761 BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
1762 * gcc/mklibgcc.in: Likewise.
1763 * gcc/config/arc/t-arc: Likewise.
1764 * gcc/configure.in: Likewise.
1765 * gcc/configure: Regenerate.
1767 2002-05-31 Stan Shebs <shebs@apple.com>
1768 Turly O'Connor <turly@apple.com>
1770 * c-decl.c (struct binding_level): Change int field n_incomplete
1771 to tree list incomplete_list.
1772 (clear_binding_level): Init field with NULL.
1773 (pushdecl): Add incomplete type to list.
1774 (mark_binding_level): Mark the incomplete list.
1775 (finish_struct): Scan the incomplete list for types instead
1776 of all decls in the current binding level.
1778 2002-05-31 John David Anglin <dave@hiauly1.hia.nrc.ca>
1780 * pa.c (output_millicode_call): Add missing '%' characters.
1781 (output_call): Likewise.
1783 2002-05-31 David Edelsohn <edelsohn@gnu.org>
1785 * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
1786 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1788 2002-05-31 Alan Lehotsky <apl@alum.mit.edu>
1790 * varasm.c (mark_constant_pool): Walk epilogue delay list
1791 checking the insn, not the chain for potential constants.
1793 Fri May 31 12:38:43 2002 J"orn Rennecke <joern.rennecke@superh.com>
1795 * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
1797 Fri May 31 13:50:19 CEST 2002 Jan Hubicka <jh@suse.cz>
1799 * i386.c (classify_argument): Properly handle base types.
1801 * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
1802 Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
1805 Fri May 31 13:37:54 CEST 2002 Jan Hubicka <jh@suse.cz>
1807 * gcse.c (gcse_emit_move_after): New.
1808 (pre_delete, hoist_store): Use it.
1810 * reload1.c (emit_input_reload_insns): Use constrain_operands
1811 instead of constraint_accepts_reg_p to verify optimization.
1812 (constraint_accepts_reg_p): Kill
1814 * reload1.c (reload_cse_delete_noop_set): Kill.
1815 (reload_cse_simplify): use delte_insn_and_edges.
1817 2002-05-31 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1819 * cfgloop.c (flow_loops_find): Initialize first and last fields
1822 2002-05-31 Neil Booth <neil@daikokuya.demon.co.uk>
1824 * c-common.c (builtin_define_std): Correct logic.
1826 2002-05-31 John David Anglin <dave@hiauly1.hia.nrc.ca>
1828 * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
1829 (output_call): Likewise.
1831 2002-05-31 John David Anglin <dave@hiauly1.hia.nrc.ca>
1833 * pa.c: Move output.h include after tree.h include.
1834 (pa_asm_output_mi_thunk): Constify identifier lab.
1836 2002-05-31 Jason Thorpe <thorpej@wasabisystems.com>
1838 * config/ns32k/ns32k.h: Define named constants for the
1839 bits in target_flags and use them.
1840 * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
1842 2002-05-30 John David Anglin <dave@hiauly1.hia.nrc.ca>
1844 * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
1845 architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
1846 * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
1847 default scheduling model.
1848 * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
1849 * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
1850 * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
1851 * doc/install.texi (hppa*-*-*): Document default scheduling.
1853 2002-05-30 John David Anglin <dave@hiauly1.hia.nrc.ca>
1855 * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
1857 2002-05-31 Jason Thorpe <thorpej@wasabisystems.com>
1859 * config.gcc (ns32k-*-netbsd*): Set tm_file to
1860 "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
1861 * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
1862 netbsd.h, or netbsd-aout.h.
1864 2002-05-31 Jason Thorpe <thorpej@wasabisystems.com>
1866 * longlong.h (count_trailing_zeros): Add missing \, and clean up
1867 whitespace in __ns32000__ case.
1869 2002-05-31 Aldy Hernandez <aldyh@redhat.com>
1871 * expr.c (expand_expr): Output partially zeroed out vectors with
1872 output_constant_def.
1874 2002-05-30 Jason Thorpe <thorpej@wasabisystems.com>
1876 * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
1878 (shl*-*-netbsdelf*): New targets.
1879 * config/sh/netbsd-elf.h: New file.
1880 * config/sh/t-netbsd: New file.
1882 2002-05-30 Richard Henderson <rth@redhat.com>
1883 Eric Botcazou <ebotcazou@multimania.com>
1885 PR optimization/6822
1886 * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
1887 to unsigned int for op1 comparisons. Use gen_int_mode.
1889 2002-05-30 Eric Botcazou <ebotcazou@multimania.com>
1891 * expmed.c (const_mult_add_overflow_p): New.
1892 * expr.h: Declare it.
1893 * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
1894 Don't eliminate the biv if the giv has a constant multiplier and
1895 the rhs argument of the comparison does satisfy the predicate.
1896 Use expand_mult_add to compute the replacement constant.
1898 2002-05-30 Osku Salerma <osku@iki.fi>
1900 * c-common.c (c_common_attribute_table): Add "may_alias" entry.
1901 (c_common_get_alias_set): Handle it.
1902 * doc/extend.texi: Document it.
1904 2002-05-30 Richard Henderson <rth@redhat.com>
1906 * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
1907 * toplev.c (process_options): Don't check it.
1908 * doc/tm.texi: Don't document it.
1909 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
1910 (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
1911 * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
1912 frame pointer optimization if current_function_profile.
1914 2002-05-30 Kazu Hirata <kazu@cs.umass.edu>
1916 * langhooks.c: Fix formatting.
1917 * langhooks.h: Likewise.
1919 * libgcc2.c: Likewise.
1920 * lists.c: Likewise.
1921 * local-alloc.c: Likewise.
1925 2002-05-30 Marc Espie <espie@openbsd.org>
1927 * config.gcc (sparc64-*-openbsd*): New.
1928 * config/sparc/openbsd1-64.h: New.
1929 * config/sparc/openbsd64.h: New.
1931 2002-05-30 Jeff Law <law@redhat.com>
1933 * flow.c (propagate_one_insn): Revise yesterday's patch. Delete
1934 a dead insn with a REG_RETVAL note when the entire libcall is not
1935 dead and remove the associated REG_LIBCALL note at the same time.
1937 Thu May 30 19:54:30 2002 J"orn Rennecke <joern.rennecke@superh.com>
1939 * lcm.c (output.h): #include.
1940 (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
1941 as an ordinary block.
1942 (optimize_mode_switching): Don't pretend that the exit block is
1943 an ordinary block, or handle sucessors of entry block specially.
1944 Instead, split edges from entry block and to exit block, and
1945 put a computing definition on the thus gained post-entry-block,
1946 and a need on the pre-exit-block.
1948 Thu May 30 20:28:01 CEST 2002 Jan Hubicka <jh@suse.cz>
1950 * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
1951 * rtl.texi: Document 'B'
1953 2002-05-30 Jason Thorpe <thorpej@wasabisystems.com>
1955 * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
1957 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
1959 2002-05-30 Aldy Hernandez <aldyh@redhat.com>
1961 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
1962 const0_rtx instead of NULL_RTX when in error.
1963 (altivec_expand_abs_builtin): Same.
1964 (rs6000_expand_binop_builtin): Same.
1965 (altivec_expand_predicate_builtin): Same.
1966 (altivec_expand_stv_builtin): Same.
1967 (rs6000_expand_ternop_builtin): Same.
1968 (altivec_expand_builtin): Same.
1970 2002-05-29 David S. Miller <davem@redhat.com>
1972 * rtl.h (clear_emit_caches): Delete.
1973 * integrate.c (output_inline_function): Don't call it.
1974 * emit-rtl.c (restore_emit_status, init_emit): Likewise.
1975 (clear_emit_caches): Delete definition.
1976 (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
1978 2002-05-30 Hans-Peter Nilsson <hp@bitrange.com>
1980 * config/mmix/mmix.c: Include real.h.
1981 (mmix_constant_address_p): Remove redundant test before switch.
1983 2002-05-29 Jason Thorpe <thorpej@wasabisystems.com>
1985 * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
1986 only if not already defined.
1988 2002-05-29 Kazu Hirata <kazu@cs.umass.edu>
1990 * config/h8300/h8300-protos.h: Remove prototypes for
1991 ok_for_bclr and small_power_of_two.
1992 * config/h8300/h8300.c (small_power_of_two): Remove.
1993 (ok_for_blcr): Likewise.
1994 (fix_bit_operand): Make WHAT deal with an integer instead of a
1995 constraint character.
1996 * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
1997 (CONST_OK_FOR_P): Likewise.
1998 (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
1999 CONST_OK_FOR_P any more.
2000 * config/h8300/h8300.md (andqi3): Adjust to the new prototype
2005 2002-05-29 Jason Thorpe <thorpej@wasabisystems.com>
2007 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2008 (CPP_PREDEFINES): Make sure this is undefined.
2009 (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
2010 since it is no longer in CPP_PREDEFINES. Don't -U__MIPSEL__
2011 or -U__MIPSEB__ before defining one or the other. Instead,
2012 use %(subtarget_endian_default) if neither -EB nor -EL are
2014 (SUBTARGET_EXTRA_SPECS): Define.
2015 (SUBTARGET_CPP_SPEC): Remove __LONG64 handling. Use
2018 2002-05-29 Hans-Peter Nilsson <hp@axis.com>
2020 * doc/md.texi (Patterns): Note pattern condition pitfall
2023 2002-05-29 Aldy Hernandez <aldyh@redhat.com>
2025 * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
2026 when TARGET_ALTIVEC. Move handling of generic unary, binary, and
2027 ternary operations from here...
2028 (rs6000_expand_builtin): ...to here.
2029 New argument expandedp.
2030 Change all instances of altivec_expand_binop_builtin to
2031 rs6000_expand_binop_builtin.
2032 (altivec_expand_unop_builtin): Rename to
2033 rs6000_expand_unop_builtin.
2034 (altivec_expand_binop_builtin): Rename to
2035 rs6000_expand_binop_builtin.
2036 (altivec_expand_ternop_builtin): Rename to
2037 rs6000_expand_ternop_builtin.
2039 2002-05-29 Richard Henderson <rth@redhat.com>
2041 * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
2042 (TARGET_BI_ARCH): Likewise.
2043 * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
2044 (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
2045 (TARGET_64BIT_DEFAULT): Default to 0.
2046 (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
2048 2002-05-29 Richard Henderson <rth@redhat.com>
2050 * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
2051 (get_pc_thunk_name): New.
2052 (output_set_got): Use it.
2053 (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
2054 into linkonce sections.
2056 2002-05-29 Jason Thorpe <thorpej@wasabisystems.com>
2058 * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2059 (CPP_PREDEFINES): Make sure this is undefined.
2060 (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
2061 (CPP_SUBTARGET_SPEC): Don't provide different versions for
2062 default-32 and default-64. Just always use %(netbsd_cpp_spec).
2063 (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
2064 cpp_subtarget_spec64. Add netbsd_cpp_spec.
2065 * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2066 (CPP_PREDEFINES): Make sure this is undefined.
2067 (SUBTARGET_EXTRA_SPECS): Define.
2068 (CPP_SPEC): Use %(netbsd_cpp_spec).
2070 2002-05-29 Jeff Law <law@redhat.com>
2072 * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
2074 * flow.c (propagate_one_insn): Do not remove a dead insn if it
2075 contains a REG_RETVAL note.
2077 * haifa-sched (sched_analyze): Remove another useless clearing
2078 of SCHED_GROUP_P I missed yesterday.
2080 * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
2081 * pa.c (pa_asm_output_mi_thunk): New function.
2082 * pa-protos.h (pa_asm_output_mi_thunk): Declare.
2084 2002-05-29 Neil Booth <neil@daikokuya.demon.co.uk>
2085 Marek Michalkiewicz <marekm@amelek.gda.pl>
2087 * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
2088 (avr_asm_only_p): Make non-static.
2089 (enum avr_arch): Remove.
2090 (avr_arch_types): New.
2091 (avr_mcu_types): Update.
2092 (avr_override_options): Use avr_arch_types table instead of switch.
2093 * avr.h (CPP_PREDEFINES): Die.
2094 (avr_base_arch_macro, avr_extra_arch_macro): New.
2095 (TARGET_CPU_CPP_BUILTINS): New.
2096 (CPP_SPEC, EXTRA_SPECS): Simplify.
2097 (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
2098 CPP_AVR5_SPEC): Die.
2100 2002-05-29 Jason Thorpe <thorpej@wasabisystems.com>
2102 * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
2103 NETBSD_OS_CPP_BUILTINS_AOUT.
2104 (SUBTARGET_EXTRA_SPECS): Define.
2105 (CPP_SPEC): Use %(netbsd_cpp_spec).
2107 2002-05-29 Richard Henderson <rth@redhat.com>
2109 * config/i386/i386.c (ix86_output_function_epilogue): New.
2110 (TARGET_ASM_FUNCTION_EPILOGUE): New.
2111 (pic_label_name): Remove.
2112 (pic_labels_used): New.
2113 (ix86_asm_file_end): Emit one pc load stub for each register used.
2114 (output_set_got): Generate deep pc load to any register.
2115 (ix86_select_alt_pic_regnum): New.
2116 (ix86_save_reg): Don't save pic register if we can find a valid
2117 call-clobbered replacement.
2118 (ix86_expand_prologue): If we found a valid replacement, renumber
2119 pic_offset_table_rtx.
2120 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
2121 pic_offset_table_rtx after reload.
2122 (REAL_PIC_OFFSET_TABLE_REGNUM): New.
2123 * config/i386/i386.md (set_got): Make insn, not expander.
2124 (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
2126 2002-05-29 Richard Henderson <rth@redhat.com>
2128 * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
2129 alignment for alloca.
2131 2002-05-29 Richard Henderson <rth@redhat.com>
2133 * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
2134 (print_operand_address): Only add rip for symbolic addresses
2135 for which we do not have another relocation type.
2137 2002-05-29 Jason Thorpe <thorpej@wasabisystems.com>
2139 * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2140 (EXTRA_SPECS): Add netbsd_cpp_spec.
2141 (CPP_SPEC): Use %(netbsd_cpp_spec).
2142 (CPP_PREDEFINES): Remove.
2143 * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2144 (EXTRA_SPECS): Define.
2145 (CPP_SPEC): Use %(netbsd_cpp_spec).
2146 (CPP_PREDEFINES): Remove.
2148 2002-05-29 Neil Booth <neil@daikokuya.demon.co.uk>
2150 PR preprocessor/6844
2151 * cppmacro.c (cpp_macro_definition): Reserve space for terminating
2154 2002-05-29 Eric Christopher <echristo@redhat.com>
2156 * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
2157 mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
2159 2002-05-29 Nick Clifton <nickc@cambridge.redhat.com>
2161 * config/fr30/fr30.md: Remove previous restriction on splits.
2162 Enforce conformance through gen_lowpart and cont_int_operand.
2163 * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
2164 as the assembler does not support ".bss".
2166 2002-05-29 Jason Thorpe <thorpej@wasabisystems.com>
2168 * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2169 (CPP_PREDEFINES): Remove.
2170 (SUBTARGET_EXTRA_SPECS): Define.
2171 (CPP_SPEC): Use %(netbsd_cpp_spec).
2172 * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2173 (CPP_PREDEFINES): Remove.
2174 (SUBTARGET_EXTRA_SPECS): Define.
2175 (CPP_SPEC): Use %(netbsd_cpp_spec).
2176 * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
2177 (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
2178 (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
2179 Add netbsd_cpp_spec.
2180 (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
2182 2002-05-29 Neil Booth <neil@daikokuya.demon.co.uk>
2183 Zack Weinberg <zack@codesourcery.com>
2185 * cppexp.c (cpp_num): Move to cpplib.h.
2186 (CPP_ERROR): Remove.
2187 (interpret_float_suffix, interpret_int_suffix): New.
2188 (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
2189 (cpp_classify_number, cpp_interpret_integer): New.
2190 (interpret_number): Remove.
2191 (eval_token): Update to use new routines.
2192 * cpphash.h (cpp_num_part): Move to cpplib.h.
2193 * cppinit.c (cpp_post_options): Set warn_long_long.
2194 * cpplib.h (struct cpp_options): Add warn_long_long.
2195 (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
2196 CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
2197 CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
2198 CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
2199 cpp_interpret_integer): New.
2201 2002-05-29 Joel Sherrill <joel@OARcorp.com>
2203 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
2205 2002-05-29 Jason Thorpe <thorpej@wasabisystems.com>
2207 * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
2208 NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
2209 (CPP_SUBTARGET_SPEC): Define.
2210 (SUBTARGET_EXTRA_SPECS): Define.
2213 2002-05-29 Chris Lattner <sabre@nondot.org>
2215 * ssa.c (rename_insn_1): Rename uses of undefined registers to
2216 prevent confusion if/when the register is defined.
2218 2002-05-29 Hans-Peter Nilsson <hp@axis.com>
2221 * config/cris/cris.md: Fix typos and thinkos in comments.
2222 ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
2224 ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
2225 ("*mov_sideqi_mem"): Similar, but for operand 3.
2226 ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
2227 (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
2228 Remove spurious mode specifier on operand 2.
2230 2002-05-29 Kazu Hirata <kazu@cs.umass.edu>
2232 * config/h8300/h8300-protos.h: Remove the prototype for
2234 Add prototypes for single_one_operand and single_zero_operand.
2235 * config/h8300/h8300.c (o_operand): Remove.
2236 (single_one_operand): New.
2237 (single_zero_operand): Likewise.
2238 (print_operand): For 'V' operand, and the operand with 0xff.
2239 For 'V' and 'W' operands, do not and the bit position with 7.
2240 * config/h8300/h8300.md (various anonymous patterns): Replace
2241 use of exact_log2 with single_one_operand/single_zero_operand.
2243 2002-05-29 Ulrich Weigand <uweigand@de.ibm.com>
2245 * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
2247 2002-05-29 Ulrich Weigand <uweigand@de.ibm.com>
2249 * config/s390/s390.c (legitimate_pic_operand_p): Do not
2250 accept symbolic LARL operands.
2251 (s390_emit_epilogue): Do not set FRAME_RELATED_P on
2254 2002-05-29 Hartmut Penner <hpenner@de.ibm.com>
2256 * config/s390/s390.md (cmpstr_64/31): Mark whole
2257 input registers as used.
2259 2002-05-28 Richard Henderson <rth@redhat.com>
2261 * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
2262 not current_function_uses_pic_offset_table and
2263 current_function_uses_const_pool; examine current_function_profile.
2264 (ix86_expand_prologue): Likewise. Add pic_offset_table_rtx as
2265 input to blockage if needed.
2266 (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
2267 (legitimize_pic_address): Likewise. Set regs_ever_live for
2268 pic_offset_table_rtx when invoked during reload.
2269 * config/i386/i386.h (FINALIZE_PIC): Remove.
2270 * config/i386/i386.md (tablejump): Reformat. Do not set
2271 current_function_uses_pic_offset_table.
2272 (tls_global_dynamic, tls_local_dynamic_base): Likewise.
2273 (blockage): Accept anything as operand 0.
2275 2002-05-28 Jason Thorpe <thorpej@wasabisystems.com>
2277 * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
2278 common CPP built-ins for all NetBSD a.out targets.
2279 * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
2280 common CPP built-ins for all NetBSD ELF targets.
2281 * config/netbsd.h: Add missing notice.
2282 (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
2283 for all NetBSD targets.
2284 (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
2285 for all NetBSD targets using an LP64 code model.
2286 (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
2289 2002-05-28 Richard Henderson <rth@redhat.com>
2291 * flow.c (update_life_info_in_dirty_blocks): Only do a partial
2292 update if UPDATE_LIFE_LOCAL.
2294 2002-05-28 Toshiyasu Morita <toshiyasu.morita@hsa.hitachi.com>
2296 * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
2298 Tue May 28 21:16:18 2002 J"orn Rennecke <joern.rennecke@superh.com>
2299 Jason R. Thorpe <thorpej@wasabisystems.com>
2301 config/sh reorganization to factor out endianness and coff:
2303 * config/sh/little.h: New file.
2304 * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
2305 defined, define to 0 to select big-endian.
2306 (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
2307 (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2308 * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2309 * config/sh/t-be: New file.
2310 * config/sh/t-le: New file.
2312 * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
2313 (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
2314 (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
2315 (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
2316 (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
2317 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
2318 (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
2319 (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
2320 (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
2321 (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
2322 CPP_DEFAULT_CPU_SPEC. Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
2323 SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
2324 (LINK_SPEC): Define to SH_LINK_SPEC.
2325 (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
2326 (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
2327 (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
2328 (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
2329 (TARGET_ENDIAN_DEFAULT): Define if not already defined.
2330 * config/sh/coff.h: New file.
2331 (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
2332 (TARGET_OBJFMT_CPP_BUILTINS): Define.
2333 * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
2334 (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
2335 (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
2336 (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
2337 (PTRDIFF_TYPE): Likewise.
2338 ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
2339 (CPP_PREDEFINES): Don't define.
2340 (TARGET_OBJFMT_CPP_BUILTINS): Define.
2341 (LINK_SPEC): Define to SH_LINK_SPEC.
2342 (LINK_EMUL_PREFIX): Redefine.
2343 * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
2344 (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
2345 (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
2346 (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
2347 (TARGET_OS_CPP_BUILTINS): Define.
2348 (TARGET_DEFAULT): Redefine.
2349 (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
2350 * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
2351 (LINK_SPEC): Don't redefine.
2352 (LINK_DEFAULT_CPU_EMUL): Redefine.
2353 (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2354 * sh.c (sh_asm_named_section): Don't declare / define.
2355 * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
2356 * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
2357 (sh64-*-elf* tm_file): Likewise.
2358 (sh-*-rtemself* tm_file): Likewise.
2359 (sh-*-linux* tm_file): Likewise. Add sh/little.h.
2360 (sh-*-linux* tmake_file): Add sh/t-le.
2361 (sh-*-rtems* tm_file): Add sh/coff.h
2362 (sh-*-* tm_file): Likewise.
2364 Tue May 28 21:16:18 2002 J"orn Rennecke <joern.rennecke@superh.com>
2366 * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
2367 CONSTANT_POOL_ADDRESS_P.
2369 * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
2371 2002-05-28 David Edelsohn <edelsohn@gnu.org>
2372 Jeff Law <law@redhat.com>
2374 * optabs.c (expand_binop): Fix nwords sign warnings.
2375 generate pseudo for add_optab.
2377 * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
2378 * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
2380 2002-05-28 Marc Espie <espie@openbsd.org>
2382 * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN): Remove,
2383 inherited from gas.h.
2384 (ASM_QUAD): Undef. OpenBSD does not support it.
2386 2002-05-28 Danny Smith <dannysmith@users.sourceforge.net>
2388 * doc/install.texi (binaries): Change mingw binaries
2389 link to www.mingw.org.
2391 2002-05-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2393 * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
2395 2002-05-28 Richard Henderson <rth@redhat.com>
2397 * config/i386/i386.c (ix86_compute_frame_layout): Do not add
2398 bottom alignment for leaf functions.
2400 2002-05-28 Zack Weinberg <zack@codesourcery.com>
2402 * config/pa/milli32.S, config/pa/lib1funcs.asm,
2403 config/sparc/sol2-g1.asm: Delete unused files.
2405 2002-05-28 Richard Henderson <rth@redhat.com>
2407 * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
2409 * flow.c (calculate_global_regs_live): Rename call_used to
2410 invalidated_by_call. Initialize from regs_invalidated_by_call
2411 instead of call_used_regs.
2413 * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
2416 2002-05-28 Zack Weinberg <zack@codesourcery.com>
2418 * tree.h: Don't include real.h.
2419 Forward-declare struct realvaluetype.
2420 (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
2422 (TREE_REAL_CST_PTR): New accessor.
2423 (TREE_REAL_CST): Update.
2424 * real.h: Include machmode.h.
2425 (realvaluetype): Make it struct realvaluetype, not a typedef.
2426 (build_real): Prototype here.
2428 * tree.c: Include real.h.
2429 (build_real): Allocate the REAL_VALUE_TYPE as a separate
2430 object in GC memory, set TREE_REAL_CST_PTR to point to it.
2431 (build_real_from_int_cst): Use build_real.
2432 * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
2435 * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
2436 fold-const.c, print-tree.c, real.c: Include real.h.
2437 * Makefile.in: Update dependency lists.
2439 2002-05-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2441 * basic-block.h (last_basic_block): Declare.
2442 (expunge_block_nocompact): Declaration removed.
2443 (compact_blocks): Declare.
2444 * cfg.c (last_basic_block): New variable.
2445 (expunge_block_nocompact): Removed.
2446 (expunge_block): Do not compact basic blocks.
2447 (compact_blocks): New.
2448 * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
2450 * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
2452 * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
2453 real positions of blocks.
2454 (delete_unreachable_blocks): Simplified -- quadratic behavior now
2456 (cleanup_cfg): Compact blocks.
2457 * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
2458 basic_block_info varray.
2459 (flow_delete_block): Comment update.
2460 (back_edge_of_syntactic_loop_p): Modify position check code.
2461 (verify_flow_info): Update checking.
2462 * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
2463 * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
2464 (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
2465 indices no longer change.
2466 * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
2468 * predict.c (estimate_bb_frequencies): Remove unneccessary code.
2469 * profile.c (branch_prob): Compact blocks.
2470 * sched-rgn.c (find_rgns): Replace n_basic_blocks with
2473 2002-05-28 Kazu Hirata <kazu@cs.umass.edu>
2475 * config/h8300/h8300.md (two anonymous patterns): New.
2477 2002-05-28 David S. Miller <davem@redhat.com>
2479 * config/sparc/sparc.md (cpu): Tidy.
2480 (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
2482 (in_call_delay): Delete reference to 'return' type.
2483 (eligible_for_return_delay, in_return_delay, define_delay
2484 referencing those): Delete.
2485 (rest of file): Use new type attributes as appropriate.
2486 * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
2487 * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
2488 * config/sparc/ultra1_2.md (us1_single): New reservation.
2489 (us1_ialuX): Likewise.
2490 * config/sparc/ultra3.md (us3_single): Likewise.
2491 (us3_ialuX): Likewise.
2492 (us3_imul, us3_idiv): Tweak.
2494 2002-05-28 Richard Henderson <rth@redhat.com>
2496 * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
2499 2002-05-28 Richard Henderson <rth@redhat.com>
2501 * config.gcc: Obsolete mn10200.
2503 2002-05-28 Neil Booth <neil@daikokuya.demon.co.uk>
2505 * cppexp.c (interpret_number): Optimize for single-digit
2506 and less-than-half-precision cases.
2507 (num_trim, num_positive, num_div_op): Cast constants.
2509 2002-05-27 Bo Thorsen <bo@suse.de>
2511 * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
2512 3.1 branch. The file was made by Jakub Jelinek.
2513 * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
2514 support so multilib doesn't break. And don't define this at all
2515 when -Dinhibit_libc is used.
2516 (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
2517 * config/i386/t-linux64: Implement full multilib support. Patch
2518 originally done by Andreas Jaeger and Jakub Jelinek.
2520 2002-05-27 Roger Sayle <roger@eyesopen.com>
2522 * c-common.c: Add support for __attribute__((nothrow)) to specify
2523 that a function cannot throw an exception (using TREE_NOTHROW).
2524 (handle_nothrow_attribute): New function to process this attribute.
2526 * doc/extend.texi: Document the new nothrow function attribute.
2528 2002-05-27 H.J. Lu (hjl@gnu.org)
2530 * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
2531 (num_positive): Likewise.
2532 (num_div_op): Likewise.
2534 2002-05-27 Neil Booth <neil@daikokuya.demon.co.uk>
2536 * c-common.c (c_common_init): Always use intmax_t.
2538 2002-05-27 Neil Booth <neil@daikokuya.demon.co.uk>
2540 * c-common.c (c_common_init): Use intmax_t for now.
2542 2002-05-24 Andrew Haley <aph@redhat.com>
2544 * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
2545 if T is a boolean type.
2547 2002-05-27 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2549 * basic-block.h (last_basic_block): Defined as synonym for
2551 * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
2552 flow_depth_first_order_compute, flow_preorder_transversal_compute,
2553 flow_dfs_compute_reverse_init): Replaced relevant occurences of
2554 n_basic_blocks with last_basic_block.
2555 * cfgbuild.c (make_edges): Likewise.
2556 * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
2557 * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
2558 * combine.c (combine_instructions): Likewise.
2559 * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
2560 iterative_dataflow_bitmap): Likewise.
2561 * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
2562 calc_idoms, idoms_to_doms): Likewise.
2563 * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
2565 * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
2566 compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
2567 one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
2568 one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
2569 delete_null_pointer_checks, compute_code_hoist_vbeinout,
2570 hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
2571 compute_store_table, build_store_vectors): Likewise.
2572 * haifa-sched.c (sched_init): Likewise.
2573 * ifcvt.c (if_convert): Likewise.
2574 * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
2575 pre_edge_lcm, compute_available, compute_nearerout,
2576 compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
2578 * predict.c (estimate_probability, process_note_prediction,
2579 note_prediction_to_br_prob): Likewise.
2580 * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
2581 * recog.c (split_all_insns, peephole2_optimize): Likewise.
2582 * regrename.c (copyprop_hardreg_forward): Likewise.
2583 * resource.c (init_resource_info): Likewise.
2584 * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
2585 init_regions, schedule_insns): Likewise.
2586 * ssa-ccp.c (ssa_const_prop): Likewise.
2587 * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
2588 * ssa.c (compute_dominance_frontiers,
2589 compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
2591 * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
2592 * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
2595 Mon May 27 14:28:12 CEST 2002 Jan Hubicka <jh@suse.cz>
2597 * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
2599 * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
2600 hoist_insn_after, hoist_insn_to_edge): New.
2602 Mon May 27 12:14:02 CEST 2002 Jan Hubicka <jh@suse.cz>
2604 * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
2605 (PROP_FINAL): Include.
2606 * flow.c (life_analysis, update_life_info,
2607 init_propagate_block_info, mark_set_1, mark_used_rgs):
2608 Support SCAN_DEAD_STORE.
2610 2002-05-27 Neil Booth <neil@daikokuya.demon.co.uk>
2612 * c-common.c (c_common_init): Set CPP arithmetic precision.
2613 * cppexp.c (cpp_num_part): Move typedef ...
2614 * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
2615 * cppinit.c (cpp_create_reader): Default to host long arithmetic.
2616 (sanity_checks): Update.
2618 2002-05-26 Geoffrey Keating <geoffk@redhat.com>
2620 * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
2621 (mkheaders): New rule.
2622 (install-mkheaders): New rule.
2623 * configure.in (all_outputs): Add mkheaders.
2624 * configure: Regenerate.
2625 * mkheaders.in: New file.
2627 2002-05-26 Jakub Jelinek <jakub@redhat.com>
2629 * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
2631 2002-05-26 Andreas Jaeger <aj@suse.de>
2633 * cfg.c (dump_flow_info): Remove extra argument to fprintf.
2635 2002-05-26 Neil Booth <neil@daikokuya.demon.co.uk>
2637 * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
2638 right_shift): Remove.
2639 (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
2641 (struct op): Use cpp_num.
2642 (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
2643 num_part_mul, num_unary_op, num_binary_op, num_negate,
2644 num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
2645 num_div_op, num_lshift, num_rshift, append_digit): New.
2646 (interpret_number, parse_defined, eval_token, reduce): Update
2647 for two-integer arithmetic.
2648 (binary_handler): New typedef.
2650 (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
2651 (_cpp_parse_expr, reduce): Update to handle two-integers.
2652 * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
2654 2002-05-26 Marek Michalkiewicz <marekm@amelek.gda.pl>
2656 * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
2657 * config/avr/avr.c (jump_over_one_insn_p): Take length of the
2658 branch insn into account, do not assume 1.
2659 (avr_out_sbxx_branch): New function. Optimize cases of skipping
2660 over single word insn. Handle upper half of I/O space too.
2661 * config/avr/avr.md (*sbrx_branch): Use it.
2662 (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
2663 (*sbix_branch, *sbix_branch_bit7): Likewise.
2664 (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
2665 Use RTL peepholes to optimize register operand sign tests.
2667 2002-05-26 Marek Michalkiewicz <marekm@amelek.gda.pl>
2669 * config/avr/avr.c (avr_asm_only_p): New variable.
2670 (avr_override_options): Set it here if AVR1.
2671 (asm_file_start): Test it here, report an error if set.
2673 2002-05-26 Kazu Hirata <kazu@cs.umass.edu>
2675 * alias.c: Fix formatting.
2676 * attribs.c: Likewise.
2677 * bb-reorder.c: Likewise.
2678 * bitmap.c: Likewise.
2679 * bitmap.h: Likewise.
2680 * builtins.c: Likewise.
2682 Sun May 26 14:00:44 CEST 2002 Jan Hubicka <jh@suse.cz>
2684 * reload.c (find_valid_class): Accept new argument DEST,
2685 choose class accordingly.
2686 (push_reload): Update callers.
2688 2002-05-26 Andreas Jaeger <aj@suse.de>
2690 * combine.c (combine_instructions): Do not indent #if for
2693 2002-05-25 Richard Henderson <rth@redhat.com>
2695 * c-pragma.c (apply_pragma_weak): Convert value identifier to
2696 string for decl_attributes.
2697 (handle_pragma_weak): Call assemble_alias if we're modifying
2700 2002-05-25 Richard Henderson <rth@redhat.com>
2703 * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
2704 using rtl instead of fprintf.
2705 * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
2706 * config/sparc/sparc-protos.h: Update.
2708 2002-05-25 Neil Booth <neil@daikokuya.demon.co.uk>
2710 * Makefile.in (C_COMMON_H): Fix.
2711 Update other targets.
2712 * c-common.c: Don't include c-lex.h.
2713 (builtin_define_with_value): Make static and prototype.
2714 (builtin_define_std): Move from c-lex.h.
2715 * c-common.h (init_c_lex): Move from c-lex.h.
2716 * c-decl.c: Don't include c-lex.h.
2717 (make_pointer_declarator): Move from c-parse.in.
2718 * c-lex.c: Don't include c-lex.h.
2720 * c-parse.in: Don't include c-lex.h; include c-pragma.h.
2721 (make_pointer_declarator): Move to c-decl.c.
2722 * c-pragma.c: Don't include c-lex.h.
2723 * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
2724 * c-tree.h (make_pointer_declarator): New.
2726 * passes.texi, tm.texi: Update.
2728 * Make-lang.in: Update and correct.
2729 * objc-act.c: Don't include c-lex.h or cpplib.h.
2731 * treetree.c: Don't include c-lex.h.
2733 * darwin-c.c: Don't include c-lex.h.
2734 * c4x/c4x-c.c: Don't include c-lex.h.
2735 * c4x/t-c4x: Update.
2736 * i370/i370-c.c: Don't include c-lex.h.
2737 * i370/t-i370: Update.
2738 * i960/i960-c.c: Don't include c-lex.h.
2739 * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
2740 * i960/t-960bare: Update.
2741 * i960/t-vxworks: Update.
2742 * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
2743 * rs6000/t-darwin: Update.
2744 * rs6000/t-rs6000-c-rule: Update.
2745 * v850/v850-c.c: Don't include c-lex.h.
2746 * v850/v850.c: Don't include c-lex.h or cpplib.h.
2749 2002-05-25 Kazu Hirata <kazu@cs.umass.edu>
2751 * tree.def: Fix typos.
2752 * doc/install.texi: Likewise.
2754 2002-05-25 Richard Henderson <rth@redhat.com>
2756 * configure.in (HAVE_AS_TLS): Add ia64 test.
2757 * configure: Rebuild.
2758 * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
2759 (override_options): Set it.
2760 (TARGET_HAVE_TLS): New.
2761 (sdata_symbolic_operand): Look for 's'.
2762 (tls_symbolic_operand): New.
2763 (ia64_expand_load_address): Abort for tls symbols.
2764 (gen_tls_get_addr): New.
2765 (gen_thread_pointer): New.
2766 (ia64_expand_move): Split out from movdi. Handle tls symbols.
2767 (rtx_needs_barrier): Add new unspecs.
2768 (ia64_encode_section_info): Handle tls symbols.
2769 (ia64_strip_name_encoding): Strip two encoding chars.
2770 * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
2771 (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
2772 (TARGET_OPTIONS): Add tls-size.
2773 (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
2774 * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
2775 UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
2776 (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
2777 (movsf, movdf): Likewise.
2778 (movdi_symbolic): Use match_scratch. Don't split if we won't
2779 have a scratch availiable.
2780 (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
2781 add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
2782 load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
2783 * config/ia64/ia64-protos.h: Update.
2784 * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
2785 sdata_symbolic_operand.
2786 (ASM_OUTPUT_LABELREF): Strip two characters.
2788 2002-05-25 Kazu Hirata <kazu@cs.umass.edu>
2790 * combine.c (simplify_set): Remove an unnecessary subreg.
2792 2002-05-25 Marek Michalkiewicz <marekm@amelek.gda.pl>
2794 * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
2796 * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
2798 2002-05-25 Gabriel Dos Reis <gdr@codesourcery.com>
2800 * toplev.c (output_clean_symbol_name): Fix another thinko. Gosh.
2802 2002-05-25 Roger Sayle <roger@eyesopen.com>
2804 * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
2805 (cond (compare x y) 0) into the equivalent (cond x y).
2807 2002-05-25 Gabriel Dos Reis <gdr@codesourcery.com>
2809 * toplev.c (output_clean_symbol_name): Use xstrdup. Fix thinko.
2811 2002-05-24 Zack Weinberg <zack@codesourcery.com>
2813 * config.gcc: Remove all stanzas for previously obsoleted
2814 systems. Where necessary, add explicit error stanzas to
2815 prevent removed systems from being misidentified as something
2816 else. Begin a fresh obsoletions list, with the systems that
2817 were reprieved last round.
2818 * doc/install.texi: Remove all mention of dead targets.
2819 * fixinc/mkfixinc.sh: Likewise.
2821 * config/arm/arm.h: Bit 31 of target_flags is no longer
2824 * config/1750a/1750a-protos.h, config/1750a/1750a.c,
2825 config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
2826 config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
2827 config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
2828 config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
2829 config/alpha/osf12.h, config/alpha/osf2or3.h,
2830 config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
2831 config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
2832 config/clipper/clipper-protos.h, config/clipper/clipper.c,
2833 config/clipper/clipper.h, config/clipper/clipper.md,
2834 config/clipper/clix.h, config/convex/convex-protos.h,
2835 config/convex/convex.c, config/convex/convex.h,
2836 config/convex/convex.md, config/convex/fixinc.convex,
2837 config/convex/proto.h, config/elxsi/elxsi-protos.h,
2838 config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
2839 config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
2840 config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
2841 config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
2842 config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
2843 config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
2844 config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
2845 config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
2846 config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
2847 config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
2848 config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
2849 config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
2850 config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
2851 config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
2852 config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
2853 config/m68k/altos3068.h, config/m68k/apollo68.h,
2854 config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
2855 config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
2856 config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
2857 config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
2858 config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
2859 config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
2860 config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
2861 config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
2862 config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
2863 config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
2864 config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
2865 config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
2866 config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
2867 config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
2868 config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
2869 config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
2870 config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
2871 config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
2872 config/mips/dec-osf1.h, config/mips/elflorion.h,
2873 config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
2874 config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
2875 config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
2876 config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
2877 config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
2878 config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
2879 config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
2880 config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
2881 config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
2882 config/ns32k/pc532-min.h, config/ns32k/pc532.h,
2883 config/ns32k/sequent.h, config/ns32k/tek6000.h,
2884 config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
2885 config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
2886 config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
2887 config/sparc/rtems.h, config/we32k/we32k-protos.h,
2888 config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
2891 2002-05-24 Richard Henderson <rth@redhat.com>
2893 * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
2894 * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
2895 * config/i386/i386.c (tls_model_chars): Add leading space.
2896 (tls_symbolic_operand): Don't bias by 1.
2897 (legitimize_address): Don't unbias by 1.
2899 2002-05-24 Toshiyasu Morita <toshiyasu.morita@hsa.hitachi.com>
2901 * lcm.c (optimize_mode_switching): Change bb used as indices
2904 2002-05-24 Richard Henderson <rth@redhat.com>
2906 * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
2907 of update_life_info_in_dirty_blocks.
2909 2002-05-24 Jakub Jelinek <jakub@redhat.com>
2912 * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
2914 2002-05-24 Neil Booth <neil@daikokuya.demon.co.uk>
2916 PR preprocessor/6780
2917 * cppmacro.c (enter_macro_context): Clear state.angled_headers.
2919 2002-05-24 Jim Blandy <jimb@redhat.com>
2921 * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
2922 entry with a type code of zero, marking the end of the compilation
2925 2002-05-24 Richard Henderson <rth@redhat.com>
2927 * varasm.c (asm_output_bss): Always output one byte.
2928 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2930 2002-05-24 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2932 * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
2935 2002-05-24 Andreas Jaeger <aj@suse.de>
2937 * ggc-page.c (alloc_page): Cast variables of type size_t to
2938 unsigned long, adjust printf format string.
2939 (ggc_alloc): Likewise.
2940 (ggc_print_statistics): Likewise.
2941 (ggc_print_statistics): Correct printf format string for SCALE to
2944 2002-05-24 Danny Smith <dannysmith@users.sourceforge.net>
2946 * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
2948 2002-05-23 Gabriel Dos Reis <gdr@codesourcery.com>
2949 Zack Weinberg <zack@codesourcery.com>
2951 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
2953 * dwarf2out.c (lookup_filename): Properly quote filename in .file
2954 directive in assembly file.
2955 * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
2956 * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
2957 * config/pj/pj.h (ASM_FILE_START): Likewise.
2958 * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
2959 * config/avr/avr.c (asm_file_end): Likewise.
2960 * toplev.c (output_quoted_string): Handle possibly signed plain
2962 * toplev.h (output_clean_symbol_name): Declare
2963 * toplev.c (output_clean_symbol_name): Define.
2964 * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
2965 * config/1750a/1750a.h (ASM_FILE_START): Likewise.
2967 2002-05-24 Alan Modra <amodra@bigpond.net.au>
2969 * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
2971 2002-05-23 Vladimir Makarov <vmakarov@redhat.com>
2973 * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
2974 of size of unsigned.
2976 2002-05-23 Richard Henderson <rth@redhat.com>
2978 * configure.in (HAVE_AS_TLS): New test.
2979 * config.in, configure: Rebuild.
2980 * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
2981 (ix86_tls_dialect_string, ix86_tls_dialect): New.
2982 (override_options): Set it.
2983 (tls_model_chars, tls_symbolic_operand): New.
2984 (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
2985 (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
2986 (local_exec_symbolic_operand): New.
2987 (get_pic_label_name): Merge into output_set_got.
2988 (ix86_asm_file_end): Emit pic_label_name if defined.
2989 (legitimate_constant_p, constant_address_p): New.
2990 (legitimate_pic_operand_p): New.
2991 (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
2992 (legitimate_address_p): Likewise.
2993 (ix86_encode_section_info): Rename from i386_; handle tls decls.
2994 (ix86_strip_name_encoding): New.
2995 (get_thread_pointer): New.
2996 (legitimize_address): Handle tls symbols.
2997 (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
2999 (struct machine_function): Add some_ld_name.
3000 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
3001 (print_operand) [&]: Use it. Handle UNSPEC_TP.
3002 (output_addr_const_extra): New.
3003 (maybe_get_pool_constant): New.
3004 (ix86_split_to_parts): Use it.
3005 (ix86_expand_move): Handle tls symbols.
3006 (ix86_tls_get_addr): New.
3007 * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
3008 (TARGET_OPTIONS): Add tls-dialect.
3009 (CONSTANT_ADDRESS_P): Use new out-of-line function.
3010 (LEGITIMATE_CONSTANT_P): Likewise.
3011 (LEGITIMATE_PIC_OPERAND_P): Likewise.
3012 (TARGET_STRIP_NAME_ENCODING): New.
3013 (ASM_OUTPUT_LABELREF): New.
3014 (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
3015 (OUTPUT_ADDR_CONST_EXTRA): New.
3016 (PREDICATE_CODES): Update.
3017 (ix86_tls_dialect, ix86_tls_dialect_string): New.
3018 * config/i386/i386.md: Regroup and renumber unspec constants.
3019 (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
3020 (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
3021 (tls_global_dynamic, tls_local_dynamic_base): New.
3022 (tls_local_dynamic_once): New.
3023 * config/i386/i386-protos.h: Update.
3025 2002-05-23 Richard Henderson <rth@redhat.com>
3027 * genemit.c (gen_insn): Print file:lineno comment before function.
3029 * gensupport.c (struct queue_elem): Add filename member.
3030 (queue_pattern): Initialize it; update all callers.
3031 (process_include): Don't free filename.
3032 (read_md_rtx): Set read_rtx_filename.
3034 2002-05-23 Hans Boehm <Hans_Boehm@hp.com>
3036 * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
3038 2002-05-23 Richard Henderson <rth@redhat.com>
3040 * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
3042 2002-05-23 Richard Henderson <rth@redhat.com>
3044 * doc/extend.texi (C++98 Thread-Local Edits): Update with
3045 commentary from Mark.
3047 2002-05-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3049 * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
3050 Use FOR_EACH_BB macros to iterate over basic block chain.
3051 * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
3052 alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
3054 * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
3055 find_unreachable_blocks, create_edge_list, verify_edge_list,
3056 remove_fake_edges, add_noreturn_fake_exit_edges,
3057 flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
3059 * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
3060 find_sub_basic_blocks): Likewise.
3061 * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
3063 * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
3065 * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
3067 * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
3068 commit_edge_insertions, commit_edge_insertions_watch_calls,
3069 print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
3070 * combine.c (combine_instructions, reg_dead_at_p): Likewise.
3071 * conflict.c (conflict_graph_compute): Likewise.
3072 * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
3073 df_modified_p, df_refs_unlink, df_dump): Likewise.
3074 * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
3075 * final.c (compute_alignments): Likewise.
3076 * flow.c (update_life_info, update_life_info_in_dirty_blocks,
3077 delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
3078 count_or_remove_death_notes): Likewise.
3079 * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
3080 compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
3081 classic_gcse, compute_transp, cprop, compute_pre_data,
3082 compute_transpout, invalidate_nonnull_info,
3083 delete_null_pointer_checks_1, delete_null_pointer_checks,
3084 compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
3085 compute_store_table, build_store_vectors, store_motion): Likewise.
3086 * global.c (global_conflicts, mark_elimination): Likewise.
3087 * graph.c (print_rtl_graph_with_bb): Likewise.
3088 * haifa-sched.c (sched_init): Likewise.
3089 * ifcvt.c (if_convert): Likewise.
3090 * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
3091 compute_available, compute_nearerout, compute_rev_insert_delete,
3092 optimize_mode_switching): Likewise.
3093 * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
3094 * predict.c (estimate_probability, note_prediction_to_br_prob,
3095 propagate_freq, counts_to_freqs, expensive_function_p,
3096 estimate_bb_frequencies): Likewise.
3097 * profile.c (instrument_edges, get_exec_counts,
3098 compute_branch_probabilities, compute_checksum, branch_prob,
3099 find_spanning_tree): Likewise.
3100 * recog.c (split_all_insns, peephole2_optimize): Likewise.
3101 * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
3103 * regclass.c (scan_one_insn, regclass): Likewise.
3104 * regmove.c (mark_flags_life_zones, regmove_optimize,
3105 record_stack_memrefs): Likewise.
3106 * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
3107 * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
3108 * resource.c (find_basic_block): Likewise.
3109 * sched-ebb.c (schedule_ebbs): Likewise.
3110 * sched-rgn.c (is_cfg_nonregular, build_control_flow,
3111 find_single_block_region, find_rgns, schedule_insns)
3112 * sibcall.c (optimize_sibling_and_tail_recursive_call)
3113 * ssa-ccp.c (optimize_unexecutable_edges,
3114 ssa_ccp_df_delete_unreachable_insns): Likewise.
3115 * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
3116 * ssa.c (find_evaluations, compute_dominance_frontiers_1,
3117 rename_block, convert_to_ssa, compute_conservative_reg_partition,
3118 compute_coalesced_reg_partition, rename_equivalent_regs,
3119 convert_from_ssa): Likewise.
3120 * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
3121 process_for_unwind_directive): Likewise.
3123 * df.c (FOR_ALL_BBS): Removed.
3124 * gcse.c (struct null_pointer_info): Type of current_block field
3126 (struct reg_avail_info): Type of last_bb field changed.
3127 * config/ia64/ia64.c (block_num): Removed.
3128 (need_copy_state): Type changed.
3131 2002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
3133 * cppinit.c (mark_named_operators): Split out from init_builtins.
3134 (cpp_finish_options): Call it from here instead.
3136 2002-05-23 Jason Thorpe <thorpej@wasabisystems.com>
3138 * builtin-attrs.def: Update copyright years.
3139 (ATTR_NONNULL): New attribute identifier.
3140 (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
3141 attribute tree lists.
3142 (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
3144 (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
3145 (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
3146 attribute lists. Chain the appropriate nonnull attribute.
3147 * c-format.c (check_format_arg): Remove null format string
3149 * testsuite/gcc.dg/format/null-1.c: New test.
3151 2002-05-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3153 * Makefile.in (ADAC): Define.
3155 (.SUFFIXES): Move before language makefile fragments.
3156 (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
3158 2002-05-23 Mark Mitchell <mark@codesourcery.com>
3160 * varasm.c (make_decl_rtl): Don't allow weak variables to be
3163 Thu May 23 19:43:41 CEST 2002 Jan Hubicka <jh@suse.cz>
3165 * cfg.c (dump_flow_info): Print results of
3166 maybe_hot/probably_never_executed predicates.
3167 * toplev.c (open_dump_file): Print function frequency.
3169 2002-05-23 David S. Miller <davem@redhat.com>
3171 * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
3174 2002-05-23 Jason Thorpe <thorpej@wasabisystems.com>
3176 * c-common.c (warn_nonnull): Declare.
3177 (c_common_attribute_table): Add "nonnull" attribute.
3178 (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
3179 check_nonnull_arg, get_nonnull_operand, check_function_arguments,
3180 check_function_arguments_recurse): New functions.
3181 * c-common.h (warn_nonnull): Declare extern.
3182 (check_function_arguments, check_function_arguments_recurse): New
3184 * c-decl.c (c_decode_option): Add -Wnonnull option.
3185 * c-format.c (set_Wformat): Set warn_nonnull if enabling
3187 (format_check_context): New structure.
3188 (check_format_info_recurse): Remove recursion and rename to...
3189 (check_format_arg): ...this. Update comment.
3190 (check_format_info): Use check_function_arguments_recurse.
3191 * c-typeck.c (build_function_call): Call check_function_arguments
3192 instead of check_function_format.
3193 * doc/extend.texi: Document "nonnull" attribute.
3194 * doc/invoke.texi: Docuemnt -Wnonnull option.
3195 * testsuite/gcc.dg/nonnull-1.c: New test.
3196 * testsuite/gcc.dg/nonnull-2.c: New test.
3198 2002-05-23 David S. Miller <davem@redhat.com>
3200 * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
3201 * cfgcleanup.c (cleanup_cfg): If it is set do not
3202 attempt to delete trivially dead insns.
3203 * except.c (finish_eh_generation): Pass it to cleanup_cfg.
3204 * toplev.c (rest_of_compilation): Document non-trivial aspect
3205 the RTL before optimize_save_area_alloca is run.
3207 2002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
3209 * c-lex.c (indent_level): Remove.
3210 (cb_file_change, c_lex): Remove indent level handling.
3211 * c-lex.h (indent_level): Remove.
3212 * input.h (struct file_stack): Remove indent_level.
3213 * toplev.c (push_srcloc): Remove indent_level handling.
3215 2002-05-23 Jakub Jelinek <jakub@redhat.com>
3218 * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
3219 of x in constraints for clarity.
3220 (sse_mov?fcc split): abort if op2 == op3.
3221 (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
3222 sse_movsfcc_const0_4): Add earlyclobber.
3223 (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
3224 sse_movdfcc_const0_4): Likewise. Use DFmode, not SFmode.
3225 Use Y instead of x in constraints.
3227 2002-05-23 Richard Henderson <rth@redhat.com>
3229 * doc/extend.texi (C99 Thread-Local Edits): New subsection.
3230 (C++98 Thread-Local Edits): New subsection.
3232 * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
3233 (ix86_arch): Set type to enum processor_type.
3235 * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
3236 LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
3238 2002-05-23 Jakub Jelinek <jakub@redhat.com>
3240 * configure.in: Fix as version test for binutils 2.12.1 releases
3242 * configure: Rebuilt.
3244 2002-05-23 Richard Henderson <rth@redhat.com>
3246 * config/i386/i386.c (get_pic_label_name): New.
3247 (load_pic_register): Remove.
3248 (output_set_got): New.
3249 (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
3250 * config/i386/i386.md (UNSPEC_SET_GOT): New.
3251 (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
3252 (prologue_set_got, prologue_get_pc): Remove.
3253 (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
3254 (builtin_setjmp_receiver): Use gen_set_got.
3255 * config/i386/i386-protos.h: Update.
3257 Thu May 23 09:22:23 CEST 2002 Jan Hubicka <jh@suse.cz>
3259 * gcse.c (hash_expr): Do not use alias set for hashing.
3261 2002-05-22 Kevin Buettner <kevinb@redhat.com>
3263 * dbxout.c (dbxout_class_name_qualifiers): New function.
3264 (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
3266 2002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
3268 * cpperror.c (_cpp_begin_message): No special casing
3270 * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
3271 (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
3272 * cpplib.c (do_include_common): Use DL_ERROR.
3273 * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
3275 * fix-header.c (read_scan_file): Update.
3277 2002-05-22 Richard Henderson <rth@redhat.com>
3279 * config/i386/i386.c (ix86_expand_call): New function, extracted
3280 from md call patterns. Add pic_offset_table_rtx to
3281 CALL_INSN_FUNCTION_USAGE when needed.
3282 * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
3283 (call_value_pop, call_value, untyped_call): Likewise.
3284 (call_exp, call_value_exp): Remove.
3285 * config/i386/i386-protos.h: Update.
3287 2002-05-22 Richard Henderson <rth@redhat.com>
3289 * varasm.c (default_section_type_flags): Check for VAR_DECL
3290 before using DECL_THREAD_LOCAL.
3292 2002-05-22 David Edelsohn <edelsohn@gnu.org>
3294 * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
3295 (STARTFILE_SPEC): Delete PE crt0.o.
3296 * config/rs6000/aix51.h: Same.
3297 * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
3298 * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
3299 function descriptor symbol. Use RS6000_OUTPUT_BASENAME.
3300 (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
3301 * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
3303 2002-05-22 Richard Henderson <rth@redhat.com>
3305 * varasm.c (default_section_type_flags): Handle tls data and
3307 (default_unique_section): Handle tls sections.
3309 2002-05-23 Alan Modra <amodra@bigpond.net.au>
3311 * configure.in (CROSS): Define NATIVE_CROSS.
3312 * configure: Regenerate.
3313 * gcc.c (STARTFILE_PREFIX_SPEC): Define.
3314 (startfile_prefix_spec): New var.
3315 (static_specs): Add startfile_prefix_spec.
3316 (do_spec_2): Split out from..
3318 (main): Process startfile_prefix_spec.
3319 * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
3321 (STARTFILE_PREFIX_SPEC): Define.
3322 (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
3325 2002-05-22 Kazu Hirata <kazu@cs.umass.edu>
3327 * cpperror.c: Fix formatting.
3328 * cppexp.c: Likewise.
3329 * cppfiles.c: Likewise.
3330 * cpphash.c: Likewise.
3331 * cpphash.h: Likewise.
3332 * cppinit.c: Likewise.
3333 * cpplex.c: Likewise.
3334 * cpplib.c: Likewise.
3335 * cppmacro.c: Likewise.
3336 * cppmain.c: Likewise.
3337 * cppspec.c: Likewise.
3339 2002-05-22 Jakub Jelinek <jakub@redhat.com>
3341 * combine.c (force_to_mode): Use gen_int_mode.
3342 Don't clear CONST_INT bits outside of mode.
3344 2002-05-22 Richard Henderson <rth@redhat.com>
3346 * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
3347 * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3349 2002-05-22 Jakub Jelinek <jakub@redhat.com>
3352 * emit-rtl.c (widen_memory_access): Only call compare_tree_int
3353 if DECL_SIZE_UNIT is INTEGER_CST.
3355 2002-05-22 Richard Henderson <rth@redhat.com>
3357 * flow.c (life_analysis): Delete broken reg_label check.
3359 2002-05-22 Richard Henderson <rth@redhat.com>
3361 * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
3362 * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3364 Wed May 22 18:39:57 2002 J"orn Rennecke <joern.rennecke@superh.com>
3366 * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
3367 (embed-bb.c): New rule.
3368 * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
3369 * config/sh/embed_bb.c: Delete.
3371 Wed May 22 18:25:29 2002 J"orn Rennecke <joern.rennecke@superh.com>
3373 * c-common.c (cb_register_builtins): Don't indent '#' of #define.
3375 2002-05-22 Kazu Hirata <kazu@cs.umass.edu>
3377 * config/h8300/h8300.md (*andorqi3): New.
3379 2002-05-22 Neil Booth <neil@daikokuya.demon.co.uk>
3381 PR preprocessor/6517
3382 * Makefile.in: Update.
3383 * c-common.c (c_common_post_options): Add preprocessor
3384 errors to the error count.
3385 * c-lang.c (c_post_options): Kill.
3386 (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
3387 * hooks.h: Add header guards.
3388 * langhooks-def.h: Include hooks.h.
3389 (LANG_HOOKS_POST_OPTIONS): Update.
3390 * langhooks.h (struct lang_hooks): Update post_options.
3391 * toplev.c (parse_options_and_default_flags): Update.
3393 * objc-lang.c (objc_post_options): Kill.
3394 (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
3396 2002-05-21 Bruce Korb <bkorb@gnu.org>
3398 * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
3399 * fixinc/inclhack.def(thread_keyword): use c_fix = format.
3400 * fixinc/fixincl.x: regen.
3402 2002-05-21 Kazu Hirata <kazu@cs.umass.edu>
3404 * cfgbuild.c: Fix formatting.
3406 * cfgcleanup.c: Likewise.
3407 * cfglayout.c: Likewise.
3408 * cfgloop.c: Likewise.
3409 * cfgrtl.c: Likewise.
3411 2002-05-21 Richard Henderson <rth@redhat.com>
3413 * c-common.h (enum rid): Add RID_THREAD.
3414 * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
3415 (grokdeclarator): Grok __thread.
3416 * c-parse.in (reswords): Add __thread.
3417 (rid_to_yy): Add RID_THREAD.
3419 * tree.h (DECL_THREAD_LOCAL): New.
3420 (struct tree_decl): Add thread_local_flag.
3421 * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
3422 * tree.c (staticp): TLS variables are not static.
3424 * target-def.h (TARGET_HAVE_TLS): New.
3425 * target.h (have_tls): New.
3426 * output.h (SECTION_TLS): New.
3427 * varasm.c (assemble_variable): TLS variables can't be common for now.
3428 (default_section_type_flags): Handle .tdata and .tbss.
3429 (default_elf_asm_named_section): Handle SECTION_TLS.
3430 (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
3432 * flags.h (flag_tls_default): Declare.
3433 * toplev.c (flag_tls_default): Define.
3434 (display_help): Display help for it.
3435 (decode_f_option): Set it.
3437 * doc/extend.texi (Thread-Local): New node describing language-level
3438 thread-local storage.
3439 * doc/invoke.texi (-ftls-model): Document.
3441 * fixinc/inclhack.def (thread_keyword): New.
3442 * fixinc/fixincl.x: Rebuild.
3444 2002-05-21 Jeffrey A Law <law@redhat.com>
3446 * optabs.c (expand_binop): For double-word integer multiplies,
3447 do not compute intermediate results into something that is
3448 not a register (such as a SUBREG or MEM).
3450 * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
3451 (ix86_sched_reorder): Make sure to initialize scheduling
3452 data even when there's only one insn in the ready queue.
3454 2002-05-21 Vladimir Makarov <vmakarov@redhat.com>
3456 * genautomata.c (reserv_sets_hash_value): Fix a typo.
3458 2002-05-21 Vladimir Makarov <vmakarov@redhat.com>
3460 * genautomata.c (reserv_sets_hash_value): Define hash_value as
3461 set_el_t. Transform the hash value into unsigned.
3462 (output_cycle_reservs): Fix bug with output of repeated `nothing'.
3463 (transform_3): Add code to process `(A,B)+(D,E)'.
3465 2002-05-21 NIIBE Yutaka <gniibe@m17n.org>
3467 * reload1.c (do_output_reload): Run delete_output_reload
3470 2002-05-21 Roger Sayle <roger@eyesopen.com>
3473 * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
3474 larger than INTEGER_CST. (store_by_pieces_1): Use it here...
3475 (can_store_by_pieces): ... and here to limit the largest mode used.
3476 Add a comment to document this function.
3478 2002-05-21 Richard Henderson <rth@redhat.com>
3480 * flow.c (life_analysis): Fix test for deleted label.
3482 2002-05-21 Neil Booth <neil@daikokuya.demon.co.uk>
3484 * doc/tm.texi: Fix typo.
3486 2002-05-21 Zack Weinberg <zack@codesourcery.com>
3488 * c-common.c (c_common_init): Set options->unsigned_char from
3490 (cb_register_builtins): Define __STRICT_ANSI__ and
3491 __CHAR_UNSIGNED__ here...
3492 * cppinit.c (init_builtins): Not here.
3493 (cpp_create_reader): unsigned_char option defaults to 0, not
3494 !DEFAULT_SIGNED_CHAR.
3495 (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
3496 and -funsigned-char.
3498 * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
3499 * cpphash.c (_cpp_init_hashtable): Don't set it.
3500 * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
3501 directly. Clarify comment.
3503 2002-05-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3505 * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
3506 neighbouring basic blocks. Use ENTRY_BLOCK_PTR->next_bb instead of
3507 BASIC_BLOCK (0). Use EXIT_BLOCK_PTR->prev_bb instead of
3508 BASIC_BLOCK (n_basic_blocks - 1).
3509 * cfganal.c (can_fallthru, flow_call_edges_add,
3510 flow_preorder_transversal_compute): Too.
3511 * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
3512 find_sub_basic_blocks): Too.
3513 * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
3514 * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
3515 fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
3516 * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
3517 * combine.c (this_basic_block): Type changed to basic_block.
3518 (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
3519 nonzero_bits, num_sign_bit_copies, get_last_value_validate,
3520 get_last_value, distribute_notes, distribute_links): Too.
3521 * final.c (compute_alignments): Too.
3522 * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
3523 * function.c (thread_prologue_and_epilogue_insns): Too.
3524 * gcse.c (compute_code_hoist_vbeinout): Too.
3525 * global.c (build_insn_chain): Too.
3526 * ifcvt.c (find_if_block, find_cond_trap): Too.
3527 * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
3528 * regmove.c (regmove_optimize): Too.
3529 * resource.c (find_basic_block): Too.
3530 * sched-ebb.c (schedule_ebbs): Too.
3531 * ssa-dce.c (find_control_dependence, find_pdom): Too.
3533 2002-05-21 Andreas Jaeger <aj@suse.de>
3535 * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
3537 2002-05-21 Richard Henderson <rth@redhat.com>
3539 * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
3540 unspec names, not numbers.
3542 2002-05-21 Joseph S. Myers <jsm28@cam.ac.uk>
3544 * doc/sourcebuild.texi: Mention snapshot-README and
3545 snapshot-index.html as needing updating for new front ends.
3547 2002-05-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3549 * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
3550 disabling checking, and avoid multiple evaluation of RTX.
3552 2002-05-21 Richard Earnshaw <rearnsha@arm.com>
3554 * bitmap.c (bitmap_find_bit): Return early if we have the correct
3557 Tue May 21 10:51:54 CEST 2002 Jan Hubicka <jh@suse.cz>
3559 * profile.c (gen_edge_profiler): Set alias set before the memory is
3562 2002-05-20 David S. Miller <davem@redhat.com>
3564 * cselib.c (max_value_regs): New.
3565 (cselib_lookup, cselib_invalidate_regno): Initialize it when
3566 adding new entries to the REG_VALUES table and we are dealing with
3568 (clear_table): Initialize it.
3569 (cselib_invalidate_regno): Use it to determine which hard
3570 registers to scan when mode is not VOIDmode.
3572 2002-05-20 Duraid Madina <duraid@fl.net.au>
3574 * tradcpp.c (fixup_newlines): Use old-style function header.
3576 2002-05-20 Krister Walfridsson <cato@df.lth.se>
3578 * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
3580 2002-05-20 H.J. Lu (hjl@gnu.org)
3582 Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
3584 * config/mips/mips.h (DFMODE_NAN): Defined.
3585 (SFMODE_NAN): Likewise.
3587 2002-05-20 Dale Johannesen <dalej@apple.com>
3589 * combine.c (cant_combine_insn_p): Back out my
3592 2002-05-20 Kazu Hirata <kazu@cs.umass.edu>
3594 * params.c: Fix formatting.
3595 * params.h: Likewise.
3596 * predict.c: Likewise.
3597 * prefix.c: Likewise.
3598 * print-rtl.c: Likewise.
3599 * print-tree.c: Likewise.
3600 * profile.c: Likewise.
3602 2002-05-20 H.J. Lu (hjl@gnu.org)
3604 * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
3606 2002-05-20 Nick Clifton <nickc@cambridge.redhat.com>
3608 * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
3609 switches straight on to the assembler, do not abbreviate them.
3610 * config/arm/elf.h (ASM_SPEC): As above.
3611 * config/arm/semi.h (ASM_SPEC): As above.
3612 * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
3613 * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
3614 -mcpu=xscale on to the assembler by default.
3615 * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
3617 2002-05-20 Richard Henderson <rth@redhat.com>
3619 * cse.c (canon_hash): Reorder do_not_record test. Always
3620 allow pic_offset_table_rtx.
3622 2002-05-19 Toon Moene <toon@moene.indiv.nluug.nl>
3624 * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
3625 (expand_binop): Ditto (3 times).
3627 2002-05-19 Mark Mitchell <mitchell@doubledemon.codesourcery.com>
3629 * Makefile.in (distclean): Remove QMTest stuff.
3630 (QMTEST_PATH): New variable.
3631 (QMTESTFLAGS): Likewise.
3632 (QMTESTRUNFLAGS): Likewise.
3634 (QMTEST_GPP_TESTS): Likewise.
3635 (QMTEST_DIR): Likewise.
3636 (QMTEST_DIR/context): New target.
3637 (qmtest-g++): Likeise.
3638 (qmtest-gui): Likewise.
3639 (QMTEST_DIR/gpp-expected.qmr): Likewise.
3641 2002-05-19 Aldy Hernandez <aldyh@redhat.com>
3643 * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
3644 an altivec register if TARGET_ALTIVEC.
3646 * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
3647 to ALTIVEC_VECTOR_MODE.
3648 (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
3649 (rs6000_va_arg): Vectors may go in registers if they are not
3652 2002-05-19 Kazu Hirata <kazu@cs.umass.edu>
3654 * protoize.c: Fix formatting.
3656 2002-05-19 Richard Henderson <rth@redhat.com>
3658 * gensupport.c (init_include_reader): Merge into ...
3659 (process_include): ... here. Simplify composite path creation.
3660 Plug memory leaks. Fix file/line number tracking. Do not
3661 process_define_cond_exec. Return void.
3662 (process_rtx): Don't check process_include return value.
3664 2002-05-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3666 * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
3668 (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
3669 traversing basic block chain.
3670 (create_basic_block_structure, create_basic_block): Declaration changed.
3671 (link_block, unlink_block): Declare.
3672 * cfg.c (entry_exit_blocks): Initialize new fields.
3673 (link_block, unlink_block): New.
3674 (expunge_block_nocompact): Unlink basic block.
3675 (dump_flow_info): Print prev_bb/next_bb fields.
3676 * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
3677 * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
3678 * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
3679 * cfgrtl.c (create_basic_block_structure, create_basic_block,
3680 split_block, force_nonfallthru_and_redirect, split_edge): Modified.
3681 (verify_flow_info): Check that list agrees with numbering.
3683 2002-05-19 Neil Booth <neil@daikokuya.demon.co.uk>
3685 * c-common.c (preprocessing_asm): New macro.
3686 * c-lex.h (builtin_define, builtin_assert): Use pfile.
3690 * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
3691 (CPP_SPEC): Simplify.
3692 (TARGET_CPU_CPP_BUILTINS): Update.
3693 * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
3694 (CPP_SPEC): Simplify.
3695 * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
3696 (TARGET_OS_CPP_BUILTINS): Update.
3697 * osf.h (CPP_XFLOAT_SPEC): Kill.
3698 (TARGET_OS_CPP_BUILTINS): Update.
3699 (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
3700 * osf5.h (CPP_XFLOAT_SPEC): Kill.
3701 * vms.h (CPP_SUBTARGET_SPEC): Kill.
3702 (TARGET_OS_CPP_BUILTINS): Update.
3704 2002-05-19 Richard Henderson <rth@redhat.com>
3706 * varasm.c (default_binds_local_p): Fix typo.
3708 2002-05-19 Marek Michalkiewicz <marekm@amelek.gda.pl>
3710 * config/avr/avr.c (machine_dependent_reorg): Sign extend the
3711 CONST_INT operand to the correct mode after adding 1 to it.
3713 2002-05-19 Mark Mitchell <mark@codesourcery.com>
3715 * config.gcc (powerpc-wrs-windiss*): New target.
3717 2002-05-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3719 * config/rs6000/rs6000.md (ashrdi3_no_power): New.
3722 2002-05-18 Mark Mitchell <mark@codesourcery.com>
3724 * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
3726 * config.in: Regenerated.
3727 * configure: Regenerated.
3729 2002-05-19 Richard Henderson <rth@redhat.com>
3731 * target-def.h (TARGET_BINDS_LOCAL_P): New.
3732 * target.h (struct gcc_target): Move boolean fields to the end.
3734 * varasm.c (default_binds_local_p): New.
3735 * output.h: Declare it.
3737 * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
3738 * config/cris/cris.c (cris_encode_section_info): Likewise.
3739 * config/i386/i386.c (i386_encode_section_info): Likewise.
3740 * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
3741 * config/sh/sh.c (sh_encode_section_info): Likewise.
3743 * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
3744 (TARGET_BINDS_LOCAL_P): New.
3746 2002-05-19 Richard Henderson <rth@redhat.com>
3748 * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
3749 FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
3750 MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
3752 * toplev.c (display_help): Kill -a -ax help.
3754 * config/1750a/1750a.h, config/alpha/alpha.h,
3755 config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
3756 config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
3757 config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
3758 (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
3760 * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
3761 * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
3763 * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
3764 (ix86_output_function_block_profiler): Kill.
3765 * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
3766 (m68hc11_function_block_profiler): Kill.
3767 * config/m68hc11/m68hc11-protos.h: Update.
3768 * config/m88k/m88k.c (output_block_profiler): Kill.
3769 (output_function_block_profiler): Kill.
3770 * config/m88k/m88k-protos.h: Update.
3772 2002-05-19 Richard Henderson <rth@redhat.com>
3774 * system.h (STRIP_NAME_ENCODING): Poison it.
3775 * output.h (STRIP_NAME_ENCODING): Remove.
3776 (default_strip_name_encoding): Declare.
3777 * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
3778 * target.h (strip_name_encoding): New.
3779 * varasm.c (default_strip_name_encoding): New.
3781 * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
3782 config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
3783 config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
3784 config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
3785 config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
3786 config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
3787 config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
3788 config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
3789 config/v850/v850.h: Use the hook, not the macro.
3791 * config/darwin-protos.h, config/darwin.c, config/darwin.h,
3792 config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
3793 config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
3794 config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
3795 config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
3796 config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
3797 config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
3798 config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
3799 config/v850/v850.c, config/v850/v850.h:
3800 Move STRIP_NAME_ENCODING to out-of-line function and add
3801 TARGET_STRIP_NAME_ENCODING.
3803 * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
3804 config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
3805 with TARGET_STRIP_NAME_ENCODING referencing existing function;
3806 make function static.
3808 * xcoffout.c: Include target.h
3809 * Makefile.in (xcoffout.o): Update.
3811 * config/avr/avr.c (avr_encode_section_info): Correct prototype.
3812 * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
3813 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
3814 reloc argument unused.
3815 * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
3817 * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
3818 STRIP_NAME_ENCODING docs.
3820 2002-05-19 Andreas Jaeger <aj@suse.de>
3822 * gengenrtl.c: Add prototype for excluded_rtx.
3824 * real.h: Add prototype for exact_real_truncate.
3826 2002-05-18 Richard Henderson <rth@redhat.com>
3828 * system.h (ENCODE_SECTION_INFO): Poison it.
3829 * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
3830 * target.h (encode_section_info): New.
3831 * varasm.c (make_decl_rtl, output_constant_def): Use it.
3832 * hooks.c (hook_tree_int_void): New.
3833 * hooks.h: Declare it.
3835 * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
3836 config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
3837 config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
3838 config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
3839 config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
3840 config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
3841 config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
3842 config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
3843 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
3844 config/mcore/mcore-protos.h, config/mcore/mcore.c,
3845 config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
3846 config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
3847 config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
3848 config/stormy16/stormy16.c, config/stormy16/stormy16.h:
3849 Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
3850 referencing existing function. Make function static.
3852 * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
3853 config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
3854 config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
3855 config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
3856 config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
3857 config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
3858 config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
3859 config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
3860 config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
3861 config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
3862 config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
3863 config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
3864 config/xtensa/xtensa.c, config/xtensa/xtensa.h:
3865 Move ENCODE_SECTION_INFO to out-of-line function and add
3866 TARGET_ENCODE_SECTION_INFO.
3868 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
3869 (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
3871 * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
3873 (switch_to_section): Replace in_rdata case with in_readonly_data.
3875 * config/h8300/h8300.c (h8300_encode_label): Make static.
3876 * config/h8300/h8300-protos.h: Update.
3878 * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
3879 from rs6000_encode_section_info; make static.
3880 (rs6000_xcoff_encode_section_info): New.
3882 * config/v850/v850.c (v850_encode_data_area): Make static.
3883 * config/v850/v850-protos.h: Update.
3885 * config/vax/vax.c: Include flags.h.
3886 (vms_select_section): Fix typo.
3888 * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
3889 ENCODE_SECTION_INFO docs.
3891 2002-05-18 Richard Henderson <rth@redhat.com>
3893 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
3894 REGISTER_TARGET_PRAGMAS.
3895 * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
3897 * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
3899 2002-05-18 Richard Henderson <rth@redhat.com>
3901 * system.h (SELECT_RTX_SECTION): Poison.
3902 * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
3903 * target.h (select_rtx_section): New.
3904 * varasm.c (output_constant_pool): Use it.
3905 (default_select_rtx_section, default_elf_select_rtx_section): New.
3906 * output.h: Declare them.
3908 * config/darwin.h (SELECT_RTX_SECTION): Move ...
3909 * config/darwin.c (machopic_select_rtx_section): ... here.
3910 * config/darwin-protos.h: Update.
3912 * config/nextstep.h (SELECT_RTX_SECTION): Move ...
3913 * config/nextstep.c (machopic_select_rtx_section): ... here.
3914 (nextstep_select_section): Rename variable to avoid macro clash.
3915 * config/nextstep-protos.h: Update.
3917 * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
3918 config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
3919 config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
3920 config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
3921 config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
3922 config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
3923 config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
3924 config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
3925 config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
3926 (SELECT_RTX_SECTION): Remove.
3928 * config/darwin.h, config/elfos.h, config/nextstep.h,
3929 config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
3930 config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
3931 config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
3932 config/sparc/lynx.h, config/xtensa/xtensa.c
3933 (TARGET_ASM_SELECT_RTX_SECTION): New.
3935 * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
3936 * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
3937 * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
3938 * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
3939 (ia64_aix_select_rtx_section): New.
3940 * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
3942 * config/mips/mips.c (mips_select_rtx_section): Make static.
3943 Support ELF SHF_MERGE features.
3944 * config/mips/mips-protos.h: Update.
3945 * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
3946 * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
3947 (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
3948 make static, fall back to default_elf_select_rtx_section.
3949 * config/rs6000/rs6000-protos.h: Update.
3950 * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
3951 * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
3952 * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.