OSDN Git Service

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