OSDN Git Service

d6c942ab23d78583e391164ddb934768693ac1da
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
2
3 config:
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.
9
10 Wed Jun  5 15:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>
11
12         * reg-stack.c (reg_to_stack): Do not call find_basic_blocks.
13
14 2002-06-05  Alan Modra  <amodra@bigpond.net.au>
15
16         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
17
18 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
19
20         * gengtype-yacc.y: Make sure all rules end with a semicolon.
21
22 2002-06-04  Bob Wilson  <bob.wilson@acm.org>
23
24         * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
25         typo in function prototype and include "ggc.h" header.
26
27 2002-06-04  Richard Henderson  <rth@redhat.com>
28
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,
35         umulh, and cix insns.
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.
47
48 2002-06-04  Geoffrey Keating  <geoffk@redhat.com>
49
50         * gengtype.c (write_gc_root): Don't unnecessarily prevent
51         global variable-length arrays being roots.
52
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.
57
58 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
59
60 config/i386:
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!
68
69 2002-06-04  Janis Johnson  <janis187@us.ibm.com>
70
71         * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
72
73 2002-06-04  Jeff Law <law@redhat.com.
74             David Edelsohn <edelsohn@gnu.org>
75             Michael Matz <matz@kde.org>
76
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
81         scheduling group.
82         (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
83
84         * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
85         insns against the issue rate.
86
87 Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>
88
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.
100         (RANGE_*): Kill.
101
102 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
103
104         * varasm.c (mark_constants): Handle RTX format 'B'.
105
106 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
107
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.
114
115 2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>
116
117         * gbl-ctors.h: Fix formatting.
118         * gcc.c: Likewise.
119         * gccspec.c: Likewise.
120         * gcov.c: Likewise.
121         * gcov-io.h: Likewise.
122         * gcse.c: Likewise.
123         * ggc-common.c: Likewise.
124         * ggc.h: Likewise.
125         * ggc-page.c: Likewise.
126         * ggc-simple.c: Likewise.
127         * global.c: Likewise.
128         * graph.h: Likewise.
129         * gthr-dce.h: Likewise.
130         * gthr.h: Likewise.
131         * gthr-posix.h: Likewise.
132         * gthr-rtems.h: Likewise.
133         * gthr-solaris.h: Likewise.
134         * gthr-win32.h: Likewise.
135
136 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
137
138         Merge from pch-branch:
139         
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.
143
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
146         printf.
147         (write_gc_marker_routine_for_structure): Likewise.
148         (write_gc_types): Likewise.
149         (write_gc_root): Likewise.
150
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.
159
160         * final.c (insn_addresses_): Move out of ifdef.
161
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
208         deletable variables.
209         (new_cselib_val): Use GGC to allocate struct cselib_val.
210         (cselib_init): Don't set up obstacks.  Use GGC to allocate
211         hash table.
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.
220
221         * varray.c: Use only necessary headers.
222         (element_size): New.
223         (uses_ggc): New.
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
283         outside ifdefs.
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.
302
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.
313         (cpp.dvi): Likewise.
314         (gcc.dvi): Likewise.
315         (gccint.dvi): Likewise.
316         (cppinternals.dvi): Likewise.
317
318         * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
319         * doc/gccint.texi (Top): Include gty.texi.
320         * doc/gty.texi: New file.
321
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
357         to list of includes.
358
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.
364
365         * Makefile.in (explow.o): Add dependency on gt-explow.h.
366         (sdbout.o): Add dependency on gt-sdbout.h.
367
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.
388         Make static.
389         (init_obstacks): Don't call ggc_add_deletable_htab.
390
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.
418         * hash.h: Delete.
419         * hash.c: Delete.
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.
446
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
452         allocate them.
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.
458         (ggc_calloc): New.
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.
472         Process them.
473         (write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
474         option.
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.
482         (IWORD): Add size_t.
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.
489         (t2r_mark): Delete.
490         * Makefile.in (gtype-desc.o): Correct dependencies.
491         (GTFILES): Add hashtab.h.
492         (genautomata.o): Actually uses hashtab.h.
493
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 
504         dwarf2_debug_hooks.
505         * gengtype-lex.l (IWORD): Allow 'bool'.
506         (ptr_alias): Match.
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
529         anyway.
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.
549
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.
555
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.
563
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
566         not, abort.
567         * c-pragma.c: Move struct align_stack and variable alignment_stack
568         out from the ifdef.
569
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
574         to mark.
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
579         to mark.
580         * doc/tm.texi (Per-Function Data): Delete references to
581         mark_machine_status.
582         * config/ia64/ia64.c (ia64_override_options): Don't set
583         mark_machine_status.
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
608         language_function.
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.
615
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
628         creating one.
629         (new_structure): New.
630         (note_yacc_type): Use new_structure.
631         (set_gc_used_type): New.
632         (set_gc_used): 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.
640
641         * varasm.c (copy_constant): Call expand_constant if we hit
642         something we can't recognise.
643
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.
653
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.
663
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.
670
671         * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
672         ggc_mark_tree.
673         * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
674
675         * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
676
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
688         deleted fields.
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.
693
694         * ggc-callbacks.c: Remove.
695
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
706         'tree_vec' special.
707         (write_gc_types): Reset counter for each procedure written.
708
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.
712
713         * Makefile.in (cselib.o): Include gt-<filename>.h.
714         (gcse.o): Likewise.
715         (profile.o): Likewise.
716         (alias.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
739         structures.
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.
788         (gt-sh.h): Add rule.
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.
794
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
805         gt-c-parse.h.
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.
815         (startswith): New.
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.
836
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.
851
852         * gengtype.c (write_gc_structure_fields): Handle variable-length
853         TYPE_ARRAYs.
854
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.
861
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
905         routines.
906         * tree.c: Use gengtype for roots.
907         * tree.h: Use gengtype for roots.
908         * varasm.c: Use gengtype for roots.
909         
910         * Makefile.in (GTFILES): Add @all_gtfiles@.
911         * configure: Regenerate.
912         * configure.in: Construct all_gtfiles from the gtfiles definitions
913         in config-lang.in.
914         * gengtype-yacc.y (type): Warn about duplicate structure names.
915         * gengtype.c (get_output_file): Handle .c files in language
916         subdirectories.
917
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 
956         calling sequence.
957         * config/d30v/d30v.h (struct machine_function): Use gengtype.
958         * config/d30v/d30v.c (d30v_init_machine_status): Update 
959         calling sequence.
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 
968         sequence.
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 
973         sequence.
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.
979
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.
990         (init_stmt): 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.
994         (zap_lists): Delete.
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.
1028
1029         * tree.c (struct type_hash): Use gengtype.
1030         (init_obstacks): Use canonical name for type_hash_mark.
1031         (type_hash_mark): Delete.
1032         Include gt-tree.h.
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
1037         marker procedure.
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.
1053
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.
1063         (GTFILES): New.
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
1072         gt-except.h.
1073         * expr.c (mark_expr_status): Delete.
1074         * function.c: Use gengtype for various structures.  Include
1075         gt-function.h.
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
1086         gt-integrate.h.
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
1090         gt-stmt.h.
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.
1102
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
1109         language_function.
1110
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
1129         machine_function.
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
1139         machine_function.
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
1144         machine_function.
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.
1153
1154         * varasm.c (compare_constant): Fix typo.
1155
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.
1183
1184         * ggc-common.c (ggc_realloc): Handle X being NULL.
1185
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
1192         subarrays.
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.
1202
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.
1214
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.
1221
1222         * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
1223         'struct rtvec_def *', not 'struct rtvec_def'.
1224
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.
1228
1229 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
1230
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
1235         default target.
1236         (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
1237         TARGET_VERSION_CPU.
1238         (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
1239         if TARGET_SHMEDIA64.
1240         (LINK_DEFAULT_CPU_EMUL): Define according to the
1241         default target.
1242         (SUBTARGET_LINK_EMUL_SUFFIX): Define.
1243         (SUBTARGET_LINK_SPEC): Define.
1244         (LINK_SPEC): Use SH_LINK_SPEC.
1245         (ASM_SPEC): Remove.
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.
1252
1253 2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
1254             Richard Henderson  <rth@redhat.com>
1255
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.
1283
1284 2002-06-03  Richard Henderson  <rth@redhat.com>
1285
1286         * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
1287         USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
1288
1289 2002-06-03  Richard Henderson  <rth@redhat.com>
1290
1291         * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
1292
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.
1300
1301 2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
1302
1303         * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
1304
1305 2002-06-03  Roger Sayle  <roger@eyesopen.com>
1306
1307         * gcse.c (cprop_jump): Use single_set to get the pattern
1308         from the setcc argument.
1309
1310 2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>
1311
1312         * diagnostic.h (diagnostic_count): Move from output_buffer to 
1313         diagnostic_context.
1314         (diagnostic_kind_count): Adjust definition.
1315
1316 Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
1317
1318         * except.c (except.c): Do not rebuild CFG.
1319         * toplev.c (rest_of_compilation): Recompute CFG after sibcall
1320         optimization.
1321
1322 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
1323
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.
1327
1328 2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>
1329
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.
1333
1334 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
1335
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.
1341
1342 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1343
1344         * emit-rtl.c: Fix formatting.
1345         * errors.h: Likewise.
1346         * except.c: Likewise.
1347         * explow.c: Likewise.
1348         * expmed.c: Likewise.
1349         * expr.c: Likewise.
1350         * expr.h: Likewise.
1351
1352 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1353
1354         * config/h8300/elf.h: Fix formatting.
1355         * config/h8300/rtems.h: Likewise.
1356
1357 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
1358
1359         * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
1360
1361 2002-06-02  Tom Tromey  <tromey@redhat.com>
1362
1363         * fixinc/fixincl.x: Rebuilt.
1364         * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
1365
1366 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1367
1368 config/i370:
1369         * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
1370         * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
1371         * mvs.h: Similarly.
1372         * oe.h: Similarly.
1373
1374 Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
1375
1376         * final.c (final):  Allow notes to not have computed addresses;
1377         kill no longer needed STACK_REGS ifdef.
1378
1379 2002-06-02  Richard Henderson  <rth@redhat.com>
1380
1381         * gcse.c (bypass_conditional_jumps): Fix typo last change.
1382
1383 Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
1384
1385         * loop.c (emit_prefetch_instructions): Properly place the address
1386         computation.
1387
1388 Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
1389
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
1409         scopes and BBs.
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):
1412         Clear BB.
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.
1430
1431 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1432
1433 config/h8300:
1434         * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
1435         SUBTARGET_SPEC.
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.
1440
1441 2002-06-02  Richard Henderson  <rth@redhat.com>
1442
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.
1447
1448 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1449
1450         * c-lex.c: Update copyright and file description.
1451
1452 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1453
1454         * config/fr30/fr30.h: Update to new CPP macros.
1455
1456 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1457
1458         * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
1459
1460 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1461             Zack Weinberg <zack@codesourcery.com>
1462
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.
1475
1476 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
1477
1478         * diagnostic.h (struct diagnostic_context):  Add new member
1479         internal_error. 
1480         (internal_error_function): Remove declaration.
1481         * diagnostic.c (internal_error_function): Remove definition..
1482         (internal_error): Adjust use.
1483
1484 2002-06-02  Richard Henderson  <rth@redhat.com>
1485
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.
1492
1493 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
1494
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.
1499
1500 Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
1501
1502         * cfgrtl.c (commit_one_edge_insertion): Fix warning.
1503         * gcse.c (bypass_conditional_jumps): CSE out single_set call.
1504
1505 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1506
1507         * d30v.h (CPP_PREDEFINES): Replace with
1508         (TARGET_CPU_CPP_BUILTINS): New.
1509
1510 2002-06-02  Roger Sayle  <roger@eyesopen.com>
1511
1512         * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
1513
1514 Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
1515
1516         * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
1517
1518 2002-06-02  Richard Henderson  <rth@redhat.com>
1519
1520         * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
1521
1522 2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1523
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.
1532         (LIBSTDCXX): 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,
1538         _ctors, _dtors.
1539
1540 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1541
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.
1546
1547 Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>
1548
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.
1555         (flag_tracer): New.
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.
1561
1562 2002-06-01  Daniel Berlin  <dberlin@dberlin.org>
1563
1564         * tree-inline.c (expand_call_inline): Make the statement
1565         expression we generate have a COMPOUND_STMT.    
1566
1567 2002-06-01  Roger Sayle  <roger@eyesopen.com>
1568
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
1579         basic blocks.
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.
1585
1586 2002-06-01  Roger Sayle  <roger@eyesopen.com>
1587
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.
1590
1591 2002-06-01  Roger Sayle  <roger@eyesopen.com>
1592
1593         * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
1594         and "!p && !q" into "(p|q) == 0" under suitable conditions.
1595
1596 2002-06-01  Andreas Jaeger  <aj@suse.de>
1597
1598         * cppexp.c (cpp_classify_number): Cast precission to int for
1599         correct printf format.
1600
1601 2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1602
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.
1609
1610 2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>
1611
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.
1621
1622 Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1623
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
1654         infrastructure.
1655
1656 2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>
1657
1658         * except.c (nothrow_function_p): Walk epilogue delay list
1659         checking the insn, not the chain for potential throws.
1660
1661 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
1662
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.
1669
1670 2002-05-31  Richard Henderson  <rth@redhat.com>
1671
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.
1715
1716 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
1717
1718         * cppinit.c (append_include_chain): Always pay attention to
1719         cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
1720         marker on argument.
1721
1722 2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1723
1724         * target.h: Fix formatting.
1725         * timevar.h: Likewise.
1726         * tlink.c: Likewise.
1727         * toplev.c: Likewise.
1728         * toplev.h: Likewise.
1729         * tree.c: Likewise.
1730         * tree-dump.h: Likewise.
1731         * tree.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.
1745
1746 2002-05-31  Igor Shevlyakov <igor@microunity.com>
1747
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.
1750
1751 2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
1752
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.
1757
1758 2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
1759
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.
1766
1767 2002-05-31  Stan Shebs  <shebs@apple.com>
1768             Turly O'Connor  <turly@apple.com>
1769
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.
1777
1778 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1779
1780         * pa.c (output_millicode_call): Add missing '%' characters.
1781         (output_call): Likewise.
1782
1783 2002-05-31  David Edelsohn  <edelsohn@gnu.org>
1784
1785         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
1786         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1787
1788 2002-05-31  Alan Lehotsky <apl@alum.mit.edu>
1789
1790         * varasm.c (mark_constant_pool): Walk epilogue delay list
1791         checking the insn, not the chain for potential constants.
1792
1793 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
1794
1795         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
1796
1797 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
1798
1799         * i386.c (classify_argument): Properly handle base types.
1800
1801         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
1802         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
1803         registers.
1804
1805 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
1806
1807         * gcse.c (gcse_emit_move_after): New.
1808         (pre_delete, hoist_store): Use it.
1809
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
1813
1814         * reload1.c (reload_cse_delete_noop_set): Kill.
1815         (reload_cse_simplify): use delte_insn_and_edges.
1816
1817 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1818
1819         * cfgloop.c (flow_loops_find): Initialize first and last fields
1820         correctly.
1821
1822 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1823
1824         * c-common.c (builtin_define_std): Correct logic.
1825
1826 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1827
1828         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
1829         (output_call): Likewise.
1830
1831 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1832
1833         * pa.c: Move output.h include after tree.h include.
1834         (pa_asm_output_mi_thunk): Constify identifier lab.
1835
1836 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
1837
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.
1841
1842 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1843
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.
1852
1853 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1854
1855         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
1856
1857 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
1858
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.
1863
1864 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
1865
1866         * longlong.h (count_trailing_zeros): Add missing \, and clean up
1867         whitespace in __ns32000__ case.
1868
1869 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
1870
1871         * expr.c (expand_expr): Output partially zeroed out vectors with
1872         output_constant_def.
1873
1874 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
1875
1876         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
1877         (sh-*-netbsdelf*)
1878         (shl*-*-netbsdelf*): New targets.
1879         * config/sh/netbsd-elf.h: New file.
1880         * config/sh/t-netbsd: New file.
1881
1882 2002-05-30  Richard Henderson  <rth@redhat.com>
1883             Eric Botcazou  <ebotcazou@multimania.com>
1884
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.
1888
1889 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
1890
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.
1897
1898 2002-05-30  Osku Salerma  <osku@iki.fi>
1899
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.
1903
1904 2002-05-30  Richard Henderson  <rth@redhat.com>
1905
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.
1913
1914 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1915
1916         * langhooks.c: Fix formatting.
1917         * langhooks.h: Likewise.
1918         * lcm.c: Likewise.
1919         * libgcc2.c: Likewise.
1920         * lists.c: Likewise.
1921         * local-alloc.c: Likewise.
1922         * loop.c: Likewise.
1923         * loop.h: Likewise.
1924
1925 2002-05-30  Marc Espie <espie@openbsd.org>
1926
1927         * config.gcc (sparc64-*-openbsd*): New.
1928         * config/sparc/openbsd1-64.h: New.
1929         * config/sparc/openbsd64.h: New.
1930
1931 2002-05-30  Jeff Law <law@redhat.com>
1932
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.
1936
1937 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
1938
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.
1947
1948 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
1949
1950         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
1951         * rtl.texi: Document 'B'
1952
1953 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
1954
1955         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
1956         at run-time.
1957         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
1958
1959 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
1960
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.
1969
1970 2002-05-29  David S. Miller  <davem@redhat.com>
1971
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.
1977
1978 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
1979
1980         * config/mmix/mmix.c: Include real.h.
1981         (mmix_constant_address_p): Remove redundant test before switch.
1982
1983 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
1984
1985         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
1986         only if not already defined.
1987
1988 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
1989
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
2001         of fix_bit_operand.
2002         (iorqi3): Likewise.
2003         (xorqi3): Likewise.
2004
2005 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2006
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
2013         specified.
2014         (SUBTARGET_EXTRA_SPECS): Define.
2015         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
2016         %(netbsd_cpp_spec).
2017
2018 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
2019
2020         * doc/md.texi (Patterns): Note pattern condition pitfall
2021         for unnamed insn.
2022
2023 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
2024
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.
2038
2039 2002-05-29  Richard Henderson  <rth@redhat.com>
2040
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.
2047
2048 2002-05-29  Richard Henderson  <rth@redhat.com>
2049
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.
2055
2056 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2057
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).
2069
2070 2002-05-29  Jeff Law <law@redhat.com>
2071
2072         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
2073
2074         * flow.c (propagate_one_insn): Do not remove a dead insn if it
2075         contains a REG_RETVAL note.
2076
2077         * haifa-sched (sched_analyze): Remove another useless clearing
2078         of SCHED_GROUP_P I missed yesterday.
2079
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.
2083
2084 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2085             Marek Michalkiewicz  <marekm@amelek.gda.pl>
2086
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.
2099
2100 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2101
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).
2106
2107 2002-05-29  Richard Henderson  <rth@redhat.com>
2108
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.
2125
2126 2002-05-29  Richard Henderson  <rth@redhat.com>
2127
2128         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
2129         alignment for alloca.
2130
2131 2002-05-29  Richard Henderson  <rth@redhat.com>
2132
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.
2136
2137 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2138
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.
2147
2148 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2149
2150         PR preprocessor/6844
2151         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
2152         NUL.
2153
2154 2002-05-29  Eric Christopher  <echristo@redhat.com>
2155
2156         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
2157         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
2158
2159 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
2160
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".
2165
2166 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2167
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).
2181
2182 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2183             Zack Weinberg <zack@codesourcery.com>
2184
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.
2200
2201 2002-05-29  Joel Sherrill <joel@OARcorp.com>
2202
2203         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
2204
2205 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2206
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.
2211         (CPP_SPEC): Remove.
2212
2213 2002-05-29  Chris Lattner  <sabre@nondot.org>
2214
2215         * ssa.c (rename_insn_1): Rename uses of undefined registers to
2216         prevent confusion if/when the register is defined.
2217
2218 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
2219
2220         PR target/6838
2221         * config/cris/cris.md: Fix typos and thinkos in comments.
2222         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
2223         second alternative.
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.
2229
2230 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
2231
2232         * config/h8300/h8300-protos.h: Remove the prototype for
2233         o_operand.
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.
2242
2243 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
2244
2245         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
2246
2247 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
2248
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
2252         epilogue insns.
2253
2254 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
2255
2256         * config/s390/s390.md (cmpstr_64/31): Mark whole
2257         input registers as used.
2258
2259 2002-05-28  Richard Henderson  <rth@redhat.com>
2260
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.
2274
2275 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
2276
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
2287         NetBSD targets.
2288
2289 2002-05-28  Richard Henderson  <rth@redhat.com>
2290
2291         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
2292         update if UPDATE_LIFE_LOCAL.
2293
2294 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
2295
2296         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
2297
2298 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
2299                           Jason R. Thorpe <thorpej@wasabisystems.com>
2300
2301         config/sh reorganization to factor out endianness and coff:
2302
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.
2311
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.
2363
2364 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
2365
2366         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
2367         CONSTANT_POOL_ADDRESS_P.
2368
2369         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
2370
2371 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
2372             Jeff Law <law@redhat.com>
2373
2374         * optabs.c (expand_binop): Fix nwords sign warnings.
2375         generate pseudo for add_optab.
2376
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.
2379
2380 2002-05-28      Marc Espie <espie@openbsd.org>
2381
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.
2385
2386 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
2387
2388         * doc/install.texi (binaries): Change mingw binaries
2389         link to www.mingw.org.
2390
2391 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2392
2393         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
2394
2395 2002-05-28  Richard Henderson  <rth@redhat.com>
2396
2397         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
2398         bottom alignment for leaf functions.
2399
2400 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
2401
2402         * config/pa/milli32.S, config/pa/lib1funcs.asm,
2403         config/sparc/sol2-g1.asm: Delete unused files.
2404
2405 2002-05-28  Richard Henderson  <rth@redhat.com>
2406
2407         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
2408
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.
2412
2413         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
2414         DECL_EXTERNAL.
2415
2416 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
2417
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
2421         contain it.
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.
2427
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
2433         REAL_CST.
2434
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.
2438
2439 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2440
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
2449         longer change.
2450         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
2451         last_basic_block.
2452         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
2453         real positions of blocks.
2454         (delete_unreachable_blocks): Simplified -- quadratic behavior now
2455         cannot occur.
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
2467         last_basic_block.
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
2471         last_basic_block.
2472
2473 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
2474
2475         * config/h8300/h8300.md (two anonymous patterns): New.
2476
2477 2002-05-28  David S. Miller  <davem@redhat.com>
2478
2479         * config/sparc/sparc.md (cpu): Tidy.
2480         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
2481         'trap'.
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.
2493
2494 2002-05-28  Richard Henderson  <rth@redhat.com>
2495
2496         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
2497         STRING_CST.
2498
2499 2002-05-28  Richard Henderson  <rth@redhat.com>
2500
2501         * config.gcc: Obsolete mn10200.
2502
2503 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
2504
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.
2508
2509 2002-05-27  Bo Thorsen  <bo@suse.de>
2510
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.
2519
2520 2002-05-27  Roger Sayle  <roger@eyesopen.com>
2521
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.
2525
2526         * doc/extend.texi: Document the new nothrow function attribute.
2527
2528 2002-05-27  H.J. Lu  (hjl@gnu.org)
2529
2530         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
2531         (num_positive): Likewise.
2532         (num_div_op): Likewise.
2533
2534 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2535
2536         * c-common.c (c_common_init): Always use intmax_t.
2537
2538 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2539
2540         * c-common.c (c_common_init): Use intmax_t for now.
2541
2542 2002-05-24  Andrew Haley  <aph@redhat.com>
2543
2544         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
2545         if T is a boolean type.
2546
2547 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2548
2549         * basic-block.h (last_basic_block): Defined as synonym for
2550         n_basic_blocks.
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):
2564         Likewise.
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):
2577         Likewise.
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.
2590
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
2593         sizes consistently.
2594
2595 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
2596
2597         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
2598         new.
2599         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
2600         hoist_insn_after, hoist_insn_to_edge): New.
2601
2602 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
2603
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.
2609
2610 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2611
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.
2617
2618 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
2619
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.
2626
2627 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
2628
2629         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
2630
2631 2002-05-26  Andreas Jaeger  <aj@suse.de>
2632
2633         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
2634
2635 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2636
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,
2640         HIGH_PART): New.
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.
2649         (optab): Update.
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.
2653
2654 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2655
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.
2666
2667 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2668
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.
2672
2673 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
2674
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.
2681
2682 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
2683
2684         * reload.c (find_valid_class): Accept new argument DEST,
2685         choose class accordingly.
2686         (push_reload): Update callers.
2687
2688 2002-05-26  Andreas Jaeger  <aj@suse.de>
2689
2690         * combine.c (combine_instructions): Do not indent #if for
2691         traditional C.
2692
2693 2002-05-25  Richard Henderson  <rth@redhat.com>
2694
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
2698         an existing decl.
2699
2700 2002-05-25  Richard Henderson  <rth@redhat.com>
2701
2702         PR target/6788
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.
2707
2708 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
2709
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.
2719         * c-lex.h: Remove.
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.
2725 doc:
2726         * passes.texi, tm.texi: Update.
2727 objc:
2728         * Make-lang.in: Update and correct.
2729         * objc-act.c: Don't include c-lex.h or cpplib.h.
2730 treelang:
2731         * treetree.c: Don't include c-lex.h.
2732 config:
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.
2747
2748
2749 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
2750
2751         * tree.def: Fix typos.
2752         * doc/install.texi: Likewise.
2753
2754 2002-05-25  Richard Henderson  <rth@redhat.com>
2755
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.
2787
2788 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
2789
2790         * combine.c (simplify_set): Remove an unnecessary subreg.
2791
2792 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2793
2794         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
2795
2796         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
2797
2798 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
2799
2800         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
2801
2802 2002-05-25  Roger Sayle  <roger@eyesopen.com>
2803
2804         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
2805         (cond (compare x y) 0) into the equivalent (cond x y).
2806
2807 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
2808
2809         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
2810
2811 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
2812
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.
2820
2821         * config/arm/arm.h: Bit 31 of target_flags is no longer
2822         reserved.
2823
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:
2889         Delete file.
2890
2891 2002-05-24  Richard Henderson  <rth@redhat.com>
2892
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.
2898
2899 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
2900
2901         * lcm.c (optimize_mode_switching): Change bb used as indices
2902         to bb->index.
2903
2904 2002-05-24  Richard Henderson  <rth@redhat.com>
2905
2906         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
2907         of update_life_info_in_dirty_blocks.
2908
2909 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
2910
2911         PR other/6782
2912         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
2913
2914 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2915
2916         PR preprocessor/6780
2917         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
2918
2919 2002-05-24  Jim Blandy  <jimb@redhat.com>
2920
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
2923         unit's macro info.
2924
2925 2002-05-24  Richard Henderson  <rth@redhat.com>
2926
2927         * varasm.c (asm_output_bss): Always output one byte.
2928         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2929
2930 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
2931
2932         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
2933         namespace.
2934
2935 2002-05-24  Andreas Jaeger  <aj@suse.de>
2936
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
2942         use unsigned long.
2943
2944 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
2945
2946         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
2947
2948 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
2949             Zack Weinberg     <zack@codesourcery.com>
2950
2951         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
2952         quoted strings.
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
2961         char.
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.
2966
2967 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
2968
2969         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
2970
2971 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
2972
2973         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
2974         of size of unsigned.
2975
2976 2002-05-23  Richard Henderson  <rth@redhat.com>
2977
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.
2998         Remove UNSPEC_PLT.
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.
3024
3025 2002-05-23  Richard Henderson  <rth@redhat.com>
3026
3027         * genemit.c (gen_insn): Print file:lineno comment before function.
3028         (main): likewise.
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.
3033
3034 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
3035
3036         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
3037
3038 2002-05-23  Richard Henderson  <rth@redhat.com>
3039
3040         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
3041
3042 2002-05-23  Richard Henderson  <rth@redhat.com>
3043
3044         * doc/extend.texi (C++98 Thread-Local Edits): Update with
3045         commentary from Mark.
3046
3047 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3048
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):
3053         Likewise.
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):
3058         Likewise.
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):
3062         Likewise.
3063         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
3064         Likewise.
3065         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
3066         Likewise.
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):
3102         Likewise.
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.
3122
3123         * df.c (FOR_ALL_BBS): Removed.
3124         * gcse.c (struct null_pointer_info): Type of current_block field
3125         changed.
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.
3129         (last_block): New.
3130
3131 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3132
3133         * cppinit.c (mark_named_operators): Split out from init_builtins.
3134         (cpp_finish_options): Call it from here instead.
3135
3136 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
3137
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
3143         format operand.
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
3148         warning.
3149         * testsuite/gcc.dg/format/null-1.c: New test.
3150
3151 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3152
3153         * Makefile.in (ADAC): Define.
3154         (SYSLIBS): Define.
3155         (.SUFFIXES): Move before language makefile fragments.
3156         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
3157
3158 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
3159
3160         * varasm.c (make_decl_rtl): Don't allow weak variables to be
3161         placed in common.
3162
3163 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
3164
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.
3168
3169 2002-05-23  David S. Miller  <davem@redhat.com>
3170
3171         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
3172         regsets.
3173
3174 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
3175
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
3183         prototypes.
3184         * c-decl.c (c_decode_option): Add -Wnonnull option.
3185         * c-format.c (set_Wformat): Set warn_nonnull if enabling
3186         format checking.
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.
3197
3198 2002-05-23  David S. Miller  <davem@redhat.com>
3199
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.
3206
3207 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3208
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.
3214
3215 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
3216
3217         PR target/6753
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.
3226
3227 2002-05-23  Richard Henderson  <rth@redhat.com>
3228
3229         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
3230         (C++98 Thread-Local Edits): New subsection.
3231
3232         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
3233         (ix86_arch): Set type to enum processor_type.
3234
3235         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
3236         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
3237
3238 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
3239
3240         * configure.in: Fix as version test for binutils 2.12.1 releases
3241         (without dates).
3242         * configure: Rebuilt.
3243
3244 2002-05-23  Richard Henderson  <rth@redhat.com>
3245
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.
3256
3257 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
3258
3259         * gcse.c (hash_expr): Do not use alias set for hashing.
3260
3261 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
3262
3263         * dbxout.c (dbxout_class_name_qualifiers): New function.
3264         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
3265
3266 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3267
3268         * cpperror.c (_cpp_begin_message): No special casing
3269         of CPP_FATAL_LIMIT.
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.
3274         (DL_ICE): Renumber.
3275         * fix-header.c (read_scan_file): Update.
3276
3277 2002-05-22  Richard Henderson  <rth@redhat.com>
3278
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.
3286
3287 2002-05-22  Richard Henderson  <rth@redhat.com>
3288
3289         * varasm.c (default_section_type_flags): Check for VAR_DECL
3290         before using DECL_THREAD_LOCAL.
3291
3292 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
3293
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.
3302
3303 2002-05-22  Richard Henderson  <rth@redhat.com>
3304
3305         * varasm.c (default_section_type_flags): Handle tls data and
3306         default sections.
3307         (default_unique_section): Handle tls sections.
3308
3309 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
3310
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..
3317         (do_spec): ..here.
3318         (main): Process startfile_prefix_spec.
3319         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
3320         dynamic linker.
3321         (STARTFILE_PREFIX_SPEC): Define.
3322         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
3323         absolute paths.
3324
3325 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
3326
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.
3338
3339 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
3340
3341         * combine.c (force_to_mode): Use gen_int_mode.
3342         Don't clear CONST_INT bits outside of mode.
3343
3344 2002-05-22  Richard Henderson  <rth@redhat.com>
3345
3346         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
3347         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3348
3349 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
3350
3351         PR c/6643
3352         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
3353         if DECL_SIZE_UNIT is INTEGER_CST.
3354
3355 2002-05-22  Richard Henderson  <rth@redhat.com>
3356
3357         * flow.c (life_analysis): Delete broken reg_label check.
3358
3359 2002-05-22  Richard Henderson  <rth@redhat.com>
3360
3361         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
3362         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3363
3364 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
3365
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.
3370
3371 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
3372
3373         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
3374
3375 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
3376
3377         * config/h8300/h8300.md (*andorqi3): New.
3378
3379 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
3380
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.
3392 objc:
3393         * objc-lang.c (objc_post_options): Kill.
3394         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
3395
3396 2002-05-21  Bruce Korb  <bkorb@gnu.org>
3397
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.
3401
3402 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
3403
3404         * cfgbuild.c: Fix formatting.
3405         * cfg.c: Likewise.
3406         * cfgcleanup.c: Likewise.
3407         * cfglayout.c: Likewise.
3408         * cfgloop.c: Likewise.
3409         * cfgrtl.c: Likewise.
3410
3411 2002-05-21  Richard Henderson  <rth@redhat.com>
3412
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.
3418
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.
3423
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.
3431
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.
3436
3437         * doc/extend.texi (Thread-Local): New node describing language-level
3438         thread-local storage.
3439         * doc/invoke.texi (-ftls-model): Document.
3440
3441         * fixinc/inclhack.def (thread_keyword): New.
3442         * fixinc/fixincl.x: Rebuild.
3443
3444 2002-05-21  Jeffrey A Law  <law@redhat.com>
3445
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).
3449
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.
3453
3454 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
3455
3456         * genautomata.c (reserv_sets_hash_value): Fix a typo.
3457
3458 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
3459
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)'.
3464
3465 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
3466
3467         * reload1.c (do_output_reload): Run delete_output_reload
3468         only if optimizing.
3469
3470 2002-05-21  Roger Sayle  <roger@eyesopen.com>
3471
3472         PR middle-end/6600
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.
3477
3478 2002-05-21  Richard Henderson  <rth@redhat.com>
3479
3480         * flow.c (life_analysis): Fix test for deleted label.
3481
3482 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3483
3484         * doc/tm.texi: Fix typo.
3485
3486 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
3487
3488         * c-common.c (c_common_init): Set options->unsigned_char from
3489         flag_signed_char.
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.
3497
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.
3502
3503 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3504
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.
3532
3533 2002-05-21  Andreas Jaeger  <aj@suse.de>
3534
3535         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
3536
3537 2002-05-21  Richard Henderson  <rth@redhat.com>
3538
3539         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
3540         unspec names, not numbers.
3541
3542 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3543
3544         * doc/sourcebuild.texi: Mention snapshot-README and
3545         snapshot-index.html as needing updating for new front ends.
3546
3547 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3548
3549         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
3550         disabling checking, and avoid multiple evaluation of RTX.
3551
3552 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
3553
3554         * bitmap.c (bitmap_find_bit): Return early if we have the correct
3555         element cached.
3556
3557 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
3558
3559         * profile.c (gen_edge_profiler):  Set alias set before the memory is
3560         used.
3561
3562 2002-05-20  David S. Miller  <davem@redhat.com>
3563
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
3567         a hard register.
3568         (clear_table): Initialize it.
3569         (cselib_invalidate_regno): Use it to determine which hard
3570         registers to scan when mode is not VOIDmode.
3571
3572 2002-05-20  Duraid Madina   <duraid@fl.net.au>
3573
3574         * tradcpp.c (fixup_newlines): Use old-style function header.
3575
3576 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
3577
3578         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
3579
3580 2002-05-20  H.J. Lu  (hjl@gnu.org)
3581
3582         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
3583
3584         * config/mips/mips.h (DFMODE_NAN): Defined.
3585         (SFMODE_NAN): Likewise.
3586
3587 2002-05-20  Dale Johannesen  <dalej@apple.com>
3588
3589         * combine.c (cant_combine_insn_p):  Back out my
3590         previous patch.
3591
3592 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
3593
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.
3601
3602 2002-05-20  H.J. Lu  (hjl@gnu.org)
3603
3604         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
3605
3606 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
3607
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.
3616
3617 2002-05-20  Richard Henderson  <rth@redhat.com>
3618
3619         * cse.c (canon_hash): Reorder do_not_record test.  Always
3620         allow pic_offset_table_rtx.
3621
3622 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
3623
3624         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
3625         (expand_binop): Ditto (3 times).
3626
3627 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
3628
3629         * Makefile.in (distclean): Remove QMTest stuff.
3630         (QMTEST_PATH): New variable.
3631         (QMTESTFLAGS): Likewise.
3632         (QMTESTRUNFLAGS): Likewise.
3633         (QMTEST): 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.
3640
3641 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
3642
3643         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
3644         an altivec register if TARGET_ALTIVEC.
3645
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
3650         altivec vectors.
3651
3652 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
3653
3654         * protoize.c: Fix formatting.
3655
3656 2002-05-19  Richard Henderson  <rth@redhat.com>
3657
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.
3663
3664 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3665
3666         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
3667         fields.
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.
3682
3683 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
3684
3685         * c-common.c (preprocessing_asm): New macro.
3686         * c-lex.h (builtin_define, builtin_assert): Use pfile.
3687 doc:
3688         * tm.texi: Update.
3689 config/alpha:
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.
3703
3704 2002-05-19  Richard Henderson  <rth@redhat.com>
3705
3706         * varasm.c (default_binds_local_p): Fix typo.
3707
3708 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3709
3710         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
3711         CONST_INT operand to the correct mode after adding 1 to it.
3712
3713 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
3714
3715         * config.gcc (powerpc-wrs-windiss*): New target.
3716
3717 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3718
3719         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
3720         (ashrdi3): Use it.
3721
3722 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
3723
3724         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
3725         alphasort.
3726         * config.in: Regenerated.
3727         * configure: Regenerated.
3728
3729 2002-05-19  Richard Henderson  <rth@redhat.com>
3730
3731         * target-def.h (TARGET_BINDS_LOCAL_P): New.
3732         * target.h (struct gcc_target): Move boolean fields to the end.
3733         Add binds_local_p.
3734         * varasm.c (default_binds_local_p): New.
3735         * output.h: Declare it.
3736
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.
3742
3743         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
3744         (TARGET_BINDS_LOCAL_P): New.
3745
3746 2002-05-19  Richard Henderson  <rth@redhat.com>
3747
3748         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
3749         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
3750         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
3751
3752         * toplev.c (display_help): Kill -a -ax help.
3753
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.
3759
3760         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
3761         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
3762
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.
3771
3772 2002-05-19  Richard Henderson  <rth@redhat.com>
3773
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.
3780
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.
3790
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.
3802
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.
3807
3808         * xcoffout.c: Include target.h
3809         * Makefile.in (xcoffout.o): Update.
3810
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.
3816
3817         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
3818         STRIP_NAME_ENCODING docs.
3819
3820 2002-05-19  Andreas Jaeger  <aj@suse.de>
3821
3822         * gengenrtl.c: Add prototype for excluded_rtx.
3823
3824         * real.h: Add prototype for exact_real_truncate.
3825
3826 2002-05-18  Richard Henderson  <rth@redhat.com>
3827
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.
3834
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.
3851
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.
3867
3868         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
3869         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
3870
3871         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
3872         from SUBTARGET_*
3873         (switch_to_section): Replace in_rdata case with in_readonly_data.
3874
3875         * config/h8300/h8300.c (h8300_encode_label): Make static.
3876         * config/h8300/h8300-protos.h: Update.
3877
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.
3881
3882         * config/v850/v850.c (v850_encode_data_area): Make static.
3883         * config/v850/v850-protos.h: Update.
3884
3885         * config/vax/vax.c: Include flags.h.
3886         (vms_select_section): Fix typo.
3887
3888         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
3889         ENCODE_SECTION_INFO docs.
3890
3891 2002-05-18  Richard Henderson  <rth@redhat.com>
3892
3893         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
3894         REGISTER_TARGET_PRAGMAS.
3895         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
3896
3897         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
3898
3899 2002-05-18  Richard Henderson  <rth@redhat.com>
3900
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.
3907
3908         * config/darwin.h (SELECT_RTX_SECTION): Move ...
3909         * config/darwin.c (machopic_select_rtx_section): ... here.
3910         * config/darwin-protos.h: Update.
3911
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.
3916
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.
3927
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.
3934
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
3941         redefining.
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.
3953