OSDN Git Service

* config/xtensa/xtensa.c (xtensa_build_va_list): Use
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-06-05  Bob Wilson  <bob.wilson@acm.org>
2
3         * config/xtensa/xtensa.c (xtensa_build_va_list): Use
4         lang_hooks.types.make_type instead of make_node; set up
5         __va_list_tag type decl.
6         (xtensa_builtin_saveregs): Remove broken use of
7         RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P
8         for saved registers; add varargs alias set.
9
10 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
11
12 config:
13         * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS.
14         * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than
15         CPP_PREDEFINES and part of CPP_SPEC.
16         i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h,
17         i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly.
18
19 Wed Jun  5 15:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>
20
21         * reg-stack.c (reg_to_stack): Do not call find_basic_blocks.
22
23 2002-06-05  Alan Modra  <amodra@bigpond.net.au>
24
25         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
26
27 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
28
29         * gengtype-yacc.y: Make sure all rules end with a semicolon.
30
31 2002-06-04  Bob Wilson  <bob.wilson@acm.org>
32
33         * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
34         typo in function prototype and include "ggc.h" header.
35
36 2002-06-04  Richard Henderson  <rth@redhat.com>
37
38         * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
39         (print_operand) ['U']: Likewise.
40         (alpha_expand_unaligned_store): Correct constants for 32-bit cross.
41         (alpha_expand_unaligned_store_words): Likewise.
42         (alpha_expand_builtin_vector_binop): Fix typo.
43         (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
44         umulh, and cix insns.
45         (one_arg_builtins): Add cix builtins.
46         (two_arg_builtins): Add ext, ins, msk, umulh builtins.
47         (alpha_expand_builtin): Fix typo in arity.
48         * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
49         (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
50         builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
51         builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
52         builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
53         builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
54         builtin_ctlz, builtin_ctpop): New.
55         * doc/extend.texi (Alpha Built-in Functions): Update.
56
57 2002-06-04  Geoffrey Keating  <geoffk@redhat.com>
58
59         * gengtype.c (write_gc_root): Don't unnecessarily prevent
60         global variable-length arrays being roots.
61
62         * config.gcc (powerpc-*-darwin*): Set config_gtfiles.
63         * configure.in (config_gtfiles): New variable.
64         (all_gtfiles): Initialise from config_gtfiles.
65         * configure: Regenerate.
66
67 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
68
69 config/i386:
70         * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
71         i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
72         mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
73         sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
74         win32.h (CPP_SPEC): Remove cpp_cpu.
75         * i386.h (TARGET_CPU_CPP_BUILTINS): Use.
76         (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!
77
78 2002-06-04  Janis Johnson  <janis187@us.ibm.com>
79
80         * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
81
82 2002-06-04  Jeff Law <law@redhat.com.
83             David Edelsohn <edelsohn@gnu.org>
84             Michael Matz <matz@kde.org>
85
86         * sched-int.h (struct deps): New field libcall_block_tail_insn.
87         * sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
88         * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
89         is set, then mark the current insn as being part of a libcall
90         scheduling group.
91         (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
92
93         * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
94         insns against the issue rate.
95
96 Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>
97
98         * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
99         * final.c (final_scan_insn): Likewise.
100         * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
101         NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
102         * haifa-sched.c (unlink_other_notes): Likeewise.
103         (reemit_notes): Likewise.
104         * print-rtl.c (print_rtx): Likewise.
105         * sched-deps (sched-analyze): Likewise.
106         * rtl.c (note_insn_name): Likewise.
107         * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
108         (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
109         (RANGE_*): Kill.
110
111 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
112
113         * varasm.c (mark_constants): Handle RTX format 'B'.
114
115 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
116
117         * cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
118         (struct cpp_context): Add traditional fields.
119         * cppmacro.c (paste_all_tokens, push_ptoken_context,
120         push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
121         * cpptrad.c (skip_comment, lex_identifier,
122         _cpp_read_logical_line_trad, scan_out_logical_line): Update.
123
124 2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>
125
126         * gbl-ctors.h: Fix formatting.
127         * gcc.c: Likewise.
128         * gccspec.c: Likewise.
129         * gcov.c: Likewise.
130         * gcov-io.h: Likewise.
131         * gcse.c: Likewise.
132         * ggc-common.c: Likewise.
133         * ggc.h: Likewise.
134         * ggc-page.c: Likewise.
135         * ggc-simple.c: Likewise.
136         * global.c: Likewise.
137         * graph.h: Likewise.
138         * gthr-dce.h: Likewise.
139         * gthr.h: Likewise.
140         * gthr-posix.h: Likewise.
141         * gthr-rtems.h: Likewise.
142         * gthr-solaris.h: Likewise.
143         * gthr-win32.h: Likewise.
144
145 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
146
147         Merge from pch-branch:
148         
149         * gengtype.h (UNION_OR_STRUCT_P): New macro.
150         * gengtype.c (write_gc_structure_fields): Use it.
151         (write_gc_root): Use it here too.
152
153         * gengtype.c (write_gc_structure_fields): Assume that lengths
154         of typenames fit into an 'int'; don't pass a size_t to "%d" in
155         printf.
156         (write_gc_marker_routine_for_structure): Likewise.
157         (write_gc_types): Likewise.
158         (write_gc_root): Likewise.
159
160         * varray.h (VARRAY_CLEAR): New.
161         (varray_clear): Prototype.
162         * varray.c (varray_clear): New.
163         * cselib.c (reg_values_old): New.
164         (used_regs_old): New.
165         (cselib_init): Use cached varrays if available to avoid
166         generating large amounts of garbage.
167         (cselib_finish): Don't throw away old varrays.
168
169         * final.c (insn_addresses_): Move out of ifdef.
170
171         * varray.c (uses_ggc): Make more varray kinds GCable.
172         * varray.h (union varray_data_tag): Let gengtype see
173         fields 'generic' and 'te'.
174         * reg-stack.c: Include gt-reg-stack.h, ggc.h.
175         (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
176         (reg_to_stack): Don't call VARRAY_FREE.
177         * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
178         (insn_addresses_): Use gengtype to mark.
179         * gengtype.c (write_gc_structure_fields): Handle arrays of generic
180         pointers; handle generic pointers in unused union fields.
181         (get_output_file_with_visibility): Include cselib.h,
182         insn-addr.h in gtype-desc.c.
183         * function.c (prologue): Use gengtype to mark.
184         (epilogue): Likewise.
185         (sibcall_epilogue): Likewise.
186         * dependence.c: Include gt-dependence.h, ggc.h.
187         (struct def_use): Use gengtype to mark.
188         (struct loop): Likewise.
189         (struct induction): Likewise.
190         (struct dependence): Likewise.
191         (def_use_chain): Likewise.
192         (dep_chain): Likewise.
193         (loop_chain): Likewise.
194         (induction_chain): Likewise.
195         (init_dependence_analysis): Don't free anything, just clear pointers.
196         (build_def_use): Use GGC to allocate def_use.
197         (add_loop): Use GGC to allocate loop.
198         (find_induction_variable): Use GGC to allocate induction.
199         (check_node_dependence): Use GGC to allocate induction, dependence.
200         (dump_node_dependence): Don't free varrays.
201         (end_dependence_analysis): Likewise.
202         * cselib.h (struct cselib_val_struct): Use gengtype to mark.
203         (struct elt_loc_list): Likewise.
204         (struct elt_list): Likewise.
205         * cselib.c: Don't include obstack.h.
206         (hash_table): Use gengtype to mark.
207         (reg_values): Use gengtype to mark.
208         (used_regs): Use gengtype to mark.
209         (cselib_obstack): Delete.
210         (cselib_startobj): Delete.
211         (empty_vals): Mark as deletable.
212         (empty_elt_lists): Mark as deletable.
213         (empty_elt_loc_lists): Mark as deletable.
214         (new_elt_list): Use GGC to allocate struct elt_list.
215         (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
216         (clear_table): Don't delete obstack; don't unnecessarily clear
217         deletable variables.
218         (new_cselib_val): Use GGC to allocate struct cselib_val.
219         (cselib_init): Don't set up obstacks.  Use GGC to allocate
220         hash table.
221         (cselib_finish): Just clear variables, don't free anything.
222         * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
223         (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
224         (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
225         (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
226         (gt-reg-stack.h): New rule.
227         (gt-dependence.h): New rule.
228         (gtype-desc.o): Add cselib.h, insn-addr.h.
229
230         * varray.c: Use only necessary headers.
231         (element_size): New.
232         (uses_ggc): New.
233         (varray_init): Take type, not size.  Use GGC if appropriate.
234         (varray_grow): Update for change to struct varray_head_tag.
235         Use GGC if appropriate.
236         * varray.h (struct const_equiv_data): Use gengtype.
237         (enum varray_data_enum): New.
238         (union varray_data_tag): Use gengtype.
239         (struct varray_head_tag): Use gengtype.  Replace size field with
240         enum varray_data_enum.
241         (varray_init): Update prototype.
242         (VARRAY_SCHED_INIT): Delete.
243         (VARRAY_*_INIT): Update for change to varray_init.
244         (VARRAY_SCHED): Delete.
245         (VARRAY_PUSH_SCHED): Delete.
246         (VARRAY_TOP_SCHED): Delete.
247         * tree.h: Update for change to length specifier.
248         * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
249         (clone_body): Likewise.
250         * ssa.h (ssa_definition): Use gengtype to mark.
251         * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
252         * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
253         * rtl.h (struct rtvec_def): Update for change to length specifier.
254         * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
255         (struct initial_value_struct): Update for change to length specifier.
256         * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
257         (ggc_add_tree_varray_root): Delete prototype.
258         (ggc_mark_rtx_varray): Delete prototype.
259         (ggc_mark_tree_varray): Delete prototype.
260         * ggc-common.c (ggc_add_rtx_varray_root): Delete.
261         (ggc_add_tree_varray_root): Delete.
262         (ggc_mark_rtx_varray): Delete.
263         (ggc_mark_tree_varray): Delete.
264         (ggc_mark_rtx_varray_ptr): Delete.
265         (ggc_mark_tree_varray_ptr): Delete.
266         * gengtype.h (enum typekind): Remove TYPE_VARRAY.
267         (create_varray): Delete prototype.
268         * gengtype.c (varrays): Delete.
269         (create_varray): Delete.
270         (adjust_field_type): Detect array of string pointers.
271         (process_gc_options): Remove code to handle varray_type option.
272         (set_gc_used_type): Remove TYPE_VARRAY case.
273         (output_escaped_param): New.
274         (write_gc_structure_fields): Use output_escaped_param on all
275         parameters.  Handle 'skip' with 'use_param' option.  Handle
276         arrays of strings.  Remove TYPE_VARRAY handling.
277         (write_gc_roots): Use boolean to detect 'length' option.
278         * gengtype-yacc.y (VARRAY_TYPE): Delete token.
279         (struct_fields): Call adjust_field_type on array fields.
280         (type): Remove VARRAY_TYPE case.
281         (type_option): Likewise.
282         * gengtype-lex.l: Don't consider varray_type a keyword.
283         * function.h: Update for change to length specifier.
284         (free_eh_status): Delete prototype.
285         * function.c (free_after_compilation): Don't call free_eh_status.
286         (reorder_blocks): Don't use VARRAY_FREE.
287         * except.c (struct eh_status): Update for change to length specifier.
288         remove varray_type specifier.
289         (free_eh_status): Delete.
290         * dwarf2out.c: Include gt-dwarf2out.h.
291         (used_rtx_varray): Use gengtype to mark, move
292         outside ifdefs.
293         (incomplete_types): Likewise.
294         (decl_scope_table): Likewise.
295         (dwarf2out_init): Don't call ggc_add_tree_varray_root.  
296         * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
297         * c-tree.h (struct lang_type): Update for change to length specifier.
298         * c-parse.in (yylexstring): Don't use VARRAY_FREE.
299         * c-objc-common.c: Include gt-c-objc-common.h.
300         (deferred_fns): Mark for gengtype.
301         (c_objc_common_init): Don't call ggc_add_tree_varray_root.
302         (expand_deferred_fns): Just set deferred_fns to 0 to free it.
303         * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
304         (gtype-desc.o): Update dependencies.
305         (dwarf2out.o): Add gt-dwarf2out.h.
306         (varray.o): Update dependencies.
307         (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
308         (gt-c-objc-common.h): New rule.
309         (gt-dwarf2out.h): New rule.
310         * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
311
312         * doc/gty.texi (GTY Options): Correct spelling.
313         (GGC Roots): Likewise.
314         * Makefile.in (TEXI_CPP_FILES): New.
315         (TEXI_GCC_FILES): New.
316         (TEXI_GCCINT_FILES): New.
317         (TEXI_CPPINT_FILES): New.
318         ($(docdir)/cpp.info): Use new macros.
319         ($(docdir)/gcc.info): Likewise.
320         ($(docdir)/gccint.info): Likewise.
321         ($(docdir)/cppinternals.info): Likewise.
322         (cpp.dvi): Likewise.
323         (gcc.dvi): Likewise.
324         (gccint.dvi): Likewise.
325         (cppinternals.dvi): Likewise.
326
327         * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
328         * doc/gccint.texi (Top): Include gty.texi.
329         * doc/gty.texi: New file.
330
331         * bitmap.c: Include ggc.h, gt-bitmap.h.
332         (bitmap_ggc_free): New.
333         (bitmap_elem_to_freelist): New.
334         (bitmap_element_free): Use bitmap_elem_to_freelist.
335         (bitmap_element_allocate): Allow use of GGC.
336         (bitmap_clear): Use bitmap_elem_to_freelist.
337         (bitmap_copy): Update for change to bitmap_element_allocate.
338         (bitmap_set_bit): Likewise.
339         (bitmap_operation): Update for changes elsewhere.
340         (bitmap_initialize): Allow to create bitmaps that will use GGC.
341         * bitmap.h (struct bitmap_element_def): Use gengtype.
342         (struct bitmap_head_def): Likewise.  Also add 'using_obstack' field.
343         (bitmap_initialize): Add extra parameter.
344         (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
345         (BITMAP_ALLOCA): Delete.
346         (BITMAP_XMALLOC): Update for change to bitmap_initialize.
347         (BITMAP_GGC_ALLOC): New.
348         * Makefile.in (gtype-desc.o): Add bitmap.h.
349         (bitmap.o): Add gt-bitmap.h, $(GGC_H).
350         (GTFILES): Add bitmap.c.
351         (gt-bitmap.h): New rule.
352         ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
353         * basic-block.h: Update for changes to bitmap_initialize.
354         * except.c (exception_handler_label_map): Move into...
355         (struct eh_status): Here.
356         (struct eh_region): Make 'aka' GCable.
357         (free_eh_status): Don't need to specially handle
358         exception_handler_label_map.
359         (add_ehl_entry): Update for changes to exception_handler_label_map.
360         (find_exception_handler_labels): Likewise.
361         (remove_exception_handler_label): Likewise.
362         (maybe_remove_eh_handler): Likewise.
363         (for_each_eh_label): Likewise.
364         (remove_eh_handler): Allocate 'aka' using GGC.
365         * gengtype.c (get_output_file_with_visibility): Add bitmap.h
366         to list of includes.
367
368         * gengtype.c (write_gc_marker_routine_for_structure): Name
369         the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.  
370         (write_gc_types): Arrange for the tests with NULL to be inlined.
371         (write_gc_roots): Update uses of procedure pointers.
372         * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
373
374         * Makefile.in (explow.o): Add dependency on gt-explow.h.
375         (sdbout.o): Add dependency on gt-sdbout.h.
376
377         * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
378         (mem_attrs_htab): Likewise.
379         (init_emit_once): Don't call ggc_add_deletable_htab.
380         * fold-const.c (size_htab): Use gengtype to clear unused entries.
381         (size_int_type_wide): Don't call ggc_add_deletable_htab.
382         * gengtype.c (finish_root_table): Add LASTNAME and TNAME
383         parameters, use them, change callers.
384         (write_gc_root): Add IF_MARKED parameter, use it, change callers.
385         (write_gc_roots): Handle 'if_marked' option.
386         (main): Don't need to call set_gc_used_type any more.
387         * ggc.h (ggc_htab_marked_p): Delete.
388         (ggc_htab_mark): Delete.
389         (struct ggc_cache_tab): New.
390         (gt_ggc_cache_rtab): New declaration.
391         * ggc-common.c (struct d_htab_root): Delete.
392         (d_htab_roots): Delete.
393         (ggc_add_deletable_htab): Delete.
394         (ggc_htab_delete): Handle new htab-deleting mechanism.
395         (ggc_mark_roots): Use new htab-deleting mechanism.
396         * tree.c (type_hash_table): Use gengtype to clear unused entries.
397         Make static.
398         (init_obstacks): Don't call ggc_add_deletable_htab.
399
400         * objc/objc-act.h (struct hashed_attribute): Use gengtype.
401         (struct hashed_entry): Likewise.
402         (nst_method_hash_list): Likewise.
403         (cls_method_hash_list): Likewise.
404         (HASH_ALLOC_LIST_SIZE): Delete.
405         (ATTR_ALLOC_LIST_SIZE): Delete.
406         * objc/objc-act.c (hash_init): Use ggc to allocate
407         nst_method_hash_list, cls_method_hash_list.
408         (hash_enter): Use ggc to allocate; allocate one entry at a time.
409         (hash_add_attr): Likewise.
410         (ggc_mark_hash_table): Delete.
411         (objc_act_parse_init): Delete.
412         (objc_init): Delete reference to objc_act_parse_init.
413         * tlink.c: Replace hash.h with hashtab.h.  Explicitly include
414         obstack.h.  Replace references to 'struct hash_table' with htab_t.
415         (struct symbol_hash_entry): Replace hash header with key field.
416         (struct file_hash_entry): Replace hash header with key field.
417         (struct demangled_hash_entry): Replace hash header with key field.
418         (hash_string_eq): New.
419         (hash_string_hash): New.
420         (symbol_hash_newfunc): Delete.
421         (symbol_hash_lookup): Modify to use htab_t.
422         (file_hash_newfunc): Delete.
423         (file_hash_lookup): Modify to use htab_t.
424         (demangled_hash_newfunc): Delete.
425         (demangled_hash_lookup): Modify to use htab_t.
426         (tlink_init): Modify to use htab_t.
427         * hash.h: Delete.
428         * hash.c: Delete.
429         * ggc.h: Delete forward structure declarations.
430         Delete prototypes for deleted functions.
431         * ggc-common.c: Don't include hash.h.
432         (ggc_add_tree_hash_table_root): Delete.
433         (ggc_mark_tree_hash_table_entry): Delete.
434         (ggc_mark_tree_hash_table): Delete.
435         (ggc_mark_tree_hash_table_ptr): Delete.
436         * gengtype.c (write_gc_structure_fields): Allow param_is option.
437         (write_gc_marker_routine_for_structure): Use visibility of
438         the parameter if there is one.
439         * function.c: Replace hash.h with hashtab.h.  Replace references
440         to 'struct hash_table *' with htab_t.
441         (struct insns_for_mem_entry): Include a plain key.
442         (fixup_var_refs_insns_with_hash): Update to use htab_t.
443         (insns_for_mem_newfunc): Delete.
444         (insns_for_mem_hash): Update to use htab_t.
445         (insns_for_mem_comp): Likewise.
446         (insns_for_mem_walk): Likewise.
447         * c-lang.c: Include ggc.h.
448         * Makefile.in (OBJS): Remove hash.o.
449         (c-lang.o): Add GGC_H.
450         (COLLECT2_OBJS): Remove hash.o.
451         (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
452         (ggc-common.o): Remove hash.h.
453         (function.o): Remove hash.h, add HASHTAB_H.
454         (genautomata.o): Remove hash.h, add HASHTAB_H.
455
456         * varasm.c (mark_const_str_htab_1): Delete.
457         (mark_const_str_htab): Delete.
458         (const_str_htab_del): Delete.
459         (const_str_htab): Use gengtype to mark.
460         (init_varasm_once): Use gengtype to mark hashtables.  Use GC to
461         allocate them.
462         * tree.c (mark_tree_hashtable_entry): Delete.
463         (mark_tree_hashtable): Delete.
464         * tree.h (mark_tree_hashtable): Delete prototype.
465         * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
466         (ggc_mark): Likewise.
467         (ggc_calloc): New.
468         (htab_create_ggc): New.
469         * ggc-common.c (ggc_calloc): New.
470         * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
471         (struct type): Add param_struct structure.
472         * gengtype.c (param_structs): New.
473         (adjust_field_type): Handle param_is option.
474         (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
475         (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
476         (write_gc_structure_fields): Add new PARAM parameter.  Update
477         callers.  Handle use_param option.  Handle TYPE_PARAM_STRUCT.
478         (write_gc_marker_routine_for_structure): Add new PARAM parameter.
479         Use it to generate function name.  Update callers.
480         (write_gc_types): Add new PARAM_STRUCTS parameter.  Update callers.
481         Process them.
482         (write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
483         option.
484         (main): Define PTR as pointer-to-scalar.  Don't specially
485         mark deferred_string or ehl_map_entry.
486         * gengtype-yacc.y (PARAM_IS): Add new token.
487         (externstatic): Use adjust_field_type.
488         (type_option): Add PARAM_IS.
489         * gengtype-lex.l: Add rule for typedef of function pointers.
490         Add rule for PARAM_IS.
491         (IWORD): Add size_t.
492         * except.c (exception_handler_label_map): Use gengtype to mark.
493         (type_to_runtime_map): Likewise.
494         (mark_ehl_map_entry): Delete.
495         (mark_ehl_map): Delete.
496         (init_eh): Use gengtype for roots; use GC to allocate hash tables.
497         (t2r_mark_1): Delete.
498         (t2r_mark): Delete.
499         * Makefile.in (gtype-desc.o): Correct dependencies.
500         (GTFILES): Add hashtab.h.
501         (genautomata.o): Actually uses hashtab.h.
502
503         * Makefile.in (stringpool.o): Add $(GGC_H).
504         (dwarf2asm.o): Likewise.
505         (GTFILES): Add hashtable.h.
506         * c-common.h (struct c_common_identifier): Use gengtype.
507         * c-decl.h (c_mark_tree): Delete.
508         * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
509         * c-tree.h (struct lang_identifier): Use gengtype.
510         (union lang_tree_node): New.
511         (c_mark_tree): Delete prototype.
512         * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy 
513         dwarf2_debug_hooks.
514         * gengtype-lex.l (IWORD): Allow 'bool'.
515         (ptr_alias): Match.
516         * gengtype-yacc.y (ALIAS): New token.
517         (type_option): New rule.
518         (option): Use type_option.
519         * gengtype.c (process_gc_options): New.
520         (set_gc_used_type): Use it.
521         (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
522         Add new variable 't' to hold the type of the field being processed.
523         Add more error checking.  Use UNION_P when looking at 'desc' option.
524         Handle language-specific structures containing other
525         language-specific structures.
526         (write_gc_types): Handle 'ptr_alias' option.
527         (main): Don't need to specially output lang_type, lang_decl, lang_id2.
528         * ggc-common.c (ggc_pending_trees): Delete.
529         (ggc_mark_roots): Don't manipulate ggc_pending_trees.
530         (ggc_mark_trees): Delete.
531         (gt_ggc_m_tree_node): Delete.
532         * ggc.h (ggc_pending_trees): Delete.
533         (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
534         * hashtable.h (ht_identifier): Use gengtype.
535         * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
536         * langhooks.h (struct lang_hooks): Delete mark_tree.
537         * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
538         anyway.
539         * system.h: Poison LANG_HOOKS_MARK_TREE.
540         * tree.c (tree_node_structure): New.
541         * tree.h (struct tree_common): Use gengtype.
542         (struct tree_int_cst): Likewise.
543         (struct tree_real_cst): Likewise.
544         (struct tree_string): Likewise.
545         (struct tree_complex): Likewise.
546         (struct tree_vector): Likewise.
547         (struct tree_identifier): Likewise.
548         (struct tree_list): Likewise.
549         (struct tree_vec): Likewise.
550         (struct tree_exp): Likewise.
551         (struct tree_block): Likewise.
552         (struct tree_type): Likewise.
553         (struct tree_decl): Likewise.
554         (enum tree_structure_enum): New.
555         (union tree_node): Use gengtype, with an alias.
556         (tree_node_structure): Prototype.
557         * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
558
559         Merge to tag pch-merge-20020430.  The LANG_HOOKS_FUNCTION_MARK
560         macro was deleted.  The LANG_HOOKS_FUNCTION_FREE macro was renamed
561         to LANG_HOOKS_FUNCTION_FINAL.
562         * Makefile.in (GTFILES): Add bitmap.h.
563         * except.c (struct eh_region): Mark field 'aka' to be skipped.
564
565         * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
566         (alpha_init_machine_status): Give proper type.
567         * Makefile.in (c-lang.o): Depend on gtype-c.h.
568         (optabs.o): Depend on gt-optabs.h.
569         (GTFILES): Add optabs.o.
570         (gt-optabs.h): Add rule.
571         * optabs.c: Include gt-optabs.h.
572
573         * gengtype.c (set_gc_used_type): Correct some errors in last change.
574         (write_gc_structure_fields): If a field which should be NULL is
575         not, abort.
576         * c-pragma.c: Move struct align_stack and variable alignment_stack
577         out from the ifdef.
578
579         * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
580         * config/xtensa/xtensa.c: Include gt-cris.h.
581         (struct machine_function): Use gengtype to mark.
582         * config/mmix/mmix.h (struct machine_function): Use gengtype
583         to mark.
584         * config/cris/t-cris: Add dependencies for gt-cris.h.
585         * config/cris/cris.c: Include gt-cris.h.
586         (struct machine_function): Use gengtype to mark.
587         * config/rs6000/rs6000.h (struct machine_function): Use gengtype
588         to mark.
589         * doc/tm.texi (Per-Function Data): Delete references to
590         mark_machine_status.
591         * config/ia64/ia64.c (ia64_override_options): Don't set
592         mark_machine_status.
593         * config/i386/i386.c (override_options): Likewise.
594         * config/d30v/d30v.c (d30v_init_expanders): Likewise.
595         * config/arm/arm.c (arm_init_expanders): Likewise.
596         * config/alpha/alpha.c (override_options): Likewise.
597         * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO. 
598         * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
599         (write_gc_structure_fields): Don't handle 'really' option.
600         Handle 'maybe_null' option.
601         (write_gc_types): Handle 'maybe_null' option.
602         * function.h (struct function): Don't use "really".
603         (mark_machine_status): Delete declaration.
604         (mark_lang_status): Delete declaration.
605         (gt_ggc_mr_machine_function): Delete prototype.
606         (gt_ggc_mr_language_function): Delete prototype.
607         * function.c (mark_machine_status): Delete.
608         (mark_lang_status): Delete.
609         (gt_ggc_mr_machine_function): Delete.
610         (gt_ggc_mr_language_function): Delete.
611         * c-tree.h (mark_c_function_context): Delete prototype.
612         * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
613         * c-decl.c (struct language_function): Rename from struct
614         c_language_function.  Update uses.  Use gengtype to mark.
615         (mark_c_function_context): Delete.
616         * c-common.h (struct c_language_function): Rename from struct
617         language_function.
618         (mark_stmt_tree): Delete prototype.
619         (c_mark_lang_decl): Delete prototype.
620         (mark_c_language_function): Delete prototype.
621         * c-common.c (mark_stmt_tree): Delete.
622         (c_mark_lang_decl): Delete.
623         (mark_c_language_function): Delete.
624
625         * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
626         (lang_bitmap): New typedef.  Use where appropriate.
627         (struct type): Add gc_used field, lang_struct field.
628         (UNION_P): New macro.
629         (new_structure): New prototype.
630         (find_structure): Remove 'pos' parameter.  Change all callers.
631         * gengtype-lex.l: Update for changes to find_structure.
632         * gengtype-yacc.y (typedef_struct): Use new_structure.
633         (yacc_ids): Suppress warning.
634         (type): Use new_structure.
635         * gengtype.c (string_type): Update for changes to struct type.
636         (find_structure): Just find a structure, don't worry about
637         creating one.
638         (new_structure): New.
639         (note_yacc_type): Use new_structure.
640         (set_gc_used_type): New.
641         (set_gc_used): New.
642         (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
643         (write_gc_types): Handle TYPE_LANG_STRUCT.
644         (write_gc_marker_routine_for_structure): New.
645         (main): Call set_gc_used.  Add some calls to set_gc_used_type
646         for places where GCC doesn't use gengtype properly yet.
647         * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
648         (gt_ggc_m_tree_node): Likewise.
649
650         * varasm.c (copy_constant): Call expand_constant if we hit
651         something we can't recognise.
652
653         * ggc-common.c (ggc_mark_rtvec_children): Delete.
654         (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
655         (lang_mark_false_label_stack): Delete.
656         * rtl.h (struct rtvec_def): Use gengtype to mark.
657         * ggc.h (ggc_mark_rtvec): Delete.
658         (gt_ggc_m_rtvec_def): Delete.
659         (ggc_mark_nonnull_tree): Delete.
660         (ggc_mark_rtvec_children): Delete prototype.
661         (lang_mark_false_label_stack): Delete declaration.
662
663         * gengtype.h (note_yacc_type): Add prototype.
664         * gengtype.c (note_yacc_type): New function.
665         * gengtype-lex.l: Add lexer support for yacc files.
666         * gengtype-yacc.y (start): Extract union from yacc files.
667         (yacc_union): New rule.
668         (yacc_typematch): New rule.
669         (yacc_ids): New rule.
670         (enum_items): Tweak for efficiency.
671         (optionseq): Likewise.
672
673         * c-common.h (struct language_function): Use gengtype.
674         (struct c_lang_decl): Likewise.
675         * c-tree.h (struct lang_decl): Likewise.
676         (struct lang_type): Likewise.
677         * c-decl.c (lang_mark_tree): Use generated marker routines to mark
678         tree language substructures.
679
680         * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
681         ggc_mark_tree.
682         * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
683
684         * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
685
686         * stmt.c (struct nesting): Add discriminator.  Use gengtype to
687         mark. Remove 'data.block.cleanup_ptr' field.
688         (struct stmt_status): Use usual technique to mark struct nesting.
689         (gt_ggc_mr_nesting_cond): Delete.
690         (gt_ggc_mr_nesting_loop): Delete.
691         (gt_ggc_mr_nesting_block): Delete.
692         (gt_ggc_mr_nesting_case_stmt): Delete.
693         (expand_start_cond): Set discriminator.
694         (expand_start_loop): Likewise.
695         (expand_start_null_loop): Likewise.
696         (expand_start_bindings_and_block): Set discriminator.  Don't set
697         deleted fields.
698         (expand_decl_cleanup): Replace 'cleanup_ptr' with
699         &thisblock->data.block.cleanups.
700         (expand_start_case): Set discriminator.
701         (expand_start_case_dummy): Set discriminator.
702
703         * ggc-callbacks.c: Remove.
704
705         * gengtype.h (struct type): Add 'u.s.bitmap' field.
706         (find_structure): Add 'pos' parameter.
707         * gengtype-lex.l: Update callers to find_structure.
708         * gengtype-yacc.y: Likewise.
709         * gengtype.c (find_structure): Allow for structures to be defined
710         in multiple language backends.
711         (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
712         (counter): Rename to gc_counter.
713         (write_gc_structure_fields): Fail when writing out fields for
714         an incomplete structure.  Ignore arrays of scalars.  Handle
715         'tree_vec' special.
716         (write_gc_types): Reset counter for each procedure written.
717
718         * stmt.c (add_case_node): Use GGC to allocate struct case_node.
719         (free_case_nodes): Delete.
720         (expand_end_case_type): Delete call to free_case_nodes.
721
722         * Makefile.in (cselib.o): Include gt-<filename>.h.
723         (gcse.o): Likewise.
724         (profile.o): Likewise.
725         (alias.o): Likewise.
726         (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
727         alphabetize backend files.
728         (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
729         * alias.c: Use gengtype for roots.
730         * c-common.h (struct stmt_tree_s): Use gengtype.
731         * c-decl.c: Use gengtype for roots.
732         * cselib.c: Use gengtype for roots.
733         * expr.c: Use gengtype for roots.
734         * fold-const.c: Use gengtype for roots.
735         * gcse.c: Use gengtype for roots.
736         * gengtype-lex.l: Handle typedefs of function types.
737         Allow for empty array bounds.
738         Allow processing to stop on initialisers.
739         * gengtype-yacc.y (externstatic): Stop processing on initialisers.
740         (semiequal): New rule.
741         * gengtype.c (create_file): Tidy output files.
742         (get_output_file_with_visibility): Fix paren warning.  Fix bug
743         involving multiple input files mapping to one output file.
744         (write_gc_structure_fields): Skip arrays of scalars.
745         (write_gc_types): Tidy output files.
746         (write_gc_root): New function.
747         (write_gc_roots): Fix bugs, add support for roots that are
748         structures.
749         * ggc-common.c (ggc_mark_rtx_ptr): Delete.
750         (ggc_mark_tree_ptr): Delete.
751         (ggc_add_rtx_root): Delete.
752         (ggc_add_tree_root): Delete.
753         (ggc_del_root): Delete.
754         * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
755         allocate struct initial_value_struct.
756         * profile.c: Use gengtype for roots.
757         * sdbout.c: Use gengtype for roots.
758         * varasm.c (mark_weak_decls): Delete unused prototype.
759         (mark_const_hash_entry): Delete unused function.
760         * config/darwin-protos.h: Use gengtype for roots.
761         (machopic_add_gc_roots): Delete.
762         * config/arm/arm.c: Use gengtype for roots.
763         * config/arm/arm.h: Use gengtype for roots.
764         * config/c4x/c4x-protos.h: Use gengtype for roots.
765         * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
766         * config/d30v/d30v-protos.h: Use gengtype for roots.
767         * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
768         * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
769         * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
770         * config/ia64/ia64-protos.h: Use gengtype for roots.
771         * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
772         * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
773         * config/m68hc11/m68hc11.c (z_reg): Make global.
774         (z_reg_qi): Make global.
775         (m68hc11_add_gc_roots): Delete.
776         * config/mcore/mcore-protos.h: Use gengtype for roots.
777         * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
778         * config/mips/mips.c (mips_add_gc_roots): Delete.
779         * config/mips/mips.h: Use gengtype for roots.
780         * config/mmix/mmix.c (override_options): Use gengtype for roots.
781         * config/mmix/mmix.h: Use gengtype for roots.
782         * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
783         * config/mn10200/mn10200.h: Use gengtype for roots.
784         * config/pa/pa.c: Use gengtype for roots, marking.
785         (struct deferred_plabel): Use GGC, gengtype.
786         (pa_add_gc_roots): Delete.
787         (mark_deferred_plabels): Delete.
788         * config/pj/pj-protos.h: Use gengtype for roots.
789         * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
790         * config/rs6000/rs6000.c: Use gengtype for roots.  Don't call
791         machopic_add_gc_roots.
792         * config/rs6000/rs6000.h: Use gengtype for roots.
793         * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
794         (gt-darwin.h): Add rule.
795         * config/sh/sh.c: Use gengtype for roots.
796         * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
797         (gt-sh.h): Add rule.
798         * config/sparc/sparc.c: Use gengtype for roots.
799         (sparc_add_gc_roots): Delete.
800         (struct ultrasparc_pipeline_state): Use GGC, gengtype.
801         (mark_ultrasparc_pipeline_state): Delete.
802         * config/sparc/sparc.h: Use gengtype for roots.
803
804         * Makefile.in (c-parse.o): Update dependencies.
805         (c-common.o): Likewise.
806         (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
807         Add dependencies for the files they generate.
808         * c-common.c: Replace ggc_add_* uses with GTY annotations.
809         * c-common.h: Likewise.
810         * c-decl.c: Likewise.
811         (gt_ggc_mp_binding_level): Delete.
812         * c-lang.c: Include gtype-c.h.
813         * c-parse.in: Replace ggc_add_* uses with GTY annotations.  Include
814         gt-c-parse.h.
815         * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
816         (gt_ggc_mp_align_stack): Delete.
817         * c-tree.h: Replace ggc_add_* uses with GTY annotations.
818         * function.c: Replace ggc_add_* uses with GTY annotations.
819         (gt_ggc_mp_function): Delete.
820         * function.h: Replace ggc_add_* uses with GTY annotations.
821         * gengtype.c (lang_names): New.
822         (NUM_BASE_FILES): New.
823         (open_base_files): Create language base files.
824         (startswith): New.
825         (get_file_basename): New.
826         (get_base_file_bitmap): New.
827         (get_output_file_with_visibility): Rename from get_output_file.
828         Add more mappings for various C/Objc filenames.
829         (finish_root_table): New.
830         (write_gc_roots): Handle dependencies and scoping properly.
831         * gengtype.h: Add prototypes for new functions.
832         * ggc-common.c (struct deletable_root): Delete.
833         (deletables): Delete.
834         (ggc_add_deletable_root): Delete.
835         (ggc_mark_roots): No need to deal with deleted functionality.
836         * ggc.h (ggc_add_deletable_root): Delete prototype.
837         * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
838         (gtype-objc.h): Add rule to create.
839         * objc/config-lang.in (gtfiles): New.
840         * objc/objc-act.c: Allocate imp_list using GGC.  Replace uses of
841         ggc_add_* with GTY markers.  Include gtype-objc.h.
842         (ggc_mark_imp_list): Delete.
843         * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
844         * objc/objc-lang.c: Random Whitespace Change.
845
846         * except.h (exception_handler_labels): Delete.
847         (get_exception_handler_labels): New.
848         * except.c (exception_handler_labels): Delete.
849         (struct eh_status): Add exception_handler_labels field.
850         (doing_eh): Don't add exception_handler_labels as root.
851         (free_eh_status): Don't need to free exception_handler_labels.
852         (get_exception_handler_labels): New.
853         (find_exception_handler_labels): Update for move of
854         exception_handler_labels.
855         (remove_exception_handler_label): Likewise.
856         * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
857         * jump.c (rebuild_jump_labels): Likewise.
858         * loop.c (find_and_verify_loops): Likewise.
859         * sched-rgn.c (is_cfg_nonregular): Likewise.
860
861         * gengtype.c (write_gc_structure_fields): Handle variable-length
862         TYPE_ARRAYs.
863
864         * varasm.c (struct weak_syms): Use GGC, gengtype.
865         (mark_weak_decls): Delete.
866         (weak_decls): Likewise.
867         (add_weak): Likewise.
868         (remove_from_pending_weak_list): Likewise.
869         (init_varasm_once): Likewise.
870
871         * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
872         (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
873         stor-layout.c, regclass.c, and lists.c.
874         Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
875         gt-regclass.h and gt-lists.h on s-gtype.
876         * emit-rtl.c: Use gengtype for roots.  Include gt-emit-rtl.h.
877         * except.c: Use gengtype for roots.
878         * explow.c: Use gengtype for roots.  Include gt-explow.h.
879         * expr.h (init_stor_layout_once): Delete prototype.
880         * function.c: Use gengtype for roots.
881         * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
882         * gengtype-yacc.y (start): Can also be an externstatic.
883         (externstatic): New production.
884         (struct_fields): Correct array bounds inversion for 2-d arrays.
885         * gengtype.c (variables): New variable.
886         (note_variable): New function.
887         (get_output_file): Include libfuncs.h into gtype-desc.c.
888         (get_output_file_name): New function.
889         (write_gc_structure_fields): Suppress warnings.
890         (write_gc_types): Make static.
891         (put_mangled_filename): New function.
892         (write_gc_roots): New function.
893         (main): Call write_gc_roots.
894         * gengtype.h (note_variable): Prototype.
895         (get_output_file_name): Prototype.
896         (write_gc_types): Delete prototype.
897         * ggc.h: Clean up unnecessary structure predefinitions.
898         (struct ggc_root_tab): Define.
899         (gt_ggc_m_rtx_def): Make function, not macro.
900         (gt_ggc_m_tree_node): Likewise.
901         * libfuncs.h: Use gengtype for roots.
902         * lists.c: Use gengtype for roots.  Include gt-lists.h.
903         (init_EXPR_INSN_LIST_cache): Delete.
904         * optabs.c: Use gengtype for roots.
905         (gt_ggc_mp_optab): Delete.
906         * optabs.h: Use gengtype for roots.
907         * regclass.c: Use gengtype for roots.  Include gt-regclass.h.
908         * rtl.h: Use gengtype for roots.
909         (init_EXPR_INSN_LIST_cache): Delete prototype.
910         * stor-layout.c: Use gengtype for roots.
911         Include gt-stor-layout.h.
912         (init_stor_layout_once): Delete.
913         * toplev.c: Use gengtype for roots.  Delete calls to deleted
914         routines.
915         * tree.c: Use gengtype for roots.
916         * tree.h: Use gengtype for roots.
917         * varasm.c: Use gengtype for roots.
918         
919         * Makefile.in (GTFILES): Add @all_gtfiles@.
920         * configure: Regenerate.
921         * configure.in: Construct all_gtfiles from the gtfiles definitions
922         in config-lang.in.
923         * gengtype-yacc.y (type): Warn about duplicate structure names.
924         * gengtype.c (get_output_file): Handle .c files in language
925         subdirectories.
926
927         * Makefile.in (GTFILES): Run gengtype on all the config files
928         and on the target .c file.
929         * except.c (mark_eh_region): Delete.
930         (init_eh_for_function): Use GGC on struct eh_status.
931         (mark_eh_status): Delete.
932         (free_eh_status): Use GGC.
933         (expand_eh_region_start): Use GGC to
934         (collect_eh_region_array): Allocate last_region_number using GGC.
935         (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
936         (remove_eh_handler): Let GGC free struct eh_region.
937         (add_call_site): Use GGC to reallocate call_site_record array.
938         * function.c (init_machine_status): Update calling sequence.
939         (mark_machine_status): Likewise.
940         (mark_lang_status): Likewise.
941         (prepare_function_start): Update init_machine_status call.
942         (mark_function_status): Delete.
943         (maybe_mark_struct_function): Delete.
944         (ggc_mark_struct_function): Delete.
945         (gt_ggc_mp_function): New.
946         (gt_ggc_mr_machine_function): New.
947         (gt_ggc_mr_language_function): New.
948         (init_function_once): Use canonical names.
949         * function.h (struct function): Use gengtype.
950         (init_machine_status): Return the structure.
951         (mark_machine_status): Take a 'void *'.
952         (mark_lang_status): Likewise.
953         * ggc-common.c (ggc_mark_trees): Use canonical name for
954         ggc_mark_struct_function.
955         * tree.h (ggc_mark_struct_function): Delete prototype.
956         * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
957         (alpha_init_machine_status): Likewise.
958         (override_options): Use canonical name for alpha_mark_machine_status.
959         * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
960         * config/arm/arm.h (struct machine_function): Use gengtype.
961         * config/arm/arm.c (arm_mark_machine_status): Delete.
962         (arm_init_machine_status): Update calling sequence.
963         (arm_init_expanders): Use canonical name for arm_mark_machine_status.
964         * config/cris/cris.c (cris_init_machine_status): Update 
965         calling sequence.
966         * config/d30v/d30v.h (struct machine_function): Use gengtype.
967         * config/d30v/d30v.c (d30v_init_machine_status): Update 
968         calling sequence.
969         (d30v_mark_machine_status): Delete.
970         * config/i386/i386.c: Include gt-i386.h.
971         (struct machine_function): Use gengtype.
972         (ix86_init_machine_status): Update calling sequence.
973         (ix86_mark_machine_status): Delete.
974         (override_options): Use canonical namke for ix86_mark_machine_status.
975         * config/ia64/ia64.h (struct machine_function): Use gengtype.
976         * config/ia64/ia64.c (ia64_init_machine_status): Update calling 
977         sequence.
978         (ia64_mark_machine_status): Delete.
979         (ia64_override_options): Use canonical name for 
980         ia64_mark_machine_status.
981         * config/mmix/mmix.c (mmix_init_machine_status): Update calling 
982         sequence.
983         * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
984         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
985         * gengtype.c (get_output_file): Fix warning.
986         (main): Add prototype to suppress warning.
987         * tree.c: Remove tree_hash_mark prototype.
988
989         * tree.h (init_stmt): Delete prototype.
990         * toplev.c (lang_independent_init): Don't call init_stmt.
991         * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
992         (stmt_obstack): Delete.
993         (POPSTACK): No need to free 'struct nesting'.
994         (gt_ggc_mr_nesting_cond): Use canonical names.
995         (gt_ggc_mr_nesting_loop): Use canonical names.
996         (gt_ggc_mr_nesting_block): Use canonical names.
997         (gt_ggc_mr_nesting_case_stmt): Use canonical names.
998         (mark_stmt_status): Delete.
999         (init_stmt): Delete.
1000         (clear_last_expr): Clear both last_expr_type and last_expr_value.
1001         Use it everywhere that last_expr_type was cleared.
1002         * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
1003         (zap_lists): Delete.
1004         * ggc.h (ggc_add_deletable_root): Prototype.
1005         (mark_stmt_status): Remove prototype.
1006         * ggc-common.c (ggc_add_deletable_root): New.
1007         (ggc_mark_roots): Handle deletable roots.
1008         * function.c (ggc_mark_struct_function): Use canonical name
1009         for mark_stmt_status.
1010         * emit-rtl.c (free_sequence_stack): New.
1011         (start_sequence): Use a freelist for sequences.
1012         (end_sequence): Likewise.
1013         (init_emit_once): Add free_sequence_stack as a deleteable root.
1014         * c-pragma.c Include gt-c-pragma.h.
1015         (struct align_stack): Use gengtype.
1016         (push_alignment): Use GGC for struct align_stack.
1017         (mark_align_stack): Delete.
1018         (gt_ggc_mp_align_stack): New.
1019         (init_pragma): Use canonical name for mark_align_stack.
1020         * c-decl.c: Include gt-c-decl.h.
1021         (struct binding_level): Use gengtype.
1022         (make_binding_level): Use GGC; handle the freelist here.
1023         (pop_binding_level): New.
1024         (pushlevel): Move code into make_binding_level.
1025         (push_label_level): Likewise.
1026         (poplevel): Move code into pop_binding_level.
1027         (pop_label_level): Likewise.
1028         (mark_binding_level): Delete.
1029         (gt_ggc_mp_binding_level): New.
1030         (c_init_decl_processing): Use canonical name for mark_binding_level.
1031         Add free_binding_level as deletable root.
1032         (mark_c_function_context): Use canonical name for mark_binding_level.
1033         * Makefile.in (c-decl.o): Add gt-c-decl.h.
1034         (c-pragma.o): Add gt-c-pragma.h.
1035         (GTFILES): Add c-decl.c and c-pragma.c.
1036         (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
1037
1038         * tree.c (struct type_hash): Use gengtype.
1039         (init_obstacks): Use canonical name for type_hash_mark.
1040         (type_hash_mark): Delete.
1041         Include gt-tree.h.
1042         * rtl.h (struct mem_attrs): Use gengtype.
1043         * optabs.h (struct optab): Use gengtype.
1044         * optabs.c (expand_binop): Squish signed/unsigned warning.
1045         (mark_optab): Make local, use canonical name, use autogenerated
1046         marker procedure.
1047         (init_optabs): Use canonical name for mark_optab.
1048         (new_optab): Use GGC to allocate optabs.
1049         * ggc.h: Delete mark_optab prototype.
1050         * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
1051         mem_attrs marker procedure.
1052         * gengtype.c (get_output_file): Include headers in gtype-desc.c
1053         explicitly rather than deducing them from file names.
1054         (write_gc_structure_fields): Handle arrays of structures.
1055         (main): Return non-zero exit code if errors occur during output.
1056         * emit-rtl.c (mem_attrs_mark): Delete.
1057         (init_emit_once): Use canonical name for mem_attrs marker procedure.
1058         * Makefile.in (gtype-desc.o): Explicitly name dependencies.
1059         (tree.o): Depend on gt-tree.h.
1060         (GTFILES): Add rtl.h, optabs.h, tree.c.
1061         (gt-tree.h): Add it to s-gtype rule.
1062
1063         * .cvsignore: Ignore gengtype flex/bison generated files.
1064         * Makefile.in (GGC_H): Add gtype-desc.h.
1065         (OBJS): Add gtype-desc.o.
1066         (GEN): Add gengtype.
1067         (STAGESTUFF): Add gengtype.
1068         (varasm.o): Add gt-varasm.h.
1069         (stmt.o): Add gt-stmt.h.
1070         (except.o): Add gt-except.h.
1071         (integrate.o): Add gt-integrate.h.
1072         (GTFILES): New.
1073         Add new rules for new files.
1074         * configure: Regenerate.
1075         * configure.in: Correct defaults.h paths.
1076         * emit-rtl.c (mark_sequence_stack): Delete.
1077         (mark_emit_status): Delete.
1078         (start_sequence): Allocate sequence structures using GGC.
1079         (end_sequence): Allocate sequence structures using GGC.
1080         * except.c: Use gengtype for various structures.  Include
1081         gt-except.h.
1082         * expr.c (mark_expr_status): Delete.
1083         * function.c: Use gengtype for various structures.  Include
1084         gt-function.h.
1085         (mark_function_status): Use standard gt_ggc names for marker functions.
1086         (ggc_mark_struct_function): Likewise.
1087         * function.h: Use gengtype for various structures.
1088         * gengtype-lex.l: New file.
1089         * gengtype-yacc.y: New file.
1090         * gengtype.c: New file.
1091         * gengtype.h: New file.
1092         * ggc.h: Include gtype-desc.h.  Alias some marker procedures to
1093         the standard names.  Remove some now-unnecessary prototypes.
1094         * integrate.c: Use gengtype for various structures.  Include
1095         gt-integrate.h.
1096         (mark_hard_reg_initial_vals): Delete.
1097         * integrate.h (mark_hard_reg_initial_vals): Delete.
1098         * stmt.c: Use gengtype for various structures.  Include
1099         gt-stmt.h.
1100         (mark_case_node): Delete.
1101         (mark_goto_fixup): Delete.
1102         (mark_stmt_status): Use standard gt_ggc names for marker functions.
1103         * system.h: Define GTY to empty.   In flex/bison files,
1104         don't poison malloc or realloc, instead just define them to
1105         xmalloc and xrealloc.
1106         * varasm.c: Use gengtype for various structures.  Include
1107         gt-varasm.h.  Use standard gt_ggc names for marker functions.
1108         (mark_pool_constant): Delete.
1109         (mark_varasm_status): Delete.
1110         (decode_rtx_const): #if 0 out non-typesafe hack.
1111
1112         * function.h (free_lang_status): Mark as obsolete.
1113         * function.c (free_lang_status): Mark as obsolete.
1114         * c-decl.c (push_c_function_context): Use GC to allocate and free
1115         struct language_function.
1116         (pop_c_function_context): Likewise.
1117         * c-common.c (mark_c_language_function): Mark struct
1118         language_function.
1119
1120         * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
1121         Document that the machine_function structures must be allocated
1122         using GC.  Update mark_machine_status documentation.
1123         * function.h: Don't declare free_machine_status.
1124         * function.c (free_machine_status): Don't define. 
1125         (free_after_compilation): Don't call free_machine_status.
1126         (ggc_mark_struct_function): Mark f->machine.  Call
1127         mark_machine_status only on non-NULL pointers.
1128         * system.h: Poison free_machine_status.
1129         * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
1130         struct machine_function.
1131         (xtensa_free_machine_status): Delete.
1132         (override_options): Don't set free_machine_status.
1133         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
1134         free_machine_status.
1135         (rs6000_init_machine_status): Use GC on struct machine_function.
1136         (rs6000_free_machine_status): Delete.
1137         * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
1138         machine_function.
1139         (ia64_mark_machine_status): Likewise.
1140         (ia64_free_machine_status): Delete.
1141         (ia64_override_options): Don't set free_machine_status.
1142         * config/i386/i386.c (override_options): Don't set
1143         free_machine_status.
1144         (ix86_init_machine_status): Use GC on struct machine_function.
1145         (ix86_mark_machine_status): Likewise.
1146         (ix86_free_machine_status): Delete.
1147         * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
1148         machine_function.
1149         (d30v_mark_machine_status): Likewise.
1150         (d30v_free_machine_status): Delete.
1151         (d30v_init_expanders): Don't set free_machine_status.
1152         * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
1153         machine_function.
1154         (arm_init_machine_status): Likewise.
1155         (arm_free_machine_status): Delete.
1156         (arm_init_expanders): Don't set free_machine_status.
1157         * config/alpha/alpha.c (override_options): Don't set
1158         free_machine_status.
1159         (alpha_init_machine_status): Use GC on struct machine_function.
1160         (alpha_mark_machine_status): Likewise.
1161         (alpha_free_machine_status): Delete.
1162
1163         * varasm.c (compare_constant): Fix typo.
1164
1165         * varasm.c: Don't include obstack.h.
1166         (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
1167         (struct rtx_const): Give substructures names, improve formatting.
1168         (struct constant_descriptor): Delete.
1169         (struct constant_descriptor_tree): New, based on constant_descriptor.
1170         (const_hash_table): Is a hash table of trees.
1171         (mark_const_hash_entry): Is used for hashes of trees.  Mark
1172         constant_descriptor_tree structure.
1173         (mark_const_str_htab_1): Mark deferred_string structure.
1174         (compare_constant): Rewrite to compare trees.
1175         (compare_constant_1): Delete.
1176         (record_constant): Delete.
1177         (record_constant_1): Delete.
1178         (output_constant_def): Use struct constant_descriptor_tree.
1179         Don't duplicate trees twice.
1180         (struct constant_descriptor_rtx): New.
1181         (struct pool_constant): Used for rtx constants.
1182         (init_varasm_status): Update for change to struct varasm_status.
1183         (mark_varasm_status): Likewise.
1184         (free_varasm_status): Delete.
1185         (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
1186         (record_constant_rtx): Likewise.
1187         (mem_for_const_double): Update to use struct constant_descriptor_rtx.
1188         (force_const_mem): Likewise.
1189         * Makefile.in (varasm.o): Doesn't depend on obstack.h.
1190         * function.c (free_after_compilation): Don't use free_varasm_status.
1191         * function.h: Don't prototype free_varasm_status.
1192
1193         * ggc-common.c (ggc_realloc): Handle X being NULL.
1194
1195         * ggc-common.c (ggc_realloc): New function.
1196         * ggc.h: Prototype it.
1197         * emit-rtl.c (free_emit_status): Delete.
1198         (init_emit): Allocate emit subarrays using GC.
1199         (gen_reg_rtx): Reallocate subarrays using GC.
1200         (init_emit): Use GC to allocate 'struct emit_status' and its
1201         subarrays.
1202         (mark_emit_status): Mark structure and its subarrays.
1203         * stmt.c (free_stmt_status): Delete.
1204         * expr.c (free_expr_status): Delete.
1205         * function.h: Remove prototypes for deleted functions.
1206         * function.c (free_after_compilation): Don't use deleted functions.
1207         Don't call free() on x_parm_reg_stack_loc.
1208         (free_after_parsing): Don't use free_stmt_status.
1209         (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
1210         (mark_function_status): Mark x_parm_reg_stack_loc.
1211
1212         * varasm.c (init_varasm_status): Use GC to allocate
1213         'struct varasm_status' and its fields x_const_rtx_hash_table
1214         and x_const_rtx_sym_hash_table.
1215         (mark_varasm_status): Mark them.
1216         (free_varasm_status): Use GC to free them.
1217         * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
1218         (mark_expr_status): Mark the structure itself.
1219         (free_expr_status): Use GC to free the structure.
1220         * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
1221         (mark_stmt_status): Mark the 'struct stmt_status' itself.
1222         (init_stmt_for_function): Allocate the structure for GC.
1223
1224         * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
1225         (equate_type_number_to_die): Likewise.
1226         * tree.h (TYPE_SYMTAB_DIE): New macro.
1227         (struct die_struct): Predeclare.
1228         (struct tree_type): Add field symtab.die.   Add a tag
1229         to the union type of field symtab.
1230
1231         * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
1232         'struct rtvec_def *', not 'struct rtvec_def'.
1233
1234         * function.h (original_arg_vector): Make a real rtvec.
1235         * function.c (ggc_mark_struct_function): Adjust.
1236         * integrate.c (expand_inline_function): Adjust.
1237
1238 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
1239
1240         * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
1241         (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
1242         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
1243         (TARGET_VERSION_CPU): Define according to the
1244         default target.
1245         (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
1246         TARGET_VERSION_CPU.
1247         (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
1248         if TARGET_SHMEDIA64.
1249         (LINK_DEFAULT_CPU_EMUL): Define according to the
1250         default target.
1251         (SUBTARGET_LINK_EMUL_SUFFIX): Define.
1252         (SUBTARGET_LINK_SPEC): Define.
1253         (LINK_SPEC): Use SH_LINK_SPEC.
1254         (ASM_SPEC): Remove.
1255         (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
1256         (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
1257         and TARGET_SHMEDIA64 which abort, for now.
1258         * config/sh/t-netbsd-sh5: New file.
1259         * config/sh/t-netbsd-sh5-32: New file.
1260         * config/sh/t-netbsd-sh5-64: New file.
1261
1262 2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
1263             Richard Henderson  <rth@redhat.com>
1264
1265         * config/alpha/alpha.c (reg_or_const_int_operand): New.
1266         (some_operand, input_operand): Accept CONST_VECTOR.
1267         (alpha_extra_constraint): Add 'W'.
1268         (alpha_expand_zap_mask): New.
1269         (alpha_expand_builtin_vector_binop): New.
1270         (enum alpha_builtin): New.
1271         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
1272         (alpha_init_builtins, alpha_expand_builtin): New.
1273         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
1274         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
1275         (PREDICATE_CODES): Update.
1276         * config/alpha/alpha-protos.h: Update.
1277         * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
1278         UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
1279         (movv8qi, movv8qi_fix, movv8qi_nofix): New.
1280         (movv4hi, movv4hi_fix, movv4hi_nofix): New.
1281         (movv2si, movv2si_fix, movv2si_nofix): New.
1282         (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
1283         (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
1284         (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
1285         builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
1286         builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
1287         builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
1288         builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
1289         pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
1290         builtin_unpkbw, unpkbw): New.
1291         * doc/extend.texi (Alpha Built-in Functions): New.
1292
1293 2002-06-03  Richard Henderson  <rth@redhat.com>
1294
1295         * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
1296         USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
1297
1298 2002-06-03  Richard Henderson  <rth@redhat.com>
1299
1300         * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
1301
1302         * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
1303         (const0_operand): New.
1304         (reg_or_fp0_operand, fp0_operand): Remove.
1305         * config/alpha/alpha.h (PREDICATE_CODES): Update.
1306         * config/alpha/alpha-protos.h: Update.
1307         * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
1308         and fp0_operand with reg_or_0_operand and const0_operand.
1309
1310 2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
1311
1312         * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
1313
1314 2002-06-03  Roger Sayle  <roger@eyesopen.com>
1315
1316         * gcse.c (cprop_jump): Use single_set to get the pattern
1317         from the setcc argument.
1318
1319 2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>
1320
1321         * diagnostic.h (diagnostic_count): Move from output_buffer to 
1322         diagnostic_context.
1323         (diagnostic_kind_count): Adjust definition.
1324
1325 Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
1326
1327         * except.c (except.c): Do not rebuild CFG.
1328         * toplev.c (rest_of_compilation): Recompute CFG after sibcall
1329         optimization.
1330
1331 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
1332
1333         * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
1334         * toplev.c: Include cfglahout.h
1335         * Makefile.in (toplev.c): Add dependnecy.
1336
1337 2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>
1338
1339         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
1340         (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
1341         (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
1342
1343 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
1344
1345         * config/ns32k/netbsd.h: Update copyright years.
1346         (TARGET_OS_CPP_BUILTINS): Define.
1347         (CPP_PREDEFINES): Remove.
1348         * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
1349         (TARGET_CPU_CPP_BUILTINS): Define.
1350
1351 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1352
1353         * emit-rtl.c: Fix formatting.
1354         * errors.h: Likewise.
1355         * except.c: Likewise.
1356         * explow.c: Likewise.
1357         * expmed.c: Likewise.
1358         * expr.c: Likewise.
1359         * expr.h: Likewise.
1360
1361 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1362
1363         * config/h8300/elf.h: Fix formatting.
1364         * config/h8300/rtems.h: Likewise.
1365
1366 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
1367
1368         * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
1369
1370 2002-06-02  Tom Tromey  <tromey@redhat.com>
1371
1372         * fixinc/fixincl.x: Rebuilt.
1373         * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
1374
1375 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1376
1377 config/i370:
1378         * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
1379         * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
1380         * mvs.h: Similarly.
1381         * oe.h: Similarly.
1382
1383 Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
1384
1385         * final.c (final):  Allow notes to not have computed addresses;
1386         kill no longer needed STACK_REGS ifdef.
1387
1388 2002-06-02  Richard Henderson  <rth@redhat.com>
1389
1390         * gcse.c (bypass_conditional_jumps): Fix typo last change.
1391
1392 Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
1393
1394         * loop.c (emit_prefetch_instructions): Properly place the address
1395         computation.
1396
1397 Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
1398
1399         * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
1400         (set_block_for_insn): Turn into macro.
1401         * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
1402         * cfglayout.c (insn_scopes): Kill.
1403         (scope_to_insns_initialize): Do not use insn_scopes.
1404         (scope_to_insns_finalize): Likewise.
1405         (duplicate_insn_chain): Likewise.
1406         (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
1407         * cfgrtl.c (basic_block_for_insn): Kill.
1408         (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
1409         (create_basic_block_structure): Use reorder_insns.
1410         (compute_bb_for_insn): Do not use basic_block_for_insn.
1411         (merge_blocks_nomove): Likewise.
1412         (update_bb_for_insn): Likewise.
1413         (verify_flow_info): Likewise.
1414         (set_block_for_insn): Kill.
1415         * combine.c (try_combine): Update gen_rtx_INSN call.
1416         * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
1417         (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
1418         scopes and BBs.
1419         (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
1420         (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
1421         Clear BB.
1422         (emit_insns_after): Simplify.
1423         (emit_copy_of_insn_after): Copy scope.
1424         * final.c (final_start_function): Lower scopes.
1425         * flow.c (check_function_return_warnings): Do not rely on deleted insn.
1426         * integrate.c (copy_insn_list): Cope scopes.
1427         * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
1428         * loop.c (loop_optimize): Do not care block notes.
1429         * print-rtl.c (print_rtx): Print BB.
1430         * recog.c (apply_change_group): Simplify.
1431         * rtl.c (copy_rtx): Handle 'B'.
1432         * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
1433         * rtl.h (Field accessors): Update indexes.
1434         * sched-ebb.c (schedule_ebbs): Do not lower notes.
1435         * sched-rgn.c (schedule_insns): Likewise.
1436         * toplev.c (rest_of_compilation): Lower notes.
1437         * unroll.c (unroll_loop): Do not care scoping notes.
1438         (copy_loop_body): Copy scopes.
1439
1440 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1441
1442 config/h8300:
1443         * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
1444         SUBTARGET_SPEC.
1445         * rtems.h: Similarly.
1446         * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
1447         EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
1448         (TARGET_CPU_CPP_BUILTINS): Use.
1449
1450 2002-06-02  Richard Henderson  <rth@redhat.com>
1451
1452         * alias.c: Include target.h.
1453         (mark_constant_function): Use targetm.binds_local_p instead
1454         of checking TREE_PUBLIC ourselves.
1455         * Makefile.in (alias.o): Add TARGET_H.
1456
1457 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1458
1459         * c-lex.c: Update copyright and file description.
1460
1461 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1462
1463         * config/fr30/fr30.h: Update to new CPP macros.
1464
1465 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1466
1467         * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
1468
1469 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1470             Zack Weinberg <zack@codesourcery.com>
1471
1472         * c-common.c (c_common_init): Override cpplib's default
1473         warn_long_long setting.
1474         * c-lex.c (lex_number): Replace with interpret_integer,
1475         interpret_float, narrowest_unsigned_type and
1476         narrowest_signed_type, taking advantage of the new
1477         cpplib functionality.
1478         * cpperror.c (_cpp_begin_message): If a warning is turned
1479         into an error, avoid printing "warning:".
1480         * cppexp.c (cpp_num_sign_extend): New.
1481         * cppinit.c: Update comment.
1482         * cpplib.h (cpp_num_sign_extend): New.
1483         * tree.h: Update comment.
1484
1485 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
1486
1487         * diagnostic.h (struct diagnostic_context):  Add new member
1488         internal_error. 
1489         (internal_error_function): Remove declaration.
1490         * diagnostic.c (internal_error_function): Remove definition..
1491         (internal_error): Adjust use.
1492
1493 2002-06-02  Richard Henderson  <rth@redhat.com>
1494
1495         * rtl.h (CC0_P): New.
1496         * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
1497         (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
1498         (bypass_block): Save old dest block for dump text.
1499         (bypass_conditional_jumps): Allow any mode register; use CC0_P.
1500         Allow only true SET insns, not single_set.
1501
1502 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
1503
1504         * diagnostic.c (diagnostic_finish): Rename to output_flush.
1505         (clear_disgnostic_info): Rename to output_clear_data.  Use false
1506         instead of 0 for boolean value.
1507         Adjust function call throughout.
1508
1509 Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
1510
1511         * cfgrtl.c (commit_one_edge_insertion): Fix warning.
1512         * gcse.c (bypass_conditional_jumps): CSE out single_set call.
1513
1514 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1515
1516         * d30v.h (CPP_PREDEFINES): Replace with
1517         (TARGET_CPU_CPP_BUILTINS): New.
1518
1519 2002-06-02  Roger Sayle  <roger@eyesopen.com>
1520
1521         * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
1522
1523 Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
1524
1525         * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
1526
1527 2002-06-02  Richard Henderson  <rth@redhat.com>
1528
1529         * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
1530
1531 2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1532
1533         Support for C++ constructors/destructors.
1534         * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
1535         instead of looping if main() returns.
1536         (asm_file_start): Output global symbols that cause .data and .bss
1537         initialization code to be linked in, unconditionally for now.
1538         (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
1539         * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
1540         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
1541         (LIBSTDCXX): New.
1542         * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
1543         (__tablejump__): New.
1544         (__do_copy_data, __do_clear_bss): New.
1545         (__do_global_ctors, __do_global_dtors): New.
1546         * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
1547         _ctors, _dtors.
1548
1549 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1550
1551         * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
1552         (CPP_SPEC, CPP_PREDEFINES): Kill.
1553         * c4x/rtems.h (CPP_PREDEFINES): Kill.
1554         (TARGET_OS_CPP_BUILTINS): New.
1555
1556 Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>
1557
1558         * Makefile.in (tracer.o): New.
1559         * params.def (TRACER_*): New options.
1560         * rtl.h (tracer): Declare.
1561         * timevar.def (TV_TRACER): New.
1562         * toplev.c (dump_file_index): Add DFI_tracer.
1563         (dump_file_info): Add tracer.
1564         (flag_tracer): New.
1565         (lang_indepdenent_options): Add tracer.
1566         (rest_of_compilation): Call tracer.
1567         * tracer.c: New file.
1568         * invoke.texi (-ftracer): Document.
1569         (--param tracer-*): Document.
1570
1571 2002-06-01  Daniel Berlin  <dberlin@dberlin.org>
1572
1573         * tree-inline.c (expand_call_inline): Make the statement
1574         expression we generate have a COMPOUND_STMT.    
1575
1576 2002-06-01  Roger Sayle  <roger@eyesopen.com>
1577
1578         * gcse.c (cprop_cc0_jump): Function deleted.
1579         (cprop_jump): Take an additional argument which is the possibly
1580         NULL cc setting insn immediately before the conditional jump.
1581         When a MODE_CC set is present, substitute it into the JUMP_INSN
1582         before attempting the constant propagation.
1583         (cprop_insn):  Recognize cc setters followed by conditional jumps
1584         as a special case.   Use cprop_jump instead of cprop_cc0_jump.
1585         (cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
1586         (find_bypass_set): New function based upon find_avail_set used by
1587         cprop, but finds constant expressions available at the end of
1588         basic blocks.
1589         (bypass_block): New function.  Given a basic block that begins
1590         with a conditional jump and multiple incoming edges, perform
1591         the jump bypass optimization.
1592         (bypass_conditional_jumps): New function.  Call bypass_block with
1593         each suitable basic block in the CFG using a simple single pass.
1594
1595 2002-06-01  Roger Sayle  <roger@eyesopen.com>
1596
1597         * tree.c (real_minus_onep): New function to test for -1.0.
1598         * fold-const.c (fold) [MULT_EXPR]:  Optimize -1.0*x into -x.
1599
1600 2002-06-01  Roger Sayle  <roger@eyesopen.com>
1601
1602         * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
1603         and "!p && !q" into "(p|q) == 0" under suitable conditions.
1604
1605 2002-06-01  Andreas Jaeger  <aj@suse.de>
1606
1607         * cppexp.c (cpp_classify_number): Cast precission to int for
1608         correct printf format.
1609
1610 2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1611
1612         * config/avr/avr.c (avr_mcu_types): Remove devices that were once
1613         expected, but don't really exist: atmega83, atmega85, attiny10.
1614         * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
1615         emulations for all devices.
1616         (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
1617         * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
1618
1619 2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>
1620
1621         * config/h8300/h8300-protos.h: Add a prototype for
1622         h8300_shift_needs_scratch_p.
1623         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
1624         * config/h8300/h8300.h (OK_FOR_R): New.
1625         (OK_FOR_S): Likewise.
1626         (OK_FOR_T): Likewise.
1627         (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
1628         * config/h8300/h8300.md (anonymous shift patterns): Use
1629         constraints R, S, and T.
1630
1631 Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1632
1633         * basic-block.h (struct basic_block_def): New field loop_father.
1634         (BB_VISITED): New flag.
1635         (struct loop): New field pred, removed field shared.
1636         (struct loops): New field parray.
1637         (LOOP_EXITS_DOMS): Removed.
1638         (flow_loop_tree_node_add, flow_loop_tree_node_remove,
1639         flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
1640         dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
1641         add_bb_to_loop, remove_bb_from_loops, find_common_loop,
1642         verify_loop_structure): Declare.
1643         * cfg.c (entry_exit_blocks): Initialize loop_father field.
1644         * cfganal.c (dfs_enumerate_from): New function.
1645         * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
1646         (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
1647         flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
1648         flow_loop_dump, flow_loops_dump, flow_loops_free,
1649         flow_loop_tree_node_add, flow_loop_level_compute,
1650         flow_loops_level_compute, flow_loop_scan, flow_loops_update,
1651         flow_loop_outside_edge_p): Modified for new infrastructure.
1652         (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
1653         redirect_edge_with_latch_update, flow_loop_free): New static functions.
1654         (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
1655         get_loop_body, add_bb_to_loop, remove_bb_from_loops,
1656         find_common_loop, verify_loop_structure, loop_latch_edge,
1657         loop_preheader_edge): New functions.
1658         (flow_loops_cfg_dump): Do not show dominators, as this information
1659         does not remain up to date long.
1660         (flow_loops_find): Store results in new format.
1661         * predict.c (propagate_freq, estimate_probability,
1662         estimate_loops_at_level, estimate_bb_frequencies): Use new loop
1663         infrastructure.
1664
1665 2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>
1666
1667         * except.c (nothrow_function_p): Walk epilogue delay list
1668         checking the insn, not the chain for potential throws.
1669
1670 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
1671
1672         * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
1673         (install): Refer to install-cpp directly.
1674         (uninstall-cpp): Folded into uninstall rule.
1675         * configure.in: Delete all code relating to --disable-cpp.
1676         * configure: Regenerate.
1677         * config/t-install-cpp: Delete.
1678
1679 2002-05-31  Richard Henderson  <rth@redhat.com>
1680
1681         * configure.in (HAVE_AS_TLS): Add alpha tests.
1682         * configure: Rebuild.
1683         * config/alpha/alpha.c (TARGET_AS_TLS): New.
1684         (alpha_tls_size, alpha_tls_size_string): New.
1685         (overide_options): Set it.  Always install machine_status hooks.
1686         (input_operand): Accept got tls predicates.
1687         (local_symbol_p): Merge into ...
1688         (local_symbolic_operand): ... here.  Reject tls symbols.
1689         (global_symbolic_operand): Likewise.
1690         (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
1691         (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
1692         (tp16_symbolic_operand, tp32_symbolic_operand): New.
1693         (gottp_symbolic_operand, tls_symbolic_operand_type): New.
1694         (alpha_encode_section_info): Handle TLS symbols.
1695         (alpha_strip_name_encoding): Likewise.
1696         (alpha_legitimate_address_p): Likewise.
1697         (alpha_legitimize_address): Likewise.
1698         (alpha_expand_mov): Early exit to avoid nop moves.
1699         (struct machine_function): Move from unicosmk.h.  Add some_ld_name.
1700         (alpha_init_machine_status, alpha_mark_machine_status,
1701         alpha_free_machine_status): Always define.
1702         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
1703         (print_operand, print_operand_address): Add TLS relocs.
1704         * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
1705         (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
1706         (TARGET_SWITCHES): Add -mtls-kernel.
1707         (alpha_tls_size, alpha_tls_size_string): New.
1708         (TARGET_OPTIONS): Add -mtls-size=.
1709         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
1710         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
1711         (ASM_OUTPUT_LABELREF): Skip %.
1712         (PRINT_OPERAND_PUNCT_VALID_P): Add &.
1713         (PREDICATE_CODES): Update.
1714         * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
1715         UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
1716         UNSPEC_TP, UNSPECV_SET_TP): New.
1717         (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
1718         adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
1719         set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
1720         movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
1721         (call_value_osf_2_er): Accept anything as op4.
1722         * config/alpha/alpha-protos.h: Update.
1723         * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
1724
1725 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
1726
1727         * cppinit.c (append_include_chain): Always pay attention to
1728         cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
1729         marker on argument.
1730
1731 2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1732
1733         * target.h: Fix formatting.
1734         * timevar.h: Likewise.
1735         * tlink.c: Likewise.
1736         * toplev.c: Likewise.
1737         * toplev.h: Likewise.
1738         * tree.c: Likewise.
1739         * tree-dump.h: Likewise.
1740         * tree.h: Likewise.
1741         * tree-inline.h: Likewise.
1742         * unroll.c: Likewise.
1743         * unwind-dw2.c: Likewise.
1744         * unwind-dw2-fde.c: Likewise.
1745         * unwind-dw2-fde-glibc.c: Likewise.
1746         * unwind-dw2-fde.h: Likewise.
1747         * unwind.h: Likewise.
1748         * unwind-sjlj.c: Likewise.
1749         * varasm.c: Likewise.
1750         * varray.h: Likewise.
1751         * vmsdbg.h: Likewise.
1752         * vmsdbgout.c: Likewise.
1753         * xcoffout.h: Likewise.
1754
1755 2002-05-31  Igor Shevlyakov <igor@microunity.com>
1756
1757         * expr.c (compare_from_rtx): Generate comparison between op0 and op1
1758         rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
1759
1760 2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
1761
1762         * gcc.c (cpp_unique_options): Remove "-d" options.
1763         (cpp_debug_options): New spec string.
1764         (default_compilers): Use it.
1765         * objc/lang-specs.h: Likewise.
1766
1767 2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
1768
1769         * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
1770         BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
1771         * gcc/mklibgcc.in: Likewise.
1772         * gcc/config/arc/t-arc: Likewise.
1773         * gcc/configure.in: Likewise.
1774         * gcc/configure: Regenerate.
1775
1776 2002-05-31  Stan Shebs  <shebs@apple.com>
1777             Turly O'Connor  <turly@apple.com>
1778
1779         * c-decl.c (struct binding_level): Change int field n_incomplete
1780         to tree list incomplete_list.
1781         (clear_binding_level): Init field with NULL.
1782         (pushdecl): Add incomplete type to list.
1783         (mark_binding_level): Mark the incomplete list.
1784         (finish_struct): Scan the incomplete list for types instead
1785         of all decls in the current binding level.
1786
1787 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1788
1789         * pa.c (output_millicode_call): Add missing '%' characters.
1790         (output_call): Likewise.
1791
1792 2002-05-31  David Edelsohn  <edelsohn@gnu.org>
1793
1794         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
1795         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1796
1797 2002-05-31  Alan Lehotsky <apl@alum.mit.edu>
1798
1799         * varasm.c (mark_constant_pool): Walk epilogue delay list
1800         checking the insn, not the chain for potential constants.
1801
1802 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
1803
1804         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
1805
1806 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
1807
1808         * i386.c (classify_argument): Properly handle base types.
1809
1810         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
1811         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
1812         registers.
1813
1814 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
1815
1816         * gcse.c (gcse_emit_move_after): New.
1817         (pre_delete, hoist_store): Use it.
1818
1819         * reload1.c (emit_input_reload_insns): Use constrain_operands
1820         instead of constraint_accepts_reg_p to verify optimization.
1821         (constraint_accepts_reg_p): Kill
1822
1823         * reload1.c (reload_cse_delete_noop_set): Kill.
1824         (reload_cse_simplify): use delte_insn_and_edges.
1825
1826 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1827
1828         * cfgloop.c (flow_loops_find): Initialize first and last fields
1829         correctly.
1830
1831 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1832
1833         * c-common.c (builtin_define_std): Correct logic.
1834
1835 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1836
1837         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
1838         (output_call): Likewise.
1839
1840 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1841
1842         * pa.c: Move output.h include after tree.h include.
1843         (pa_asm_output_mi_thunk): Constify identifier lab.
1844
1845 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
1846
1847         * config/ns32k/ns32k.h: Define named constants for the
1848         bits in target_flags and use them.
1849         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
1850
1851 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1852
1853         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
1854         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
1855         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
1856         default scheduling model.
1857         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
1858         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
1859         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
1860         * doc/install.texi (hppa*-*-*): Document default scheduling.
1861
1862 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1863
1864         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
1865
1866 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
1867
1868         * config.gcc (ns32k-*-netbsd*): Set tm_file to
1869         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
1870         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
1871         netbsd.h, or netbsd-aout.h.
1872
1873 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
1874
1875         * longlong.h (count_trailing_zeros): Add missing \, and clean up
1876         whitespace in __ns32000__ case.
1877
1878 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
1879
1880         * expr.c (expand_expr): Output partially zeroed out vectors with
1881         output_constant_def.
1882
1883 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
1884
1885         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
1886         (sh-*-netbsdelf*)
1887         (shl*-*-netbsdelf*): New targets.
1888         * config/sh/netbsd-elf.h: New file.
1889         * config/sh/t-netbsd: New file.
1890
1891 2002-05-30  Richard Henderson  <rth@redhat.com>
1892             Eric Botcazou  <ebotcazou@multimania.com>
1893
1894         PR optimization/6822
1895         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
1896         to unsigned int for op1 comparisons.  Use gen_int_mode.
1897
1898 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
1899
1900         * expmed.c (const_mult_add_overflow_p): New.
1901         * expr.h: Declare it.
1902         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
1903         Don't eliminate the biv if the giv has a constant multiplier and
1904         the rhs argument of the comparison does satisfy the predicate.
1905         Use expand_mult_add to compute the replacement constant.
1906
1907 2002-05-30  Osku Salerma  <osku@iki.fi>
1908
1909         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
1910         (c_common_get_alias_set): Handle it.
1911         * doc/extend.texi: Document it.
1912
1913 2002-05-30  Richard Henderson  <rth@redhat.com>
1914
1915         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
1916         * toplev.c (process_options): Don't check it.
1917         * doc/tm.texi: Don't document it.
1918         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
1919         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
1920         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
1921         frame pointer optimization if current_function_profile.
1922
1923 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1924
1925         * langhooks.c: Fix formatting.
1926         * langhooks.h: Likewise.
1927         * lcm.c: Likewise.
1928         * libgcc2.c: Likewise.
1929         * lists.c: Likewise.
1930         * local-alloc.c: Likewise.
1931         * loop.c: Likewise.
1932         * loop.h: Likewise.
1933
1934 2002-05-30  Marc Espie <espie@openbsd.org>
1935
1936         * config.gcc (sparc64-*-openbsd*): New.
1937         * config/sparc/openbsd1-64.h: New.
1938         * config/sparc/openbsd64.h: New.
1939
1940 2002-05-30  Jeff Law <law@redhat.com>
1941
1942         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
1943         a dead insn with a REG_RETVAL note when the entire libcall is not
1944         dead and remove the associated REG_LIBCALL note at the same time.
1945
1946 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
1947
1948         * lcm.c (output.h): #include.
1949         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
1950         as an ordinary block.
1951         (optimize_mode_switching): Don't pretend that the exit block is
1952         an ordinary block, or handle sucessors of entry block specially.
1953         Instead, split edges from entry block and to exit block, and
1954         put a computing definition on the thus gained post-entry-block,
1955         and a need on the pre-exit-block.
1956
1957 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
1958
1959         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
1960         * rtl.texi: Document 'B'
1961
1962 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
1963
1964         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
1965         at run-time.
1966         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
1967
1968 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
1969
1970         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
1971         const0_rtx instead of NULL_RTX when in error.
1972         (altivec_expand_abs_builtin): Same.
1973         (rs6000_expand_binop_builtin): Same.
1974         (altivec_expand_predicate_builtin): Same.
1975         (altivec_expand_stv_builtin): Same.
1976         (rs6000_expand_ternop_builtin): Same.
1977         (altivec_expand_builtin): Same.
1978
1979 2002-05-29  David S. Miller  <davem@redhat.com>
1980
1981         * rtl.h (clear_emit_caches): Delete.
1982         * integrate.c (output_inline_function): Don't call it.
1983         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
1984         (clear_emit_caches): Delete definition.
1985         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
1986
1987 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
1988
1989         * config/mmix/mmix.c: Include real.h.
1990         (mmix_constant_address_p): Remove redundant test before switch.
1991
1992 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
1993
1994         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
1995         only if not already defined.
1996
1997 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
1998
1999         * config/h8300/h8300-protos.h: Remove prototypes for
2000         ok_for_bclr and small_power_of_two.
2001         * config/h8300/h8300.c (small_power_of_two): Remove.
2002         (ok_for_blcr): Likewise.
2003         (fix_bit_operand): Make WHAT deal with an integer instead of a
2004         constraint character.
2005         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
2006         (CONST_OK_FOR_P): Likewise.
2007         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
2008         CONST_OK_FOR_P any more.
2009         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
2010         of fix_bit_operand.
2011         (iorqi3): Likewise.
2012         (xorqi3): Likewise.
2013
2014 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2015
2016         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2017         (CPP_PREDEFINES): Make sure this is undefined.
2018         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
2019         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
2020         or -U__MIPSEB__ before defining one or the other.  Instead,
2021         use %(subtarget_endian_default) if neither -EB nor -EL are
2022         specified.
2023         (SUBTARGET_EXTRA_SPECS): Define.
2024         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
2025         %(netbsd_cpp_spec).
2026
2027 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
2028
2029         * doc/md.texi (Patterns): Note pattern condition pitfall
2030         for unnamed insn.
2031
2032 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
2033
2034         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
2035         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
2036         ternary operations from here...
2037         (rs6000_expand_builtin): ...to here.
2038         New argument expandedp.
2039         Change all instances of altivec_expand_binop_builtin to
2040         rs6000_expand_binop_builtin.
2041         (altivec_expand_unop_builtin): Rename to
2042         rs6000_expand_unop_builtin.
2043         (altivec_expand_binop_builtin): Rename to
2044         rs6000_expand_binop_builtin.
2045         (altivec_expand_ternop_builtin): Rename to
2046         rs6000_expand_ternop_builtin.
2047
2048 2002-05-29  Richard Henderson  <rth@redhat.com>
2049
2050         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
2051         (TARGET_BI_ARCH): Likewise.
2052         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
2053         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
2054         (TARGET_64BIT_DEFAULT): Default to 0.
2055         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
2056
2057 2002-05-29  Richard Henderson  <rth@redhat.com>
2058
2059         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
2060         (get_pc_thunk_name): New.
2061         (output_set_got): Use it.
2062         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
2063         into linkonce sections.
2064
2065 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2066
2067         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2068         (CPP_PREDEFINES): Make sure this is undefined.
2069         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
2070         (CPP_SUBTARGET_SPEC): Don't provide different versions for
2071         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
2072         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
2073         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
2074         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2075         (CPP_PREDEFINES): Make sure this is undefined.
2076         (SUBTARGET_EXTRA_SPECS): Define.
2077         (CPP_SPEC): Use %(netbsd_cpp_spec).
2078
2079 2002-05-29  Jeff Law <law@redhat.com>
2080
2081         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
2082
2083         * flow.c (propagate_one_insn): Do not remove a dead insn if it
2084         contains a REG_RETVAL note.
2085
2086         * haifa-sched (sched_analyze): Remove another useless clearing
2087         of SCHED_GROUP_P I missed yesterday.
2088
2089         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
2090         * pa.c (pa_asm_output_mi_thunk): New function.
2091         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
2092
2093 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2094             Marek Michalkiewicz  <marekm@amelek.gda.pl>
2095
2096         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
2097         (avr_asm_only_p): Make non-static.
2098         (enum avr_arch): Remove.
2099         (avr_arch_types): New.
2100         (avr_mcu_types): Update.
2101         (avr_override_options): Use avr_arch_types table instead of switch.
2102         * avr.h (CPP_PREDEFINES): Die.
2103         (avr_base_arch_macro, avr_extra_arch_macro): New.
2104         (TARGET_CPU_CPP_BUILTINS): New.
2105         (CPP_SPEC, EXTRA_SPECS): Simplify.
2106         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
2107         CPP_AVR5_SPEC): Die.
2108
2109 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2110
2111         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
2112         NETBSD_OS_CPP_BUILTINS_AOUT.
2113         (SUBTARGET_EXTRA_SPECS): Define.
2114         (CPP_SPEC): Use %(netbsd_cpp_spec).
2115
2116 2002-05-29  Richard Henderson  <rth@redhat.com>
2117
2118         * config/i386/i386.c (ix86_output_function_epilogue): New.
2119         (TARGET_ASM_FUNCTION_EPILOGUE): New.
2120         (pic_label_name): Remove.
2121         (pic_labels_used): New.
2122         (ix86_asm_file_end): Emit one pc load stub for each register used.
2123         (output_set_got): Generate deep pc load to any register.
2124         (ix86_select_alt_pic_regnum): New.
2125         (ix86_save_reg): Don't save pic register if we can find a valid
2126         call-clobbered replacement.
2127         (ix86_expand_prologue): If we found a valid replacement, renumber
2128         pic_offset_table_rtx.
2129         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
2130         pic_offset_table_rtx after reload.
2131         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
2132         * config/i386/i386.md (set_got): Make insn, not expander.
2133         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
2134
2135 2002-05-29  Richard Henderson  <rth@redhat.com>
2136
2137         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
2138         alignment for alloca.
2139
2140 2002-05-29  Richard Henderson  <rth@redhat.com>
2141
2142         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
2143         (print_operand_address): Only add rip for symbolic addresses
2144         for which we do not have another relocation type.
2145
2146 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2147
2148         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2149         (EXTRA_SPECS): Add netbsd_cpp_spec.
2150         (CPP_SPEC): Use %(netbsd_cpp_spec).
2151         (CPP_PREDEFINES): Remove.
2152         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2153         (EXTRA_SPECS): Define.
2154         (CPP_SPEC): Use %(netbsd_cpp_spec).
2155         (CPP_PREDEFINES): Remove.
2156
2157 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2158
2159         PR preprocessor/6844
2160         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
2161         NUL.
2162
2163 2002-05-29  Eric Christopher  <echristo@redhat.com>
2164
2165         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
2166         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
2167
2168 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
2169
2170         * config/fr30/fr30.md: Remove previous restriction on splits.
2171         Enforce conformance through gen_lowpart and cont_int_operand.
2172         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
2173         as the assembler does not support ".bss".
2174
2175 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2176
2177         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2178         (CPP_PREDEFINES): Remove.
2179         (SUBTARGET_EXTRA_SPECS): Define.
2180         (CPP_SPEC): Use %(netbsd_cpp_spec).
2181         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2182         (CPP_PREDEFINES): Remove.
2183         (SUBTARGET_EXTRA_SPECS): Define.
2184         (CPP_SPEC): Use %(netbsd_cpp_spec).
2185         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
2186         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
2187         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
2188         Add netbsd_cpp_spec.
2189         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
2190
2191 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2192             Zack Weinberg <zack@codesourcery.com>
2193
2194         * cppexp.c (cpp_num): Move to cpplib.h.
2195         (CPP_ERROR): Remove.
2196         (interpret_float_suffix, interpret_int_suffix): New.
2197         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
2198         (cpp_classify_number, cpp_interpret_integer): New.
2199         (interpret_number): Remove.
2200         (eval_token): Update to use new routines.
2201         * cpphash.h (cpp_num_part): Move to cpplib.h.
2202         * cppinit.c (cpp_post_options): Set warn_long_long.
2203         * cpplib.h (struct cpp_options): Add warn_long_long.
2204         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
2205         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
2206         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
2207         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
2208         cpp_interpret_integer): New.
2209
2210 2002-05-29  Joel Sherrill <joel@OARcorp.com>
2211
2212         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
2213
2214 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2215
2216         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
2217         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
2218         (CPP_SUBTARGET_SPEC): Define.
2219         (SUBTARGET_EXTRA_SPECS): Define.
2220         (CPP_SPEC): Remove.
2221
2222 2002-05-29  Chris Lattner  <sabre@nondot.org>
2223
2224         * ssa.c (rename_insn_1): Rename uses of undefined registers to
2225         prevent confusion if/when the register is defined.
2226
2227 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
2228
2229         PR target/6838
2230         * config/cris/cris.md: Fix typos and thinkos in comments.
2231         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
2232         second alternative.
2233         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
2234         ("*mov_sideqi_mem"): Similar, but for operand 3.
2235         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
2236         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
2237         Remove spurious mode specifier on operand 2.
2238
2239 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
2240
2241         * config/h8300/h8300-protos.h: Remove the prototype for
2242         o_operand.
2243         Add prototypes for single_one_operand and single_zero_operand.
2244         * config/h8300/h8300.c (o_operand): Remove.
2245         (single_one_operand): New.
2246         (single_zero_operand): Likewise.
2247         (print_operand): For 'V' operand, and the operand with 0xff.
2248         For 'V' and 'W' operands, do not and the bit position with 7.
2249         * config/h8300/h8300.md (various anonymous patterns): Replace
2250         use of exact_log2 with single_one_operand/single_zero_operand.
2251
2252 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
2253
2254         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
2255
2256 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
2257
2258         * config/s390/s390.c (legitimate_pic_operand_p): Do not
2259         accept symbolic LARL operands.
2260         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
2261         epilogue insns.
2262
2263 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
2264
2265         * config/s390/s390.md (cmpstr_64/31): Mark whole
2266         input registers as used.
2267
2268 2002-05-28  Richard Henderson  <rth@redhat.com>
2269
2270         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
2271         not current_function_uses_pic_offset_table and
2272         current_function_uses_const_pool; examine current_function_profile.
2273         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
2274         input to blockage if needed.
2275         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
2276         (legitimize_pic_address): Likewise.  Set regs_ever_live for
2277         pic_offset_table_rtx when invoked during reload.
2278         * config/i386/i386.h (FINALIZE_PIC): Remove.
2279         * config/i386/i386.md (tablejump): Reformat.  Do not set
2280         current_function_uses_pic_offset_table.
2281         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
2282         (blockage): Accept anything as operand 0.
2283
2284 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
2285
2286         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
2287         common CPP built-ins for all NetBSD a.out targets.
2288         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
2289         common CPP built-ins for all NetBSD ELF targets.
2290         * config/netbsd.h: Add missing notice.
2291         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
2292         for all NetBSD targets.
2293         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
2294         for all NetBSD targets using an LP64 code model.
2295         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
2296         NetBSD targets.
2297
2298 2002-05-28  Richard Henderson  <rth@redhat.com>
2299
2300         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
2301         update if UPDATE_LIFE_LOCAL.
2302
2303 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
2304
2305         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
2306
2307 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
2308                           Jason R. Thorpe <thorpej@wasabisystems.com>
2309
2310         config/sh reorganization to factor out endianness and coff:
2311
2312         * config/sh/little.h: New file.
2313         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
2314         defined, define to 0 to select big-endian.
2315         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
2316         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2317         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2318         * config/sh/t-be: New file.
2319         * config/sh/t-le: New file.
2320
2321         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
2322         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
2323         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
2324         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
2325         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
2326         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
2327         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
2328         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
2329         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
2330         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
2331         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
2332         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
2333         (LINK_SPEC): Define to SH_LINK_SPEC.
2334         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
2335         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
2336         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
2337         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
2338         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
2339         * config/sh/coff.h: New file.
2340         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
2341         (TARGET_OBJFMT_CPP_BUILTINS): Define.
2342         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
2343         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
2344         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
2345         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
2346         (PTRDIFF_TYPE): Likewise.
2347         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
2348         (CPP_PREDEFINES): Don't define.
2349         (TARGET_OBJFMT_CPP_BUILTINS): Define.
2350         (LINK_SPEC): Define to SH_LINK_SPEC.
2351         (LINK_EMUL_PREFIX): Redefine.
2352         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
2353         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
2354         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
2355         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
2356         (TARGET_OS_CPP_BUILTINS): Define.
2357         (TARGET_DEFAULT): Redefine.
2358         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
2359         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
2360         (LINK_SPEC): Don't redefine.
2361         (LINK_DEFAULT_CPU_EMUL): Redefine.
2362         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2363         * sh.c (sh_asm_named_section): Don't declare / define.
2364         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
2365         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
2366         (sh64-*-elf* tm_file): Likewise.
2367         (sh-*-rtemself* tm_file): Likewise.
2368         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
2369         (sh-*-linux* tmake_file): Add sh/t-le.
2370         (sh-*-rtems* tm_file): Add sh/coff.h
2371         (sh-*-* tm_file): Likewise.
2372
2373 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
2374
2375         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
2376         CONSTANT_POOL_ADDRESS_P.
2377
2378         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
2379
2380 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
2381             Jeff Law <law@redhat.com>
2382
2383         * optabs.c (expand_binop): Fix nwords sign warnings.
2384         generate pseudo for add_optab.
2385
2386         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
2387         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
2388
2389 2002-05-28      Marc Espie <espie@openbsd.org>
2390
2391         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
2392         inherited from gas.h.
2393         (ASM_QUAD):  Undef.  OpenBSD does not support it.
2394
2395 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
2396
2397         * doc/install.texi (binaries): Change mingw binaries
2398         link to www.mingw.org.
2399
2400 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2401
2402         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
2403
2404 2002-05-28  Richard Henderson  <rth@redhat.com>
2405
2406         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
2407         bottom alignment for leaf functions.
2408
2409 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
2410
2411         * config/pa/milli32.S, config/pa/lib1funcs.asm,
2412         config/sparc/sol2-g1.asm: Delete unused files.
2413
2414 2002-05-28  Richard Henderson  <rth@redhat.com>
2415
2416         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
2417
2418         * flow.c (calculate_global_regs_live): Rename call_used to
2419         invalidated_by_call.  Initialize from regs_invalidated_by_call
2420         instead of call_used_regs.
2421
2422         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
2423         DECL_EXTERNAL.
2424
2425 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
2426
2427         * tree.h: Don't include real.h.
2428         Forward-declare struct realvaluetype.
2429         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
2430         contain it.
2431         (TREE_REAL_CST_PTR): New accessor.
2432         (TREE_REAL_CST): Update.
2433         * real.h: Include machmode.h.
2434         (realvaluetype): Make it struct realvaluetype, not a typedef.
2435         (build_real): Prototype here.
2436
2437         * tree.c: Include real.h.
2438         (build_real): Allocate the REAL_VALUE_TYPE as a separate
2439         object in GC memory, set TREE_REAL_CST_PTR to point to it.
2440         (build_real_from_int_cst): Use build_real.
2441         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
2442         REAL_CST.
2443
2444         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
2445         fold-const.c, print-tree.c, real.c: Include real.h.
2446         * Makefile.in: Update dependency lists.
2447
2448 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2449
2450         * basic-block.h (last_basic_block): Declare.
2451         (expunge_block_nocompact): Declaration removed.
2452         (compact_blocks): Declare.
2453         * cfg.c (last_basic_block): New variable.
2454         (expunge_block_nocompact): Removed.
2455         (expunge_block): Do not compact basic blocks.
2456         (compact_blocks): New.
2457         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
2458         longer change.
2459         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
2460         last_basic_block.
2461         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
2462         real positions of blocks.
2463         (delete_unreachable_blocks): Simplified -- quadratic behavior now
2464         cannot occur.
2465         (cleanup_cfg): Compact blocks.
2466         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
2467         basic_block_info varray.
2468         (flow_delete_block): Comment update.
2469         (back_edge_of_syntactic_loop_p): Modify position check code.
2470         (verify_flow_info): Update checking.
2471         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
2472         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
2473         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
2474         indices no longer change.
2475         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
2476         last_basic_block.
2477         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
2478         * profile.c (branch_prob): Compact blocks.
2479         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
2480         last_basic_block.
2481
2482 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
2483
2484         * config/h8300/h8300.md (two anonymous patterns): New.
2485
2486 2002-05-28  David S. Miller  <davem@redhat.com>
2487
2488         * config/sparc/sparc.md (cpu): Tidy.
2489         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
2490         'trap'.
2491         (in_call_delay): Delete reference to 'return' type.
2492         (eligible_for_return_delay, in_return_delay, define_delay
2493         referencing those): Delete.
2494         (rest of file): Use new type attributes as appropriate.
2495         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
2496         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
2497         * config/sparc/ultra1_2.md (us1_single): New reservation.
2498         (us1_ialuX): Likewise.
2499         * config/sparc/ultra3.md (us3_single): Likewise.
2500         (us3_ialuX): Likewise.
2501         (us3_imul, us3_idiv): Tweak.
2502
2503 2002-05-28  Richard Henderson  <rth@redhat.com>
2504
2505         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
2506         STRING_CST.
2507
2508 2002-05-28  Richard Henderson  <rth@redhat.com>
2509
2510         * config.gcc: Obsolete mn10200.
2511
2512 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
2513
2514         * cppexp.c (interpret_number): Optimize for single-digit
2515         and less-than-half-precision cases.
2516         (num_trim, num_positive, num_div_op): Cast constants.
2517
2518 2002-05-27  Bo Thorsen  <bo@suse.de>
2519
2520         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
2521         3.1 branch. The file was made by Jakub Jelinek.
2522         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
2523         support so multilib doesn't break. And don't define this at all
2524         when -Dinhibit_libc is used.
2525         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
2526         * config/i386/t-linux64: Implement full multilib support. Patch
2527         originally done by Andreas Jaeger and Jakub Jelinek.
2528
2529 2002-05-27  Roger Sayle  <roger@eyesopen.com>
2530
2531         * c-common.c: Add support for __attribute__((nothrow)) to specify
2532         that a function cannot throw an exception (using TREE_NOTHROW).
2533         (handle_nothrow_attribute): New function to process this attribute.
2534
2535         * doc/extend.texi: Document the new nothrow function attribute.
2536
2537 2002-05-27  H.J. Lu  (hjl@gnu.org)
2538
2539         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
2540         (num_positive): Likewise.
2541         (num_div_op): Likewise.
2542
2543 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2544
2545         * c-common.c (c_common_init): Always use intmax_t.
2546
2547 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2548
2549         * c-common.c (c_common_init): Use intmax_t for now.
2550
2551 2002-05-24  Andrew Haley  <aph@redhat.com>
2552
2553         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
2554         if T is a boolean type.
2555
2556 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2557
2558         * basic-block.h (last_basic_block): Defined as synonym for
2559         n_basic_blocks.
2560         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
2561         flow_depth_first_order_compute, flow_preorder_transversal_compute,
2562         flow_dfs_compute_reverse_init): Replaced relevant occurences of
2563         n_basic_blocks with last_basic_block.
2564         * cfgbuild.c (make_edges): Likewise.
2565         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
2566         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
2567         * combine.c (combine_instructions): Likewise.
2568         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
2569         iterative_dataflow_bitmap): Likewise.
2570         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
2571         calc_idoms, idoms_to_doms): Likewise.
2572         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
2573         Likewise.
2574         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
2575         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
2576         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
2577         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
2578         delete_null_pointer_checks, compute_code_hoist_vbeinout,
2579         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
2580         compute_store_table, build_store_vectors): Likewise.
2581         * haifa-sched.c (sched_init): Likewise.
2582         * ifcvt.c (if_convert): Likewise.
2583         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
2584         pre_edge_lcm, compute_available, compute_nearerout,
2585         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
2586         Likewise.
2587         * predict.c (estimate_probability, process_note_prediction,
2588         note_prediction_to_br_prob): Likewise.
2589         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
2590         * recog.c (split_all_insns, peephole2_optimize): Likewise.
2591         * regrename.c (copyprop_hardreg_forward): Likewise.
2592         * resource.c (init_resource_info): Likewise.
2593         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
2594         init_regions, schedule_insns): Likewise.
2595         * ssa-ccp.c (ssa_const_prop): Likewise.
2596         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
2597         * ssa.c (compute_dominance_frontiers,
2598         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
2599
2600         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
2601         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
2602         sizes consistently.
2603
2604 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
2605
2606         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
2607         new.
2608         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
2609         hoist_insn_after, hoist_insn_to_edge): New.
2610
2611 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
2612
2613         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
2614         (PROP_FINAL): Include.
2615         * flow.c (life_analysis, update_life_info,
2616         init_propagate_block_info, mark_set_1, mark_used_rgs):
2617         Support SCAN_DEAD_STORE.
2618
2619 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2620
2621         * c-common.c (c_common_init): Set CPP arithmetic precision.
2622         * cppexp.c (cpp_num_part): Move typedef ...
2623         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
2624         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
2625         (sanity_checks): Update.
2626
2627 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
2628
2629         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
2630         (mkheaders): New rule.
2631         (install-mkheaders): New rule.
2632         * configure.in (all_outputs): Add mkheaders.
2633         * configure: Regenerate.
2634         * mkheaders.in: New file.
2635
2636 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
2637
2638         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
2639
2640 2002-05-26  Andreas Jaeger  <aj@suse.de>
2641
2642         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
2643
2644 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2645
2646         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
2647         right_shift): Remove.
2648         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
2649         HIGH_PART): New.
2650         (struct op): Use cpp_num.
2651         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
2652         num_part_mul, num_unary_op, num_binary_op, num_negate,
2653         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
2654         num_div_op, num_lshift, num_rshift, append_digit): New.
2655         (interpret_number, parse_defined, eval_token, reduce): Update
2656         for two-integer arithmetic.
2657         (binary_handler): New typedef.
2658         (optab): Update.
2659         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
2660         (_cpp_parse_expr, reduce): Update to handle two-integers.
2661         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
2662
2663 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2664
2665         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
2666         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
2667         branch insn into account, do not assume 1.
2668         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
2669         over single word insn.  Handle upper half of I/O space too.
2670         * config/avr/avr.md (*sbrx_branch): Use it.
2671         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
2672         (*sbix_branch, *sbix_branch_bit7): Likewise.
2673         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
2674         Use RTL peepholes to optimize register operand sign tests.
2675
2676 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2677
2678         * config/avr/avr.c (avr_asm_only_p): New variable.
2679         (avr_override_options): Set it here if AVR1.
2680         (asm_file_start): Test it here, report an error if set.
2681
2682 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
2683
2684         * alias.c: Fix formatting.
2685         * attribs.c: Likewise.
2686         * bb-reorder.c: Likewise.
2687         * bitmap.c: Likewise.
2688         * bitmap.h: Likewise.
2689         * builtins.c: Likewise.
2690
2691 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
2692
2693         * reload.c (find_valid_class): Accept new argument DEST,
2694         choose class accordingly.
2695         (push_reload): Update callers.
2696
2697 2002-05-26  Andreas Jaeger  <aj@suse.de>
2698
2699         * combine.c (combine_instructions): Do not indent #if for
2700         traditional C.
2701
2702 2002-05-25  Richard Henderson  <rth@redhat.com>
2703
2704         * c-pragma.c (apply_pragma_weak): Convert value identifier to
2705         string for decl_attributes.
2706         (handle_pragma_weak): Call assemble_alias if we're modifying
2707         an existing decl.
2708
2709 2002-05-25  Richard Henderson  <rth@redhat.com>
2710
2711         PR target/6788
2712         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
2713         using rtl instead of fprintf.
2714         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
2715         * config/sparc/sparc-protos.h: Update.
2716
2717 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
2718
2719         * Makefile.in (C_COMMON_H): Fix.
2720         Update other targets.
2721         * c-common.c: Don't include c-lex.h.
2722         (builtin_define_with_value): Make static and prototype.
2723         (builtin_define_std): Move from c-lex.h.
2724         * c-common.h (init_c_lex): Move from c-lex.h.
2725         * c-decl.c: Don't include c-lex.h.
2726         (make_pointer_declarator): Move from c-parse.in.
2727         * c-lex.c: Don't include c-lex.h.
2728         * c-lex.h: Remove.
2729         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
2730         (make_pointer_declarator): Move to c-decl.c.
2731         * c-pragma.c: Don't include c-lex.h.
2732         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
2733         * c-tree.h (make_pointer_declarator): New.
2734 doc:
2735         * passes.texi, tm.texi: Update.
2736 objc:
2737         * Make-lang.in: Update and correct.
2738         * objc-act.c: Don't include c-lex.h or cpplib.h.
2739 treelang:
2740         * treetree.c: Don't include c-lex.h.
2741 config:
2742         * darwin-c.c: Don't include c-lex.h.
2743         * c4x/c4x-c.c: Don't include c-lex.h.
2744         * c4x/t-c4x: Update.
2745         * i370/i370-c.c: Don't include c-lex.h.
2746         * i370/t-i370: Update.
2747         * i960/i960-c.c: Don't include c-lex.h.
2748         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
2749         * i960/t-960bare: Update.
2750         * i960/t-vxworks: Update.
2751         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
2752         * rs6000/t-darwin: Update.
2753         * rs6000/t-rs6000-c-rule: Update.
2754         * v850/v850-c.c: Don't include c-lex.h.
2755         * v850/v850.c: Don't include c-lex.h or cpplib.h.
2756
2757
2758 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
2759
2760         * tree.def: Fix typos.
2761         * doc/install.texi: Likewise.
2762
2763 2002-05-25  Richard Henderson  <rth@redhat.com>
2764
2765         * configure.in (HAVE_AS_TLS): Add ia64 test.
2766         * configure: Rebuild.
2767         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
2768         (override_options): Set it.
2769         (TARGET_HAVE_TLS): New.
2770         (sdata_symbolic_operand): Look for 's'.
2771         (tls_symbolic_operand): New.
2772         (ia64_expand_load_address): Abort for tls symbols.
2773         (gen_tls_get_addr): New.
2774         (gen_thread_pointer): New.
2775         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
2776         (rtx_needs_barrier): Add new unspecs.
2777         (ia64_encode_section_info): Handle tls symbols.
2778         (ia64_strip_name_encoding): Strip two encoding chars.
2779         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
2780         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
2781         (TARGET_OPTIONS): Add tls-size.
2782         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
2783         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
2784         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
2785         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
2786         (movsf, movdf): Likewise.
2787         (movdi_symbolic): Use match_scratch.  Don't split if we won't
2788         have a scratch availiable.
2789         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
2790         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
2791         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
2792         * config/ia64/ia64-protos.h: Update.
2793         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
2794         sdata_symbolic_operand.
2795         (ASM_OUTPUT_LABELREF): Strip two characters.
2796
2797 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
2798
2799         * combine.c (simplify_set): Remove an unnecessary subreg.
2800
2801 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2802
2803         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
2804
2805         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
2806
2807 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
2808
2809         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
2810
2811 2002-05-25  Roger Sayle  <roger@eyesopen.com>
2812
2813         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
2814         (cond (compare x y) 0) into the equivalent (cond x y).
2815
2816 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
2817
2818         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
2819
2820 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
2821
2822         * config.gcc: Remove all stanzas for previously obsoleted
2823         systems.  Where necessary, add explicit error stanzas to
2824         prevent removed systems from being misidentified as something
2825         else.  Begin a fresh obsoletions list, with the systems that
2826         were reprieved last round.
2827         * doc/install.texi: Remove all mention of dead targets.
2828         * fixinc/mkfixinc.sh: Likewise.
2829
2830         * config/arm/arm.h: Bit 31 of target_flags is no longer
2831         reserved.
2832
2833         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
2834         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
2835         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
2836         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
2837         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
2838         config/alpha/osf12.h, config/alpha/osf2or3.h,
2839         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
2840         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
2841         config/clipper/clipper-protos.h, config/clipper/clipper.c,
2842         config/clipper/clipper.h, config/clipper/clipper.md,
2843         config/clipper/clix.h, config/convex/convex-protos.h,
2844         config/convex/convex.c, config/convex/convex.h,
2845         config/convex/convex.md, config/convex/fixinc.convex,
2846         config/convex/proto.h, config/elxsi/elxsi-protos.h,
2847         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
2848         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
2849         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
2850         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
2851         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
2852         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
2853         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
2854         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
2855         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
2856         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
2857         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
2858         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
2859         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
2860         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
2861         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
2862         config/m68k/altos3068.h, config/m68k/apollo68.h,
2863         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
2864         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
2865         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
2866         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
2867         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
2868         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
2869         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
2870         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
2871         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
2872         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
2873         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
2874         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
2875         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
2876         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
2877         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
2878         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
2879         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
2880         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
2881         config/mips/dec-osf1.h, config/mips/elflorion.h,
2882         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
2883         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
2884         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
2885         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
2886         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
2887         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
2888         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
2889         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
2890         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
2891         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
2892         config/ns32k/sequent.h, config/ns32k/tek6000.h,
2893         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
2894         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
2895         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
2896         config/sparc/rtems.h, config/we32k/we32k-protos.h,
2897         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
2898         Delete file.
2899
2900 2002-05-24  Richard Henderson  <rth@redhat.com>
2901
2902         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
2903         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
2904         * config/i386/i386.c (tls_model_chars): Add leading space.
2905         (tls_symbolic_operand): Don't bias by 1.
2906         (legitimize_address): Don't unbias by 1.
2907
2908 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
2909
2910         * lcm.c (optimize_mode_switching): Change bb used as indices
2911         to bb->index.
2912
2913 2002-05-24  Richard Henderson  <rth@redhat.com>
2914
2915         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
2916         of update_life_info_in_dirty_blocks.
2917
2918 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
2919
2920         PR other/6782
2921         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
2922
2923 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2924
2925         PR preprocessor/6780
2926         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
2927
2928 2002-05-24  Jim Blandy  <jimb@redhat.com>
2929
2930         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
2931         entry with a type code of zero, marking the end of the compilation
2932         unit's macro info.
2933
2934 2002-05-24  Richard Henderson  <rth@redhat.com>
2935
2936         * varasm.c (asm_output_bss): Always output one byte.
2937         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2938
2939 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
2940
2941         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
2942         namespace.
2943
2944 2002-05-24  Andreas Jaeger  <aj@suse.de>
2945
2946         * ggc-page.c (alloc_page): Cast variables of type size_t to
2947         unsigned long, adjust printf format string.
2948         (ggc_alloc): Likewise.
2949         (ggc_print_statistics): Likewise.
2950         (ggc_print_statistics): Correct printf format string for SCALE to
2951         use unsigned long.
2952
2953 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
2954
2955         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
2956
2957 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
2958             Zack Weinberg     <zack@codesourcery.com>
2959
2960         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
2961         quoted strings.
2962         * dwarf2out.c (lookup_filename): Properly quote filename in .file
2963         directive in assembly file.
2964         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
2965         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
2966         * config/pj/pj.h (ASM_FILE_START): Likewise.
2967         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
2968         * config/avr/avr.c (asm_file_end): Likewise.
2969         * toplev.c (output_quoted_string): Handle possibly signed plain
2970         char.
2971         * toplev.h (output_clean_symbol_name): Declare
2972         * toplev.c (output_clean_symbol_name): Define.
2973         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
2974         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
2975
2976 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
2977
2978         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
2979
2980 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
2981
2982         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
2983         of size of unsigned.
2984
2985 2002-05-23  Richard Henderson  <rth@redhat.com>
2986
2987         * configure.in (HAVE_AS_TLS): New test.
2988         * config.in, configure: Rebuild.
2989         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
2990         (ix86_tls_dialect_string, ix86_tls_dialect): New.
2991         (override_options): Set it.
2992         (tls_model_chars, tls_symbolic_operand): New.
2993         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
2994         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
2995         (local_exec_symbolic_operand): New.
2996         (get_pic_label_name): Merge into output_set_got.
2997         (ix86_asm_file_end): Emit pic_label_name if defined.
2998         (legitimate_constant_p, constant_address_p): New.
2999         (legitimate_pic_operand_p): New.
3000         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
3001         (legitimate_address_p): Likewise.
3002         (ix86_encode_section_info): Rename from i386_; handle tls decls.
3003         (ix86_strip_name_encoding): New.
3004         (get_thread_pointer): New.
3005         (legitimize_address): Handle tls symbols.
3006         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
3007         Remove UNSPEC_PLT.
3008         (struct machine_function): Add some_ld_name.
3009         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
3010         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
3011         (output_addr_const_extra): New.
3012         (maybe_get_pool_constant): New.
3013         (ix86_split_to_parts): Use it.
3014         (ix86_expand_move): Handle tls symbols.
3015         (ix86_tls_get_addr): New.
3016         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
3017         (TARGET_OPTIONS): Add tls-dialect.
3018         (CONSTANT_ADDRESS_P): Use new out-of-line function.
3019         (LEGITIMATE_CONSTANT_P): Likewise.
3020         (LEGITIMATE_PIC_OPERAND_P): Likewise.
3021         (TARGET_STRIP_NAME_ENCODING): New.
3022         (ASM_OUTPUT_LABELREF): New.
3023         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
3024         (OUTPUT_ADDR_CONST_EXTRA): New.
3025         (PREDICATE_CODES): Update.
3026         (ix86_tls_dialect, ix86_tls_dialect_string): New.
3027         * config/i386/i386.md: Regroup and renumber unspec constants.
3028         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
3029         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
3030         (tls_global_dynamic, tls_local_dynamic_base): New.
3031         (tls_local_dynamic_once): New.
3032         * config/i386/i386-protos.h: Update.
3033
3034 2002-05-23  Richard Henderson  <rth@redhat.com>
3035
3036         * genemit.c (gen_insn): Print file:lineno comment before function.
3037         (main): likewise.
3038         * gensupport.c (struct queue_elem): Add filename member.
3039         (queue_pattern): Initialize it; update all callers.
3040         (process_include): Don't free filename.
3041         (read_md_rtx): Set read_rtx_filename.
3042
3043 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
3044
3045         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
3046
3047 2002-05-23  Richard Henderson  <rth@redhat.com>
3048
3049         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
3050
3051 2002-05-23  Richard Henderson  <rth@redhat.com>
3052
3053         * doc/extend.texi (C++98 Thread-Local Edits): Update with
3054         commentary from Mark.
3055
3056 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3057
3058         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
3059         Use FOR_EACH_BB macros to iterate over basic block chain.
3060         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
3061         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
3062         Likewise.
3063         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
3064         find_unreachable_blocks, create_edge_list, verify_edge_list,
3065         remove_fake_edges, add_noreturn_fake_exit_edges,
3066         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
3067         Likewise.
3068         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
3069         find_sub_basic_blocks): Likewise.
3070         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
3071         Likewise.
3072         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
3073         Likewise.
3074         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
3075         Likewise.
3076         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
3077         commit_edge_insertions, commit_edge_insertions_watch_calls,
3078         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
3079         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
3080         * conflict.c (conflict_graph_compute): Likewise.
3081         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
3082         df_modified_p, df_refs_unlink, df_dump): Likewise.
3083         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
3084         * final.c (compute_alignments): Likewise.
3085         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
3086         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
3087         count_or_remove_death_notes): Likewise.
3088         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
3089         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
3090         classic_gcse, compute_transp, cprop, compute_pre_data,
3091         compute_transpout, invalidate_nonnull_info,
3092         delete_null_pointer_checks_1, delete_null_pointer_checks,
3093         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
3094         compute_store_table, build_store_vectors, store_motion): Likewise.
3095         * global.c (global_conflicts, mark_elimination): Likewise.
3096         * graph.c (print_rtl_graph_with_bb): Likewise.
3097         * haifa-sched.c (sched_init): Likewise.
3098         * ifcvt.c (if_convert): Likewise.
3099         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
3100         compute_available, compute_nearerout, compute_rev_insert_delete,
3101         optimize_mode_switching): Likewise.
3102         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
3103         * predict.c (estimate_probability, note_prediction_to_br_prob,
3104         propagate_freq, counts_to_freqs, expensive_function_p,
3105         estimate_bb_frequencies): Likewise.
3106         * profile.c (instrument_edges, get_exec_counts,
3107         compute_branch_probabilities, compute_checksum, branch_prob,
3108         find_spanning_tree): Likewise.
3109         * recog.c (split_all_insns, peephole2_optimize): Likewise.
3110         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
3111         Likewise.
3112         * regclass.c (scan_one_insn, regclass): Likewise.
3113         * regmove.c (mark_flags_life_zones, regmove_optimize,
3114         record_stack_memrefs): Likewise.
3115         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
3116         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
3117         * resource.c (find_basic_block): Likewise.
3118         * sched-ebb.c (schedule_ebbs): Likewise.
3119         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
3120         find_single_block_region, find_rgns, schedule_insns)
3121         * sibcall.c (optimize_sibling_and_tail_recursive_call)
3122         * ssa-ccp.c (optimize_unexecutable_edges,
3123         ssa_ccp_df_delete_unreachable_insns): Likewise.
3124         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
3125         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
3126         rename_block, convert_to_ssa, compute_conservative_reg_partition,
3127         compute_coalesced_reg_partition, rename_equivalent_regs,
3128         convert_from_ssa): Likewise.
3129         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
3130         process_for_unwind_directive): Likewise.
3131
3132         * df.c (FOR_ALL_BBS): Removed.
3133         * gcse.c (struct null_pointer_info): Type of current_block field
3134         changed.
3135         (struct reg_avail_info): Type of last_bb field changed.
3136         * config/ia64/ia64.c (block_num): Removed.
3137         (need_copy_state): Type changed.
3138         (last_block): New.
3139
3140 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3141
3142         * cppinit.c (mark_named_operators): Split out from init_builtins.
3143         (cpp_finish_options): Call it from here instead.
3144
3145 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
3146
3147         * builtin-attrs.def: Update copyright years.
3148         (ATTR_NONNULL): New attribute identifier.
3149         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
3150         attribute tree lists.
3151         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
3152         format operand.
3153         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
3154         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
3155         attribute lists.  Chain the appropriate nonnull attribute.
3156         * c-format.c (check_format_arg): Remove null format string
3157         warning.
3158         * testsuite/gcc.dg/format/null-1.c: New test.
3159
3160 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3161
3162         * Makefile.in (ADAC): Define.
3163         (SYSLIBS): Define.
3164         (.SUFFIXES): Move before language makefile fragments.
3165         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
3166
3167 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
3168
3169         * varasm.c (make_decl_rtl): Don't allow weak variables to be
3170         placed in common.
3171
3172 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
3173
3174         * cfg.c (dump_flow_info): Print results of
3175         maybe_hot/probably_never_executed predicates.
3176         * toplev.c (open_dump_file): Print function frequency.
3177
3178 2002-05-23  David S. Miller  <davem@redhat.com>
3179
3180         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
3181         regsets.
3182
3183 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
3184
3185         * c-common.c (warn_nonnull): Declare.
3186         (c_common_attribute_table): Add "nonnull" attribute.
3187         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
3188         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
3189         check_function_arguments_recurse): New functions.
3190         * c-common.h (warn_nonnull): Declare extern.
3191         (check_function_arguments, check_function_arguments_recurse): New
3192         prototypes.
3193         * c-decl.c (c_decode_option): Add -Wnonnull option.
3194         * c-format.c (set_Wformat): Set warn_nonnull if enabling
3195         format checking.
3196         (format_check_context): New structure.
3197         (check_format_info_recurse): Remove recursion and rename to...
3198         (check_format_arg): ...this.  Update comment.
3199         (check_format_info): Use check_function_arguments_recurse.
3200         * c-typeck.c (build_function_call): Call check_function_arguments
3201         instead of check_function_format.
3202         * doc/extend.texi: Document "nonnull" attribute.
3203         * doc/invoke.texi: Docuemnt -Wnonnull option.
3204         * testsuite/gcc.dg/nonnull-1.c: New test.
3205         * testsuite/gcc.dg/nonnull-2.c: New test.
3206
3207 2002-05-23  David S. Miller  <davem@redhat.com>
3208
3209         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
3210         * cfgcleanup.c (cleanup_cfg): If it is set do not
3211         attempt to delete trivially dead insns.
3212         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
3213         * toplev.c (rest_of_compilation): Document non-trivial aspect
3214         the RTL before optimize_save_area_alloca is run.
3215
3216 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3217
3218         * c-lex.c (indent_level): Remove.
3219         (cb_file_change, c_lex): Remove indent level handling.
3220         * c-lex.h (indent_level): Remove.
3221         * input.h (struct file_stack): Remove indent_level.
3222         * toplev.c (push_srcloc): Remove indent_level handling.
3223
3224 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
3225
3226         PR target/6753
3227         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
3228         of x in constraints for clarity.
3229         (sse_mov?fcc split): abort if op2 == op3.
3230         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
3231         sse_movsfcc_const0_4): Add earlyclobber.
3232         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
3233         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
3234         Use Y instead of x in constraints.
3235
3236 2002-05-23  Richard Henderson  <rth@redhat.com>
3237
3238         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
3239         (C++98 Thread-Local Edits): New subsection.
3240
3241         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
3242         (ix86_arch): Set type to enum processor_type.
3243
3244         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
3245         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
3246
3247 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
3248
3249         * configure.in: Fix as version test for binutils 2.12.1 releases
3250         (without dates).
3251         * configure: Rebuilt.
3252
3253 2002-05-23  Richard Henderson  <rth@redhat.com>
3254
3255         * config/i386/i386.c (get_pic_label_name): New.
3256         (load_pic_register): Remove.
3257         (output_set_got): New.
3258         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
3259         * config/i386/i386.md (UNSPEC_SET_GOT): New.
3260         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
3261         (prologue_set_got, prologue_get_pc): Remove.
3262         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
3263         (builtin_setjmp_receiver): Use gen_set_got.
3264         * config/i386/i386-protos.h: Update.
3265
3266 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
3267
3268         * gcse.c (hash_expr): Do not use alias set for hashing.
3269
3270 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
3271
3272         * dbxout.c (dbxout_class_name_qualifiers): New function.
3273         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
3274
3275 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3276
3277         * cpperror.c (_cpp_begin_message): No special casing
3278         of CPP_FATAL_LIMIT.
3279         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
3280         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
3281         * cpplib.c (do_include_common): Use DL_ERROR.
3282         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
3283         (DL_ICE): Renumber.
3284         * fix-header.c (read_scan_file): Update.
3285
3286 2002-05-22  Richard Henderson  <rth@redhat.com>
3287
3288         * config/i386/i386.c (ix86_expand_call): New function, extracted
3289         from md call patterns.  Add pic_offset_table_rtx to
3290         CALL_INSN_FUNCTION_USAGE when needed.
3291         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
3292         (call_value_pop, call_value, untyped_call): Likewise.
3293         (call_exp, call_value_exp): Remove.
3294         * config/i386/i386-protos.h: Update.
3295
3296 2002-05-22  Richard Henderson  <rth@redhat.com>
3297
3298         * varasm.c (default_section_type_flags): Check for VAR_DECL
3299         before using DECL_THREAD_LOCAL.
3300
3301 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
3302
3303         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
3304         (STARTFILE_SPEC): Delete PE crt0.o.
3305         * config/rs6000/aix51.h: Same.
3306         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
3307         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
3308         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
3309         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
3310         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
3311
3312 2002-05-22  Richard Henderson  <rth@redhat.com>
3313
3314         * varasm.c (default_section_type_flags): Handle tls data and
3315         default sections.
3316         (default_unique_section): Handle tls sections.
3317
3318 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
3319
3320         * configure.in (CROSS): Define NATIVE_CROSS.
3321         * configure: Regenerate.
3322         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
3323         (startfile_prefix_spec): New var.
3324         (static_specs): Add startfile_prefix_spec.
3325         (do_spec_2): Split out from..
3326         (do_spec): ..here.
3327         (main): Process startfile_prefix_spec.
3328         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
3329         dynamic linker.
3330         (STARTFILE_PREFIX_SPEC): Define.
3331         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
3332         absolute paths.
3333
3334 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
3335
3336         * cpperror.c: Fix formatting.
3337         * cppexp.c: Likewise.
3338         * cppfiles.c: Likewise.
3339         * cpphash.c: Likewise.
3340         * cpphash.h: Likewise.
3341         * cppinit.c: Likewise.
3342         * cpplex.c: Likewise.
3343         * cpplib.c: Likewise.
3344         * cppmacro.c: Likewise.
3345         * cppmain.c: Likewise.
3346         * cppspec.c: Likewise.
3347
3348 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
3349
3350         * combine.c (force_to_mode): Use gen_int_mode.
3351         Don't clear CONST_INT bits outside of mode.
3352
3353 2002-05-22  Richard Henderson  <rth@redhat.com>
3354
3355         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
3356         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3357
3358 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
3359
3360         PR c/6643
3361         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
3362         if DECL_SIZE_UNIT is INTEGER_CST.
3363
3364 2002-05-22  Richard Henderson  <rth@redhat.com>
3365
3366         * flow.c (life_analysis): Delete broken reg_label check.
3367
3368 2002-05-22  Richard Henderson  <rth@redhat.com>
3369
3370         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
3371         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3372