OSDN Git Service

* gengtype-yacc.y: Make sure all rules end with a semicolon.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
2
3         * gengtype-yacc.y: Make sure all rules end with a semicolon.
4
5 2002-06-04  Bob Wilson  <bob.wilson@acm.org>
6
7         * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
8         typo in function prototype and include "ggc.h" header.
9
10 2002-06-04  Richard Henderson  <rth@redhat.com>
11
12         * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
13         (print_operand) ['U']: Likewise.
14         (alpha_expand_unaligned_store): Correct constants for 32-bit cross.
15         (alpha_expand_unaligned_store_words): Likewise.
16         (alpha_expand_builtin_vector_binop): Fix typo.
17         (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
18         umulh, and cix insns.
19         (one_arg_builtins): Add cix builtins.
20         (two_arg_builtins): Add ext, ins, msk, umulh builtins.
21         (alpha_expand_builtin): Fix typo in arity.
22         * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
23         (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
24         builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
25         builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
26         builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
27         builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
28         builtin_ctlz, builtin_ctpop): New.
29         * doc/extend.texi (Alpha Built-in Functions): Update.
30
31 2002-06-04  Geoffrey Keating  <geoffk@redhat.com>
32
33         * gengtype.c (write_gc_root): Don't unnecessarily prevent
34         global variable-length arrays being roots.
35
36         * config.gcc (powerpc-*-darwin*): Set config_gtfiles.
37         * configure.in (config_gtfiles): New variable.
38         (all_gtfiles): Initialise from config_gtfiles.
39         * configure: Regenerate.
40
41 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
42
43 config/i386:
44         * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
45         i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
46         mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
47         sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
48         win32.h (CPP_SPEC): Remove cpp_cpu.
49         * i386.h (TARGET_CPU_CPP_BUILTINS): Use.
50         (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!
51
52 2002-06-04  Janis Johnson  <janis187@us.ibm.com>
53
54         * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
55
56 2002-06-04  Jeff Law <law@redhat.com.
57             David Edelsohn <edelsohn@gnu.org>
58             Michael Matz <matz@kde.org>
59
60         * sched-int.h (struct deps): New field libcall_block_tail_insn.
61         * sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
62         * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
63         is set, then mark the current insn as being part of a libcall
64         scheduling group.
65         (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
66
67         * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
68         insns against the issue rate.
69
70 Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>
71
72         * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
73         * final.c (final_scan_insn): Likewise.
74         * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
75         NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
76         * haifa-sched.c (unlink_other_notes): Likeewise.
77         (reemit_notes): Likewise.
78         * print-rtl.c (print_rtx): Likewise.
79         * sched-deps (sched-analyze): Likewise.
80         * rtl.c (note_insn_name): Likewise.
81         * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
82         (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
83         (RANGE_*): Kill.
84
85 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
86
87         * varasm.c (mark_constants): Handle RTX format 'B'.
88
89 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
90
91         * cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
92         (struct cpp_context): Add traditional fields.
93         * cppmacro.c (paste_all_tokens, push_ptoken_context,
94         push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
95         * cpptrad.c (skip_comment, lex_identifier,
96         _cpp_read_logical_line_trad, scan_out_logical_line): Update.
97
98 2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>
99
100         * gbl-ctors.h: Fix formatting.
101         * gcc.c: Likewise.
102         * gccspec.c: Likewise.
103         * gcov.c: Likewise.
104         * gcov-io.h: Likewise.
105         * gcse.c: Likewise.
106         * ggc-common.c: Likewise.
107         * ggc.h: Likewise.
108         * ggc-page.c: Likewise.
109         * ggc-simple.c: Likewise.
110         * global.c: Likewise.
111         * graph.h: Likewise.
112         * gthr-dce.h: Likewise.
113         * gthr.h: Likewise.
114         * gthr-posix.h: Likewise.
115         * gthr-rtems.h: Likewise.
116         * gthr-solaris.h: Likewise.
117         * gthr-win32.h: Likewise.
118
119 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
120
121         Merge from pch-branch:
122         
123         * gengtype.h (UNION_OR_STRUCT_P): New macro.
124         * gengtype.c (write_gc_structure_fields): Use it.
125         (write_gc_root): Use it here too.
126
127         * gengtype.c (write_gc_structure_fields): Assume that lengths
128         of typenames fit into an 'int'; don't pass a size_t to "%d" in
129         printf.
130         (write_gc_marker_routine_for_structure): Likewise.
131         (write_gc_types): Likewise.
132         (write_gc_root): Likewise.
133
134         * varray.h (VARRAY_CLEAR): New.
135         (varray_clear): Prototype.
136         * varray.c (varray_clear): New.
137         * cselib.c (reg_values_old): New.
138         (used_regs_old): New.
139         (cselib_init): Use cached varrays if available to avoid
140         generating large amounts of garbage.
141         (cselib_finish): Don't throw away old varrays.
142
143         * final.c (insn_addresses_): Move out of ifdef.
144
145         * varray.c (uses_ggc): Make more varray kinds GCable.
146         * varray.h (union varray_data_tag): Let gengtype see
147         fields 'generic' and 'te'.
148         * reg-stack.c: Include gt-reg-stack.h, ggc.h.
149         (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
150         (reg_to_stack): Don't call VARRAY_FREE.
151         * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
152         (insn_addresses_): Use gengtype to mark.
153         * gengtype.c (write_gc_structure_fields): Handle arrays of generic
154         pointers; handle generic pointers in unused union fields.
155         (get_output_file_with_visibility): Include cselib.h,
156         insn-addr.h in gtype-desc.c.
157         * function.c (prologue): Use gengtype to mark.
158         (epilogue): Likewise.
159         (sibcall_epilogue): Likewise.
160         * dependence.c: Include gt-dependence.h, ggc.h.
161         (struct def_use): Use gengtype to mark.
162         (struct loop): Likewise.
163         (struct induction): Likewise.
164         (struct dependence): Likewise.
165         (def_use_chain): Likewise.
166         (dep_chain): Likewise.
167         (loop_chain): Likewise.
168         (induction_chain): Likewise.
169         (init_dependence_analysis): Don't free anything, just clear pointers.
170         (build_def_use): Use GGC to allocate def_use.
171         (add_loop): Use GGC to allocate loop.
172         (find_induction_variable): Use GGC to allocate induction.
173         (check_node_dependence): Use GGC to allocate induction, dependence.
174         (dump_node_dependence): Don't free varrays.
175         (end_dependence_analysis): Likewise.
176         * cselib.h (struct cselib_val_struct): Use gengtype to mark.
177         (struct elt_loc_list): Likewise.
178         (struct elt_list): Likewise.
179         * cselib.c: Don't include obstack.h.
180         (hash_table): Use gengtype to mark.
181         (reg_values): Use gengtype to mark.
182         (used_regs): Use gengtype to mark.
183         (cselib_obstack): Delete.
184         (cselib_startobj): Delete.
185         (empty_vals): Mark as deletable.
186         (empty_elt_lists): Mark as deletable.
187         (empty_elt_loc_lists): Mark as deletable.
188         (new_elt_list): Use GGC to allocate struct elt_list.
189         (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
190         (clear_table): Don't delete obstack; don't unnecessarily clear
191         deletable variables.
192         (new_cselib_val): Use GGC to allocate struct cselib_val.
193         (cselib_init): Don't set up obstacks.  Use GGC to allocate
194         hash table.
195         (cselib_finish): Just clear variables, don't free anything.
196         * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
197         (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
198         (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
199         (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
200         (gt-reg-stack.h): New rule.
201         (gt-dependence.h): New rule.
202         (gtype-desc.o): Add cselib.h, insn-addr.h.
203
204         * varray.c: Use only necessary headers.
205         (element_size): New.
206         (uses_ggc): New.
207         (varray_init): Take type, not size.  Use GGC if appropriate.
208         (varray_grow): Update for change to struct varray_head_tag.
209         Use GGC if appropriate.
210         * varray.h (struct const_equiv_data): Use gengtype.
211         (enum varray_data_enum): New.
212         (union varray_data_tag): Use gengtype.
213         (struct varray_head_tag): Use gengtype.  Replace size field with
214         enum varray_data_enum.
215         (varray_init): Update prototype.
216         (VARRAY_SCHED_INIT): Delete.
217         (VARRAY_*_INIT): Update for change to varray_init.
218         (VARRAY_SCHED): Delete.
219         (VARRAY_PUSH_SCHED): Delete.
220         (VARRAY_TOP_SCHED): Delete.
221         * tree.h: Update for change to length specifier.
222         * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
223         (clone_body): Likewise.
224         * ssa.h (ssa_definition): Use gengtype to mark.
225         * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
226         * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
227         * rtl.h (struct rtvec_def): Update for change to length specifier.
228         * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
229         (struct initial_value_struct): Update for change to length specifier.
230         * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
231         (ggc_add_tree_varray_root): Delete prototype.
232         (ggc_mark_rtx_varray): Delete prototype.
233         (ggc_mark_tree_varray): Delete prototype.
234         * ggc-common.c (ggc_add_rtx_varray_root): Delete.
235         (ggc_add_tree_varray_root): Delete.
236         (ggc_mark_rtx_varray): Delete.
237         (ggc_mark_tree_varray): Delete.
238         (ggc_mark_rtx_varray_ptr): Delete.
239         (ggc_mark_tree_varray_ptr): Delete.
240         * gengtype.h (enum typekind): Remove TYPE_VARRAY.
241         (create_varray): Delete prototype.
242         * gengtype.c (varrays): Delete.
243         (create_varray): Delete.
244         (adjust_field_type): Detect array of string pointers.
245         (process_gc_options): Remove code to handle varray_type option.
246         (set_gc_used_type): Remove TYPE_VARRAY case.
247         (output_escaped_param): New.
248         (write_gc_structure_fields): Use output_escaped_param on all
249         parameters.  Handle 'skip' with 'use_param' option.  Handle
250         arrays of strings.  Remove TYPE_VARRAY handling.
251         (write_gc_roots): Use boolean to detect 'length' option.
252         * gengtype-yacc.y (VARRAY_TYPE): Delete token.
253         (struct_fields): Call adjust_field_type on array fields.
254         (type): Remove VARRAY_TYPE case.
255         (type_option): Likewise.
256         * gengtype-lex.l: Don't consider varray_type a keyword.
257         * function.h: Update for change to length specifier.
258         (free_eh_status): Delete prototype.
259         * function.c (free_after_compilation): Don't call free_eh_status.
260         (reorder_blocks): Don't use VARRAY_FREE.
261         * except.c (struct eh_status): Update for change to length specifier.
262         remove varray_type specifier.
263         (free_eh_status): Delete.
264         * dwarf2out.c: Include gt-dwarf2out.h.
265         (used_rtx_varray): Use gengtype to mark, move
266         outside ifdefs.
267         (incomplete_types): Likewise.
268         (decl_scope_table): Likewise.
269         (dwarf2out_init): Don't call ggc_add_tree_varray_root.  
270         * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
271         * c-tree.h (struct lang_type): Update for change to length specifier.
272         * c-parse.in (yylexstring): Don't use VARRAY_FREE.
273         * c-objc-common.c: Include gt-c-objc-common.h.
274         (deferred_fns): Mark for gengtype.
275         (c_objc_common_init): Don't call ggc_add_tree_varray_root.
276         (expand_deferred_fns): Just set deferred_fns to 0 to free it.
277         * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
278         (gtype-desc.o): Update dependencies.
279         (dwarf2out.o): Add gt-dwarf2out.h.
280         (varray.o): Update dependencies.
281         (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
282         (gt-c-objc-common.h): New rule.
283         (gt-dwarf2out.h): New rule.
284         * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
285
286         * doc/gty.texi (GTY Options): Correct spelling.
287         (GGC Roots): Likewise.
288         * Makefile.in (TEXI_CPP_FILES): New.
289         (TEXI_GCC_FILES): New.
290         (TEXI_GCCINT_FILES): New.
291         (TEXI_CPPINT_FILES): New.
292         ($(docdir)/cpp.info): Use new macros.
293         ($(docdir)/gcc.info): Likewise.
294         ($(docdir)/gccint.info): Likewise.
295         ($(docdir)/cppinternals.info): Likewise.
296         (cpp.dvi): Likewise.
297         (gcc.dvi): Likewise.
298         (gccint.dvi): Likewise.
299         (cppinternals.dvi): Likewise.
300
301         * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
302         * doc/gccint.texi (Top): Include gty.texi.
303         * doc/gty.texi: New file.
304
305         * bitmap.c: Include ggc.h, gt-bitmap.h.
306         (bitmap_ggc_free): New.
307         (bitmap_elem_to_freelist): New.
308         (bitmap_element_free): Use bitmap_elem_to_freelist.
309         (bitmap_element_allocate): Allow use of GGC.
310         (bitmap_clear): Use bitmap_elem_to_freelist.
311         (bitmap_copy): Update for change to bitmap_element_allocate.
312         (bitmap_set_bit): Likewise.
313         (bitmap_operation): Update for changes elsewhere.
314         (bitmap_initialize): Allow to create bitmaps that will use GGC.
315         * bitmap.h (struct bitmap_element_def): Use gengtype.
316         (struct bitmap_head_def): Likewise.  Also add 'using_obstack' field.
317         (bitmap_initialize): Add extra parameter.
318         (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
319         (BITMAP_ALLOCA): Delete.
320         (BITMAP_XMALLOC): Update for change to bitmap_initialize.
321         (BITMAP_GGC_ALLOC): New.
322         * Makefile.in (gtype-desc.o): Add bitmap.h.
323         (bitmap.o): Add gt-bitmap.h, $(GGC_H).
324         (GTFILES): Add bitmap.c.
325         (gt-bitmap.h): New rule.
326         ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
327         * basic-block.h: Update for changes to bitmap_initialize.
328         * except.c (exception_handler_label_map): Move into...
329         (struct eh_status): Here.
330         (struct eh_region): Make 'aka' GCable.
331         (free_eh_status): Don't need to specially handle
332         exception_handler_label_map.
333         (add_ehl_entry): Update for changes to exception_handler_label_map.
334         (find_exception_handler_labels): Likewise.
335         (remove_exception_handler_label): Likewise.
336         (maybe_remove_eh_handler): Likewise.
337         (for_each_eh_label): Likewise.
338         (remove_eh_handler): Allocate 'aka' using GGC.
339         * gengtype.c (get_output_file_with_visibility): Add bitmap.h
340         to list of includes.
341
342         * gengtype.c (write_gc_marker_routine_for_structure): Name
343         the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.  
344         (write_gc_types): Arrange for the tests with NULL to be inlined.
345         (write_gc_roots): Update uses of procedure pointers.
346         * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
347
348         * Makefile.in (explow.o): Add dependency on gt-explow.h.
349         (sdbout.o): Add dependency on gt-sdbout.h.
350
351         * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
352         (mem_attrs_htab): Likewise.
353         (init_emit_once): Don't call ggc_add_deletable_htab.
354         * fold-const.c (size_htab): Use gengtype to clear unused entries.
355         (size_int_type_wide): Don't call ggc_add_deletable_htab.
356         * gengtype.c (finish_root_table): Add LASTNAME and TNAME
357         parameters, use them, change callers.
358         (write_gc_root): Add IF_MARKED parameter, use it, change callers.
359         (write_gc_roots): Handle 'if_marked' option.
360         (main): Don't need to call set_gc_used_type any more.
361         * ggc.h (ggc_htab_marked_p): Delete.
362         (ggc_htab_mark): Delete.
363         (struct ggc_cache_tab): New.
364         (gt_ggc_cache_rtab): New declaration.
365         * ggc-common.c (struct d_htab_root): Delete.
366         (d_htab_roots): Delete.
367         (ggc_add_deletable_htab): Delete.
368         (ggc_htab_delete): Handle new htab-deleting mechanism.
369         (ggc_mark_roots): Use new htab-deleting mechanism.
370         * tree.c (type_hash_table): Use gengtype to clear unused entries.
371         Make static.
372         (init_obstacks): Don't call ggc_add_deletable_htab.
373
374         * objc/objc-act.h (struct hashed_attribute): Use gengtype.
375         (struct hashed_entry): Likewise.
376         (nst_method_hash_list): Likewise.
377         (cls_method_hash_list): Likewise.
378         (HASH_ALLOC_LIST_SIZE): Delete.
379         (ATTR_ALLOC_LIST_SIZE): Delete.
380         * objc/objc-act.c (hash_init): Use ggc to allocate
381         nst_method_hash_list, cls_method_hash_list.
382         (hash_enter): Use ggc to allocate; allocate one entry at a time.
383         (hash_add_attr): Likewise.
384         (ggc_mark_hash_table): Delete.
385         (objc_act_parse_init): Delete.
386         (objc_init): Delete reference to objc_act_parse_init.
387         * tlink.c: Replace hash.h with hashtab.h.  Explicitly include
388         obstack.h.  Replace references to 'struct hash_table' with htab_t.
389         (struct symbol_hash_entry): Replace hash header with key field.
390         (struct file_hash_entry): Replace hash header with key field.
391         (struct demangled_hash_entry): Replace hash header with key field.
392         (hash_string_eq): New.
393         (hash_string_hash): New.
394         (symbol_hash_newfunc): Delete.
395         (symbol_hash_lookup): Modify to use htab_t.
396         (file_hash_newfunc): Delete.
397         (file_hash_lookup): Modify to use htab_t.
398         (demangled_hash_newfunc): Delete.
399         (demangled_hash_lookup): Modify to use htab_t.
400         (tlink_init): Modify to use htab_t.
401         * hash.h: Delete.
402         * hash.c: Delete.
403         * ggc.h: Delete forward structure declarations.
404         Delete prototypes for deleted functions.
405         * ggc-common.c: Don't include hash.h.
406         (ggc_add_tree_hash_table_root): Delete.
407         (ggc_mark_tree_hash_table_entry): Delete.
408         (ggc_mark_tree_hash_table): Delete.
409         (ggc_mark_tree_hash_table_ptr): Delete.
410         * gengtype.c (write_gc_structure_fields): Allow param_is option.
411         (write_gc_marker_routine_for_structure): Use visibility of
412         the parameter if there is one.
413         * function.c: Replace hash.h with hashtab.h.  Replace references
414         to 'struct hash_table *' with htab_t.
415         (struct insns_for_mem_entry): Include a plain key.
416         (fixup_var_refs_insns_with_hash): Update to use htab_t.
417         (insns_for_mem_newfunc): Delete.
418         (insns_for_mem_hash): Update to use htab_t.
419         (insns_for_mem_comp): Likewise.
420         (insns_for_mem_walk): Likewise.
421         * c-lang.c: Include ggc.h.
422         * Makefile.in (OBJS): Remove hash.o.
423         (c-lang.o): Add GGC_H.
424         (COLLECT2_OBJS): Remove hash.o.
425         (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
426         (ggc-common.o): Remove hash.h.
427         (function.o): Remove hash.h, add HASHTAB_H.
428         (genautomata.o): Remove hash.h, add HASHTAB_H.
429
430         * varasm.c (mark_const_str_htab_1): Delete.
431         (mark_const_str_htab): Delete.
432         (const_str_htab_del): Delete.
433         (const_str_htab): Use gengtype to mark.
434         (init_varasm_once): Use gengtype to mark hashtables.  Use GC to
435         allocate them.
436         * tree.c (mark_tree_hashtable_entry): Delete.
437         (mark_tree_hashtable): Delete.
438         * tree.h (mark_tree_hashtable): Delete prototype.
439         * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
440         (ggc_mark): Likewise.
441         (ggc_calloc): New.
442         (htab_create_ggc): New.
443         * ggc-common.c (ggc_calloc): New.
444         * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
445         (struct type): Add param_struct structure.
446         * gengtype.c (param_structs): New.
447         (adjust_field_type): Handle param_is option.
448         (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
449         (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
450         (write_gc_structure_fields): Add new PARAM parameter.  Update
451         callers.  Handle use_param option.  Handle TYPE_PARAM_STRUCT.
452         (write_gc_marker_routine_for_structure): Add new PARAM parameter.
453         Use it to generate function name.  Update callers.
454         (write_gc_types): Add new PARAM_STRUCTS parameter.  Update callers.
455         Process them.
456         (write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
457         option.
458         (main): Define PTR as pointer-to-scalar.  Don't specially
459         mark deferred_string or ehl_map_entry.
460         * gengtype-yacc.y (PARAM_IS): Add new token.
461         (externstatic): Use adjust_field_type.
462         (type_option): Add PARAM_IS.
463         * gengtype-lex.l: Add rule for typedef of function pointers.
464         Add rule for PARAM_IS.
465         (IWORD): Add size_t.
466         * except.c (exception_handler_label_map): Use gengtype to mark.
467         (type_to_runtime_map): Likewise.
468         (mark_ehl_map_entry): Delete.
469         (mark_ehl_map): Delete.
470         (init_eh): Use gengtype for roots; use GC to allocate hash tables.
471         (t2r_mark_1): Delete.
472         (t2r_mark): Delete.
473         * Makefile.in (gtype-desc.o): Correct dependencies.
474         (GTFILES): Add hashtab.h.
475         (genautomata.o): Actually uses hashtab.h.
476
477         * Makefile.in (stringpool.o): Add $(GGC_H).
478         (dwarf2asm.o): Likewise.
479         (GTFILES): Add hashtable.h.
480         * c-common.h (struct c_common_identifier): Use gengtype.
481         * c-decl.h (c_mark_tree): Delete.
482         * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
483         * c-tree.h (struct lang_identifier): Use gengtype.
484         (union lang_tree_node): New.
485         (c_mark_tree): Delete prototype.
486         * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy 
487         dwarf2_debug_hooks.
488         * gengtype-lex.l (IWORD): Allow 'bool'.
489         (ptr_alias): Match.
490         * gengtype-yacc.y (ALIAS): New token.
491         (type_option): New rule.
492         (option): Use type_option.
493         * gengtype.c (process_gc_options): New.
494         (set_gc_used_type): Use it.
495         (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
496         Add new variable 't' to hold the type of the field being processed.
497         Add more error checking.  Use UNION_P when looking at 'desc' option.
498         Handle language-specific structures containing other
499         language-specific structures.
500         (write_gc_types): Handle 'ptr_alias' option.
501         (main): Don't need to specially output lang_type, lang_decl, lang_id2.
502         * ggc-common.c (ggc_pending_trees): Delete.
503         (ggc_mark_roots): Don't manipulate ggc_pending_trees.
504         (ggc_mark_trees): Delete.
505         (gt_ggc_m_tree_node): Delete.
506         * ggc.h (ggc_pending_trees): Delete.
507         (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
508         * hashtable.h (ht_identifier): Use gengtype.
509         * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
510         * langhooks.h (struct lang_hooks): Delete mark_tree.
511         * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
512         anyway.
513         * system.h: Poison LANG_HOOKS_MARK_TREE.
514         * tree.c (tree_node_structure): New.
515         * tree.h (struct tree_common): Use gengtype.
516         (struct tree_int_cst): Likewise.
517         (struct tree_real_cst): Likewise.
518         (struct tree_string): Likewise.
519         (struct tree_complex): Likewise.
520         (struct tree_vector): Likewise.
521         (struct tree_identifier): Likewise.
522         (struct tree_list): Likewise.
523         (struct tree_vec): Likewise.
524         (struct tree_exp): Likewise.
525         (struct tree_block): Likewise.
526         (struct tree_type): Likewise.
527         (struct tree_decl): Likewise.
528         (enum tree_structure_enum): New.
529         (union tree_node): Use gengtype, with an alias.
530         (tree_node_structure): Prototype.
531         * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
532
533         Merge to tag pch-merge-20020430.  The LANG_HOOKS_FUNCTION_MARK
534         macro was deleted.  The LANG_HOOKS_FUNCTION_FREE macro was renamed
535         to LANG_HOOKS_FUNCTION_FINAL.
536         * Makefile.in (GTFILES): Add bitmap.h.
537         * except.c (struct eh_region): Mark field 'aka' to be skipped.
538
539         * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
540         (alpha_init_machine_status): Give proper type.
541         * Makefile.in (c-lang.o): Depend on gtype-c.h.
542         (optabs.o): Depend on gt-optabs.h.
543         (GTFILES): Add optabs.o.
544         (gt-optabs.h): Add rule.
545         * optabs.c: Include gt-optabs.h.
546
547         * gengtype.c (set_gc_used_type): Correct some errors in last change.
548         (write_gc_structure_fields): If a field which should be NULL is
549         not, abort.
550         * c-pragma.c: Move struct align_stack and variable alignment_stack
551         out from the ifdef.
552
553         * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
554         * config/xtensa/xtensa.c: Include gt-cris.h.
555         (struct machine_function): Use gengtype to mark.
556         * config/mmix/mmix.h (struct machine_function): Use gengtype
557         to mark.
558         * config/cris/t-cris: Add dependencies for gt-cris.h.
559         * config/cris/cris.c: Include gt-cris.h.
560         (struct machine_function): Use gengtype to mark.
561         * config/rs6000/rs6000.h (struct machine_function): Use gengtype
562         to mark.
563         * doc/tm.texi (Per-Function Data): Delete references to
564         mark_machine_status.
565         * config/ia64/ia64.c (ia64_override_options): Don't set
566         mark_machine_status.
567         * config/i386/i386.c (override_options): Likewise.
568         * config/d30v/d30v.c (d30v_init_expanders): Likewise.
569         * config/arm/arm.c (arm_init_expanders): Likewise.
570         * config/alpha/alpha.c (override_options): Likewise.
571         * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO. 
572         * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
573         (write_gc_structure_fields): Don't handle 'really' option.
574         Handle 'maybe_null' option.
575         (write_gc_types): Handle 'maybe_null' option.
576         * function.h (struct function): Don't use "really".
577         (mark_machine_status): Delete declaration.
578         (mark_lang_status): Delete declaration.
579         (gt_ggc_mr_machine_function): Delete prototype.
580         (gt_ggc_mr_language_function): Delete prototype.
581         * function.c (mark_machine_status): Delete.
582         (mark_lang_status): Delete.
583         (gt_ggc_mr_machine_function): Delete.
584         (gt_ggc_mr_language_function): Delete.
585         * c-tree.h (mark_c_function_context): Delete prototype.
586         * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
587         * c-decl.c (struct language_function): Rename from struct
588         c_language_function.  Update uses.  Use gengtype to mark.
589         (mark_c_function_context): Delete.
590         * c-common.h (struct c_language_function): Rename from struct
591         language_function.
592         (mark_stmt_tree): Delete prototype.
593         (c_mark_lang_decl): Delete prototype.
594         (mark_c_language_function): Delete prototype.
595         * c-common.c (mark_stmt_tree): Delete.
596         (c_mark_lang_decl): Delete.
597         (mark_c_language_function): Delete.
598
599         * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
600         (lang_bitmap): New typedef.  Use where appropriate.
601         (struct type): Add gc_used field, lang_struct field.
602         (UNION_P): New macro.
603         (new_structure): New prototype.
604         (find_structure): Remove 'pos' parameter.  Change all callers.
605         * gengtype-lex.l: Update for changes to find_structure.
606         * gengtype-yacc.y (typedef_struct): Use new_structure.
607         (yacc_ids): Suppress warning.
608         (type): Use new_structure.
609         * gengtype.c (string_type): Update for changes to struct type.
610         (find_structure): Just find a structure, don't worry about
611         creating one.
612         (new_structure): New.
613         (note_yacc_type): Use new_structure.
614         (set_gc_used_type): New.
615         (set_gc_used): New.
616         (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
617         (write_gc_types): Handle TYPE_LANG_STRUCT.
618         (write_gc_marker_routine_for_structure): New.
619         (main): Call set_gc_used.  Add some calls to set_gc_used_type
620         for places where GCC doesn't use gengtype properly yet.
621         * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
622         (gt_ggc_m_tree_node): Likewise.
623
624         * varasm.c (copy_constant): Call expand_constant if we hit
625         something we can't recognise.
626
627         * ggc-common.c (ggc_mark_rtvec_children): Delete.
628         (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
629         (lang_mark_false_label_stack): Delete.
630         * rtl.h (struct rtvec_def): Use gengtype to mark.
631         * ggc.h (ggc_mark_rtvec): Delete.
632         (gt_ggc_m_rtvec_def): Delete.
633         (ggc_mark_nonnull_tree): Delete.
634         (ggc_mark_rtvec_children): Delete prototype.
635         (lang_mark_false_label_stack): Delete declaration.
636
637         * gengtype.h (note_yacc_type): Add prototype.
638         * gengtype.c (note_yacc_type): New function.
639         * gengtype-lex.l: Add lexer support for yacc files.
640         * gengtype-yacc.y (start): Extract union from yacc files.
641         (yacc_union): New rule.
642         (yacc_typematch): New rule.
643         (yacc_ids): New rule.
644         (enum_items): Tweak for efficiency.
645         (optionseq): Likewise.
646
647         * c-common.h (struct language_function): Use gengtype.
648         (struct c_lang_decl): Likewise.
649         * c-tree.h (struct lang_decl): Likewise.
650         (struct lang_type): Likewise.
651         * c-decl.c (lang_mark_tree): Use generated marker routines to mark
652         tree language substructures.
653
654         * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
655         ggc_mark_tree.
656         * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
657
658         * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
659
660         * stmt.c (struct nesting): Add discriminator.  Use gengtype to
661         mark. Remove 'data.block.cleanup_ptr' field.
662         (struct stmt_status): Use usual technique to mark struct nesting.
663         (gt_ggc_mr_nesting_cond): Delete.
664         (gt_ggc_mr_nesting_loop): Delete.
665         (gt_ggc_mr_nesting_block): Delete.
666         (gt_ggc_mr_nesting_case_stmt): Delete.
667         (expand_start_cond): Set discriminator.
668         (expand_start_loop): Likewise.
669         (expand_start_null_loop): Likewise.
670         (expand_start_bindings_and_block): Set discriminator.  Don't set
671         deleted fields.
672         (expand_decl_cleanup): Replace 'cleanup_ptr' with
673         &thisblock->data.block.cleanups.
674         (expand_start_case): Set discriminator.
675         (expand_start_case_dummy): Set discriminator.
676
677         * ggc-callbacks.c: Remove.
678
679         * gengtype.h (struct type): Add 'u.s.bitmap' field.
680         (find_structure): Add 'pos' parameter.
681         * gengtype-lex.l: Update callers to find_structure.
682         * gengtype-yacc.y: Likewise.
683         * gengtype.c (find_structure): Allow for structures to be defined
684         in multiple language backends.
685         (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
686         (counter): Rename to gc_counter.
687         (write_gc_structure_fields): Fail when writing out fields for
688         an incomplete structure.  Ignore arrays of scalars.  Handle
689         'tree_vec' special.
690         (write_gc_types): Reset counter for each procedure written.
691
692         * stmt.c (add_case_node): Use GGC to allocate struct case_node.
693         (free_case_nodes): Delete.
694         (expand_end_case_type): Delete call to free_case_nodes.
695
696         * Makefile.in (cselib.o): Include gt-<filename>.h.
697         (gcse.o): Likewise.
698         (profile.o): Likewise.
699         (alias.o): Likewise.
700         (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
701         alphabetize backend files.
702         (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
703         * alias.c: Use gengtype for roots.
704         * c-common.h (struct stmt_tree_s): Use gengtype.
705         * c-decl.c: Use gengtype for roots.
706         * cselib.c: Use gengtype for roots.
707         * expr.c: Use gengtype for roots.
708         * fold-const.c: Use gengtype for roots.
709         * gcse.c: Use gengtype for roots.
710         * gengtype-lex.l: Handle typedefs of function types.
711         Allow for empty array bounds.
712         Allow processing to stop on initialisers.
713         * gengtype-yacc.y (externstatic): Stop processing on initialisers.
714         (semiequal): New rule.
715         * gengtype.c (create_file): Tidy output files.
716         (get_output_file_with_visibility): Fix paren warning.  Fix bug
717         involving multiple input files mapping to one output file.
718         (write_gc_structure_fields): Skip arrays of scalars.
719         (write_gc_types): Tidy output files.
720         (write_gc_root): New function.
721         (write_gc_roots): Fix bugs, add support for roots that are
722         structures.
723         * ggc-common.c (ggc_mark_rtx_ptr): Delete.
724         (ggc_mark_tree_ptr): Delete.
725         (ggc_add_rtx_root): Delete.
726         (ggc_add_tree_root): Delete.
727         (ggc_del_root): Delete.
728         * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
729         allocate struct initial_value_struct.
730         * profile.c: Use gengtype for roots.
731         * sdbout.c: Use gengtype for roots.
732         * varasm.c (mark_weak_decls): Delete unused prototype.
733         (mark_const_hash_entry): Delete unused function.
734         * config/darwin-protos.h: Use gengtype for roots.
735         (machopic_add_gc_roots): Delete.
736         * config/arm/arm.c: Use gengtype for roots.
737         * config/arm/arm.h: Use gengtype for roots.
738         * config/c4x/c4x-protos.h: Use gengtype for roots.
739         * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
740         * config/d30v/d30v-protos.h: Use gengtype for roots.
741         * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
742         * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
743         * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
744         * config/ia64/ia64-protos.h: Use gengtype for roots.
745         * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
746         * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
747         * config/m68hc11/m68hc11.c (z_reg): Make global.
748         (z_reg_qi): Make global.
749         (m68hc11_add_gc_roots): Delete.
750         * config/mcore/mcore-protos.h: Use gengtype for roots.
751         * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
752         * config/mips/mips.c (mips_add_gc_roots): Delete.
753         * config/mips/mips.h: Use gengtype for roots.
754         * config/mmix/mmix.c (override_options): Use gengtype for roots.
755         * config/mmix/mmix.h: Use gengtype for roots.
756         * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
757         * config/mn10200/mn10200.h: Use gengtype for roots.
758         * config/pa/pa.c: Use gengtype for roots, marking.
759         (struct deferred_plabel): Use GGC, gengtype.
760         (pa_add_gc_roots): Delete.
761         (mark_deferred_plabels): Delete.
762         * config/pj/pj-protos.h: Use gengtype for roots.
763         * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
764         * config/rs6000/rs6000.c: Use gengtype for roots.  Don't call
765         machopic_add_gc_roots.
766         * config/rs6000/rs6000.h: Use gengtype for roots.
767         * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
768         (gt-darwin.h): Add rule.
769         * config/sh/sh.c: Use gengtype for roots.
770         * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
771         (gt-sh.h): Add rule.
772         * config/sparc/sparc.c: Use gengtype for roots.
773         (sparc_add_gc_roots): Delete.
774         (struct ultrasparc_pipeline_state): Use GGC, gengtype.
775         (mark_ultrasparc_pipeline_state): Delete.
776         * config/sparc/sparc.h: Use gengtype for roots.
777
778         * Makefile.in (c-parse.o): Update dependencies.
779         (c-common.o): Likewise.
780         (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
781         Add dependencies for the files they generate.
782         * c-common.c: Replace ggc_add_* uses with GTY annotations.
783         * c-common.h: Likewise.
784         * c-decl.c: Likewise.
785         (gt_ggc_mp_binding_level): Delete.
786         * c-lang.c: Include gtype-c.h.
787         * c-parse.in: Replace ggc_add_* uses with GTY annotations.  Include
788         gt-c-parse.h.
789         * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
790         (gt_ggc_mp_align_stack): Delete.
791         * c-tree.h: Replace ggc_add_* uses with GTY annotations.
792         * function.c: Replace ggc_add_* uses with GTY annotations.
793         (gt_ggc_mp_function): Delete.
794         * function.h: Replace ggc_add_* uses with GTY annotations.
795         * gengtype.c (lang_names): New.
796         (NUM_BASE_FILES): New.
797         (open_base_files): Create language base files.
798         (startswith): New.
799         (get_file_basename): New.
800         (get_base_file_bitmap): New.
801         (get_output_file_with_visibility): Rename from get_output_file.
802         Add more mappings for various C/Objc filenames.
803         (finish_root_table): New.
804         (write_gc_roots): Handle dependencies and scoping properly.
805         * gengtype.h: Add prototypes for new functions.
806         * ggc-common.c (struct deletable_root): Delete.
807         (deletables): Delete.
808         (ggc_add_deletable_root): Delete.
809         (ggc_mark_roots): No need to deal with deleted functionality.
810         * ggc.h (ggc_add_deletable_root): Delete prototype.
811         * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
812         (gtype-objc.h): Add rule to create.
813         * objc/config-lang.in (gtfiles): New.
814         * objc/objc-act.c: Allocate imp_list using GGC.  Replace uses of
815         ggc_add_* with GTY markers.  Include gtype-objc.h.
816         (ggc_mark_imp_list): Delete.
817         * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
818         * objc/objc-lang.c: Random Whitespace Change.
819
820         * except.h (exception_handler_labels): Delete.
821         (get_exception_handler_labels): New.
822         * except.c (exception_handler_labels): Delete.
823         (struct eh_status): Add exception_handler_labels field.
824         (doing_eh): Don't add exception_handler_labels as root.
825         (free_eh_status): Don't need to free exception_handler_labels.
826         (get_exception_handler_labels): New.
827         (find_exception_handler_labels): Update for move of
828         exception_handler_labels.
829         (remove_exception_handler_label): Likewise.
830         * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
831         * jump.c (rebuild_jump_labels): Likewise.
832         * loop.c (find_and_verify_loops): Likewise.
833         * sched-rgn.c (is_cfg_nonregular): Likewise.
834
835         * gengtype.c (write_gc_structure_fields): Handle variable-length
836         TYPE_ARRAYs.
837
838         * varasm.c (struct weak_syms): Use GGC, gengtype.
839         (mark_weak_decls): Delete.
840         (weak_decls): Likewise.
841         (add_weak): Likewise.
842         (remove_from_pending_weak_list): Likewise.
843         (init_varasm_once): Likewise.
844
845         * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
846         (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
847         stor-layout.c, regclass.c, and lists.c.
848         Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
849         gt-regclass.h and gt-lists.h on s-gtype.
850         * emit-rtl.c: Use gengtype for roots.  Include gt-emit-rtl.h.
851         * except.c: Use gengtype for roots.
852         * explow.c: Use gengtype for roots.  Include gt-explow.h.
853         * expr.h (init_stor_layout_once): Delete prototype.
854         * function.c: Use gengtype for roots.
855         * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
856         * gengtype-yacc.y (start): Can also be an externstatic.
857         (externstatic): New production.
858         (struct_fields): Correct array bounds inversion for 2-d arrays.
859         * gengtype.c (variables): New variable.
860         (note_variable): New function.
861         (get_output_file): Include libfuncs.h into gtype-desc.c.
862         (get_output_file_name): New function.
863         (write_gc_structure_fields): Suppress warnings.
864         (write_gc_types): Make static.
865         (put_mangled_filename): New function.
866         (write_gc_roots): New function.
867         (main): Call write_gc_roots.
868         * gengtype.h (note_variable): Prototype.
869         (get_output_file_name): Prototype.
870         (write_gc_types): Delete prototype.
871         * ggc.h: Clean up unnecessary structure predefinitions.
872         (struct ggc_root_tab): Define.
873         (gt_ggc_m_rtx_def): Make function, not macro.
874         (gt_ggc_m_tree_node): Likewise.
875         * libfuncs.h: Use gengtype for roots.
876         * lists.c: Use gengtype for roots.  Include gt-lists.h.
877         (init_EXPR_INSN_LIST_cache): Delete.
878         * optabs.c: Use gengtype for roots.
879         (gt_ggc_mp_optab): Delete.
880         * optabs.h: Use gengtype for roots.
881         * regclass.c: Use gengtype for roots.  Include gt-regclass.h.
882         * rtl.h: Use gengtype for roots.
883         (init_EXPR_INSN_LIST_cache): Delete prototype.
884         * stor-layout.c: Use gengtype for roots.
885         Include gt-stor-layout.h.
886         (init_stor_layout_once): Delete.
887         * toplev.c: Use gengtype for roots.  Delete calls to deleted
888         routines.
889         * tree.c: Use gengtype for roots.
890         * tree.h: Use gengtype for roots.
891         * varasm.c: Use gengtype for roots.
892         
893         * Makefile.in (GTFILES): Add @all_gtfiles@.
894         * configure: Regenerate.
895         * configure.in: Construct all_gtfiles from the gtfiles definitions
896         in config-lang.in.
897         * gengtype-yacc.y (type): Warn about duplicate structure names.
898         * gengtype.c (get_output_file): Handle .c files in language
899         subdirectories.
900
901         * Makefile.in (GTFILES): Run gengtype on all the config files
902         and on the target .c file.
903         * except.c (mark_eh_region): Delete.
904         (init_eh_for_function): Use GGC on struct eh_status.
905         (mark_eh_status): Delete.
906         (free_eh_status): Use GGC.
907         (expand_eh_region_start): Use GGC to
908         (collect_eh_region_array): Allocate last_region_number using GGC.
909         (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
910         (remove_eh_handler): Let GGC free struct eh_region.
911         (add_call_site): Use GGC to reallocate call_site_record array.
912         * function.c (init_machine_status): Update calling sequence.
913         (mark_machine_status): Likewise.
914         (mark_lang_status): Likewise.
915         (prepare_function_start): Update init_machine_status call.
916         (mark_function_status): Delete.
917         (maybe_mark_struct_function): Delete.
918         (ggc_mark_struct_function): Delete.
919         (gt_ggc_mp_function): New.
920         (gt_ggc_mr_machine_function): New.
921         (gt_ggc_mr_language_function): New.
922         (init_function_once): Use canonical names.
923         * function.h (struct function): Use gengtype.
924         (init_machine_status): Return the structure.
925         (mark_machine_status): Take a 'void *'.
926         (mark_lang_status): Likewise.
927         * ggc-common.c (ggc_mark_trees): Use canonical name for
928         ggc_mark_struct_function.
929         * tree.h (ggc_mark_struct_function): Delete prototype.
930         * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
931         (alpha_init_machine_status): Likewise.
932         (override_options): Use canonical name for alpha_mark_machine_status.
933         * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
934         * config/arm/arm.h (struct machine_function): Use gengtype.
935         * config/arm/arm.c (arm_mark_machine_status): Delete.
936         (arm_init_machine_status): Update calling sequence.
937         (arm_init_expanders): Use canonical name for arm_mark_machine_status.
938         * config/cris/cris.c (cris_init_machine_status): Update 
939         calling sequence.
940         * config/d30v/d30v.h (struct machine_function): Use gengtype.
941         * config/d30v/d30v.c (d30v_init_machine_status): Update 
942         calling sequence.
943         (d30v_mark_machine_status): Delete.
944         * config/i386/i386.c: Include gt-i386.h.
945         (struct machine_function): Use gengtype.
946         (ix86_init_machine_status): Update calling sequence.
947         (ix86_mark_machine_status): Delete.
948         (override_options): Use canonical namke for ix86_mark_machine_status.
949         * config/ia64/ia64.h (struct machine_function): Use gengtype.
950         * config/ia64/ia64.c (ia64_init_machine_status): Update calling 
951         sequence.
952         (ia64_mark_machine_status): Delete.
953         (ia64_override_options): Use canonical name for 
954         ia64_mark_machine_status.
955         * config/mmix/mmix.c (mmix_init_machine_status): Update calling 
956         sequence.
957         * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
958         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
959         * gengtype.c (get_output_file): Fix warning.
960         (main): Add prototype to suppress warning.
961         * tree.c: Remove tree_hash_mark prototype.
962
963         * tree.h (init_stmt): Delete prototype.
964         * toplev.c (lang_independent_init): Don't call init_stmt.
965         * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
966         (stmt_obstack): Delete.
967         (POPSTACK): No need to free 'struct nesting'.
968         (gt_ggc_mr_nesting_cond): Use canonical names.
969         (gt_ggc_mr_nesting_loop): Use canonical names.
970         (gt_ggc_mr_nesting_block): Use canonical names.
971         (gt_ggc_mr_nesting_case_stmt): Use canonical names.
972         (mark_stmt_status): Delete.
973         (init_stmt): Delete.
974         (clear_last_expr): Clear both last_expr_type and last_expr_value.
975         Use it everywhere that last_expr_type was cleared.
976         * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
977         (zap_lists): Delete.
978         * ggc.h (ggc_add_deletable_root): Prototype.
979         (mark_stmt_status): Remove prototype.
980         * ggc-common.c (ggc_add_deletable_root): New.
981         (ggc_mark_roots): Handle deletable roots.
982         * function.c (ggc_mark_struct_function): Use canonical name
983         for mark_stmt_status.
984         * emit-rtl.c (free_sequence_stack): New.
985         (start_sequence): Use a freelist for sequences.
986         (end_sequence): Likewise.
987         (init_emit_once): Add free_sequence_stack as a deleteable root.
988         * c-pragma.c Include gt-c-pragma.h.
989         (struct align_stack): Use gengtype.
990         (push_alignment): Use GGC for struct align_stack.
991         (mark_align_stack): Delete.
992         (gt_ggc_mp_align_stack): New.
993         (init_pragma): Use canonical name for mark_align_stack.
994         * c-decl.c: Include gt-c-decl.h.
995         (struct binding_level): Use gengtype.
996         (make_binding_level): Use GGC; handle the freelist here.
997         (pop_binding_level): New.
998         (pushlevel): Move code into make_binding_level.
999         (push_label_level): Likewise.
1000         (poplevel): Move code into pop_binding_level.
1001         (pop_label_level): Likewise.
1002         (mark_binding_level): Delete.
1003         (gt_ggc_mp_binding_level): New.
1004         (c_init_decl_processing): Use canonical name for mark_binding_level.
1005         Add free_binding_level as deletable root.
1006         (mark_c_function_context): Use canonical name for mark_binding_level.
1007         * Makefile.in (c-decl.o): Add gt-c-decl.h.
1008         (c-pragma.o): Add gt-c-pragma.h.
1009         (GTFILES): Add c-decl.c and c-pragma.c.
1010         (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
1011
1012         * tree.c (struct type_hash): Use gengtype.
1013         (init_obstacks): Use canonical name for type_hash_mark.
1014         (type_hash_mark): Delete.
1015         Include gt-tree.h.
1016         * rtl.h (struct mem_attrs): Use gengtype.
1017         * optabs.h (struct optab): Use gengtype.
1018         * optabs.c (expand_binop): Squish signed/unsigned warning.
1019         (mark_optab): Make local, use canonical name, use autogenerated
1020         marker procedure.
1021         (init_optabs): Use canonical name for mark_optab.
1022         (new_optab): Use GGC to allocate optabs.
1023         * ggc.h: Delete mark_optab prototype.
1024         * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
1025         mem_attrs marker procedure.
1026         * gengtype.c (get_output_file): Include headers in gtype-desc.c
1027         explicitly rather than deducing them from file names.
1028         (write_gc_structure_fields): Handle arrays of structures.
1029         (main): Return non-zero exit code if errors occur during output.
1030         * emit-rtl.c (mem_attrs_mark): Delete.
1031         (init_emit_once): Use canonical name for mem_attrs marker procedure.
1032         * Makefile.in (gtype-desc.o): Explicitly name dependencies.
1033         (tree.o): Depend on gt-tree.h.
1034         (GTFILES): Add rtl.h, optabs.h, tree.c.
1035         (gt-tree.h): Add it to s-gtype rule.
1036
1037         * .cvsignore: Ignore gengtype flex/bison generated files.
1038         * Makefile.in (GGC_H): Add gtype-desc.h.
1039         (OBJS): Add gtype-desc.o.
1040         (GEN): Add gengtype.
1041         (STAGESTUFF): Add gengtype.
1042         (varasm.o): Add gt-varasm.h.
1043         (stmt.o): Add gt-stmt.h.
1044         (except.o): Add gt-except.h.
1045         (integrate.o): Add gt-integrate.h.
1046         (GTFILES): New.
1047         Add new rules for new files.
1048         * configure: Regenerate.
1049         * configure.in: Correct defaults.h paths.
1050         * emit-rtl.c (mark_sequence_stack): Delete.
1051         (mark_emit_status): Delete.
1052         (start_sequence): Allocate sequence structures using GGC.
1053         (end_sequence): Allocate sequence structures using GGC.
1054         * except.c: Use gengtype for various structures.  Include
1055         gt-except.h.
1056         * expr.c (mark_expr_status): Delete.
1057         * function.c: Use gengtype for various structures.  Include
1058         gt-function.h.
1059         (mark_function_status): Use standard gt_ggc names for marker functions.
1060         (ggc_mark_struct_function): Likewise.
1061         * function.h: Use gengtype for various structures.
1062         * gengtype-lex.l: New file.
1063         * gengtype-yacc.y: New file.
1064         * gengtype.c: New file.
1065         * gengtype.h: New file.
1066         * ggc.h: Include gtype-desc.h.  Alias some marker procedures to
1067         the standard names.  Remove some now-unnecessary prototypes.
1068         * integrate.c: Use gengtype for various structures.  Include
1069         gt-integrate.h.
1070         (mark_hard_reg_initial_vals): Delete.
1071         * integrate.h (mark_hard_reg_initial_vals): Delete.
1072         * stmt.c: Use gengtype for various structures.  Include
1073         gt-stmt.h.
1074         (mark_case_node): Delete.
1075         (mark_goto_fixup): Delete.
1076         (mark_stmt_status): Use standard gt_ggc names for marker functions.
1077         * system.h: Define GTY to empty.   In flex/bison files,
1078         don't poison malloc or realloc, instead just define them to
1079         xmalloc and xrealloc.
1080         * varasm.c: Use gengtype for various structures.  Include
1081         gt-varasm.h.  Use standard gt_ggc names for marker functions.
1082         (mark_pool_constant): Delete.
1083         (mark_varasm_status): Delete.
1084         (decode_rtx_const): #if 0 out non-typesafe hack.
1085
1086         * function.h (free_lang_status): Mark as obsolete.
1087         * function.c (free_lang_status): Mark as obsolete.
1088         * c-decl.c (push_c_function_context): Use GC to allocate and free
1089         struct language_function.
1090         (pop_c_function_context): Likewise.
1091         * c-common.c (mark_c_language_function): Mark struct
1092         language_function.
1093
1094         * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
1095         Document that the machine_function structures must be allocated
1096         using GC.  Update mark_machine_status documentation.
1097         * function.h: Don't declare free_machine_status.
1098         * function.c (free_machine_status): Don't define. 
1099         (free_after_compilation): Don't call free_machine_status.
1100         (ggc_mark_struct_function): Mark f->machine.  Call
1101         mark_machine_status only on non-NULL pointers.
1102         * system.h: Poison free_machine_status.
1103         * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
1104         struct machine_function.
1105         (xtensa_free_machine_status): Delete.
1106         (override_options): Don't set free_machine_status.
1107         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
1108         free_machine_status.
1109         (rs6000_init_machine_status): Use GC on struct machine_function.
1110         (rs6000_free_machine_status): Delete.
1111         * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
1112         machine_function.
1113         (ia64_mark_machine_status): Likewise.
1114         (ia64_free_machine_status): Delete.
1115         (ia64_override_options): Don't set free_machine_status.
1116         * config/i386/i386.c (override_options): Don't set
1117         free_machine_status.
1118         (ix86_init_machine_status): Use GC on struct machine_function.
1119         (ix86_mark_machine_status): Likewise.
1120         (ix86_free_machine_status): Delete.
1121         * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
1122         machine_function.
1123         (d30v_mark_machine_status): Likewise.
1124         (d30v_free_machine_status): Delete.
1125         (d30v_init_expanders): Don't set free_machine_status.
1126         * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
1127         machine_function.
1128         (arm_init_machine_status): Likewise.
1129         (arm_free_machine_status): Delete.
1130         (arm_init_expanders): Don't set free_machine_status.
1131         * config/alpha/alpha.c (override_options): Don't set
1132         free_machine_status.
1133         (alpha_init_machine_status): Use GC on struct machine_function.
1134         (alpha_mark_machine_status): Likewise.
1135         (alpha_free_machine_status): Delete.
1136
1137         * varasm.c (compare_constant): Fix typo.
1138
1139         * varasm.c: Don't include obstack.h.
1140         (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
1141         (struct rtx_const): Give substructures names, improve formatting.
1142         (struct constant_descriptor): Delete.
1143         (struct constant_descriptor_tree): New, based on constant_descriptor.
1144         (const_hash_table): Is a hash table of trees.
1145         (mark_const_hash_entry): Is used for hashes of trees.  Mark
1146         constant_descriptor_tree structure.
1147         (mark_const_str_htab_1): Mark deferred_string structure.
1148         (compare_constant): Rewrite to compare trees.
1149         (compare_constant_1): Delete.
1150         (record_constant): Delete.
1151         (record_constant_1): Delete.
1152         (output_constant_def): Use struct constant_descriptor_tree.
1153         Don't duplicate trees twice.
1154         (struct constant_descriptor_rtx): New.
1155         (struct pool_constant): Used for rtx constants.
1156         (init_varasm_status): Update for change to struct varasm_status.
1157         (mark_varasm_status): Likewise.
1158         (free_varasm_status): Delete.
1159         (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
1160         (record_constant_rtx): Likewise.
1161         (mem_for_const_double): Update to use struct constant_descriptor_rtx.
1162         (force_const_mem): Likewise.
1163         * Makefile.in (varasm.o): Doesn't depend on obstack.h.
1164         * function.c (free_after_compilation): Don't use free_varasm_status.
1165         * function.h: Don't prototype free_varasm_status.
1166
1167         * ggc-common.c (ggc_realloc): Handle X being NULL.
1168
1169         * ggc-common.c (ggc_realloc): New function.
1170         * ggc.h: Prototype it.
1171         * emit-rtl.c (free_emit_status): Delete.
1172         (init_emit): Allocate emit subarrays using GC.
1173         (gen_reg_rtx): Reallocate subarrays using GC.
1174         (init_emit): Use GC to allocate 'struct emit_status' and its
1175         subarrays.
1176         (mark_emit_status): Mark structure and its subarrays.
1177         * stmt.c (free_stmt_status): Delete.
1178         * expr.c (free_expr_status): Delete.
1179         * function.h: Remove prototypes for deleted functions.
1180         * function.c (free_after_compilation): Don't use deleted functions.
1181         Don't call free() on x_parm_reg_stack_loc.
1182         (free_after_parsing): Don't use free_stmt_status.
1183         (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
1184         (mark_function_status): Mark x_parm_reg_stack_loc.
1185
1186         * varasm.c (init_varasm_status): Use GC to allocate
1187         'struct varasm_status' and its fields x_const_rtx_hash_table
1188         and x_const_rtx_sym_hash_table.
1189         (mark_varasm_status): Mark them.
1190         (free_varasm_status): Use GC to free them.
1191         * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
1192         (mark_expr_status): Mark the structure itself.
1193         (free_expr_status): Use GC to free the structure.
1194         * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
1195         (mark_stmt_status): Mark the 'struct stmt_status' itself.
1196         (init_stmt_for_function): Allocate the structure for GC.
1197
1198         * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
1199         (equate_type_number_to_die): Likewise.
1200         * tree.h (TYPE_SYMTAB_DIE): New macro.
1201         (struct die_struct): Predeclare.
1202         (struct tree_type): Add field symtab.die.   Add a tag
1203         to the union type of field symtab.
1204
1205         * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
1206         'struct rtvec_def *', not 'struct rtvec_def'.
1207
1208         * function.h (original_arg_vector): Make a real rtvec.
1209         * function.c (ggc_mark_struct_function): Adjust.
1210         * integrate.c (expand_inline_function): Adjust.
1211
1212 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
1213
1214         * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
1215         (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
1216         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
1217         (TARGET_VERSION_CPU): Define according to the
1218         default target.
1219         (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
1220         TARGET_VERSION_CPU.
1221         (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
1222         if TARGET_SHMEDIA64.
1223         (LINK_DEFAULT_CPU_EMUL): Define according to the
1224         default target.
1225         (SUBTARGET_LINK_EMUL_SUFFIX): Define.
1226         (SUBTARGET_LINK_SPEC): Define.
1227         (LINK_SPEC): Use SH_LINK_SPEC.
1228         (ASM_SPEC): Remove.
1229         (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
1230         (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
1231         and TARGET_SHMEDIA64 which abort, for now.
1232         * config/sh/t-netbsd-sh5: New file.
1233         * config/sh/t-netbsd-sh5-32: New file.
1234         * config/sh/t-netbsd-sh5-64: New file.
1235
1236 2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
1237             Richard Henderson  <rth@redhat.com>
1238
1239         * config/alpha/alpha.c (reg_or_const_int_operand): New.
1240         (some_operand, input_operand): Accept CONST_VECTOR.
1241         (alpha_extra_constraint): Add 'W'.
1242         (alpha_expand_zap_mask): New.
1243         (alpha_expand_builtin_vector_binop): New.
1244         (enum alpha_builtin): New.
1245         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
1246         (alpha_init_builtins, alpha_expand_builtin): New.
1247         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
1248         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
1249         (PREDICATE_CODES): Update.
1250         * config/alpha/alpha-protos.h: Update.
1251         * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
1252         UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
1253         (movv8qi, movv8qi_fix, movv8qi_nofix): New.
1254         (movv4hi, movv4hi_fix, movv4hi_nofix): New.
1255         (movv2si, movv2si_fix, movv2si_nofix): New.
1256         (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
1257         (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
1258         (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
1259         builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
1260         builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
1261         builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
1262         builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
1263         pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
1264         builtin_unpkbw, unpkbw): New.
1265         * doc/extend.texi (Alpha Built-in Functions): New.
1266
1267 2002-06-03  Richard Henderson  <rth@redhat.com>
1268
1269         * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
1270         USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
1271
1272 2002-06-03  Richard Henderson  <rth@redhat.com>
1273
1274         * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
1275
1276         * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
1277         (const0_operand): New.
1278         (reg_or_fp0_operand, fp0_operand): Remove.
1279         * config/alpha/alpha.h (PREDICATE_CODES): Update.
1280         * config/alpha/alpha-protos.h: Update.
1281         * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
1282         and fp0_operand with reg_or_0_operand and const0_operand.
1283
1284 2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
1285
1286         * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
1287
1288 2002-06-03  Roger Sayle  <roger@eyesopen.com>
1289
1290         * gcse.c (cprop_jump): Use single_set to get the pattern
1291         from the setcc argument.
1292
1293 2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>
1294
1295         * diagnostic.h (diagnostic_count): Move from output_buffer to 
1296         diagnostic_context.
1297         (diagnostic_kind_count): Adjust definition.
1298
1299 Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
1300
1301         * except.c (except.c): Do not rebuild CFG.
1302         * toplev.c (rest_of_compilation): Recompute CFG after sibcall
1303         optimization.
1304
1305 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
1306
1307         * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
1308         * toplev.c: Include cfglahout.h
1309         * Makefile.in (toplev.c): Add dependnecy.
1310
1311 2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>
1312
1313         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
1314         (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
1315         (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
1316
1317 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
1318
1319         * config/ns32k/netbsd.h: Update copyright years.
1320         (TARGET_OS_CPP_BUILTINS): Define.
1321         (CPP_PREDEFINES): Remove.
1322         * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
1323         (TARGET_CPU_CPP_BUILTINS): Define.
1324
1325 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1326
1327         * emit-rtl.c: Fix formatting.
1328         * errors.h: Likewise.
1329         * except.c: Likewise.
1330         * explow.c: Likewise.
1331         * expmed.c: Likewise.
1332         * expr.c: Likewise.
1333         * expr.h: Likewise.
1334
1335 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1336
1337         * config/h8300/elf.h: Fix formatting.
1338         * config/h8300/rtems.h: Likewise.
1339
1340 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
1341
1342         * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
1343
1344 2002-06-02  Tom Tromey  <tromey@redhat.com>
1345
1346         * fixinc/fixincl.x: Rebuilt.
1347         * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
1348
1349 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1350
1351 config/i370:
1352         * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
1353         * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
1354         * mvs.h: Similarly.
1355         * oe.h: Similarly.
1356
1357 Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
1358
1359         * final.c (final):  Allow notes to not have computed addresses;
1360         kill no longer needed STACK_REGS ifdef.
1361
1362 2002-06-02  Richard Henderson  <rth@redhat.com>
1363
1364         * gcse.c (bypass_conditional_jumps): Fix typo last change.
1365
1366 Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
1367
1368         * loop.c (emit_prefetch_instructions): Properly place the address
1369         computation.
1370
1371 Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
1372
1373         * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
1374         (set_block_for_insn): Turn into macro.
1375         * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
1376         * cfglayout.c (insn_scopes): Kill.
1377         (scope_to_insns_initialize): Do not use insn_scopes.
1378         (scope_to_insns_finalize): Likewise.
1379         (duplicate_insn_chain): Likewise.
1380         (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
1381         * cfgrtl.c (basic_block_for_insn): Kill.
1382         (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
1383         (create_basic_block_structure): Use reorder_insns.
1384         (compute_bb_for_insn): Do not use basic_block_for_insn.
1385         (merge_blocks_nomove): Likewise.
1386         (update_bb_for_insn): Likewise.
1387         (verify_flow_info): Likewise.
1388         (set_block_for_insn): Kill.
1389         * combine.c (try_combine): Update gen_rtx_INSN call.
1390         * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
1391         (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
1392         scopes and BBs.
1393         (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
1394         (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
1395         Clear BB.
1396         (emit_insns_after): Simplify.
1397         (emit_copy_of_insn_after): Copy scope.
1398         * final.c (final_start_function): Lower scopes.
1399         * flow.c (check_function_return_warnings): Do not rely on deleted insn.
1400         * integrate.c (copy_insn_list): Cope scopes.
1401         * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
1402         * loop.c (loop_optimize): Do not care block notes.
1403         * print-rtl.c (print_rtx): Print BB.
1404         * recog.c (apply_change_group): Simplify.
1405         * rtl.c (copy_rtx): Handle 'B'.
1406         * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
1407         * rtl.h (Field accessors): Update indexes.
1408         * sched-ebb.c (schedule_ebbs): Do not lower notes.
1409         * sched-rgn.c (schedule_insns): Likewise.
1410         * toplev.c (rest_of_compilation): Lower notes.
1411         * unroll.c (unroll_loop): Do not care scoping notes.
1412         (copy_loop_body): Copy scopes.
1413
1414 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1415
1416 config/h8300:
1417         * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
1418         SUBTARGET_SPEC.
1419         * rtems.h: Similarly.
1420         * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
1421         EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
1422         (TARGET_CPU_CPP_BUILTINS): Use.
1423
1424 2002-06-02  Richard Henderson  <rth@redhat.com>
1425
1426         * alias.c: Include target.h.
1427         (mark_constant_function): Use targetm.binds_local_p instead
1428         of checking TREE_PUBLIC ourselves.
1429         * Makefile.in (alias.o): Add TARGET_H.
1430
1431 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1432
1433         * c-lex.c: Update copyright and file description.
1434
1435 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1436
1437         * config/fr30/fr30.h: Update to new CPP macros.
1438
1439 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1440
1441         * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
1442
1443 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1444             Zack Weinberg <zack@codesourcery.com>
1445
1446         * c-common.c (c_common_init): Override cpplib's default
1447         warn_long_long setting.
1448         * c-lex.c (lex_number): Replace with interpret_integer,
1449         interpret_float, narrowest_unsigned_type and
1450         narrowest_signed_type, taking advantage of the new
1451         cpplib functionality.
1452         * cpperror.c (_cpp_begin_message): If a warning is turned
1453         into an error, avoid printing "warning:".
1454         * cppexp.c (cpp_num_sign_extend): New.
1455         * cppinit.c: Update comment.
1456         * cpplib.h (cpp_num_sign_extend): New.
1457         * tree.h: Update comment.
1458
1459 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
1460
1461         * diagnostic.h (struct diagnostic_context):  Add new member
1462         internal_error. 
1463         (internal_error_function): Remove declaration.
1464         * diagnostic.c (internal_error_function): Remove definition..
1465         (internal_error): Adjust use.
1466
1467 2002-06-02  Richard Henderson  <rth@redhat.com>
1468
1469         * rtl.h (CC0_P): New.
1470         * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
1471         (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
1472         (bypass_block): Save old dest block for dump text.
1473         (bypass_conditional_jumps): Allow any mode register; use CC0_P.
1474         Allow only true SET insns, not single_set.
1475
1476 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
1477
1478         * diagnostic.c (diagnostic_finish): Rename to output_flush.
1479         (clear_disgnostic_info): Rename to output_clear_data.  Use false
1480         instead of 0 for boolean value.
1481         Adjust function call throughout.
1482
1483 Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
1484
1485         * cfgrtl.c (commit_one_edge_insertion): Fix warning.
1486         * gcse.c (bypass_conditional_jumps): CSE out single_set call.
1487
1488 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1489
1490         * d30v.h (CPP_PREDEFINES): Replace with
1491         (TARGET_CPU_CPP_BUILTINS): New.
1492
1493 2002-06-02  Roger Sayle  <roger@eyesopen.com>
1494
1495         * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
1496
1497 Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
1498
1499         * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
1500
1501 2002-06-02  Richard Henderson  <rth@redhat.com>
1502
1503         * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
1504
1505 2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1506
1507         Support for C++ constructors/destructors.
1508         * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
1509         instead of looping if main() returns.
1510         (asm_file_start): Output global symbols that cause .data and .bss
1511         initialization code to be linked in, unconditionally for now.
1512         (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
1513         * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
1514         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
1515         (LIBSTDCXX): New.
1516         * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
1517         (__tablejump__): New.
1518         (__do_copy_data, __do_clear_bss): New.
1519         (__do_global_ctors, __do_global_dtors): New.
1520         * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
1521         _ctors, _dtors.
1522
1523 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1524
1525         * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
1526         (CPP_SPEC, CPP_PREDEFINES): Kill.
1527         * c4x/rtems.h (CPP_PREDEFINES): Kill.
1528         (TARGET_OS_CPP_BUILTINS): New.
1529
1530 Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>
1531
1532         * Makefile.in (tracer.o): New.
1533         * params.def (TRACER_*): New options.
1534         * rtl.h (tracer): Declare.
1535         * timevar.def (TV_TRACER): New.
1536         * toplev.c (dump_file_index): Add DFI_tracer.
1537         (dump_file_info): Add tracer.
1538         (flag_tracer): New.
1539         (lang_indepdenent_options): Add tracer.
1540         (rest_of_compilation): Call tracer.
1541         * tracer.c: New file.
1542         * invoke.texi (-ftracer): Document.
1543         (--param tracer-*): Document.
1544
1545 2002-06-01  Daniel Berlin  <dberlin@dberlin.org>
1546
1547         * tree-inline.c (expand_call_inline): Make the statement
1548         expression we generate have a COMPOUND_STMT.    
1549
1550 2002-06-01  Roger Sayle  <roger@eyesopen.com>
1551
1552         * gcse.c (cprop_cc0_jump): Function deleted.
1553         (cprop_jump): Take an additional argument which is the possibly
1554         NULL cc setting insn immediately before the conditional jump.
1555         When a MODE_CC set is present, substitute it into the JUMP_INSN
1556         before attempting the constant propagation.
1557         (cprop_insn):  Recognize cc setters followed by conditional jumps
1558         as a special case.   Use cprop_jump instead of cprop_cc0_jump.
1559         (cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
1560         (find_bypass_set): New function based upon find_avail_set used by
1561         cprop, but finds constant expressions available at the end of
1562         basic blocks.
1563         (bypass_block): New function.  Given a basic block that begins
1564         with a conditional jump and multiple incoming edges, perform
1565         the jump bypass optimization.
1566         (bypass_conditional_jumps): New function.  Call bypass_block with
1567         each suitable basic block in the CFG using a simple single pass.
1568
1569 2002-06-01  Roger Sayle  <roger@eyesopen.com>
1570
1571         * tree.c (real_minus_onep): New function to test for -1.0.
1572         * fold-const.c (fold) [MULT_EXPR]:  Optimize -1.0*x into -x.
1573
1574 2002-06-01  Roger Sayle  <roger@eyesopen.com>
1575
1576         * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
1577         and "!p && !q" into "(p|q) == 0" under suitable conditions.
1578
1579 2002-06-01  Andreas Jaeger  <aj@suse.de>
1580
1581         * cppexp.c (cpp_classify_number): Cast precission to int for
1582         correct printf format.
1583
1584 2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1585
1586         * config/avr/avr.c (avr_mcu_types): Remove devices that were once
1587         expected, but don't really exist: atmega83, atmega85, attiny10.
1588         * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
1589         emulations for all devices.
1590         (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
1591         * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
1592
1593 2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>
1594
1595         * config/h8300/h8300-protos.h: Add a prototype for
1596         h8300_shift_needs_scratch_p.
1597         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
1598         * config/h8300/h8300.h (OK_FOR_R): New.
1599         (OK_FOR_S): Likewise.
1600         (OK_FOR_T): Likewise.
1601         (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
1602         * config/h8300/h8300.md (anonymous shift patterns): Use
1603         constraints R, S, and T.
1604
1605 Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1606
1607         * basic-block.h (struct basic_block_def): New field loop_father.
1608         (BB_VISITED): New flag.
1609         (struct loop): New field pred, removed field shared.
1610         (struct loops): New field parray.
1611         (LOOP_EXITS_DOMS): Removed.
1612         (flow_loop_tree_node_add, flow_loop_tree_node_remove,
1613         flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
1614         dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
1615         add_bb_to_loop, remove_bb_from_loops, find_common_loop,
1616         verify_loop_structure): Declare.
1617         * cfg.c (entry_exit_blocks): Initialize loop_father field.
1618         * cfganal.c (dfs_enumerate_from): New function.
1619         * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
1620         (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
1621         flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
1622         flow_loop_dump, flow_loops_dump, flow_loops_free,
1623         flow_loop_tree_node_add, flow_loop_level_compute,
1624         flow_loops_level_compute, flow_loop_scan, flow_loops_update,
1625         flow_loop_outside_edge_p): Modified for new infrastructure.
1626         (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
1627         redirect_edge_with_latch_update, flow_loop_free): New static functions.
1628         (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
1629         get_loop_body, add_bb_to_loop, remove_bb_from_loops,
1630         find_common_loop, verify_loop_structure, loop_latch_edge,
1631         loop_preheader_edge): New functions.
1632         (flow_loops_cfg_dump): Do not show dominators, as this information
1633         does not remain up to date long.
1634         (flow_loops_find): Store results in new format.
1635         * predict.c (propagate_freq, estimate_probability,
1636         estimate_loops_at_level, estimate_bb_frequencies): Use new loop
1637         infrastructure.
1638
1639 2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>
1640
1641         * except.c (nothrow_function_p): Walk epilogue delay list
1642         checking the insn, not the chain for potential throws.
1643
1644 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
1645
1646         * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
1647         (install): Refer to install-cpp directly.
1648         (uninstall-cpp): Folded into uninstall rule.
1649         * configure.in: Delete all code relating to --disable-cpp.
1650         * configure: Regenerate.
1651         * config/t-install-cpp: Delete.
1652
1653 2002-05-31  Richard Henderson  <rth@redhat.com>
1654
1655         * configure.in (HAVE_AS_TLS): Add alpha tests.
1656         * configure: Rebuild.
1657         * config/alpha/alpha.c (TARGET_AS_TLS): New.
1658         (alpha_tls_size, alpha_tls_size_string): New.
1659         (overide_options): Set it.  Always install machine_status hooks.
1660         (input_operand): Accept got tls predicates.
1661         (local_symbol_p): Merge into ...
1662         (local_symbolic_operand): ... here.  Reject tls symbols.
1663         (global_symbolic_operand): Likewise.
1664         (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
1665         (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
1666         (tp16_symbolic_operand, tp32_symbolic_operand): New.
1667         (gottp_symbolic_operand, tls_symbolic_operand_type): New.
1668         (alpha_encode_section_info): Handle TLS symbols.
1669         (alpha_strip_name_encoding): Likewise.
1670         (alpha_legitimate_address_p): Likewise.
1671         (alpha_legitimize_address): Likewise.
1672         (alpha_expand_mov): Early exit to avoid nop moves.
1673         (struct machine_function): Move from unicosmk.h.  Add some_ld_name.
1674         (alpha_init_machine_status, alpha_mark_machine_status,
1675         alpha_free_machine_status): Always define.
1676         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
1677         (print_operand, print_operand_address): Add TLS relocs.
1678         * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
1679         (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
1680         (TARGET_SWITCHES): Add -mtls-kernel.
1681         (alpha_tls_size, alpha_tls_size_string): New.
1682         (TARGET_OPTIONS): Add -mtls-size=.
1683         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
1684         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
1685         (ASM_OUTPUT_LABELREF): Skip %.
1686         (PRINT_OPERAND_PUNCT_VALID_P): Add &.
1687         (PREDICATE_CODES): Update.
1688         * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
1689         UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
1690         UNSPEC_TP, UNSPECV_SET_TP): New.
1691         (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
1692         adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
1693         set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
1694         movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
1695         (call_value_osf_2_er): Accept anything as op4.
1696         * config/alpha/alpha-protos.h: Update.
1697         * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
1698
1699 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
1700
1701         * cppinit.c (append_include_chain): Always pay attention to
1702         cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
1703         marker on argument.
1704
1705 2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1706
1707         * target.h: Fix formatting.
1708         * timevar.h: Likewise.
1709         * tlink.c: Likewise.
1710         * toplev.c: Likewise.
1711         * toplev.h: Likewise.
1712         * tree.c: Likewise.
1713         * tree-dump.h: Likewise.
1714         * tree.h: Likewise.
1715         * tree-inline.h: Likewise.
1716         * unroll.c: Likewise.
1717         * unwind-dw2.c: Likewise.
1718         * unwind-dw2-fde.c: Likewise.
1719         * unwind-dw2-fde-glibc.c: Likewise.
1720         * unwind-dw2-fde.h: Likewise.
1721         * unwind.h: Likewise.
1722         * unwind-sjlj.c: Likewise.
1723         * varasm.c: Likewise.
1724         * varray.h: Likewise.
1725         * vmsdbg.h: Likewise.
1726         * vmsdbgout.c: Likewise.
1727         * xcoffout.h: Likewise.
1728
1729 2002-05-31  Igor Shevlyakov <igor@microunity.com>
1730
1731         * expr.c (compare_from_rtx): Generate comparison between op0 and op1
1732         rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
1733
1734 2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
1735
1736         * gcc.c (cpp_unique_options): Remove "-d" options.
1737         (cpp_debug_options): New spec string.
1738         (default_compilers): Use it.
1739         * objc/lang-specs.h: Likewise.
1740
1741 2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
1742
1743         * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
1744         BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
1745         * gcc/mklibgcc.in: Likewise.
1746         * gcc/config/arc/t-arc: Likewise.
1747         * gcc/configure.in: Likewise.
1748         * gcc/configure: Regenerate.
1749
1750 2002-05-31  Stan Shebs  <shebs@apple.com>
1751             Turly O'Connor  <turly@apple.com>
1752
1753         * c-decl.c (struct binding_level): Change int field n_incomplete
1754         to tree list incomplete_list.
1755         (clear_binding_level): Init field with NULL.
1756         (pushdecl): Add incomplete type to list.
1757         (mark_binding_level): Mark the incomplete list.
1758         (finish_struct): Scan the incomplete list for types instead
1759         of all decls in the current binding level.
1760
1761 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1762
1763         * pa.c (output_millicode_call): Add missing '%' characters.
1764         (output_call): Likewise.
1765
1766 2002-05-31  David Edelsohn  <edelsohn@gnu.org>
1767
1768         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
1769         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1770
1771 2002-05-31  Alan Lehotsky <apl@alum.mit.edu>
1772
1773         * varasm.c (mark_constant_pool): Walk epilogue delay list
1774         checking the insn, not the chain for potential constants.
1775
1776 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
1777
1778         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
1779
1780 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
1781
1782         * i386.c (classify_argument): Properly handle base types.
1783
1784         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
1785         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
1786         registers.
1787
1788 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
1789
1790         * gcse.c (gcse_emit_move_after): New.
1791         (pre_delete, hoist_store): Use it.
1792
1793         * reload1.c (emit_input_reload_insns): Use constrain_operands
1794         instead of constraint_accepts_reg_p to verify optimization.
1795         (constraint_accepts_reg_p): Kill
1796
1797         * reload1.c (reload_cse_delete_noop_set): Kill.
1798         (reload_cse_simplify): use delte_insn_and_edges.
1799
1800 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1801
1802         * cfgloop.c (flow_loops_find): Initialize first and last fields
1803         correctly.
1804
1805 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1806
1807         * c-common.c (builtin_define_std): Correct logic.
1808
1809 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1810
1811         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
1812         (output_call): Likewise.
1813
1814 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1815
1816         * pa.c: Move output.h include after tree.h include.
1817         (pa_asm_output_mi_thunk): Constify identifier lab.
1818
1819 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
1820
1821         * config/ns32k/ns32k.h: Define named constants for the
1822         bits in target_flags and use them.
1823         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
1824
1825 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1826
1827         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
1828         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
1829         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
1830         default scheduling model.
1831         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
1832         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
1833         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
1834         * doc/install.texi (hppa*-*-*): Document default scheduling.
1835
1836 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1837
1838         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
1839
1840 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
1841
1842         * config.gcc (ns32k-*-netbsd*): Set tm_file to
1843         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
1844         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
1845         netbsd.h, or netbsd-aout.h.
1846
1847 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
1848
1849         * longlong.h (count_trailing_zeros): Add missing \, and clean up
1850         whitespace in __ns32000__ case.
1851
1852 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
1853
1854         * expr.c (expand_expr): Output partially zeroed out vectors with
1855         output_constant_def.
1856
1857 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
1858
1859         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
1860         (sh-*-netbsdelf*)
1861         (shl*-*-netbsdelf*): New targets.
1862         * config/sh/netbsd-elf.h: New file.
1863         * config/sh/t-netbsd: New file.
1864
1865 2002-05-30  Richard Henderson  <rth@redhat.com>
1866             Eric Botcazou  <ebotcazou@multimania.com>
1867
1868         PR optimization/6822
1869         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
1870         to unsigned int for op1 comparisons.  Use gen_int_mode.
1871
1872 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
1873
1874         * expmed.c (const_mult_add_overflow_p): New.
1875         * expr.h: Declare it.
1876         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
1877         Don't eliminate the biv if the giv has a constant multiplier and
1878         the rhs argument of the comparison does satisfy the predicate.
1879         Use expand_mult_add to compute the replacement constant.
1880
1881 2002-05-30  Osku Salerma  <osku@iki.fi>
1882
1883         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
1884         (c_common_get_alias_set): Handle it.
1885         * doc/extend.texi: Document it.
1886
1887 2002-05-30  Richard Henderson  <rth@redhat.com>
1888
1889         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
1890         * toplev.c (process_options): Don't check it.
1891         * doc/tm.texi: Don't document it.
1892         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
1893         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
1894         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
1895         frame pointer optimization if current_function_profile.
1896
1897 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1898
1899         * langhooks.c: Fix formatting.
1900         * langhooks.h: Likewise.
1901         * lcm.c: Likewise.
1902         * libgcc2.c: Likewise.
1903         * lists.c: Likewise.
1904         * local-alloc.c: Likewise.
1905         * loop.c: Likewise.
1906         * loop.h: Likewise.
1907
1908 2002-05-30  Marc Espie <espie@openbsd.org>
1909
1910         * config.gcc (sparc64-*-openbsd*): New.
1911         * config/sparc/openbsd1-64.h: New.
1912         * config/sparc/openbsd64.h: New.
1913
1914 2002-05-30  Jeff Law <law@redhat.com>
1915
1916         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
1917         a dead insn with a REG_RETVAL note when the entire libcall is not
1918         dead and remove the associated REG_LIBCALL note at the same time.
1919
1920 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
1921
1922         * lcm.c (output.h): #include.
1923         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
1924         as an ordinary block.
1925         (optimize_mode_switching): Don't pretend that the exit block is
1926         an ordinary block, or handle sucessors of entry block specially.
1927         Instead, split edges from entry block and to exit block, and
1928         put a computing definition on the thus gained post-entry-block,
1929         and a need on the pre-exit-block.
1930
1931 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
1932
1933         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
1934         * rtl.texi: Document 'B'
1935
1936 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
1937
1938         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
1939         at run-time.
1940         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
1941
1942 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
1943
1944         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
1945         const0_rtx instead of NULL_RTX when in error.
1946         (altivec_expand_abs_builtin): Same.
1947         (rs6000_expand_binop_builtin): Same.
1948         (altivec_expand_predicate_builtin): Same.
1949         (altivec_expand_stv_builtin): Same.
1950         (rs6000_expand_ternop_builtin): Same.
1951         (altivec_expand_builtin): Same.
1952
1953 2002-05-29  David S. Miller  <davem@redhat.com>
1954
1955         * rtl.h (clear_emit_caches): Delete.
1956         * integrate.c (output_inline_function): Don't call it.
1957         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
1958         (clear_emit_caches): Delete definition.
1959         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
1960
1961 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
1962
1963         * config/mmix/mmix.c: Include real.h.
1964         (mmix_constant_address_p): Remove redundant test before switch.
1965
1966 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
1967
1968         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
1969         only if not already defined.
1970
1971 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
1972
1973         * config/h8300/h8300-protos.h: Remove prototypes for
1974         ok_for_bclr and small_power_of_two.
1975         * config/h8300/h8300.c (small_power_of_two): Remove.
1976         (ok_for_blcr): Likewise.
1977         (fix_bit_operand): Make WHAT deal with an integer instead of a
1978         constraint character.
1979         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
1980         (CONST_OK_FOR_P): Likewise.
1981         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
1982         CONST_OK_FOR_P any more.
1983         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
1984         of fix_bit_operand.
1985         (iorqi3): Likewise.
1986         (xorqi3): Likewise.
1987
1988 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
1989
1990         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
1991         (CPP_PREDEFINES): Make sure this is undefined.
1992         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
1993         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
1994         or -U__MIPSEB__ before defining one or the other.  Instead,
1995         use %(subtarget_endian_default) if neither -EB nor -EL are
1996         specified.
1997         (SUBTARGET_EXTRA_SPECS): Define.
1998         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
1999         %(netbsd_cpp_spec).
2000
2001 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
2002
2003         * doc/md.texi (Patterns): Note pattern condition pitfall
2004         for unnamed insn.
2005
2006 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
2007
2008         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
2009         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
2010         ternary operations from here...
2011         (rs6000_expand_builtin): ...to here.
2012         New argument expandedp.
2013         Change all instances of altivec_expand_binop_builtin to
2014         rs6000_expand_binop_builtin.
2015         (altivec_expand_unop_builtin): Rename to
2016         rs6000_expand_unop_builtin.
2017         (altivec_expand_binop_builtin): Rename to
2018         rs6000_expand_binop_builtin.
2019         (altivec_expand_ternop_builtin): Rename to
2020         rs6000_expand_ternop_builtin.
2021
2022 2002-05-29  Richard Henderson  <rth@redhat.com>
2023
2024         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
2025         (TARGET_BI_ARCH): Likewise.
2026         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
2027         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
2028         (TARGET_64BIT_DEFAULT): Default to 0.
2029         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
2030
2031 2002-05-29  Richard Henderson  <rth@redhat.com>
2032
2033         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
2034         (get_pc_thunk_name): New.
2035         (output_set_got): Use it.
2036         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
2037         into linkonce sections.
2038
2039 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2040
2041         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2042         (CPP_PREDEFINES): Make sure this is undefined.
2043         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
2044         (CPP_SUBTARGET_SPEC): Don't provide different versions for
2045         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
2046         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
2047         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
2048         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2049         (CPP_PREDEFINES): Make sure this is undefined.
2050         (SUBTARGET_EXTRA_SPECS): Define.
2051         (CPP_SPEC): Use %(netbsd_cpp_spec).
2052
2053 2002-05-29  Jeff Law <law@redhat.com>
2054
2055         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
2056
2057         * flow.c (propagate_one_insn): Do not remove a dead insn if it
2058         contains a REG_RETVAL note.
2059
2060         * haifa-sched (sched_analyze): Remove another useless clearing
2061         of SCHED_GROUP_P I missed yesterday.
2062
2063         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
2064         * pa.c (pa_asm_output_mi_thunk): New function.
2065         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
2066
2067 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2068             Marek Michalkiewicz  <marekm@amelek.gda.pl>
2069
2070         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
2071         (avr_asm_only_p): Make non-static.
2072         (enum avr_arch): Remove.
2073         (avr_arch_types): New.
2074         (avr_mcu_types): Update.
2075         (avr_override_options): Use avr_arch_types table instead of switch.
2076         * avr.h (CPP_PREDEFINES): Die.
2077         (avr_base_arch_macro, avr_extra_arch_macro): New.
2078         (TARGET_CPU_CPP_BUILTINS): New.
2079         (CPP_SPEC, EXTRA_SPECS): Simplify.
2080         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
2081         CPP_AVR5_SPEC): Die.
2082
2083 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2084
2085         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
2086         NETBSD_OS_CPP_BUILTINS_AOUT.
2087         (SUBTARGET_EXTRA_SPECS): Define.
2088         (CPP_SPEC): Use %(netbsd_cpp_spec).
2089
2090 2002-05-29  Richard Henderson  <rth@redhat.com>
2091
2092         * config/i386/i386.c (ix86_output_function_epilogue): New.
2093         (TARGET_ASM_FUNCTION_EPILOGUE): New.
2094         (pic_label_name): Remove.
2095         (pic_labels_used): New.
2096         (ix86_asm_file_end): Emit one pc load stub for each register used.
2097         (output_set_got): Generate deep pc load to any register.
2098         (ix86_select_alt_pic_regnum): New.
2099         (ix86_save_reg): Don't save pic register if we can find a valid
2100         call-clobbered replacement.
2101         (ix86_expand_prologue): If we found a valid replacement, renumber
2102         pic_offset_table_rtx.
2103         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
2104         pic_offset_table_rtx after reload.
2105         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
2106         * config/i386/i386.md (set_got): Make insn, not expander.
2107         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
2108
2109 2002-05-29  Richard Henderson  <rth@redhat.com>
2110
2111         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
2112         alignment for alloca.
2113
2114 2002-05-29  Richard Henderson  <rth@redhat.com>
2115
2116         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
2117         (print_operand_address): Only add rip for symbolic addresses
2118         for which we do not have another relocation type.
2119
2120 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2121
2122         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2123         (EXTRA_SPECS): Add netbsd_cpp_spec.
2124         (CPP_SPEC): Use %(netbsd_cpp_spec).
2125         (CPP_PREDEFINES): Remove.
2126         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2127         (EXTRA_SPECS): Define.
2128         (CPP_SPEC): Use %(netbsd_cpp_spec).
2129         (CPP_PREDEFINES): Remove.
2130
2131 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2132
2133         PR preprocessor/6844
2134         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
2135         NUL.
2136
2137 2002-05-29  Eric Christopher  <echristo@redhat.com>
2138
2139         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
2140         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
2141
2142 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
2143
2144         * config/fr30/fr30.md: Remove previous restriction on splits.
2145         Enforce conformance through gen_lowpart and cont_int_operand.
2146         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
2147         as the assembler does not support ".bss".
2148
2149 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2150
2151         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2152         (CPP_PREDEFINES): Remove.
2153         (SUBTARGET_EXTRA_SPECS): Define.
2154         (CPP_SPEC): Use %(netbsd_cpp_spec).
2155         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2156         (CPP_PREDEFINES): Remove.
2157         (SUBTARGET_EXTRA_SPECS): Define.
2158         (CPP_SPEC): Use %(netbsd_cpp_spec).
2159         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
2160         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
2161         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
2162         Add netbsd_cpp_spec.
2163         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
2164
2165 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2166             Zack Weinberg <zack@codesourcery.com>
2167
2168         * cppexp.c (cpp_num): Move to cpplib.h.
2169         (CPP_ERROR): Remove.
2170         (interpret_float_suffix, interpret_int_suffix): New.
2171         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
2172         (cpp_classify_number, cpp_interpret_integer): New.
2173         (interpret_number): Remove.
2174         (eval_token): Update to use new routines.
2175         * cpphash.h (cpp_num_part): Move to cpplib.h.
2176         * cppinit.c (cpp_post_options): Set warn_long_long.
2177         * cpplib.h (struct cpp_options): Add warn_long_long.
2178         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
2179         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
2180         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
2181         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
2182         cpp_interpret_integer): New.
2183
2184 2002-05-29  Joel Sherrill <joel@OARcorp.com>
2185
2186         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
2187
2188 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2189
2190         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
2191         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
2192         (CPP_SUBTARGET_SPEC): Define.
2193         (SUBTARGET_EXTRA_SPECS): Define.
2194         (CPP_SPEC): Remove.
2195
2196 2002-05-29  Chris Lattner  <sabre@nondot.org>
2197
2198         * ssa.c (rename_insn_1): Rename uses of undefined registers to
2199         prevent confusion if/when the register is defined.
2200
2201 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
2202
2203         PR target/6838
2204         * config/cris/cris.md: Fix typos and thinkos in comments.
2205         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
2206         second alternative.
2207         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
2208         ("*mov_sideqi_mem"): Similar, but for operand 3.
2209         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
2210         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
2211         Remove spurious mode specifier on operand 2.
2212
2213 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
2214
2215         * config/h8300/h8300-protos.h: Remove the prototype for
2216         o_operand.
2217         Add prototypes for single_one_operand and single_zero_operand.
2218         * config/h8300/h8300.c (o_operand): Remove.
2219         (single_one_operand): New.
2220         (single_zero_operand): Likewise.
2221         (print_operand): For 'V' operand, and the operand with 0xff.
2222         For 'V' and 'W' operands, do not and the bit position with 7.
2223         * config/h8300/h8300.md (various anonymous patterns): Replace
2224         use of exact_log2 with single_one_operand/single_zero_operand.
2225
2226 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
2227
2228         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
2229
2230 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
2231
2232         * config/s390/s390.c (legitimate_pic_operand_p): Do not
2233         accept symbolic LARL operands.
2234         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
2235         epilogue insns.
2236
2237 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
2238
2239         * config/s390/s390.md (cmpstr_64/31): Mark whole
2240         input registers as used.
2241
2242 2002-05-28  Richard Henderson  <rth@redhat.com>
2243
2244         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
2245         not current_function_uses_pic_offset_table and
2246         current_function_uses_const_pool; examine current_function_profile.
2247         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
2248         input to blockage if needed.
2249         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
2250         (legitimize_pic_address): Likewise.  Set regs_ever_live for
2251         pic_offset_table_rtx when invoked during reload.
2252         * config/i386/i386.h (FINALIZE_PIC): Remove.
2253         * config/i386/i386.md (tablejump): Reformat.  Do not set
2254         current_function_uses_pic_offset_table.
2255         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
2256         (blockage): Accept anything as operand 0.
2257
2258 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
2259
2260         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
2261         common CPP built-ins for all NetBSD a.out targets.
2262         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
2263         common CPP built-ins for all NetBSD ELF targets.
2264         * config/netbsd.h: Add missing notice.
2265         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
2266         for all NetBSD targets.
2267         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
2268         for all NetBSD targets using an LP64 code model.
2269         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
2270         NetBSD targets.
2271
2272 2002-05-28  Richard Henderson  <rth@redhat.com>
2273
2274         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
2275         update if UPDATE_LIFE_LOCAL.
2276
2277 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
2278
2279         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
2280
2281 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
2282                           Jason R. Thorpe <thorpej@wasabisystems.com>
2283
2284         config/sh reorganization to factor out endianness and coff:
2285
2286         * config/sh/little.h: New file.
2287         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
2288         defined, define to 0 to select big-endian.
2289         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
2290         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2291         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2292         * config/sh/t-be: New file.
2293         * config/sh/t-le: New file.
2294
2295         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
2296         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
2297         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
2298         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
2299         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
2300         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
2301         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
2302         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
2303         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
2304         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
2305         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
2306         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
2307         (LINK_SPEC): Define to SH_LINK_SPEC.
2308         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
2309         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
2310         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
2311         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
2312         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
2313         * config/sh/coff.h: New file.
2314         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
2315         (TARGET_OBJFMT_CPP_BUILTINS): Define.
2316         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
2317         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
2318         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
2319         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
2320         (PTRDIFF_TYPE): Likewise.
2321         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
2322         (CPP_PREDEFINES): Don't define.
2323         (TARGET_OBJFMT_CPP_BUILTINS): Define.
2324         (LINK_SPEC): Define to SH_LINK_SPEC.
2325         (LINK_EMUL_PREFIX): Redefine.
2326         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
2327         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
2328         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
2329         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
2330         (TARGET_OS_CPP_BUILTINS): Define.
2331         (TARGET_DEFAULT): Redefine.
2332         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
2333         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
2334         (LINK_SPEC): Don't redefine.
2335         (LINK_DEFAULT_CPU_EMUL): Redefine.
2336         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2337         * sh.c (sh_asm_named_section): Don't declare / define.
2338         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
2339         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
2340         (sh64-*-elf* tm_file): Likewise.
2341         (sh-*-rtemself* tm_file): Likewise.
2342         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
2343         (sh-*-linux* tmake_file): Add sh/t-le.
2344         (sh-*-rtems* tm_file): Add sh/coff.h
2345         (sh-*-* tm_file): Likewise.
2346
2347 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
2348
2349         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
2350         CONSTANT_POOL_ADDRESS_P.
2351
2352         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
2353
2354 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
2355             Jeff Law <law@redhat.com>
2356
2357         * optabs.c (expand_binop): Fix nwords sign warnings.
2358         generate pseudo for add_optab.
2359
2360         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
2361         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
2362
2363 2002-05-28      Marc Espie <espie@openbsd.org>
2364
2365         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
2366         inherited from gas.h.
2367         (ASM_QUAD):  Undef.  OpenBSD does not support it.
2368
2369 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
2370
2371         * doc/install.texi (binaries): Change mingw binaries
2372         link to www.mingw.org.
2373
2374 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2375
2376         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
2377
2378 2002-05-28  Richard Henderson  <rth@redhat.com>
2379
2380         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
2381         bottom alignment for leaf functions.
2382
2383 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
2384
2385         * config/pa/milli32.S, config/pa/lib1funcs.asm,
2386         config/sparc/sol2-g1.asm: Delete unused files.
2387
2388 2002-05-28  Richard Henderson  <rth@redhat.com>
2389
2390         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
2391
2392         * flow.c (calculate_global_regs_live): Rename call_used to
2393         invalidated_by_call.  Initialize from regs_invalidated_by_call
2394         instead of call_used_regs.
2395
2396         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
2397         DECL_EXTERNAL.
2398
2399 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
2400
2401         * tree.h: Don't include real.h.
2402         Forward-declare struct realvaluetype.
2403         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
2404         contain it.
2405         (TREE_REAL_CST_PTR): New accessor.
2406         (TREE_REAL_CST): Update.
2407         * real.h: Include machmode.h.
2408         (realvaluetype): Make it struct realvaluetype, not a typedef.
2409         (build_real): Prototype here.
2410
2411         * tree.c: Include real.h.
2412         (build_real): Allocate the REAL_VALUE_TYPE as a separate
2413         object in GC memory, set TREE_REAL_CST_PTR to point to it.
2414         (build_real_from_int_cst): Use build_real.
2415         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
2416         REAL_CST.
2417
2418         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
2419         fold-const.c, print-tree.c, real.c: Include real.h.
2420         * Makefile.in: Update dependency lists.
2421
2422 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2423
2424         * basic-block.h (last_basic_block): Declare.
2425         (expunge_block_nocompact): Declaration removed.
2426         (compact_blocks): Declare.
2427         * cfg.c (last_basic_block): New variable.
2428         (expunge_block_nocompact): Removed.
2429         (expunge_block): Do not compact basic blocks.
2430         (compact_blocks): New.
2431         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
2432         longer change.
2433         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
2434         last_basic_block.
2435         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
2436         real positions of blocks.
2437         (delete_unreachable_blocks): Simplified -- quadratic behavior now
2438         cannot occur.
2439         (cleanup_cfg): Compact blocks.
2440         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
2441         basic_block_info varray.
2442         (flow_delete_block): Comment update.
2443         (back_edge_of_syntactic_loop_p): Modify position check code.
2444         (verify_flow_info): Update checking.
2445         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
2446         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
2447         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
2448         indices no longer change.
2449         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
2450         last_basic_block.
2451         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
2452         * profile.c (branch_prob): Compact blocks.
2453         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
2454         last_basic_block.
2455
2456 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
2457
2458         * config/h8300/h8300.md (two anonymous patterns): New.
2459
2460 2002-05-28  David S. Miller  <davem@redhat.com>
2461
2462         * config/sparc/sparc.md (cpu): Tidy.
2463         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
2464         'trap'.
2465         (in_call_delay): Delete reference to 'return' type.
2466         (eligible_for_return_delay, in_return_delay, define_delay
2467         referencing those): Delete.
2468         (rest of file): Use new type attributes as appropriate.
2469         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
2470         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
2471         * config/sparc/ultra1_2.md (us1_single): New reservation.
2472         (us1_ialuX): Likewise.
2473         * config/sparc/ultra3.md (us3_single): Likewise.
2474         (us3_ialuX): Likewise.
2475         (us3_imul, us3_idiv): Tweak.
2476
2477 2002-05-28  Richard Henderson  <rth@redhat.com>
2478
2479         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
2480         STRING_CST.
2481
2482 2002-05-28  Richard Henderson  <rth@redhat.com>
2483
2484         * config.gcc: Obsolete mn10200.
2485
2486 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
2487
2488         * cppexp.c (interpret_number): Optimize for single-digit
2489         and less-than-half-precision cases.
2490         (num_trim, num_positive, num_div_op): Cast constants.
2491
2492 2002-05-27  Bo Thorsen  <bo@suse.de>
2493
2494         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
2495         3.1 branch. The file was made by Jakub Jelinek.
2496         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
2497         support so multilib doesn't break. And don't define this at all
2498         when -Dinhibit_libc is used.
2499         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
2500         * config/i386/t-linux64: Implement full multilib support. Patch
2501         originally done by Andreas Jaeger and Jakub Jelinek.
2502
2503 2002-05-27  Roger Sayle  <roger@eyesopen.com>
2504
2505         * c-common.c: Add support for __attribute__((nothrow)) to specify
2506         that a function cannot throw an exception (using TREE_NOTHROW).
2507         (handle_nothrow_attribute): New function to process this attribute.
2508
2509         * doc/extend.texi: Document the new nothrow function attribute.
2510
2511 2002-05-27  H.J. Lu  (hjl@gnu.org)
2512
2513         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
2514         (num_positive): Likewise.
2515         (num_div_op): Likewise.
2516
2517 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2518
2519         * c-common.c (c_common_init): Always use intmax_t.
2520
2521 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2522
2523         * c-common.c (c_common_init): Use intmax_t for now.
2524
2525 2002-05-24  Andrew Haley  <aph@redhat.com>
2526
2527         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
2528         if T is a boolean type.
2529
2530 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2531
2532         * basic-block.h (last_basic_block): Defined as synonym for
2533         n_basic_blocks.
2534         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
2535         flow_depth_first_order_compute, flow_preorder_transversal_compute,
2536         flow_dfs_compute_reverse_init): Replaced relevant occurences of
2537         n_basic_blocks with last_basic_block.
2538         * cfgbuild.c (make_edges): Likewise.
2539         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
2540         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
2541         * combine.c (combine_instructions): Likewise.
2542         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
2543         iterative_dataflow_bitmap): Likewise.
2544         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
2545         calc_idoms, idoms_to_doms): Likewise.
2546         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
2547         Likewise.
2548         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
2549         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
2550         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
2551         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
2552         delete_null_pointer_checks, compute_code_hoist_vbeinout,
2553         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
2554         compute_store_table, build_store_vectors): Likewise.
2555         * haifa-sched.c (sched_init): Likewise.
2556         * ifcvt.c (if_convert): Likewise.
2557         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
2558         pre_edge_lcm, compute_available, compute_nearerout,
2559         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
2560         Likewise.
2561         * predict.c (estimate_probability, process_note_prediction,
2562         note_prediction_to_br_prob): Likewise.
2563         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
2564         * recog.c (split_all_insns, peephole2_optimize): Likewise.
2565         * regrename.c (copyprop_hardreg_forward): Likewise.
2566         * resource.c (init_resource_info): Likewise.
2567         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
2568         init_regions, schedule_insns): Likewise.
2569         * ssa-ccp.c (ssa_const_prop): Likewise.
2570         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
2571         * ssa.c (compute_dominance_frontiers,
2572         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
2573
2574         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
2575         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
2576         sizes consistently.
2577
2578 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
2579
2580         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
2581         new.
2582         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
2583         hoist_insn_after, hoist_insn_to_edge): New.
2584
2585 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
2586
2587         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
2588         (PROP_FINAL): Include.
2589         * flow.c (life_analysis, update_life_info,
2590         init_propagate_block_info, mark_set_1, mark_used_rgs):
2591         Support SCAN_DEAD_STORE.
2592
2593 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2594
2595         * c-common.c (c_common_init): Set CPP arithmetic precision.
2596         * cppexp.c (cpp_num_part): Move typedef ...
2597         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
2598         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
2599         (sanity_checks): Update.
2600
2601 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
2602
2603         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
2604         (mkheaders): New rule.
2605         (install-mkheaders): New rule.
2606         * configure.in (all_outputs): Add mkheaders.
2607         * configure: Regenerate.
2608         * mkheaders.in: New file.
2609
2610 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
2611
2612         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
2613
2614 2002-05-26  Andreas Jaeger  <aj@suse.de>
2615
2616         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
2617
2618 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2619
2620         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
2621         right_shift): Remove.
2622         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
2623         HIGH_PART): New.
2624         (struct op): Use cpp_num.
2625         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
2626         num_part_mul, num_unary_op, num_binary_op, num_negate,
2627         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
2628         num_div_op, num_lshift, num_rshift, append_digit): New.
2629         (interpret_number, parse_defined, eval_token, reduce): Update
2630         for two-integer arithmetic.
2631         (binary_handler): New typedef.
2632         (optab): Update.
2633         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
2634         (_cpp_parse_expr, reduce): Update to handle two-integers.
2635         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
2636
2637 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2638
2639         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
2640         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
2641         branch insn into account, do not assume 1.
2642         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
2643         over single word insn.  Handle upper half of I/O space too.
2644         * config/avr/avr.md (*sbrx_branch): Use it.
2645         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
2646         (*sbix_branch, *sbix_branch_bit7): Likewise.
2647         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
2648         Use RTL peepholes to optimize register operand sign tests.
2649
2650 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2651
2652         * config/avr/avr.c (avr_asm_only_p): New variable.
2653         (avr_override_options): Set it here if AVR1.
2654         (asm_file_start): Test it here, report an error if set.
2655
2656 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
2657
2658         * alias.c: Fix formatting.
2659         * attribs.c: Likewise.
2660         * bb-reorder.c: Likewise.
2661         * bitmap.c: Likewise.
2662         * bitmap.h: Likewise.
2663         * builtins.c: Likewise.
2664
2665 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
2666
2667         * reload.c (find_valid_class): Accept new argument DEST,
2668         choose class accordingly.
2669         (push_reload): Update callers.
2670
2671 2002-05-26  Andreas Jaeger  <aj@suse.de>
2672
2673         * combine.c (combine_instructions): Do not indent #if for
2674         traditional C.
2675
2676 2002-05-25  Richard Henderson  <rth@redhat.com>
2677
2678         * c-pragma.c (apply_pragma_weak): Convert value identifier to
2679         string for decl_attributes.
2680         (handle_pragma_weak): Call assemble_alias if we're modifying
2681         an existing decl.
2682
2683 2002-05-25  Richard Henderson  <rth@redhat.com>
2684
2685         PR target/6788
2686         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
2687         using rtl instead of fprintf.
2688         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
2689         * config/sparc/sparc-protos.h: Update.
2690
2691 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
2692
2693         * Makefile.in (C_COMMON_H): Fix.
2694         Update other targets.
2695         * c-common.c: Don't include c-lex.h.
2696         (builtin_define_with_value): Make static and prototype.
2697         (builtin_define_std): Move from c-lex.h.
2698         * c-common.h (init_c_lex): Move from c-lex.h.
2699         * c-decl.c: Don't include c-lex.h.
2700         (make_pointer_declarator): Move from c-parse.in.
2701         * c-lex.c: Don't include c-lex.h.
2702         * c-lex.h: Remove.
2703         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
2704         (make_pointer_declarator): Move to c-decl.c.
2705         * c-pragma.c: Don't include c-lex.h.
2706         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
2707         * c-tree.h (make_pointer_declarator): New.
2708 doc:
2709         * passes.texi, tm.texi: Update.
2710 objc:
2711         * Make-lang.in: Update and correct.
2712         * objc-act.c: Don't include c-lex.h or cpplib.h.
2713 treelang:
2714         * treetree.c: Don't include c-lex.h.
2715 config:
2716         * darwin-c.c: Don't include c-lex.h.
2717         * c4x/c4x-c.c: Don't include c-lex.h.
2718         * c4x/t-c4x: Update.
2719         * i370/i370-c.c: Don't include c-lex.h.
2720         * i370/t-i370: Update.
2721         * i960/i960-c.c: Don't include c-lex.h.
2722         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
2723         * i960/t-960bare: Update.
2724         * i960/t-vxworks: Update.
2725         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
2726         * rs6000/t-darwin: Update.
2727         * rs6000/t-rs6000-c-rule: Update.
2728         * v850/v850-c.c: Don't include c-lex.h.
2729         * v850/v850.c: Don't include c-lex.h or cpplib.h.
2730
2731
2732 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
2733
2734         * tree.def: Fix typos.
2735         * doc/install.texi: Likewise.
2736
2737 2002-05-25  Richard Henderson  <rth@redhat.com>
2738
2739         * configure.in (HAVE_AS_TLS): Add ia64 test.
2740         * configure: Rebuild.
2741         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
2742         (override_options): Set it.
2743         (TARGET_HAVE_TLS): New.
2744         (sdata_symbolic_operand): Look for 's'.
2745         (tls_symbolic_operand): New.
2746         (ia64_expand_load_address): Abort for tls symbols.
2747         (gen_tls_get_addr): New.
2748         (gen_thread_pointer): New.
2749         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
2750         (rtx_needs_barrier): Add new unspecs.
2751         (ia64_encode_section_info): Handle tls symbols.
2752         (ia64_strip_name_encoding): Strip two encoding chars.
2753         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
2754         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
2755         (TARGET_OPTIONS): Add tls-size.
2756         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
2757         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
2758         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
2759         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
2760         (movsf, movdf): Likewise.
2761         (movdi_symbolic): Use match_scratch.  Don't split if we won't
2762         have a scratch availiable.
2763         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
2764         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
2765         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
2766         * config/ia64/ia64-protos.h: Update.
2767         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
2768         sdata_symbolic_operand.
2769         (ASM_OUTPUT_LABELREF): Strip two characters.
2770
2771 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
2772
2773         * combine.c (simplify_set): Remove an unnecessary subreg.
2774
2775 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2776
2777         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
2778
2779         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
2780
2781 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
2782
2783         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
2784
2785 2002-05-25  Roger Sayle  <roger@eyesopen.com>
2786
2787         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
2788         (cond (compare x y) 0) into the equivalent (cond x y).
2789
2790 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
2791
2792         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
2793
2794 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
2795
2796         * config.gcc: Remove all stanzas for previously obsoleted
2797         systems.  Where necessary, add explicit error stanzas to
2798         prevent removed systems from being misidentified as something
2799         else.  Begin a fresh obsoletions list, with the systems that
2800         were reprieved last round.
2801         * doc/install.texi: Remove all mention of dead targets.
2802         * fixinc/mkfixinc.sh: Likewise.
2803
2804         * config/arm/arm.h: Bit 31 of target_flags is no longer
2805         reserved.
2806
2807         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
2808         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
2809         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
2810         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
2811         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
2812         config/alpha/osf12.h, config/alpha/osf2or3.h,
2813         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
2814         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
2815         config/clipper/clipper-protos.h, config/clipper/clipper.c,
2816         config/clipper/clipper.h, config/clipper/clipper.md,
2817         config/clipper/clix.h, config/convex/convex-protos.h,
2818         config/convex/convex.c, config/convex/convex.h,
2819         config/convex/convex.md, config/convex/fixinc.convex,
2820         config/convex/proto.h, config/elxsi/elxsi-protos.h,
2821         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
2822         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
2823         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
2824         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
2825         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
2826         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
2827         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
2828         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
2829         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
2830         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
2831         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
2832         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
2833         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
2834         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
2835         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
2836         config/m68k/altos3068.h, config/m68k/apollo68.h,
2837         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
2838         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
2839         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
2840         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
2841         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
2842         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
2843         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
2844         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
2845         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
2846         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
2847         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
2848         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
2849         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
2850         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
2851         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
2852         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
2853         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
2854         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
2855         config/mips/dec-osf1.h, config/mips/elflorion.h,
2856         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
2857         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
2858         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
2859         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
2860         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
2861         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
2862         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
2863         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
2864         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
2865         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
2866         config/ns32k/sequent.h, config/ns32k/tek6000.h,
2867         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
2868         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
2869         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
2870         config/sparc/rtems.h, config/we32k/we32k-protos.h,
2871         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
2872         Delete file.
2873
2874 2002-05-24  Richard Henderson  <rth@redhat.com>
2875
2876         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
2877         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
2878         * config/i386/i386.c (tls_model_chars): Add leading space.
2879         (tls_symbolic_operand): Don't bias by 1.
2880         (legitimize_address): Don't unbias by 1.
2881
2882 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
2883
2884         * lcm.c (optimize_mode_switching): Change bb used as indices
2885         to bb->index.
2886
2887 2002-05-24  Richard Henderson  <rth@redhat.com>
2888
2889         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
2890         of update_life_info_in_dirty_blocks.
2891
2892 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
2893
2894         PR other/6782
2895         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
2896
2897 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2898
2899         PR preprocessor/6780
2900         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
2901
2902 2002-05-24  Jim Blandy  <jimb@redhat.com>
2903
2904         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
2905         entry with a type code of zero, marking the end of the compilation
2906         unit's macro info.
2907
2908 2002-05-24  Richard Henderson  <rth@redhat.com>
2909
2910         * varasm.c (asm_output_bss): Always output one byte.
2911         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2912
2913 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
2914
2915         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
2916         namespace.
2917
2918 2002-05-24  Andreas Jaeger  <aj@suse.de>
2919
2920         * ggc-page.c (alloc_page): Cast variables of type size_t to
2921         unsigned long, adjust printf format string.
2922         (ggc_alloc): Likewise.
2923         (ggc_print_statistics): Likewise.
2924         (ggc_print_statistics): Correct printf format string for SCALE to
2925         use unsigned long.
2926
2927 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
2928
2929         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
2930
2931 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
2932             Zack Weinberg     <zack@codesourcery.com>
2933
2934         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
2935         quoted strings.
2936         * dwarf2out.c (lookup_filename): Properly quote filename in .file
2937         directive in assembly file.
2938         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
2939         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
2940         * config/pj/pj.h (ASM_FILE_START): Likewise.
2941         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
2942         * config/avr/avr.c (asm_file_end): Likewise.
2943         * toplev.c (output_quoted_string): Handle possibly signed plain
2944         char.
2945         * toplev.h (output_clean_symbol_name): Declare
2946         * toplev.c (output_clean_symbol_name): Define.
2947         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
2948         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
2949
2950 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
2951
2952         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
2953
2954 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
2955
2956         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
2957         of size of unsigned.
2958
2959 2002-05-23  Richard Henderson  <rth@redhat.com>
2960
2961         * configure.in (HAVE_AS_TLS): New test.
2962         * config.in, configure: Rebuild.
2963         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
2964         (ix86_tls_dialect_string, ix86_tls_dialect): New.
2965         (override_options): Set it.
2966         (tls_model_chars, tls_symbolic_operand): New.
2967         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
2968         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
2969         (local_exec_symbolic_operand): New.
2970         (get_pic_label_name): Merge into output_set_got.
2971         (ix86_asm_file_end): Emit pic_label_name if defined.
2972         (legitimate_constant_p, constant_address_p): New.
2973         (legitimate_pic_operand_p): New.
2974         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
2975         (legitimate_address_p): Likewise.
2976         (ix86_encode_section_info): Rename from i386_; handle tls decls.
2977         (ix86_strip_name_encoding): New.
2978         (get_thread_pointer): New.
2979         (legitimize_address): Handle tls symbols.
2980         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
2981         Remove UNSPEC_PLT.
2982         (struct machine_function): Add some_ld_name.
2983         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
2984         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
2985         (output_addr_const_extra): New.
2986         (maybe_get_pool_constant): New.
2987         (ix86_split_to_parts): Use it.
2988         (ix86_expand_move): Handle tls symbols.
2989         (ix86_tls_get_addr): New.
2990         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
2991         (TARGET_OPTIONS): Add tls-dialect.
2992         (CONSTANT_ADDRESS_P): Use new out-of-line function.
2993         (LEGITIMATE_CONSTANT_P): Likewise.
2994         (LEGITIMATE_PIC_OPERAND_P): Likewise.
2995         (TARGET_STRIP_NAME_ENCODING): New.
2996         (ASM_OUTPUT_LABELREF): New.
2997         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
2998         (OUTPUT_ADDR_CONST_EXTRA): New.
2999         (PREDICATE_CODES): Update.
3000         (ix86_tls_dialect, ix86_tls_dialect_string): New.
3001         * config/i386/i386.md: Regroup and renumber unspec constants.
3002         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
3003         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
3004         (tls_global_dynamic, tls_local_dynamic_base): New.
3005         (tls_local_dynamic_once): New.
3006         * config/i386/i386-protos.h: Update.
3007
3008 2002-05-23  Richard Henderson  <rth@redhat.com>
3009
3010         * genemit.c (gen_insn): Print file:lineno comment before function.
3011         (main): likewise.
3012         * gensupport.c (struct queue_elem): Add filename member.
3013         (queue_pattern): Initialize it; update all callers.
3014         (process_include): Don't free filename.
3015         (read_md_rtx): Set read_rtx_filename.
3016
3017 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
3018
3019         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
3020
3021 2002-05-23  Richard Henderson  <rth@redhat.com>
3022
3023         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
3024
3025 2002-05-23  Richard Henderson  <rth@redhat.com>
3026
3027         * doc/extend.texi (C++98 Thread-Local Edits): Update with
3028         commentary from Mark.
3029
3030 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3031
3032         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
3033         Use FOR_EACH_BB macros to iterate over basic block chain.
3034         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
3035         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
3036         Likewise.
3037         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
3038         find_unreachable_blocks, create_edge_list, verify_edge_list,
3039         remove_fake_edges, add_noreturn_fake_exit_edges,
3040         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
3041         Likewise.
3042         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
3043         find_sub_basic_blocks): Likewise.
3044         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
3045         Likewise.
3046         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
3047         Likewise.
3048         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
3049         Likewise.
3050         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
3051         commit_edge_insertions, commit_edge_insertions_watch_calls,
3052         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
3053         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
3054         * conflict.c (conflict_graph_compute): Likewise.
3055         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
3056         df_modified_p, df_refs_unlink, df_dump): Likewise.
3057         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
3058         * final.c (compute_alignments): Likewise.
3059         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
3060         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
3061         count_or_remove_death_notes): Likewise.
3062         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
3063         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
3064         classic_gcse, compute_transp, cprop, compute_pre_data,
3065         compute_transpout, invalidate_nonnull_info,
3066         delete_null_pointer_checks_1, delete_null_pointer_checks,
3067         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
3068         compute_store_table, build_store_vectors, store_motion): Likewise.
3069         * global.c (global_conflicts, mark_elimination): Likewise.
3070         * graph.c (print_rtl_graph_with_bb): Likewise.
3071         * haifa-sched.c (sched_init): Likewise.
3072         * ifcvt.c (if_convert): Likewise.
3073         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
3074         compute_available, compute_nearerout, compute_rev_insert_delete,
3075         optimize_mode_switching): Likewise.
3076         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
3077         * predict.c (estimate_probability, note_prediction_to_br_prob,
3078         propagate_freq, counts_to_freqs, expensive_function_p,
3079         estimate_bb_frequencies): Likewise.
3080         * profile.c (instrument_edges, get_exec_counts,
3081         compute_branch_probabilities, compute_checksum, branch_prob,
3082         find_spanning_tree): Likewise.
3083         * recog.c (split_all_insns, peephole2_optimize): Likewise.
3084         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
3085         Likewise.
3086         * regclass.c (scan_one_insn, regclass): Likewise.
3087         * regmove.c (mark_flags_life_zones, regmove_optimize,
3088         record_stack_memrefs): Likewise.
3089         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
3090         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
3091         * resource.c (find_basic_block): Likewise.
3092         * sched-ebb.c (schedule_ebbs): Likewise.
3093         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
3094         find_single_block_region, find_rgns, schedule_insns)
3095         * sibcall.c (optimize_sibling_and_tail_recursive_call)
3096         * ssa-ccp.c (optimize_unexecutable_edges,
3097         ssa_ccp_df_delete_unreachable_insns): Likewise.
3098         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
3099         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
3100         rename_block, convert_to_ssa, compute_conservative_reg_partition,
3101         compute_coalesced_reg_partition, rename_equivalent_regs,
3102         convert_from_ssa): Likewise.
3103         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
3104         process_for_unwind_directive): Likewise.
3105
3106         * df.c (FOR_ALL_BBS): Removed.
3107         * gcse.c (struct null_pointer_info): Type of current_block field
3108         changed.
3109         (struct reg_avail_info): Type of last_bb field changed.
3110         * config/ia64/ia64.c (block_num): Removed.
3111         (need_copy_state): Type changed.
3112         (last_block): New.
3113
3114 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3115
3116         * cppinit.c (mark_named_operators): Split out from init_builtins.
3117         (cpp_finish_options): Call it from here instead.
3118
3119 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
3120
3121         * builtin-attrs.def: Update copyright years.
3122         (ATTR_NONNULL): New attribute identifier.
3123         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
3124         attribute tree lists.
3125         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
3126         format operand.
3127         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
3128         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
3129         attribute lists.  Chain the appropriate nonnull attribute.
3130         * c-format.c (check_format_arg): Remove null format string
3131         warning.
3132         * testsuite/gcc.dg/format/null-1.c: New test.
3133
3134 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3135
3136         * Makefile.in (ADAC): Define.
3137         (SYSLIBS): Define.
3138         (.SUFFIXES): Move before language makefile fragments.
3139         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
3140
3141 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
3142
3143         * varasm.c (make_decl_rtl): Don't allow weak variables to be
3144         placed in common.
3145
3146 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
3147
3148         * cfg.c (dump_flow_info): Print results of
3149         maybe_hot/probably_never_executed predicates.
3150         * toplev.c (open_dump_file): Print function frequency.
3151
3152 2002-05-23  David S. Miller  <davem@redhat.com>
3153
3154         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
3155         regsets.
3156
3157 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
3158
3159         * c-common.c (warn_nonnull): Declare.
3160         (c_common_attribute_table): Add "nonnull" attribute.
3161         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
3162         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
3163         check_function_arguments_recurse): New functions.
3164         * c-common.h (warn_nonnull): Declare extern.
3165         (check_function_arguments, check_function_arguments_recurse): New
3166         prototypes.
3167         * c-decl.c (c_decode_option): Add -Wnonnull option.
3168         * c-format.c (set_Wformat): Set warn_nonnull if enabling
3169         format checking.
3170         (format_check_context): New structure.
3171         (check_format_info_recurse): Remove recursion and rename to...
3172         (check_format_arg): ...this.  Update comment.
3173         (check_format_info): Use check_function_arguments_recurse.
3174         * c-typeck.c (build_function_call): Call check_function_arguments
3175         instead of check_function_format.
3176         * doc/extend.texi: Document "nonnull" attribute.
3177         * doc/invoke.texi: Docuemnt -Wnonnull option.
3178         * testsuite/gcc.dg/nonnull-1.c: New test.
3179         * testsuite/gcc.dg/nonnull-2.c: New test.
3180
3181 2002-05-23  David S. Miller  <davem@redhat.com>
3182
3183         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
3184         * cfgcleanup.c (cleanup_cfg): If it is set do not
3185         attempt to delete trivially dead insns.
3186         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
3187         * toplev.c (rest_of_compilation): Document non-trivial aspect
3188         the RTL before optimize_save_area_alloca is run.
3189
3190 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3191
3192         * c-lex.c (indent_level): Remove.
3193         (cb_file_change, c_lex): Remove indent level handling.
3194         * c-lex.h (indent_level): Remove.
3195         * input.h (struct file_stack): Remove indent_level.
3196         * toplev.c (push_srcloc): Remove indent_level handling.
3197
3198 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
3199
3200         PR target/6753
3201         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
3202         of x in constraints for clarity.
3203         (sse_mov?fcc split): abort if op2 == op3.
3204         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
3205         sse_movsfcc_const0_4): Add earlyclobber.
3206         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
3207         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
3208         Use Y instead of x in constraints.
3209
3210 2002-05-23  Richard Henderson  <rth@redhat.com>
3211
3212         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
3213         (C++98 Thread-Local Edits): New subsection.
3214
3215         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
3216         (ix86_arch): Set type to enum processor_type.
3217
3218         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
3219         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
3220
3221 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
3222
3223         * configure.in: Fix as version test for binutils 2.12.1 releases
3224         (without dates).
3225         * configure: Rebuilt.
3226
3227 2002-05-23  Richard Henderson  <rth@redhat.com>
3228
3229         * config/i386/i386.c (get_pic_label_name): New.
3230         (load_pic_register): Remove.
3231         (output_set_got): New.
3232         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
3233         * config/i386/i386.md (UNSPEC_SET_GOT): New.
3234         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
3235         (prologue_set_got, prologue_get_pc): Remove.
3236         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
3237         (builtin_setjmp_receiver): Use gen_set_got.
3238         * config/i386/i386-protos.h: Update.
3239
3240 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
3241
3242         * gcse.c (hash_expr): Do not use alias set for hashing.
3243
3244 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
3245
3246         * dbxout.c (dbxout_class_name_qualifiers): New function.
3247         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
3248
3249 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3250
3251         * cpperror.c (_cpp_begin_message): No special casing
3252         of CPP_FATAL_LIMIT.
3253         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
3254         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
3255         * cpplib.c (do_include_common): Use DL_ERROR.
3256         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
3257         (DL_ICE): Renumber.
3258         * fix-header.c (read_scan_file): Update.
3259
3260 2002-05-22  Richard Henderson  <rth@redhat.com>
3261
3262         * config/i386/i386.c (ix86_expand_call): New function, extracted
3263         from md call patterns.  Add pic_offset_table_rtx to
3264         CALL_INSN_FUNCTION_USAGE when needed.
3265         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
3266         (call_value_pop, call_value, untyped_call): Likewise.
3267         (call_exp, call_value_exp): Remove.
3268         * config/i386/i386-protos.h: Update.
3269
3270 2002-05-22  Richard Henderson  <rth@redhat.com>
3271
3272         * varasm.c (default_section_type_flags): Check for VAR_DECL
3273         before using DECL_THREAD_LOCAL.
3274
3275 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
3276
3277         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
3278         (STARTFILE_SPEC): Delete PE crt0.o.
3279         * config/rs6000/aix51.h: Same.
3280         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
3281         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
3282         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
3283         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
3284         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
3285
3286 2002-05-22  Richard Henderson  <rth@redhat.com>
3287
3288         * varasm.c (default_section_type_flags): Handle tls data and
3289         default sections.
3290         (default_unique_section): Handle tls sections.
3291
3292 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
3293
3294         * configure.in (CROSS): Define NATIVE_CROSS.
3295         * configure: Regenerate.
3296         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
3297         (startfile_prefix_spec): New var.
3298         (static_specs): Add startfile_prefix_spec.
3299         (do_spec_2): Split out from..
3300         (do_spec): ..here.
3301         (main): Process startfile_prefix_spec.
3302         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
3303         dynamic linker.
3304         (STARTFILE_PREFIX_SPEC): Define.
3305         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
3306         absolute paths.
3307
3308 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
3309
3310         * cpperror.c: Fix formatting.
3311         * cppexp.c: Likewise.
3312         * cppfiles.c: Likewise.
3313         * cpphash.c: Likewise.
3314         * cpphash.h: Likewise.
3315         * cppinit.c: Likewise.
3316         * cpplex.c: Likewise.
3317         * cpplib.c: Likewise.
3318         * cppmacro.c: Likewise.
3319         * cppmain.c: Likewise.
3320         * cppspec.c: Likewise.
3321
3322 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
3323
3324         * combine.c (force_to_mode): Use gen_int_mode.
3325         Don't clear CONST_INT bits outside of mode.
3326
3327 2002-05-22  Richard Henderson  <rth@redhat.com>
3328
3329         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
3330         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3331
3332 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
3333
3334         PR c/6643
3335         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
3336         if DECL_SIZE_UNIT is INTEGER_CST.
3337
3338 2002-05-22  Richard Henderson  <rth@redhat.com>
3339
3340         * flow.c (life_analysis): Delete broken reg_label check.
3341
3342 2002-05-22  Richard Henderson  <rth@redhat.com>
3343
3344         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
3345         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3346
3347 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
3348
3349         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
3350         (embed-bb.c): New rule.
3351         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
3352         * config/sh/embed_bb.c: Delete.
3353
3354 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
3355
3356         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
3357
3358 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
3359
3360         * config/h8300/h8300.md (*andorqi3): New.
3361
3362 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
3363
3364         PR preprocessor/6517
3365         * Makefile.in: Update.
3366         * c-common.c (c_common_post_options): Add preprocessor
3367         errors to the error count.
3368         * c-lang.c (c_post_options): Kill.
3369         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
3370         * hooks.h: Add header guards.
3371         * langhooks-def.h: Include hooks.h.
3372         (LANG_HOOKS_POST_OPTIONS): Update.
3373         * langhooks.h (struct lang_hooks): Update post_options.
3374         * toplev.c (parse_options_and_default_flags): Update.
3375 objc:
3376         * objc-lang.c (objc_post_options): Kill.
3377         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
3378
3379 2002-05-21  Bruce Korb  <bkorb@gnu.org>
3380
3381         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
3382         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
3383         * fixinc/fixincl.x: regen.
3384
3385 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
3386
3387         * cfgbuild.c: Fix formatting.
3388         * cfg.c: Likewise.
3389         * cfgcleanup.c: Likewise.
3390         * cfglayout.c: Likewise.
3391         * cfgloop.c: Likewise.
3392         * cfgrtl.c: Likewise.
3393
3394 2002-05-21  Richard Henderson  <rth@redhat.com>
3395
3396         * c-common.h (enum rid): Add RID_THREAD.
3397         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
3398         (grokdeclarator): Grok __thread.
3399         * c-parse.in (reswords): Add __thread.
3400         (rid_to_yy): Add RID_THREAD.
3401
3402         * tree.h (DECL_THREAD_LOCAL): New.
3403         (struct tree_decl): Add thread_local_flag.
3404         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
3405         * tree.c (staticp): TLS variables are not static.
3406
3407         * target-def.h (TARGET_HAVE_TLS): New.
3408         * target.h (have_tls): New.
3409         * output.h (SECTION_TLS): New.
3410         * varasm.c (assemble_variable): TLS variables can't be common for now.
3411         (default_section_type_flags): Handle .tdata and .tbss.
3412         (default_elf_asm_named_section): Handle SECTION_TLS.
3413         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
3414
3415         * flags.h (flag_tls_default): Declare.
3416         * toplev.c (flag_tls_default): Define.
3417         (display_help): Display help for it.
3418         (decode_f_option): Set it.
3419
3420         * doc/extend.texi (Thread-Local): New node describing language-level
3421         thread-local storage.
3422         * doc/invoke.texi (-ftls-model): Document.
3423
3424         * fixinc/inclhack.def (thread_keyword): New.
3425         * fixinc/fixincl.x: Rebuild.
3426
3427 2002-05-21  Jeffrey A Law  <law@redhat.com>
3428
3429         * optabs.c (expand_binop): For double-word integer multiplies,
3430         do not compute intermediate results into something that is
3431         not a register (such as a SUBREG or MEM).
3432
3433         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
3434         (ix86_sched_reorder): Make sure to initialize scheduling
3435         data even when there's only one insn in the ready queue.
3436
3437 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
3438
3439         * genautomata.c (reserv_sets_hash_value): Fix a typo.
3440
3441 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
3442
3443         * genautomata.c (reserv_sets_hash_value): Define hash_value as
3444         set_el_t.  Transform the hash value into unsigned.
3445         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
3446         (transform_3): Add code to process `(A,B)+(D,E)'.
3447
3448 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
3449
3450         * reload1.c (do_output_reload): Run delete_output_reload
3451         only if optimizing.
3452
3453 2002-05-21  Roger Sayle  <roger@eyesopen.com>
3454
3455         PR middle-end/6600
3456         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
3457         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
3458         (can_store_by_pieces): ... and here to limit the largest mode used.
3459         Add a comment to document this function.
3460
3461 2002-05-21  Richard Henderson  <rth@redhat.com>
3462
3463         * flow.c (life_analysis): Fix test for deleted label.
3464
3465 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3466
3467         * doc/tm.texi: Fix typo.
3468
3469 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
3470
3471         * c-common.c (c_common_init): Set options->unsigned_char from
3472         flag_signed_char.
3473         (cb_register_builtins): Define __STRICT_ANSI__ and
3474         __CHAR_UNSIGNED__ here...
3475         * cppinit.c (init_builtins): Not here.
3476         (cpp_create_reader): unsigned_char option defaults to 0, not
3477         !DEFAULT_SIGNED_CHAR.
3478         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
3479         and -funsigned-char.
3480
3481         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
3482         * cpphash.c (_cpp_init_hashtable): Don't set it.
3483         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
3484         directly.  Clarify comment.
3485
3486 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3487
3488         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
3489         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
3490         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
3491         BASIC_BLOCK (n_basic_blocks - 1).
3492         * cfganal.c (can_fallthru, flow_call_edges_add,
3493         flow_preorder_transversal_compute): Too.
3494         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
3495         find_sub_basic_blocks): Too.
3496         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
3497         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
3498         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
3499         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
3500         * combine.c (this_basic_block): Type changed to basic_block.
3501         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
3502         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
3503         get_last_value, distribute_notes, distribute_links): Too.
3504         * final.c (compute_alignments): Too.
3505         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
3506         * function.c (thread_prologue_and_epilogue_insns): Too.
3507         * gcse.c (compute_code_hoist_vbeinout): Too.
3508         * global.c (build_insn_chain): Too.
3509         * ifcvt.c (find_if_block, find_cond_trap): Too.
3510         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
3511         * regmove.c (regmove_optimize): Too.
3512         * resource.c (find_basic_block): Too.
3513         * sched-ebb.c (schedule_ebbs): Too.
3514         * ssa-dce.c (find_control_dependence, find_pdom): Too.
3515
3516 2002-05-21  Andreas Jaeger  <aj@suse.de>
3517
3518         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
3519
3520 2002-05-21  Richard Henderson  <rth@redhat.com>
3521
3522         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
3523         unspec names, not numbers.
3524
3525 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3526
3527         * doc/sourcebuild.texi: Mention snapshot-README and
3528         snapshot-index.html as needing updating for new front ends.
3529
3530 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3531
3532         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
3533         disabling checking, and avoid multiple evaluation of RTX.
3534
3535 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
3536
3537         * bitmap.c (bitmap_find_bit): Return early if we have the correct
3538         element cached.
3539
3540 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
3541
3542         * profile.c (gen_edge_profiler):  Set alias set before the memory is
3543         used.
3544
3545 2002-05-20  David S. Miller  <davem@redhat.com>
3546
3547         * cselib.c (max_value_regs): New.
3548         (cselib_lookup, cselib_invalidate_regno): Initialize it when
3549         adding new entries to the REG_VALUES table and we are dealing with
3550         a hard register.
3551         (clear_table): Initialize it.
3552         (cselib_invalidate_regno): Use it to determine which hard
3553         registers to scan when mode is not VOIDmode.
3554
3555 2002-05-20  Duraid Madina   <duraid@fl.net.au>
3556
3557         * tradcpp.c (fixup_newlines): Use old-style function header.
3558
3559 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
3560
3561         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
3562
3563 2002-05-20  H.J. Lu  (hjl@gnu.org)
3564
3565         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
3566
3567         * config/mips/mips.h (DFMODE_NAN): Defined.
3568         (SFMODE_NAN): Likewise.
3569
3570 2002-05-20  Dale Johannesen  <dalej@apple.com>
3571
3572         * combine.c (cant_combine_insn_p):  Back out my
3573         previous patch.
3574
3575 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
3576
3577         * params.c: Fix formatting.
3578         * params.h: Likewise.
3579         * predict.c: Likewise.
3580         * prefix.c: Likewise.
3581         * print-rtl.c: Likewise.
3582         * print-tree.c: Likewise.
3583         * profile.c: Likewise.
3584
3585 2002-05-20  H.J. Lu  (hjl@gnu.org)
3586
3587         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
3588
3589 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
3590
3591         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
3592         switches straight on to the assembler, do not abbreviate them.
3593         * config/arm/elf.h (ASM_SPEC): As above.
3594         * config/arm/semi.h (ASM_SPEC): As above.
3595         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
3596         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
3597         -mcpu=xscale on to the assembler by default.
3598         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
3599
3600 2002-05-20  Richard Henderson  <rth@redhat.com>
3601
3602         * cse.c (canon_hash): Reorder do_not_record test.  Always
3603         allow pic_offset_table_rtx.
3604
3605 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
3606
3607         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
3608         (expand_binop): Ditto (3 times).
3609
3610 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
3611
3612         * Makefile.in (distclean): Remove QMTest stuff.
3613         (QMTEST_PATH): New variable.
3614         (QMTESTFLAGS): Likewise.
3615         (QMTESTRUNFLAGS): Likewise.
3616         (QMTEST): Likewise.
3617         (QMTEST_GPP_TESTS): Likewise.
3618         (QMTEST_DIR): Likewise.
3619         (QMTEST_DIR/context): New target.
3620         (qmtest-g++): Likeise.
3621         (qmtest-gui): Likewise.
3622         (QMTEST_DIR/gpp-expected.qmr): Likewise.
3623
3624 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
3625
3626         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
3627         an altivec register if TARGET_ALTIVEC.
3628
3629         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
3630         to ALTIVEC_VECTOR_MODE.
3631         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
3632         (rs6000_va_arg): Vectors may go in registers if they are not
3633         altivec vectors.
3634
3635 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
3636
3637         * protoize.c: Fix formatting.
3638
3639 2002-05-19  Richard Henderson  <rth@redhat.com>
3640
3641         * gensupport.c (init_include_reader): Merge into ...
3642         (process_include): ... here.  Simplify composite path creation.
3643         Plug memory leaks.  Fix file/line number tracking.  Do not
3644         process_define_cond_exec.  Return void.
3645         (process_rtx): Don't check process_include return value.
3646
3647 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3648
3649         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
3650         fields.
3651         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
3652         traversing basic block chain.
3653         (create_basic_block_structure, create_basic_block): Declaration changed.
3654         (link_block, unlink_block): Declare.
3655         * cfg.c (entry_exit_blocks): Initialize new fields.
3656         (link_block, unlink_block): New.
3657         (expunge_block_nocompact): Unlink basic block.
3658         (dump_flow_info): Print prev_bb/next_bb fields.
3659         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
3660         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
3661         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
3662         * cfgrtl.c (create_basic_block_structure, create_basic_block,
3663         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
3664         (verify_flow_info): Check that list agrees with numbering.
3665
3666 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
3667
3668         * c-common.c (preprocessing_asm): New macro.
3669         * c-lex.h (builtin_define, builtin_assert): Use pfile.
3670 doc:
3671         * tm.texi: Update.
3672 config/alpha:
3673         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
3674         (CPP_SPEC): Simplify.
3675         (TARGET_CPU_CPP_BUILTINS): Update.
3676         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
3677         (CPP_SPEC): Simplify.
3678         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
3679         (TARGET_OS_CPP_BUILTINS): Update.
3680         * osf.h (CPP_XFLOAT_SPEC): Kill.
3681         (TARGET_OS_CPP_BUILTINS): Update.
3682         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
3683         * osf5.h (CPP_XFLOAT_SPEC): Kill.
3684         * vms.h (CPP_SUBTARGET_SPEC): Kill.
3685         (TARGET_OS_CPP_BUILTINS): Update.
3686
3687 2002-05-19  Richard Henderson  <rth@redhat.com>
3688
3689         * varasm.c (default_binds_local_p): Fix typo.
3690
3691 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3692
3693         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
3694         CONST_INT operand to the correct mode after adding 1 to it.
3695
3696 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
3697
3698         * config.gcc (powerpc-wrs-windiss*): New target.
3699
3700 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3701
3702         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
3703         (ashrdi3): Use it.
3704
3705 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
3706
3707         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
3708         alphasort.
3709         * config.in: Regenerated.
3710         * configure: Regenerated.
3711
3712 2002-05-19  Richard Henderson  <rth@redhat.com>
3713
3714         * target-def.h (TARGET_BINDS_LOCAL_P): New.
3715         * target.h (struct gcc_target): Move boolean fields to the end.
3716         Add binds_local_p.
3717         * varasm.c (default_binds_local_p): New.
3718         * output.h: Declare it.
3719
3720         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
3721         * config/cris/cris.c (cris_encode_section_info): Likewise.
3722         * config/i386/i386.c (i386_encode_section_info): Likewise.
3723         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
3724         * config/sh/sh.c (sh_encode_section_info): Likewise.
3725
3726         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
3727         (TARGET_BINDS_LOCAL_P): New.
3728
3729 2002-05-19  Richard Henderson  <rth@redhat.com>
3730
3731         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
3732         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
3733         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
3734
3735         * toplev.c (display_help): Kill -a -ax help.
3736
3737         * config/1750a/1750a.h, config/alpha/alpha.h,
3738         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
3739         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
3740         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
3741         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
3742
3743         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
3744         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
3745
3746         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
3747         (ix86_output_function_block_profiler): Kill.
3748         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
3749         (m68hc11_function_block_profiler): Kill.
3750         * config/m68hc11/m68hc11-protos.h: Update.
3751         * config/m88k/m88k.c (output_block_profiler): Kill.
3752         (output_function_block_profiler): Kill.
3753         * config/m88k/m88k-protos.h: Update.
3754
3755 2002-05-19  Richard Henderson  <rth@redhat.com>
3756
3757         * system.h (STRIP_NAME_ENCODING): Poison it.
3758         * output.h (STRIP_NAME_ENCODING): Remove.
3759         (default_strip_name_encoding): Declare.
3760         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
3761         * target.h (strip_name_encoding): New.
3762         * varasm.c (default_strip_name_encoding): New.
3763
3764         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
3765         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
3766         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
3767         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
3768         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
3769         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
3770         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
3771         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
3772         config/v850/v850.h: Use the hook, not the macro.
3773
3774         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
3775         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
3776         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
3777         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
3778         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
3779         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
3780         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
3781         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
3782         config/v850/v850.c, config/v850/v850.h:
3783         Move STRIP_NAME_ENCODING to out-of-line function and add
3784         TARGET_STRIP_NAME_ENCODING.
3785
3786         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
3787         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
3788         with TARGET_STRIP_NAME_ENCODING referencing existing function;
3789         make function static.
3790
3791         * xcoffout.c: Include target.h
3792         * Makefile.in (xcoffout.o): Update.
3793
3794         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
3795         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
3796         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
3797         reloc argument unused.
3798         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
3799
3800         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
3801         STRIP_NAME_ENCODING docs.
3802
3803 2002-05-19  Andreas Jaeger  <aj@suse.de>
3804
3805         * gengenrtl.c: Add prototype for excluded_rtx.
3806
3807         * real.h: Add prototype for exact_real_truncate.
3808
3809 2002-05-18  Richard Henderson  <rth@redhat.com>
3810
3811         * system.h (ENCODE_SECTION_INFO): Poison it.
3812         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
3813         * target.h (encode_section_info): New.
3814         * varasm.c (make_decl_rtl, output_constant_def): Use it.
3815         * hooks.c (hook_tree_int_void): New.
3816         * hooks.h: Declare it.
3817
3818         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
3819         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
3820         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
3821         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
3822         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
3823         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
3824         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
3825         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
3826         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
3827         config/mcore/mcore-protos.h, config/mcore/mcore.c,
3828         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
3829         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
3830         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
3831         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
3832         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
3833         referencing existing function.  Make function static.
3834
3835         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
3836         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
3837         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
3838         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
3839         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
3840         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
3841         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
3842         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
3843         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
3844         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
3845         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
3846         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
3847         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
3848         Move ENCODE_SECTION_INFO to out-of-line function and add
3849         TARGET_ENCODE_SECTION_INFO.
3850
3851         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
3852         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
3853
3854         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
3855         from SUBTARGET_*
3856         (switch_to_section): Replace in_rdata case with in_readonly_data.
3857
3858         * config/h8300/h8300.c (h8300_encode_label): Make static.
3859         * config/h8300/h8300-protos.h: Update.
3860
3861         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
3862         from rs6000_encode_section_info; make static.
3863         (rs6000_xcoff_encode_section_info): New.
3864
3865         * config/v850/v850.c (v850_encode_data_area): Make static.
3866         * config/v850/v850-protos.h: Update.
3867
3868         * config/vax/vax.c: Include flags.h.
3869         (vms_select_section): Fix typo.
3870
3871         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
3872         ENCODE_SECTION_INFO docs.
3873
3874 2002-05-18  Richard Henderson  <rth@redhat.com>
3875
3876         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
3877         REGISTER_TARGET_PRAGMAS.
3878         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
3879
3880         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
3881
3882 2002-05-18  Richard Henderson  <rth@redhat.com>
3883
3884         * system.h (SELECT_RTX_SECTION): Poison.
3885         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
3886         * target.h (select_rtx_section): New.
3887         * varasm.c (output_constant_pool): Use it.
3888         (default_select_rtx_section, default_elf_select_rtx_section): New.
3889         * output.h: Declare them.
3890
3891         * config/darwin.h (SELECT_RTX_SECTION): Move ...
3892         * config/darwin.c (machopic_select_rtx_section): ... here.
3893         * config/darwin-protos.h: Update.
3894
3895         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
3896         * config/nextstep.c (machopic_select_rtx_section): ... here.
3897         (nextstep_select_section): Rename variable to avoid macro clash.
3898         * config/nextstep-protos.h: Update.
3899
3900         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
3901         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
3902         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
3903         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
3904         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
3905         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
3906         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
3907         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
3908         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
3909         (SELECT_RTX_SECTION): Remove.
3910
3911         * config/darwin.h, config/elfos.h, config/nextstep.h,
3912         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
3913         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
3914         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
3915         config/sparc/lynx.h, config/xtensa/xtensa.c
3916         (TARGET_ASM_SELECT_RTX_SECTION): New.
3917
3918         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
3919         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
3920         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
3921         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
3922         (ia64_aix_select_rtx_section): New.
3923         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
3924         redefining.
3925         * config/mips/mips.c (mips_select_rtx_section): Make static.
3926         Support ELF SHF_MERGE features.
3927         * config/mips/mips-protos.h: Update.
3928         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
3929         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
3930         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
3931         make static, fall back to default_elf_select_rtx_section.
3932         * config/rs6000/rs6000-protos.h: Update.
3933         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
3934         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
3935         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
3936         * config/romp/romp.c (romp_select_rtx_section): New.
3937         * config/s390/s390.c (s390_select_rtx_section): New.
3938         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
3939         declarations before target macro definition.
3940         (xtensa_emit_call): Use static buffer.
3941         (xtensa_select_rtx_section): New.
3942         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
3943         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
3944         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
3945
3946         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
3947         SELECT_RTX_SECTION docs.
3948
3949 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
3950
3951         * i386.md (movsi/movdi): Fix template.
3952         (sse2 patterns): Set attributes consistently.
3953
3954         * i386.md (pushqi2, ashrqi_*): Fix constraint.
3955
3956 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
3957
3958         * optabs.c (complex_part_zero_p): New.
3959         * (expand_cmplxdiv_straight): Use it.
3960         * (expand_cmplxdiv_wide): Ditto.
3961         * (expand_binop): Ditto.
3962
3963 2002-05-18  Richard Henderson  <rth@redhat.com>
3964
3965         * final.c (HAVE_READONLY_DATA_SECTION): New.
3966         (shorten_branches): Use it instead of ifdefs.
3967         * varasm.c (enum in_section): Add in_readonly_data.
3968         (text_section, data_section): Tidy.
3969         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
3970
3971         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
3972         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
3973         (READONLY_DATA_SECTION): Don't undef.
3974
3975         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
3976         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
3977         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
3978
3979         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
3980         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
3981         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
3982         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
3983
3984         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
3985         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
3986         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
3987         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
3988         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
3989         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
3990         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
3991         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
3992         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
3993
3994         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
3995         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
3996         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
3997         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
3998         config/pa/pa64-hpux.h, config/sparc/litecoff.h
3999         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
4000
4001         * config/elfos.h, config/netware.h, config/svr3.h,
4002         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
4003         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
4004         config/h8300/h8300.h, config/i386/i386-interix.h,
4005         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
4006         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
4007
4008         * config/elfos.h, config/netware.h, config/svr3.h,
4009         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
4010         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
4011         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
4012         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
4013
4014         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
4015         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
4016         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
4017         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
4018         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
4019         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
4020         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
4021         config/rs6000/sysv4.h, config/v850/v850.h
4022         (EXTRA_SECTIONS): Remove in_const/in_rdata.
4023         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
4024
4025         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
4026         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
4027         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
4028         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
4029         * config/alpha/alpha.c (alpha_start_function): Likewise.
4030         (alpha_write_linkage): Likewise.
4031         * config/m32r/m32r.c (m32r_select_section): Likewise.
4032         * config/m88k/m88k.c (m88k_select_section): Likewise.
4033         * config/mips/mips.c (mips_select_rtx_section): Likewise.
4034         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
4035         (rs6000_elf_select_section): Likewise.
4036         * config/v850/v850.c (v850_select_section): Likewise.
4037
4038         * config/1750a/1750a.h, config/i860/sysv3.h
4039         (READONLY_DATA_SECTION_ASM_OP): New.
4040         READONLY_DATA_SECTION_ASM_OP.
4041         * config/i386/interix.c, config/i386/winnt.c
4042         (i386_pe_unique_section): Always use .rdata prefix.
4043         * config/pa/som.h (readonly_data): Always switch to read-only section.
4044         (READONLY_DATA_SECTION): Predicate on flag_pic.
4045         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
4046         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
4047         (READONLY_DATA_SECTION): Update.
4048
4049 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
4050
4051         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
4052         is used without -Wformat.
4053         * c-common.h (warn_format_zero_length): Declare extern.
4054         * c-decl.c (warn_options): Add "format-zero-length".
4055         * c-format.c (warn_format_zero_length): Declare.
4056         (set_Wformat): Set warn_format_zero_length for -Wformat.
4057         (check_format_info): Only warn about zero-length formats if
4058         warn_format_zero_length is true.  Include the format type
4059         name in the warning message.
4060         * doc/invoke.texi: Document -Wformat-zero-length.
4061         * testsuite/gcc.dg/format/zero-length-1.c: New test.
4062
4063 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
4064
4065         * timevar.c: Fix formatting.
4066         * tlink.c: Likewise.
4067         * toplev.c: Likewise.
4068         * tree-dump.c: Likewise.
4069         * tree-inline.c: Likewise.
4070
4071 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
4072
4073         * cppinit.c (cpp_post_options): If preprocessed, turn off
4074         traditional.  If traditional, turn off column numbers.
4075         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
4076         * cpptrad.c (handle_newline): Update line_base.
4077         (skip_comment): Handle -Wcomment.
4078
4079 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
4080
4081         * cppinit.c (struct builtin): Remove unused fields.
4082         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
4083         (operator_array): New - was second half of builtin_array.
4084         (init_builtins): Simplify loop over builtin_array/operator_array.
4085
4086 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
4087
4088         * defaults.h (UNIQUE_SECTION): Remove.
4089         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
4090
4091 2002-05-17  Richard Henderson  <rth@redhat.com>
4092
4093         * expr.c (init_expr_once): Don't use start/end_sequence.
4094         Use rtx_alloc instead of emit_insn.
4095         * toplev.c (lang_dependent_init): Run init_expr_once here ...
4096         (lang_independent_init): ... not here.
4097
4098 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
4099
4100         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
4101
4102 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4103
4104         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
4105         for fixed registers, possibly used for global register variables.
4106         (initial_elimination_offset, avr_output_function_prologue,
4107         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
4108
4109 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4110
4111         * Makefile.in: Update for cpptrad.c.
4112         * cpphash.h (struct cpp_buffer): New members for buffer
4113         overlays.
4114         (struct cpp_reader): New members for traditional output.
4115         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
4116         * cppinit.c (cpp_create_reader): Set trad_line.
4117         (cpp_destroy): Free trad_out_base if used.
4118         (cpp_read_main_file): Overlay an empty buffer if traditional.
4119         (cpp_finish_options): Don't do builtins.
4120         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
4121         (cpp_handle_option): Handle it.
4122         * cpplex.c (continue_after_nul): New.
4123         (_cpp_lex_direct): Use handle_nul.
4124         * cpplib.h (struct cpp_options): New traditional option.
4125         * cpptrad.c: New file.
4126
4127 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4128
4129         * c-common.c (c_common_init_options): Use C89 for Objective-C,
4130         and set the options flag.
4131         * cppinit.c (lang_flags): Remove objc.
4132         (lang_defaults): Remove OBJC and OBJCXX.
4133         (set_lang): Update.
4134         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
4135         (cpp_handle_option): Remove -+ and -lang-objc++.
4136         For ObjC, just set a flag.
4137         (print_help): Update.
4138         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
4139
4140 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4141
4142         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
4143         bootstrap with -mips3.
4144
4145 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
4146
4147         * final.c: Fix formatting.
4148         * fix-header.c: Likewise.
4149         * flow.c: Likewise.
4150         * fold-const.c: Likewise.
4151         * function.c: Likewise.
4152
4153 2002-05-17  David S. Miller  <davem@redhat.com>
4154
4155         PR c/6689, PR optimization/6615
4156         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
4157         and make it a pointer to rtx.  Update comments.
4158         (update_equiv_regs): When scanning for equivalences, record
4159         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
4160         it while making the equiv replacements.
4161
4162 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4163
4164         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
4165
4166 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
4167
4168         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
4169         when encoding visibility into SYMBOL_REF_FLAG.
4170
4171 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
4172
4173         * expr.c (force_operand): Fix reversed move.
4174
4175 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
4176
4177         * doc/install.texi (Testing): Mention two common DejaGnu warnings
4178         that can be ignored.
4179
4180 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4181
4182         * doc/install.texi (Final install): Recommend to install into a
4183         "clean" target directory.
4184
4185 2002-05-17  Richard Henderson  <rth@redhat.com>
4186
4187         * config/ia64/ia64.md: Use braced strings instead of quoted strings
4188         for code blocks.  Tidy whitespace.
4189
4190 2002-05-17  Richard Henderson  <rth@redhat.com>
4191
4192         * hooks.c (hook_tree_bool_false): New.
4193         * hooks.h: Declare it.
4194         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
4195         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
4196         * target.h (select_section, unique_section): New.
4197         (in_small_data_p): New.
4198         * varasm.c (resolve_unique_section): Use hooks instead of macros.
4199         (variable_section, output_constant_def_contents): Likewise.
4200         (default_select_section, default_unique_section): New.
4201         (categorize_decl_for_section, default_elf_select_section): New.
4202         * output.h: Declare them.
4203
4204         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
4205         (TARGET_ASM_SELECT_SECTION): New.
4206         (SELECT_SECTION): Move ...
4207         * config/darwin.c (machopic_select_section): ... here.
4208         * config/darwin-protos.h: Update.
4209
4210         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
4211         (SELECT_SECTION): Move ...
4212         * config/nextstep.c (nextstep_select_section): ... here.
4213         * config/nextstep-protos.h: Update.
4214
4215         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
4216         (TARGET_ASM_SELECT_SECTION): New.
4217         * config/svr3.h (SELECT_SECTION): Remove.
4218
4219         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
4220         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
4221         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
4222         (alpha_encode_section_info): Use it.
4223         * config/alpha/alpha-protos.h: Update.
4224         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
4225         (SELECT_SECTION, UNIQUE_SECTION): Remove.
4226         (TARGET_ASM_SELECT_SECTION): New.
4227         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
4228
4229         * config/arm/pe.h (UNIQUE_SECTION): Remove.
4230         (TARGET_ASM_UNIQUE_SECTION): New.
4231
4232         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
4233         (avr_unique_section): Rename from unique_section; make static.
4234         * config/avr/avr-protos.h: Update.
4235         * config/avr/avr.h (UNIQUE_SECTION): Remove.
4236
4237         * config/c4x/c4x.h (SELECT_SECTION): Remove.
4238
4239         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
4240         (TARGET_ASM_UNIQUE_SECTION): New.
4241         * config/i386/i386-interix.h: Likewise.
4242         * config/i386/win32.h: Likewise.
4243         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
4244         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
4245         * config/i386/sco5.h (SELECT_SECTION): Remove.
4246         (TARGET_ASM_SELECT_SECTION): New.
4247         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
4248
4249         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
4250         instead of SELECT_SECTION.
4251         * config/m68k/dpx2.h: Likewise.
4252         * config/rs6000/lynx.h: Likewise.
4253
4254         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
4255         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
4256         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
4257         (ia64_in_small_data_p): New.
4258         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
4259         (ia64_aix_select_section, ia64_aix_unique_section): New.
4260         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
4261         (SELECT_SECTION, UNIQUE_SECTION): Remove.
4262
4263         * config/m32r/m32r.h (SELECT_SECTION): Remove.
4264         (TARGET_ASM_SELECT_SECTION): New.
4265         * config/m32r/m32r.c (m32r_select_section): Take align argument.
4266         * config/m32r/m32r-protos.h: Update.
4267
4268         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
4269         (SELECT_SECTION): Move ...
4270         * config/m88k/m88k.c (m88k_select_section): ... here.
4271
4272         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
4273         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
4274         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
4275         (mcore_unique_section): Make static.
4276         * config/mcore/mcore-protos.h: Update.
4277
4278         * config/mips/elf.h (UNIQUE_SECTION): Remove.
4279         (TARGET_ASM_UNIQUE_SECTION): New.
4280         * config/mips/elf64.h: Likewise.
4281         * config/mips/iris6gld.h: Likewise.
4282         * config/mips/linux.h: Likewise.
4283         * config/mips/mips-protos.h: Update.
4284         * config/mips/mips.c (mips_select_section): Add align argument.
4285         * config/mips/mips.h (SELECT_SECTION): Remove.
4286         (TARGET_ASM_SELECT_SECTION): New.
4287
4288         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
4289         * config/mmix/mmix.c (mmix_select_section): Remove.
4290         (mmix_unique_section): Remove.
4291         * config/mmix/mmix-protos.h: Update.
4292
4293         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
4294         (SELECT_SECTION): Move ...
4295         * config/pa/pa.c (pa_select_section): ... here.
4296         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
4297
4298         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
4299         from rs6000_select_section and make static.
4300         (rs6000_elf_unique_section): Similarly.
4301         (rs6000_xcoff_select_section): From xcoff.h.
4302         (rs6000_xcoff_unique_section): Likewise.
4303         * config/rs6000/rs6000-protos.h: Update.
4304         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
4305         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
4306         * config/rs6000/xcoff.h: Likewise.
4307
4308         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
4309         (SELECT_SECTION): Move ...
4310         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
4311
4312         * config/v850/v850.h (SELECT_SECTION): Move ...
4313         * config/v850/v850.c (v850_select_section): ... here.
4314         (TARGET_ASM_SELECT_SECTION): New.
4315
4316         * config/vax/vms.h (SELECT_SECTION): Move ...
4317         * config/vax/vax.c (vms_select_section): ... here.
4318         (TARGET_ASM_SELECT_SECTION): New.
4319
4320         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
4321         for the target hooks.
4322
4323 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
4324
4325         * config/arm/arm.c (emit_multi_reg_push): Do not set
4326         RTX_FRAME_RELATED_P on the SEQUENCE.
4327
4328 2002-05-16  Richard Henderson  <rth@redhat.com>
4329
4330         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
4331         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
4332
4333 2002-05-16  Richard Henderson  <rth@redhat.com>
4334
4335         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
4336
4337         * config/ia64/ia64.c (saveable_obstack): Do not declare.
4338
4339 2002-05-16  Richard Henderson  <rth@redhat.com>
4340
4341         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
4342         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
4343         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
4344         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
4345         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
4346         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
4347         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
4348         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
4349         Revert "Basic block renumbering removal", and two followup patches.
4350
4351 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
4352
4353         * lcm.c (optimize_mode_switching): Revert previous change.
4354
4355 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4356
4357         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
4358         with only extant block numbers.
4359
4360 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
4361
4362         * lcm.c (optimize_mode_switching): Fix typo.
4363
4364 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4365
4366         * flow.c (calculate_global_regs_live): Queue blocks in program order.
4367
4368 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4369
4370         * doc/install.texi (Configuration): Document PWDCMD.
4371
4372 2002-05-16  Dale Johannesen  <dalej@apple.com>
4373
4374         * combine.c (cant_combine_insn_p):  Reenable combinations
4375         involving hard regs unless CLASS_LIKELY_SPILLED_P.
4376
4377 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4378
4379         * c-common.c (cb_register_builtins): Handle more built-ins
4380         here rather than in gcc.c specs.
4381         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
4382         (cpp_options): Pass -O flags even when only preprocessing.
4383         * toplev.c (set_fast_math_flags): New prototype.
4384         (fast_math_flags_set_p): New.
4385         (set_no_fast_math_flags): Remove.
4386         (decode_f_option): Update.
4387         * toplev.h (set_fast_math_flags): Update.
4388         (fast_math_flags_set_p): New.
4389         (set_no_fast_math_flags): Remove.
4390 config:
4391         * c4x/c4x.c (c4x_override_options): Update.
4392
4393 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
4394
4395         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
4396         Default-define here.
4397         (builtin_define_with_value): Can now wrap the expansion in
4398         quotation marks if such is wanted.
4399         (cb_register_builtins): Update calls to builtin_define_with_value.
4400         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
4401         here.
4402         (c_common_init): Set options->stdc_0_in_system_headers.
4403         * c-lex.h: Update prototype of builtin_define_with_value.
4404         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
4405         and REGISTER_PREFIX.
4406
4407         * cppinit.c (VERS, ULP, C, X): Kill.
4408         (builtin_array): Remove entries for __VERSION__,
4409         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
4410         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
4411         a constant.
4412         (init_builtins): Kill off a bunch of now-dead code.
4413         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
4414         -fno-leading-underscore.
4415         (cpp_handle_option): Remove code to set user_label_prefix.
4416         (cpp_post_options): Likewise.
4417
4418         * cpplib.h (struct cpp_options): Remove user_label_prefix.
4419         (stdc_0_in_system_headers): New.
4420         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
4421         stdc_0_in_system_headers) too to decide the value of __STDC__.
4422
4423         * tradcpp.c (user_label_prefix): Kill.
4424         (main): Remove code handling -f(no-)leading-underscore.
4425         (initialize_builtins): Don't define __REGISTER_PREFIX__
4426         or __USER_LABEL_PREFIX__.
4427         (install_value): Wrap compound statement in dummy loop so the
4428         macro works properly in an if statement.
4429
4430
4431 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
4432
4433         * loop.h (struct loop_info): Add member has_prefetch.
4434         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
4435         (prescan_loop): Initialize has_prefetch.
4436         (struct prefetch_info): Change prefetch_in_loop and
4437         prefetch_before_loop from bit fields to ints.
4438         (emit_prefetch_instructions): Several small fixes.
4439         (check_dbra_loop): Don't reverse loop that uses prefetch.
4440
4441 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4442
4443         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
4444         * configure.in: Likewise.
4445         * fixinc/check.tpl: Likewise.
4446         * fixinc/fixinc.dgux: Likewise.
4447         * fixinc/fixinc.svr4: Likewise.
4448         * fixinc/fixinc.winnt: Likewise.
4449         * fixinc/fixincl.sh: Likewise.
4450         * fixproto: Likewise.
4451         * configure: Regenerate.
4452
4453 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4454
4455         Basic block renumbering removal:
4456         * basic_block.h (struct basic_block_def): Renamed index to sindex,
4457         added prev_bb and next_bb fields.
4458         (n_basic_blocks): Renamed to num_basic_blocks.
4459         (last_basic_block): New, index of last basic block.
4460         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
4461         traversing basic block chain.
4462         (BLOCK_NUM): index -> sindex.
4463         (create_basic_block_structure, create_basic_block): Declaration changed.
4464         (debug_num2bb): Declare.
4465         (expunge_block_nocompact): Declaration removed.
4466         (link_block, unlink_block, compact_blocks): Declare.
4467         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
4468         * cfg.c (entry_exit_blocks): Initialize new fields.
4469         (clear_edges, alloc_block, expunge_block, cached_make_edge,
4470         redirect_edge_pred, dump_flow_info, dump_edge_info,
4471         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
4472         free_aux_for_edges): Modified.
4473         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
4474         (expunge_block_nocompact): Removed.
4475         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
4476         find_unreachable_blocks, create_edge_list, print_edge_list,
4477         verify_edge_list, flow_edge_list_print, remove_fake_successors,
4478         remove_fake_edges, flow_reverse_top_sort_order_compute,
4479         flow_depth_first_order_compute, flow_preorder_transversal_compute,
4480         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
4481         flow_dfs_compute_reverse_execute): Modified.
4482         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
4483         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
4484         Modified.
4485         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
4486         merge_blocks_move_predecessor_nojumps,
4487         merge_blocks_move_successor_nojumps, merge_blocks,
4488         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
4489         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
4490         * cfglayout.c (skip_insns_after_block, label_for_bb,
4491         record_effective_endpoints, scope_to_insns_finalize,
4492         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
4493         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
4494         cfg_layout_duplicate_bb): Modified.
4495         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
4496         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
4497         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
4498         flow_loops_find, flow_loop_outside_edge_p): Modified.
4499         * cfgrtl.c (create_basic_block_structure, create_basic_block,
4500         flow_delete_block, compute_bb_for_insn, split_block,
4501         try_redirect_by_replacing_jump, redirect_edge_and_branch,
4502         force_nonfallthru_and_redirect, tidy_fallthru_edge,
4503         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
4504         commit_edge_insertions, commit_edge_insertions_watch_calls,
4505         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
4506         purge_all_dead_edges): Modified.
4507         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
4508         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
4509         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
4510         Modified.
4511         * conflict.c (conflict_graph_compute): Modified.
4512         * df.c (FOR_ALL_BBS): Removed.
4513         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
4514         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
4515         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
4516         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
4517         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
4518         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
4519         * final.c (compute_alignments, final_scan_insn): Modified.
4520         * flow.c (verify_local_live_at_start, update_life_info,
4521         update_life_info_in_dirty_blocks, free_basic_block_vars,
4522         delete_noop_moves, calculate_global_regs_live,
4523         initialize_uninitialized_subregs, allocate_bb_life_data,
4524         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
4525         mark_used_reg, count_or_remove_death_notes): Modified.
4526         * function.c (thread_prologue_and_epilogue_insns): Modified.
4527         * gcse.c (struct null_pointer_info): Change typo of current_block
4528         to basic_block.
4529         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
4530         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
4531         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
4532         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
4533         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
4534         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
4535         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
4536         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
4537         pre_delete, one_pre_gcse_pass, compute_transpout,
4538         invalidate_nonnull_info, delete_null_pointer_checks_1,
4539         free_code_hoist_mem, compute_code_hoist_vbeinout,
4540         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
4541         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
4542         compute_store_table, build_store_vectors, insert_insn_start_bb,
4543         insert_store, replace_store_insn, free_store_memory, store_motion):
4544         Modified.
4545         * global.c (global_alloc, global_conflicts, mark_elimination,
4546         build_insn_chain): Modified.
4547         * graph.c (print_rtl_graph_with_bb): Modified.
4548         * haifa-sched.c (sched_init): Modified.
4549         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
4550         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
4551         if_convert): Modified.
4552         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
4553         compute_insert_delete, pre_edge_lcm, compute_available,
4554         compute_farthest, compute_nearerout, compute_rev_insert_delete,
4555         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
4556         Modified.
4557         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
4558         * loop.c (loop_dump_aux): Modified.
4559         * predict.c (combine_predictions_for_insn, estimate_probability,
4560         last_basic_block_p, process_note_prediction, process_note_predictions,
4561         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
4562         expensive_function_p, estimate_bb_frequencies,
4563         compute_function_frequency): Modified.
4564         * print-rtl.c (print_rtx): Modified.
4565         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
4566         get_exec_counts, compute_branch_probabilities, compute_checksum,
4567         branch_prob, find_spanning_tree): Modified.
4568         * recog.c (split_all_insns, peephole2_optimize): Modified.
4569         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
4570         convert_regs_1, convert_regs_2, convert_regs): Modified.
4571         * regclass.c (scan_one_insn, regclass): Modified.
4572         * regmove.c (mark_flags_life_zones, regmove_optimize,
4573         combine_stack_adjustments): Modified.
4574         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
4575         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
4576         * reorg.c (dbr_schedule): Modified.
4577         * resource.c (find_basic_block, init_resource_info): Modified.
4578         * sbitmap.c (sbitmap_intersection_of_succs,
4579         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
4580         sbitmap_union_of_preds): Modified.
4581         * sched-deps.c (init_dependency_caches): Modified.
4582         * sched-ebb.c (schedule_ebbs): Modified.
4583         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
4584         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
4585         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
4586         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
4587         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
4588         ssa_const_prop): Modified.
4589         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
4590         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
4591         * ssa.c (remove_phi_alternative, find_evaluations,
4592         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
4593         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
4594         make_regs_equivalent_over_bad_edges,
4595         make_equivalent_phi_alternatives_equival,
4596         compute_conservative_reg_partition,
4597         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
4598         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
4599         Modified.
4600
4601 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
4602
4603         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
4604
4605 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
4606
4607         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
4608         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
4609         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
4610         calling CONSTANT_POOL_ADDRESS_P.
4611         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
4612         to decide whether to define __arm__ or __thumb.
4613         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
4614         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
4615
4616 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4617
4618         * config/arc/arc.h (CPP_PREDEFINES): Remove.
4619         (CPP_SPEC): Update.
4620         (TARGET_CPU_CPP_BUILTINS): New.
4621
4622 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4623
4624         * cpphash.h (cpp_macro): Move here, and make expansion a union.
4625         * cppmacro.c (cpp_macro): Remove.
4626         (enter_macro_context, replace_args, warn_of_redefinition,
4627         _cpp_create_definition, cpp_macro_definition): Update.
4628
4629 2002-05-16  Jason Merrill  <jason@redhat.com>
4630
4631         * config/mips/mips.c (mips_output_external): Don't do sdata
4632         optimization for a variable with DECL_COMDAT set.
4633
4634 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
4635
4636         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
4637         Cleanups for accepting modifiers on pointers.
4638         Fix predicate typos.
4639         Allow long pointers as well as int pointers.
4640
4641 2002-05-15  Richard Henderson  <rth@redhat.com>
4642
4643         * varasm.c (merge_weak): Remove special case for extern and common.
4644
4645 2002-05-15  Matt Hiller  <hiller@redhat.com>
4646
4647         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
4648         XFAILing.
4649         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
4650         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
4651         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
4652         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
4653         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
4654         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
4655
4656 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
4657
4658         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
4659
4660 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
4661
4662         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
4663         ("altivec_mfvscr"): Read from VSCR.
4664
4665         Add vscr sets for the following insns: altivec_vctuxs,
4666         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
4667         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
4668         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
4669         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
4670         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
4671         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
4672         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
4673         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
4674         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
4675         altivec_vsum2sws, altivec_vsumsws.
4676
4677         * config/rs6000/rs6000.h: Add VSCR fixed register.
4678         (CALL_REALLY_USED_REGISTERS): Add vscr.
4679         (CALL_USED_REGISTERS): Same.
4680         (FIXED_REGISTERS): Same.
4681         (REG_ALLOC_ORDER): Same.
4682         (reg_class): Add VSCR_REGS.
4683         (REG_CLASS_NAMES): Same.
4684         (REG_CLASS_CONTENTS): Same.
4685         (VSCR_REGNO): New.
4686         (REGISTER_NAMES): Add vscr.
4687         (DEBUG_REGISTER_NAMES): Same.
4688         (ADDITIONAL_REGISTER_NAMES): Same.
4689         (FIRST_PSEUDO_REGISTER): Increment.
4690         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
4691
4692 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
4693
4694         * fold-const.c (fold): Fix a typo.
4695
4696 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
4697
4698         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
4699         comparison against the highest or lowest integer value before
4700         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
4701         transformation and that of an unsigned comparison against 0
4702         right after.
4703
4704 2002-05-15  Richard Henderson  <rth@redhat.com>
4705
4706         * varasm.c (merge_weak): Error for any weakening after definition.
4707         Adjust weakening after use warning to catch more cases.
4708         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
4709         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
4710
4711 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
4712
4713         * invoke.texi (-malign-double): Re-add lost warning.
4714
4715         * i386-protos.h (x86_output_mi_thunk): Declare.
4716         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
4717         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
4718
4719         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
4720         when flag_asynchronous_unwind_tables is set.
4721
4722         * flags.h (flag_reorder_functions): Declare.
4723         * function.c (prepare_function_start): Initialize frequnecy.
4724         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
4725         * Makefile.in (predict.o): Add dependency on target.h and params.h
4726         * defaults.h (HOT_TEXT_SECTION_NAME,
4727         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
4728         * predict.c (choose_function_section): New function.
4729         (estimate_bb_frequencies): Use it.
4730         * toplev.c (flag_reorder_functions): New global variable.
4731         (lang_independent_options): New.
4732         (parse_options_and_default_flags): Set.
4733         * varasm.c (assemble_start_function): Bypass functdion alignment
4734         for never executed functions.
4735         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
4736         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
4737         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
4738         Document.
4739
4740         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
4741
4742         * predict.c: Inlude profile.h
4743         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
4744         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
4745         Use the information about maximal counter in the program.
4746
4747         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
4748
4749         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
4750         probably_never_executed_bb_p): New functions.
4751         * cfgcleanup.c (outgoing_edges_match): Use them.
4752         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
4753         (maybe_hot_bb_p, probably_cold_bb_p,
4754         probably_never_executed_bb_p): New functions.
4755
4756         * function.h (function): Add new field function_frequency.
4757         * predict.c (compute_function_frequency): New function.
4758         (estimate_probability): Call it.
4759
4760 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
4761
4762         PR optimization/5172, optimization/5200
4763         * gcse.c (gcse_main): Disable store_motion.
4764
4765 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
4766
4767         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
4768         (c_common_nodes_and_builtins): Use it.
4769         (builtin_define_with_value): New function.
4770         (cb_register_builtins): Define __SIZE_TYPE__,
4771         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
4772         using builtin_define_with_value.  Use consistent notation when
4773         defining __GXX_WEAK__.
4774         (WCHAR_TYPE_SIZE): Don't redefine.
4775         (combine_strings): Don't use WCHAR_TYPE_SIZE.
4776
4777         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
4778         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
4779         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
4780         * tradcpp.c (initialize_builtins): Likewise.
4781         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
4782
4783         * c-lex.h (builtin_define_with_value): Prototype.
4784         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
4785         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
4786         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
4787
4788         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
4789         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
4790         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
4791         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
4792         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
4793         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
4794         config/sparc/sol2-bi.h, config/sparc/sparc.h:
4795         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
4796         to __SIZE_TYPE__ etc from all spec strings. When this makes
4797         extra specs empty, delete them.
4798
4799 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4800
4801         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
4802         for PA8000 or generating dwarf2 call frame information.
4803         (output_call): Remove DO_FRAME_NOTES check from return pointer
4804         optimization.
4805         (following_call): Return 0 when scheduling for PA8000 or generating
4806         dwarf2 call frame information.  Revise comment.
4807
4808 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4809
4810 config/alpha:
4811         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
4812         and __IEEE_FP_INEXACT as appropriate.
4813         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
4814         (CPP_SPEC): Remove ieee defines.
4815         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
4816
4817 2002-05-14  Richard Henderson  <rth@redhat.com>
4818
4819         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
4820         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
4821
4822 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4823
4824         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
4825         (CPP_SPEC): Update.
4826         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
4827         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
4828         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
4829         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
4830         (EXTRA_SPECS): Update.
4831         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
4832         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
4833         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
4834         define TARGET_OS_CPP_BUILTINS if necessary.
4835
4836 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4837
4838         * gcc.c (cpp_options): Must pass -m* and -f* options
4839         to the front end even when only preprocessing.
4840         (cc1_options): Remove redundant -lang-c.
4841         * tradcpp.c (main): Ignore -m options.
4842 objc:
4843         * lang-specs.h: Similarly.
4844
4845 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
4846
4847         * genautomata.c (transform_3): Add code for transformation
4848         `(A,B,...)+C -> A+C,B,...'.
4849
4850 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
4851
4852         * final.c (end_final): Do not output profile_arcs constructor, when
4853         no functions are instrumented.
4854
4855 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
4856
4857         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
4858
4859 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4860
4861         * doc/install.texi: Remove special markup originally required for
4862         HTML generation with texi2html.
4863
4864 2002-05-14  Andreas Schwab  <schwab@suse.de>
4865
4866         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
4867         SELECT_SECTION.
4868         (UNIQUE_SECTION): Define to get small data correctly.
4869
4870         * varasm.c (resolve_unique_section): Add third parameter
4871         flag_function_or_data_sections and use it instead of
4872         flag_function_sections.
4873         (assemble_start_function): Pass flag_function_sections.
4874         (asm_emit_uninitialised): Pass flag_data_sections.
4875         (assemble_variable): Likewise.
4876
4877 2002-05-14  Richard Henderson  <rth@redhat.com>
4878
4879         * config/i386/i386.md: Use define_constants for unspec numbers.
4880         * config/i386/i386.c: Likewise.
4881
4882 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
4883
4884         * doc/contrib.texi: Update my entry.
4885
4886 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
4887
4888         * fixinc/inclhack.def (winidss_valist): Limit applicability.
4889         * fixinc/fixincl.x: Regenerated.
4890         * fixinc/tests/base/math.h: Update.
4891         * fixinc/tests/base/testing.h: Likewise.
4892
4893 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
4894
4895         * genattr.c (gen_attr): Don't emit a comma after the last
4896         enumerator.
4897
4898 2002-05-13  Richard Henderson  <rth@redhat.com>
4899
4900         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
4901         by non-local gotos.
4902         * recog.c (peephole2_optimize): Likewise.
4903
4904 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
4905
4906         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
4907         input to O_BINARY.
4908
4909 2002-05-13  Jeffrey A Law  (law@redhat.com)
4910
4911         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
4912         Update prototype and callers.
4913         (propagate_one_insn): Stack pointer adjustments kill MEMs on
4914         the mem_set_list which reference the stack pointer, as do
4915         calls to constant functions as they may clobber outgoing
4916         argument space.
4917
4918         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
4919
4920         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
4921         (ia32_multipass_dfa_lookahead): New function.
4922
4923 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
4924
4925         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
4926         (translate_options): Remove 'V'.
4927         (process_command): Similarly.
4928 doc:
4929         * invoke.texi: Remove documentation of 'V'.
4930
4931 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
4932
4933         * config/s390/linux.h: Revert 2002-04-22 changes.
4934
4935 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
4936
4937         * config/fr30/fr30.md: Only allow splits of immediate loads
4938         if the destination is a register.
4939
4940 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
4941
4942         * Makefile.in (c-common.o, cppinit.o): Update.
4943         * c-common.c: Include except.h.
4944         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
4945         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
4946         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
4947         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
4948         CPP_PREDEFINES): Handle here.
4949 config:
4950         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
4951         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
4952         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
4953         TARGET_OS_CPP_BUILTINS.
4954         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
4955         (CPP_SPEC, EXTRA_SPECS): Update.
4956         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
4957         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
4958         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
4959         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
4960         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
4961 doc:
4962         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
4963         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
4964
4965 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
4966
4967         * emit-rtl.c (global_rtl): Update comment.
4968         (const_double_htab, const_double_htab_hash,
4969         const_double_htab_hash, lookup_const_double): New.
4970         (const_int_htab_hash, const_int_htab_eq): Remove const
4971         qualifiers, which cause tons of warnings with RTL checking on.
4972         (gen_rtx_CONST_DOUBLE): Deleted.
4973         (const_double_from_real_value): New function - bears some
4974         resemblance to the former immed_real_const_1.
4975         (immed_double_const): Moved here from varasm.c and
4976         simplified.
4977         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
4978         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
4979         (gen_rtx): Use immed_double_const.
4980         (init_emit_once): Initialize the const_double_htab.  Use
4981         REAL_VALUE_FROM_INT where possible.  Can now use
4982         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
4983         * varasm.c (struct varasm_status): Remove x_const_double_chain.
4984         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
4985         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
4986         (init_varasm_status, mark_varasm_status): Don't touch
4987         x_const_double_chain.
4988
4989         * output.h: Delete prototype for clear_const_double_mem.
4990         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
4991         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
4992         const_double_from_real_value, not immed_real_const_1, and use
4993         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
4994         CONST_DOUBLE_ATOF.
4995         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
4996         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
4997         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
4998         (gen_rtx_REG): Second arg is unsigned.
4999
5000         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
5001         (excluded_rtx): New, return true for CONST_DOUBLE.
5002         (genmacro): Write nothing for excluded codes.
5003         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
5004         * expr.c (expand_expr): Likewise.
5005         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
5006         CONST_DOUBLE_CHAIN.
5007         * toplev.c (rest_of_compilation): Don't call
5008         clear_const_double_mem.
5009
5010         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
5011         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
5012         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
5013         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
5014         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
5015         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
5016         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
5017         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
5018
5019 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5020
5021         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
5022
5023 2002-05-12  Tom Tromey  <tromey@redhat.com>
5024
5025         * tree.h (copy_node): Don't mention TREE_PERMANENT.
5026
5027 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
5028
5029         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
5030         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
5031         * gensupport.h: Prototype new routines.
5032         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
5033         use of printf.
5034         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
5035         (next_comma_elt): Use scan_comma_elt.
5036
5037         * config/i386/i386.md: Use new attribute notation to break up
5038         long lines in define_attr forms.
5039
5040 2002-05-12  Richard Henderson  <rth@redhat.com>
5041
5042         * expr.c (compress_float_constant): New.
5043         (emit_move_insn): Use it.
5044         (float_extend_from_mem): New.
5045         (init_expr_once): Initialize it.
5046         * real.c (exact_real_truncate): New.
5047
5048         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
5049         dropped into memory; penalize for size.
5050         (RTX_COSTS): FLOAT_EXTEND is free.
5051         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
5052         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
5053
5054 2002-05-12  Richard Henderson  <rth@redhat.com>
5055
5056         * profile.h (profile_info): Add missing extern to declaration.
5057         * profile.c (profile_info): Define it.
5058
5059 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5060
5061         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
5062         used for DImode and TImode.
5063
5064 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5065
5066         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
5067         fake a newline.
5068
5069 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
5070
5071         * config/rs6000/rs6000.c (rs6000_default_long_calls,
5072         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
5073         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
5074         (rs6000_override_options): Handle -m(no-)longcall.
5075         (init_cumulative_args, output_mi_thunk): Check for both
5076         longcall and shortcall attributes on the function.
5077         (rs6000_attribute_table): Add "shortcall".
5078         (rs6000_handle_longcall_attribute): Update comment.
5079         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
5080         altivec_expand_ternop_builtin): Add default clauses to switches
5081         to silence warnings.
5082
5083         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
5084         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
5085         (TARGET_OPTIONS): Add longcall and no-longcall.
5086
5087         * config/rs6000/rs6000.md (call_nonlocal_sysv,
5088         call_value_nonlocal_sysv): Split by alternatives.  One pair
5089         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
5090         the call cookie.  The other pair accepts only LR/CTR and has
5091         no restriction.
5092
5093         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
5094         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
5095         tmake_file.
5096         * config/rs6000/rs6000-c.c: New file.
5097         * config/rs6000/t-rs6000-c-rule: New file.
5098         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
5099         Prototype rs6000_pragma_longcall.
5100
5101         * doc/extend.texi: Document shortcall attribute.
5102         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
5103
5104 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5105
5106         * reorg.c (dbr_schedule): Remove unnecessary test.
5107
5108 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
5109
5110         * i386.md (testsi to testqi spliters): New.
5111
5112         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
5113
5114         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
5115
5116         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
5117
5118         * basic-block.h: New flag EDGE_CAN_FALLTHRU
5119         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
5120         that can be made fallthru.
5121
5122         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
5123
5124         * cfglayout.c (cleanup_unconditional_jumps): New static function.
5125         (cfg_layout_initialize): Use it.
5126
5127 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5128
5129         * config/avr/avr.c (avr_mcu_types): Update supported devices.
5130         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
5131         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
5132
5133 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
5134
5135         * dbxout.c: Fix formatting.
5136         * dependence.c: Likewise.
5137         * df.c: Likewise.
5138         * diagnostic.c: Likewise.
5139         * doloop.c: Likewise.
5140         * dominance.c: Likewise.
5141         * doschk.c: Likewise.
5142         * dwarf2asm.c: Likewise.
5143         * dwarf2out.c: Likewise.
5144         * dwarfout.c: Likewise.
5145
5146 2002-05-10  Richard Henderson  <rth@redhat.com>
5147
5148         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
5149         Convert integers constants as needed.  Replace "nwords" field with
5150         "sizeof_bb".
5151         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
5152         * function.h: Fix typo in comment.
5153         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
5154
5155 2002-05-10  Roger Sayle  <roger@eyesopen.com>
5156
5157         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
5158         into the equivalent (signed char)c > 0.
5159
5160 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
5161
5162         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
5163         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
5164         (struct prefetch_info): Fix spelling of member bytes_accessed.
5165         (emit_prefetch_instructions): Make dump messages more regular;
5166         restructure code to add more dump messages; use new macros for
5167         heuristics. (There are no code generation changes in any of this).
5168
5169 2002-05-10  David S. Miller  <davem@redhat.com>
5170
5171         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
5172         (struct rtx_def): Update unchanging flag comment.
5173         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
5174         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
5175         to be handled to INSN too.
5176         (dbr_schedule): Likewise.
5177         * resource.c (next_insn_no_annul): Likewise.
5178
5179         * cse.c (rtx_cost): Remove multiplication by power of 2 special
5180         casing.
5181
5182 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5183
5184         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
5185         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
5186         (possibly) work around broken /bin/sh.
5187
5188 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5189
5190         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
5191         . as N64/N32 libgcc_s.so subdirs.
5192
5193 2002-05-10  David S. Miller  <davem@redhat.com>
5194
5195         * config/sparc/sparc.md: Use define_constants for unspec numbers.
5196
5197         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
5198         more accurately.
5199         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
5200         comment.
5201         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
5202         * doc/rtl.texi: Document these macros more accurately.
5203         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
5204         JUMP_INSNs and CALL_INSNs.
5205         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
5206         or INSN_FROM_TARGET_P if the code is appropriate.
5207
5208 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5209
5210         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
5211         before using SYMBOL_REF_FLAG (addr).
5212
5213         * config/avr/avr-protos.h (avr_io_address_p): Declare.
5214         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
5215         Make non-static.  Update all callers.
5216         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
5217         New insns to clear/set/test a single bit in I/O address space.
5218
5219 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5220
5221         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
5222
5223 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5224
5225         * Makefile.in: Update.
5226         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
5227         builtin_define_std): New.
5228         (c_common_init): Register CPP builtins callback.
5229         * c-common.h (flag_iso, flag_undef): New.
5230         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
5231         * c-lex.c: Don't include target.h.
5232         (cb_register_builtins): Move to c-common.c.
5233         (init_c_lex): Don't register hook here.
5234         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
5235         (cpp_define, cpp_assert): Remove.
5236         * gcc.c (cc1_options): Pass -undef to front end.
5237         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
5238         (TARGET_INITIALIZER): Update.
5239         * target.h (struct cpp_reader): Don't predeclare.
5240         (struct gcc_target): Remove cpp builtin hook.
5241         * tree.c (default_register_cpp_builtins): Remove.
5242 doc:
5243         * tm.texi: Update.
5244
5245 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5246
5247         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
5248
5249 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5250
5251         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
5252         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
5253
5254 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
5255
5256         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
5257         * config/sparc/libgcc-sparc-glibc.ver: New file.
5258         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
5259         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
5260
5261 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
5262
5263         PR target/6429
5264         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
5265         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
5266         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
5267         base multilibs.
5268         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
5269         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
5270         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
5271         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
5272
5273 2002-05-09  Richard Henderson  <rth@redhat.com>
5274
5275         * config/ia64/ia64.md: Use define_constants for unspec numbers.
5276         * config/ia64/ia64.c: Likewise.
5277
5278 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
5279
5280         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
5281         (save_restore_insns): Likewise.
5282         (mips_expand_prologue, mips_expand_epilogue): Update callers.
5283         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
5284
5285 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)
5286
5287         * athlon.md, k6.md, pentium.md, ppro.md): New files.
5288         * i386.md: Move scheduling information into new files.
5289
5290         * i386.md (type attribute): Add "rotate" for rotate insns.
5291         (rotate insns): Set type to "rotate".
5292         (various attributes and function units): Treat rotate like shift.
5293         (pent_pair attribute): Only rotates by one bit position are
5294         pairable.
5295         (sbb insns): Explicitly set pent_pair attribute on a couple
5296         that were missing it.
5297
5298 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
5299
5300         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
5301         make sure that buffer starts on odd word address.
5302         (sh_va_arg): Skip odd fp registers when reading a double precision
5303         value.
5304
5305 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5306
5307         * tree.h (preserve_data, object_permanent_p, type_precision):
5308         Remove.
5309
5310 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5311
5312         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
5313         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
5314 doc:
5315         * cpp.texi: Update for removal of obsolete features.
5316
5317 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
5318                           Jeffrey A Law  (law@redhat.com)
5319
5320         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
5321         the DFA interface for Pentium processors.
5322         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
5323         (attr_pent_pair, ix86_pent_find_pair): Remove.
5324         (ix86_sched_reorder_pentium): Remove.
5325         (ix86_sched_reorder): Remove reordering for Pentium.
5326         * i386.md (Pentium scheduling): Rewrite using DFA description.
5327
5328 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
5329
5330         * cfganal.c (can_fallthru): Fix fast path.
5331         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
5332         with edges to the next block.
5333
5334 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
5335                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
5336
5337         * final.c (end_final): Use C trees to output data structures for profiling.
5338
5339         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
5340         (profile.o): New dependency profile.h
5341         (final.o): New dependency profile.h
5342         * profile.h: New file. New global structure profile_info.
5343         * final.h (count_edges_instrumented_now): Declare.
5344         (current_function_cfg_checksum): Declare.
5345         (function_list): New structure.
5346         (functions_head, functions_tail): New static variables.
5347         (end_final): Emits more data, removed some -ax stuff.
5348         (final): Stores function names and chcksums.
5349         * gcov-io.h (__write_gcov_string): New function.
5350         (__read_gcov_string): New function.
5351         * gcov.c (read_profile): New function.
5352         (create_program_flow_graph): Uses read_profile instead of reading
5353         da_file.
5354         (read_files): Removed da_file checking, it's done by read_profile now.
5355         * libgcc2.c (bb_function_info): New structure.
5356         (bb): New field in structure, removed some -ax stuff.
5357         (__bb_exit_func): Changed structure of da_file.
5358         * profile.c (count_edges_instrumented_now): New global variable.
5359         (current_function_cfg_checksum): New global variable.
5360         (max_counter_in_program): New global variable.
5361         (get_exec_counts): New function.
5362         (compute_checksum): New function.
5363         (instrument_edges): Sets count_edges_instrumented_now.
5364         (compute_branch_probabilities): Uses get_exec_counts instead of
5365         reading da_file.
5366         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
5367         (init_branch_prob): Removed da_file checking, done in get_exec_counts
5368         now.
5369         (end_branch_prob): Removed da_file checking, done in get_exec_counts
5370         now.
5371         * gcov.texi: Updated information about gcov file format.
5372
5373 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
5374
5375         * sbitmap.c: Fix formatting.
5376         * scan.c: Likewise.
5377         * scan-decls.c: Likewise.
5378         * sched-deps.c: Likewise.
5379         * sched-ebb.c: Likewise.
5380         * sched-rgn.c: Likewise.
5381         * sched-vis.c: Likewise.
5382         * sdbout.c: Likewise.
5383         * sibcall.c: Likewise.
5384         * simplify-rtx.c: Likewise.
5385         * ssa.c: Likewise.
5386         * ssa-ccp.c: Likewise.
5387         * ssa-dce.c: Likewise.
5388         * stmt.c: Likewise.
5389         * stor-layout.c: Likewise.
5390         * stringpool.c: Likewise.
5391
5392 2002-05-09  David S. Miller  <davem@redhat.com>
5393
5394         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
5395
5396 2002-05-07  David S. Miller  <davem@redhat.com>
5397
5398         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
5399         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
5400         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
5401         library implementation clobbers the output before the inputs
5402         are fully consumed, use stack temporary for the output.
5403
5404 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
5405
5406         * config/netbsd.h (CPP_SPEC): Remove.
5407         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
5408         * config/i386/netbsd.h (CPP_SPEC): Define.
5409         * config/ns32k/netbsd.h (CPP_SPEC): Define.
5410         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
5411         * config/sparc/netbsd.h (CPP_SPEC): Define.
5412         * config/vax/netbsd.h (CPP_SPEC): Define.
5413
5414 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
5415
5416         * read-rtl.c: Fix formatting.
5417         * real.c: Likewise.
5418         * recog.c: Likewise.
5419         * regclass.c: Likewise.
5420         * regmove.c: Likewise.
5421         * reg-stack.c: Likewise.
5422         * reload1.c: Likewise.
5423         * reload.c: Likewise.
5424         * resource.c: Likewise.
5425         * rtlanal.c: Likewise.
5426         * rtl.c: Likewise.
5427         * rtl-error.c: Likewise.
5428
5429 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5430
5431         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
5432         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
5433
5434 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
5435
5436         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
5437         use __SSE2__ macro instead.
5438         * config/i386/xmmintrin.h: Likewise.
5439
5440 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
5441
5442         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
5443         and use it in all invocations of these macros.  Clean up comments.
5444         * rtl.c (rtl_check_failed_flag): Add an argument for the name
5445         of the flag access macro whose check failed.
5446         * doc/rtl.texi (Flags): Document additional flag uses.
5447
5448 2002-05-08  Robert Spier <rspier@pobox.com>
5449             Neil Booth  <neil@daikokuya.demon.co.uk>
5450
5451         PR preprocessor/6521
5452         * cppfiles.c (handle_missing_header): Don't do anything
5453         different for <> includes.
5454 doc:
5455         * cppopts.texi: Update documentation for -MG.
5456
5457 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
5458
5459         * cpplex.c (cpp_interpret_charconst): Truncate as well as
5460         sign-extend.
5461 doc:
5462         * cpp.texi: Clarify multichar charconst valuation.
5463
5464 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
5465
5466         * doc/invoke.texi: Document -mwindiss option.
5467
5468 2002-05-08  Jason Merrill  <jason@redhat.com>
5469
5470         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
5471
5472         * dwarf2out.c (gen_type_die): Abort on broken recursion.
5473
5474         PR c++/6381
5475         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
5476         REAL_CST.
5477
5478 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
5479
5480         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
5481         little-endian multilibs to override arm/thumb multilibs.
5482         Do not build hardware floating point multilibs, nor apcs-26
5483         multilibs for the Thumb.
5484
5485 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
5486
5487         PR c/6569.
5488         * varasm.c (mark_weak): New function.
5489         (merge_weak): Use it.  Do not call declare_weak.
5490         (declare_weak): Use merge_weak.
5491
5492 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
5493
5494         * cse.c (dead_libcall_p): Update counts.
5495         (delete_trivially_dead_insns): Update call of dead_libcall_p.
5496
5497 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
5498
5499         * cfglayout.c (function_tail_eff_head): Rename to ...
5500         (function_footer): ... this one.
5501         (unlink_insn_chain): New functions.
5502         (label_for_bb): Only call block_label and emit debug message.
5503         (record_effective_endpoints): Actually unlink the headers and footers.
5504         (fixup_reorder_cahin): Re-insert the unlinked sequences.
5505         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
5506         * cfglayout.h (struct reorder_block_def): New fields footer/header;
5507         remove eff_head/eff_end.
5508         * rtl.h (set_first_insn): Declare.
5509         * emit-rtl.c (set_first_insn): New function.
5510
5511         * cfglayout.c (fixup_reorder_chain): Dump duplicated
5512         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
5513         cfg_layout_duplicate_bb): New global function.
5514         (duplicate_insn_chain): New static function.
5515         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
5516         cfg_layout_duplicate_bb): Declare.
5517         (struct reorder_block_def): Add "original" field.
5518         * emit-rtl.c (emit_copy_of_insn_after): New function.
5519         * rtl.h (emit_copy_of_insn_after): Declare.
5520
5521         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
5522         (fixup_reorder_chain): properly handle edges to exit block.
5523
5524 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5525                                Jan Hubicka  <jh@suse.cz>
5526
5527         * basic-block.h (note_prediction_to_br_prob): declare.
5528         * c-semantics.c: Inlucde predit.h
5529         (expand_stmt): predict GOTO_STMT as not taken.
5530         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
5531         (cleanup_cfg): Do not free tail_recursion_list.
5532         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
5533         (flow_delete_block): Kill predictions past end of basic block.
5534         * output.h (delete_unreachable_blocks): Declare.
5535         * predict.c (predicted_by_p, process_note_predictions,
5536         process_note_prediction, last_block_p): New function.
5537         (estimate_probability): Bypass loop on PRED_CONTINUE;
5538         do not handle noreturn heuristics; kill PRED_RETURN; add
5539         PRED_EARLY_RETURN.
5540         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
5541         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
5542         * predict.h (IS_TAKEN): New constant.
5543         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
5544         * rtl.c (NOTE_INSN_PREDICTION): New.
5545         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
5546         New macro.
5547         (insn_note): add NOTE_INSN_PREDICTION.
5548         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
5549         CFG; free tail_recursion_label_list.
5550         * stmt.c: Include predict.h;
5551         (return_prediction): New.
5552         (expand_value_return): Use it.
5553         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
5554
5555 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
5556
5557         * config/mips/mips.md: Name the unspecs with define_constant.
5558         (*HILO_delay): Rename to 'hilo_delay' (no star).
5559         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
5560         (reload_outdi, reload_outsi): Likewise.
5561
5562 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
5563
5564         * toplev.c: Fix formatting.
5565
5566 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
5567
5568         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
5569         * configure.in (ac_rtlflag_checking): New.
5570         * doc/install.texi (--enable-checking): Document RTL flag checking.
5571
5572 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
5573
5574         * c-common.c (c_common_init): Set options->unsigned_wchar.
5575         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
5576         group target dependencies.
5577         (init_builtins, cpp_handle_option): Update.
5578         * cpplex.c (cpp_interpret_charconst): Update.
5579         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
5580         signed_char to unsigned_char, group target dependencies.
5581         * defaults.h (WCHAR_UNSIGNED): Remove.
5582         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
5583 config:
5584         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
5585         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
5586         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
5587         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
5588         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
5589 doc:
5590         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
5591
5592 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
5593
5594         * fixinc/inclhack.def (windiss_math1): New fix.
5595         (windiss_math2): Likewise.
5596         (windiss_valist): Likewise.
5597         * fixinc/fixincl.x: Regenerated.
5598
5599 2002-05-07  Andreas Jaeger  <aj@suse.de>
5600
5601         * genautomata.c (output_internal_min_issue_delay_func): Add
5602         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
5603         (output_internal_trans_func): Likewise.
5604
5605 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
5606
5607         * pa.c (hppa_profile_hook): Use force_reg to get the address
5608         of the profile hook into an appropriate pseudo register.
5609
5610 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
5611
5612         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
5613         (LINK_START_SPEC): Handle it.
5614         (LINK_OS_SPEC): Likewise.
5615         (CPP_SPEC): Likewise.
5616         (STARTFILE_SPEC): Likewise.
5617         (LIB_SPEC): Likewise.
5618         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
5619         all platforms.
5620         (CRTSAVRES_DEFAULT_SPEC): New macro.
5621         (LIB_WINDISS_SPEC): New macro.
5622         (CPP_OS_WINDISS_SPEC): Likewise.
5623         (STARTFILE_WINDISS_SPEC): Likewise.
5624         (ENDFILE_WINDISS_SPEC): Likewise.
5625         (LINK_START_WINDISS_SPEC): Likewise.
5626         (LINK_OS_WINDISS_SPEC): Likewise.
5627         * config/rs6000/windiss.h: New file.
5628
5629 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
5630
5631         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
5632
5633 2002-05-06  David S. Miller  <davem@redhat.com>
5634
5635         * config/sparc/sparc.md (shift insns): Do not mask off
5636         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
5637         take care of it.
5638
5639 2002-05-06  Richard Henderson  <rth@redhat.com>
5640
5641         PR c++/6212
5642         * expr.c (highest_pow2_factor_for_type): New.
5643         (expand_assignment): Use it.
5644
5645 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
5646
5647         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
5648         unspec_volatile.
5649         ("altivec_mfvscr"): Same.
5650
5651 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
5652
5653         * rtl.h (struct rtx_def): Update comments.
5654         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
5655         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
5656         RTL_FLAG_CHECK macros with list of expected RTL codes.
5657         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
5658         (rtl_check_failed_flag): New.
5659         * reload1.c (reload): Use REG macro before changing rtx to MEM.
5660         (reload_cse_noop_set_p): Check rtx code before using access macro.
5661         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
5662         before using access macro.
5663
5664 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
5665
5666         * doc/rtl.texi (Flags): Update to reflect current usage.
5667
5668 2002-05-06  Roger Sayle  <roger@eyesopen.com>
5669
5670         PR opt/3995
5671         * fold-const.c (sign_bit_p): New function.
5672         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
5673         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
5674         Reapply fold when converting (A & C) == C into (A & C) != 0.
5675         (fold_binary_op_with_conditional_arg): Fix typo in comment.
5676
5677 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
5678
5679         * c-common.c (warn_multichar): New.
5680         (c_common_init): Set CPP's warn_multichar.
5681         * c-common.h (warn_multichar): New.
5682         * c-decl.c (warn_multichar): Remove.
5683         * c-lex.c (lex_charconst): Update.
5684         * c-tree.h (warn_multichar): Remove.
5685         * cppexp.c (eval_token): Sign-extend charconst value.
5686         * cppinit.c (cpp_create_reader): Set warn_multichar.
5687         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
5688         each character.  Update prototype.  Sign-extend the result.
5689         * cpplib.h: Fix conditions.
5690         (struct cpp_options): Add new warning flag.
5691         (cpp_interpret_charconst): Update prototype.
5692 doc:
5693         * cpp.texi: Update documentation.
5694
5695 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
5696
5697         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
5698         Fix typo in usage of allof instead of unit.
5699
5700 2002-05-06  Richard Henderson  <rth@redhat.com>
5701
5702         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
5703         and any jump or call for IN.
5704
5705 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
5706
5707         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
5708         -msse2.
5709         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
5710
5711 2002-05-06  Roger Sayle  <roger@eyesopen.com>
5712
5713         * fold-const.c (lshift-double): Cast the high word to an unsigned
5714         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
5715         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
5716         avoid compiler warning.  (fold): Remove redundant code from
5717         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
5718
5719 2002-05-06  Jeff Law  <law@redhat.com>
5720
5721         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
5722         * pa.c (pa_adjust_cost): Remove all true dependency cost
5723         adjustments.  Also remove support for non-DFA scheduling.
5724         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
5725         to adjust true dependency costs.  Update various comments.
5726         (7100lc, 7200, 7300 scheduling): Simplify by combining the
5727         FP ALU & MPY units into a single unit.
5728
5729 2002-05-06  Catherine Moore  <clm@redhat.com>
5730
5731         * config/v850/v850.c (compute_register_save_size): Make sure
5732         to count all of the registers that will be saved.
5733
5734 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
5735
5736         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
5737
5738 2002-05-06  David S. Miller  <davem@redhat.com>
5739
5740         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
5741         allow result to overlap input operands in memory.
5742
5743 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
5744
5745 doc:
5746         * cpp.texi: Update multichar charconst docs.
5747
5748 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
5749
5750         * cpplex.c (cpp_interpret_charconst): Sign-extend each
5751         character.  Don't ignore excess characters.  Treat
5752         multicharacter character constants as signed.
5753         (cpp_parse_escape): Clarify diagnostic.
5754
5755 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
5756
5757         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
5758         use add instead of shift.
5759         (ashldi3_sp64): Likewise.
5760         (ashlsi3_const1, ashldi3_const1): Remove.
5761         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
5762         * config/sparc/sparc.c (const1_operand): New.
5763
5764 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
5765
5766         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
5767
5768 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
5769
5770         PR target/6561
5771         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
5772
5773 2002-05-05  Richard Henderson  <rth@redhat.com>
5774
5775         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
5776         memory latency adjustments.
5777         (alpha_variable_issue): Remove.
5778         (alpha_use_dfa_pipeline_interface): New.
5779         (alpha_multipass_dfa_lookahead): New.
5780         * config/alpha/alpha.md: Remove define_function_unit scheduling;
5781         include new dfa scheduling.
5782         (attr type): Add none.
5783         (blockage): Use it.
5784         * config/alpha/ev4.md: New.
5785         * config/alpha/ev5.md: New.
5786         * config/alpha/ev6.md: New.
5787
5788 2002-05-05  David S. Miller  <davem@redhat.com>
5789
5790         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
5791
5792 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
5793
5794         * cse.c: Fix formatting.
5795         * emit-rtl.c: Likewise.
5796
5797 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
5798
5799         * genautomata.c (initiate_states): Add additional guard to
5800         initialize `units_array'.
5801
5802 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
5803
5804         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
5805         process_unit_to_form_the_same_automaton_unit_lists,
5806         form_the_same_automaton_unit_lists
5807         check_unit_distributions_to_automata): New prototypes and
5808         functions.
5809         (check_automata): Rename it into `check_automata_insn_issues'.
5810         (unit_decl): New fields `the_same_automaton_unit' and
5811         `the_same_automaton_message_reported_p'.
5812         (unit_decl_t): New typedef.
5813         (the_same_automaton_lists): New gloval variable.
5814         (unit_regexp, unit_set_el, units_array, units_cmp,
5815         output_get_cpu_unit_code_func): Use the typedef.
5816         (evaluate_max_reserv_cycles): Increment
5817         `description->max_insn_reserv_cycles'.
5818         (initiate_states): Don't increment `max_cycles_num'.
5819         (transform_insn_regexps): Move code around transformation of
5820         regexps from `generate'.
5821         (generate): Remove call of `transform_insn_regexps'.
5822         (expand_automata): Call `transform_insn_regexps' and
5823         `check_unit_distributions_to_automata'.  Check errors before
5824         `generate'.
5825
5826         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
5827         automaton `ultrasparc3_1'.
5828
5829 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
5830
5831         * c-common.c (c_common_init): Set up CPP arithmetic.
5832         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
5833         something reasonable for the host.
5834         (sanity_checks): Add checks.
5835         (cpp_read_main_file): Call sanity_checks() from here...
5836         (cpp_post_options): ... not here.
5837         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
5838         * cpplib.h (struct cpp_options): New member int_precision.
5839
5840 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5841
5842         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
5843
5844 2002-05-04  David S. Miller  <davem@redhat.com>
5845
5846         * config/sparc/linux.h, config/sparc/linux64.h
5847         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
5848
5849         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
5850         more RTX codes.
5851         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
5852
5853         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
5854         of SETs.
5855
5856 2002-05-05  Tim Josling  <tej@melbpc.org.au>
5857
5858         * treelang; New directory for new sample language treelang.
5859
5860 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
5861
5862         * Makefile.in (c-lex.o): Update.
5863         * c-lex.c: Include target.h.
5864         (cb_register_builtins): New.
5865         (init_c_lex): Set builtins callback.
5866         * c-lex.h (cpp_define, cpp_assert): New prototypes.
5867         * cppinit.c (init_builtins): Use callback, including for
5868         GXX_WEAK.
5869         * cpplib.h (struct cpp_callbacks): New member.
5870         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
5871         (TARGET_INITIALIZER): Update.
5872         * target.h (struct gcc_target): New hook.
5873         * tree.c (default_register_cpp_builtins): New.
5874         * tree.h (default_register_cpp_builtins): New.
5875 doc:
5876         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
5877
5878 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
5879
5880         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
5881         (cpp_post_options): Move sanity checks to...
5882         (sanity_checks): New.
5883         * cpplex.c (maybe_read_ucs): Fix prototype.
5884         (parse_string, cpp_parse_escape): Cast for %c format specifier.
5885         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
5886         if necessary.
5887
5888 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
5889
5890         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
5891         builtins.  Use V2DI patterns instead of TI for logical operations.
5892         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
5893         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
5894         (ix86_expand_builtins): Change the pattern used for movntdq.
5895         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
5896         sse2_nandv2di3): New patterns.
5897         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
5898         on operands.
5899         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
5900         (cvtdq2pd): Correct mode on operand 1.
5901         (sse2_umulsidi3): Describe without unspec.
5902         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
5903         machine modes.
5904         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
5905         (ashlv2di3): Likewise, from sse2_ashlv2di3.
5906         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
5907         ashlv4si3, ashlv2di3): Use SImode for shift count.
5908         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
5909         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
5910         New patterns.
5911         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
5912         New typedefs.
5913         (__m128i, __m128d): New macros.
5914         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
5915         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
5916         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
5917         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
5918         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
5919         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
5920         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
5921         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
5922         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
5923         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
5924         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
5925         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
5926         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
5927         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
5928         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
5929         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
5930         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
5931         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
5932         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
5933         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
5934         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
5935         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
5936         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
5937         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
5938         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
5939         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
5940         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
5941         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
5942         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
5943         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
5944         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
5945         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
5946         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
5947         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
5948         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
5949         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
5950         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
5951         functions.
5952         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
5953         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
5954
5955 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
5956
5957         * dwarf2out.c: Fix formatting.
5958         * varasm.c: Likewise.
5959
5960 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
5961
5962         PR c/6543
5963         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
5964         clobber and use result as temporary value.
5965
5966 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
5967
5968         * expr.c (force_operand): Use expand_simple_* to handle more
5969         cases.
5970
5971 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
5972
5973         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
5974         and sign-extension.
5975         (lex_charconst): Update for change in prototype of
5976         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
5977         appropriately.
5978         * cpphash.h (BITS_PER_CPPCHAR_T): New.
5979         * cppinit.c (cpp_create_reader): Initialize them for no
5980         change in semantics.
5981         (cpp_post_options): Add sanity checks.
5982         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
5983         and truncation issues.  Calculate in type cppchar_t.
5984         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
5985         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
5986         run-time dependent precision correctly.  Return whether the
5987         result is signed or not.
5988         * cpplib.c (dequote_string): Use cppchar_t; update.
5989         * cpplib.h (cppchar_signed_t): New.
5990         struct cpp_options): New precision members.
5991         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
5992         * cppexp.c (eval_token): Update.
5993
5994 2002-05-03  David S. Miller  <davem@redhat.com>
5995
5996         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
5997         * config/sparc/sparc.c (sparc_rtx_costs): New function
5998         implementing RTX_COSTS and CONST_COSTS.
5999         * config/sparc/sparc.h (CONST_COSTS): Delete.
6000         (RTX_COSTS_CASES): Define.
6001         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
6002         the work.
6003
6004         * config/sparc/sparc.md (DFA schedulers): Split out...
6005         * config/sparc/cypress.md, config/sparc/hypersparc.md,
6006         config/sparc/sparclet.md, config/sparc/supersparc.md,
6007         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
6008
6009         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
6010         checks on it, always defined for Sparc.
6011
6012         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
6013         Tweak, and add more detailed comments.
6014
6015 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
6016
6017         * Re-apply patch accidentally reverted with
6018         DFA scheduler merge: remove all rules and variables to slurp
6019         source files out of libiberty and rebuild them with HOST_CC.
6020         ($(HOST_PREFIX_1)varray.o): New rule.
6021         (genattrtab rule): Word wrap.
6022
6023 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
6024
6025         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
6026         (CPP_SUBTARGET_SPEC): Define.
6027         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
6028         cpp_subtarget specs.
6029         (CPP_SPEC): Redefine to include %(cpp_subtarget).
6030
6031 2002-05-03  David S. Miller  <davem@redhat.com>
6032
6033         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
6034         * target.h (struct gcc_target): Delete cycle_display member.
6035
6036         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
6037         (rtx_needs_barrier): Delete reference to cycle_display unspec.
6038         (ia64_sched_reorder2): Mention need for cycle display handling
6039         once such notes exist.
6040
6041 2002-05-03  Richard Henderson  <rth@redhat.com>
6042
6043         * real.c (etoasc): Strip most trailing zeros for clarity.
6044         * sched-vis.c: Include real.h.
6045         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
6046         * Makefile.in (sched-vis.o): Add real.h.
6047
6048 2002-05-03  David S. Miller  <davem@redhat.com>
6049
6050         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
6051         no longer needed.
6052
6053 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
6054
6055         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
6056         when we get an out of range literal.
6057         (altivec_expand_ternop_builtin): Same.
6058         (altivec_expand_unop_builtin): Same.
6059         (altivec_expand_builtin): Same, for dss.
6060         (altivec_expand_builtin): Use trees instead of rtl when
6061         determining literal argument validity.
6062
6063 2002-05-03  David S. Miller  <davem@redhat.com>
6064
6065         Delete cycle display scheduling hook.
6066         * config/ia64/ia64.c (ia64_cycle_display,
6067         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
6068         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
6069         and use emit_insn_before instead of ia64_emit_insn_before.
6070         * config/ia64/ia64.md (unspec usage): Delete cycle display.
6071         (cycle_display): Delete insn pattern.
6072         * config/sparc/sparc.md (unspec usage): Delete cycle display.
6073         (cycle_display): Delete insn pattern.
6074         * config/sparc/sparc.c (sparc_cycle_display,
6075         TARGET_SCHED_CYCLE_DISPLAY): Delete.
6076         * doc/md.texi (cycle_display): Don't mention.
6077         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
6078
6079 2002-05-03  Richard Henderson  <rth@redhat.com>
6080
6081         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
6082         * recog.h: Declare them.
6083
6084         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
6085         * config/sparc/sparc.md: Use store_data_bypass_p instead.
6086         * config/sparc/sparc-protos.h: Update.
6087
6088 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
6089
6090         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
6091         -D__arch64__.  Add -D_LP64.
6092         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
6093         from sparc.h.
6094         (CPP_ARCH64_SPEC): Likewise.
6095         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
6096         (NO_BUILTIN_SIZE_TYPE): Undef.
6097
6098 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
6099
6100         * genautomata.c (min_issue_delay_pass_states): Change return type
6101         in the prototype.
6102         (min_issue_delay_pass_states): Change the algorithm.
6103         (min_issue_delay): Set up min_insn_issue_delay for the state.
6104         (output_min_issue_delay_table): Interchange the nested loops and
6105         and initiate min_insn_issue_delay for states.
6106
6107 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
6108
6109         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
6110         jump is simplejump.
6111
6112 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
6113
6114         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
6115         sequence.
6116
6117 2002-05-03  Richard Henderson  <rth@redhat.com>
6118
6119         PR opt/6534
6120         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
6121         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
6122         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
6123         code before JUMP, not EARLIEST.
6124
6125 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
6126
6127         * c-format.c (check_format_info_main): Don't check for presence of
6128         parameter for * width until after operand number has been read,
6129         and only check for it if format parameters are available.
6130         Fixes PR c/6547.
6131
6132 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
6133
6134         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
6135         (LINK_SPEC): Undef before defining.
6136
6137 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
6138
6139         PR preprocessor/6489
6140         * tradcpp.c (fixup_newlines): New.
6141         (main, finclude): Use it.
6142
6143 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
6144
6145         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
6146         * config/mips/mips.c (mips_unique_section): Strip encoding from
6147         decl name.
6148
6149 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
6150
6151         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
6152         mode.
6153
6154 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6155
6156         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
6157         (Specific): Removed buildstats references.
6158         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
6159         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
6160         Accomodate Solaris versions beyond 8.
6161         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
6162         (Specific, *-*-solaris2.8): Removed, obsolete.
6163
6164 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
6165
6166         PR target/6542
6167         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
6168         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
6169         fill leaf_reg_remap with identity.
6170         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
6171
6172 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
6173
6174         * config/h8300/crti.asm: Remove trailing spaces.
6175         * config/h8300/h8300.c: Likewise.
6176         * config/h8300/lib1funcs.asm: Likewise.
6177
6178 2002-05-02  Jason Merrill  <jason@redhat.com>
6179
6180         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
6181         * c-decl.c (c_init_decl_processing): Use it.
6182         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
6183         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
6184         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
6185
6186 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
6187
6188         * regrename.c: Fix formatting.
6189         * tree.c: Likewise.
6190
6191 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
6192
6193         * i386.md (attribute memory): Handle compares properly.
6194
6195 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
6196
6197         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
6198         to none.
6199
6200 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
6201
6202         * function.c: Fix formatting.
6203
6204 2002-05-02  Jan Hubicka  <jh@suse.cz>
6205
6206         * haifa-sched.c (schedule_insn): Print table of instructions and
6207         reservations.
6208         (sched_block): Do not print ready list at verbosity level 1.
6209         * sched-vis.c (print_insn): Make global.
6210         * sched-ebb.c (ebb_print_insn): Rename from...
6211         (print_insn): ... this one.
6212         * sched-int.h (print_insn): Declare
6213
6214 2002-05-02  Richard Henderson  <rth@redhat.com>
6215
6216         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
6217         emitted by cycle_display.
6218
6219 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
6220
6221         * doc/install.texi (*-*-freebsd*): Update to latest status.
6222
6223 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
6224
6225         PR target/6540
6226         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
6227         * config/float-sparc.h: Assume 128-bit long double if
6228         __LONG_DOUBLE_128__ is defined.
6229
6230 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
6231
6232         * genattrtab.c (write_function_unit_info): Add a dummy element
6233         when num_units == 0.
6234
6235 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6236
6237         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
6238         TYPE_MODE (double_type_node) instead of DFmode.
6239
6240 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
6241
6242         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
6243         jumps post reload.
6244         * toplev.c (rest_of_compilation): Revert Richard's patch.
6245
6246 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6247
6248         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
6249
6250 2002-05-02  Catherine Moore  <clm@redhat.com>
6251
6252         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
6253
6254 2002-05-02  Kazu Hirata  <kazu@hxi.com>
6255
6256         * combine.c: Fix comment typos.
6257         * expr.c: Likewise.
6258         * genautomata.c: Likewise.
6259         * stmt.c: Likewise.
6260         * tree.h: Likewise.
6261
6262 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
6263
6264         * doc/install.texi: State GNAT version requirements.
6265
6266 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
6267
6268         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
6269         of the frame pointer or arg pointer register which strict register
6270         checking is not enabled.
6271
6272 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
6273
6274         * gcc.dg/altivec-8.c: New.
6275
6276         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
6277         PRE_INC and PRE_DEC for altivec modes.
6278
6279 2002-05-01  Bruce Korb  <bkorb@gnu.org>
6280
6281         * fixinc/check.tpl(set-writable): make sure the function exists first
6282         * fixinc/inclhack.def(alpha_assert): fix test_text
6283         * fixinc/tests/base/assert.h: add in missing result
6284
6285 2002-05-01  Jeff Law  <law@redhat.com>
6286
6287         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
6288         'T' constraint.
6289
6290 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
6291
6292         * dbxout.c (dbxout_type): Emit size information for range types,
6293         as well, but only when using GDB extensions.
6294
6295 2002-05-01  Richard Henderson  <rth@redhat.com>
6296
6297         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
6298         target-independent gnu binutils date test.
6299
6300 2002-05-01  Richard Henderson  <rth@redhat.com>
6301
6302         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
6303         info before expunging the block.
6304
6305 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
6306
6307         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
6308         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
6309         -M -or -MM is in effect.
6310
6311 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
6312
6313         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
6314         A29k configurations.
6315         * doc/install.texi: Update to match.
6316
6317 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6318
6319         PR bootstrap/6514
6320         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
6321         for duplicates. Always loop over whole list.
6322
6323 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6324
6325         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
6326
6327 2002-05-01      Joel Sherrill <joel@OARcorp.com>
6328
6329         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
6330         support routines.
6331
6332 2002-05-01      Joel Sherrill <joel@OARcorp.com>
6333
6334         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
6335
6336 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
6337
6338         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
6339         (nabs_nopower): Same.
6340         (floatdisf2): New pattern.
6341         (absdi2): Convert to define_insn_and_split.
6342         (nabsdi2): Same.
6343         (trunctfsf2): Same.
6344         (floatditf2): Same.
6345         (floatsitf2): Same.
6346         (fix_trunctfdi2): Same.
6347         (fix_trunctfsi2): Same.
6348
6349 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
6350
6351         * doc/install.texi: Update Texinfo version requirement
6352         documentation.
6353
6354 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
6355
6356         PR target/6512, PR target/5628
6357         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
6358         when memory is not aligned.
6359         (movdf_insn_v9only_vis): Likewise.
6360         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
6361         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
6362         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
6363
6364 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
6365
6366         * gcc.dg/altivec-7.c: New.
6367
6368         * config/rs6000/altivec.h: Cleanup.
6369
6370 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
6371
6372         * doc/invoke.texi (Option Summary): Add -mvrsave=.
6373         (RS/6000 and PowerPC Options): Document -mvrsave=.
6374
6375         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
6376         (rs6000_altivec_vrsave_string): Same.
6377         (rs6000_override_options): Call rs6000_parse_vrsave_option.
6378         (rs6000_parse_vrsave_option): New.
6379         (rs6000_stack_info): Only generate vrsave instructions when
6380         TARGET_ALTIVEC_VRSAVE.
6381
6382         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
6383         (rs6000_altivec_vrsave_string): Define extern.
6384         (rs6000_altivec_vrsave): Same.
6385         (TARGET_ALTIVEC_VRSAVE): New.
6386
6387 2002-04-30  Richard Henderson  <rth@redhat.com>
6388
6389         PR opt/6516
6390         * toplev.c (rest_of_compilation): Don't run cross-jump before
6391         bb-reorder.
6392
6393 2002-04-30  Tom Rix  <trix@redhat.com>
6394
6395         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
6396         check which_alternative.
6397
6398 2002-04-30  Kazu Hirata  <kazu@hxi.com>
6399
6400         * cpplex.c: Fix comment formatting.
6401         * function.c: Likewise.
6402         * integrate.c: Likewise.
6403         * regrename.c: Likewise.
6404         * sibcall.c: Likewise.
6405         * simplify-rtx.c: Likewise.
6406         * tree-inline.c: Likewise.
6407
6408 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6409
6410         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
6411         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
6412         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
6413         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
6414         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
6415         * pa/x-ada: New file.  Define ADA_CFLAGS.
6416
6417 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
6418
6419         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
6420         from MMIX_LAST_REGISTER_FILE_REGNUM.
6421         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
6422         (struct machine_function): New member highest_saved_stack_register
6423         previously static variable in mmix.c.
6424         (MACHINE_DEPENDENT_REORG): Define.
6425         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
6426         (MMIX_OUTPUT_REGNO): New.
6427         (mmix_target_asm_function_prologue): Move calculation of last used
6428         saved-stack-register into...
6429         (mmix_machine_dependent_reorg): New function.  Update to also handle
6430         !TARGET_ABI_GNU.
6431         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
6432         register names, simplify somewhat by new variable regno.
6433         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
6434         register.
6435         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
6436         emitting register names.
6437         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
6438         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
6439         Remove fixed FIXME.
6440         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
6441         Declare.
6442
6443         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
6444
6445 2002-04-30  Richard Henderson  <rth@redhat.com>
6446
6447         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
6448         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
6449         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
6450         emit_tfmode_cvt): New.
6451         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
6452         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
6453         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
6454         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
6455         * config/sparc/sparc-protos.h: Update.
6456
6457 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
6458
6459         * install.texi (Final install): Add to the list of info to include
6460         in a report of a successful bootstrap, and add link to 3.1 list.
6461
6462 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
6463
6464         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
6465         (mode): Add vector modes
6466         (i387): Kill attribute.
6467         (unit): New attribute.
6468         (length_immediate): Grok new types.
6469         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
6470         (modrm): Use "unit".
6471         (memory): Handle MMX/SSE properly.
6472         (scheduling descriptions): Kill uses of fop1.
6473         (sse, mmx, fp patterns): Set type and mode properly.
6474
6475 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)
6476
6477         * pa.c (override_options): Default to PA8000 scheduling.
6478         * doc/invoke.texi (HP-PA options): Mention newly added 7300
6479         scheduling parameter.
6480
6481         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
6482         handling of double precision multiplies.
6483
6484         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
6485         fpdiv and fpsqrt instructions.
6486         (7200 & 7300 scheduling): Fix typo in handling of
6487         store-load and store-store penalties.
6488
6489 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6490
6491         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
6492         mips.  Add two missing commas.
6493
6494 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
6495
6496         * doc/contrib.texi (Contributors): Update Paolo Carlini's
6497         and Benjamin Kosnik's entries.
6498
6499 2002-04-29  David S. Miller  <davem@redhat.com>
6500
6501         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
6502         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
6503         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
6504         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
6505
6506 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6507
6508         * combine.c (find_split_point): Use gen_int_mode.
6509
6510 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
6511
6512         Merging code from dfa-branch:
6513
6514         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
6515
6516         * genautomata.c (output_reserv_sets): Fix typo.
6517
6518         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
6519
6520         * genautomata.c (output_reserv_sets): Remove
6521         next_cycle_output_flag.
6522
6523         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
6524
6525         * sched-rgn.c (init_ready_list): Make the DFA code handle
6526         USE/CLOBBER insns in the same way as the traditional
6527         scheduler.
6528         (new_ready): Similarly..
6529
6530         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
6531
6532         * haifa-sched.c (schedule_block): Change the DFA state only after
6533         issuing insn.
6534
6535         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
6536
6537         * pa.c (hppa_use_dfa_pipeline_interface): New function.
6538         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
6539         (override_options): Add PA7300 scheduling support.
6540         (pa_adjust_cost): Update various comments.  Properly
6541         handle anti and output dependencies when using the
6542         DFA scheduler.
6543         (pa_issue_rate): Add PA7300 scheduling support.
6544         (pa_can_combine_p): Call extract_insn before calling
6545         constrain_operands (taken from mainline tree).
6546         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
6547         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
6548         descriptions using DFA descriptions.  Add PA7300
6549         scheduling support.
6550
6551         2002-03-30  David S. Miller  <davem@redhat.com>
6552
6553         Add UltraSPARC-III DFA scheduling support.
6554         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
6555         Update FP conditional move on register insn patterns to use it, as
6556         appropriate.
6557         (define_attr cpu): Add ultrasparc3.
6558         (define_attr us3load_type): New, update integer load patterns to
6559         set it, as appropriate.
6560         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
6561         (rest): Add UltraSPARC3 scheduling description.
6562         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
6563         (PROCESSOR_ULTRASPARC3): New.
6564         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
6565         ({ASM,CPP}_CPU_SPEC): Likewise.
6566         (REGISTER_MOVE_COST): Likewise.
6567         (RTX_COSTS): Likewise.
6568         * config/sparc/sparc.c (sparc_override_options,
6569         sparc_initialize_trampoline, sparc64_initialize_trampoline,
6570         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
6571         sparc_issue_rate): Likewise.
6572         * config/sparc/sol2.h: Likewise.
6573         * config/sparc/sol2-sld-64.h: Likewise.
6574         * config/sparc/linux64.h: Likewise.
6575
6576         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
6577
6578         * doc/md.texi: Add comments about usage the latency time for the
6579         different dependencies and about case when two or more conditions
6580         in different define_insn_reservations returns TRUE for an insn.
6581
6582         * doc/md.texi: Add reference for automaton based pipeline
6583         description.
6584
6585         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
6586
6587         * doc/passes.texi: Add missed information about genattrtab.
6588
6589         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
6590
6591         * genautomata.c (output_automata_list_transition_code): Check
6592         automata_list on NULL.
6593
6594         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
6595
6596         * genautomata.c (output_insn_code_cases,
6597         output_automata_list_min_issue_delay_code,
6598         output_automata_list_transition_code,
6599         output_automata_list_state_alts_code): Comment the functions.
6600
6601         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
6602
6603         * genautomata.c (automata_list_el_t): New typedef.
6604         (get_free_automata_list_el,free_automata_list_el,
6605         free_automata_list, automata_list_hash, automata_list_eq_p,
6606         initiate_automata_lists, automata_list_start, automata_list_add,
6607         automata_list_finish, finish_automata_lists,
6608         output_insn_code_cases, output_automata_list_min_issue_delay_code,
6609         output_automata_list_transition_code,
6610         output_automata_list_state_alts_code, add_automaton_state,
6611         form_important_insn_automata_lists): New functions and prototypes.
6612         (insn_reserv_decl): Add members important_automata_list and
6613         processed_p.
6614         (ainsn): Add members important_p.
6615         (automata_list_el): New structure.
6616         (first_free_automata_list_el, current_automata_list,
6617         automata_list_table): New global variables.
6618         (create_ainsns): Initiate member important_p.
6619         (output_internal_min_issue_delay_func): Generate the switch and
6620         call output_insn_code_cases.
6621         (output_internal_trans_func, output_internal_state_alts_func):
6622         Ditto.
6623         (generate): Call initiate_automata_lists.
6624         (automaton_states): New global variable.
6625         (expand_automata): Call form_important_insn_automata_lists.
6626         (write_automata): Call finish_automata_lists.
6627
6628         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
6629
6630         * genautomata.c (add_excls, add_presence_absence): Check that
6631         cpu units in the sets belong the same automaton.
6632
6633         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
6634         about that cpu units in the sets belong the same automaton.
6635
6636         * doc/md.texi: Ditto.
6637
6638         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
6639                     Nitin Gupta  <niting@noida.hcltech.com>
6640
6641         * config/sh/sh.c (sh_use_dfa_interface): New function.
6642
6643         (sh_issue_rate): New Function.
6644         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
6645         TARGET_SCHED_ISSUE_RATE: define.
6646
6647         * config/sh/sh.md: Add DFA based pipeline description for SH4.
6648
6649         (define_attr insn_class): New attribute used for DFA
6650          scheduling.
6651         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
6652         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
6653          cmpeqdi_t): Likewise.
6654
6655         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
6656          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
6657          ex_group.
6658         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
6659
6660         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
6661
6662         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
6663         break.
6664
6665         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
6666
6667         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
6668         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
6669         necessary.
6670         (output_dfa_start_func): Initiate new variable insn_codes_length,
6671         (write_automata): Output definition of the new variable.
6672
6673         2001-10-02  David S. Miller  <davem@redhat.com>
6674
6675         * haifa-sched.c (advance_one_cycle): New function.
6676         (schedule_block): Use it.
6677         (queue_to_ready): Use it, and also make sure to advance the DFA
6678         state on all stall cycles, not just those where insn_queue links
6679         are found.
6680
6681         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
6682
6683         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
6684         non-zero if the highest-priority instruction could be scheduled.
6685         (choose_ready): Remove last argument from max_issue call.
6686
6687         2001-09-28  David S. Miller  <davem@redhat.com>
6688
6689         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
6690         ultrasparc and 3 for other multi-issue sparcs.
6691
6692         2001-09-27  David S. Miller  <davem@redhat.com>
6693
6694         * config/sparc/sparc.md (cycle_display): New pattern.
6695         * config/sparc/sparc.c (sparc_cycle_display): New.
6696         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
6697
6698         2001-09-25  David S. Miller  <davem@redhat.com>
6699
6700         Convert all of Sparc scheduling to DFA
6701         * config/sparc/sparc.md: Kill all define_function_unit
6702         directives and replace with DFA equivalent.
6703         * config/sparc/sparc.c (ultrasparc_adjust_cost,
6704         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
6705         ultra_fpmode_conflict_exists, ultra_find_type,
6706         ultra_build_types_avail, ultra_flush_pipeline,
6707         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
6708         ultrasparc_variable_issue, ultrasparc_sched_init,
6709         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
6710         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
6711         ultra_cur_hist, ultra_cycles_elapsed): Kill.
6712         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
6713         ultrasparc_store_bypass_p): New.
6714         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
6715         Declare.
6716
6717         2001-09-24  David S. Miller  <davem@redhat.com>
6718
6719         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
6720         ready->vec[foo] not ready[foo].
6721
6722         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
6723
6724         * doc/md.texi: Correct examples for define_insn_reservations
6725         `mult' and `div'.
6726
6727         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
6728
6729         * genautomata.c (create_automata): Print message about creation of
6730         each automaton.
6731         (generate): Remove printing meease about creation of
6732         automata.
6733
6734         2001-09-05  David S. Miller  <davem@redhat.com>
6735
6736         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
6737         * config/sparc/linux64.h: Likewise.
6738
6739         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
6740
6741         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
6742         schedule_block, sched_init, sched_finish): Add missed calls of
6743         use_dfa_pipeline_interface.
6744
6745         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
6746         Ditto.
6747
6748         * sched-vis.c (get_visual_tbl_length): Ditto.
6749
6750         2001-08-27  Richard Henderson  <rth@redhat.com>
6751
6752         * genattr.c (main): Emit state_t even when not doing scheduling.
6753
6754         2001-08-27  Richard Henderson  <rth@redhat.com>
6755
6756         * genautomata.c (expand_automata): Always create a description.
6757
6758         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
6759
6760         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
6761         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
6762         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
6763         RTL constructions.
6764
6765         * genattr.c (main): New variable num_insn_reservations.  Increase
6766         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
6767         pipeline hazard recognizer interface.
6768
6769         * genattrtab.h: New file.
6770
6771         * genattrtab.c: Include genattrtab.h.
6772         (attr_printf, check_attr_test, make_internal_attr,
6773         make_numeric_value): Move protypes into genattrtab.h.  Define them
6774         as external.
6775         (num_dfa_decls): New global variable.
6776         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
6777         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
6778         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
6779         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
6780
6781         * genautomata.c: New file.
6782
6783         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
6784
6785         * sched-int.h: (curr_state): Add the external definition for
6786         automaton pipeline interface.
6787         (haifa_insn_data): Add comments for members blockage and units.
6788
6789         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
6790         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
6791         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
6792         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
6793         TARGET_SCHED_DFA_POST_CYCLE_INSN,
6794         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
6795         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
6796         macros.
6797         (TARGET_SCHED): Use the new macros.
6798
6799         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
6800         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
6801         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
6802         dfa_bubble): New members in gcc_target.sched.
6803
6804         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
6805         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
6806         (insn_queue): Redefine it as pointer to array.
6807         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
6808         INSN_QUEUE_SIZE.
6809         (max_insn_queue_index_macro_value): New variable.
6810         (curr_state, dfa_state_size, ready_try): New varaibles for
6811         automaton interface.
6812         (ready_element, ready_remove, max_issue): New function prototypes
6813         for automaton interface.
6814         (choose_ready): New function prototype.
6815         (insn_unit, blockage_range): Add comments.
6816         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
6817         FUNCTION_UNITS_SIZE == 0.
6818         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
6819         actual_hazard, potential_hazard): Add comments.
6820         (insn_cost): Use cost -1 as undefined value.  Remove
6821         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
6822         pipeline interface.
6823         (ready_element, ready_remove): New functions for automaton
6824         interface.
6825         (schedule_insn): Add new code for automaton pipeline interface.
6826         (queue_to_ready): Add new code for automaton pipeline interface.
6827         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
6828         (debug_ready_list): Print newline when the queue is empty.
6829         (max_issue): New function for automaton pipeline interface.
6830         (choose_ready): New function.
6831         (schedule_block): Add new code for automaton pipeline interface.
6832         Print ready list before scheduling each insn.
6833         (sched_init): Add new code for automaton pipeline interface.
6834         Initiate insn cost by -1.
6835         (sched_finish): Free the current automaton state and finalize
6836         automaton pipeline interface.
6837
6838         * sched-rgn.c: Include target.h.
6839         (init_ready_list, new_ready, debug_dependencies): Add new code for
6840         automaton pipeline interface.
6841
6842         * sched-vis.c: Include target.h.
6843         (get_visual_tbl_length): Add code for automaton interface.
6844         (target_units, print_block_visualization):  Add comments.
6845
6846         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
6847         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
6848         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
6849         (getruntime.o, genautomata.o): New entries.
6850         (genattrtab.o): Add new dependency file genattrtab.h.
6851         (genattrtab): Add new dependencies.  Link it with `libm.a'.
6852         (getruntime.o, hashtab.o): New entries for canadian cross.
6853
6854         * doc/md.texi: Description of automaton based model.
6855
6856         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
6857         Add comments.
6858         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
6859         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
6860         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
6861         TARGET_SCHED_DFA_POST_CYCLE_INSN,
6862         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
6863         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
6864         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
6865         hook descriptions.
6866         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
6867         MAX_DFA_ISSUE_RATE): New macro descriptions.
6868
6869         * doc/contrib.texi: Add dfa based scheduler contribution.
6870
6871         * doc/gcc.texi: Add more information about genattrtab.
6872
6873 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6874
6875         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
6876         adjust_address_nv call.
6877
6878 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
6879
6880         * doc/install.texi (Testing): Provide additional information, and
6881         a stronger encouragement, for running the testsuites.
6882
6883 2002-04-29  DJ Delorie  <dj@redhat.com>
6884
6885         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
6886         given in upper case.
6887
6888 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6889
6890         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
6891         Solaris 2 <widec.h> if missing.
6892         * fixinc/fixincl.x: Regenerate.
6893         * fixinc/tests/base/widec.h: New file.
6894
6895 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
6896
6897         * toplev.c (f_options): Add "profile" switch so that
6898         -fno-profile can be used to disable -p.
6899
6900 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
6901
6902         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
6903         UV2DImode.
6904         * tree.c (build_common_tree_nodes_2): Likewise.
6905         * tree.h (enum tree_index): Likewise.
6906         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
6907
6908         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
6909         entries.
6910         (init_mmx_sse_builtins): Initialize SSE2 builtins.
6911         (ix86_expand_builtin): Add support for SSE2 builtins.
6912         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
6913         (VALID_SSE_REG_MODE): Use it.
6914         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
6915         (enum ix86_builtins): Add SSE2 builtins.
6916         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
6917         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
6918         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
6919         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
6920         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
6921         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
6922         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
6923         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
6924         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
6925         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
6926         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
6927         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
6928         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
6929         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
6930         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
6931         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
6932         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
6933         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
6934         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
6935         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
6936         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
6937         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
6938         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
6939         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
6940         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
6941         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
6942         lfence_insn): New patterns.
6943         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
6944         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
6945
6946 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
6947
6948         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
6949
6950 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6951
6952         * doc/contrib.texi (Contributors): Add Paolo Carlini and
6953         Janis Johnson.
6954         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
6955         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
6956         and CPU instead of cpu.
6957
6958 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
6959
6960         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
6961         variables.
6962         (lang_independent_options): Add -fif-conversion, -fif-conversion2
6963         (rest_of_compilation): Do if conversion only when asked for.
6964         (parse_options_and_default_flags): Set new variables to 1 for -O1
6965         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
6966
6967 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
6968
6969         * i386.c (dbx64_register_map): Fix typo.
6970
6971 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
6972
6973         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
6974         real_one_half, real_bb_freq_max): New static variables.
6975         (debug_profile_bbauxs): Kill.
6976         (process_note_predictions): Kill unused variable.
6977         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
6978         volatile double.
6979         (propagate_freq): Use REAL_ARITHMETICS.
6980         (estimate_bb_frequencies): Likevise; init new static variables.
6981         * Makefile.in (predict.o): Add dependency on real.h
6982
6983 2002-04-28  David S. Miller  <davem@redhat.com>
6984
6985         PR target/6500
6986         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
6987         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
6988         several {reads,writes} instead.
6989         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
6990         Define.
6991
6992 2002-04-27  David S. Miller  <davem@redhat.com>
6993
6994         PR target/6494
6995         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
6996         of the stack bias.
6997
6998         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
6999         including signal.h and sys/ucontext.h, not needed.
7000
7001 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
7002
7003         * varasm.c (output_constant_def): Correct test for not calling
7004         ENCODE_SECTION_INFO for INTEGER_CST.
7005
7006 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7007
7008         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
7009         keep most cases as function eval_token.
7010         (eval_token): New function.
7011         (_cpp_parse_expr): Read token here for improved diagnostics.
7012         Don't use op_as_text.  Detect bad ':' here.
7013         (reduce): Don't detect bad ':' here.
7014         (op_as_text): Remove.
7015         * cpphash.h (_cpp_test_assertion): Change prototype.
7016         * cpplib.c (_cpp_test_assertion): Change prototype.
7017
7018 2002-04-28  Richard Henderson  <rth@redhat.com>
7019
7020         PR c/5154
7021         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
7022         (ggc_mark_rtx_children): New.
7023
7024 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
7025
7026         PR target/6496
7027         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
7028         after call peepholes for UltraSPARC.
7029         (call + jump 64-bit peepholes): Remove.
7030
7031 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7032
7033         PR c/6497
7034         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
7035         result as temporary value.
7036
7037 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
7038
7039         PR c++/6396
7040         * toplev.c (rest_of_compilation): Only run regrename and copy
7041         propagation if optimizing.
7042
7043 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
7044
7045         PR optimization/6475
7046         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
7047         register of REGNO_DECL (i).
7048         * Makefile.in (reload1.o): Add $(TREE_H).
7049
7050 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
7051
7052         * cppexp.c (lex): Update to use state.skip_eval.
7053         (struct op): Remove prio and flags members.
7054         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
7055         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
7056         (LEFT_ASSOC): New macro.
7057         (optab): New table of operator priorities and flags.
7058         (SHIFT): Update.
7059         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
7060         malloc-ed parser stack.
7061         (reduce): New; reduce the operator stack.
7062         (_cpp_expand_op_stack): Expand the operator stack as necessary.
7063         * cpphash.h (struct op): Predeclare.
7064         (struct cpp_reader): New members op_stack, op_limit.
7065         (struct lexer_state): New member skip_eval.
7066         (_cpp_parse_expr): Update.
7067         (_cpp_expand_op_stack): New.
7068         * cpplib.c (do_if): Update.
7069         * cppinit.c (cpp_create_reader): Create op stack.
7070         (cpp_destroy): And destroy it.
7071         * cpplib.h (CPP_LAST_CPP_OP): Correct.
7072         (TTYPE_TABLE): Correct.
7073
7074 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7075
7076         PR c/6343
7077         * c-decl.c (duplicate_decls): Call merge_weak.
7078         * c-pragma.c (apply_pragma_weak): Warn about misuse.
7079         * output.h (merge_weak): Prototype merge_weak.
7080         * varasm.c (merge_weak): New function.
7081         (declare_weak): Make sure we don't give an error on VAR_DECLs.
7082         Mark RTL with SYMBOL_REF_WEAK.
7083
7084 2002-04-27  Kurt Garloff <garloff@suse.de>
7085
7086         * tree-inline.c (inlinable_function_p): Improve heuristics
7087         by using a smoother function to cut down allowable inlinable size.
7088         * param.def: Add parameters max-inline-insns-single,
7089         max-inline-slope, min-inline-insns that determine the exact
7090         shape of the above function.
7091         * param.h: Likewise.
7092
7093 2002-04-26  Richard Henderson  <rth@redhat.com>
7094
7095         * c-parse.in (malloced_yyss, malloced_yyvs): New.
7096         (yyoverflow): Re-add.  Set them.
7097         (free_parser_stacks): New.
7098         * c-common.h: Declare it.
7099         * c-lex.c (c_common_parse_file): Call it.
7100
7101 2002-04-26  Richard Henderson  <rth@redhat.com>
7102
7103         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
7104         for fallthru search.
7105
7106 2002-04-26  Eric Christopher  <echristo@redhat.com>
7107
7108         PR optimization/3700
7109         * config/mips/mips.c (mips_issue_rate): Define.  New function.
7110         (TARGET_SCHED_ISSUE_RATE): Use.
7111
7112 2002-04-25  David S. Miller  <davem@redhat.com>
7113
7114         PR target/6422
7115         * reorg.c (optimize_skip): Do not allow exception causing
7116         instructions to be considered for delay slots.
7117         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
7118         (relax_delay_slots): Do not try to consider exception causing
7119         instructions as redundant.
7120
7121 2002-04-26  Richard Henderson  <rth@redhat.com>
7122
7123         PR c/5225
7124         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
7125
7126 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
7127
7128         PR bootstrap/6445
7129         * config/i386/i386.md (untyped_call): Return the value in a float
7130         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
7131         TARGET_80387.
7132
7133 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
7134
7135         * tree.c (tree_int_cst_lt): Compare constants whose types differ
7136         in unsigned-ness correctly.
7137
7138 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7139
7140         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
7141         portable runtime model.
7142
7143 2002-04-26  Richard Henderson  <rth@redhat.com>
7144
7145         * c-parse.in (yyoverflow): Revert.
7146
7147 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
7148             Richard Henderson  <rth@redhat.com>
7149
7150         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
7151         result as temporary value.
7152
7153 2002-04-26  Richard Henderson  <rth@redhat.com>
7154
7155         PR c/3581
7156         * c-common.c (fix_string_type): Split out of ...
7157         (combine_strings): ... here.  Take a varray, not a tree list.
7158         (c_expand_builtin_printf): Use fix_string_type.
7159         * c-common.h: Update decls.
7160         * c-parse.in (string): Remove.  Update all uses to use STRING
7161         instead, and not call combine_strings.
7162         (yylexstring): New.
7163         (_yylex): Use it.
7164         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
7165         (build_asm_stmt): Likewise.
7166         * objc/objc-act.c (my_build_string): Use fix_string_type.
7167         (build_objc_string_object): Build varray for combine_strings.
7168
7169 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
7170
7171         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
7172         x86-64.
7173
7174 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
7175
7176         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
7177         (HAVE_NO_R_OPERAND): Remove.
7178         (HAVE_VALUE): Remove.
7179         (op_to_prio): Update.
7180         (UNARY): Don't alter flags.
7181         (_cpp_parse_expr): want_value used to indicate whether
7182         a number or unary operator is expected next.  Distinguish
7183         unary and binary +/-.
7184         (op_as_text): Update for unary operators.
7185
7186 2002-04-25  Richard Henderson  <rth@redhat.com>
7187
7188         PR c/2161
7189         * c-parse.in (yyoverflow): New.
7190
7191 2002-04-25  Richard Henderson  <rth@redhat.com>
7192
7193         PR c/2098
7194         * c-common.c (shorten_compare): Simplfy conditions leading to
7195         the generation of a warning.
7196
7197 2002-04-25  Richard Henderson  <rth@redhat.com>
7198
7199         PR c/2035
7200         * expmed.c (extract_bit_field): Fall through to generic code rather
7201         than aborting on subreg special case.
7202
7203 2002-04-25  David S. Miller  <davem@redhat.com>
7204
7205         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
7206         for DECL being NULL.
7207
7208 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
7209
7210         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
7211
7212 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
7213
7214         * c-decl.c (grokdeclarator): Remove outdated ??? note
7215         on invalid declaration of flexible array members.
7216
7217 2002-04-25  Richard Henderson  <rth@redhat.com>
7218
7219         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
7220
7221 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
7222
7223         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
7224         needed by the compiler, even if they are used as global regs.
7225
7226 2002-04-25  Matt Hiller  <hiller@redhat.com>
7227
7228         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
7229         functions.
7230         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
7231         of the corresponding functions.
7232         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
7233         New prototypes.
7234
7235 2002-04-25  Matt Hiller  <hiller@redhat.com>
7236
7237         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
7238
7239         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
7240         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
7241         registers, adjust comment accordingly.
7242         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
7243         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
7244         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
7245         for coprocessor registers.
7246         (ADDITIONAL_REGISTER_NAMES): Include
7247         ALL_COP_ADDITIONAL_REGISTER_NAMES.
7248
7249         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
7250         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
7251         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
7252         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
7253         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
7254
7255         (mips_char_to_class): Adjust comment to include coprocessor
7256         constraint letters.
7257
7258         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
7259         New functions.
7260         (mips_reg_names, mips_regno_to_class): Include coprocessor
7261         information.
7262         (mips_sw_reg_names): Ditto, make non-static.
7263         (mips_move_1word): Handle moves to and from coprocessor registers.
7264         (mips_move_2words): Handle moves to and from coprocessor
7265         registers.
7266         (mips_class_max_nregs, mips_register_move_cost): Handle
7267         coprocessor register classes.
7268         (override_options): Initialize mips_char_to_class and
7269         mips_hard_regno_mode_ok properly for coprocessor registers.
7270
7271         * config/mips/mips.md (movdi_internal, movdi_internal2,
7272         movsi_internal1, movsi_internal2): Add constraint-sets for
7273         coprocessor registers.
7274         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
7275         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
7276         isn't mips.
7277         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
7278         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
7279         isn't mips.
7280         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
7281         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
7282         isn't mips.
7283         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
7284         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
7285         isn't mips.
7286
7287         * doc/tm.texi: Document feature.
7288
7289 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
7290
7291         * integrate.c (function_attribute_inlinable_p): Simplify.
7292         Check the table pointer is not NULL.
7293
7294 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
7295
7296         * doc/c-tree.texi: Fix typo in introduction.
7297
7298 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
7299
7300         * c-common.h (c_common_parse_file): Update.
7301         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
7302         * c-lex.c (YYDEBUG): Get from c-lex.h.
7303         (c_common_parse_file): Update.
7304         * c-lex.h (YYDEBUG, yydebug): New.
7305         * c-parse.in (YYDEBUG): Get from c-lex.h.
7306         (c_set_yydebug): Remove.
7307         * c-tree.h (c_set_yydebug): Remove.
7308         * langhooks-def.h (lhd_do_nothing_i): New.
7309         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
7310         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
7311         * langhooks.c  (lhd_do_nothing_i): New.
7312         (lhd_set_yydebug): Remove.
7313         * langhooks.h (struct lang_hooks): Update.
7314         * toplev.c (set_yydebug): New.
7315         (compile_file): Update call to parse_file hook.
7316         (decode_d_option): Update.
7317 objc:
7318         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
7319
7320 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
7321
7322         * loop.c (load_mems): Don't change the interface of called functions.
7323
7324         * calls.c (expand_call): Take current_function_pretend_args_size
7325         into account when setting argblock for sibcalls.
7326
7327 2002-04-24  Matt Hiller  <hiller@redhat.com>
7328
7329         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
7330         * c-lex.c: Ditto.
7331
7332         * cpplex.c (skip_line_comment): Process comment one multibyte
7333         character at a time rather than one char at a time, if
7334         appropriate.
7335         (parse_string): Process string one multibyte character at a time
7336         rather than one char at a time, if appropriate.
7337         * c-lex.c (lex_string): Lex and copy multibyte strings
7338         appropriately.
7339         * cpplib.h (cppchar_t): Change to unsigned.
7340
7341 2002-04-24  Richard Henderson  <rth@redhat.com>
7342
7343         PR c/3467
7344         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
7345         for c99.
7346
7347 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
7348
7349         * sh.c (sh_va_arg): If argument was passed by reference,
7350         dereference the pointer.
7351
7352         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
7353
7354         * sh.md (divsi3_i4_media): Use match_operand for input values
7355         rather than hard registers.
7356         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
7357         unnecessarily through hard registers.  Keep copies of pseudo
7358         registers outside of the libcall sequence.
7359
7360         * sh.md (casesi_shift_media): Add modes.
7361
7362         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
7363         values in memory.
7364
7365 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7366
7367         * attribs.c (c_common_attribute_table): Move table and handlers
7368         to c-common.c.
7369         (format_attribute_table, lang_attribute_table,
7370         lang_attribute_common): Remove.
7371         (init_attributes): Replace NULL pointers with pointers to the
7372         empty table.
7373         (handle_packed_attribute, handle_nocommon_attribute,
7374         handle_common_attribute, handle_noreturn_attribute,
7375         handle_noinline_attribute, handle_always_inline_attribute,
7376         handle_used_attribute, handle_unused_attribute,
7377         handle_const_attribute, handle_transparent_union_attribute,
7378         handle_constructor_attribute, handle_destructor_attribute,
7379         handle_mode_attribute, handle_section_attribute,
7380         handle_aligned_attribute, handle_weak_attribute,
7381         handle_alias_attribute, handle_visibility_attribute,
7382         handle_no_instrument_function_attribute, handle_malloc_attribute,
7383         handle_no_limit_stack_attribute, handle_pure_attribute,
7384         handle_deprecated_attribute, handle_vector_size_attribute,
7385         vector_size_helper): Move to c-common.c.
7386         * c-common.c (c_common_attribute_table,
7387         handle_packed_attribute, handle_nocommon_attribute,
7388         handle_common_attribute, handle_noreturn_attribute,
7389         handle_noinline_attribute, handle_always_inline_attribute,
7390         handle_used_attribute, handle_unused_attribute,
7391         handle_const_attribute, handle_transparent_union_attribute,
7392         handle_constructor_attribute, handle_destructor_attribute,
7393         handle_mode_attribute, handle_section_attribute,
7394         handle_aligned_attribute, handle_weak_attribute,
7395         handle_alias_attribute, handle_visibility_attribute,
7396         handle_no_instrument_function_attribute, handle_malloc_attribute,
7397         handle_no_limit_stack_attribute, handle_pure_attribute,
7398         handle_deprecated_attribute, handle_vector_size_attribute,
7399         vector_size_helper): Move from attribs.c.
7400         * c-common.h (c_common_attribute_table,
7401         c_common_format_attribute_table): New.
7402         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
7403         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
7404         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
7405         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
7406         (LANG_HOOKS_INITIALIZER): Update.
7407         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
7408         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
7409         * target.h: Update comment.
7410         * tree.c (default_target_attribute_table): Remove.
7411         * tree.h (default_target_attribute_table, format_attribute_table,
7412         lang_attribute_table, lang_attribute_common): Remove.
7413 objc:
7414         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
7415         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
7416
7417 2002-04-24  Jason Merrill  <jason@redhat.com>
7418
7419         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
7420         * dwarf2out.c (dwarf_attr_name): Support it.
7421         (gen_array_type_die): Emit it.
7422         (lookup_type_die): No special handling for VECTOR_TYPE.
7423         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
7424
7425 2002-04-24  Richard Henderson  <rth@redhat.com>
7426
7427         * config/mips/mips.md (movdi_usd): Renumber.
7428
7429 2002-04-24  David S. Miller  <davem@redhat.com>
7430
7431         PR target/6420
7432         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
7433         32-bit Sparc and current_function_returns_struct is true.
7434
7435 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
7436
7437         * loop.c (canonicalize_condition): Use gen_int_mode.
7438
7439 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
7440
7441         * config/rs6000/altivec.h: Cleanup file.  Add non individual
7442         variants.
7443         (vec_vaddubm): New.
7444         (vec_vadduhm): New.
7445         (vec_vadduwm): New.
7446         (vec_vaddfp): New.
7447         (vec_vaddcuw): New.
7448         (vec_vaddubs): New.
7449         (vec_vaddsbs): New.
7450         (vec_vadduhs): New.
7451         (vec_vadduws): New.
7452         (vec_vaddsws): New.
7453         (vec_vand): New.
7454         (vec_vandc): New.
7455         (vec_vavgub): New.
7456         (vec_vavgsb): New.
7457         (vec_vavguh): New.
7458         (vec_vavgsh): New.
7459         (vec_vavguw): New.
7460         (vec_vavgsw): New.
7461         (vec_vrfip): New.
7462         (vec_vcmpbfp): New.
7463         (vec_vcmpequb): New.
7464         (vec_vcmpequh): New.
7465         (vec_vcmpequw): New.
7466         (vec_vcmpeqfp): New.
7467         (vec_vcmpgefp): New.
7468         (vec_vcmpgtub): New.
7469         (vec_vcmpgtsb): New.
7470         (vec_vcmpgtuh): New.
7471         (vec_vcmpgtsh): New.
7472         (vec_vcmpgtuw): New.
7473         (vec_vcmpgtsw): New.
7474         (vec_vcmpgtfp): New.
7475         (vec_vcmpgefp): New.
7476         (vec_vcfux): New.
7477         (vec_vcfsx): New.
7478         (vec_vctsxs): New.
7479         (vec_vctuxs): New.
7480         (vec_vexptefp): New.
7481         (vec_vrfim): New.
7482         (vec_lvx): New.
7483         (vec_lvebx): New.
7484         (vec_lvehx): New.
7485         (vec_lde): Add vector float variant.
7486         (vec_lvewx): New.
7487         (vec_lvxl): New.
7488         (vec_vlogefp): New.
7489         (vec_vmaddfp): New.
7490         (vec_vmhaddshs): New.
7491         (vec_vmaxub): New.
7492         (vec_vmaxsb): New.
7493         (vec_vmaxuh): New.
7494         (vec_vmaxsh): New.
7495         (vec_vmaxuw): New.
7496         (vec_vmaxsw): New.
7497         (vec_vmaxsw): New.
7498         (vec_vmaxfp): New.
7499         (vec_vmrghb): New.
7500         (vec_vmrghh): New.
7501         (vec_vmrghw): New.
7502         (vec_vmrglb): New.
7503         (vec_vmrglh): New.
7504         (vec_vmrglw): New.
7505         (vec_vminub): New.
7506         (vec_vminsb): New.
7507         (vec_vminuh): New.
7508         (vec_vminsh): New.
7509         (vec_vminuw): New.
7510         (vec_vminsw): New.
7511         (vec_vminfp): New.
7512         (vec_vmladduhm): New.
7513         (vec_vmhraddshs): New.
7514         (vec_msumubm): New.
7515         (vec_vmsummbm): New.
7516         (vec_vmsumuhm): New.
7517         (vec_vmsumshm): New.
7518         (vec_vmsumuhs): New.
7519         (vec_vmsumshs): New.
7520         (vec_vmuleub): New.
7521         (vec_vmulesb): New.
7522         (vec_vmuleuh): New.
7523         (vec_vmulesh): New.
7524         (vec_vmuloub): New.
7525         (vec_mulosb): New.
7526         (vec_vmulouh): New.
7527         (vec_vmulosh): New.
7528         (vec_vnmsubfp): New.
7529         (vec_vnor): New.
7530         (vec_vor): New.
7531         (vec_vpkuhum): New.
7532         (vec_vpkuwum): New.
7533         (vec_vpkpx): New.
7534         (vec_vpkuhus): New.
7535         (vec_vpkshss): New.
7536         (vec_vpkuwus): New.
7537         (vec_vpkswss): New.
7538         (vec_vpkshus): New.
7539         (vec_vpkswus): New.
7540         (vec_vperm): New.
7541         (vec_vrefp): New.
7542         (vec_vrlb): New.
7543         (vec_vrlh): New.
7544         (vec_vrlw): New.
7545         (vec_vrfin): New.
7546         (vec_vrsqrtefp): New.
7547         (vec_vsel): New.
7548         (vec_vslb): New.
7549         (vec_vslh): New.
7550         (vec_vslw): New.
7551         (vec_vsldoi): New.
7552         (vec_vsl): New.
7553         (vec_vslo): New.
7554         (vec_vspltb): New.
7555         (vec_vsplth): New.
7556         (vec_vspltw): New.
7557         (vec_vspltisb): New.
7558         (vec_vspltish): New.
7559         (vec_vspltisw): New.
7560         (vec_vsrb): New.
7561         (vec_vsrh): New.
7562         (vec_vsrw): New.
7563         (vec_vsrab): New.
7564         (vec_vsrah): New.
7565         (vec_vsraw): New.
7566         (vec_vsr): New.
7567         (vec_vsro): New.
7568         (vec_stvx): New.
7569         (vec_stvebx): New.
7570         (vec_stvehx): New.
7571         (vec_stvewx): New.
7572         (vec_stvxl): New.
7573         (vec_vsububm): New.
7574         (vec_vsubuhm): New.
7575         (vec_vsubuwm): New.
7576         (vec_vsubfp): New.
7577         (vec_vsubcuw): New.
7578         (vec_vsububs): New.
7579         (vec_vsubsbs): New.
7580         (vec_vsubuhs): New.
7581         (vec_vsubshs): New.
7582         (vec_vsubuws): New.
7583         (vec_vsubsws): New.
7584         (vec_vsum4ubs): New.
7585         (vec_vsum4sbs): New.
7586         (vec_vsum4shs): New.
7587         (vec_vsum2sws): New.
7588         (vec_vsumsws): New.
7589         (vec_vrfiz): New.
7590         (vec_vupkhsb): New.
7591         (vec_vupkhpx): New.
7592         (vec_vupkhsh): New.
7593         (vec_vupklsb): New.
7594         (vec_vupklpx): New.
7595         (vec_vupklsh): New.
7596         (vec_vxor): New.
7597
7598 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
7599
7600         PR c/5430
7601         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
7602         added literals from substracted literals.
7603         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
7604         (fold) [associate]: Preserve MINUS_EXPR if needed.
7605
7606 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
7607
7608         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
7609         are obsoleted.
7610
7611 2002-04-23  Tom Tromey  <tromey@redhat.com>
7612
7613         * gcc.c: Added --resource.  For PR java/6314.
7614
7615 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
7616
7617         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
7618         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
7619         these libraries.
7620
7621 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
7622
7623         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
7624
7625 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
7626
7627         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
7628         workaround.
7629         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
7630         (ix86_expand_clrstr): Fix typo.
7631         * loop.c (gen_load_of_final_value): New.
7632         (loop_givs_rescan, strength_reduce, check_dbra_loop):
7633         Use it.
7634
7635 2002-04-23  Roger Sayle  <roger@eyesopen.com>
7636
7637         * builtins.c (builtin_memset_gen_str): New function.
7638         (expand_builtin_memset): Optimize the case of constant length, but
7639         unknown value.
7640
7641 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
7642
7643         * config/rs6000/altivec.h (vec_step): Remove extraneous
7644         parentheses.
7645         (vec_ctu): Cast return.
7646
7647 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
7648
7649         PR target/6413
7650         * function.h: (struct function): Add profile_label_no field.
7651         (current_function_profile_label_no): Define.
7652         * function.c: (profile_label_no): New static var.
7653         (expand_function_start): Increment it, and copy to
7654         current_function_profile_label_no.
7655         * output.h (profile_label_no): Delete.
7656         * final.c (profile_label_no): Delete.
7657         (profile_function): Use current_function_profile_label_no.
7658         (final_end_function): Don't increment profile_label_no here.
7659         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
7660         profile_label_no with current_function_profile_label_no.
7661         * config/pa/pa.c (current_function_number): Delete.
7662         (pa_output_function_prologue): Don't output profile label here.
7663         (hppa_profile_hook): Use label_no param rather than
7664         current_function_number.
7665         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
7666         * config/pa/pa.h: .. here.
7667         (FUNCTION_PROFILER): Output profile label here.
7668
7669 2002-04-22  Eric Christopher  <echristo@redhat.com>
7670
7671         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
7672         patch of 2002-04-09 due to binutils issues.
7673         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
7674
7675 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
7676
7677         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
7678         constraint to 'o' for m=r and r=m alternatives.
7679         ("*movv8hi_internal1"): Same.
7680         ("*movv16qi_internal1"): Same.
7681         ("*movv4sf_internal1"): Same.
7682
7683 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
7684
7685         * rtl.h (RTX_FLAG): New macro.
7686         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
7687         * final.c (alter_subreg): Use macro to access rtx flag.
7688         * integrate.c (copy_rtx_and_substitute): Use new access macro.
7689         * print-rtl.c (print_rtx): Use new access macro.
7690
7691         * cse.c (insert): Check rtx code before accessing flag.
7692
7693         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
7694         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
7695         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
7696         convert_const_symbol_ref, make_canonical, make_alternative_compare,
7697         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
7698         simplify_test_exp, optimize_attrs, simplify_by_exploding,
7699         find_and_mark_used_attributes, unmark_used_attributes,
7700         add_values_to_cover, simplify_with_current_value,
7701         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
7702         copy_rtx_unchanging, main): Use new access macros.
7703
7704 2002-04-22  Tom Rix  <trix@redhat.com>
7705
7706         * expmed.c (init_expmed): Generate shifted constant once.
7707
7708 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
7709
7710         * c-lex.c (lex_charconst): Call convert to get constant in
7711         proper type; don't just smash the type field.
7712         Fixes PR c/6300.
7713
7714         * config.gcc: Add list of obsolete configurations.  Disallow
7715         building these without --enable-obsolete.
7716         * doc/install.texi: Document --enable-obsolete and obsoletion
7717         policy.  Mention obsoletion of individual targets in
7718         appropriate places.
7719
7720 2002-04-22  Richard Henderson  <rth@redhat.com>
7721
7722         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
7723
7724 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
7725
7726         PR f/6138.
7727         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
7728         (walk_fixup_memory_subreg): Likewise.
7729         (fixup_var_refs_insn): Adjust accordingly.
7730         (fixup_var_refs_1): Likewise.
7731
7732 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
7733
7734         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
7735         LIBPATH_ARCH64_SPEC): Define.
7736         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
7737         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
7738         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
7739         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
7740
7741 2002-04-22      Joel Sherrill <joel@OARcorp.com>
7742
7743         * gthr-rtems.h: Correct prototypes to remove warnings.
7744
7745 2002-04-22  Richard Henderson  <rth@redhat.com>
7746
7747         PR c/6344
7748         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
7749
7750         * gcse.c (free_insn_expr_list_list): New.
7751         (clear_modify_mem_tables): Use it.  Fix bit set usage.
7752         (canon_list_insert): Use EXPR_LISTs for expressions.
7753         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
7754
7755 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7756
7757         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
7758         file change and include code to _cpp_pop_buffer.
7759         * cpphash.h (struct pending_option): Predeclare.
7760         (struct cpp_reader): New member next_include_file.
7761         (_cpp_pop_file_buffer): Update.
7762         (_cpp_push_next_buffer): Update, rename.
7763         * cppinit.c (cpp_destroy): Free include chain and pending here.
7764         (cpp_finish_options): Simplify.
7765         (_cpp_push_next_buffer): Rename and clean up.
7766         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
7767         Clarify.
7768         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
7769
7770 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
7771
7772         * config/rs6000/altivec.h (vec_xor): Add variant for both args
7773         being vector signed int.
7774         (vec_andc): Same.
7775         (vec_xor): Add variant for both args being vector signed char.
7776         Remove redundant variant.
7777         (vec_andc): Same.
7778
7779 2002-04-21  David S. Miller  <davem@redhat.com>
7780
7781         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
7782         compare mode in output RTL.
7783
7784 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
7785
7786         * config/rs6000/rs6000.c (rs6000_override_options): Correct
7787         style and formatting of previous patch.
7788
7789 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
7790
7791         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
7792         flag_pic for ABI_AIX.
7793
7794 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7795
7796         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
7797         * cppfiles.c (read_include_file): Similarly.
7798         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
7799         uxstrdup ustrchr, ufputs): Similarly.
7800         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
7801         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
7802         cpp_ideq, parse_identifier, parse_number): Similarly.
7803         * cpplib.c (struct directive, dequote_string, D, run_directive,
7804         cpp_push_buffer): Similarly.
7805         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
7806         _cpp_create_definition, check_trad_stringification,
7807         cpp_macro_definition): Similarly.
7808
7809 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7810
7811         * cppmacro.c (funlike_invocation_p): Don't step back
7812         over CPP_EOF.
7813
7814 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
7815
7816         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
7817         labelno.
7818
7819 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
7820
7821         * doc/invoke.texi: Remove Chill references.
7822         * doc/gcc.texi: Update last modified date.
7823
7824 2002-04-20  Kazu Hirata  <kazu@hxi.com>
7825
7826         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
7827         push and pop.  Replace add.l with add.w.
7828
7829 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
7830
7831         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
7832         multiply instructions for H8/300H case.
7833
7834 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
7835
7836         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
7837         Bum three instructions from each routine.
7838
7839 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7840
7841         * Makefile.in: Update.
7842         * decl.c (push_c_function_context, pop_c_function_context,
7843         mark_c_function_context): Rename for consistency.
7844         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
7845         * c-tree.h (push_c_function_context, pop_c_function_context,
7846         mark_c_function_context): Rename for consistency.
7847         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7848         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
7849         * function.c (init_lang_status, save_lang_status,
7850         restore_lang_status, mark_lang_status, free_lang_status):
7851         Move to langhooks.h.
7852         (push_function_context_to, pop_function_context_from,
7853         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
7854         Update.
7855         * function.h (init_lang_status, save_lang_status,
7856         restore_lang_status, mark_lang_status, free_lang_status):
7857         Move to langhooks.h.
7858         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
7859         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
7860         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
7861         LANG_HOOKS_FUNCTION_INITIALIZER): New.
7862         (LANG_HOOKS_INITIALIZER): Update.
7863         (lhd_do_nothing_f): New.
7864         * langhooks.h (struct lang_hooks_for_functions): New.
7865         (struct lang_hooks): New hooks.
7866         * langhooks.c (lhd_do_nothing_f): New.
7867 objc:
7868         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7869         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
7870
7871 2002-04-19  David S. Miller  <davem@redhat.com>
7872
7873         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
7874         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
7875
7876 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
7877
7878         PR optimization/3756
7879         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
7880         x = ((int) y < 0) ? cst1 : cst2.
7881
7882 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
7883
7884         PR c/6358
7885         * function.c: Reapply patch for c/6358.
7886         (expand_function_end): Copy decl_rtl's mode, not
7887         current_function_return_rtx mode.
7888
7889 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
7890
7891         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
7892         targets.
7893
7894 2002-04-19  Tom Tromey  <tromey@redhat.com>
7895
7896         * doc/install.texi (Specific): Update status of Solaris 2.8.
7897         For PR libgcj/6158.
7898
7899 2002-04-19  Andreas Schwab  <schwab@suse.de>
7900
7901         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
7902         (PUT_REAL): Restore old definition.
7903
7904 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
7905             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7906
7907         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
7908         binutils 2.11.2 and higher generate smaller binaries than Sun's
7909         native tools.
7910
7911 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
7912
7913         PR c++/6352
7914         * toplev.c (rest_of_compilation): Do not defer functions for which
7915         TREE_SYMBOL_REFERENCED has already been set.
7916
7917 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
7918
7919         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
7920         alternative.
7921
7922 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7923
7924         * builtins.c: Include langhooks.h.
7925         (lang_type_promotes_to): Remove.
7926         (expand_builtin_va_arg): Use new hook.
7927         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
7928         (simple_type_promotes_to): Move to c-typeck.c.
7929         * c-common.h (simple_type_promotes_to): Remove.
7930         * c-decl.c (duplicate_decls, grokdeclarator): Update.
7931         * c-format.c: Include langhooks.h.
7932         (check_format_types): Update.
7933         * c-tree.h (c_type_promotes_to): New.
7934         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
7935         (type_lists_compatible_p): Update.
7936         * langhooks-def.h (lhd_type_promotes_to): New.
7937         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
7938         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
7939         * langhooks.c (lhd_type_promotes_to): New.
7940         * langhooks.h (struct lang_hooks_for_types): New hook.
7941         * tree.h (lang_type_promotes_to): Remove.
7942 objc:
7943         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
7944
7945 2002-04-18  Richard Henderson  <rth@redhat.com>
7946
7947         * function.c: Revert patch for c/6358.
7948
7949 2002-04-18  Richard Henderson  <rth@redhat.com>
7950
7951         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
7952         blocks.  Handle multiple references to the TRAP block.  Handle
7953         non-adjacent THEN and OTHER blocks.
7954
7955 2002-04-18  Richard Henderson  <rth@redhat.com>
7956
7957         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
7958         crash with no type for by-mode libcalls.
7959
7960         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
7961
7962 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
7963
7964         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
7965         __xtensa_nonlocal_goto): Use a syscall instructions to flush
7966         the register windows.
7967
7968 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
7969
7970         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
7971         appropriate.  Document need for extended precision even when
7972         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
7973         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
7974         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
7975         instead of relying on later syntax error when REAL_WIDTH > 5.
7976         * real.c: Define NE based only on whether or not we have a
7977         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
7978         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
7979         define GET_REAL and PUT_REAL as simple memcpy operations; no
7980         need to byteswap or round.
7981         Use #error instead of #ifdef-ing out the entire file, for
7982         prompt error detection.
7983
7984         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
7985
7986 2002-04-18  David S. Miller  <davem@redhat.com>
7987
7988         * config/sparc/sparc.h (BRANCH_COST): Define.
7989
7990         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
7991         does it.
7992
7993 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
7994
7995         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
7996         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
7997         propagate_block calls after relaxation loop using new variable
7998         stabilized_prop_flags.
7999
8000 2002-04-18  Richard Henderson  <rth@redhat.com>
8001
8002         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
8003         (ia64_va_arg): Expect variable sized types by reference.
8004         * config/ia64/ia64-protos.h: Update.
8005         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
8006         ia64_function_arg_pass_by_reference.
8007
8008 2002-04-18  Richard Henderson  <rth@redhat.com>
8009
8010         * ifcvt.c: Include except.h.
8011         (block_has_only_trap): Break out from find_cond_trap.
8012         (find_cond_trap): Use it.  Always delete the trap block.
8013         (merge_if_block): Allow then block null.  Be less simplistic about
8014         what insns can end a block.
8015         * Makefile.in (ifcvt.o): Depend on except.h.
8016
8017         * config/ia64/ia64.md (trap, conditional_trap): New.
8018
8019 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
8020
8021         PR c/6358
8022         * function.c (assign_parms): Assign hard current_function_return_rtx
8023         register here...
8024         (expand_function_end): ...not here.
8025
8026 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
8027
8028         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
8029         * c-tree.h (c_incomplete_type_error): New.
8030         * c-typeck.c (require_complete_type, build_component_ref): Update.
8031         (incomplete_type_error): Rename.
8032         * langhooks-def.h (lhd_incomplete_type_error): New.
8033         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
8034         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
8035         * langhooks.c (lhd_incomplete_type_error): New.
8036         * langhooks.h (struct lang_hooks_for_types): New hook.
8037         * tree.c (size_in_bytes): Use new hook.
8038         * tree.h (incomplete_type_error): Remove.
8039 objc:
8040         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
8041
8042 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
8043
8044         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
8045         TARGET_FLOAT_FORMAT blocks.
8046
8047 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8048
8049         * doc/install.texi (Downloading the source): Do not mention Chill
8050         any longer, but mention Ada.
8051         (Configuration): Do not mention Chill any longer.
8052
8053 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
8054
8055         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
8056
8057 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
8058
8059         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
8060         in last patch.
8061
8062 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
8063
8064         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
8065         instead of unsigned_type.
8066
8067 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
8068
8069         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
8070         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
8071         later.
8072
8073 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
8074
8075         * attribs.c (vector_type_node_list): New static variable.
8076         (handle_vector_size_attribute): Use it to avoid generating a
8077         new type node each time we are called.
8078
8079         * combine.c (subst): Avoid trying to make a vector mode subreg of
8080         an integer constant.
8081         (gen_lowpart_for_combine): Likewise.
8082
8083 2002-04-18  Roger Sayle  <roger@eyesopen.com>
8084             Jakub Jelinek  <jakub@redhat.com>
8085
8086         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
8087         for integer constant c (if x has unsigned type or sign bit is not
8088         set in c).  This folds the zero/sign extension into the bit-wise and
8089         operation.
8090
8091 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
8092
8093         PR middle-end/6205
8094         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
8095         otherwise xorps.
8096
8097 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
8098
8099         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
8100
8101 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
8102
8103         * gcc.c (read_specs): Detect and fail if an attempt is made to
8104         rename a spec string to an already existing string.
8105
8106 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
8107
8108         * config/s390/s390.c (legitimize_pic_address): Do not generate
8109         illegal address constant without CONST.
8110
8111 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8112
8113         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
8114         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
8115
8116 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
8117
8118         PR optimization/6305
8119         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
8120         to make sure previous reloads are taken into account.  Generate
8121         better code if one operand is an in-range immediate constant.
8122
8123 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
8124
8125         * doc/install.texi (Building): libgcj requires GNU make.
8126
8127 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
8128
8129         PR bootstrap/6315
8130         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
8131         even if hard quad and register is not floating.
8132         (movtf reg<-mem split): Disallow splitting if hard quad and
8133         register is floating.
8134         (movtf mem<-reg split): Likewise.
8135         * config/sparc/sparc.c (fp_register_operand): New predicate.
8136         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
8137
8138 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
8139
8140         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
8141         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
8142         (unprotoize.o): Ditto.  Build from protoize.c.  Define
8143         UNPROTOIZE on command line.
8144         * protoize.c: Include cppdefault.h.  Delete include_defaults.
8145         (in_system_include_dir): Use cpp_include_defaults (defined in
8146         cppdefault.o).
8147         * unprotoize.c: Delete file.
8148
8149 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
8150
8151         * config/rs6000/altivec.h (vec_ld): Add array variants.
8152         (vec_lde): Same.
8153         (vec_ldl): Same.
8154
8155 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
8156             Aldy Hernandez <aldyh@redhat.com>
8157
8158         * config/rs6000/altivec.h: Define __ALTIVEC__.
8159         (bool): New.
8160         (__pixel): New.
8161         (pixel): New.
8162         (vec_cfux): New.
8163         (vec_vmaddfp): New.
8164         (vec_vsldoi): New.
8165         Add parentheses to all macro arguments.
8166
8167 2002-04-16  Richard Henderson  <rth@redhat.com>
8168
8169         PR c++/6320
8170         * except.c (remove_eh_handler): Insert inner regions at beginning
8171         of sibling chain.  Refactor expressions.
8172
8173 2002-04-16  Richard Henderson  <rth@redhat.com>
8174
8175         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
8176         * config/sparc/sol2-gas-bi.h: New file.
8177         * config.gcc (sparc*-solaris): Add it as needed.
8178         * configure.in (AS_SPARC64_FLAG): Remove check.
8179         * config.in, configure: Regenerate.
8180
8181         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
8182
8183 2002-04-16  Richard Henderson  <rth@redhat.com>
8184
8185         * config/mips/mips.c (override_options): Don't override N32 for
8186         a 64-bit ISA.
8187
8188         PR 6202
8189         * config/mips/mips.md (can_delay): Split out of existing define_delays.
8190         (HILO_delay): Set can_delay false.
8191
8192 2002-04-16  Dale Johannesen <dalej@apple.com>
8193
8194         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
8195         instruction addresses.
8196         (rs6000_output_function_epilogue): Likewise.
8197
8198 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
8199
8200         * c-parse.in (poplevel, compstmt_start,
8201         compstmt_primary_start): Add ending ';', in accordance
8202         with POSIX.
8203
8204 2002-04-16  Richard Henderson  <rth@redhat.com>
8205
8206         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
8207         Adjust tm_file order to get TARGET_DEFAULT set properly.
8208         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
8209         * doc/install.texi (sparc-solaris): Update.
8210
8211 2002-04-16  Dale Johannesen <dalej@apple.com>
8212
8213         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
8214         comparison operands do not match each other or if modes of
8215         conditions do not match result.
8216
8217 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
8218
8219         PR target/6305
8220         * config/s390/s390.md (mulsidi3): Set both subregs of the
8221         multiword register.
8222
8223 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
8224
8225         * config/rs6000/altivec.h (vec_addc): Type check.
8226
8227 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
8228
8229         PR middle-end/6279
8230         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
8231
8232         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
8233
8234 2002-04-15  Richard Henderson  <rth@redhat.com>
8235
8236         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
8237         call_really_used_regs too.
8238
8239 2002-04-15  Richard Henderson  <rth@redhat.com>
8240
8241         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
8242
8243 2002-04-15  David S. Miller  <davem@redhat.com>
8244
8245         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
8246         as being CLOBBERed.
8247
8248 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
8249
8250         PR c/6290
8251         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
8252         CONST_VECTOR is { 0, ... 0 }.
8253
8254 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
8255
8256         * doc/install.texi (Installing GCC: Configuration): Clarify
8257         the only supported ways to configure gcc.
8258
8259 2002-04-15  Roland McGrath  <roland@frob.com>
8260
8261         * config.gcc (alpha*-*-gnu*): New target configuration.
8262         * config/alpha/gnu.h: New file for it.
8263         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
8264
8265 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
8266
8267         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
8268         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
8269         * tree.h (expand_start_stmt_expr): Update prototype.
8270         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
8271         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
8272         on the STMT_EXPR created for the inline function.
8273
8274 2002-04-15  Richard Henderson  <rth@redhat.com>
8275
8276         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
8277         config/i386/linux-aout.h, config/i386/linux-oldld.h,
8278         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
8279         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
8280         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
8281         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
8282         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
8283         Define __gnu_linux__, not gnu_linux.
8284         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
8285
8286 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
8287
8288         Remove Chill front end.
8289         * gcc.c (default_compilers): Remove Chill entries.
8290         * ch: Remove directory.
8291         * doc/frontends.texi: Remove information about Chill.
8292         * doc/sourcebuild.texi: Likewise.
8293         * doc/standards.texi: Likewise.
8294
8295 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
8296
8297         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
8298         (LONGLONG_STANDALONE): Define.
8299
8300 2002-04-15  David S. Miller  <davem@redhat.com>
8301
8302         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
8303         Call emit_library_call with LCT_NORMAL.
8304         (sparc_initialize_trampoline): Use LCT_foo instead of
8305         magic constant in emit_library_call invocations.
8306         (sparc64_initialize_trampoline): Likewise.
8307         (sparc_profile_hook): Likewise.
8308         * config/sparc/sparc.md: Likewise.
8309
8310         * config/sparc/sparc.c (sparc_extra_constraint_check):
8311         Fix type of argument 'c'.
8312         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
8313         Likewise.
8314
8315 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
8316
8317         * diagnostic.h (output_buffer_state): Redefine.
8318         (output_format_decoder): New macro.
8319         (output_prefixing_rule): Likewise.
8320         (output_line_cutoff): Likewise.
8321         (diagnostic_format_decoder): Adjust.
8322         (diagnostic_prefixing_rule): Likewise.
8323         (diagnostic_line_cutoff): Likewise.
8324         (diagnostic_state): Likewise.
8325         (diagnostic_kind_count): Likewise.
8326         (diagnostic_buffer): Now a macro.
8327
8328         * diagnostic.c (diagnostic_buffer): Remove definition.
8329         (output_is_line_wrapping): Adjust.
8330         (set_real_maximum_length): Likewise.
8331         (output_set_maximum_length): Likewise.
8332         (init_output_buffer): Likewise.
8333         (lhd_print_error_function): Likewise.
8334         (output_do_verbatim): Likewise.
8335
8336 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
8337
8338         * cpperror.c (print_location): Don't print include chain
8339         if line == 0.
8340         (cpp_begin_message): Update to use DL_ macros.
8341         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
8342         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
8343         cpp_notice, cpp_notice_from_errno): Remove.
8344         (cpp_error, cpp_error_with_line): Update to take a diagnostic
8345         level.
8346         (cpp_errno): New.
8347         * cppexp.c (CPP_ICE): Remove.
8348         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
8349         lex, integer_overflow, _cpp_parse_expr): Update.
8350         * cppfiles.c (read_include_file, find_include_file,
8351         handle_missing_header, _cpp_read_file, remap_filename): Update.
8352         * cpphash.h (enum error_type): Remove.
8353         (_cpp_begin_message): Update.
8354         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
8355         cpp_handle_option, cpp_post_options): Update.
8356         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
8357         skip_whitespace, parse_identifier, parse_slow, parse_string,
8358         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
8359         cpp_interpret_charconst): Update.
8360         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
8361         lex_macro_node, do_undef, glue_header_name, parse_include,
8362         do_include_common, read_flag, do_line, do_linemarker, do_ident,
8363         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
8364         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
8365         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
8366         _cpp_pop_buffer, do_diagnostic): Update.
8367         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
8368         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
8369         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
8370         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
8371         cpp_notice, cpp_notice_from_errno): Remove.
8372         (cpp_error, cpp_error_with_line): Update to take a diagnostic
8373         level.
8374         (cpp_errno): New.
8375         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
8376         collect_args, enter_macro_context, save_parameter, parse_params,
8377         _cpp_create_definition, check_trad_stringification,
8378         cpp_macro_definition): Update.
8379         * cppmain.c (cpp_preprocess_file): Update.
8380         * fix-header.c (read_scan_file): Update.
8381
8382 2002-04-14  Andreas Schwab  <schwab@suse.de>
8383
8384         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
8385
8386 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
8387
8388         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
8389
8390 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
8391
8392         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
8393         not gnu_hurd.
8394
8395 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
8396
8397         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
8398
8399 2002-04-13      Joel Sherrill <joel@OARcorp.com>
8400
8401         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
8402         sparc-elf and sparc-rtems targets.
8403
8404 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
8405
8406         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
8407         defined, and __gnu_hurd__ wherever __GNU__ is defined.
8408         * arm/linux-elf.h: Likewise.
8409         * cris/aout.h: Likewise.
8410         * cris/linux.h: Likewise.
8411         * i370/linux.h: Likewise.
8412         * i386/gnu.h: Likewise.
8413         * i386/linux-aout.h: Likewise.
8414         * i386/linux-oldld.h: Likewise.
8415         * i386/linux.h: Likewise.
8416         * i386/linux64.h: Likewise.
8417         * ia64/linux.h: Likewise.
8418         * m68k/linux-aout.h: Likewise.
8419         * m68k/linux.h: Likewise.
8420         * mips/linux.h: Likewise.
8421         * pa/pa-linux.h: Likewise.
8422         * pj/linux.h: Likewise.
8423         * rs6000/sysv4.h: Likewise.
8424         * s390/linux.h: Likewise.
8425         * sh/linux.h: Likewise.
8426         * sparc/linux-aout.h: Likewise.
8427         * sparc/linux.h: Likewise.
8428         * sparc/linux64.h: Likewise.
8429         * xtensa/linux.h: Likewise.
8430
8431 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
8432
8433         * stmt.c (check_unique_operand_names): Expect operand names to
8434         be strings rather than identifiers.  Use simple_cst_equal to
8435         compare them.
8436         (resolve_operand_name_1): Make same identifier to string change here.
8437         * c-parse.in (asm_operand): Convert a named operand into a string.
8438         * cp/parse.y (asm_operand): Likewise.
8439
8440 2002-04-13  Andreas Schwab  <schwab@suse.de>
8441
8442         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
8443
8444 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
8445
8446         Revert these changes:
8447
8448         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
8449
8450         PR c++/5571
8451         * stor-layout.c (layout_decl): Reset the RTL for the decl.
8452
8453 2002-04-12  Richard Henderson  <rth@redhat.com>
8454
8455         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
8456         (sparc*-*-solaris): Clean up header files.
8457         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
8458         and plan on generating 64-bit code.
8459         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
8460         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
8461         * config/sparc/sol2-sld-64.h: Rename ...
8462         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
8463         for AS_SPARC64_FLAG not defined.
8464         * config/sparc/sol2-gld-bi.h: New.
8465         * config/sparc/sol2-sld.h: Remove.
8466         * config/sparc/sol26-sld.h: New.
8467         * config/sparc/sol2.h: Tidy comments.
8468         * doc/install.texi: Document sparc-solaris configury changes.
8469
8470 2002-04-12  Richard Henderson  <rth@redhat.com>
8471
8472         * recog.c (offsettable_address_p): Match the logic in adjust_address.
8473
8474         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
8475         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
8476
8477 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8478
8479         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
8480
8481 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
8482
8483         * pa.c (pa_can_combine_p): Call extract_insn before calling
8484         constrain_operands.
8485
8486 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
8487
8488         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
8489         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
8490         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
8491         (CPP_PREDEFINES): Handle __declspec.
8492         * config/i386/t-interix (USER_H): Remove.
8493
8494 2002-04-12  DJ Delorie  <dj@redhat.com>
8495
8496         * integrate.c (compare_blocks): Make comparisons safe for when
8497         sizeof(int) < sizeof(char *).
8498         (find_block): Likewise.
8499
8500 2002-04-12  Jan Hubicka  <jh@suse.cz>
8501             David Edelsohn  <edelsohn@gnu.org>
8502
8503         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
8504         registers.
8505         (symbol_ref_operand): New.
8506         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
8507         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
8508
8509 2002-04-12  Andreas Schwab  <schwab@suse.de>
8510
8511         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
8512         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
8513         overrides the definition in config/svr4.h.
8514
8515 2002-04-12      Eric Norum <eric.norum@usask.ca>
8516
8517         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
8518         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
8519         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
8520         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
8521         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
8522         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
8523         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
8524         definitions to config/rtems.h and make the targets more similar.
8525
8526 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8527
8528         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
8529         POINTERS_EXTEND_UNSIGNED.
8530         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
8531         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
8532
8533         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
8534         not specified.
8535
8536 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
8537
8538         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
8539         depends on TARGET_SHMEDIA, not TARGET_SH5.
8540
8541 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
8542
8543         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
8544         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
8545
8546 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
8547
8548         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
8549         no r0 clobber.
8550
8551 2002-04-12  Andreas Schwab  <schwab@suse.de>
8552
8553         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
8554
8555 2002-04-12  Richard Henderson  <rth@redhat.com>
8556
8557         PR bootstrap/4191
8558         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
8559
8560         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
8561         modes spanning multiple hard regs.
8562
8563         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
8564
8565 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8566
8567         * pa.c (pa_output_function_prologue): Don't accumulate the total
8568         number of code bytes when using TARGET_64BIT, or gas, SOM and not
8569         the portable runtime.
8570         (output_deferred_plabels): Handle 64bit plabels.
8571         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
8572         generating pic code using the GAS assembler for object formats that
8573         are not SOM (ie., ELF32 and ELF64).
8574         (output_millicode_call): Check attribute type if attribute length is 28.
8575         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
8576         dbr_sequence_length once.
8577         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
8578         dbr_sequence_length once.
8579         * pa.h (TARGET_SOM): Define if not defined.
8580         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
8581         with GAS and not SOM.
8582         (jump, call_internal_reg, call_value_internal_reg): Likewise.
8583         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
8584
8585 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
8586
8587         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
8588         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
8589         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
8590         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
8591         elfos.h and dbxelf.h values are fine now.
8592         * config/i386/freebsd.h, config/alpha/freebsd.h
8593         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
8594
8595 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
8596
8597         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
8598         or set Acpu or Amachine.  Reformat.
8599         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
8600         define.
8601         (LINK_SPEC): Do not need to undef.
8602         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
8603         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
8604         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
8605         define.
8606         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
8607         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
8608         (LINK_SPEC): Do not need to undef.
8609         (DONT_USE_BUILTIN_SETJMP): Do not define.
8610         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
8611         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
8612         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
8613         Remove trailing spaces.
8614         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
8615         __ELF__, or set Acpu or Amachine.  Reformat.
8616         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
8617         define.
8618
8619 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
8620
8621         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
8622         all other *-*-freebsd* targets.
8623
8624 2002-04-11  Richard Henderson  <rth@redhat.com>
8625
8626         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
8627
8628 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
8629
8630         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
8631         Include {cpu}/{cpu}.h thru tm_file.
8632         (alpha*-*-linux*ecoff): Remove target.
8633         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
8634         (LINK_SPEC): Remove, is not OS independent.
8635         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
8636         (LINK_SPEC): Do not need to #undef any longer.
8637         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
8638         any longer.
8639         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
8640         __ELF__.
8641         (LINK_SPEC): Moved here from alpha/elf.h.
8642         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
8643         SUB_CPP_PREDEFINES.
8644         * config/alpha/linux-ecoff.h: Remove.
8645         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
8646         (CPP_SPEC): Define _POSIX_SOURCE as needed.
8647         (CPP_SUBTARGET_SPEC): Do not define.
8648         (LINK_SPEC): Do not need to #undef any longer.
8649         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
8650         * config/alpha/vms.h: Likewise.
8651
8652 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
8653
8654         * doc/extend.texi: Remove old claim that typedefs cannot have
8655         an alignment attribute.
8656
8657 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
8658
8659         PR optimization/6177
8660         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
8661         bitpos is 0 and bitsize CONCAT size.
8662
8663 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
8664
8665         PR c/6223
8666         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
8667
8668 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
8669
8670         * config/alpha/freebsd.h: Minor reformatting.
8671         (CPP_SPEC): Define ELF and add cpp_subtarget.
8672         (ASM_SPEC): No longer needed.
8673
8674 2002-04-11  Richard Henderson  <rth@redhat.com>
8675
8676         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
8677         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
8678         (dimode mem/zero splitter): New.
8679
8680 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
8681
8682         * config/cris/cris.c (cris_override_options): Tweak error message
8683         for PIC not implemented.
8684
8685         * config/cris/cris.h: Tweak comments related to parameter-passing.
8686
8687         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
8688
8689 2002-04-10  Richard Henderson  <rth@redhat.com>
8690
8691         * except.c (add_ehl_entry): Allow duplicates after landing pad
8692         creation.
8693
8694 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
8695
8696         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
8697
8698 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
8699
8700         * c-decl.c (c_init_decl_processing): Move generation of
8701         decls for g77_integer_type_node and friends from here ...
8702         * c-common.c (c_common_nodes_and_builtins): ... to here.
8703
8704 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
8705
8706         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
8707         is only used as frame pointer when frame_pointer_needed is true.
8708
8709 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
8710
8711         PR target/817
8712         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
8713         for the fact that the pool entry uses two words.
8714         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
8715         1k bytes.
8716         (movdf_soft_insn): Similarly.
8717         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
8718         for the fact that the pool entry uses three words.
8719
8720 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
8721
8722         * config/mips/mips.c (mips_va_arg): When using the struct version
8723         of the EABI va_list, allow arguments in the register save area to
8724         take up less room than a stack argument.
8725
8726 2002-04-10  Richard Henderson  <rth@redhat.com>
8727
8728         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
8729         if EXPAND_INITIALIZER.
8730
8731 2002-04-09  Richard Henderson  <rth@redhat.com>
8732
8733         * config/alpha/alpha.md (movdi_er_maybe_g): New.
8734         * config/alpha/alpha.c (alpha_expand_mov): Use it.
8735
8736 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
8737
8738         PR optimization/6233
8739         * rtlanal.c (pure_call_p): New function.
8740         * rtl.h (pure_call_p): Declare.
8741         * loop.c (prescan_loop): Use it to set has_nonconst_call.
8742         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
8743
8744 2002-04-09  Eric Christopher  <echristo@redhat.com>
8745
8746         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
8747         information to .comm directive.
8748
8749 2002-04-09  Richard Henderson  <rth@redhat.com>
8750
8751         PR c/5078
8752         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
8753
8754 2002-04-09  Richard Henderson  <rth@redhat.com>
8755
8756         * basic-block.h (flow_delete_block_noexpunge): Declare.
8757         (expunge_block_nocompact): Declare.
8758         * cfg.c (expunge_block_nocompact): Split out from ...
8759         (expunge_block): ... here.
8760         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
8761         (flow_delete_block_noexpunge): Split out from ...
8762         (flow_delete_block): ... here.
8763         * cfgcleanup.c (delete_unreachable_blocks): Compact while
8764         removing dead blocks.
8765         * except.c (exception_handler_labels): Remove.
8766         (exception_handler_label_map): New.
8767         (struct eh_region): Add aka member.
8768         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
8769         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
8770         (for_each_eh_label, for_each_eh_label_1): New.
8771         (init_eh): Register exception_handler_label_map.
8772         (free_eh_status): Use free_region.
8773         (find_exception_handler_labels): Use the map, not the list.
8774         (remove_exception_handler_label): Likewise.
8775         (maybe_remove_eh_handler): Likewise.
8776         (remove_eh_handler): Use the region aka bitmap.
8777         * except.h (exception_handler_labels): Remove.
8778         (for_each_eh_label): Declare.
8779         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
8780         * loop.c (invalidate_loops_containing_label): New.
8781         (find_and_verify_loops): Use it.  Use for_each_eh_label.
8782         * sched-rgn.c (is_cfg_nonregular): Use
8783         current_function_has_exception_handlers.
8784
8785 2002-04-09  Richard Henderson  <rth@redhat.com>
8786
8787         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
8788         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
8789         Do not return changed status.
8790         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
8791         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
8792         New functions that do return changed status.
8793         * sbitmap.h: Update decls.
8794         * gcse.c, lcm.c: Use _cg functions as needed.
8795
8796 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
8797
8798         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
8799         (sh64-*-elf*, sh-*-rtemself*): Likewise.
8800         * config/sh/embed_bb.c: New file.
8801         * config/sh/embed-elf.h: New file.
8802         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
8803         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
8804         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
8805         __PTRDIFF_TYPE__ .
8806         (SUBTARGET_CPP_PTR_SPEC): Don't define.
8807         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
8808         Add subtarget_asm_endian_spec.
8809         (ASM_SPEC): Use subtarget_asm_endian_spec.
8810         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
8811         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
8812         (WCHAR_UNSIGNED): Define.
8813         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
8814         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
8815         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
8816         Fix value.
8817         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
8818         (sh_adjust_cost): Likewise.
8819         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
8820         __PTRDIFF_TYPE__ .
8821         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
8822         (WCHAR_TYPE_SIZE): Likewise.
8823         (ASM_SPEC): Use subtarget_asm_endian_spec.
8824         (SH_ELF_WCHAR_TYPE): #undef/ #define.
8825         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
8826         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
8827         (MAX_WCHAR_TYPE_SIZE): Don't #define .
8828         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
8829         (USER_LABEL_PREFIX): Don't #undef /#define .
8830         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
8831         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
8832         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
8833         (ASM_SPEC): Likewise.
8834         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
8835         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
8836         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
8837         (LIB2FUNCS_EXTRA): Define.
8838         * t-sh64 (LIB2FUNCS_EXTRA): Define.
8839         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
8840         (LIB1ASMFUNCS_CACHE): Define.
8841         (LIB2FUNCS_EXTRA): Redefine empty.
8842
8843 2002-04-08  Richard Henderson  <rth@redhat.com>
8844
8845         * reorg.c (get_branch_condition): Use reversed_comparison_code.
8846
8847 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8848
8849         * config/m68hc11/larith.asm (__map_data_section): Fix condition
8850         and optimize for size.
8851         (__do_global_ctors): Fix pointer comparison.
8852         (__do_global_dtors): Likewise.
8853
8854 2002-04-09  David S. Miller  <davem@redhat.com>
8855
8856         * config/sparc/sparc.c (sparc_extra_constraint_check): New
8857         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
8858         allow reloading pseudos.
8859         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
8860         * config/sparc/sparc-protos.h: Declare it.
8861
8862         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
8863         unsigned comparison warning.
8864         (output_restore_regs): Mark leaf_function as unused.
8865
8866 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8867
8868         * expr.c (is_aligning_offset): New function.
8869         (expand_expr, case COMPONENT_EXPR): Call it.
8870
8871 2002-04-08  David S. Miller  <davem@redhat.com>
8872
8873         PR target/6082
8874         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
8875
8876         Make init_priority work on Sparc when using GNU ld.
8877         * config/sparc/linux.h, config/sparc/linux64.h,
8878         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
8879         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
8880         * config/sparc/sol2-gld.h: New file to do the same.
8881         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
8882         sparc/sol2-gld.h to tm_file.
8883
8884         PR optimization/4328
8885         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
8886         * doc/md.texi: Document it.
8887         * config/sparc/sparc.md (movdi_insn_sp64_novis,
8888         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
8889         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
8890         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
8891         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
8892
8893 2002-04-08  Andreas Jaeger  <aj@suse.de>
8894
8895         * stmt.c (expand_asm_operands): Revert last patch from Richard
8896         Henderson.
8897
8898 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8899
8900         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
8901         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
8902
8903 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8904
8905         * doc/contrib.texi (Contributors): Add David O'Brien.
8906
8907 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
8908
8909         * configure.in (auto-build.h): Use target_alias and build_alias
8910         when running configure.
8911         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
8912         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
8913         * configure: Regenerate.
8914
8915 2002-04-07  David S. Miller  <davem@redhat.com>
8916
8917         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
8918
8919 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8920
8921         PR 5933
8922         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
8923         generating 32-bit pic code.
8924
8925 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
8926
8927         * cppinit.c (cpp_create_reader): Initialize
8928         discard_comments_in_macro_exp.
8929         (COMMAND_LINE_OPTIONS): Add "-CC" option.
8930         (cpp_handle_option): Handle "-CC" option.
8931         * cpplex.c (save_comment): If saving a C++ comment in
8932         a directive, convert it to a C comment.
8933         (_cpp_lex_direct): Pass second comment start character to
8934         save_comment to indicate comment type.
8935         * cpplib.c (_cpp_handle_directive): If processing
8936         a "#define" directive and discard_comments_in_macro_exp
8937         is false,  re-enable saving of comments.
8938         (lex_macro_node): If discard_comments_in_macro_exp is false,
8939         discard any comments before the macro identifier.
8940         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
8941         member.
8942         * cppmacro.c (cpp_get_token): If expanding a macro while
8943         processing a directive, discard any comments we might encounter.
8944         (parse_params): If discard_comments_in_macro_exp is false,
8945         ignore comments in the macro parameter list.
8946         * gcc.c (cpp_unique_options): Add "-CC" option.
8947         (option_map): Map "--comments-in-macros" to "-CC".
8948         * doc/cppopts.texi: Document "-CC" option.
8949         * f/lang-specs.h: Add "-CC" option.
8950         * testsuite/gcc.dg/cpp/maccom1.c: New test.
8951         * testsuite/gcc.dg/cpp/maccom2.c: New test.
8952         * testsuite/gcc.dg/cpp/maccom3.c: New test.
8953         * testsuite/gcc.dg/cpp/maccom4.c: New test.
8954         * testsuite/gcc.dg/cpp/maccom5.c: New test.
8955         * testsuite/gcc.dg/cpp/maccom6.c: New test.
8956
8957 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8958
8959         PR middle-end/6180
8960         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
8961
8962 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
8963
8964         PR c++/5571
8965         * stor-layout.c (layout_decl): Reset the RTL for the decl.
8966
8967         PR opt/5120
8968         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
8969         RTX_UNCHANGING_P for the functions arguments when a tail call
8970         is made.
8971
8972 2002-04-06  Jason Merrill  <jason@redhat.com>
8973
8974         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
8975         (parse_options_and_default_flags): Set them appropriately.
8976         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
8977
8978 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
8979
8980         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
8981         here.
8982
8983         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
8984         semicolon.
8985
8986         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
8987         types come in by-reference.  Fix typo in comment.
8988
8989 2002-04-05  David S. Miller  <davem@redhat.com>
8990
8991         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
8992         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
8993         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
8994         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
8995
8996 2002-04-05  David S. Miller  <davem@redhat.com>
8997
8998         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
8999         are not going to emit return instructions, emit at least a nop
9000         for the sake of sane backtraces.
9001
9002 2002-04-05  Richard Henderson  <rth@redhat.com>
9003
9004         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
9005
9006 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
9007
9008         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
9009
9010 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
9011
9012         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
9013         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
9014         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
9015
9016 2002-04-05  Andreas Schwab  <schwab@suse.de>
9017
9018         * c-convert.c: Include c-common.h.
9019         * Makefile.in (c-convert.o): Updated.
9020
9021 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
9022
9023         * mklibgcc.in: Use separate libgcc.map for each multilib.
9024         * Makefile.in (distclean): Don't remove libgcc.map here.
9025
9026 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
9027
9028         * Makefile.in (s-mlib): Handle --disable-multilib by separate
9029         genmultilib invocation.
9030
9031 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
9032
9033         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
9034         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
9035         to num_gprs for symmetry.
9036         * config/mips/mips.c: Adjust accordingly.
9037
9038 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9039
9040         * c-common.c (truthvalue_conversion): Rename, update.
9041         * c-common.h (c_common_truthvalue_conversion): New.
9042         * c-convert.c (convert): Update.
9043         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
9044         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
9045         * c-typeck.c (build_binary_op, build_unary_op,
9046         build_conditional_expr): Update.
9047         * fold-const.c (constant_boolean_node, fold): Use langhook.
9048         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
9049         * langhooks.h (struct lang_hooks): New hook.
9050         * stmt.c (expand_decl_cleanup): Use langhook.
9051         * tree.h (truthvalue_conversion): Remove.
9052 objc:
9053         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
9054
9055 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
9056
9057         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
9058         Add rules to make null object file.
9059
9060 2002-04-04  Jim Blandy  <jimb@redhat.com>
9061
9062         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
9063         macro formal parameter names.
9064
9065 2002-04-04  David S. Miller  <davem@redhat.com>
9066
9067         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
9068
9069 2002-04-04  Richard Henderson  <rth@redhat.com>
9070
9071         PR middle-end/5099
9072         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
9073         Support copies into and out of memory.  Don't accept allows_reg
9074         and allows_mem as gospel.
9075
9076 2002-04-04  Richard Henderson  <rth@redhat.com>
9077
9078         PR opt/6165
9079         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
9080         (write_dependence_p): Likewise.
9081
9082 2002-04-04  Richard Henderson  <rth@redhat.com>
9083
9084         * predict.c (estimate_bb_frequencies): Do frequency calculation
9085         with a volatile temporary.
9086
9087 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
9088
9089         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
9090
9091 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9092
9093         PR c++/6119
9094         * final.c (final_start_function): Don't bump profile_label_no here...
9095         (final_end_function): ...but here.
9096
9097 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9098
9099         * config/sparc/sparc.md (pic): New attribute.
9100         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
9101         into stack slots.
9102         (split after do_builtin_setjmp_setup): New.
9103
9104 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9105
9106         PR fortran/6106
9107         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
9108         change.
9109
9110 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9111
9112         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
9113         UNITS_PER_WORD for zero sized aggregates.
9114
9115 2002-04-03  David S. Miller  <davem@redhat.com>
9116
9117         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
9118         one-character spec for this, just use %(link_gcc_c_sequence).
9119
9120 2002-04-03  David S. Miller  <davem@redhat.com>
9121
9122         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
9123         handling.
9124
9125 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9126
9127         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
9128         (DWARF_FRAME_RETURN_COLUMN): Move.
9129         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9130         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
9131         * pa.c (except.h, predict.h): Include.
9132         (FRP): Delete.
9133         (store_reg_modify, set_reg_plus_d): Revise prototypes.
9134         (output_ascii): Add cast.
9135         (store_reg_modify): Revise to add frame notes.
9136         (set_reg_plus_d): Likewise.
9137         (compute_frame_size): Include space for eh data registers in frame if
9138         the current function calls eh_return.
9139         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
9140         function calls eh_return.  Save eh data registers if the current
9141         function calls eh_return.  Fix code to add frame notes.  Emit
9142         blockage to prevent insns with frame notes being scheduled in the
9143         delay slot of calls.
9144         (hppa_expand_epilogue): Restore eh data registers and do final stack
9145         adjustment if the current function calls eh_return.  Don't add frame
9146         notes.
9147         (output_call): Revise for change in length of call insn.  Don't do
9148         return pointer adjustment for an unconditional jump in the delay slot
9149         of a call when using frame notes.
9150         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
9151         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
9152         (ARG_POINTER_CFA_OFFSET): Define.
9153         * pa.md (return_external_pic): New pattern.
9154         (prologue): Correct formatting.  Use return_external_pic if current
9155         function calls eh_return.
9156         (call_internal_symref, call_value_internal_symref,
9157         sibcall_internal_symref, sibcall_value_internal_symref): Change default
9158         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
9159         respectively.
9160         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
9161
9162         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
9163         list of targets to check using "nop" insn.
9164         * configure: Rebuilt.
9165
9166 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
9167
9168         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
9169
9170 2002-04-03  David S. Miller  <davem@redhat.com>
9171
9172         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
9173         library sequence passed to the linker.
9174         (LINK_COMMAND_SPEC): Use it.
9175         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
9176         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
9177         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
9178
9179 2002-04-03  Jason Merrill  <jason@redhat.com>
9180
9181         * except.c (struct eh_status): Remove protect_list.
9182         (begin_protect_partials, end_protect_partials): Remove.
9183         (add_partial_entry): Remove.
9184         * except.h: Remove prototypes.
9185
9186         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
9187         expand_decl_cleanup_eh.
9188
9189         PR c++/5636
9190         * tree.h (CLEANUP_EH_ONLY): New macro.
9191         * stmt.c (expand_decl_cleanup_eh): New fn.
9192         (expand_cleanups): Check CLEANUP_EH_ONLY.
9193         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
9194         Use expand_decl_cleanup_eh.
9195         (expand_stmt): Adjust.
9196         * c-common.h: Adjust prototype.
9197
9198 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
9199
9200         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
9201         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
9202         (cris_target_asm_function_epilogue): Ditto.
9203         (cris_initial_frame_pointer_offset): Ditto.
9204         (cris_simple_epilogue): Ditto.
9205         (cris_expand_builtin_va_arg): Variable-size types come in
9206         by-reference.
9207
9208 2002-04-03  David S. Miller  <davem@redhat.com>
9209
9210         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
9211         little-endian.
9212         (set_fast_math): Correct 'fsr' type.
9213
9214 2002-04-03  Richard Henderson  <rth@redhat.com>
9215
9216         PR opt/3569
9217         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
9218         * toplev.c (check_global_declarations): Use it.
9219         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
9220         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
9221         (LANG_HOOKS_DECLS): Add it.
9222         * langhooks.c (lhd_warn_unused_global_decl): New.
9223         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
9224         * c-objc-common.c (c_warn_unused_global_decl): New.
9225         * c-tree.h (c_warn_unused_global_decl): Declare.
9226         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
9227
9228 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
9229
9230         * langhooks-def.h (lhd_set_decl_assembler_name,
9231         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
9232         (LANG_HOOKS_INITIALIZER): Update.
9233         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
9234         * langhooks.h (struct lang_hooks): New hook.
9235         * tree.c (set_decl_assembler_name): Move to langhooks.c.
9236         (lang_set_decl_assembler_name): Remove.
9237         (init_obstacks): Don't set hook.
9238         (decl_assembler_name): New function.
9239         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
9240         (decl_assembler_name): New.
9241         (lang_set_decl_assembler_name): Remove.
9242
9243 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
9244
9245         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
9246         works properly with .hidden symbols.
9247         * configure: Rebuilt.
9248         * config.in: Rebuilt.
9249         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
9250         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
9251         properly with .hidden symbols.
9252
9253 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
9254
9255         PR middle-end/6102
9256         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
9257         USE argument.
9258
9259 2002-04-03  Richard Henderson  <rth@redhat.com>
9260
9261         PR opt/4120
9262         * sched-rgn.c (sets_likely_spilled): New.
9263         (sets_likely_spilled_1): New.
9264         (add_branch_dependences): Use it.
9265
9266 2002-04-02  Richard Henderson  <rth@redhat.com>
9267
9268         PR opt/4311
9269         * loop.h (LOOP_FIRST_PASS): New.
9270         * loop.c (strength_reduce): Mind it when deciding to unroll.
9271         * toplev.c (rest_of_compilation): Set it.
9272
9273 2002-04-02  David S. Miller  <davem@redhat.com>
9274
9275         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
9276         mems_ok_for_ldd_peep when the order of the loads being examined
9277         is reversed.
9278         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
9279         existing comment to increase comprehension of this situation.
9280
9281 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
9282
9283         * config/sh/sh.md: Don't use union real_extract.
9284
9285 2002-04-02  Richard Henderson  <rth@redhat.com>
9286
9287         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
9288
9289 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
9290
9291         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
9292         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
9293         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
9294         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
9295         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
9296         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
9297         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
9298         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
9299         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
9300         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
9301         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
9302         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
9303         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
9304         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
9305         Include as many configury headers via tm_file as possible.  This
9306         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
9307         * config/openbsd-oldgas.h: New file.
9308         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
9309         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
9310         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
9311         config/i386/i386-coff.h, config/i386/i386-interix.h,
9312         config/i386/iscdbx.h, config/i386/linux-aout.h,
9313         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
9314         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
9315         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
9316         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
9317         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
9318         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
9319         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
9320         config/i386/vxi386.h: Do not directly include configury headers.
9321         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
9322         Directly include configury headers that are no longer automatically
9323         included by the above headers.
9324         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
9325         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
9326         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
9327         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
9328         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
9329         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
9330         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
9331         (TARGET_VERSION): Define.
9332         * config/i386/beos-elf.h, config/i386/freebsd.h,
9333         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
9334         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
9335         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
9336         config/i386/sco5.h, config/i386/sysv4.h
9337         (TARGET_VERSION): Do not need to protect.
9338         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
9339         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
9340         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
9341         config/i386/i386-interix.h, config/i386/linux-aout.h,
9342         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
9343         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
9344         (YES_UNDERSCORES): Do not define - not needed.
9345         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
9346         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
9347         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
9348         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
9349         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
9350         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
9351         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
9352         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
9353
9354 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
9355             Richard Henderson  <rth@redhat.com>
9356
9357         PR c/5484
9358         * function.c (assign_temp): Accept either type or decl argument.
9359         Detect variables whose size is too large to fit into an integer.
9360         * stmt.c (expand_decl): Pass the decl, not the type.
9361
9362 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
9363
9364         * protoize.c: Match include directory usage with cppdefault.c.
9365
9366 2002-04-03  Jeffrey A Law  (law@redhat.com)
9367             Hans-Peter Nilsson  <hp@bitrange.com>
9368
9369         * combine.c (simplify_comparison): Avoid narrowing a comparison
9370         with a paradoxical subreg when doing so would drop signficant bits.
9371
9372 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
9373
9374         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
9375         if POINTERS_EXTEND_UNSIGNED is defined.
9376
9377 2002-04-02  Richard Henderson  <rth@redhat.com>
9378
9379         PR opt/3967
9380         * local-alloc.c (contains_replace_regs): LO_SUM may contain
9381         replace regs.
9382
9383 2002-04-02  Richard Henderson  <rth@redhat.com>
9384
9385         * doc/standards.texi: Document required freestanding libc entry points.
9386
9387 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
9388
9389         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
9390         associated splitter.  Remove MQ constraint.
9391         (ctrdi_internal4): Correct CCmode clobber.
9392
9393 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9394
9395         * milli64.S ($$dyncall): New function.
9396         * t-linux (LIB1ASMFUNCS): Revise module list.
9397         (LIB1ASMSRC): Use pa/milli64.S.
9398
9399 2002-04-02  Richard Henderson  <rth@redhat.com>
9400
9401         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
9402         rename solaris_sys_varargs_h.
9403
9404 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9405
9406         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
9407         the same mode as its component.
9408
9409 2002-04-02  Richard Henderson  <rth@redhat.com>
9410
9411         PR opt/190
9412         * final.c (this_is_asm_operands): Export.
9413         * output.h (this_is_asm_operands): Declare.
9414         * config/i386/i386.c (print_operand): Error odd asm operands.
9415
9416 2002-04-02  Richard Henderson  <rth@redhat.com>
9417
9418         PR opt/420
9419         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
9420
9421 2002-04-01  Richard Henderson  <rth@redhat.com>
9422
9423         PR target/1538
9424         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
9425         * fixinc/fixincl.x: Rebuild.
9426
9427 2002-04-01  Richard Henderson  <rth@redhat.com>
9428
9429         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
9430         (atomic_alloc, atomic_free): New.
9431         (SIZE, MASK_FOR, PTR_IN): New.
9432         (emergency_reg_state, emergency_reg_state_free): New.
9433         (emergency_labeled_state, emergency_labeled_state_free): New.
9434         (reg_state_alloced, labeled_state_alloced): New.
9435         (alloc_reg_state, free_reg_state): New.
9436         (alloc_label_state, free_label_state, free_label_states): New.
9437         (push, pop, dup_state_stack, free_state_stack): Use them.
9438         (desc_label_state): Likewise.
9439         (uw_frame_state_for): Free label states and state stack.
9440         (uw_update_reg_address): Eliminate warnings.
9441
9442 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
9443
9444         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
9445         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
9446
9447 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
9448
9449         * c-decl.c (grokdeclarator): Update.
9450         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
9451         * c-tree.h (c_mark_addressable): New.
9452         * c-typeck.c (default_function_array_conversion, build_unary_op,
9453         build_array_ref, convert_for_assignment): Update.
9454         (mark_addressable): Rename.
9455         * calls.c (try_to_integrate, expand_call): Use langhook.
9456         * expr.c (expand_expr): Use langhook.
9457         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
9458         * langhooks.h (struct lang_hooks): New hook.
9459         * stmt.c (expand_asm_operands): Use langhook.
9460         * tree.h (mark_addressable): Remove.
9461 objc:
9462         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
9463
9464 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
9465
9466         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
9467         in previous change.
9468
9469 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
9470
9471         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
9472         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
9473
9474 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
9475
9476         * c-common.c (unsigned_conversion_warning, convert_and_check,
9477         unsigned_type, signed_type, shorten_compare,
9478         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
9479         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
9480         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
9481         New.
9482         * c-decl.c (grokdeclarator): Update.
9483         * c-format.c (check_format_types): Update.
9484         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
9485         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
9486         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
9487         * convert.c (convert_to_integer): Use new hooks.
9488         * expmed.c (make_tree): Use new hooks.
9489         * expr.c (store_expr): Use new hooks.
9490         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
9491         all_ones_mask_p, unextend, fold): Use new hooks.
9492         * langhooks.h (struct lang_hooks_for_types): New hooks.
9493         * tree.h (signed_or_unsigned_type, signed_type,
9494         unsigned_type): Remove.
9495 objc:
9496         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
9497         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
9498
9499 2002-03-31  Richard Henderson  <rth@redhat.com>
9500
9501         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
9502         (desc_frgr_mem): Fix reference to f16-f31.
9503
9504 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9505
9506         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
9507         RTVEC_ELT): Const-ify.
9508         * varray.h (VARRAY_CHECK): Const-ify.
9509         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
9510         ggc_mark_rtvec, ggc_mark): Const-ify.
9511
9512 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
9513
9514         * diagnostic.c: Include langhooks-def.h.
9515         * Makefile.in (diagnostic.o): Update.
9516
9517 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
9518
9519         * c-common.c (c_unsafe_for_reeval): Rename.
9520         * c-common.h (c_unsafe_for_reeval): Rename.
9521         * c-decl.c (finish_incomplete_decl): Rename.
9522         (c_init_decl_processing): Don't set langhook.
9523         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
9524         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
9525         * c-objc-common.c (c_objc_common_init): Don't set langhook.
9526         * c-tree.h (finish_incomplete_decl): Rename.
9527         * langhooks-def.h (lhd_unsafe_for_reeval): New.
9528         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
9529         (LANG_HOOKS_INITIALIZER): Update.
9530         * langhooks.c (lhd_unsafe_For_reeval): New.
9531         * langhooks.h (struct langhooks): New hooks.
9532         * toplev.c (incomplete_decl_finalize_hook): Remove.
9533         (wrapup_global_declarations): Update.
9534         * tree.c (lang_unsafe_for_reeval): Remove.
9535         (unsafe_for_reeval): Update.
9536         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
9537         Remove.
9538 objc:
9539         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
9540         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
9541
9542 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
9543
9544         * diagnostic.c (print_error_function): Remove.
9545         (default_print_error_function): Rename.
9546         (report_error_function): Update.
9547         * diagnostic.h (print_error_function): Remove.
9548         (default_print_error_function): Remove.
9549         * langhooks-def.h (struct diagnostic_context): Predeclare.
9550         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
9551         (LANG_HOOKS_INITIALIZER): Update.
9552         * langhooks.h (struct diagnostic context): Predeclare.
9553         (struct lang_hooks): New hook.
9554
9555 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9556
9557         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
9558         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
9559         !flag_pic.
9560         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
9561         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
9562         of PIC_OFFSET_TABLE_REGNUM thruout.
9563         * config/rs6000/rs6000.md: Likewise.
9564         * config/rs6000/darwin.h: Likewise.
9565
9566 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9567
9568         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
9569         unsigned HOST_WIDE_INT, not unsigned int.
9570
9571 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
9572
9573         PR middle-end/6096, middle-end/6098, middle-end/6099
9574         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
9575         CODE_LABELs.
9576         (fill_slots_from_thread): Likewise.
9577
9578 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
9579
9580         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
9581         floating fields in float regs.
9582         (function_arg_record_value_2): Likewise.
9583
9584 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
9585
9586         * config/mmix/mmix.md (define_constants): Remove misleading
9587         FIXME.  Add MMIX_fp_rO_OFFSET.
9588         ("nonlocal_goto_receiver"): Don't have stack-frame address of
9589         saved rO as part of the pattern.  Remove FIXME.
9590         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
9591         here, at output-time.
9592
9593 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
9594
9595         PR middle-end/6100
9596         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
9597         REG_BR_PRED.
9598         (output_v9branch): Likewise.
9599
9600 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
9601
9602         * gcc.c: Revert previous patch for now.
9603         * config/i386/djgpp.h: Likewise.
9604
9605 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
9606
9607         * config/mmix/crti.asm (_init): Register _fini with atexit.
9608         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
9609
9610 2002-03-31  Richard Henderson  <rth@redhat.com>
9611
9612         PR target/3997
9613         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
9614         (ASM_OUTPUT_DEF_FROM_DECLS): New.
9615
9616 2002-03-31  Richard Henderson  <rth@redhat.com>
9617
9618         * libgcc2.c (__bb_exit_func): Make static.
9619
9620         * config/alpha/alpha.md (trap): New.
9621
9622 2002-03-31  Richard Henderson  <rth@redhat.com>
9623
9624         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
9625         promoted argument types; build trap.
9626         (expand_builtin_trap): New.
9627         (expand_builtin): Use it.
9628         * stmt.c (expand_nl_goto_receivers): Likewise.
9629         * expr.h (expand_builtin_trap): Declare.
9630         * libfuncs.h (LTI_abort, abort_libfunc): New.
9631         * optabs.c (init_optabs): Init abort_libfunc.
9632
9633 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
9634
9635         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
9636         (LINK_COMMAND_SPEC): ... from here.
9637         (init_gcc_specs): Duplicate it here too, omitting
9638         shared_name in the second copy.
9639         (init_spec): Test for duplicate
9640         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
9641
9642 2002-03-30  David S. Miller  <davem@redhat.com>
9643
9644         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
9645         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
9646
9647 2002-03-30  Roger Sayle <roger@eyesopen.com>
9648             Richard Henderson  <rth@redhat.com>
9649
9650         * regmove.c (combine_stack_adjustments_for_block): Avoid
9651         emitting a stack adjustment of zero bytes.  Let delete_insn
9652         update bb->head.
9653
9654 2002-03-30  Richard Henderson  <rth@redhat.com>
9655
9656         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
9657         (sparc_emitting_epilogue): New.
9658         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
9659         * config/sparc/sparc-protos.h: Update.
9660         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
9661         (TARGET_SWITCHES): Update.
9662         * config/sparc/sparc.md (return): Remove.
9663         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
9664         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
9665         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
9666         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
9667         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
9668         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
9669         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
9670         Remove MASK_EPILOGUE.
9671         * doc/invoke.texi: Update.
9672
9673 2002-03-30  Daniel Berlin  <dan@dberlin.org>
9674
9675         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
9676         CPP will start the file for us.
9677
9678 2002-03-30  Richard Henderson  <rth@redhat.com>
9679
9680         PR target/5446
9681         * config/ia64/ia64.c (group_barrier_needed_p): Special case
9682         prologue_allocate_stack.
9683         (ia64_single_set): Use insn codes for recognition of special
9684         cases, not rtl matching.
9685         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
9686
9687 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
9688
9689         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
9690
9691 2002-03-30  Richard Henderson  <rth@redhat.com>
9692
9693         PR target/6032
9694         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
9695         or -fomit-frame-pointer with profiling.
9696         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
9697         (FUNCTION_PROFILER): Do nothing.
9698         (PROFILE_HOOK): New.
9699         * config/sparc/sparc.c (sparc_override_options): Don't check
9700         code models for profiling.
9701         (sparc_function_profiler): Remove.
9702         (sparc_profile_hook): New.
9703         * config/sparc/sparc-protos.h: Update.
9704
9705 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
9706
9707         PR optimization/6086
9708         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
9709         of SUBREG of volatile MEM or because the MEM was mode dependent,
9710         return CLOBBER instead of unmodified SUBREG.
9711
9712 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
9713
9714         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
9715         when not optimizing.
9716
9717         * toplev.c (rest_of_compilation): Cann mark_constant_function
9718         only when optimizing.
9719
9720         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
9721         are NULL.
9722
9723         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
9724         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
9725         (try_optimize_cfg): clear all AUX fields.
9726
9727         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
9728         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
9729         (ix86_address_cost): Be prepared for SUBREGed registers.
9730         (legitimate_address_p): Accept SUBREGed registers.
9731
9732 2002-03-29  Richard Henderson  <rth@redhat.com>
9733
9734         PR target/5672
9735         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
9736
9737 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9738
9739         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
9740         for aggregate and TFmode types.
9741
9742 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
9743
9744         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
9745
9746 2002-03-29  Richard Henderson  <rth@redhat.com>
9747
9748         PR target/5886
9749         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
9750         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
9751
9752 2002-03-29  Richard Henderson  <rth@redhat.com>
9753
9754         PR target/6041
9755         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
9756         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
9757         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
9758         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
9759         conditional.
9760         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
9761
9762 2002-03-29  Dale Johannesen <dalej@apple.com>
9763
9764         * loop.c (combine_movables): Do allow combination of pseudos.
9765
9766 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
9767
9768         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
9769         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
9770         No functional change except ...
9771         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
9772         * doc/install.texi (*-*-freebsd*): Document port configuration.
9773
9774 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9775
9776         * Makefile.in (convert.o, calls.o, expmed.o): Update.
9777         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
9778         Use new hooks.
9779         * builtin-types.def (BT_PTRMODE): Update.
9780         * c-common.c (type_for_size): Rename c_common_type_for_size.
9781         (type_for_mode): Similarly.
9782         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
9783         Use new hook.
9784         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
9785         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
9786         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
9787         Redefine.
9788         * c-typeck.c (common_type, comptypes, default_conversion):
9789         Use new hooks.
9790         * calls.c: Include langhooks.h.
9791         (emit_library_call_value_1): Use new hooks.  Avoid redundant
9792         calls.
9793         * convert.c: Include langhooks.h
9794         (convert_to_pointer, convert_to_integer): Use new hooks.
9795         * except.c (init_eh): Similarly.
9796         * expmed.c: Include langhooks.h.
9797         (expand_mult_add): Use new hooks.
9798         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
9799         try_casesi): Similarly.
9800         * fold-const.c (optimize_bit_field_compare, make_range,
9801         decode_field_reference, fold_truthop, fold): Similarly.
9802         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
9803         put_var_into_stack): Similarly.
9804         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
9805         LANG_HOOKS_TYPE_FOR_SIZE): New.
9806         (LANG_HOOKS_TYPES_INITIALIZER): Update.
9807         * langhooks.h (lang_hooks_for_types): New hooks.
9808         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
9809         * tree.c (get_unwidened, get_narrower): Similarly.
9810         * tree.h (type_for_mode, type_for_size): Remove.
9811         * varasm.c (force_const_mem): Use new hooks.
9812         * utils2.c (nonbinary_modular_operation): Update.
9813 objc:
9814         * objc-act.c (handle_impent): Update.
9815         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
9816         Redefine.
9817
9818 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
9819
9820         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
9821         * config/ia64/ia64.c (basereg_operand): New.
9822         * config/ia64/ia64-protos.h (basereg_operand): Declare.
9823         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
9824
9825 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
9826
9827         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
9828         unwind information when frame_pointer_needed.
9829         (mmix_assemble_integer): Tweak wording in comment.
9830
9831 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9832
9833         * Makefile.in (except.o): Update.
9834         * except.c: Include langhooks.h.
9835         (init_eh): Use langhook.
9836         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
9837         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
9838         (LANG_HOOKS_INITIALIZER): Update.
9839         * langhooks.h (lang_hooks_for_types): New.
9840         (struct lang_hooks): Add it.
9841         * tree.c (make_lang_type_fn, make_lang_type): Remove.
9842         * tree.h (make_lang_type_fn, make_lang_type): Remove.
9843 config:
9844         * alpha/alpha.c: Include langhooks.h.
9845         (alpha_build_va_list): Use langhook.
9846         * d30v/d30v.c: Include langhooks.h.
9847         (d30v_build_va_list): Use langhook.
9848         * i386/i386.c: Include langhooks.h.
9849         (ix86_build_va_list): Use langhook.
9850         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
9851         * s390/s390.c: Include langhooks.h.
9852         (s390_build_va_list): Use langhook.
9853         * stormy16/stormy16.c: Include langhooks.h.
9854         (stormy16_build_va_list): Use langhook.
9855
9856 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
9857
9858         PR c++/5964
9859         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
9860         attributes.
9861         (length): Compute variable length for branches/calls/jumps here.
9862         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
9863         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
9864         define branch_type attribute.
9865         (divsi3_sp32): Maximum length is 6 not 7.
9866         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
9867         call_address_untyped_struct_value_sp32,
9868         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
9869         * config/sparc/sparc.c (empty_delay_slot): New function.
9870         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
9871         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
9872
9873 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
9874
9875         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
9876         nonzero_bits if not needed.
9877         (nonzero_bits) [XOR]: Likewise.
9878         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
9879         reg_last_set_mode and mode are both MODE_INT, but not equal.
9880         (record_value_for_reg): Compute reg_last_set_nonzero_bits
9881         in nonzero_bits_mode for MODE_INT modes.
9882
9883 2002-03-28  Richard Henderson  <rth@redhat.com>
9884
9885         PR target/5715
9886         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
9887         to GAS.  Correct drift between alternatives.
9888
9889 2002-03-28  Richard Henderson  <rth@redhat.com>
9890
9891         PR target/6087
9892         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
9893
9894 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
9895
9896         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
9897         emulation to the linker.
9898
9899 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
9900
9901         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
9902         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
9903
9904 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
9905
9906         * combine.c (simplify_and_const_int): Make sure to apply mask
9907         when force_to_mode returns a constant integer.  PR3311.
9908
9909 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9910
9911         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
9912
9913 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9914
9915         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
9916         and Objective-C Dialect Options.
9917
9918 2002-03-28  Richard Henderson  <rth@redhat.com>
9919
9920         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
9921         comparison should be done vs !=0 not >0 return code.  Tidy cases.
9922
9923 2002-03-28  Richard Henderson  <rth@redhat.com>
9924
9925         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
9926         on to c_expand_body.
9927         * c-tree.h (finish_function): Update decl.
9928         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
9929
9930 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
9931
9932         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
9933
9934 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
9935
9936         * rtlanal.c: Include flags.h
9937         (may_trap_p): Do not mark FP operations if trapping
9938         if !flag_trapping_math
9939         * Makefile.in (rtlanal.o): Add dependency on flag.h
9940         * ifcvt.c (noce_operand_ok): Avoid the lameness.
9941
9942 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
9943
9944         * mips.md: Use dconst1, not 1.0, as first argument of
9945         REAL_VALUE_LDEXP.  Don't use union real_extract.
9946
9947 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
9948
9949         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
9950         rather than $target.  Heed program_prefix and
9951         program_transform_name.  Search for gas in cross-compiler case too.
9952         "test -x" rather than "test -f".
9953         (gcc_cv_ld): Likewise.
9954         (gcc_cv_nm): Heed program_prefix and program_transform_name.
9955         (gcc_cv_objdump): Likewise.
9956         * configure: Regenerate.
9957
9958 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
9959
9960         * Makefile.in (attribs.o): Update.
9961         * attribs.c: Include langhooks.h.
9962         (decl_attributes): Use langhook.
9963         * c-decl.c (insert_default_attributes): Rename.
9964         * c-tree.h (c_insert_default_attributes): New.
9965         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
9966         (LANG_HOOKS_INITIALIZER): Update.
9967         * langhooks.h (struct lang_hooks): New hook.
9968         * tree.h (insert_default_attributes): Remove.
9969 objc:
9970         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
9971
9972 2002-03-27  Andreas Schwab  <schwab@suse.de>
9973
9974         * config/i386/i386.c (classify_argument): Also check for
9975         QUAL_UNION_TYPE.
9976
9977 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9978
9979         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
9980         any more.
9981
9982 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
9983
9984         * i960.md (ret): Set PC.
9985         (nonlocal_goto): Fix expander.
9986         * builtins.c (epxand_builin_longjmp): Check that we've emitted
9987         some jump or call.
9988
9989 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
9990
9991         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
9992         of libcall regions.
9993
9994 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9995
9996         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
9997         assigning to BLOCK_FOR_INSN directly.
9998
9999 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
10000
10001         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
10002
10003 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10004
10005         * c-common.c (c_expand_expr): Fix prototype.
10006         * c-common.h (c_expand_expr): Always declare, update.
10007         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
10008         * c-objc-common.c (c_objc_common_init): No global hook.
10009         * expr.c (expand_expr): Use langhook.
10010         * expr.h (enum expand_modifier): Conditionally declare.
10011         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
10012         (LANG_HOOKS_INITIALIZER): Update.
10013         * langhooks.c (lhd_expand_expr): New.
10014         * langhooks.h (struct lang_hooks): New hook.
10015         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
10016         (lang_independent_init): Don't default hook.
10017 objc:
10018         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
10019
10020 2002-03-27  Richard Henderson  <rth@redhat.com>
10021
10022         PR target/6054
10023         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
10024         TARGET_CONST_GP.  Simplify conditions.
10025
10026 2002-03-27  Richard Henderson  <rth@redhat.com>
10027
10028         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
10029         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
10030         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
10031
10032 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
10033
10034         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
10035         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
10036         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
10037         Remove unnecessary masks.
10038         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
10039         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
10040         -mwindows, -mdll switches and their negations.
10041
10042 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10043
10044         * gcc-common.c (lang_mark_false_label_stack): Remove.
10045         * ggc.h (lang_mark_false_label_stack): Similarly.
10046
10047 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
10048
10049         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
10050
10051         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
10052         or __rtems_ is defined.
10053
10054 2002-03-26  Richard Henderson  <rth@redhat.com>
10055
10056         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
10057         if a non-trivial load was emitted.
10058         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
10059         in high+extra+low case.
10060
10061 2002-03-26  Richard Henderson  <rth@redhat.com>
10062
10063         * config.gcc (sparc*-solaris): Use float_format=sparc.
10064
10065 2002-03-26  Richard Henderson  <rth@redhat.com>
10066
10067         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
10068         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
10069         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
10070         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
10071         (WINT_TYPE_SIZE): Fix at 32.
10072
10073 2002-03-26  Richard Henderson  <rth@redhat.com>
10074
10075         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
10076         until after eh landing pad generation.
10077         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
10078         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
10079
10080 2002-03-26  Richard Henderson  <rth@redhat.com>
10081
10082         * expr.h (ADD_PARM_SIZE): One more convert for INC.
10083
10084 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
10085
10086         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
10087         and warning switches.
10088         (cc1_options):  Likewise.
10089
10090 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
10091
10092         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
10093         Restore more of the signal context.  Set no_reg_stack_frame.
10094         * config/ia64/unwind-ia64.c (unw_state_record):
10095         Add no_reg_stack_frame, comments.
10096         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
10097         (uw_update_context): Adjust bsp when unwinding from leaf,
10098         but not signal frame.
10099
10100 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
10101
10102         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
10103
10104 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
10105
10106         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
10107
10108 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
10109
10110         PR target/5621
10111         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
10112         "Add a pool_range attribute", which was lost during the ARM/Thumb
10113         merge.
10114
10115 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
10116
10117         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
10118         a register into the MAC16 accumulator.
10119
10120 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
10121
10122         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
10123         (Warning Options): Document -Wswitch-enum.
10124         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
10125         -Wswitch.
10126         (warn_switch_enum): Define variables.
10127         * flags.h (warn_switch_enum): Declare variables.
10128         * stmt.c (expand_end_case_type): When warn_switch_enum /
10129         -Wswitch-enum, perform switch checks.
10130         Fix PR c/5044.
10131
10132 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
10133
10134         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
10135         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
10136         (reload_muladdsi_compare0_scratch): Delete.
10137
10138 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
10139
10140         * doc/install.texi (*-*-freebsd*): Update.
10141
10142 2002-03-26  Richard Henderson  <rth@redhat.com>
10143
10144         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
10145         (SUB_PARM_SIZE): Cast DEC to ssizetype.
10146
10147         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
10148         types from the normal argument frame.
10149
10150         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
10151         variable sized objects by reference.
10152         (sparc_va_arg): Receive them by reference too.
10153
10154 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
10155
10156         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
10157         code to not restoring global registers.
10158
10159 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
10160
10161         * Makefile.in (ggc-common.o): Update.
10162         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
10163         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
10164         * c-tree.h (c_mark_tree): New.
10165         * ggc-common.c: Include langhooks.h.
10166         (gcc_mark_trees): Use new langhook.
10167         * ggc-callbacks.c: Delete file.
10168         * ggc.h (lang_mark_tree): Remove.
10169         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
10170         (LANG_HOOKS_INITIALIZER): Update.
10171         * langhooks.h (struct lang_hooks): New hook.
10172 objc:
10173         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
10174
10175 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
10176
10177         * doc/cpp.texi: Exclude entire Top node from printed manual.
10178         Move option index after directive index.  Insert page breaks
10179         before GFDL and concept index.  Index environment variables
10180         with command line options.
10181         * doc/cppenv.texi: Use @vtable for environment variable list.
10182         Add paragraph explaining semantics of empty elements in path
10183         variables.  Exclude a cross-reference to Fishkill from the
10184         manpage.  Remove an unnecessary cross-reference of the entry
10185         right above the referer.  Don't use @anchor in text that goes
10186         into manpage.
10187         * doc/cppopts.texi: Cross-reference the environment variables
10188         section, not the specific environment variable, for consistency.
10189
10190 2002-03-25  Richard Henderson  <rth@redhat.com>
10191
10192         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
10193         anywhere in the block.  Don't refer to insns that have been
10194         removed from the chain.  Iterate backward through the new insns.
10195         Don't refer to edges that have been removed.
10196
10197 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
10198
10199         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
10200         test for overflow of constant.
10201
10202 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
10203
10204         PR target/2623
10205         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
10206         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
10207         these patterns on arm_archv4.
10208
10209 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
10210
10211         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
10212         int".
10213
10214 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
10215
10216         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
10217         float_handled, float_handler, float_signal, set_float_handler,
10218         and do_float_handler.  Set handler for SIGFPE to crash_signal.
10219         * toplev.h: Don't prototype do_float_handler.
10220
10221         * c-lex.c: Fold parse_float into lex_number.  Make warning
10222         about portability of hex float constants more informative, and
10223         don't issue it on top of a syntax error.
10224         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
10225         their callers.
10226         * real.h: Define REAL_VALUE_ABS here...
10227         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
10228         simplify_unary_real, simplify_binary_real, and
10229         simplify_binary_is2orm1 into their callers.
10230         * tree.c: Fold build_real_from_int_cst_1 into caller.
10231
10232         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
10233
10234         * tsystem.h: Include float.h here...
10235         * libgcc2.c: ... not here.
10236
10237 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
10238
10239         Fixes for: PR bootstrap/3591, target/5676
10240         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
10241         defined.  Do not disable exceptions or rtti.
10242         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
10243         mcore.h.  Disable exceptions and rtti, since they are not
10244         supported by EPOC.
10245
10246 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
10247
10248         * c-decl.c (maybe_build_cleanup): Remove.
10249         * expr.c (expand_expr): Use langhook.
10250         * langhooks-def.h (lhd_return_null_tree,
10251         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
10252         (LANGHOOKS_INITIALIZER): Update.
10253         * langhooks.c (lhd_return_null_tree): New.
10254         * langhooks.h (struct lang_hooks): New hook.
10255         * tree-inline.c (initialize_inlined_parameters): Use langhook.
10256         * tree.h (maybe_build_cleanup): Remove.
10257
10258 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
10259
10260         * regrename.c (build_def_use): Move recog_memoized
10261         before extract_insn.
10262
10263 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
10264
10265         PR target/6043
10266         * expr.c (emit_group_store): Handle storing into CONCAT.
10267
10268 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
10269
10270         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
10271         corresponding MATCH_DUP.
10272
10273 2002-03-24  Richard Henderson  <rth@redhat.com>
10274
10275         * unroll.c (unroll_loop): Zero label_map.
10276
10277         * gcse.c: Include except.h.
10278         * Makefile.in (gcse.o): Update.
10279
10280 2002-03-24  Richard Henderson  <rth@redhat.com>
10281
10282         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
10283         Do resolve_unique_section before shared data clause.
10284
10285 2002-03-24  Richard Henderson  <rth@redhat.com>
10286
10287         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
10288
10289 2002-03-24  Richard Henderson  <rth@redhat.com>
10290
10291         * recog.c (peephole2_optimize): Split blocks when EH insns are
10292         generated in the middle of a block.  Do global life update if
10293         zapped EH edges.
10294
10295 2002-03-24  Richard Henderson  <rth@redhat.com>
10296
10297         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
10298
10299 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10300
10301         preprocessor/3951
10302         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
10303         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
10304         (init_dependency_output): Don't make no_output decision here.
10305
10306 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
10307
10308         * stmt.c (check_for_full_enumeration_handling): Remove tests of
10309         warn_switch.  Update description.
10310         (expand_end_case_type): Call check_for_full_enumeration_handling
10311         when warn_switch.
10312
10313 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10314
10315         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
10316         (m68hc11_split_move): Call it to see if the source and destination
10317         operands use the same direction auto inc/dec mode, otherwise make the
10318         source an offsetable memory operand and generate an add.
10319
10320 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10321
10322         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
10323         register for operand 2.
10324         ("*subsi3_zero_extendqi"): Likewise.
10325         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
10326         bits so that it is compatible with a pop.
10327         ("*andhi3_gen"): Likewise.
10328         ("xorhi3"): Likewise.
10329
10330 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10331
10332         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
10333         -pedantic here...
10334         (cpp_post_options): ... not here.
10335
10336 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10337             Aldy Hernandez  <aldyh@redhat.com>
10338
10339         Removal of separate preprocessor cpp0.
10340
10341         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
10342         cpp0, install-common): Update.
10343         * c-common.c (flag_preprocess_only): New.
10344         (c_common_init): Preprocess for -E.
10345         * c-common.h (flag_preprocess_only): New.
10346         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
10347         * c-objc-common.c (c_init_decl_processing): Exit quickly
10348         for NULL return from c_common_init.
10349         * cpplib.h (cpp_preprocess_file): New.
10350         * cppmain.c (main, general_init, pfile, progname): Remove.
10351         (do_preprocessing): Rename cpp_preprocess_file, don't call
10352         cpp_finish.  Don't close stdout here.
10353         (setup_callbacks): Update prototype.
10354         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
10355         Update.
10356         * tradcpp.c (main): Ignore -quiet.
10357 objc:
10358         * lang-specs.h (default_compilers): Preprocess with cc1obj.
10359
10360 2002-03-24  Richard Henderson  <rth@redhat.com>
10361
10362         PR optimization/5742
10363         * machmode.def: Add inner mode field to complex modes.
10364         * config/mips/mips.c (mips_function_value): Always define.  Add
10365         new argument to handle libcalls.
10366         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
10367         (FUNCTION_VALUE): Likewise.
10368         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
10369         * config/mips/mips-protos.h: Update.
10370
10371 2002-03-23  Richard Henderson  <rth@redhat.com>
10372
10373         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
10374         * config/sparc/sparc-protos.h: Update.
10375         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
10376
10377 2002-03-23  Richard Henderson  <rth@redhat.com>
10378
10379         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
10380         _start or _init begins the text segment.
10381
10382 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
10383
10384         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
10385         not HOST_WIDEST_INT.
10386         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
10387
10388 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
10389
10390         PR java/5489
10391         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
10392         operand argument to output_return_instruction.
10393         * arm.c (arm_print_operand, case 'd'): If the operand is
10394         const_true_rtx then just return.
10395         (arm_print_operand, case 'D'): If the operand is const_true_rtx
10396         then abort.
10397
10398 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
10399
10400         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
10401         (Warning Options): Document -Wswitch-default.
10402         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
10403         -Wswitch.
10404         (warn_switch_default): Define variable.
10405         (warn_switch): Update comment.
10406         * flags.h (warn_switch_default): Declare variable.
10407         (warn_switch): Update comment.
10408         * stmt.c (expand_end_case): Check for and, when
10409         warn_switch_no_default, warn of a missing default case.
10410
10411 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
10412
10413         * real.h (N): Special case 128 bit doubles.
10414
10415         * combine.c (simplify_comparison): When widening modes, ignore
10416         sign extension on CONST_INTs.
10417
10418 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
10419
10420         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
10421         passed to adjust_address.  Fix comment formatting.
10422
10423
10424 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
10425
10426         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
10427         Always make REAL_VALUE_TYPE a struct containing an array of
10428         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
10429         big it is.  Don't declare or use union real_extract.
10430
10431         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
10432         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
10433         (print_operand), config/arm/arm.c (output_move_double),
10434         config/arm/arm.md (consttable_4, consttable_8),
10435         config/romp/romp.c (output_fpops), config/s390/s390.h
10436         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
10437         (xtensa_output_literal): Don't use union real_extract.
10438
10439         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
10440         (sfmode_constant_to_ulong), config/ns32k/merlin.h
10441         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
10442         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
10443         (PRINT_OPERAND): Don't use local version of union
10444         real_extract.
10445
10446         * config/convex/convex.c (check_float_value), config/vax/vax.c
10447         (vax_float_literal), config/m88k/m88k.md (divdf3),
10448         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
10449         config/pdp11/pdp11.c (output_move_quad): Don't do host
10450         arithmetic on target floating point quantities.
10451
10452         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
10453         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
10454
10455         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
10456         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
10457
10458         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
10459         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
10460         INFINITY.
10461         * print-rtl.c (print_rtx): Disable code which needs
10462         floating-point emulator.
10463         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
10464         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
10465         depending on HOST_FLOAT_FORMAT to be defined properly.
10466
10467         * config/1750a/1750a.c (get_double, float_label): Delete.
10468         (print_operand): Delete huge commented-out chunk.  Use
10469         REAL_VALUE_TO_DECIMAL.
10470         * config/1750a/1750a-protos.h: Delete prototypes of deleted
10471         functions.
10472         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
10473         IEEE_FLOAT_FORMAT.
10474         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
10475         Use REAL_VALUE_TO_DECIMAL as ELF version does.
10476         * config/m88k/m88k.c (real_power_of_2_operand,
10477         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
10478         real_extract out of the union; run the input through
10479         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
10480         from that into the union.
10481         * config/pdp11/pdp11.c (output_move_double): Rearrange
10482         parentheses to make automatic indenter happy.
10483
10484         * doc/tm.texi (Cross-compilation): Rename node to "Floating
10485         Point" and rewrite to describe current situation.  Also adjust
10486         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
10487         match code.
10488         * doc/rtl.texi: Adjust cross reference.
10489
10490 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
10491
10492         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
10493         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
10494         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
10495         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
10496         prevent use of sp as a reload register.
10497         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
10498         non_acc_reg_operand.
10499         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
10500         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
10501         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
10502         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
10503
10504 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
10505
10506         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
10507         * cpplex.c (unterminated): Delete.
10508         (parse_string): No string literal may extend over multiple
10509         lines.  Suppress the error when preprocessing assembly.
10510         * cppmain.c (scan_translation_unit): Strings are single-line.
10511
10512         * doc/cpp.texi: Update to match.
10513
10514 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
10515
10516         PR optimization/5854
10517         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
10518         Shut up warnings.
10519         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
10520         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
10521         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
10522         const0 if scratch register was not allocated.
10523         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
10524         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
10525         with GEN_INT (...).
10526         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
10527         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
10528         with GEN_INT (...) everywhere.  Remove constraints in define_split
10529         patterns.
10530         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
10531         require scratch register for setting 0 into regs/non-pushable memory.
10532
10533 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
10534
10535         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
10536         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
10537
10538 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
10539
10540         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
10541         * cppinit.c (cpp_create_reader):  On by default.
10542         (cpp_handle_option):  Handle -W[no-]endif-labels.
10543         (cpp_post_options):  Also enable if -pedantic.
10544         * cpplib.c (do_else):  Use it.
10545         (do_endif):  Likewise.
10546         * doc/cppopts.texi:  Document new option.
10547         * doc/invoke.texi:  Document new option.
10548
10549 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
10550
10551         * config/i386/i386.c, config/i386/i386.md: Change all occurences
10552         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
10553
10554 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
10555
10556         * flow.c (calculate_global_regs_live): Clear aux fields of
10557         ENTRY and EXIT.
10558
10559 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
10560
10561         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
10562         REG or MEM subregs, pass rtx * instead of rtx to it.
10563         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
10564         rtx * instead of rtx to alter_subreg.
10565         * config/m32r/m32r.c (gen_split_move_double): Likewise.
10566         * config/pj/pj.c (pj_output_rval): Likewise.
10567
10568 2002-03-22  Richard Henderson  <rth@redhat.com>
10569
10570         PR target/3177
10571         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
10572         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
10573         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
10574         (ia64_expand_prologue): Look at int_regs, not words, for number
10575         of incomming int regs.
10576
10577 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
10578
10579         * expr.c (expand_expr): A RESULT_DECL is part of a call.
10580
10581 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
10582
10583         * toplev.c (flag_loop_optimize, flag_crossjumping):
10584         New static variables.
10585         (rest_of_compilation): Conditionalize crossjumping and
10586         loop optimizer.
10587         (parse_options_and_default_flags): Default loop_optimize and
10588         crossjumping.
10589         (lang_independent_options): Add -fcrossjumping and -floop-optimize
10590         * invoke.texi (crossjumping, loop-optimize): Document.
10591
10592 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
10593
10594         * real.c (eiisneg): Move outside #ifdef NANS.
10595
10596 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
10597
10598         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
10599         frequencies match; avoid match on different loop depths.
10600         (try_crossjump_to_bb): Kill tests that no longer brings time
10601         savings.
10602         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
10603         updating code.
10604         (split_edge): Likewise.
10605
10606         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
10607         variable.
10608
10609         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
10610         * cfgrtl.c: Include insn-config.h
10611         (split_block) Dirtify block in presence of conditional execution
10612
10613 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
10614
10615         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
10616         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
10617         (function_arg): Constify CUMULATIVE_ARGS.
10618         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
10619         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
10620         (UNITS_PER_DOUBLE): New macro.
10621         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
10622         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
10623         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
10624         fp_regs and stack_words.
10625         (EABI_FLOAT_VARARGS_P): New macro.
10626         * config/mips/mips.c (struct mips_arg_info): New.
10627         (mips_arg_info): New function.
10628         (function_arg_advance): Use it.  Add adjustment instructions here
10629         rather than in function_arg.
10630         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
10631         for VOIDmode at the beginning of the function.
10632         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
10633         (function_arg_pass_by_reference): Likewise.
10634         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
10635         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
10636         (mips_va_start): Likewise.  Use the new stack_words field of
10637         CUMULATIVE_ARGS to set up overflow area.  Reformat.
10638         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
10639         doubles and other types, aligning the overflow pointer for non-doubles
10640         too.  Remove some code duplication.  Replace hard-coded constants.
10641
10642 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
10643
10644         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
10645         (CLASS_UNITS): Undefine.
10646         (CLASS_MAX_NREGS): Use FP_INC.
10647         * config/mips/mips.c (compute_frame_size): Likewise.
10648         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
10649
10650 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
10651
10652         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
10653         prototype, and handle lexing numbers and identifiers.
10654         (parse_identifier): Update to new form of parse_slow.
10655         (parse_number): Fast path only, use parse_slow otherwise.
10656         (_cpp_lex_direct): Update calls to parse_number.
10657
10658 2002-03-21  DJ Delorie  <dj@redhat.com>
10659
10660         * bb-reorder.c (make_reorder_chain_1): Protect against
10661         when redundant edges are omitted.
10662         * predict.c (dump_prediction): Likewise.
10663
10664 2002-03-21  Richard Henderson  <rth@redhat.com>
10665
10666         PR target/5996
10667         * fixinc/inclhack.def (solaris_stdio_tag): New.
10668         * fixinc/fixincl.x: Regenerate.
10669
10670 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
10671
10672         PR c/5597
10673         * c-typeck.c (process_init_element): Flag non-static
10674         initialization of a flexible array member as illegal.
10675
10676 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
10677
10678         * config/rs6000/t-linux64: New.
10679         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
10680         t-ppccomm.  Use t-rs6000 and t-linux64.
10681         (powerpc64-*-gnu* <tmake_file>): Likewise.
10682         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
10683         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
10684         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
10685
10686 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
10687
10688         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
10689         flag_really_no_inline instead of optimize == 0.
10690
10691         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
10692
10693         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
10694
10695         * flags.h (flag_really_no_inline): New.
10696
10697         * c-common.c (c_common_post_options): Initialize
10698         flag_really_no_inline.
10699
10700         * toplev.c (flag_really_no_inline): New.
10701
10702 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
10703
10704         * config/avr/avr.md (length): Fix length computation for
10705         conditional branches.
10706
10707 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
10708
10709         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
10710         sdbout.o, profile.o): Update.
10711         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
10712         langhook.
10713         * c-common.h (gettags): Move here from tree.h.
10714         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
10715         insert_block, getdecls, kept_level_p, global_bindings_p): New.
10716         * dbxout.c (dbxout_init): Use getdecls langhook.
10717         * expr.c (expand_expr): Use insert_block langhook.
10718         * fold-const.c: Include langhooks.h.
10719         (fold_range_test, fold_binary_op_with_conditional_arg,
10720         fold): Use global_bindings_p langhook.
10721         * integrate.c (expand_inline_function): Use insert_block langhook.
10722         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
10723         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
10724         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
10725         LANG_HOOKS_GETDECLS): New.
10726         (LANG_HOOKS_INITIALIZER): Update.
10727         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
10728         langhook.
10729         * langhooks.h (struct lang_hooks_for_decls): New.
10730         (struct lang_hooks): Update.
10731         * profile.c: Include langhooks.h.
10732         (output_func_start_profiler): Use new langhooks.
10733         * sdbout.c: Include langhooks.h.
10734         (sdbout_init, sdbout_finish): Use getdecls langhook.
10735         * stmt.c: Include langhooks.h.
10736         (expand_fixup, fixup_gotos): Use new langhooks.
10737         * stor-layout.c: Include langhooks.h.
10738         (variable_size): Use global_bindings_p langhook.
10739         * toplev.c (compile_file): Use getdecls langhook.
10740         * tree-inline.c (remap_block): Use insert_block langhook.
10741         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
10742         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
10743
10744 2002-03-21  Richard Henderson  <rth@redhat.com>
10745
10746         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
10747         constants in .data when -fpic.
10748
10749 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10750
10751         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
10752         where appropriate.
10753
10754 2002-03-21  Tom Tromey  <tromey@redhat.com>
10755
10756         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
10757
10758 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10759
10760         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
10761
10762         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
10763
10764 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
10765             Richard Henderson  <rth@redhat.com>
10766
10767         PR c/5354
10768         * c-common.c (c_expand_expr): Preserve result of a statement
10769         expression if needed.
10770
10771 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
10772
10773         PR bootstrap/4195
10774         * genrecog.c (maybe_both_true_mode): Remove.
10775         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
10776         * machmode.def (Pmode): Likewise.
10777
10778 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
10779
10780         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
10781         (nonlocal_mentioned_p_1): New function.
10782         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
10783         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
10784         (mark_constant_function): Recognize pure functions.
10785         * rtl.h (global_reg_mentioned_p): New prototype.
10786         * rtlanal.c (global_reg_mentioned_p,
10787         global_reg_mentioned_p_1): New function.
10788
10789 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10790
10791         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
10792         UNIX assert.h.
10793         * fixinc/fixincl.x: Regenerate.
10794
10795 2002-03-20  Jason Merrill  <jason@redhat.com>
10796
10797         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
10798
10799 2002-03-20  Michael Meissner  <meissner@redhat.com>
10800
10801         * doc/invoke.texi (Optimize Options): Document that -O2 sets
10802         -fstrict-aliasing.
10803
10804 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
10805
10806         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
10807         ".literal_position" directive before the constant pool.
10808
10809 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10810
10811         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
10812         Add Craig Rodrigues.
10813         Add Brad Lucier to testers.
10814
10815 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
10816
10817         PR target/4792
10818         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
10819         to if_then_else.
10820         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
10821         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
10822         instead of insn_extract.
10823
10824 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
10825
10826         PR bootstrap/4192
10827         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
10828
10829         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
10830         stmt if some case has been output.
10831
10832 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
10833
10834         PR c/5972
10835         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
10836         movsfcc_1, movdfcc_1): Add %O2.
10837         * config/i386/i386.c (print_operand): Handle %ON.
10838         Print . before float condition codes in Sun as cmov syntax.
10839         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
10840         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
10841         no longer true.
10842
10843 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
10844
10845         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
10846         return instruction if PC was popped.
10847
10848 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
10849
10850         * config/xtensa/xtensa.md: Remove unused type attributes.
10851         (adddi_carry, subddi_carry): Change type attribute to "multi".
10852
10853 2002-03-19  Dale Johannesen  <dalej@apple.com>
10854
10855         PR optimization/5999, middle-end/5731
10856         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
10857         multiplications by reciprocals.
10858
10859 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
10860
10861         * Makefile.in: Update.
10862         * c-common.c: Include langhooks.h.
10863         (inline_forbidden_p): Use new hook.
10864         * diagnostic.c: Include langhooks.h.
10865         (format_with_decl, announce_function,
10866         default_print_error_function): Use new hook.
10867         * dwarf2out.c (dwarf2_name): Use new hook.
10868         * function.c: Include langhooks.h.
10869         (init_function_start): Use new hook.
10870         * langhooks-def.h (lhd_decl_printable_name): New.
10871         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
10872         (LANGHOOKS_INITIALIZER): Update.
10873         * langhooks.c (lhd_decl_printable_name): New.
10874         * langhooks.h (struct lang_hooks): New hook.
10875         * toplev.c (decl_name, decl_printable_name): Remove.
10876         (open_dump_file): Use new hook.
10877         (process_options): Remove old hook.
10878         * tree.h (decl_printable_name): Remove.
10879 objc:
10880         * objc-act.c (objc_init): Remove old hook.
10881         (objc_printable_name): Export.
10882         * objc-act.h (objc_printable_name): New.
10883         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
10884
10885 2002-03-19  Jim Blandy  <jimb@redhat.com>
10886
10887         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
10888         the start_source_file debug hook, not the current line number.
10889
10890 2002-03-19  Richard Henderson  <rth@redhat.com>
10891
10892         * flow.c (EH_USES): Provide default.
10893         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
10894         * doc/tm.texi (EH_USES): New.
10895
10896         * config/ia64/ia64.c (ia64_eh_uses): New.
10897         * config/ia64/ia64-protos.h: Update.
10898         * config/ia64/ia64.h (EH_USES): New.
10899
10900 2002-03-19  Richard Henderson  <rth@redhat.com>
10901
10902         * varasm.c (output_constant_def): Fix stupid typo.
10903
10904 2002-03-19  Richard Henderson  <rth@redhat.com>
10905
10906         PR 5879
10907         * except.c (current_function_has_exception_handlers): New.
10908         * except.h: Declare it.
10909         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
10910         Combine tests that disable all sibcalls for the function.
10911
10912 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
10913
10914         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
10915         for INTEGER_CST.
10916
10917 2002-03-19  Richard Henderson  <rth@redhat.com>
10918
10919         PR 5977, 5991
10920         * config/ia64/ia64.c: Revert 2002-03-01 patch.
10921         * config/ia64/ia64.h (INIT_EXPANDERS): New.
10922
10923 2002-03-19  Jim Blandy  <jimb@redhat.com>
10924
10925         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
10926         name, even if the replacement list contains no tokens, as required
10927         by Dwarf.
10928
10929 2002-03-19  Jason Merrill  <jason@redhat.com>
10930
10931         * varasm.c (globalize_decl): Get the name from the RTL, not
10932         DECL_ASSEMBLER_NAME.
10933
10934         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
10935
10936 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
10937
10938         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
10939         subdi_carry): Define.
10940
10941 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
10942
10943         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
10944         about -fpic/-fPIC if extra_warnings set.
10945
10946 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
10947
10948         * expr.c (expand_expr): Sign-extend CONST_INT generated from
10949         TREE_STRING_POINTER.
10950         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
10951
10952 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10953
10954         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
10955         in favor of SP if FRAME_POINTER_REQUIRED is false.
10956
10957 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
10958
10959         * emit-rtl.c (gen_int_mode): New function.
10960         * rtl.h: Prototype for it.
10961         * combine.c (make_extraction, simplify_comparison), expmed.c
10962         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
10963         (convert_modes, store_field), optabs.c (expand_fix),
10964         simplify-rtx.c (neg_const_int, simplify_unary_real),
10965
10966         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
10967         Use it instead of GEN_INT (trunc_int_for_mode (...)).
10968
10969 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
10970
10971         PR c/5656
10972         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
10973         convert_parm_for_inlining.
10974         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
10975         Define.
10976         * langhooks-def.h: Likewise.
10977         * objc/objc-lang.c: Likewise.
10978         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
10979         function.
10980         * tree-inline.c (initialize_inlined_parameters):
10981         Call convert_parm_for_inlining lang hook if needed.
10982         * c-typeck.c (c_convert_parm_for_inlining): New function.
10983         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
10984
10985 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
10986
10987         * calls.c (precompute_arguments): Do not assume that temporaries
10988         can be destroyed after expanding the argument.
10989         (expand_call): Likewise.
10990
10991 2002-03-15  Eric Christopher  <echristo@redhat.com>
10992
10993         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
10994         Fix register preference on last change.
10995         * config/mips/mips.c (mips_return_in_memory): New function.
10996         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
10997         * config/mips/mips-protos.h: Declare.
10998         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
10999         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
11000
11001 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
11002
11003         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
11004         a register too.
11005         (anddi3, iorsi3): Likewise.
11006
11007         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
11008         use %gprel for symbols that are going to be placed in linkonce
11009         sections.
11010
11011         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
11012         RETURN_ADDRESS_POINTER_REGNUM to $ra.
11013         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
11014         not needed.  Disregard leaf_function_p().
11015         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
11016         mips16 frame pointer.
11017         * config/mips/mips.md (store ra): Only to small SP offsets.
11018         2001-08-22  Graham Stott  <grahams@redhat.com>
11019         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
11020         return a REG rtx for the return address register.
11021
11022 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
11023
11024         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
11025         constant-pool addresses as "mode-dependent".
11026         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
11027
11028 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
11029
11030         PR target/5740
11031         * expr.c (emit_group_load): Use extract_bit_field if
11032         needed for CONCAT arguments.
11033
11034 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
11035
11036         PR target/4863
11037         * arm.md (tablejump): Make this a define_expand.  For PIC add the
11038         offset to the base of the table.
11039         (thumb_tablejump): Matcher for Thumb tablejump insn.
11040         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
11041         as the difference of two labels.
11042         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
11043         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
11044         tables in the code.
11045         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
11046         * arm.c (get_jump_table_size): If the table is not in the text
11047         section, return zero.
11048
11049 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
11050
11051         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
11052         of gen_rtx_SUBREG.
11053         (arm_reload_out_hi): Use gen_lowpart instead of
11054         gen_rtx_SUBREG to access QImode components.
11055         * config/arm/arm.md: Disable zero_extend split for QImode
11056         subregs in BIG_ENDIAN mode.
11057         (storehi_bigend): Match use of least significant byte.
11058         (storeinthi): Remove extraneous SUBREG.
11059         Add missing construction of operands[2].
11060         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
11061         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
11062         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
11063
11064 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
11065
11066         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
11067         any_operand.
11068
11069 2002-03-17  Richard Henderson  <rth@redhat.com>
11070
11071         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
11072         explicitly.
11073
11074 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
11075
11076         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
11077         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
11078
11079 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11080
11081         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
11082
11083         * predict.c (estimate_bb_frequencies): Delete unused variables.
11084
11085 2002-03-17  Richard Henderson  <rth@redhat.com>
11086
11087         * config/ia64/ia64.c (ia64_attribute_table): Move before
11088         targetm definition.  Make static.
11089
11090 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
11091
11092         * c-common.h (yyparse, c_common_parse_file): New.
11093         * c-lang.c: Include c-common.h.
11094         (LANG_HOOKS_PARSE_FILE): Redefine.
11095         * c-lex.c: Include c-common.h.
11096         (yyparse): Rename c_common_parse_file.  Call yyparse.
11097         * c-parse.in (yyparse): Remove macro.
11098         * c-tree.h (yyparse_1): Remove.
11099         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
11100         (LANG_HOOKS_INITIALIZER): Update.
11101         * langhooks.h (struct lang_hoooks): New hook parse_file.
11102         * toplev.c (compile_file): Use parse_file hook.
11103         * tree.h (yyparse): Remove.
11104         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
11105
11106 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
11107
11108         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
11109         float_truncate, not fix.
11110         ("*truncdfsf2_real"): Ditto.
11111         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
11112
11113         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
11114
11115 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
11116
11117         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
11118         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
11119         where appropriate.  Make the second reference to
11120         leaf_function_p a function call, as intended.  Reindented.
11121
11122         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
11123         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
11124
11125         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
11126         add register to non-constant into sp.
11127
11128         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
11129         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
11130         (mips16_gp_pseudo_rtx): Lose.
11131         (INIT_EXPANDERS): Deleted.
11132         * config/mips/mips.c (mips_init_machine_status): New.
11133         (mips_free_machine_status): New.
11134         (mips_mark_machine_status): New.
11135         (override_options): Set them.
11136         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
11137         (struct machine_function): ... new.  Replaced all references.
11138         (mips_add_gc_roots): Don't mark them.
11139         (embedded_pic_fnaddr_reg): New, extracted from...
11140         (embedded_pic_offset): ... here.
11141         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
11142         (movsi): Likewise.
11143
11144 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
11145
11146         * cppinit.c: Revert -MD removal.
11147
11148 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11149
11150         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
11151         soft registers by default for 68HC12.
11152         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
11153         when compiling with -fomit-frame-pointer.
11154         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
11155         (expand_epilogue): Likewise.
11156         (m68hc11_gen_rotate): Use exg when rotating by 8.
11157
11158 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11159
11160         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
11161         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
11162         (splits): Remove unused add splits.
11163         ("*addhi3_68hc12"): Tune constraints.
11164         ("addhi_sp"): Try to use X instead of Y in all cases and if the
11165         constant fits in 8-bits and D is dead use abx/aby instructions.
11166         ("*addhi3"): Remove extern declaration of ix_reg.
11167         ("*subsi3"): Optimize and provide new split.
11168         ("subhi3"): Cleanup.
11169         ("*subhi3_sp"): Avoid saving X if we know it is dead.
11170         (arith splits): For 68hc12 save the address register on the stack
11171         and do the arithmetic operation with a pop.
11172
11173 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11174
11175         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
11176         allocating QImode in address registers.
11177         ("*movqi_m68hc11"): Likewise.
11178
11179 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
11180
11181         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
11182
11183 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
11184
11185         * cppinit.c (print_help): Display -MD and -MMD.
11186         Don't display usage string.  Update assertion syntax and
11187         typo.
11188         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
11189         (cpp_handle_option): Update.
11190
11191 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
11192
11193         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
11194         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
11195         and define it so that regardless of target CPU size,
11196         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
11197         of "int" rather than "long."
11198
11199 2002-03-15  Richard Henderson  <rth@redhat.com>
11200
11201         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
11202         size as a tree.
11203
11204 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11205
11206         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
11207         ("tstqi" split): Avoid using memory for tstqi on address register.
11208         (splits): Remove constraints.
11209         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
11210         ("cmpdf", "cmpsf"): Remove since not used.
11211         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
11212         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
11213
11214 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11215
11216         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
11217         ("neghi2"): Tighten constraints.
11218         ("one_cmplsi2"): Optimize and simplify split.
11219         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
11220
11221 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11222
11223         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
11224         and split of AND operation to clear the upper bits.
11225         ("*logicalsi3_zextqi"): Likewise.
11226         ("*logicallhi3_zexthi_ashift8"): Likewise.
11227         ("*logicalsi3_silshr16"): Likewise.
11228         ("logicalsi3_silshl16"): Likewise.
11229         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
11230
11231 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11232
11233         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
11234         (m68hc11_indirect_p): New function.
11235         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
11236         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
11237         TARGET_M6812.
11238         (asm_print_register): Likewise.
11239         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
11240         (m68hc11_indirect_p): Declare.
11241         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
11242         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
11243         (TARGET_SWITCHES): New option -mrelax.
11244         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
11245         destination.
11246         ("iorsi3", "xorsi3"): Likewise.
11247         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
11248         ("*andhi3_mem"): New to handle destination in memory with bclr
11249         and a scratch register.
11250         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
11251         ("*andhi3_const"): New when operand2 is constant.
11252         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
11253         ("*andhi3_gen"): Cleanup of the old "andhi3".
11254         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
11255         ("xorqi3"): Update constraints.
11256
11257 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11258
11259         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
11260         for reg_equiv_memory_loc when the operand is a register that does
11261         not get a hard register (stack location).
11262         (tst_operand): After reload, accept all memory operand.
11263         (symbolic_memory_operand): Fix detection of symbolic references.
11264         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
11265         accept symbols and any constant.
11266
11267 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11268
11269         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
11270         note on the insn that sets the soft frame register.
11271         (must_parenthesize): ix and iy are also reserved names.
11272         (print_operand_address): One more place where parenthesis are required
11273         to avoid confusion with register names.
11274         (m68hc11_gen_movhi): Allow push of stack pointer.
11275         (m68hc11_check_z_replacement): Fix handling of parallel with a
11276         clobber.
11277         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
11278         the replacement register is.
11279         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
11280         and D8_REGS classes.
11281         (MODES_TIEABLE_P): All modes are tieable except QImode.
11282
11283 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11284
11285         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
11286         (___subdi3): Likewise.
11287         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
11288         (__map_data_section): Optimize 68hc11 case.
11289
11290 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11291
11292         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
11293         than a shift to avoid adding a register with itself.
11294         (m68hc11_memory_move_cost): Take into account NO_REGS.
11295         (m68hc11_register_move_cost): Update and use memory move cost
11296         for soft registers.
11297         (m68hc11_address_cost): Make cost of valid offset not 0 so that
11298         it gives more opportunities to cse to optimize.
11299         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
11300         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
11301
11302 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
11303
11304         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
11305         * c-common.def (CLEANUP_STMT): New tree node.
11306         * c-common.h (CLEANUP_DECL): New macro.
11307         (CLEANUP_EXPR): Likewise.
11308         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
11309         * expr.c (expand_expr): Tidy.
11310         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
11311         * tree-inline.c (initialize_inlined_parameters): Clean up
11312         new local variables.
11313
11314 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
11315
11316         PR bootstrap/4128
11317         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
11318         before movrXX only, use reg_overlap_mentioned_p.
11319         Only special case NE if just one insn can be generated.
11320
11321 2002-03-15  Jason Merrill  <jason@redhat.com>
11322
11323         * varasm.c (assemble_variable): Call resolve_unique_section before
11324         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
11325         of error_mark_node.
11326
11327 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
11328
11329         PR target/5170
11330         * arm.md (split pattern for thumb shiftable immediates): Add comment
11331         explaining non-obvious test.
11332
11333 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
11334
11335         PR target/5712
11336         * arm.md (movaddr, movaddr_insn): Delete.
11337
11338 2002-03-15  Jason Merrill  <jason@redhat.com>
11339
11340         * toplev.c (wrapup_global_declarations): Clarify variable handling.
11341         -fkeep-static-consts doesn't apply to comdats.
11342
11343 2002-03-14  Richard Henderson  <rth@redhat.com>
11344
11345         * c-decl.c: Include c-pragma.h.
11346         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
11347         (finish_function): Tidy.
11348         * c-pragma.c: Include c-common.h.
11349         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
11350         (handle_pragma_weak): Use them.
11351         (init_pragma): Register pending_weaks.
11352         * c-pragma.h (maybe_apply_pragma_weak): Declare.
11353         * print-tree.c (print_node): Print DECL_WEAK.
11354         * varasm.c (mark_weak_decls): Remove.
11355         (remove_from_pending_weak_list): Remove.
11356         (add_weak): Remove.
11357         (asm_emit_uninitialised): Call globalize_decl for weak commons.
11358         (weak_decls): Make a tree_list.
11359         (declare_weak): Cons weak_decls directly.
11360         (globalize_decl): Remove weak_decls elements directly.
11361         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
11362         symbols.  Don't pretend to handle aliases.
11363         (init_varasm_once): Update weak_decls registry.
11364         * Makefile.in: Update dependencies.
11365
11366 2002-03-14  Richard Henderson  <rth@redhat.com>
11367
11368         PR target/5312
11369         * config/ia64/ia64.c: Include tm_p.h last.
11370         (gen_nop_type): Remove duplicate definition.
11371         (cycle_end_fill_slots): Set sched_data for second L slot.
11372         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
11373         (nop_cycles_until): Fix typos.
11374
11375 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
11376
11377         PR optimization/5891
11378         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
11379
11380 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
11381
11382         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
11383           descriptors correctly.
11384
11385 2002-03-14  Michael Meissner  <meissner@redhat.com>
11386
11387         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
11388         100, allowing MAX_UNROLLED_INSNS to be overridden.
11389
11390         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
11391         --param.
11392
11393         * unroll.c (params.h): Include.
11394         (MAX_UNROLLED_INSNS): Delete, now in params.h.
11395
11396         * doc/invoke.texi (--param max-unroll-insns): Document.
11397
11398         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
11399
11400 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
11401
11402         * arm.md: Fix warnings about constraints in peepholes and splits.
11403
11404 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
11405
11406         * cpphash.h (struct lexer_state): Remove line_extension member.
11407         * cpplib.c (dequote_string, do_linemarker): New functions.
11408         (linemarker_dir): New data object.
11409         (DIRECTIVE_TABLE): No longer need to interpret #line in
11410         preprocessed source.  Delete obsolete comment about return
11411         values of handlers.
11412         (end_directive, directive_diagnostics, _cpp_handle_directive):
11413         Don't muck with line_extension.
11414         (directive_diagnostics): No need to issue warnings for
11415         linemarkers here.
11416         (_cpp_handle_directive): Issue warnings for linemarkers here,
11417         when appropriate.  Dispatch linemarkers to do_linemarker, not
11418         do_line.
11419         (do_line): Code to handle linemarkers split out to do_linemarker.
11420         Convert escape sequences in filename argument, both places.
11421
11422         * cppmacro.c (quote_string): Rename cpp_quote_string and
11423         export.  All callers changed.
11424         * cpplib.h (cpp_quote_string): Prototype.
11425         * cppmain.c (print_line): Call cpp_quote_string on to_file
11426         before printing it.
11427
11428         * doc/cpp.texi: Document that escapes are now interpreted in
11429         #line and in linemarkers, and that non-printing characters are
11430         converted to octal escapes when linemarkers are generated.
11431
11432 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
11433
11434         * emit-rtl.c (try_split): Use delete_insns.
11435         * recog.c (split_all_insns): Fix terminating condition.
11436
11437 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
11438             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
11439
11440         PR target/5828
11441         * arm.c (arm_output_epilogue): Fix floating-point register save
11442         adjustment when using a frame pointer.
11443
11444 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
11445
11446         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
11447         * config/mips/mips.c (compute_frame_size): Retrofit them here.
11448         (save_restore_insns, mips_expand_epilogue): And here.
11449         (build_mips16_call_stub): And here.
11450         (mips_function_value): Use the new macros to decide whether a single
11451         or complex float can be returned in floating-point registers.  Return
11452         a parallel rtx in the complex case.
11453
11454 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
11455
11456         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
11457         call after liveness analysis.
11458
11459         * recog.c (split_insn): Use delete_insn_and_edges.
11460
11461         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
11462         instructions to have branch prediction notes.
11463         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
11464
11465 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
11466
11467         * configure.in: Don't pass -Wno-long-long to a ADA compiler
11468         that doesn't support it.
11469         * configure: Regenerate.
11470
11471 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
11472
11473         PR target/5626
11474         * config/sparc/sparc.md (normal_branch, inverted_branch,
11475         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
11476         inverted_fp_branch): Adjust calls to output_cbranch.
11477         Set length attribute.
11478         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
11479         output_v9branch.  Set length attribute.
11480         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
11481         predicates.
11482         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
11483         (output_cbranch): Likewise.  Handle far branches.
11484         (output_v9branch): Handle far branches.
11485         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
11486         Adjust prototypes.
11487         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
11488         noov_compare64_op predicates.
11489
11490 2002-03-13  Jason Merrill  <jason@redhat.com>
11491
11492         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
11493         into the function and constify it.
11494         * gthr-dce.h, gthr-solaris.h: Likewise.
11495
11496 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
11497
11498         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
11499         * config/rs6000/rs6000.c (rs6000_va_arg): Use
11500         std_expand_builtin_va_arg if not ABI_V4.
11501
11502 2002-03-13  Jason Merrill  <jason@redhat.com>
11503
11504         * varasm.c (globalize_decl): New fn.
11505         (assemble_start_function): Use it.
11506         (asm_emit_uninitialized): Use it.
11507         (assemble_alias): Use it.
11508         (assemble_variable): Use it.
11509
11510 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
11511
11512         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
11513         2002-03-12 internal visibility change.
11514         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
11515         visibility into SYMBOL_REF_FLAG.
11516
11517 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
11518
11519         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
11520         VOIDmode operand.  Add compile-time optimization for constant results.
11521
11522 2002-03-12  Jason Merrill  <jason@redhat.com>
11523
11524         * c-typeck.c (convert_for_assignment): Don't allow conversions
11525         between pointers and references.  Only allow lvalues to convert to
11526         reference.
11527
11528 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
11529
11530         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
11531         before prologue, to avoid scheduling problems.
11532
11533 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
11534
11535         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
11536         (ELIMINABLE_REGS): Add sfp->sp.
11537         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
11538
11539 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
11540
11541         PR optimization/5892
11542         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
11543
11544 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
11545
11546         * loop.c (basic_induction_var): Don't call convert_modes if mode
11547         classes are different.
11548
11549 2002-03-12  Richard Henderson  <rth@redhat.com>
11550
11551         PR optimization/5901
11552         * function.c (reposition_prologue_and_epilogue_notes): Position
11553         the markers after/before the last/first insn not deleted.
11554
11555 2002-03-12  Richard Henderson  <rth@redhat.com>
11556
11557         PR optimization/5878
11558         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
11559         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
11560         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
11561
11562         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
11563         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
11564         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
11565
11566         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
11567         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
11568         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
11569         also.  Don't set it if not flag_pic.
11570         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
11571         to be INVALID_REGNUM when not used.
11572
11573 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
11574
11575         * expmed.c (store_bit_field): Reset alias set for memory.
11576         (extract_bit_field): Same.
11577
11578 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11579
11580         * c-common.c (c_tree_code_type, c_tree_code_length,
11581         c_tree_code_name, add_c_tree_codes): Delete.
11582         * c-common.h (add_c_tree_codes): Delete.
11583         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
11584         Define.
11585         * c-objc-common.c (c_objc_common_init): Don't call
11586         add_c_tree_codes, instead set lang_unsafe_for_reeval.
11587         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
11588         objc_tree_code_name, add_objc_tree_codes): Delete.
11589         (objc_init): Don't call add_objc_tree_codes.
11590         * objc/objc-lang.c (tree_code_type, tree_code_length,
11591         tree_code_name): Define.
11592         * toplev.c (lang_independent_init): Don't set
11593         tree_code_length[IDENTIFIER_NODE].
11594         * tree.c (tree_code_type, tree_code_length, tree_code_name):
11595         Delete definitions, moved to language front-ends.
11596         * tree.def (IDENTIFIER_NODE): Hardwire the length.
11597         * tree.h (tree_code_type, tree_code_length, tree_code_name):
11598         Const-ify.
11599         (tree_code_length): Change type to unsigned char.
11600
11601 2002-03-12  Richard Henderson  <rth@redhat.com>
11602
11603         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
11604         internal visibility change.
11605
11606 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
11607
11608         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
11609         validize_mem() instead of change_address to avoid clobbering
11610         memory attributes.
11611
11612 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
11613
11614         * c-lex.h (position_after_whitespace): Remove.
11615
11616 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
11617
11618         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
11619         (lex_string): Use unsigned char pointers.
11620
11621 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
11622
11623         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
11624         is not a valid memory_operand.
11625
11626 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
11627
11628         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
11629         * config/xtensa/lib1funcs.asm: Fix copyright to include
11630         special case for libgcc files.
11631         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
11632         (__divsi3): Likewise.
11633         (__umodsi3): Likewise.
11634         (__modsi3): Likewise.
11635         * config/xtensa/lib2funcs.S: Fix copyright to include
11636         special case for libgcc files.
11637
11638 2002-03-12  Tom Rix  <trix@redhat.com>
11639
11640         * collect2.c (resolve_lib_name): Move outside of
11641         OBJECT_FORMAT_COFF ifdef.
11642         (ignore_library): Same.
11643
11644 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
11645
11646         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
11647
11648 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
11649
11650         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
11651         to function_section before writing out the constant pool.
11652
11653 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
11654
11655         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
11656         zero_constant.
11657         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
11658
11659 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
11660
11661         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
11662         (adddi3): Likewise.
11663         (movdf): Likewise.
11664         (movdi): Likewise.
11665         (cmpsi splitter): Likewise.
11666         (modsi3): Fail if <= 0.
11667         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
11668         redundant test when HOST_BITS_PER_WIDE_INT != 32.
11669         (reg_or_sub_cint64_operand): Likewise.
11670         (num_insns_constant_wide): Optimize sign extension.
11671         (rs6000_legitimize_address): Likewise.
11672
11673 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
11674
11675         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
11676         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
11677
11678 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
11679
11680         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
11681         address calculation.
11682
11683 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
11684
11685         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
11686         scratch register to DImode / TImode.
11687         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
11688         register used does not overlap the target.
11689
11690 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11691
11692         * Makefile.in (debug.o): Depend on debug.h.
11693         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
11694         * debug.c (do_nothing_debug_hooks): Likewise.
11695         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
11696         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
11697         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
11698         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
11699         * dwarfout.c (dwarf_debug_hooks): Likewise.
11700         * integrate.c (output_inline_function): Likewise.
11701         * objc/objc-act.c (synth_module_prologue): Likewise.
11702         * sdbout.c (sdb_debug_hooks): Likewise.
11703         * toplev.c (debug_hooks): Likewise.
11704         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11705
11706 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11707
11708         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
11709         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
11710         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
11711         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
11712         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
11713         * defaults.h (POINTER_SIZE): Define.
11714         * doc/tm.texi (POINTER_SIZE): Document default.
11715
11716 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11717
11718         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
11719
11720 2002-03-11  Richard Henderson  <rth@redhat.com>
11721
11722         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
11723         if rebuild_label_notes_after_reload.
11724
11725 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
11726
11727         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
11728         emit pic register load if "internal" visibility.
11729         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
11730         (cris_expand_builtin_va_arg): Do all computations on trees.
11731
11732 2002-03-11  Richard Henderson  <rth@redhat.com>
11733
11734         * rtlanal.c: Include recog.h.
11735         (keep_with_call_p): Fix thinko.
11736         * Makefile.in (rtlanal.o): Update dependencies.
11737
11738 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
11739
11740         * genflags.c (gen_insn): Use IS_VSPACE.
11741         * genoutput.c (output_insn_data): Likewise.
11742         (process_template): Likewise.
11743
11744 2002-03-11  Richard Henderson  <rth@redhat.com>
11745
11746         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
11747
11748 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
11749
11750         * Makefile.in: Update.
11751         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
11752         Update documentation.
11753         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
11754         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
11755
11756 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
11757
11758         * Makefile.in: Give texi2pod its input file as a command line
11759         argument, not on stdin.
11760
11761 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
11762             Daniel Berlin  <dan@dberlin.org>
11763
11764         C++ alias analysis improvement.
11765         * alias.c (record_component_aliases): Record aliases for base
11766         classes too.
11767
11768 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
11769
11770         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
11771
11772 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
11773
11774         * toplev.c (vms_fopen): Remove, not needed.
11775
11776         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
11777
11778         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
11779
11780         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
11781         for FP, already done later.
11782
11783         * toplev.c (debug_args): Add entry for VMS_DEBUG.
11784         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
11785
11786 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
11787
11788         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
11789         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
11790         LARGEST_EXPONENT_IS_NORMAL for the given mode.
11791         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
11792         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
11793         (ediv, emul, eldexp, esqrt): Likewise.
11794         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
11795         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
11796         (saturate): New function.
11797         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
11798         (make_nan): Use a saturation value instead of a NaN if
11799         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
11800         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
11801         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
11802         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
11803         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
11804         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
11805         !ROUND_TOWARDS_ZERO.
11806         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
11807         (ROUND_TOWARDS_ZERO): Document.
11808
11809 2002-03-11  Andreas Jaeger  <aj@suse.de>
11810
11811         * cfg.c (dump_flow_info): Remove unused variable.
11812
11813 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
11814
11815         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
11816         computations on trees.
11817
11818 2002-03-10  Richard Henderson  <rth@redhat.com>
11819
11820         PR 5693:
11821         * reload.c (copy_replacements_1): New.
11822         (copy_replacements): Use it to recurse through the rtx.
11823
11824 2002-03-10  Richard Henderson  <rth@redhat.com>
11825
11826         * loop.c (strength_reduce): Compute number of iterations as
11827         unsigned HOST_WIDE_INT.
11828
11829 2002-03-10  Richard Henderson  <rth@redhat.com>
11830
11831         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
11832         to move away from the end of the block.
11833
11834 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
11835
11836         PR preprocessor/5899
11837         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
11838
11839 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11840
11841         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
11842
11843         * attribs.c (decl_attributes): Fix signed/unsigned warning.
11844
11845 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
11846
11847         * config/mmix/mmix.c: Improve comments.
11848         (mmix_target_asm_function_prologue): Drop variable
11849         empty_stack_frame.  Don't allocate unused slot above fp.
11850         (mmix_target_asm_function_epilogue): Mirror prologue changes.
11851         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
11852         brace in first column.
11853         (enum reg_class): Ditto.
11854         (FIRST_PARM_OFFSET): Now 0.
11855         (USER_LABEL_PREFIX): Remove #if 0:d definition.
11856
11857 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11858
11859         * combine.c (make_extraction): Fix error in last change.
11860
11861 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11862
11863         * c4x.c (c4x_fp_reglist): Const-ify.
11864         * cris.c (cris_print_operand): Likewise.
11865         * i386.c (ix86_va_arg): Likewise.
11866         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
11867         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
11868         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
11869         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
11870         * mcore.h (regno_reg_class): Likewise.
11871         * mips.c (gen_int_relational): Likewise.
11872         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
11873         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
11874         * pdp11.c (move_costs): Likewise.
11875         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
11876         * s390.c (s390_branch_condition_mnemonic, regclass_map):
11877         Likewise.
11878         * s390.h (regclass_map): Likewise.
11879         * sh.c (shift_amounts): Likewise.
11880         * sh.md (rotlsi3): Likewise.
11881
11882 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
11883
11884         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
11885         (ne0+5): Use new clobber to generate proper shift pattern.
11886         Patch by Michael Matz <matz@kde.org>.
11887
11888 2002-03-09  Andreas Schwab  <schwab@suse.de>
11889
11890         * gcc.c (validate_all_switches): Also handle `%W{...}'.
11891
11892 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
11893
11894         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
11895
11896 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
11897
11898         PR middle-end/5877
11899         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
11900         even for non-representable constants.
11901
11902 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11903
11904         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
11905         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
11906         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
11907         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
11908         (pop_function_context): Compute MAY_SHARE parameter for
11909         fixup_var_refs.
11910         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
11911         (gen_mem_addressof): Call fixup_var_refs with new parm.
11912
11913         * combine.c (make_extraction): Don't make extension of CONST_INT.
11914
11915 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
11916
11917         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
11918         in o32 and o64 ABIs.
11919         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
11920         but getting fixed-size structs passed in registers regardless of
11921         padding in o32 and o64 ABIs.
11922
11923         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
11924         offset before loading address of argument passed by transparent
11925         reference.
11926
11927 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11928
11929         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
11930
11931 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
11932
11933         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
11934         marker such that registers after it are saved.
11935
11936 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11937
11938         * sparc.c (arith_4096_operand): Fix error in last change.
11939
11940 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
11941
11942         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
11943         defaults for MEABI.
11944
11945 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
11946
11947         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
11948         vectors.
11949
11950 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
11951
11952         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
11953
11954 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
11955
11956         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
11957         removed; fix return value.
11958         * combine.c (combine_instructions): Dirtify blocks where we failed to
11959         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
11960         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
11961
11962 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11963
11964         * gcse.c (insert_insn_end_bb): Fix typo in last change.
11965
11966 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
11967
11968         * recog.c (peephole2_optimize): Re-distribute EH edges.
11969
11970 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
11971
11972         * expr.c (expand_expr): Use unsave lang hook.
11973         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
11974         (LANG_HOOKS_INITIALIZER): Update.
11975         * langhooks.h (struct lang_hooks): New hook unsave.
11976         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
11977         (unsave_expr_1): Remove unused lang_unsave_expr_now.
11978         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
11979         (unsave_expr_now): Remove.
11980         * tree.h (unsave_expr_now, lang_unsave,
11981         lang_unsave_expr_now): Remove.
11982         (lhd_unsave): New.
11983
11984 2002-03-08  Andreas Jaeger  <aj@suse.de>
11985
11986         * flow.c (propagate_block_delete_insn): Remove unused variable.
11987
11988 2002-03-08  Kazu Hirata  <kazu@hxi.com>
11989
11990         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
11991         insn length for memory load/store.
11992
11993 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
11994
11995         * doc/install.texi (--with-libiconv-prefix): Document.
11996
11997 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
11998
11999         * doc/sourcebuild.texi: Fix typo.
12000
12001 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
12002
12003         PR c/3711
12004         * builtins.c (std_expand_builtin_va_arg): Do all computations on
12005         trees.
12006
12007 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12008
12009         * rtl.c (copy_most_rtx): Move from here ...
12010         * emit-rtl.c (copy_most_rtx): ... to here.
12011
12012 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
12013
12014         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
12015         SUBTARGET_CPP_SIZE_SPEC.
12016         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
12017
12018         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
12019
12020 2002-03-07  Matt Hiller  <hiller@redhat.com>
12021
12022         * gensupport.c (first_dir_md_include): Renamed from include;
12023         change all references.
12024         (last_dir_md_include): Renamed from last_include; change all
12025         references.
12026         (init_md_reader): Unconditionally initialize base_dir whether or
12027         not filename is a relative path.
12028
12029 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
12030
12031         * config/fp-bit.c (_unord_f2): Compile it in even if
12032         US_SOFTWARE_GOFAST is enabled.
12033
12034         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
12035         NULL_RTX.  Set all HFmode operations as NULL_RTX.
12036         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
12037         NULL_RTX, try reversing the comparison and the operands.
12038
12039 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
12040
12041         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
12042         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
12043         and MATCH_OP_DUP.
12044
12045 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
12046
12047         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
12048
12049 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
12050
12051         * basic-block.h (fixup_abnormal_edges): Declare.
12052         * reload1.c (fixup_abnormal_edges): New function.
12053         * reg-stack.c (convert_regs): Use it.
12054
12055         * gcse.c (insert_insn_end_bb): Handle trapping insns.
12056
12057         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
12058
12059 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
12060
12061         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
12062         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
12063         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
12064         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
12065         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
12066         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
12067         unless x and y could be infinite.
12068         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
12069         Check that the common type of both arguments is a real, even for
12070         targets without unordered comparisons.  Allow an integer argument
12071         to be compared against a real.
12072         (expand_tree_builtin): Use expand_unordered_cmp.
12073         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
12074         * cse.c (fold_rtx): Likewise.  Fix indentation.
12075         * fold-const.c (fold_real_zero_addition_p): New.
12076         (fold): Use it, and the new HONOR_... macros.
12077         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
12078         * jump.c (reversed_comparison_code_parts): After searching for
12079         the true comparison mode, use HONOR_NANS to decide whether it
12080         can be safely reversed.
12081         (reverse_condition_maybe_unordered): Remove IEEE check.
12082         * simplify-rtx.c (simplify_binary_operation): Use the new macros
12083         to decide which simplifications are valid.  Allow the following
12084         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
12085         and (a - -b) to (a + b).
12086         (simplify_relational_operation): Use HONOR_NANS.
12087         * doc/tm.texi: Document the MODE_HAS_... macros.
12088
12089 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
12090
12091         * combine.c (simplify_comparison): If simplifying a logical shift
12092         right and compare with constant, force the comparison to unsigned.
12093
12094 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
12095
12096         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
12097
12098         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
12099         -mabi=no-altivec
12100         (alt_reg_names): Remove % for vrsave.
12101
12102 2002-03-06  Richard Henderson  <rth@redhat.com>
12103
12104         PR optimization/5844
12105         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
12106         if used indicates we've already emitted one copy of an operand.
12107         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
12108         (gen_split): Supply a non-null used.
12109
12110 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
12111
12112         * reload1.c (reload): Unshare all rtl after reload is done.
12113
12114         * simplify-rtx.c (simplify_plus_minus): Do not abort,
12115         but simply fail if the expression is too complex to simplify.
12116         (simplify_gen_binary): Handle simplify_plus_minus failures.
12117
12118 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
12119
12120         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
12121         consistently call delete_trivially_dead_insns after CSE and GCSE;
12122         fix DFI_life dumping; do jump threading after liveness; do crossjumping
12123         after liveness2; update comment in last crossjumping.
12124         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
12125
12126 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
12127
12128         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
12129         after completing fast dead code elimination.
12130
12131         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
12132         COMPARE operator.
12133
12134 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
12135
12136         * version.c:  Fix misplaced leading blanks on first line.
12137
12138 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
12139
12140         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
12141
12142 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
12143
12144         * cfgcleanup.c (mentions_nonequal_regs): New function.
12145         (thread_jump): Use it.
12146         * toplev.c (rest_of_compilation): Run jump threading after
12147         liveness.
12148
12149 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
12150
12151         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
12152         patch.
12153
12154 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
12155
12156         * predict.c (estimate_bb_frequencies): Do not reload the
12157         frequencies from notes.
12158
12159 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
12160
12161         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
12162         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
12163
12164         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
12165         delete_noop_moves): Return indeger.
12166         * flow.c (ndead): New variable.
12167         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
12168         BB argument; update callers.
12169         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
12170         (life_analysis): Do not call purge_all_dead_edges.
12171         (update_life_info): Return number of deleted insns; print statistics.
12172         (update_life_info_in_dirty_blocks): likewise.
12173         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
12174         return number of insns deleted.
12175
12176         * cse.c: Include timevar.h
12177         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
12178         iterate until stabilizes; print statistics; return number of killed
12179         insns.
12180         * Makefile.in: (cse.o): Add timevar.h dependency
12181         * rtl.h (delete_trivially_dead_insns): New.
12182         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
12183         * toplev.c (rest_of_compilation): Update callers.
12184
12185         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
12186         (try_optimize_cfg): Do not update liveness.
12187         (cleanup-cfg): Loop until try_optimize_cfg and dead code
12188         removal stabilizes; use delete_trivially_dead_insns.
12189
12190         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
12191
12192 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
12193
12194         * cppmain.c (setup_callbacks): Disable #pragma and #ident
12195         callbacks when processing assembly language.
12196
12197 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12198
12199         * pa.h (ASM_FILE_END): Define.
12200         * som.h (ASM_FILE_END): Delete.
12201
12202         * pa.c (function_arg): Don't pass floats in general registers in
12203         indirect calls if TARGET_ELF32.
12204
12205 2002-03-05  Richard Henderson  <rth@redhat.com>
12206
12207         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
12208
12209 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
12210
12211         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
12212
12213 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
12214
12215         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
12216         -r command line.  Don't hide any symbols if not building
12217         shared libgcc.
12218
12219 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
12220
12221         * cfg.c (dump_flow_info): Warn about profile mismatches.
12222         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
12223         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
12224
12225 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
12226
12227         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
12228         wide volatile memory by parts.
12229
12230 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
12231
12232         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
12233         is NULL.
12234
12235 2002-03-05  Richard Henderson  <rth@redhat.com>
12236
12237         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
12238
12239 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
12240
12241         * toplev.c (documented_lang_options): Document more
12242         language-specific options.
12243         * doc/invoke.texi (Warning Options): Correct documentation for
12244         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
12245         * c-decl.c (c_decode_option): Use a table to handle warning options.
12246
12247 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
12248
12249         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
12250         parameter to mmix_encode_section_info.
12251         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
12252         relocatably.  Always produce ELF, not mmo if linking relocatably.
12253         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
12254         first is non-zero, don't add symbol prefix.
12255         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
12256         prototype accordingly.
12257
12258 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
12259
12260         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
12261
12262 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
12263
12264         * configure.in: Increase required makeinfo version to 4.1.
12265         * configure: Regenerate.
12266
12267 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
12268
12269         * .cvsignore: Remove *.info* and genrtl*; these files are generated
12270         elsewhere now.
12271
12272 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
12273
12274         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
12275         * doc/invoke.texi: Fix @math uses.
12276
12277 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
12278
12279         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
12280         removal
12281
12282 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
12283
12284         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
12285         (powerpc-*-eabisimaltivec*): Same.
12286
12287         * config/rs6000/t-ppcendian: New.
12288
12289 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12290
12291         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
12292         nonimmediate_src_operand and nonimmediate_lsrc_operand to
12293         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
12294
12295 2002-03-03  Richard Henderson  <rth@redhat.com>
12296
12297         * toplev.c (rest_of_decl_compilation): Revert last two changes.
12298
12299 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
12300
12301         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
12302         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
12303         tree.c, config/m68k/m68k.c:
12304         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
12305         REAL_ARITHMETIC blocks unconditional.  Delete some further
12306         #ifdef blocks predicated on REAL_ARITHMETIC.
12307         * flags.h, toplev.c: Delete remaining references to
12308         flag_pretend_float.
12309
12310         * doc/invoke.texi: Remove documentation of -fpretend-float.
12311         * doc/tm.texi: Describe the various REAL_* macros as provided by
12312         real.h, not by the target configuration files.
12313
12314         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
12315         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
12316         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
12317         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
12318         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
12319         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
12320         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
12321         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
12322         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
12323         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
12324         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
12325         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
12326         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
12327         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
12328         config/xtensa/xtensa.h:
12329         Do not define, undefine, or mention in comments any of
12330         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
12331         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
12332         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
12333         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
12334         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
12335         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
12336         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
12337         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
12338         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
12339
12340 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12341
12342         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
12343         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
12344         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
12345         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
12346         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
12347         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
12348         Delete.
12349         * defaults.h (BITS_PER_WORD): Define.
12350         * doc/tm.texi (BITS_PER_WORD): Document default value.
12351
12352         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
12353         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
12354         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
12355
12356 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12357
12358         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
12359         lieu of explicit sizeof/sizeof.
12360         * i386.c (override_options, ix86_init_mmx_sse_builtins,
12361         ix86_expand_builtin): Likewise.
12362         * mips.c (mips_add_gc_roots): Likewise.
12363         * mmix.c (mmix_output_condition): Likewise.
12364         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
12365         altivec_init_builtins): Likewise.
12366         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
12367         * cppexp.c (Nsuff, parse_number): Likewise.
12368         * cppinit.c (builtin_array_end): Likewise.
12369         * gcc.c (n_default_compilers, process_command): Likewise.
12370         * genpreds.c (output_predicate_decls): Likewise.
12371         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
12372         * lcm.c (N_ENTITIES): Likewise.
12373         * stor-layout.c (set_sizetype): Likewise.
12374
12375 2002-03-03  Richard Henderson  <rth@redhat.com>
12376
12377         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
12378         for types or labels.
12379
12380 2002-03-03  Richard Henderson  <rth@redhat.com>
12381
12382         * c-decl.c (start_decl): Initialized variables are not common.
12383
12384 2002-03-02  Per Bothner  <per@bothner.com>
12385
12386         * gcc.c (option_map):  Suport new --bootclasspath option.
12387         --CLASSPATH is now just an alias for --classpath.
12388
12389 2002-03-02  Richard Henderson  <rth@redhat.com>
12390
12391         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
12392         load if "internal" visibility.
12393         * doc/extend.texi: Document visibility meanings.
12394
12395 2002-03-02  Richard Henderson  <rth@redhat.com>
12396
12397         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
12398         to functions as well.
12399
12400 2002-03-02  Richard Henderson  <rth@redhat.com>
12401
12402         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
12403         (handle_visibility_attribute): Don't call assemble_visibility.
12404         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
12405         without asmspec.  Invoke assemble_alias when needed.
12406         * varasm.c (maybe_assemble_visibility): New.
12407         (assemble_start_function, assemble_variable, assemble_alias): Use it.
12408
12409 2002-03-02  Richard Henderson  <rth@redhat.com>
12410
12411         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
12412         invoke ENCODE_SECTION_INFO with first call flag.
12413
12414         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
12415         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
12416         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
12417         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
12418         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
12419         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
12420         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
12421         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
12422         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
12423         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
12424         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
12425         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
12426         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
12427         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
12428         config/mcore/mcore-protos.h, config/mcore/mcore.c,
12429         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
12430         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
12431         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
12432         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
12433         config/sh/sh.h, config/sparc/sparc.h,
12434         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
12435         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
12436         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
12437         FIRST argument.  As needed, examine it and do nothing.
12438
12439         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
12440         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
12441         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
12442
12443         * config/arm/t-pe (pe.o): Add dependencies.
12444
12445 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12446
12447         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
12448         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
12449         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
12450         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
12451         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
12452         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
12453         * defaults.h (BITS_PER_UNIT): Define.
12454         * doc/tm.texi (BITS_PER_UNIT): Document default value.
12455
12456 2002-03-02  Kazu Hirata  <kazu@hxi.com>
12457
12458         * config/h8300/h8300-protos.h: Add a prototype for
12459         compute_a_shift_length.
12460         * config/h8300/h8300.c (h8300_asm_insn_count): New.
12461         (compute_a_shift_length): Likewise.
12462         (h8300_adjust_insn_length): Do not adjust insn length of shift
12463         insns.
12464         * config/h8300/h8300.md (anonymous shift patterns): Use
12465         compute_a_shift_length.
12466
12467 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12468
12469         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
12470         trunc_int_for_mode.
12471
12472         * emit-rtl.c (offset_address): Call update_temp_slot_address.
12473
12474 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12475
12476         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
12477         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
12478         * flags.h (flag_zero_initialized_in_bss): Declare.
12479         * toplev.c (flag_zero_initialized_in_bss): New flag.
12480         (lang_independent_options): Add flag_zero_initialized_in_bss.
12481         * tree.c (initializer_zerop): New function.
12482         * tree.h (initializer_zerop): Declare.
12483         * varasm.c (assemble_variable): If we can emit bss, put zero
12484         initializers in the bss section.
12485
12486 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
12487
12488         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
12489         like more than one symbol per .weak directive.
12490
12491 2002-03-01  Richard Henderson  <rth@redhat.com>
12492
12493         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
12494         adjust argument_pointer by pretend_args_size.
12495         (ia64_va_start): Adjust va_start address by -pretend_args_size.
12496
12497 2002-03-01  Kazu Hirata  <kazu@hxi.com>
12498
12499         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
12500
12501 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
12502
12503         * toplev.c (rest_of_compilation): Delete dead jumptables before
12504         loop.
12505         * flow.c (delete_dead_jumptables): Make global.
12506         * rtl.h (delete_dead_jumptables): Declare.
12507
12508 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
12509
12510         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
12511         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
12512         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
12513
12514 2002-03-01  Kazu Hirata  <kazu@hxi.com>
12515
12516         * config/h8300/h8300-protos.h: Fix formatting.
12517         * config/h8300/h8300.c: Likewise.
12518         * config/h8300/h8300.h: Likewise.
12519
12520 2002-03-01  Kazu Hirata  <kazu@hxi.com>
12521
12522         * config/h8300/h8300.c (print_operand): Support 16-bit
12523         constant addresses.
12524         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
12525
12526 2002-02-28  Richard Henderson  <rth@redhat.com>
12527
12528         * expmed.c (store_bit_field): Prevent generation of CONCATs;
12529         pun complex values as integers; use gen_lowpart instead of
12530         gen_rtx_SUBREG.
12531         (extract_bit_field): Likewise.
12532
12533 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
12534             David Edelsohn  <edelsohn@gnu.org>
12535
12536         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
12537         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
12538         (SUPPORTS_WEAK): Likewise.
12539         * output.h (add_weak): Add tree param.
12540         * varasm.c (add_weak): Likewise.  Save decl.
12541         (struct weak_syms): Add decl field.
12542         (mark_weak_decls): New function.
12543         (init_varasm_once): ggc_add_root mark_weak_decls.
12544         (assemble_start_function): Use ASM_WEAKEN_DECL.
12545         (assemble_variable): Likewise.
12546         (assemble_alias): Likewise.
12547         (declare_weak): Pass decl to add_weak.
12548         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
12549         (remove_from_pending_weak_list): Declare and define for
12550         ASM_WEAKEN_DECL.
12551         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
12552         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
12553         * defaults.h (SUPPORTS_WEAK): Likewise.
12554         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
12555         .weak for code sym.  Do emit .size for descriptor sym.
12556         (ASM_DECLARE_FUNCTION_SIZE): Define.
12557         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
12558         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
12559         .lglobl unless TARGET_XCOFF.  Formatting fixes.
12560         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
12561         .weak for code sym.
12562         (HANDLE_PRAGMA_WEAK): Remove.
12563         (ASM_WEAKEN_LABEL): Remove.
12564         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
12565
12566 2002-03-01  Jason Merrill  <jason@redhat.com>
12567
12568         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
12569         (TARGET_EXPR_CLEANUP): New macro.
12570
12571 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
12572
12573         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
12574         to take ptr_extend into account as third type of extension.
12575         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
12576         fields used by SUBREG_PROMOTED_UNSIGNED_P.
12577         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
12578         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
12579         * calls.c (precompute_arguments): Use new macro.
12580         (expand_call): Ditto.
12581         * combine.c (nonzero_bits): Ditto.
12582         (record_promoted_value): Ditto.
12583         * expr.c (store_expr): Ditto.
12584         (expand_expr): Ditto.
12585         * function.c (assign_parms): Ditto.
12586
12587 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
12588
12589         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
12590         override -shared and -shared-libgcc.
12591
12592 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
12593
12594         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
12595         of "ultrasparc".
12596         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
12597         to be broken.
12598
12599 2002-02-28  Richard Henderson  <rth@redhat.com>
12600
12601         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
12602         4 cycle latency from MM producers.
12603         (ia64_internal_sched_reorder): Likewise with pipeline flush.
12604
12605 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
12606
12607         * mklibgcc.in: Don't use GNU make extension.
12608
12609 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
12610
12611         * c-parse.in (STATIC): New terminal.
12612         (scspec): New non-terminal.  Update productions accordingly.
12613         (program): Remove bogus ifc / end ifc.
12614         (array_declarator): Simplify production using STATIC.
12615
12616 2002-02-28  Jim Meyering  <meyering@lucent.com>
12617
12618         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
12619         \a still means TARGET_BELL.
12620
12621 2002-02-28  Richard Henderson  <rth@redhat.com>
12622
12623         * haifa-sched.c (sched_emit_insn): New.
12624         (schedule_block): Use last_scheduled_insn to track last insn.
12625         * sched-int.h (sched_emit_insn): Prototype.
12626         * config/ia64/ia64.c (last_issued): Remove.
12627         (ia64_variable_issue): Don't set it.
12628         (nop_cycles_until): Use sched_emit_insn.
12629
12630 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
12631
12632         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
12633         extended constants.
12634
12635 2002-02-28  Kazu Hirata  <kazu@hxi.com>
12636
12637         * config/h8300/h8300.c: Fix formatting.
12638         * config/h8300/h8300.h: Likewise.
12639
12640 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
12641
12642         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
12643         which may overwrite the high byte of the frame pointer.
12644
12645 2002-02-28  Bo Thorsen  <bo@suse.de>
12646
12647         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
12648         (STARTFILE_SPEC): Add 64 bit files.
12649         (ENDFILE_SPEC): Likewise.
12650
12651 2002-02-28  Jason Merrill  <jason@redhat.com>
12652
12653         * c-decl.c (finish_function): Only warn about missing return
12654         statement with -Wreturn-type.
12655
12656 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
12657
12658         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
12659
12660         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
12661         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
12662
12663 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
12664
12665         * basic-block.h (BB_REACHABLE): Renumber.
12666         (BB_DIRTY, BB_NEW): New flags.
12667         (clear_bb_flags): Declare.
12668         (update_life_info_in_dirty_blocks): Declare.
12669         * cfg.c (clear_bb_flags): New function.
12670         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
12671         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
12672         reorder_insns, emit_insn_after): Mark block as dirty.
12673         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
12674         (update_life_info_in_dirty_blocks): New function.
12675         * recog.c (apply_change_group): Dirtify block.
12676
12677         * cse.c (cse_insn): Reorder emitting of jump insn to keep
12678         cfg consistent.
12679         * gcse.c (delete_null_pointer_checks): Likewise.
12680
12681         * toplev.c (dump_file_index): Move cse2 after bp,
12682         add DFI_null
12683         (dump_file_info): Similary.
12684         (rest_of_compilation): Avoid most of CFG rebuilds;
12685         do first if converision after null pointer checks, do cse2
12686         after branch prediction; avoid full liveness rebuild after
12687         initializing subregs.
12688         * invoke.texi (-d options): Document -du, renumber.
12689
12690         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
12691         (notice_new_block): Do not set BB_UPDATE_LIFE.
12692         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
12693          merge_blocks_move_successor_nojumps, merge_blocks,
12694          try_crossjump_to_edge): Likewise.
12695         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
12696         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
12697         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
12698         (merge_of_block): Do not use life_data_ok.
12699         (find_if_case_1): Do not use SET_UPDATE_LIFE.
12700         (if_convert): Use BB_DIRTY mechanizm to update life.
12701         * lcm.c (optimize_mode_switching): Update
12702         update_life_info_in_dirty_blocks
12703
12704 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
12705
12706         * Makefile.in (integrate.o): Update.
12707         * c-decl.c (copy_lang_decl): Rename.
12708         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
12709         * integrate.c: Include langhooks.h.
12710         (copy_decl_for_inlining): Update to use langhook.
12711         * langhooks-def.h (lhd_do_nothing_t,
12712         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
12713         (LANG_HOOKS_INITIALIZER): Update.
12714         * langhooks.c (lhd_do_nothing_t): New.
12715         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
12716         * tree.h (copy_lang_decl): Remove.
12717 objc:
12718         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
12719
12720 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
12721
12722         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
12723         POST_DEC, and POST_MODIFY.
12724
12725 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
12726
12727         * c-typeck.c (digest_init): Remove unused parameter; all
12728         callers changed.
12729
12730 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
12731
12732         * expmed.c (expand_shift): Correctly test for low part of a
12733         subreg.
12734
12735 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
12736
12737         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
12738         insn UIDs with insn addresses.
12739
12740 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
12741
12742         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
12743         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
12744         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
12745         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
12746         gcc.c, toplev.c: Delete code implementing -traditional mode.
12747
12748         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
12749         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
12750         Document removal of -traditional mode for compilation, and
12751         remove documentation only relevant to that mode.
12752
12753         * config/nextstep.h, config/ptx4.h, config/svr4.h,
12754         config/convex/convex.h, config/d30v/d30v.h,
12755         config/i386/dgux.h, config/i386/osf1elf.h,
12756         config/i386/osfelf.h, config/i386/osfrose.h,
12757         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
12758         config/m68k/hp310.h, config/m88k/dgux.h,
12759         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
12760         config/m88k/m88k.h, config/m88k/openbsd.h,
12761         config/mips/abi64.h, config/mips/osfrose.h,
12762         config/mips/svr4-5.h, config/mips/svr4-t.h,
12763         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
12764         config/stormy16/stormy16.h: Remove all references to
12765         -traditional from target specs.  Delete all mention of the
12766         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
12767         delete a couple of commented-out definitions of
12768         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
12769         to -traditional.
12770
12771         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
12772         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
12773
12774 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
12775
12776         * mklibgcc.in: Don't use \n in a line subject to
12777         interpretation by echo.
12778
12779 2002-02-27  Graham Stott  <grahams@redhat.com>
12780
12781         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
12782         Constify NAME.
12783
12784         * loop.c (prescan_loop): Handle PARALLEL.
12785
12786         * unroll.c (loop_iterations): Return 0 if the add_val for
12787         a BIV is REG.
12788
12789         * final.c (output_operand_lossage): Constify PFX_STR.
12790
12791         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
12792
12793 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
12794
12795         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
12796         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
12797
12798 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
12799
12800         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
12801
12802 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
12803
12804         * cpplex.c (_cpp_lex_token): Handle directives in macro
12805         arguments.
12806         * cpplib.c (_cpp_handle_directive): Save and restore state
12807         if parsing macro args when entering a directive.
12808         * cppmacro.c (collect_args): No need to handle directives
12809         in macro arguments.
12810         (enter_macro_context, replace_args): Use the original macro
12811         definition in case it was redefined whilst collecting arguments.
12812 doc:
12813         * cpp.texi: Update.
12814
12815 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
12816
12817         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
12818         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
12819         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
12820         method on AIX.
12821         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
12822         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
12823         (load_toc_v4_PIC_2): Same.
12824
12825 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
12826
12827         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
12828
12829 2002-02-26  Richard Henderson  <rth@redhat.com>
12830
12831         * config/alpha/alpha.md (ashldi_se): Re-enable.
12832
12833 2002-02-26  Richard Henderson  <rth@redhat.com>
12834
12835         * config/alpha/alpha.c (alpha_encode_section_info): Examine
12836         MODULE_LOCAL_P; improve commentary.
12837
12838 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
12839
12840         * doc/cpp.texi: Clarify documentation of relationship between
12841         #line and #include.
12842
12843 2002-02-26  Kazu Hirata  <kazu@hxi.com>
12844
12845         * config/h8300/h8300-protos.h: Update the prototype for
12846         compute_logical_op_length.  Add the prototype for
12847         compute_logical_op_cc.
12848         * config/h8300/h8300.c (compute_logical_op_length): Figure out
12849         code from operands.
12850         (compute_logical_op_cc): New.
12851         * config/h8300/h8300.md: Combine all the logical op patterns
12852         in HImode and SImode.  Use compute_logical_op_cc.
12853
12854 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
12855
12856         * config/i386/i386.c (print_operand): Don't append ATT-style
12857         length suffixs to x87 opcodes when in Intel mode.
12858
12859 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
12860
12861         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
12862         (init_emit_once): Update calls.
12863         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
12864         (init_syntax_once): Prototype.
12865
12866 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12867
12868         * pa-linux.h (LIB_SPEC): Update definition.
12869         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
12870
12871 2002-02-26  Richard Henderson  <rth@redhat.com>
12872
12873         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
12874         if we emitted a stop bit.
12875
12876 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
12877
12878         * configure.in (libgcc_visibility): Substitute.
12879         * configure: Rebuilt.
12880         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
12881         defined symbols .hidden.
12882
12883 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
12884
12885         * attribs.c (c_common_attribute_table): Add visibility.
12886         (handle_visibility_attribute): New function.
12887         * varasm.c (assemble_visibility): New function.
12888         * output.h (assemble_visibility): Add prototype.
12889         * tree.h (MODULE_LOCAL_P): Define.
12890         * crtstuff.c (__dso_handle): Use visibility attribute.
12891         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
12892         for MODULE_LOCAL_P symbols too.
12893         * config/ia64/ia64.c (ia64_encode_section_info): Handle
12894         MODULE_LOCAL_P symbols the same way as local symbols.
12895         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
12896         into .sdata/.sbss by the user.
12897         * doc/extend.texi (Function Attributes): Document visibility
12898         attribute.
12899
12900 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
12901
12902         PR debug/5770
12903         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
12904         STRING_CST initializer spanning the whole variable without
12905         embedded zeros.
12906         If expand_expr returned MEM, don't use it.
12907
12908 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
12909
12910         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
12911         generate a die for the lexical block.
12912
12913 2002-02-26  Kazu Hirata  <kazu@hxi.com>
12914
12915         * config/h8300/h8300-protos.h: Add a prototype for
12916         compute_logical_op_length.
12917         * config/h8300/h8300.c (compute_logical_op_length): New.
12918         * config/h8300/h8300.md (anonymous logical patterns): Use
12919         compute_logical_op_length for length.
12920
12921 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
12922
12923         * dwarf2out.c (modified_type_die): Do not call type_main_variant
12924         for vectors.
12925         (gen_type_die): Same.
12926
12927         * attribs.c (handle_vector_size_attribute): Set debug information.
12928
12929 2002-02-26  Daniel Egger  <degger@fhm.edu>
12930
12931         * config/rs6000/rs6000.md: Swap define_insn attributes to
12932         fix incorrect generation of merge high instructions instead
12933         of merge low.
12934
12935 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
12936
12937         * c-typeck.c (really_start_incremental_init): Use
12938         bitsize_zero_node for vectors.
12939
12940 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
12941
12942         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
12943         ("*set_vrsave_internal"): Same.
12944
12945 2002-02-25  Richard Henderson  <rth@redhat.com>
12946
12947         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
12948         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
12949
12950 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
12951
12952         PR target/5755
12953         * config/i386/i386.c (ix86_return_pops_args): Only pop
12954         fake structure return argument if it was passed on the stack.
12955
12956 2002-02-25  Jason Merrill  <jason@redhat.com>
12957
12958         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
12959         RESULT_DECL.
12960
12961 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
12962
12963         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
12964         link with shared_name only.
12965         * doc/invoke.texi (Link Options): Document new behavior.
12966
12967 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
12968
12969         * c-typeck.c (push_init_level): Handle vectors.
12970
12971 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
12972
12973         * config/sparc/sparc.c (const64_high_operand): Zero-extend
12974         operands of SPARC_SETHI_P.
12975         (input_operand): Likewise.
12976         (sparc_emit_set_const32): Likewise.
12977         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
12978         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
12979         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
12980         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
12981         (movdi_insn_sp64_vis): Likewise.
12982         (movdi split, movdf split): Use SETHI32.
12983         * doc/md.texi: Document SPARC constraints L, M and N.
12984
12985 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
12986
12987         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
12988         ("*set_vrsave_internal"): use mfspr for Darwin.
12989
12990         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
12991         gen_get_vrsave_internal.
12992
12993 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12994
12995         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
12996
12997 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
12998
12999         * cpplex.c (cpp_interpret_charconst): Get signedness or
13000         otherwise of wide character constants correct.
13001         * cppexp.c (lex): Get signedness of wide charconsts correct.
13002
13003 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13004
13005         * optabs.c (widen_operand): Only call convert_modes for
13006         promoted SUBREG if signedness matches.
13007         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
13008
13009 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13010
13011         * cpplib.c (glue_header_name): Use local buffer to build up
13012         header name.
13013
13014 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13015
13016         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
13017
13018 2002-02-23  Kazu Hirata  <kazu@hxi.com>
13019
13020         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
13021         H8/300[HS] separately.
13022         * config/h8300/h8300.md: Remove the early clobber constraint
13023         from bit field patterns.
13024
13025 2002-02-23  Kazu Hirata  <kazu@hxi.com>
13026
13027         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
13028         register_operand.
13029         (mulhisi3): Likewise.
13030         (umulqisi3): Likewise.
13031         (umulhisi3): Likewise.
13032
13033 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13034
13035         * cppinit.c (output_deps): Correct test for stdout output.
13036         (init_dependency_output): Cure warning.
13037
13038 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13039
13040         * expr.c (store_expr): When converting expression to promoted
13041         equivalent type, allow using SUBREG_REG of TARGET as the target
13042         of the expansion of EXP.
13043         * loop.c (basic_induction_var, case SUBREG): Always look inside.
13044         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
13045         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
13046         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
13047         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
13048
13049 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
13050
13051         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
13052         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
13053         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
13054
13055 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
13056
13057         PR optimization/5747
13058         * loop.c (scan_loop): Update reg info if move_movables created new
13059         pseudos.
13060
13061 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
13062
13063         * gcc.c (init_gcc_spec): Revert last change.
13064
13065 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
13066
13067         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
13068         gpc_reg_operand constraint.
13069
13070 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
13071
13072         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
13073         Simplify comparison of `low'.
13074         (add_operand): Fix formatting.
13075         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
13076         (mask_operand): Disallow mask to wrap in 64-bit mode.
13077         (rs6000_stack_info): Remove redundant test setting push_p.
13078         (output_toc): Fix formatting.
13079         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
13080         cc_reg_not_cr0_operand constraint.
13081         (booldi3, boolcdi3 splitters): Same.
13082
13083 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
13084
13085         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
13086
13087 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
13088
13089         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
13090         gcc invoked with -shared-libgcc.
13091
13092 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
13093
13094         PR c++/5748
13095         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
13096         decl if any of elements was TREE_USED.
13097
13098 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
13099
13100         * config/sparc/sol2.h: Don't include sys/mman.h.
13101         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
13102         (arith_4096_operand): Don't throw high bits away.
13103         (const64_operand): Take sign extension of CONST_INTs into account.
13104         (const64_high_operand, sparc_emit_set_const32): Likewise.
13105         (GEN_HIGHINT64): Likewise.
13106         (sparc_emit_set_const64_quick1): Likewise.
13107         (const64_is_2insns): Likewise.
13108         (print_operand): Use trunc_int_for_mode for sign extension.
13109         * config/sparc/sparc.h (SMALL_INT32): Likewise.
13110         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
13111         chars.  Assume CONST_INT is already properly sign-extended.
13112         (movdi split): Sign-extend each SImode part.
13113         (andsi3 split): Don't mask high bits off, so that result
13114         remains properly sign-extend.
13115         (iorsi3 split): Likewise.
13116         (xorsi3 split): Likewise.
13117
13118 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
13119
13120         * fold-const.c (fold): Fix typo in comments.
13121
13122 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
13123
13124         * Makefile.in (langhooks.o): Update dependencies.
13125
13126 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
13127
13128         * langhooks.c: Include flags.h.
13129
13130 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
13131
13132         * testsuite/gcc.dg/attr-alwaysinline.c: New.
13133
13134         * c-common.c (c_common_post_options): Set inline trees by
13135         default.
13136
13137         * doc/extend.texi (Function Attributes): Document always_inline
13138         attribute.
13139         Update documentation about inlining when not optimizing.
13140
13141         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
13142
13143         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
13144         unless DECL_ALWAYS_INLINE.
13145
13146         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
13147         unless DECL_ALWAYS_INLINE.
13148         (c_disregard_inline_limits): Disregard if always_inline set.
13149
13150         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
13151         Disregard if always_inline set.
13152         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
13153         unless DECL_ALWAYS_INLINE.
13154
13155         * attribs.c (handle_always_inline_attribute): New.
13156         (c_common_attribute_table): Add always_inline.
13157
13158         * config/rs6000/altivec.h: Add prototypes for builtins
13159         requiring the always_inline attribute.
13160
13161 2002-02-21  Eric Christopher  <echristo@redhat.com>
13162
13163         * expmed.c (store_bit_field): Try to simplify the subreg
13164         before generating a new one when when the mode size of
13165         value is less than maxmode.
13166
13167 2002-02-21  Richard Henderson  <rth@redhat.com>
13168
13169         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
13170         than gen_rtx_PLUS to form the sum.
13171         * explow.c (force_reg): Rearrange to not allocate new pseudo
13172         when force_operand returns a register.
13173         * expr.c (expand_assignment): Allow offset_rtx expansion to
13174         return a sum.  Do not force addresses into registers.
13175         (expand_expr): Likewise.
13176         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
13177         to canonicalize arithmetic that didn't simpify.
13178         (simplify_plus_minus): New argument force; update
13179         all callers.  Don't split CONST unless we can do something with it,
13180         and wouldn't lose the constness of the operands.
13181
13182         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
13183         that we generated earlier.
13184
13185 2002-02-21  Tom Tromey  <tromey@redhat.com>
13186
13187         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13188         (output_line_info): Use constant `1', with a long explanatory
13189         comment.
13190         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
13191
13192 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
13193
13194         * jump.c (redirect_jump): If old label has no UID, don't try to
13195         delete it.
13196
13197 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
13198
13199         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
13200         If input is constant, do shifts at compile time.
13201
13202 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
13203
13204         * doc/extend.texi: Fix some more overfull hboxes.
13205
13206 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
13207
13208         PR optimization/4994
13209         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
13210         register moves.
13211
13212 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
13213
13214         PR c++/4574
13215         * expr.h (expand_and): Add mode argument.
13216         * expmed.c (expand_and): Add mode argument.
13217         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
13218         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
13219         * except.c (expand_builtin_extract_return_addr): Likewise.
13220         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
13221         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
13222         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
13223         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
13224         * config/c4x/c4x.md: Use GEN_INT (x) instead of
13225         gen_rtx (CONST_INT, VOIDmode, x).
13226
13227 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
13228
13229         PR c/4697:
13230         * stmt.c (warn_if_unused_value): Move side effects test once more.
13231
13232 2002-02-20  Torbjorn Granlund  <tege@swox.com>
13233
13234         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
13235         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
13236
13237 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
13238
13239         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
13240         SUBREG or ZERO_EXTEND.
13241
13242 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
13243
13244         * sh.h (current_function_anonymous_args): Remove.
13245         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
13246         of current_function_varargs and current_function_stdarg is set.
13247         * sh.c (sh_expand_prologue): Check current_function_varargs /
13248         current_function_stdarg / TARGET_SH5 instead of
13249         current_function_anonymous_args.
13250
13251         * sh64.h (TARGET_VERSION): Define.
13252
13253 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
13254
13255         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
13256         VRSAVE_REGNO on TARGET_ALTIVEC.
13257
13258 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
13259
13260         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
13261         bits of SImode const_int.
13262         (includes_rshift_p): Likewise.
13263         (print_operand): Call mask_operand and mask64_operand with correct
13264         mode.
13265         (rs6000_output_function_epilogue): Pad traceback table to word.
13266         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
13267         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
13268         mask64_operand with correct mode.
13269         (FUNCTION_ARG_REGNO_P): Correct parentheses.
13270
13271 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
13272
13273         PR debug/4461
13274         * varasm.c (get_pool_constant_mark): New.
13275         * rtl.h (get_pool_constant_mark): Add prototype.
13276         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
13277         be represented if it has not been output.
13278
13279 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
13280
13281         * combine.c (do_SUBST): Sanity check substitutions of
13282         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
13283         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
13284         CONST_INT into its operand.
13285         (known_cond): Likewise, for ZERO_EXTEND.
13286         * simplify-rtx.c (simplify_unary_operation): Fix condition to
13287         allow for simplification of wide modes.  Reject CONST_INTs in
13288         ZERO_EXTEND when their actual mode is not given.
13289
13290 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
13291
13292         * c-decl.c (pushdecl): If no global declaration is found for an
13293         extern declaration in block scope, try a limbo one.
13294
13295 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
13296
13297         PR c++/4401
13298         * c-common.c (pointer_int_sum): Moved from...
13299         * c-typeck.c (pointer_int_sum): ...here.
13300         * c-common.h (pointer_int_sum): Add prototype.
13301
13302 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
13303
13304         PR c++/5713
13305         * c-decl.c (duplicate_decls): Return 0 if issued error about
13306         redeclaration.
13307
13308 2002-02-20  Roger Sayle  <roger@eyesopen.com>
13309             Jakub Jelinek  <jakub@redhat.com>
13310
13311         PR c/4389
13312         * tree.c (host_integerp): Ensure that the constant integer is
13313         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
13314         when pos is zero or non-zero respectively.  Clarify comment.
13315         * c-format.c (check_format_info_recurse): Fix host_integerp
13316         usage; the pos argument should be zero when assigning to a
13317         signed HOST_WIDE_INT.
13318
13319 2002-02-20  Richard Henderson  <rth@redhat.com>
13320
13321         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
13322         of the operand, rather than assuming TImode.
13323         (ix86_expand_binop_builtin): Cope with commutative patterns
13324         using nonimmediate_operand for both operands.
13325         (ix86_expand_timode_binop_builtin): Likewise.
13326         (ix86_expand_store_builtin): Validate operand 1.
13327         (ix86_expand_unop1_builtin): Likewise.
13328
13329 2002-02-20  Philip Blundell  <philb@gnu.org>
13330
13331         PR 5705
13332         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
13333
13334 2002-02-20  Richard Henderson  <rth@redhat.com>
13335
13336         PR c/5615
13337         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
13338
13339 2002-02-20  Tom Tromey  <tromey@redhat.com>
13340
13341         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13342         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13343         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13344         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13345         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
13346         unconditionally.
13347
13348 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
13349
13350         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
13351           for (const_int 0) in X not just INTVAL.
13352
13353 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
13354
13355         * doc/extend.texi: Avoid or reduce overfull hboxes.
13356
13357 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
13358
13359         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
13360         operations if the field does not start at a mode boundary.
13361
13362 2001-02-20      Joel Sherrill <joel@OARcorp.com>
13363
13364         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
13365         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
13366         Also done for -Acpu and -Amachine.
13367
13368 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
13369
13370         * cppinit.c (init_dependency_output): Take deps output file
13371         from -o if none given with -MF.  Suppress normal output.
13372         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
13373         * doc/cpp.texi, doc/invoke.texi: Update.
13374
13375 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
13376
13377         * toplev.c (output_quoted_string): Write unprintable
13378         characters with octal escapes.
13379
13380 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
13381
13382         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
13383         really_call_used[VRSAVE_REGNO] if not Altivec.
13384
13385 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
13386
13387         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
13388         MODE_MASK.
13389         (constant_pool_expr_1): Fix formatting.
13390         (rs6000_legitimize_reload_address): Likewise.
13391
13392 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13393
13394         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
13395         now that we have one.
13396
13397 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
13398
13399         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
13400         end of first block of bitfields (which was only seven bits);
13401         rename dummy to unused_1; remove comment which is no longer true.
13402
13403 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
13404
13405         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
13406
13407 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
13408
13409         PR 5399
13410         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
13411         if generating PIC.
13412
13413         PR 5054
13414         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
13415         arm_is_longcall_p rather than inspecting call-type cookie
13416         directly.
13417         (call_value_insn) [TARGET_THUMB]: Likewise.
13418
13419 2002-02-19  Graham Stott  <grahams@redhat.com>
13420
13421         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
13422
13423 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
13424
13425         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
13426         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
13427         (FP_SAVE_INLINE): Delete.
13428
13429         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
13430         * config/rs6000/eabi.asm: Remove ABI save restore routines.
13431         * config/rs6000/t-ppccomm: Build crtsavres.o.
13432         * config/rs6000/crtsavres.asm: New file.
13433
13434 2002-02-19  Philip Blundell  <philb@gnu.org>
13435
13436         * config/arm/arm.c (use_return_insn): Don't reject interrupt
13437         functions.
13438         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
13439         (output_return_instruction): Allow interrupt functions to return with
13440         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
13441         (arm_expand_prologue): Subtract 4 before stacking LR in an
13442         interrupt function.
13443
13444 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
13445
13446         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
13447         decl, not just FUNCTION_DECL.
13448         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
13449         (arm_assemble_integer): Likewise.
13450         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
13451         marked local.
13452
13453 2002-02-19  matthew green  <mrg@eterna.com.au>
13454
13455         * config.gcc (sparc-*-netbsdelf*): Enable target.
13456         (sparc64-*-netbsd*): New target.
13457         * config/sparc/netbsd-elf.h: New file.
13458         * config/sparc/t-netbsd64: New file.
13459
13460 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
13461
13462         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
13463
13464 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
13465
13466         * doc/invoke.texi: explicitly list the style guidelines that
13467         -Weffc++ checks for.
13468
13469 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
13470
13471         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
13472
13473 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
13474
13475         PR other/5718
13476         * gcc.c (cpp_unique_options): Treat -o as indicating object file
13477         only if not -E.  If -E, pass -o through to the preprocessor.
13478
13479 2002-02-19  Kazu Hirata  <kazu@hxi.com>
13480
13481         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
13482         register number with an appropriate macro.
13483
13484 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
13485
13486         * doc/rtl.texi (Constants): Close @code tag.
13487
13488 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
13489
13490         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
13491         ("mmx_uavgv4hi3"): Same.
13492         ("pmulhrwv4hi3"): Same.
13493
13494         * tree-inline.c (walk_tree): Handle vectors.
13495
13496         * c-common.c (constant_expression_warning): Handle vectors.
13497         (overflow_warning): Same.
13498
13499         * sched-deps.c (sched_analyze_2): Handle vectors.
13500
13501         * rtlanal.c (rtx_unstable_p): Handle vectors.
13502         (rtx_varies_p): Same.
13503         (count_occurrences): Same.
13504         (regs_set_between_p): Same.
13505         (modified_between_p): Same.
13506         (modified_in_p): Same.
13507         (volatile_insn_p): Same.
13508         (volatile_refs_p): Same.
13509         (side_effects_p): Same.
13510         (may_trap_p): Same.
13511         (inequality_comparisons_p): Same.
13512         (replace_regs): Same.
13513         (computed_jump_p_1): Same.
13514
13515         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
13516         argument.
13517         (inner_mode_array): New.
13518         (copy_rtx): Handle vectors.
13519         (copy_most_rtx): Same.
13520         (rtx_equal_p): Same.
13521         (get_mode_alignment): Adjust for vectors.
13522
13523         * resource.c (mark_referenced_resources): Handle vectors.
13524         (mark_set_resources): Same.
13525
13526         * reload1.c (eliminate_regs): Handle vectors.
13527         (elimination_effects): Same.
13528         (scan_paradoxical_subregs): Same.
13529
13530         * reload.c (subst_reg_equivs): Handle vectors.
13531
13532         * regrename.c (scan_rtx): Handle vectors.
13533
13534         * regclass.c (reg_scan_mark_refs): Handle vectors.
13535
13536         * recog.c (find_single_use_1): Handle vectors.
13537
13538         * local-alloc.c (equiv_init_varies_p): Handle vectors.
13539         (contains_replace_regs): Same.
13540         (memref_referenced_p): Same.
13541
13542         * integrate.c (copy_rtx_and_substitute): Handle vectors.
13543         (subst_constants): Same.
13544
13545         * genattrtab.c (attr_copy_rtx): Handle vectors.
13546         (encode_units_mask): Same.
13547         (clear_struct_flag): Same.
13548         (count_sub_rtxs): Same.
13549
13550         * gcse.c (want_to_gcse_p): Handle vectors.
13551         (oprs_unchanged_p): Same.
13552         (hash_expr_1): Same.
13553         (oprs_not_set_p): Same.
13554         (expr_killed_p): Same.
13555         (compute_transp): Same.
13556         (store_ops_ok): Same.
13557
13558         * function.c (purge_addressof_1): Do not allow paradoxical subregs
13559         of vectors.
13560         (fixup_var_refs_1): Same.
13561         (instantiate_virtual_regs_1): Same.
13562
13563         * fold-const.c (operand_equal_p): Handle vectors.
13564         (fold): Same.
13565         (rtl_expr_nonnegative_p): Same.
13566
13567         * flow.c (mark_used_regs): Handle vectors.
13568
13569         * df.c (df_uses_record): Handle vectors.
13570
13571         * cselib.c (cselib_subst_to_values): Handle vectors.
13572         (cselib_mem_conflict_p): Same.
13573         (hash_rtx): Same.
13574
13575         * cse.c (canon_reg): Handle vectors.
13576         (fold_rt): Same.
13577         (cse_process_notes): Same.
13578         (count_reg_usage): Same.
13579         (canon_hash): Same.
13580
13581         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
13582
13583         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
13584
13585         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
13586         (gen_rtx): Handle CONST_VECTOR.
13587         (gen_const_vector_0): New.
13588         (copy_rtx_if_shared): CONST_VECTORs can be shared.
13589         (reset_used_flags): Same.
13590         (copy_insn_1): Same.
13591         (initializer_constant_valid_p): Handle VECTOR_CST.
13592
13593         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
13594
13595         * doc/rtl.texi (Constants): Document const_vector.
13596         (CONST0_RTX): Update for vectors.
13597         (RTL sharing): Same.
13598
13599         * print-tree.c (print_node): Add case for VECTOR_CST.
13600
13601         * tree.h (TREE_VECTOR_CST_ELTS): New.
13602         (struct tree_vector): New.
13603         (union tree_node): Add vector node.
13604         (build_vector): Add prototype.
13605
13606         * tree.def (VECTOR_CST): New.
13607
13608         * tree.c (build_vector): New.
13609
13610         * expmed.c (make_tree): Handle CONST_VECTOR.
13611
13612         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
13613         (CONST_VECTOR_ELT): New.
13614         (CONST_VECTOR_NUNITS): New.
13615
13616         * machmode.h (GET_MODE_INNER): New.
13617         (DEF_MACHMODE): Accept 8th arg.
13618
13619         * machmode.def: Add 8th argument for vector inner mode.
13620         Add inner vector modes for vectors.
13621
13622         * rtl.def (VEC_CONST): Remove.
13623         (CONST_VECTOR): New.
13624
13625         * expr.c (clear_storage): Allow vectors.
13626         (is_zeros_p): Handle VECTOR_CST.
13627
13628         * varasm.c (output_constant_pool): Handle vectors.
13629         (rtx_const): Add veclo and vechi fields.
13630         (kind): Add RTX_VECTOR.
13631         (decode_rtx_const): Add case for vector.
13632
13633         * config/rs6000/rs6000-protos.h: Add zero_constant.
13634
13635         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
13636         constants.  Force easy vector constants into memory.
13637         (easy_vector_constant): New.
13638         (emit_easy_vector_constant): New.
13639         (rs6000_legitimize_reload_address): Do not generate bad reloads on
13640         darwin.
13641
13642         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
13643         instruction does.
13644         ("altivec_lvxl"): Same.
13645         (altivec_lvebx): Same.
13646         (altivec_lvehx): Same.
13647         (altivec_lvewx): Same.
13648         ("*movv4si_const0"): New.
13649         ("*movv4sf_const0"): New.
13650         ("*movv8hi_const0"): New.
13651         ("*movv16qi_const0"): New.
13652
13653 2002-02-18  Kazu Hirata  <kazu@hxi.com>
13654
13655         * config/h8300/h8300.c (notice_update_cc): Use
13656         cc_status.value2.
13657
13658 2002-02-18  Kazu Hirata  <kazu@hxi.com>
13659
13660         * config/h8300/h8300.md (divmod patterns): Change the
13661         constraints for operands[1] to register_operand.
13662
13663 2002-02-18  Kazu Hirata  <kazu@hxi.com>
13664
13665         * config/h8300/h8300-protos.h: Remove the prototype for
13666         p_operand.
13667         * config/h8300/h8300.c (p_operand): Remove.
13668         * config/h8300/h8300.md: Replace p_operand with
13669         const_int_operand.
13670
13671 2002-02-18 Philip Blundell <pb@nexus.co.uk>
13672
13673         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
13674         comment.
13675         (output_return_instruction): Allow use of LDR to unstack
13676         return addresss even for interrupt handlers or when
13677         interworking.  If compiling for ARMv5, use interworking-safe
13678         return instructions by default.  Remove duplicated code and
13679         lengthy "strcat" sequences.
13680
13681 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13682
13683         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
13684         (LINK_EH_SPEC): Define.
13685         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
13686
13687 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
13688
13689         * config/s390/s390.c (s390_emit_prologue): Do not set the
13690         frame_related flag for call-clobbered registers.
13691
13692 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
13693
13694         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
13695         (construct_container): Fix handling of SSE operands.
13696         (ix86_expand_builtin): Fix handling of 64bit pointers.
13697         (mmx_maskmovq_rex): New pattern.
13698
13699 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
13700
13701         * regrename.c (kill_set_value): Handle subregs properly.
13702
13703 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
13704
13705         * objc/objc-act.c (handle_impent): Remove leading '*'
13706         from objc_class_name.
13707
13708 2002-02-17  Richard Henderson  <rth@redhat.com>
13709
13710         * config/alpha/alpha.c (some_small_symbolic_operand,
13711         some_small_symbolic_operand_1, split_small_symbolic_operand,
13712         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
13713         Handle small SYMBOL_REFs anywhere, not just inside memories.
13714         * config/alpha/alpha-protos.h: Update.
13715         * config/alpha/alpha.h (PREDICATE_CODES): Update.
13716         * config/alpha/alpha.md (small symbolic operand splitter): Update.
13717
13718 2002-02-17  Roland McGrath  <roland@frob.com>
13719
13720         * config.gcc (powerpc-*-gnu-gnualtivec*,
13721         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
13722         * config/rs6000/gnu.h: New file.
13723         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
13724         Grok "gnu" in rs6000_abi_name.
13725         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
13726         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
13727         Grok -mcall-gnu analogous to -mcall-linux et al.
13728         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
13729         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
13730         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
13731
13732 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
13733
13734         PR c/3444:
13735         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
13736         shortening.
13737
13738 2002-02-17  Philipp Thomas  <pthomas@suse.de>
13739
13740         * config/cris/cris.h: Undefine STARTFILE_SPEC and
13741         ENDFILE_SPEC before (re)defining them.
13742
13743 2002-02-17  Kazu Hirata  <kazu@hxi.com>
13744
13745         * config/h8300/h8300.c: Fix formatting.
13746         * config/h8300/h8300.h: Likewise.
13747
13748 2002-02-17  Philipp Thomas  <pthomas@suse.de>
13749
13750         * doc/tm.texi: Explain why empty strings should not be
13751         marked for translation.
13752
13753 2002-02-17  Philipp Thomas  <pthomas@suse.de>
13754
13755         * final.c (output_operand_lossage): Changed to accept
13756         printf style arguments. Change calls where necessary.
13757         * output.h (output_operand_lossage): Change declaration
13758         accordingly. Update copyright.
13759         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
13760         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
13761         Update copyright date where necessary.
13762
13763         * config/i386/i386.c (print_operand): Likewise. Remove use of
13764         sprintf.
13765
13766         * config/cris/cris.c (cris_operand_lossage): Likewise.
13767         Rename parameter so that exgettext recognizes it as
13768         translatable message.
13769         (LOSE_AND_RETURN): Rename parameter to msgid.
13770
13771 2002-02-17  Kazu Hirata  <kazu@hxi.com>
13772
13773         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
13774         hard coded register number with an appropriate macro.
13775         (HARD_REGNO_MODE_OK): Likewise.
13776         (ARG_POINTER_REGNUM): Likewise.
13777         (STATIC_CHAIN_REGNUM): Likewise.
13778         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
13779         * config/h8300/h8300.md (define_constants): Define more
13780         register numbers.
13781
13782 2002-02-17  Philipp Thomas  <pthomas@suse.de>
13783
13784         * config/i386/i386.h: Don't mark empty strings for translation.
13785
13786 2002-02-16  H.J. Lu <hjl@gnu.org>
13787
13788         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
13789
13790 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
13791
13792         * cppinit.c (merge_include_chains): Check for brack being
13793         NULL before attempting to merge it with qtail.
13794
13795 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
13796
13797         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
13798         DBX_DEBUG.
13799
13800 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13801
13802         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
13803
13804 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13805
13806         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
13807         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
13808         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
13809
13810 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13811
13812         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
13813         now only if !TARGET_FIX.
13814         (*movsi_nt_vms_fix): New pattern.
13815
13816 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
13817
13818         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
13819         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
13820         (alpha_sa_mask, alpha_sa_size): Reflect above change.
13821         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
13822         (alpha_start_function, alpha_expand_epilogue): Likewise.
13823         (unicosmk_gen_dsib): Likewise.
13824
13825 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13826
13827         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
13828
13829 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
13830
13831         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
13832         check_and_change_labels, s390_final_chunkify): Delete.
13833         (s390_split_branches, s390_chunkify_pool): New functions.
13834         (s390_function_prologue): Call them.
13835
13836         * config/s390/s390.h (S390_REL_MAX): Delete.
13837         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
13838
13839         * config/s390/s390.md (cjump, icjump, jump): Fix length
13840         attribute calculation.
13841
13842
13843 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
13844
13845         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
13846         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
13847
13848 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13849
13850         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
13851         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
13852         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
13853
13854 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
13855
13856         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
13857
13858 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
13859
13860         * reload.c (find_dummy_reload): Check that an output register
13861         is valid for its mode.
13862
13863 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
13864
13865         * combine.c (known_cond): After replacing the REG of a SUBREG, try
13866         to simplify it.
13867
13868         * function.c (assign_parms): Demote promoted argument passed by
13869         transparent reference.
13870
13871 2001-02-14      Joel Sherrill <joel@OARcorp.com>
13872
13873         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
13874         -Acpu() and -Amachine() to eliminate warnings.
13875
13876 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
13877
13878         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
13879
13880 2002-02-14  Kazu Hirata  <kazu@hxi.com>
13881
13882         * config/h8300/h8300-protos.h: Update the prototype for
13883         const_costs.
13884         * config/h8300/h8300.c (const_costs): Treat SET as a little
13885         more expensive operation.
13886         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
13887         reference to const_costs.
13888
13889 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
13890
13891         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
13892
13893 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
13894
13895         PR c/5503:
13896         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
13897         use arguments from newtype.
13898
13899 2002-02-13  Eric Christopher  <echristo@redhat.com>
13900
13901         * config/mips/mips.c (override_options): Add check for march/mipsX
13902         on the same command line. Fix error message in cpu processing.
13903         Remove architecture and ISA checks.
13904
13905 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
13906
13907         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
13908
13909         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
13910
13911 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
13912
13913         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
13914         alternatives.
13915         ("*movv8hi_internal1"): Same.
13916         ("*movv16qi_internal1"): Same.
13917         ("*movv4sf_internal1"): Same.
13918
13919         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
13920         not push_reload for altivec modes.
13921
13922 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
13923
13924         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
13925         all RTEMS targets including removal of #includes from config/*/rtems*.h
13926         file and adding them to tm_file setting. Added xm_defines=POSIX to
13927         many targets.
13928         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
13929         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
13930         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
13931         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
13932         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
13933         config/m68k/rtemself.h: Ditto.
13934         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
13935         config/mips/rtems64.h: Ditto.
13936         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
13937         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
13938         Ditto.
13939         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
13940         config/sparc/rtemself.h: Ditto.
13941         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
13942         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
13943         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
13944         more like arm-elf.
13945         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
13946         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
13947         target made more similar to i386-elf.
13948         * config/i386/t-rtems-i386: Added soft float support and multilibs.
13949         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
13950         be similar to config/m68k/t-m68kelf.
13951         * gthr-rtems.h: Encapsulate with extern "C" for C++.
13952
13953 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
13954
13955         * regmove.c (kill_value): Handle subregs.
13956
13957 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
13958
13959         * i386.md (mul patterns): Allow memory operand to be first;
13960         add expanders where needed; fix constraints.
13961         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
13962         Allow memory operand to be the first.
13963
13964         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
13965         operands.
13966
13967 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
13968
13969         PR c/5681:
13970         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
13971         GET_MODE (x).
13972
13973 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
13974
13975         PR optimization/5547:
13976         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
13977         all valid IA-32 address modes involving non-scaled %ebx and
13978         GOT/GOTOFF as displacement.
13979
13980 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
13981
13982         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
13983         after emitting ltorg insns.
13984
13985         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
13986         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
13987         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
13988         *abssf2): Fix "op_type" attribute.
13989
13990 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
13991
13992         * mkconfig.sh: Avoid using a subshell redirect.
13993         ($output.T): Change to $(output)T.
13994         (ENABLE_NLS): Remove unneeded undef.
13995
13996         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
13997         * config/alpha/x-vms (libsubdir): Define.
13998
13999         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
14000         register frame procedures. Optimize retrieving context.
14001
14002         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
14003         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
14004         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
14005
14006 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14007
14008         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
14009         Make same change as for find_base_value.
14010
14011 2002-02-13  Kazu Hirata  <kazu@hxi.com>
14012
14013         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
14014         of QImode and SImode.
14015
14016 2002-02-13  Kazu Hirata  <kazu@hxi.com>
14017
14018         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
14019         length computation of movsi.
14020         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
14021
14022 2002-02-13  Kazu Hirata  <kazu@hxi.com>
14023
14024         * config/h8300/h8300.md (subqi3): Tighten the predicate for
14025         operands[2] to register_operand.
14026
14027 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
14028
14029         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
14030
14031 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
14032
14033         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
14034         for altivec_lvx* and altivec_stvx*.
14035         ("*movv4si_internal"): Add constraint for loading from GPRs.
14036         ("*movv8hi_internal1"): Same.
14037         ("*movv16qi_internal1"): Same.
14038         ("*movv4sf_internal1"): Same.
14039
14040         * config/rs6000/rs6000.c (altivec_register_operand): New.
14041
14042         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
14043         altivec_register_operand.
14044
14045 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
14046
14047         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
14048         handle SYMBOL_REF.
14049
14050 2002-02-13  Stan Shebs  <shebs@apple.com>
14051
14052         * c-typeck.c (digest_init): Handle vectors.
14053         (really_start_incremental_init): Same.
14054         (pop_init_level): Same.
14055         (process_init_element): Same.
14056
14057         * varasm.c (output_constant): Same.
14058
14059         * expr.c (clear_storage): Same.
14060         (store_constructor): Same.
14061
14062 2002-02-12  Eric Christopher  <echristo@redhat.com>
14063
14064         * explow.c (hard_function_value): Add comment explaining
14065         signed/unsigned comparison.
14066
14067 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
14068
14069         * jump.c (never_reached_warning): Add finish argument.
14070         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
14071         real insn after end.
14072         * rtl.h (never_reached_warning): Adjust prototype.
14073         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
14074         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
14075         never_reached_warning.
14076
14077 2002-02-12  Graham Stott  <grahams@redhat.com>
14078
14079         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
14080
14081 2002-02-12  Kazu Hirata  <kazu@hxi.com>
14082
14083         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
14084         logical shifts on H8/300.
14085         (shift_alg_si): Improve several shifts on H8/300.
14086         (get_shift_alg): Likewise.
14087
14088 2002-02-12  Graham Stott  <grahams@redhat.com>
14089
14090         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
14091
14092 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14093
14094         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
14095         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
14096
14097 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
14098
14099         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
14100         non-CONST_INT through default_assemble_integer.
14101         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
14102         <case 8>: Abort for CONST_DOUBLE.
14103
14104 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14105
14106         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
14107         is specified.
14108         * config/pa/pa-linux.h (LIB_SPEC): Delete.
14109         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
14110
14111 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
14112
14113         * config/stormy16/stormy16.md (zero_extendqihi2): New.
14114
14115 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
14116
14117         * regrename.c (regrename_optimize): Don't accept a
14118         part-clobbered register if the replaced register is not part
14119         clobbered.
14120
14121         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
14122         take padding into account when computing the argument value.
14123
14124         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
14125
14126         * combine.c (try_combine): Apply substitutions in
14127         CALL_INSN_FUNCTION_USAGE too.
14128
14129 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
14130
14131         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
14132         __builtin_altivec_abs*.
14133         (bdesc_abs): New.
14134
14135         * config/rs6000/rs6000.h (rs6000_builtins): Add
14136         ALTIVEC_BUILTIN_ABS*.
14137
14138         * config/rs6000/altivec.h: Use const char for builtins expecting
14139         literals.
14140         (vec_abs): New versions for C and C++.
14141         (vec_abss): Same.
14142
14143 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14144
14145         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
14146         using Pmode.
14147
14148 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14149
14150         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
14151         constant definition from h8300.md.
14152         (FRAME_POINTER_REGNUM): Likewise.
14153         * config/h8300/h8300.md (define_constants): Add FP_REG.
14154
14155 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14156
14157         * config/h8300/h8300.c (print_operand): Remove redundant code.
14158
14159 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14160
14161         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
14162         * config/h8300/h8300.c (byte_reg): Make it static.
14163
14164 2002-02-10  Richard Henderson  <rth@redhat.com>
14165
14166         PR c/5623
14167         * c-typeck.c (incomplete_type_error): Handle flexible array members.
14168
14169 2002-02-10  Richard Henderson  <rth@redhat.com>
14170
14171         PR c++/5624
14172         * tree.c (append_random_chars): Don't abort if main_input_filename
14173         does not exist.
14174
14175 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
14176
14177         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
14178
14179 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14180
14181         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
14182         (pushhi1): Likewise.
14183
14184 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14185
14186         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
14187         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
14188
14189 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
14190
14191         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
14192         remove MASK_VIS.
14193         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
14194
14195 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14196
14197         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
14198         a half of an SImode register on H8/300.
14199
14200 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
14201
14202         * i386.md (movdi_2): Add missing '!'.
14203
14204 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14205
14206         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
14207         definitions.
14208
14209 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14210
14211         * config/h8300/h8300.md (length): Correct the distance valid
14212         for the short branch.
14213
14214 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14215
14216         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
14217
14218 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
14219
14220         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
14221         registers in SImode.
14222         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
14223         part-clobbered.
14224
14225         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
14226         patch.
14227
14228         Contribute sh64-elf.
14229         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
14230         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
14231         (sh_cannot_modify_jumps_p): New function.
14232         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
14233         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
14234         (sh_ms_bitfield_layout_p): New function.
14235         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
14236                     Zack Weinberg  <zack@codesourcery.com>
14237         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
14238         expand_simple_binop instead of expand_binop.
14239         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
14240         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
14241         use of .quad and .uaquad.
14242         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
14243         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
14244         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14245         * config/sh/sh.md (movdi_const, movdi_const_32bit,
14246         movdi_const_16bit): Make sure all CONSTs have modes.
14247         (sym2PIC): Ditto, but by adjusting all callers.
14248         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
14249         if the prologue calls the SHmedia argument decoder or register
14250         saver.
14251         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14252         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
14253         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
14254         (sh_expand_epilogue): Don't emit USE of return target register.
14255         (prepare_move_operands): Legitimize DImode PIC addresses.
14256         (sh_media_register_for_return): Skip tr0, used to initialize the
14257         PIC register.
14258         (sh_expand_prologue): Remove explicit USE of return register.
14259         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
14260         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
14261         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
14262         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
14263         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
14264         EXTRA_CONSTRAINT_T.
14265         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
14266         (MOVI_SHORI_BASE_OPERAND_P): New.
14267         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
14268         (EXTRA_CONSTRAINT_T): Define in terms of them.
14269         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
14270         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
14271         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
14272         alternatives supporting TARGET_REGS.
14273         (UNSPEC_GOTPLT): New constant.
14274         (movdi split): Move incrementing of LABEL_NUSES...
14275         (movdi_const, movdi_const_32bit): Here.  Use
14276         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
14277         (movdi_const_16bit): New.
14278         (call, call_value) [flag_pic]: Use GOTPLT.
14279         (call_pop, call_value_pop): New expands.
14280         (call_pop_compact, call_pop_rettramp): New insns.
14281         (call_value_pop_compact, call_value_pop_rettramp): New insns.
14282         (sibcall) [flag_pic]: Use GOT.
14283         (builtint_setjmp_receiver): Remove bogus, unused expand.
14284         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
14285         (*pt, *ptb, ptrel): New insns.
14286         (sym2GOT): Handle DImode GOT.
14287         (sym2GOTPLT, symGOTPLT2reg): New expands.
14288         (sym2PIC): New expand.
14289         (shcompact_return_tramp): Use GOTPLT to return trampoline.
14290         (shcompact_return_tramp_i): Use return register explicitly.
14291         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
14292         disable flag_reorder_blocks.
14293         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
14294         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
14295         clobbers, for clarity.
14296         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
14297         restoring of r0 in macl as MAYBE_DEAD.
14298         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
14299         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
14300         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
14301         alter_subreg all over.
14302         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
14303         reload, instead of emitting instructions that would require
14304         reloading.
14305         (casesi_load_media): Add missing modes.
14306         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
14307         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
14308         as used if the argument decoder is called.
14309         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
14310         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
14311         Pmode, then extend it to DImode if necessary.
14312         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
14313         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
14314         constants in FPU-enabled SHmedia, let them be loaded from memory.
14315         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
14316         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
14317         Adjust whitespace in assembly output templates.
14318         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
14319         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
14320         mode of if_then_else.
14321         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
14322         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
14323         sh.h.
14324         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
14325                     Joern Rennecke <amylaar@redhat.com>
14326         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
14327         (SUBTARGET_CPP_PTR_SPEC): New.
14328         (SUBTARGET_CPP_SPEC): Remove.
14329         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
14330         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
14331         Fix typo in previous checkin.
14332         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
14333         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
14334         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
14335                     Alexandre Oliva  <aoliva@redhat.com>
14336         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
14337         what single FP register can hold for SHmedia target.
14338         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
14339                     Alexandre Oliva  <aoliva@redhat.com>
14340         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
14341         Do not split into SUBREG.
14342         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
14343         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
14344         and added new functions as specified in SH5 ABI r9.
14345         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
14346         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
14347         8-byte boundary.
14348         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
14349         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
14350         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
14351         and consttable_window_ends.
14352         2001-06-03  Graham Stott  <grahams@redhat,com>
14353         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
14354         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
14355         * config/sh/sh.c (print_operand): Handle floating-point pair,
14356         vector and matrix registers.
14357         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
14358         vector modes into account.
14359         * config/sh/sh.md (movv2sf): Split move between registers into
14360         movdf.
14361         (movv4sf, movv16sf): Introduce insns that get split only after
14362         reload.
14363         * config/sh/shmedia.h: Fix Copyright dates.
14364         * config/sh/ushmedia.h: Likewise.  Move loop counter
14365         declarations into conditionals that uses them.
14366         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
14367         loop boundary.
14368         * config/sh/sshmedia.h: Fix Copyright dates.
14369         (sh_media_PUTCFG): Fix constraints.
14370         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
14371         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
14372         ptrmemfunc_vbit_in_delta for SH5.
14373         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
14374         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
14375         * invoke.texi: Likewise.
14376         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
14377         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
14378         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
14379         GCC_pop_shmedia_regs_nofpu): New global symbols.
14380         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
14381         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
14382         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
14383         compact function with nonlocal labels.
14384         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
14385         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
14386         (initial_elimination_offset): Account for their stack space.
14387         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
14388         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
14389         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
14390         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
14391         least one of the operands to be a register.
14392         (movv2sf): Likewise.  Renamed to movv2sf_i.
14393         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
14394         prepare_move_operands() before emitting SHmedia insns.
14395         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
14396         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
14397         Don't save nor initialize r12.  Don't mis-align the stack.
14398         Pad the code with a nop.
14399         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
14400         stack.
14401         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
14402         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
14403         [__SHMEDIA__]: Implement.
14404         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
14405         * config/sh/sh.md: Set latency of `pt' closer to reality.
14406         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
14407         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
14408         Set move, load and store type attributes.
14409         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
14410         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
14411         profiling.
14412         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
14413         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
14414         * config/sh/sh.c (sh_media_register_for_return): New function.
14415         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
14416         branch-target register.
14417         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
14418         * config/sh/sh.md (return_media_i): Use any call-clobbered
14419         branch-target register.
14420         (return_media): If r18 wasn't copied in the prologue, copy it
14421         here.
14422         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
14423         Clear class FP0_REGS.
14424         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
14425         from elf.h.
14426         2001-03-08  DJ Delorie  <dj@redhat.com>
14427         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
14428         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
14429         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
14430         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
14431         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
14432         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
14433         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
14434         return value correctly for call_cookie.
14435         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
14436         * config/sh/crt1.asm (start): Modified so as to call
14437         ___setup_argv_and_call_main.
14438         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
14439         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
14440         SHmedia mode.
14441         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
14442         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
14443         (STRIP_NAME_ENCODING): Use it.
14444         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
14445         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
14446         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
14447         prepare_scc_operands().
14448         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
14449         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
14450         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
14451         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
14452         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
14453         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
14454         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
14455         used in shcompact_incoming_args.
14456         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
14457         change.
14458         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
14459         mode.
14460         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
14461         Adjust accordingly.
14462         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
14463         Simplify.  Adjust.  Add sanity check.
14464         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
14465         FPU_SINGLE_BIT.
14466         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
14467         TARGET_SHCOMPACT.
14468         (udivsi3, divsi3): Use them.
14469         (force_mode_for_call): New insn.
14470         (call, call_value, sibcall_value): Emit it before SHcompact
14471         calls.
14472         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
14473         * config/sh/sh.md (call, call_value, sibcall): Make sure the
14474         call cookie is non-NULL before taking its value.
14475         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
14476         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
14477         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
14478         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
14479         block.
14480         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
14481         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
14482         temporary for stack adjusts.  Use MACL and MACH to pass
14483         arguments to shcompact_incoming_args.
14484         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
14485         clobber r1.
14486         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
14487         (nested_trampoline): Load static chain address into r1.
14488         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
14489         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
14490         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
14491         fp_arith_reg_operand().
14492         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
14493         * config/sh/sh.md (casesi): Sign-extend the first two operands,
14494         and use signed compares for them.
14495         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
14496         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
14497         ones properly aligned.
14498         (find_barrier): Account for extra alignment needed for 8-byte wide
14499         constants.
14500         (machine_dependent_reorg): Require a label for the second 4-byte
14501         constant after an 8-byte one.
14502         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
14503         change.
14504         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
14505         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
14506         last_float when switching float modes.
14507         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
14508         auto-increment for general-purpose registers.
14509         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
14510         result.
14511         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
14512         for stack adjust.
14513         * config/sh/sh.c (sh_builtin_saveregs): Support using all
14514         registers for varargs.
14515         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
14516         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
14517         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
14518         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
14519         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
14520         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
14521         call_cookie accordingly.
14522         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
14523         (SHCOMPACT_BYREF): Likewise.
14524         (SHCOMPACT_FORCE_ON_STACK): New macro.
14525         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
14526         (sh_builtin_saveregs): Likewise.
14527         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
14528         shcompact_incoming_args): Use new shift values.  Support
14529         sequences of consecutive and non-consecutive pushes/pops.
14530         * config/sh/sh.md (return): Don't explicitly use PR_REG.
14531         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
14532         * config/sh/sh.h (TEXT_SECTION): Define.
14533         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
14534         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
14535         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
14536         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
14537         return values on FPU-enabled SHmedia.
14538         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
14539         FPU-enabled SHmedia.
14540         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
14541         value is returned in a non-FP reg and is not returned by
14542         reference.
14543         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
14544         jump_ind.
14545         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
14546         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
14547         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
14548         quad-aligned to be passed by callee-copy reference.
14549         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
14550         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
14551         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
14552         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
14553         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
14554         copying low-numbered FP regs to r7 and r8.
14555         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
14556         FP regs to general-purpose regs only if the copy was passed on the
14557         stack.
14558         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
14559         copying FP reg to r9.
14560         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
14561         copy FP regs to general-purpose regs only in outgoing calls.
14562         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
14563         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
14564         HOST_WIDE_INT.
14565         * config/sh/sh.h (struct sh_args): Document all fields.
14566         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
14567         passed partially on the stack should not consider making
14568         sibcalls.
14569         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
14570         stack_regs only for incoming calls.  When passing FP args,
14571         make sure there are FP regs available before modifying
14572         call_cookie.
14573         (SHCOMPACT_BYREF): Pass double args in general-purpose
14574         registers by reference.
14575         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
14576         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
14577         attempt to generate sibcalls if the caller got any arguments
14578         by reference.
14579         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
14580         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
14581         to 8-byte boundaries.
14582         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
14583         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
14584         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
14585         stored in the stack.
14586         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
14587         for the offsets to have the ISA bit set.
14588         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
14589         invocation.  Use beq instead of bgt to mark end of sequence of
14590         loads.
14591         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
14592         bgt to mark end of sequence of stores.
14593         * config/sh/sh.c (arith_operand): Don't check whether
14594         CONST_OK_FOR_J for now.
14595         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
14596         instead of long for conversion.
14597         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
14598         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
14599         before passing it to fprintf.
14600         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
14601         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
14602         Call set_fpscr before reading/writing SR.
14603         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
14604         Call set_fpscr.
14605         * config/sh/lib1funcs.asm: Add `.align 2' directives before
14606         SHmedia code.
14607         (FMOVD_WORKS): Define on SH5 with FPU.
14608         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
14609         setting.
14610         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
14611         _fpscr_values.
14612         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
14613         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
14614         address.
14615         (ia_main_table): Ditto.
14616         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
14617         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
14618         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
14619         the definitions from sh.h.
14620         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
14621         TARGET_SH5.
14622         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
14623         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
14624         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
14625         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
14626         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
14627         Increment LABEL_NUSES.
14628
14629         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
14630         TARGET_SH5.
14631         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
14632         defined.
14633         * config/sh/elf.h (SIZE_TYPE): Likewise.
14634         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
14635         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
14636         shcompact_incoming_args): Load switch table addresses using
14637         datalabel.
14638         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
14639         (NO_BUILTIN_SIZE_TYPE): Define.
14640         (SIZE_TYPE): Don't define.
14641         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
14642         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
14643         definition of __SH5__=32 for -m5-compact-nofpu.
14644         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
14645         ADDR_DIFF_VEC.
14646         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
14647         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
14648         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
14649         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
14650         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
14651         (INSN_LENGTH_ALIGNMENT): Likewise.
14652         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
14653         * config/sh/sh.md (call, call_value, sibcall): Simplify
14654         copying of non-branch-target register.
14655         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
14656         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
14657         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
14658         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
14659         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
14660         floating-point values as structs.
14661         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
14662         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
14663         general-purpose register.
14664         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
14665         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
14666         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
14667         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
14668         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
14669         (ENCODE_SECTION_INFO): Enclose variables and constants in
14670         DATALABEL unspecs.
14671         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
14672         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
14673         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
14674         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
14675         only for LABEL_REFs.  For SYMBOL_REFs, prepend
14676         SH_DATALABEL_ENCODING to the symbol name.
14677         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
14678         convert_mode().
14679         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
14680         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
14681         UNSPEC_DATALABEL.
14682         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
14683         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
14684         (DATALABEL_REF_P): Don't require CONST.
14685         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
14686         REL label.
14687         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
14688         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
14689         right.
14690         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
14691         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
14692         Use shallow_copy_rtx and PUT_MODE to change the mode of
14693         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
14694         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
14695         on SHmedia using GENERAL_REGs.
14696         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
14697         bltu_media_i): Fix reversion of conditions.
14698         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
14699         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
14700         * config/sh/sh.c (output_far_jump): Save r13 in macl.
14701         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
14702         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
14703         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
14704         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
14705         (GCC_nested_trampoline): Likewise.
14706         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
14707         * config/sh/sh.c (gen_datalabel_ref): Define.
14708         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
14709         (INITIALIZE_TRAMPOLINE): Likewise.
14710         (TRAMPOLINE_ADJUST_ADDRESS): Define.
14711         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
14712         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
14713         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
14714         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
14715         (ic_invalidate): Adjust for SH5.
14716         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
14717         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
14718         _nested_trampoline.
14719         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
14720         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
14721         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
14722         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
14723         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
14724         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
14725         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
14726         * config/sh/sh.c (target_reg_operand): Match only target-branch
14727         registers and pseudos that aren't virtual registers.
14728         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
14729         Copy operands that don't match target_reg_operand to pseudos.
14730         (call_media, call_value_media, sibcall_media): Use
14731         target_reg_operand instead of target_operand.
14732         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
14733         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
14734         * config/sh/sh.c (target_reg_operand): Match hardware registers
14735         other than branch-target registers.
14736         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
14737         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
14738         (fpscr_values) [SH5 == 32]: Define.
14739         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
14740         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
14741         Handle function addresses coming in SUBREGs.
14742         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
14743         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
14744         shcompact_return_trampoline): Use datalabel where appropriate.
14745         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
14746         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
14747         general-purpose register to copy one branch-target register to
14748         another.
14749         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
14750         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
14751         SYMBOL_REFs with VOIDmode.
14752         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
14753         bltu_media_i): New insns.
14754         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
14755         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
14756         (INIT_CUMULATIVE_ARGS): Likewise.
14757         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
14758         * machmode.def (V16SFmode): New mode.
14759         * c-common.c (type_for_mode): Support V2SF and V16SF.
14760         * tree.c (build_common_tree_nodes_2): Likewise.
14761         * tree.h (tree_index): Likewise.
14762         * calls.c (emit_call_1): Take args_so_far.  Adjust all
14763         callers.  Introduce CALL_POPS_ARGS.
14764         * tm.texi (CALL_POPS_ARGS): Document.
14765         * config/sh/crt1.asm: Implement in SHmedia mode.
14766         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
14767         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
14768         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
14769         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
14770         Implement divsi and udivsi in SHmedia mode.  Introduce
14771         SHcompact trampolines.
14772         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
14773         only in SHmedia64.
14774         (regno_reg_class): Rewrite.
14775         (fp_reg_names): Remove.
14776         (sh_register_names, sh_additional_register_names): New.
14777         (print_operand): Added `u'.  Support SUBREGs in addresses.
14778         Add parentheses around shifted CONSTs.
14779         (output_file_start): Output .mode and .abi directives.
14780         (shiftcosts, addsubcosts, multcosts): Adjust.
14781         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
14782         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
14783         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
14784         bytes, not registers.  Take into account the need for the
14785         SHcompact incoming args trampoline.  Adjust all callers.
14786         (sh_expand_prologue): Take stack_regs into account.  Call
14787         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
14788         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
14789         stack aligned as per SH5 ABI.
14790         (sh_builtin_saveregs): Support SH5 ABI.
14791         (sh_build_va_list, sh_va_start): Likewise.
14792         (initial_elimination_offset): Take alignment into account.
14793         Compute location of PR according to the SH5 stack frame.
14794         (arith_reg_operand): Reject branch-target registers.
14795         (shmedia_6bit_operand): New.
14796         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
14797         (target_reg_operand): Match DImode only.  Accept SUBREGs.
14798         (target_operand): New.
14799         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
14800         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
14801         SIBCALL_REGS for SHmedia.
14802         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
14803         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
14804         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
14805         (TARGET_SWITCHES): New SH5 flags.
14806         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
14807         VALID_REGISTER_P to disable unsupported registers.
14808         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
14809         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
14810         (FUNCTION_ARG_PADDING): Define.
14811         (FASTEST_ALIGNMENT): Adjust.
14812         (SH_REGISTER_NAMES_INITIALIZER): New.
14813         (sh_register_names): Declare.
14814         (DEBUG_REGISTER_NAMES): Define.
14815         (REGISTER_NAMES): Define based on sh_register_names.
14816         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
14817         (sh_additional_register_names): Declare.
14818         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
14819         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
14820         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
14821         (REGISTER_NATURAL_MODE): Define.
14822         (FIRST_PSEUDO_REGISTER): Adjust.
14823         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
14824         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
14825         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
14826         (VECTOR_MODE_SUPPORTED_P): Define.
14827         (REG_CLASS_CONTENTS): Adjust.
14828         (SMALL_REGISTER_CLASSES): Adjust.
14829         (REG_ALLOC_ORDER): Adjust.
14830         (INDEX_REG_CLASS): Adjust.
14831         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
14832         (CONST_OK_FOR_LETTER_P): Adjust.
14833         (PREFERRED_RELOAD_CLASS): Adjust.
14834         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
14835         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
14836         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
14837         (FIRST_FP_PARM_REG): Adjust.
14838         (CALL_POPS_ARGS): Define.
14839         (FUNCTION_ARG_REGNO_P): Adjust.
14840         (struct sh_args): New fields.
14841         (GET_SH_ARG_CLASS): Adjust.
14842         (INIT_CUMULATIVE_ARGS): Adjust.
14843         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
14844         (FUNCTION_ARG_ADVANCE): Adjust.
14845         (FUNCTION_ARG): Adjust.
14846         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
14847         (FUNCTION_ARG_CALLEE_COPIES): Define.
14848         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
14849         (STRICT_ARGUMENT_NAMING): Define.
14850         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
14851         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
14852         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
14853         (SETUP_INCOMING_VARARGS): Adjust.
14854         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
14855         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
14856         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
14857         (SUBREG_OK_FOR_INDEX_P): Adjust.
14858         (EXTRA_CONSTRAINT_S): Update.
14859         (EXTRA_CONSTRAINT_T): New.
14860         (EXTRA_CONSTRAINT): Adjust.
14861         (GO_IF_LEGITIMATE_INDEX): Adjust.
14862         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
14863         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
14864         (MOVE_MAX): Adjust.
14865         (MAX_MOVE_MAX): Define.
14866         (Pmode): Adjust.
14867         (CONST_COSTS): Adjust.
14868         (REGISTER_MOVE_COST): Adjust.
14869         (BRANCH_COST): Adjust.
14870         (TEXT_SECTION_ASM_OP): Adjust.
14871         (DBX_REGISTER_NUMBER): Adjust.
14872         (ASM_OUTPUT_DOUBLE_INT): New.
14873         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
14874         (PREDICATE_CODES): Adjust.
14875         (PROMOTE_MODE): Adjust.
14876         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
14877         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
14878         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
14879         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
14880         (DR0_REG, DR2_REG, DR4_REG): Renumber.
14881         (TR0_REG, TR1_REG, TR2_REG): New.
14882         (XD0_REG): Renumber.
14883         (UNSPEC_COMPACT_ARGS): New.
14884         (type): Added pt and ptabs.
14885         (length): Default to 4 on SHmedia.  Default pt length to 12
14886         and     20 on SHmedia32 and SHmedia64, respectively.
14887         (pt): New function unit.
14888         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
14889         Add whitespace between operands of SHmedia instructions.
14890         (movdicc): Fix.
14891         (adddi3_media, addsi3_media): Adjust constraints.
14892         (subsi3) [SHmedia]: Force operand 1 into a register.
14893         (udivsi3_i1_media, udivsi3_i4_media): New.
14894         (udivsi3): Support SHmedia.
14895         (divsi3_i1_media, divsi3_i4_media): New.
14896         (divsi3): Support SHmedia.
14897         (anddi3, iordi3, xordi3): Adjust constraints.
14898         (zero_extendhidi2, zero_extendqidi2): New.
14899         (extendsidi2, extendhidi2, extendqidi2): New.
14900         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
14901         (pop_e, pop_fpul, pop_4): Likewise.
14902         (movsi_media): Support FP and BT registers.
14903         (movsi_media_nofpu): New.  Adjust splits to DImode.
14904         (lduw, ldub): Renamed to zero_extend* above.
14905         (movqi_media): Fix typo.
14906         (movdi_media): Support FP and BT registers.
14907         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
14908         (movdi_const_32bit): New.
14909         (shori_media): Require immediate operand.  Use `u' for output.
14910         (movdf_media, movsf_media): Simplified.
14911         (movdf_media_nofpu, movsf_media_nofpu): New.
14912         (movdf, movsf): Adjust
14913         (movv2sf, movv2sf, movv16sf): New.
14914         (beq_media, beq_media_i): Adjust constraints.  Don't use
14915         scratch BT register.
14916         (bne_media, bne_media_i): Likewise.
14917         (bgt_media, bgt_media_i): Likewise.
14918         (bge_media, bge_media_i): Likewise.
14919         (bgtu_media, bgtu_media_i): Likewise.
14920         (bgeu_media, bgeu_media_i): Likewise.
14921         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
14922         bunordered): Emit jump insn.  Force operands to registers when
14923         needed.
14924         (jump_media, jump): Simplify.
14925         (call_compact, call_compact_rettramp): New.
14926         (call_value_compact, call_value_compact_rettramp): New.
14927         (call_media, call_value_media): Simplify.
14928         (sibcall_compact, sibcall_media): New.
14929         (call, call_value): Adjust for SHmedia and SHcompact.
14930         (sibcall, sibcall_value, untyped_call): Likewise.
14931         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
14932         (indirect_jump): Adjust for SHmedia.
14933         (casesi_jump_media): New.
14934         (nop): Re-enable for SHmedia.
14935         (call_site): Restrict to SH1.
14936         (casesi): Adjust for SHmedia.
14937         (casesi_shift_media, casesi_load_media): New.
14938         (return): Explicitly use PR register.  Call return trampoline
14939         on SHcompact.
14940         (return_i): Explicitly use PR register.
14941         (shcompact_return_tramp, shcompact_return_tramp_i): New.
14942         (return_media): Adjust.
14943         (shcompact_incoming_args): New.
14944         (epilogue): Adjust.
14945         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
14946         (movstrsi): Disable on SH5.
14947         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
14948         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
14949         (subsf3, subsf3_media): Likewise.
14950         (mulsf3, mulsf3_media, mac_media): Likewise.
14951         (divsf3, divsf3_media): Likewise.
14952         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
14953         (floatsisf2, fux_truncsfsi2): Likewise.
14954         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
14955         constraints.
14956         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
14957         (cmpunsf_media, cmpsf): Likewise.
14958         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
14959         (abssf2, abssf2_media): Likewise.
14960         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
14961         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
14962         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
14963         (floatsidf2, fix_truncdfsi2): Likewise.
14964         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
14965         constraints.
14966         (cmpeqdf_media, cmpgtdf_media): Likewise.
14967         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
14968         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
14969         (absdf2, absdf2_media): Likewise.
14970         (extendsfdf2, extendsfdf2_media): Likewise.
14971         (truncsfdf2, truncsfdf2_media): Likewise.
14972         * config/sh/sh64.h: New file.
14973         * config/sh/t-sh64: New file.
14974         * config/sh/shmedia.h: New file.
14975         * config/sh/ushmedia.h: New file.
14976         * config/sh/sshmedia.h: New file.
14977         * configure.in: Added sh64-*-elf.
14978         * configure: Rebuilt.
14979         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
14980         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
14981         (reg_class_from_letter): Use `b' for TARGET_REGS.
14982         (print_operand): Support `%M', `%m', `AND' and
14983         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
14984         (andcosts): Adjust for SHmedia.
14985         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
14986         Likewise.
14987         (target_reg_operand): New function.
14988         * config/sh/sh-protos.h (target_reg_operand): Declare.
14989         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
14990         FP registers on SH5.
14991         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
14992         on SH4.
14993         (TARGET_REGISTER_P): New macro.
14994         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
14995         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
14996         (EXTRA_CONSTRAINT_S): New macro.
14997         (EXTRA_CONSTRAINT): Adjust.
14998         (FLOAT_TYPE_SIZE): Define to 32.
14999         (Pmode): DImode on SHmedia.
15000         (CONST_COSTS): Adjust for SHmedia literals.
15001         (PREDICATE_CODES): Added target_reg_operand.
15002         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
15003         * config/sh/sh.md: Remove all attrs from SHmedia insns.
15004         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
15005         (cmpdi): Accept SHmedia.
15006         (movdicc_false, movdicc_true): New insns.
15007         (movdicc): New expand.
15008         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
15009         no_new_pseudos.
15010         (addsi3_media): Match `S' constraint.
15011         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
15012         (negdi2): Expand for SHmedia.
15013         (one_cmpldi2): New expand.
15014         (zero_extendsidi2): Change from expand to insn.
15015         (extendsidi2): Add constraints.
15016         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
15017         LD/ST address.  Fix SI immediate loading split.
15018         (movhi_media, movqi_media, lduw, ldub): New insns.
15019         (movhi, movqi): Accept SHmedia.
15020         (shori_media, movdi_media): Relax input constraints.  Split
15021         symbolic constants.
15022         (movdf_media, movsf_media): New insn.  New split to movdi.
15023         (movdf, movsf): Match on SHmedia.
15024         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
15025         bgeu_media): New insns and splits.  New insns with `_i' suffix.
15026         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
15027         (bunordered): New expand.
15028         (jump_compact): Renamed from `jump'.
15029         (jump_media): New insn.
15030         (jump): New expand.
15031         (call_media, call_value_media): New insns.
15032         (call, call_value): Adjust.
15033         (indirect_jump_compact): Renamed from `indirect_jump'.
15034         (indirect_jump_media): New insn.
15035         (indirect_jump): New expand.
15036         (untyped_call, return): Accept SHmedia.
15037         (return_media): New insn.
15038         (prologue, epilogue, blockage): Accept SHmedia.
15039         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
15040         (sunordered): New expand.
15041         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
15042         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
15043         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
15044         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
15045         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
15046         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
15047         abssf2_media): New insns.
15048         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
15049         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
15050         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
15051         floatdidf2, floatsidf2_media, fix_truncdfdi2,
15052         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
15053         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
15054         absdf2_media): New insns.
15055         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
15056         (extendsfdf2_media, truncdfsf2_media): New insns.
15057         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
15058         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
15059         * config/sh/sh.h (CONST_OK_FOR_J): Document.
15060         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
15061         * config/sh/sh.md (adddi3): New expand.
15062         (adddi3_media, adddi3z_media): New insns.
15063         (adddi3_compact): Renamed from adddi3.
15064         (addsi3_media): Use add.l r63 to add constant zero.
15065         (subdi3): New expand.
15066         (subdi3_media): New insn.
15067         (subdi3_compact): Renamed from subdi3.
15068         (mulsidi3): New expand.
15069         (mulsidi3_media): New insn.
15070         (mulsidi3_compact): Renamed from mulsidi3.
15071         (umulsidi3): New expand.
15072         (umulsidi3_media): New insn.
15073         (umulsidi3_compact): Renamed from umulsidi3.
15074         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
15075         (ashlsi3, ashrsi3, lshrsi3): Use them.
15076         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
15077         (ashldi3, ashrdi3, lshrdi3): Use them.
15078         (zero_extendsidi2): New expand.
15079         (extendsidi2): New insn.
15080         (movsi_media): New insn.  Split to movdi to load constants.
15081         (movsi): Enable for shmedia.
15082         (movdi_media): New insn.  Use shori_media to load wide constants.
15083         (short_media): New insn.
15084         (movdi): Enable for shmedia.
15085         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
15086         * config/sh/sh.h (CPP_SPEC): Added `m5'.
15087         (SUBTARGET_CPP_SPEC): Added `!m5'.
15088         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
15089         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
15090         to all other SH variants.
15091         (TARGET_DEFAULT): Set to SH1_BIT.
15092         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
15093         (BITS_PER_WORD): Raise to 64 on shmedia.
15094         (MAX_BITS_PER_WORD): Change to 64.
15095         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
15096         (INT_TYPE_SIZE): Keep as 32.
15097         (UNITS_PER_WORD): Raise to 8 on shmedia.
15098         (MIN_UNITS_PER_WORD): Keep as 4.
15099         (POINTER_SIZE): Raise to 64 on shmedia.
15100         (CONST_OK_FOR_J): New macro.
15101         (CONST_OK_FOR_LETTER_P): Use it.
15102         (processor_type): Add PROCESSOR_SH5.
15103         * config/sh/sh.md: Conditionalize all expands, insns and
15104         splits to TARGET_SH1.
15105         (cpu): Added sh5.
15106         (addsi3_compact): Renamed from...
15107         (addsi3): Now an expand.
15108         (addsi3_media, subsi3_media): New insns.
15109         (subsi3): Don't negate constants with SHmedia.
15110
15111         * hooks.c: New file.
15112         * hooks.h: New file.
15113         * Makefile.in (HOOKS_H): New.
15114         (TARGET_DEF_H): Added $(HOOKS_H).
15115         (OBJS): Added hooks.o.
15116         (cfgcleanup.o, bb-reorder.o): Added target.h.
15117         (hooks.o): Added dependencies.
15118         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
15119         (TARGET_INITIALIZER): this.
15120         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
15121         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
15122         * bb-reorder.c: Include target.h.
15123         (reorder_basic_blocks): Skip if cannot modify jumps.
15124         * cfgcleanup.c: Include target.h.
15125         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
15126
15127 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
15128
15129         * config/mips/mips.md (casesi_internal, casesi_internal_di):
15130         Protect jump delay slot instructions with .set noreorder and
15131         .set nomacro.
15132
15133 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
15134
15135         * config/mips/mips.md (casesi_internal_di): Calculate
15136         the index into the target offset table correctly.
15137
15138 2002-02-08  Richard Henderson  <rth@redhat.com>
15139
15140         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
15141         * final.c (output_addr_const): Accept and discard SUBREG.
15142         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
15143         mark them unknown instead.
15144         (simplify_subtraction): Handle RTX_UNKNOWN.
15145         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
15146
15147 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
15148
15149         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
15150
15151 2002-02-08  Richard Henderson  <rth@redhat.com>
15152
15153         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
15154
15155 2002-02-08  Andreas Jaeger  <aj@suse.de>
15156
15157         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
15158         * config/i386/t-linux64: New file.
15159
15160 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
15161
15162         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
15163         * c-parse.in (compstmt): Clear last_expr_type.
15164
15165 2002-02-07  Richard Henderson  <rth@redhat.com>
15166
15167         * loop.c (strength_reduce): Sink final_value when not
15168         eliminating a biv.
15169
15170 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
15171
15172         * config/sparc/freebsd.h: Fix mismatched spec {.
15173
15174 2002-02-07  Richard Henderson  <rth@redhat.com>
15175
15176         * cfgrtl.c: Include recog.h and insn-config.h.
15177         (keep_with_call_p): Fix general_operand invocation.
15178         * Makefile.in (cfgrtl.o): Update dependencies.
15179
15180 2002-02-07  Kazu Hirata  <kazu@hxi.com>
15181
15182         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
15183         comment.  Accept HImode only if TARGET_H8300.
15184
15185 2002-02-07  Eric Christopher  <echristo@redhat.com>
15186
15187         * config/mips/crtn.asm: Cleanup #ifdefs.
15188
15189 2002-02-07  Eric Christopher  <echristo@redhat.com>
15190
15191         * config/mips/crti.asm: Add changes for mips16. mips16 uses
15192         register 7 as RA instead of $31.
15193         * config/mips/crtn.asm: Ditto.
15194         * config/mips/mips.c (mips_move_2words): Add case for
15195         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
15196         (compute_frame_size): Fix typo.
15197         (save_restore_insns): Ditto.  Make documentation about using
15198         register $7 as return register more precise.
15199         (mips_expand_epilogue): Fix comment. Add code to work around not
15200         being able to add to the stack pointer directly.
15201         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
15202         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
15203         epilogue.
15204
15205 2002-02-07  Tom Rix  <trix@redhat.com>
15206
15207         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
15208         immediates in ldu and stdu DS opcode field.
15209         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
15210         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
15211         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
15212
15213 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
15214
15215         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
15216         offset for stack bias.
15217
15218 2002-02-07  H.J. Lu <hjl@gnu.org>
15219
15220         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
15221
15222 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
15223
15224         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
15225
15226 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
15227
15228         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
15229         * i386.c (x86_order_regs_for_local_alloc): New global function.
15230         * i386.h (REG_ALLOC_ORDER): CLeanup.
15231         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
15232
15233 2002-02-07  Richard Henderson  <rth@redhat.com>
15234
15235         PR optimization/2463
15236         * alias.c (find_base_value): Recall base values for fixed hard regs.
15237         * loop.c (loop_regs_update): Don't use single_set on non-insns.
15238
15239 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
15240
15241         * config/mips/mips.md (define_delay) [mips16]: Adjust required
15242         length.
15243
15244 2002-02-06  Richard Henderson  <rth@redhat.com>
15245
15246         PR c/5609
15247         * stmt.c (resolve_operand_name_1): Take more care with mixed
15248         named and unnamed operands.
15249
15250 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
15251             Jan Hubicka  <jh@suse.cz>
15252
15253         * loop.c (remove_constant_addition): Avoid clobbering a shared
15254         CONST expression.
15255
15256 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15257
15258         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
15259         * config/s390/t-linux64: New file.
15260         * config/s390/libgcc-glibc.ver: New file.
15261
15262 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15263
15264         * config/s390/linux64.h: Delete file.
15265         * config/s390/s390x.h: New file.
15266         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
15267         as target header file.
15268         * config/s390/linux.h (TARGET_VERSION): Define depending on
15269         DEFAULT_TARGET_64BIT.
15270         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
15271         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
15272         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
15273         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
15274         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
15275         (EXTRA_SPEC): New define.
15276         * config/s390/s390.h (TARGET_VERSION): Define depending on
15277         DEFAULT_TARGET_64BIT.
15278         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
15279
15280 2002-02-06  Jason Merrill  <jason@redhat.com>
15281
15282         * c-decl.c (finish_function): Warn about a non-void function with
15283         no return statement and no abnormal exit.
15284         (current_function_returns_abnormally): New variable.
15285         (start_function): Clear it.
15286         (struct c_language_function): Add returns_abnormally.
15287         (push_c_function_context): Save it.
15288         (pop_c_function_context): Restore it.
15289         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
15290         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
15291         an explicit return type.
15292         * c-tree.h: Declare current_function_returns_abnormally.
15293         (C_FUNCTION_IMPLICIT_INT): New macro.
15294         * c-typeck.c (build_function_call): Set it.
15295         (c_expand_return): Set current_function_returns_value even if the
15296         value is erroneous.
15297
15298 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
15299
15300         PR c/5420:
15301         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
15302         unsafe for reevaluation.
15303
15304 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
15305
15306         PR c/5482:
15307         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
15308         EXPR_STMT, but COMPOUND_STMT, recurse into it.
15309
15310 2002-02-06  Richard Henderson  <rth@redhat.com>
15311
15312         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
15313         be a general_operand.  Dest for function value must be a pseudo.
15314
15315 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
15316
15317         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
15318         as SYMBOL_REFs from the constant pool.
15319
15320 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
15321
15322         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
15323         passed by invisible reference.
15324
15325 2002-02-05  Richard Henderson  <rth@redhat.com>
15326
15327         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
15328
15329 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
15330
15331         Implement using "base addresses" in insn operands as default.
15332         * config/mmix/mmix.c (mmix_conditional_register_usage): if
15333         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
15334         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
15335         used to read the rtx value.
15336         (mmix_target_asm_function_epilogue): Fix spacing.
15337         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
15338         (mmix_legitimate_address): Ditto.
15339         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
15340         should be loaded with a GETA insn.  Don't allocate needless extra
15341         char for nul termination and fix misleading comment.
15342         (mmix_print_operand_address): Handle constants if
15343         TARGET_BASE_ADDRESSES.
15344         (mmix_output_register_setting): Use base addressing if
15345         TARGET_BASE_ADDRESSES and the number of insns is 3.
15346         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
15347         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
15348         to use R as constraint, add LDA to match s.
15349         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
15350         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
15351         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
15352         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
15353         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
15354         order with other fixed registers.
15355         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
15356         other parameter/call-clobbered registers.
15357         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
15358         -mbase-addresses, -mno-base-addresses.
15359         (MMIX Options): Ditto.
15360
15361 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15362
15363         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
15364
15365 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
15366
15367         * config/rs6000/altivec.h: Change elem to _S_elem.
15368
15369 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
15370
15371         * config/netbsd.h (WCHAR_TYPE): Define.
15372         (WCHAR_TYPE_SIZE): Ditto.
15373         (WINT_TYPE): Ditto.
15374         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
15375         (WCHAR_UNSIGNED): Ditto.
15376         (WCHAR_TYPE_SIZE): Ditto.
15377         (WINT_TYPE): Ditto.
15378         * config/arm/netbsd.h: Likewise.
15379         * config/i386/netbsd-elf.h: Likewise.
15380         * config/i386/netbsd.h: Likewise.
15381         * config/m68k/netbsd-elf.h: Likewise.
15382         * config/m68k/netbsd.h: Likewise.
15383         * config/ns32k/netbsd.h: Likewise.
15384         * config/sparc/netbsd.h: Likewise.
15385         * config/vax/netbsd.: Likewise.
15386
15387 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
15388
15389         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
15390         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
15391         (TARGET_INITIALIZER): this.
15392         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
15393         (BITFIELD_NBYTES_LIMITED): Markup fix.
15394         * tree.h (default_ms_bitfield_layout_p): Declare.
15395         (record_layout_info): Added prev_field.
15396         * tree.c (default_ms_bitfield_layout_p): New fn.
15397         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
15398         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
15399         * stor-layout.c: Include target.h.
15400         (start_record_layout): Initialize prev_field.
15401         (place_field): Handle MS bit-field layout, and disregard
15402         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
15403         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
15404         * Makefile.in (stor-layout.o): Adjust dependencies.
15405
15406 2002-02-05  Jason Merrill  <jason@redhat.com>
15407
15408         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
15409
15410 2002-02-05  Andreas Jaeger  <aj@suse.de>
15411
15412         * crtstuff.c: Fix comments.
15413
15414 2002-02-05  Richard Henderson  <rth@redhat.com>
15415
15416         PR fortran/3393
15417         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
15418         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
15419
15420         PR fortran/3392
15421         * config/mips/mips.c (function_arg): Handle TImode.
15422         (function_arg_advance): Likewise.
15423
15424 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
15425
15426         * config/rs6000/altivec.h (vec_step_help): Rename to
15427         __vec_step_help.
15428
15429 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
15430
15431         * config/rs6000/altivec.h: Fix typos.
15432
15433 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
15434
15435         * config/arm/netbsd.h: Correct a comment.
15436
15437 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
15438
15439         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
15440         building void typed builtins.
15441
15442         * config/rs6000/altivec.h (vec_ld*): Fix typos.
15443         (vec_step): Implement for C++.
15444
15445 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15446
15447         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
15448
15449 2002-02-04  Richard Henderson  <rth@redhat.com>
15450
15451         * combine.c (nonzero_bits): Re-introduce special case for
15452         sp/fp/ap wrt REGNO_POINTER_ALIGN.
15453
15454 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
15455
15456         * doc/extend.texi: Warn about unsupported usage of altivec
15457         builtins.
15458
15459         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
15460         (altivec_predicate_*): New.
15461
15462         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
15463         Add C++ version of vec_*() functions.
15464
15465         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
15466         (bdesc_2arg): Remove altivec predicates.
15467         (altivec_expand_builtin): Handle predicates.
15468         (altivec_init_builtins): Handle predicates.
15469         (altivec_expand_predicate_builtin): New.
15470
15471 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15472
15473         * pa.c (DO_FRAME_NOTES): Move forward.
15474         (store_reg): Revise handling of frame notes.
15475         (load_reg): Likewise.
15476         (set_reg_plus_d): Likewise.
15477         (hppa_expand_prologue): Likewise.
15478         (hppa_expand_epilogue): Likewise.
15479
15480 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15481
15482         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
15483
15484 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
15485
15486         PR c/4475, c++/3780:
15487         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
15488         * c-common.h (SWITCH_TYPE): Define.
15489         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
15490         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
15491         Rename spareness variable to sparseness.
15492         (expand_end_case_type): Renamed from expand_end_case, use orig_type
15493         if non-NULL instead of TREE_TYPE (orig_index).
15494         * tree.h (expand_end_case_type): Renamed from expand_end_case.
15495         (expand_end_case): Define using expand_end_case_type.
15496         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
15497         to expand_end_case_type.
15498         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
15499
15500 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15501
15502         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
15503         (BIGGEST_ALIGNMENT): Change to 128.
15504
15505 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15506
15507         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
15508
15509 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15510
15511         * pa.md (call_internal_reg_64bit): Remove unused variable.
15512
15513 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
15514
15515         * config/arm/arm.h (machine_function): Add uses_anonymous_args
15516         field.
15517         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
15518         * config/arm/arm.c (current_function_anonymous_args): Delete,
15519         replace uses with cfun->machine->uses_anonymous_args.
15520         (arm_reorg): Do not reset uses_anonymous_args.
15521
15522         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
15523         any geenral register.
15524
15525 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
15526
15527         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
15528         the entry block.
15529
15530 2002-02-04  Richard Henderson  <rth@redhat.com>
15531
15532         * combine.c (force_to_mode): Remove STACK_BIAS code.
15533         (nonzero_bits): Likewise.  Replace sp/fp special case with
15534         REGNO_POINTER_ALIGN.
15535
15536         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
15537         (HARD_FRAME_POINTER_REGNUM): New.
15538         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
15539         (FIXED_REGS, CALL_USED_REGS): Update.
15540         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
15541         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
15542         (HARD_REGNO_NREGS): Update for SFP.
15543         (STACK_POINTER_OFFSET): Include bias here ...
15544         (FIRST_PARM_OFFSET): ... not here.
15545         (STACK_BIAS): Remove.
15546         (INIT_EXPANDERS): New.
15547         (STARTING_FRAME_OFFSET): Do not include bias.
15548         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
15549         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
15550         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
15551         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
15552         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
15553         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
15554         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
15555         (MUST_SAVE_REGISTER): Likewise.
15556         (sparc_flat_function_prologue): Likewise.
15557         (sparc_flat_function_epilogue): Likewise.
15558         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
15559         (sparc_init_modes): SFP is GENERAL_REGS.
15560         (sparc_builtin_saveregs): SFP does not have bias applied.
15561
15562 2002-02-04  Richard Henderson  <rth@redhat.com>
15563
15564         * config/alpha/alpha.c (current_function_is_thunk): Don't check
15565         current_function_is_thunk.
15566         (alpha_sa_mask): Distinguish between current_function_is_thunk
15567         called from ASM_OUTPUT_MI_THUNK and not.
15568         (alpha_does_function_need_gp): Thunks always need gp.
15569         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
15570         (alpha_output_mi_thunk_osf): New.
15571         * config/alpha/alpha-protos.h: Update.
15572         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
15573
15574 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
15575
15576         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
15577         function types, not when they're taken away.
15578
15579 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
15580
15581         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
15582         CODE_LABEL and jump table when replacing a table jump with a
15583         simple jump.
15584
15585 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
15586
15587         * config/s390/s390-protos.h (legitimize_la_operand,
15588         s390_secondary_input_reload_class, s390_plus_operand,
15589         s390_expand_plus_operand): Add prototypes.
15590
15591         config/s390/s390.c (s390_secondary_input_reload_class,
15592         s390_plus_operand, s390_expand_plus_operand): New functions.
15593
15594         (struct s390_address): New member 'pointer'.
15595         (s390_decompose_address): Compute it.
15596         (legitimate_la_operand_p): Use it.
15597         (legitimize_la_operand): New function.
15598         (movti, movdi, movdf splitters): Call it.
15599
15600         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
15601         (PREDICATE_CODES): Add s390_plus_operand.
15602
15603         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
15604         (la_ccclobber): Allow GENERAL_REGS as output operand.
15605
15606         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
15607         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
15608         (*la_64, *la_31, reload_indi, reload_insi): ... these.
15609
15610 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
15611
15612         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
15613         register names for regular asm () construct.
15614
15615 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
15616
15617         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
15618         registers.
15619
15620 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
15621
15622         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
15623         pat for recog.
15624
15625 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
15626
15627         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
15628         constant pool to be identical by string address and index.
15629
15630 2002-02-04  Anthony Green  <green@redhat.com>
15631
15632         * output.h (SECTION_OVERRIDE): Define.
15633         * varasm.c (named_section): Obey SECTION_OVERRIDE.
15634
15635 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
15636
15637         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
15638         by existing arm*-*-netbsd* (a.out) target.
15639         (ns32k-*-netbsdelf*): Likewise.
15640         (sparc-*-netbsdelf*): Likewise.
15641         (vax-*-netbsdelf*): Likewise.
15642
15643 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
15644
15645         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
15646         headers and libobjc headers.
15647
15648 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
15649
15650         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
15651         (_mingw.h): Remove duplicate include.
15652
15653 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
15654
15655         * config.gcc: Set cpu_type to m68k for 68010, as well.
15656         (m68010-*-netbsdelf*): New...
15657         (m68k*-*-netbsdelf*): ...targets.
15658         * config/m68k/netbsd-elf.h: New file.
15659
15660 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15661
15662         * config/h8300/h8300.c (hand_list): Move inside function_arg.
15663
15664 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15665
15666         * config/h8300/h8300.c (h8_push_ops): Move inside
15667         h8300_init_once.
15668         (h8_pop_ops): Likewise.
15669         (h8_move_ops): Likewise.
15670
15671 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15672
15673         * config/h8300/h8300.c (os_task): Make it static.
15674         (monitor): Likewise.
15675         (pragma_saveall): Likewise.
15676
15677 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
15678
15679         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
15680         constant is a valid sign-extension for Pmode.
15681
15682 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15683
15684         * config/h8300/h8300.c: Fix formatting.
15685
15686 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15687
15688         * config/h8300/h8300.md: Fix formatting.
15689
15690 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15691
15692         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
15693         predicates of operands[1].  Split the patterns for each
15694         processor variant.
15695
15696 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15697
15698         * config/h8300/h8300.md (xor patterns): Tighten the predicates
15699         of operands[1] to register_operand.
15700
15701 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
15702
15703         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
15704         * cpphash.c (_cpp_init_hashtable): Similarly.
15705         * cppinit.c (cpp_create_reader): Default the signed_char flag.
15706         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
15707         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
15708         (cpp_handle_option): Handle the new options.
15709         * cpplex.c (cpp_interpret_charconst): Use new flag.
15710         * cpplib.h (struct cpp_options): New member signed_char.
15711         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
15712         (cpp_options): Handle -fsigned-char and -funsigned-char.
15713         (static_specs): Remove signed_char_spec.
15714         (do_spec1): Don't handle %c.
15715         * system.h: Poison SIGNED_CHAR_SPEC.
15716         * tradcif.y (yylex): Use flag_signed_char.
15717         * tradcpp.h (flag_signed_char): New.
15718         * tradcpp.c (flag_signed_char): New.
15719         (main): Handle new command-line options.
15720         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
15721 config:
15722         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
15723         * avr/avr.h: Remove old comments.
15724         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
15725         (CC1_SPEC): Pass -fsigned-char if -mic*.
15726         (SIGNED_CHAR_SPEC): Remove.
15727 doc:
15728         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
15729
15730 2002-02-01  Eric Christopher  <echristo@redhat.com>
15731
15732         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
15733         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
15734         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
15735         (ASM_OUTPUT_REG_POP): Ditto.
15736
15737 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
15738
15739         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
15740         patch.
15741
15742 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
15743
15744         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
15745
15746 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
15747
15748         PR c/5304:
15749         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
15750         unconditionally.
15751
15752 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
15753
15754         * cfganal.c: Include tm_p.h.
15755         (keep_with_call_p): Fix the test that determines if a register holds
15756         the return value of a call.
15757
15758 2002-02-01  DJ Delorie  <dj@redhat.com>
15759
15760         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
15761         we are given conflicting registers, switch to the other one we
15762         had allocated for us.
15763         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
15764         as TImode so we know when the "other" register is available.
15765
15766 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
15767
15768         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
15769         sparc/sparc_bi.h.
15770
15771 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
15772
15773         * cfganal.c (keep_with_call_p): New function.
15774         (flow_call_edges_add): Prevent splitting a block between a call and
15775         a single-set instruction that should be kept in the same block.
15776
15777 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15778
15779         * doc/install.texi (avr): Update outdated URL.
15780
15781 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
15782
15783         * config/stormy16/stormy16.md (pushqi): New.
15784         (popqi): New.
15785         (pushhi): New.
15786         (pophi): New.
15787         (movhi): Remove stack operands.
15788         (movqi): Likewise.
15789         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
15790         nonimmediate_nonstack_operand.
15791         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
15792         New.
15793         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
15794         New.
15795
15796 2002-01-31  Jason Merrill  <jason@redhat.com>
15797
15798         * Makefile.in (c-parse.c): Handle .output file.
15799         * objc/Make-lang.in (objc-parse.c): Likewise.
15800
15801 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
15802
15803         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
15804         the -me[lb] option is given.  Don't output the default flag
15805         twice.
15806
15807 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
15808
15809         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
15810         the primary source file; this has not been done yet.
15811         * c-decl.c (c_expand_body): Reset input_filename from
15812         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
15813
15814 2002-01-31  Kazu Hirata  <kazu@hxi.com>
15815
15816         * rtlanal.c (subreg_regno_offset): Do not use
15817         SUBREG_REGNO_OFFSET.
15818         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
15819         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
15820
15821 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
15822
15823         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
15824         version rather than GNATS version in --version output.
15825
15826 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
15827
15828         * ifcvt.c (noce_process_if_block): Make a copy of the destination
15829         when copying back from a temporary.
15830
15831 2002-01-30  Richard Henderson  <rth@redhat.com>
15832
15833         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
15834         and new_dest are the same.
15835
15836 2002-01-30  Richard Henderson  <rth@redhat.com>
15837
15838         PR opt/5076
15839         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
15840         * rtl.c (note_insn_name): Update.
15841         * emit-rtl.c (remove_unnecessary_notes): Kill it.
15842         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
15843         to perform loop rotation.
15844         (expand_exit_loop_top_cond): New.
15845         * tree.h (expand_exit_loop_top_cond): Declare it.
15846         * c-semantics.c (genrtl_while_stmt): Use it.
15847         (genrtl_for_stmt): Likewise.
15848
15849 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
15850
15851         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
15852         arguments to 64-bit boundaries on 64-bit ABIs.
15853
15854 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
15855
15856         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
15857
15858 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
15859
15860         * c-decl.c (grokdeclarator): Handle type being a typedef for an
15861         invalid type.
15862
15863 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
15864
15865         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
15866         * config/sparc/sparc_bi.h: Remove file.
15867         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
15868
15869 2002-01-30  Richard Henderson  <rth@redhat.com>
15870
15871         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
15872
15873 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
15874
15875         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
15876
15877 2002-01-30  Jason Merrill  <jason@redhat.com>
15878
15879         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
15880         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
15881         (reg_save): Use DW_CFA_offset_extended_sf instead.
15882
15883         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
15884
15885 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
15886
15887         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
15888         in cselib_lookup.
15889
15890 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
15891
15892         * rs6000.md ("*call_value_local32"): Remove constraints.
15893         ("*call_value_local64"): Same.
15894         ("*call_value_indirect_nonlocal_aix32"): Same.
15895         ("*call_value_nonlocal_aix32"): Same.
15896         ("*call_value_indirect_nonlocal_aix64"): Same.
15897         ("*call_value_nonlocal_aix64"): Same.
15898         ("*call_value_nonlocal_sysv"): Same.
15899
15900 2002-01-29  Richard Henderson  <rth@redhat.com>
15901
15902         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
15903
15904 2002-01-29  Richard Henderson  <rth@redhat.com>
15905
15906         * expr.c (force_operand): Ignore flag_pic for detecting pic
15907         address loads.
15908         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
15909         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
15910         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
15911         instead of open-coded loop.
15912         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
15913         be fixed when in use.
15914
15915 2002-01-29  Richard Henderson  <rth@redhat.com>
15916
15917         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
15918         * sched-rgn.c (propagate_deps): Update them.
15919         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
15920         clobbers list when either gets too long.
15921
15922 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
15923
15924         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
15925         and INDEX_REGS the same as GENERAL_REGS.
15926         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
15927
15928 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
15929
15930         * tree.c (build_nonstandard_integer_type): Correct prototype.
15931
15932 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
15933
15934         * config/s390/s390.md (movstrsico, movstrdix_64,
15935         movstrsix_31): Remove, replace by ...
15936         (movstrdi_short, movstrsi_short, movstrdi_long,
15937         movstrsi_long): ... these.  New.
15938         (movstrdi, movstrsi): Adapt.
15939
15940         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
15941         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
15942         Remove unnecessary CC clobber.
15943         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
15944         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
15945
15946         (divmoddi4): Don't partially initialize TImode register.
15947
15948 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
15949
15950         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
15951
15952 2002-01-29  Richard Henderson  <rth@redhat.com>
15953
15954         * flow.c (print_rtl_and_abort): Remove.
15955         (print_rtl_and_abort_fcn): Remove.
15956         (verify_local_live_at_start): Use dump_bb instead.
15957         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
15958         (verify_wide_reg_1): Return 2 on mode test failure.
15959
15960 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
15961
15962         PR c/3325, c/3326, c/2511, c/3347
15963         * c-decl.c (enum_decl_context): Remove BITFIELD.
15964         (grokdeclarator): Take bitfield width as an input.
15965         Ensure bitfields are given the correct type.  Perform
15966         bitfield width validation with build_bitfield_integer_type
15967         rather than waiting for finish_struct.
15968         (grok_typename, grok_typename_in_parm_context, start_decl,
15969         push_parmdecl, grokfield, start_function): Update calls to
15970         grokdeclarator.
15971         (build_bitfield_integer_type): New function.
15972         (finish_struct): Move bitfield validation to grokdeclarator
15973         and build_bitfield_integer_type.
15974         * tree.c (build_nonstandard_integer_type): New function.
15975         * tree.h (build_nonstandard_integer_type): New prototype.
15976 objc:
15977         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
15978
15979 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
15980
15981         PR other/1502:
15982         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
15983         don't ignore unrecognized -W* options.
15984         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
15985         * cpplib.h (cpp_handle_option): Adjust prototype.
15986         * c-decl.c (c_decode_options): Pass 0 as last argument to
15987         cpp_handle_option.
15988
15989         PR c/2896:
15990         * gcc.c (cpp_unique_options): Split from cpp_options.
15991         (cpp_options): Source cpp_unique_options.
15992         (default_compilers): Use cpp_unique_options instead of cpp_options
15993         when used together with cc1_options.
15994         (static_specs): Add cpp_unique_options.
15995         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
15996         when used together with cc1_options.
15997
15998 2002-01-29  Kazu Hirata  <kazu@hxi.com>
15999
16000         * config/h8300/h8300-protos.h: Update the prototype of
16001         output_a_shift.
16002         * config/h8300/h8300.c (output_a_shift): Remove an unused
16003         argument 'insn'.  Remove redundant code.
16004         * config/h8300/h8300.md: Adust to the new prototype of
16005         output_a_shift.
16006
16007 2002-01-29  Kazu Hirata  <kazu@hxi.com>
16008
16009         * config/h8300/h8300-protos.h: Update the prototypes of
16010         emit_a_rotate and expand_a_rotate.
16011         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
16012         first argument to 'enum rtx_code'.
16013         (expand_a_rotate): Likewise.
16014
16015 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16016
16017         * config/h8300/h8300-protos.h: Update the prototype of
16018         output_simode_bld.
16019         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
16020         'log2'.
16021         * config/h8300/h8300.md: Adjust to the new prototype.
16022
16023 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16024
16025         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
16026         redundant code.
16027
16028 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16029
16030         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
16031         is a fixed register before returning pic_offset_table_rtx.
16032         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
16033         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
16034
16035 2002-01-28  Jason Merrill  <jason@redhat.com>
16036
16037         * dwarf2.h: Sync with src version.
16038
16039 2002-01-28  Paul Koning  <pkoning@equallogic.com>
16040
16041         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
16042         BT_FN_VOID_PTR_VAR.
16043         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
16044         * doc/extend.texi (__builtin_prefetch): Update documentation:
16045         first argument is now const void ptr.
16046
16047 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16048
16049         * config/h8300/h8300-protos.h: Remove an unused prototype.
16050
16051 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
16052
16053         * toplev.c (lang_independent_init): Round up identifier size.
16054
16055 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
16056
16057         * config.gcc: Revert previous change.
16058
16059 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
16060
16061         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
16062
16063 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
16064
16065         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
16066         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
16067         other non-elf netbsd config frags.
16068         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
16069         collect2 will does that.
16070         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
16071         shared-lib frobbing will work.
16072
16073 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16074
16075         * config/h8300/h8300.h: Fix formatting.
16076         * config/h8300/h8300.md: Likewise.
16077
16078 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
16079
16080         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
16081         the old, removed AAA_standards fix.
16082         * fixinc/fixincl.x: Rebuilt.
16083
16084 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
16085
16086         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
16087         atexit call in crtbegin, hooked in after call to frame_dummy;
16088         register EH before registering __fini__start.
16089
16090 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
16091
16092         * config/rs6000/altivec.h: Remove spurious semicolons.
16093
16094 2002-01-27  Kazu Hirata  <kazu@hxi.com>
16095
16096         * config/h8300/h8300.md: Replace dead bit extraction patterns
16097         with ones that work.
16098
16099 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16100
16101         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
16102         if not STRICT_ALIGNMENT.
16103         * rtl.h (MEM_ALIGN): Likewise.
16104
16105 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16106
16107         * doc/invoke.texi (-fdump-translation-unit): Revert this
16108         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16109
16110 2002-01-27  Kazu Hirata  <kazu@hxi.com>
16111
16112         * config/h8300/h8300.md (define_constants): New.
16113         (anonymous patterns) Use defined constants appropriately.
16114
16115 2002-01-27  Kazu Hirata  <kazu@hxi.com>
16116
16117         * config/h8300/h8300.c (function_arg): Remove redundant code.
16118
16119 2002-01-26  Richard Henderson  <rth@redhat.com>
16120
16121         * sched-deps.c (reg_pending_uses_head): New.
16122         (reg_pending_barrier): Rename from reg_pending_sets_all.
16123         (find_insn_list): Don't mark inline.
16124         (find_insn_mem_list): Remove.
16125         (add_dependence_list, add_dependence_list_and_free): New.
16126         (flush_pending_lists): Replace only_write param with separate
16127         for_read and for_write parameters.  Update all callers.  Use
16128         add_dependence_list_and_free.
16129         (sched_analyze_1): Do not add reg dependencies here; just set
16130         the pending bits.  Use add_dependence_list.
16131         (sched_analyze_2): Likewise.
16132         (sched_analyze_insn): Replace schedule_barrier_found with
16133         reg_pending_barrier.  Add all dependencies for pending reg
16134         uses, sets, and clobbers.
16135         (sched_analyze): Don't add reg dependencies for calls, just
16136         set pending bits.  Use regs_invalidated_by_call.  Treat
16137         sched_before_next_call as a normal list, not a fake insn.
16138         (init_deps): No funny init for sched_before_next_call.
16139         (free_deps): Free pending mems lists.  Don't zero reg_last.
16140         (init_deps_global): Init reg_pending_uses.
16141         (finish_deps_global): Free it.
16142         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
16143         (find_insn_mem_list): Remove.
16144         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
16145         (propagate_deps): Use them.  Zero temp mem lists.
16146
16147 2002-01-26  Richard Henderson  <rth@redhat.com>
16148
16149         * Makefile.in (CRTSTUFF_CFLAGS): New.
16150         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
16151         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
16152         crtstuff.c instead of alpha assembly version.
16153         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
16154         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
16155         not FORCE_{INIT,FINI}_SECTION_ALIGN.
16156         (__do_global_dtors_aux): Mark used.
16157         (frame_dummy, __do_global_ctors_aux): Mark used.
16158         (fini_dummy, init_dummy): Remove.
16159
16160         * config/alpha/crtbegin.asm: Remove file.
16161         * config/alpha/crtend.asm: Remove file.
16162         * config/alpha/t-crtbe: Remove file.
16163         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
16164         (LINK_EH_SPEC): New.
16165
16166         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
16167         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
16168         calling constructors.
16169         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
16170
16171         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
16172         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
16173         CRT_END_INIT_DUMMY hack.
16174         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
16175         FORCE_{INIT,FINI}_SECTION_ALIGN.
16176
16177         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
16178         FORCE_{INIT,FINI}_SECTION_ALIGN.
16179
16180         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
16181         invocation sequence.
16182         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
16183
16184         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
16185         (FORCE_CODE_SECTION_ALIGN): New.
16186
16187 2002-01-26  Richard Henderson  <rth@redhat.com>
16188
16189         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
16190
16191 2002-01-26  Richard Henderson  <rth@redhat.com>
16192
16193         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
16194         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
16195
16196 2002-01-26  Kazu Hirata  <kazu@hxi.com>
16197
16198         * config/h8300/h8300.md: Remove bit extraction patterns that
16199         cannot be triggered.
16200         Restrict each bit extraction pattern to a variant on which the
16201         pattern is tested.
16202
16203 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
16204
16205         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
16206
16207 2002-01-26  Kazu Hirata  <kazu@hxi.com>
16208
16209         * config/h8300/h8300.md: Remove bit test patterns that cannot
16210         be triggered.
16211         Restrict each bit test pattern to a variant on which the
16212         pattern is tested.
16213
16214 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16215
16216         * builtins.c (expand_builtin_strncat): Remove redundant check for
16217         INTEGER_CST.
16218
16219 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
16220
16221         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
16222         default setting.
16223         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
16224         existing setting.
16225
16226 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
16227
16228         * dbxout.c (dbxout_init): Use assemble_name rather than just
16229         stripping off the first character.
16230         (dbxout_source_file): Likewise.
16231
16232 2002-01-25  DJ Delorie  <dj@redhat.com>
16233
16234         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
16235         using rtx_equal_p, not by comparing pointers.
16236
16237 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
16238
16239         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
16240         for PIC_OFFSET_TABLE_REGNUM.
16241         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
16242
16243 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
16244
16245         * config.gcc (x86_64-*-freebsd*): New target.
16246         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
16247         value.
16248         (i[34567]86-*-freebsd*): Don't include svr4.h.
16249         * config/i386/freebsd64.h: New file.
16250
16251 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
16252
16253         * config/alpha/x-vms (version): Make static.
16254
16255         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
16256         in previous checkin.
16257
16258         * Makefile.in (install-headers-cp): New target.
16259         * config.gcc (alpha-dec-*vms*): Install headers with
16260         install-headers-cp
16261
16262 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
16263
16264         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
16265         avoid it's copies.
16266
16267 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16268
16269         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
16270         of compare_tree_int.
16271         (expand_builtin_strncat): Likewise.
16272         * c-decl.c (finish_struct): Use tree_low_cst.
16273         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
16274         * tree.c (compare_tree_int): Likewise.
16275
16276 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
16277
16278         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
16279         adjustments even if they are implemented by more than two insns.
16280
16281 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
16282
16283         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
16284         * df.h (struct ref): Kill B.
16285         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
16286
16287         * basic-block.h (PROP_EQUAL_NOTES): New flag.
16288         * flow.c (propagate_one_insn): Use it.
16289         (mark_used_regs): Handle NIL.
16290
16291 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
16292
16293         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
16294         to help folding.
16295
16296 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
16297
16298         * rs6000.md (prefetch): Make address V4SI mode so that the address
16299         is restricted to legitimate form for instruction.
16300
16301 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
16302
16303         * doc/install.texi (xtensa-*-elf): New target.
16304         (xtensa-*-linux*): New target.
16305         * doc/contrib.texi: Add myself.
16306
16307 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
16308
16309         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
16310         purpose register to hold an SImode (or smaller) value.
16311
16312 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
16313
16314         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
16315         registry only.
16316         * crtstuff.c: Likewise.
16317
16318 2002-01-25  Kazu Hirata  <kazu@hxi.com>
16319
16320         * config/h8300/h8300.md (negation patterns): Tighten
16321         predicates to register_operand.
16322
16323 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
16324
16325         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
16326         mode, not Pmode.
16327
16328         * builtins.c (expand_builtin_prefetch): Same.
16329
16330 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
16331
16332         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
16333         modes.
16334
16335 2002-01-24  Kazu Hirata  <kazu@hxi.com>
16336
16337         * config/h8300/h8300.c (print_operand): Remove support for
16338         operand character 'A'.
16339         * config/h8300/h8300.md (three anonymous patterns): Replace
16340         operand character 'A' with either 'T' or 'S'.
16341
16342 2002-01-24  Kazu Hirata  <kazu@hxi.com>
16343
16344         * config/h8300/h8300.c (print_operand): Remove support for
16345         operand character 'U'.
16346
16347 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
16348
16349         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
16350
16351 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
16352
16353         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
16354         values to be assigned to the stack pointer.
16355
16356 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
16357
16358         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
16359         to const_double needs to be done right for big-endian systems.
16360
16361 2002-01-24  Jason Merrill  <jason@redhat.com>
16362
16363         PR c++/2432
16364         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
16365         to can_throw_internal.
16366
16367 2002-01-23  Richard Henderson  <rth@redhat.com>
16368
16369         * fold-const.c (fold): Change UINT_MAX test to check vs precision
16370         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
16371
16372 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
16373
16374         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
16375         (symGOT2reg): Use them, then set as GOT value as unchanging.
16376         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
16377         as a temporary, if possible.
16378         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
16379         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
16380
16381 2002-01-23  Kazu Hirata  <kazu@hxi.com>
16382
16383         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
16384         accept to accept 0x80 as operands[2].
16385
16386 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
16387
16388         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
16389
16390 2002-01-23  Richard Henderson  <rth@redhat.com>
16391
16392         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
16393
16394 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
16395
16396         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
16397         (parmlist_or_identifiers_1): Verify that only a parmlist follows
16398         an attribute.
16399
16400 2002-01-23  Richard Henderson  <rth@redhat.com>
16401
16402         * expr.c (move_by_pieces_1): Extend size before negation.
16403
16404         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
16405         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
16406         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
16407         * config/m68k/t-m68kelf: Likewise.
16408
16409 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
16410
16411         * config/xtensa/elf.h: New file.
16412         * config/xtensa/lib1funcs.asm: New file.
16413         * config/xtensa/lib2funcs.S: New file.
16414         * config/xtensa/linux.h: New file.
16415         * config/xtensa/t-xtensa: New file.
16416         * config/xtensa/xtensa-config.h: New file.
16417         * config/xtensa/xtensa-protos.h: New file.
16418         * config/xtensa/xtensa.c: New file.
16419         * config/xtensa/xtensa.h: New file.
16420         * config/xtensa/xtensa.md: New file.
16421         * config.gcc (xtensa-*-elf*): New target.
16422         (xtensa-*-linux*): New target.
16423         * cse.c (canon_hash): Compare rtx pointers instead of register
16424         numbers.  This is required for the Xtensa port.
16425         * integrate.c (copy_insn_list): Handle case where the static
16426         chain is in memory and the memory address has to be copied to
16427         a register.
16428         * doc/invoke.texi (Option Summary): Add Xtensa options.
16429         (Xtensa Options): New node.
16430         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
16431
16432 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
16433
16434         * diagnostic.c (internal_error): Do ICE suppression only
16435         when ENABLE_CHECKING is not defined.
16436
16437         * c-typeck.c (require_complete_type): Return error_mark_node
16438         if type is error_mark_node.
16439
16440 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
16441
16442         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
16443         -Os and issue a warning.
16444
16445 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
16446
16447         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
16448         current (lack of) need for host configuration by hand.
16449
16450         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
16451         references.  Documentation of some target macros moved from
16452         hostconfig.texi to tm.texi.
16453
16454 2002-01-23  Will Cohen  <wcohen@redhat.com>
16455
16456         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
16457         defined.
16458
16459 2002-01-23  Kazu Hirata  <kazu@hxi.com>
16460
16461         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
16462         operand[3].
16463
16464 2002-01-23  Jason Merrill  <jason@redhat.com>
16465
16466         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
16467
16468         * function.c (assign_parms): Don't put args of inline functions
16469         into registers when not optimizing.
16470
16471 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
16472
16473         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
16474         (prologue_use): New pattern.
16475         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
16476         preference to gen_rtx_USE.
16477         (thumb_expand_prologue): Use gen_prologue_use in preference to
16478         gen_rtx_USE.
16479         (thumb_expand_epilogue): Use gen_prologue_use in preference to
16480         gen_rtx_USE.
16481
16482 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
16483
16484         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
16485
16486 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
16487
16488         PR c/3504
16489         * doc/extend.texi: Correct documentation of __alignof__.
16490
16491 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
16492
16493         * params.h: Rename arguments of DEFPARAM so that it will be
16494         recognized as a translation keyword.
16495
16496 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
16497
16498         * extend.texi: Document altivec functions.
16499         Fix N-bit adjectives in X86 builtin documentation.
16500
16501 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
16502
16503         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
16504         auto_inc_dec values.
16505
16506 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
16507
16508         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
16509         after backslash.
16510         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
16511
16512 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
16513
16514         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
16515
16516 2002-01-22  Richard Henderson  <rth@redhat.com>
16517
16518         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
16519         copy_insn not copy_rtx.
16520
16521 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
16522
16523         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
16524         "nonzero" as that might add "1" bits.  Ensure "constop" is
16525         properly sign extened.
16526         (force_to_mode): Tweak for sign extended constop.
16527
16528 2002-01-22  Richard Henderson  <rth@redhat.com>
16529
16530         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
16531         for_each_rtx instead of assuming we're already looking at the MEM.
16532         (split_small_symbolic_mem_operand): Likewise.
16533         * config/alpha/alpha.h (PREDICATE_CODES): Update.
16534         * config/alpha/alpha.md (small symbolic memory splitters): Update.
16535
16536 2002-01-22  Richard Henderson  <rth@redhat.com>
16537
16538         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
16539         sequence number for the literal.
16540         (divmoddi_internal_er): Likewise.
16541
16542 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16543
16544         PR java/4972
16545         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
16546         in LIBICONV variable.
16547         * configure: Regenerated.
16548
16549 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
16550
16551         * dependence.c (build_def_use): Remove array_idx.
16552
16553         * dwarfout.c (last_filename): Remove.
16554         (output_compile_unit_die): Remove last_filename.
16555
16556 2002-01-22  Roger Sayle  <roger@eyesopen.com>
16557             Richard Henderson  <rth@redhat.com>
16558
16559         PR opt/3640
16560         * fold-const.c (fold): Optimize unsigned comparisons against
16561         UINT_MAX (and similar unsigned constants).
16562
16563 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
16564
16565         * Makefile.in (loop.o): Depend on OPTABS_H.
16566         * loop.c (emit_prefetch_instructions): Check the prefetch operand
16567         against the predicate.
16568
16569         PR target/5379
16570         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
16571         for the address operand.
16572
16573 2002-01-22  Richard Henderson  <rth@redhat.com>
16574
16575         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
16576
16577 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16578
16579         PR other/5450
16580         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
16581         preprocessor flags.
16582
16583 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
16584
16585         * config.gcc (x86_64-*-netbsd*): New target.
16586         * config/i386/netbsd64.h: New file.
16587
16588 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
16589
16590         * regrename.c (kill_value): Fix typo.
16591
16592 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
16593
16594         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
16595
16596         * config/rs6000/rs6000.h: Same.
16597
16598         * function.c (instantiate_virtual_regs): Remove
16599         STARTING_FRAME_PHASE.
16600         (assign_stack_local_1): Same.
16601         Calculate frame phase.
16602
16603 2002-01-22  Nick Clifton  <nickc@redhat.com>
16604
16605         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
16606         variable declaration to outer scope in order to simplify
16607         future extensions.
16608         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
16609         arm_hard_regno_mode_ok.
16610         * config/arm/arm-protos.h: Add a prototype for
16611         arm_hard_regno_mode_ok.
16612         * config/arm/arm.c (soft_df_operand): Remove now redundant
16613         check for DImode values using IP_REGNUM.
16614         (nonimmediate_soft_df_operand): Remove now redundant check for
16615         DImode values using IP_REGNUM.
16616         (arm_hard_regno_mode_ok): New function. New check: make sure
16617         that DImode values are not stored in IP_REGNUM.
16618
16619         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
16620         note with a USE.
16621         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
16622
16623 2002-01-22  Jason Merrill  <jason@redhat.com>
16624
16625         * c-semantics.c (genrtl_compound_stmt): Only check nesting
16626         consistency if this COMPOUND_STMT is scoped.
16627
16628 2002-01-22  Kazu Hirata  <kazu@hxi.com>
16629
16630         * predict.c: Fix formatting.
16631         * print-tree.c: Likewise.
16632         * protoize.c: Likewise.
16633         * real.h: Likewise.
16634         * rtl.h: Likewise.
16635         * sbitmap.h: Likewise.
16636         * scan.c: Likewise.
16637         * sched-deps.c: Likewise.
16638         * sched-vis.c: Likewise.
16639         * sdbout.c: Likewise.
16640         * sibcall.c: Likewise.
16641         * ssa.c: Likewise.
16642         * ssa-ccp.c: Likewise.
16643         * ssa-dce.c: Likewise.
16644         * stmt.c: Likewise.
16645         * stor-layout.c: Likewise.
16646         * system.h: Likewise.
16647
16648 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16649
16650         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
16651         if fits in bounds of base type.
16652
16653         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
16654         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
16655         (add_bound_info, default): If can't find a context, make a
16656         SAVE_EXPR.
16657         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
16658
16659 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
16660
16661         * c-typeck.c (parser_build_binary_op): If result from
16662         build_binary_op is ERROR_MARK just return error_mark_node without
16663         further processing.
16664
16665 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
16666
16667         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
16668         Split a.out-specific bits into...
16669         * config/netbsd-aout.h: ...this.
16670         * config/netbsd-elf.h: New file.
16671         * config/alpha/netbsd-elf.h: Remove.
16672         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
16673         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
16674         (STARTFILE_SPEC): Remove redundant definition.
16675         (ENDFILE_SPEC): Likewise.
16676         (LINK_SPEC): Likewise.
16677         (CPP_SPEC): Likewise.
16678         (ASM_SPEC): Likewise.
16679         (LIB_SPEC): Likewise.
16680         (SWITCH_TAKES_ARG): Likewise.
16681         (TARGET_MEM_FUNCTIONS): Likewise.
16682         (CPP_PREDEFINES): Redefine.
16683         (ASM_FINAL_SPEC): Remove redefinition.
16684         (ASM_COMMENT_START): Redefine.
16685         (FUNCTION_PROFILER): Define.
16686         (TARGET_VERSION): Redefine.
16687         Comment and formatting cleanup.
16688         * config/i386/netbsd.h: Include <netbsd-aout.h>.
16689         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
16690         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
16691         big- or little-endian.
16692         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
16693         * config.gcc (*-*-netbsd*): Add definitions common to all
16694         NetBSD configs.
16695         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
16696         gnu_ld definitions.  Add netbsd-elf.h to and remove
16697         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
16698         tmake_file, and don't lose previous tmake_file contents.
16699         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
16700         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
16701         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
16702         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
16703         (mipsel-*-netbsd*): Rename this to...
16704         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
16705         mips/little.h to tm_file for mips*el-*.
16706         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
16707         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
16708         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
16709
16710 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16711
16712         * pa-protos.h (reg_before_reload_operand): New function prototype.
16713         * pa.c (reg_before_reload_operand): New function implementation.
16714         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
16715         contraints to "*m".
16716
16717 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16718
16719         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
16720
16721 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16722
16723         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
16724         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
16725         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
16726         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
16727         (ENDFILE_SPEC): Undefine.
16728         (STARTFILE_SPEC): Redefine for PA.
16729
16730 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16731
16732         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
16733
16734 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
16735
16736         * config.gcc: Add entries to supported PowerPC --with-cpu
16737         types.
16738
16739 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
16740
16741         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
16742         true for 64-bit mode only SSE registers in 32-bit mode.
16743
16744 2002-01-21  Kazu Hirata  <kazu@hxi.com>
16745
16746         * unwind-dw2.c: Fix formatting.
16747         * unwind-dw2-fde.c: Likewise.
16748         * unwind-dw2-fde.h: Likewise.
16749         * unwind-pe.h: Likewise.
16750         * varasm.c: Likewise.
16751         * varray.h: Likewise.
16752
16753 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
16754
16755         Remove workaround for register stack overwrite bug in mmix.
16756         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
16757         support for TARGET_REG_STACK_FILL_BUG.
16758         * config/mmix/mmix.h: Remove member has_call_without_parameters.
16759         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
16760         Delete.
16761         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
16762         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
16763         -mno-reg-stack-fill-bug-workaround.
16764         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
16765         machine member has_call_without_parameters.
16766         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
16767         -mreg-stack-fill-bug-workaround and
16768         -mno-reg-stack-fill-bug-workaround.
16769         (MMIX Options): Ditto.
16770
16771 2002-01-21  Kazu Hirata  <kazu@hxi.com>
16772
16773         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
16774         as appropriate.
16775         Remove redundant code.
16776
16777 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
16778
16779         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
16780         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
16781         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
16782         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
16783         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
16784         out target macro definitions and non-target-specific comments
16785         mostly taken from old versions of the manual.
16786
16787 2002-01-20  Kazu Hirata  <kazu@hxi.com>
16788
16789         * config/h8300/h8300.h: Fix comment formatting.
16790         * config/ia64/aix.h: Likewise.
16791         * config/ia64/ia64-protos.h: Likewise.
16792         * config/ia64/ia64.c: Likewise.
16793         * config/ia64/ia64.h: Likewise.
16794         * config/ia64/ia64intrin.h: Likewise.
16795         * config/ia64/linux.h: Likewise.
16796         * config/ia64/unwind-aix.c: Likewise.
16797         * config/ia64/unwind-ia64.c: Likewise.
16798
16799 2002-01-20  Kazu Hirata  <kazu@hxi.com>
16800
16801         * config/h8300/h8300.c: Revise comments about shift code.
16802
16803 2002-01-20  Kazu Hirata  <kazu@hxi.com>
16804
16805         * config/h8300/h8300.c (function_arg): Update a comment.
16806
16807 2002-01-20  Kazu Hirata  <kazu@hxi.com>
16808
16809         * config/h8300/h8300.md: Update the comments at the beginning
16810         of the file.
16811
16812 2002-01-20  Kazu Hirata  <kazu@hxi.com>
16813
16814         * config/i370/i370.c: Fix comment formatting.
16815         * config/i370/i370.h: Likewise.
16816         * config/i370/i370.md: Likewise.
16817         * config/i370/linux.h: Likewise.
16818
16819 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16820
16821         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
16822
16823         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
16824         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
16825         in incomplete case.
16826
16827 2002-01-20  Graham Stott  <grahams@redhat.com>
16828
16829         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
16830
16831 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16832
16833         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
16834
16835 2002-01-19  Tom Rix  <trix@redhat.com>
16836
16837         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
16838
16839 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
16840
16841         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
16842
16843         * function.c (assign_stack_local_1): Adjust x_frame_offset with
16844         STARTING_FRAME_PHASE.
16845         (STARTING_FRAME_PHASE): New.
16846         (instantiate_virtual_regs): Check saneness of
16847         STARTING_FRAME_PHASE.
16848
16849         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
16850
16851 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
16852
16853         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
16854
16855 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16856
16857         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
16858         be used for bootstrapping GCC 3.0.
16859
16860 2002-01-18  Kazu Hirata  <kazu@hxi.com>
16861
16862         * config/h8300/h8300.md: Fix an insn length.
16863
16864 2002-01-18  Kazu Hirata  <kazu@hxi.com>
16865
16866         * bitmap.h: Fix comment formatting.
16867         * combine.c: Likewise.
16868         * cppfiles.c: Likewise.
16869         * c-pragma.h: Likewise.
16870         * c-typeck.c: Likewise.
16871         * df.c: Likewise.
16872         * dwarf2out.c: Likewise.
16873         * function.c: Likewise.
16874         * gcc.c: Likewise.
16875         * genattrtab.c: Likewise.
16876         * gthr-win32.h: Likewise.
16877         * haifa-sched.c: Likewise.
16878         * predict.c: Likewise.
16879         * rtlanal.c: Likewise.
16880         * rtl.h: Likewise.
16881         * unwind-dw2-fde.h: Likewise.
16882         * unwind-pe.h: Likewise.
16883         * vmsdbgout.c: Likewise.
16884
16885 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16886
16887         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
16888         if type_required and passed decl.
16889
16890 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
16891
16892         * config.gcc (cpu_type): Include altivec.h in powerpc
16893         extra_headers.
16894         Same for darwin.
16895
16896         * config/rs6000/altivec.h: New.
16897
16898 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
16899
16900         * doc/install.texi (*-ibm-aix*): Update assembler and exception
16901         handling information.
16902         * doc/trouble.texi (Interoperation): Add libstdc++ information
16903         for AIX.
16904         (Misunderstandings): Add template instantiation and static template
16905         member information for AIX.
16906
16907 2002-01-17  Jason Merrill  <jason@redhat.com>
16908
16909         * dbxout.c (dbxout_type): Support const and volatile.
16910
16911         * except.c (add_partial_entry): Remove backwards compatibility code.
16912         (end_protect_partials): Likewise.
16913
16914 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
16915
16916         * config/ia64/ia64.md (prologue_use): New.
16917         * config/ia64/ia64.c (ia64_expand_prologue): Use
16918         gen_prologue_use instead of gen_rtx_USE.
16919         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
16920         as CODE_FOR_pred_rel_mutex.
16921         (ia64_sched_reorder2): Likewise.
16922
16923 2002-01-16  Eric Christopher  <echristo@redhat.com>
16924
16925         * config/mips/r3900.h: Reformat.
16926         (SUBTARGET_CPP_SIZE_SPEC): Remove.
16927         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
16928         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
16929         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
16930         * config/mips/t-elf: Remove mips3 multilib.
16931
16932 2002-01-16  H.J. Lu <hjl@gnu.org>
16933
16934         * config/mips/linux.h: Include "mips/abi64.h".
16935
16936 2002-01-16  H.J. Lu <hjl@gnu.org>
16937
16938         * config/mips/t-linux: New.
16939
16940         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
16941
16942         * config/mips/linux.h: Don't include "gofast.h".
16943         (INIT_SUBTARGET_OPTABS): Removed.
16944
16945 2002-01-16  Kazu Hirata  <kazu@hxi.com>
16946
16947         * config/h8300/h8300-protos.h: Replace emit_a_shift with
16948         output_a_shift.
16949         * config/h8300/h8300.c: Likewise.
16950         * config/h8300/h8300.md: Likewise.
16951
16952 2002-01-16  Kazu Hirata  <kazu@hxi.com>
16953
16954         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
16955         spaces after an opcode name.
16956         (pushqi1_h8300hs): Likewise.
16957         (pushhi1_h8300hs): Likewise.
16958
16959 2002-01-16  Kazu Hirata  <kazu@hxi.com>
16960
16961         * doc/extend.texi: Replace "option" with "attribute"
16962         appropriately.
16963
16964 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
16965
16966         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
16967         (and:DI () (const_int -8)).
16968         (split_small_symbolic_mem_operand): Split
16969         (mem (and:DI () (const_int -8)).
16970
16971 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
16972
16973         PR target/5309:
16974         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
16975         same way as TYPE_IMUL.
16976         (ultrasparc_sched_reorder): Likewise.
16977         * config/sparc/sparc.md (type): Add comment to update
16978         ultrasparc_sched_reorder when making changes.
16979
16980 2002-01-16  Kazu Hirata  <kazu@hxi.com>
16981
16982         * doc/invoke.texi: Change the dump file name of block
16983         reordering pass from 28.bbro to 29.bbro.
16984         Mention -dk option.
16985
16986 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
16987
16988         * i386.md (minsf splitter): Fix pasto.
16989
16990 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
16991
16992         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
16993         to frame pointer initialisation instruction.
16994         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
16995         initialisation instruction.
16996         (soft_df_operand): Do not accept the IP register.
16997         (nonimmediate_soft_df_operand): Do not accept the IP register.
16998
16999 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
17000
17001         PR target/5357:
17002         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
17003         MASK_V8 being both set.
17004
17005 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
17006
17007         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
17008         insn for GOT register; add REG_MAYBE_DEAD notes instead.
17009         config/s390/s390.md (call, call_value): Add GOT register to
17010         CALL_INSN_FUNCTION_USAGE where needed.
17011         (call_exp, call_value_exp): New.
17012
17013 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
17014
17015         * config/arm/arm.c: General formatting tidy up.
17016
17017 2002-01-16  Graham Stott  <grahams@redhat.com>
17018
17019         * calls.c (try_to_integrate): Use "(size_t)" intermediate
17020         cast and when casting an integer literal to "rtx" pointer.
17021         (expand_call): Likewise.
17022         * flow.c (try_pre_increment): Likewise.
17023         (find_use_as_address): Likewise.
17024         * integrate.c (expand_iline_function): Likewise.
17025         * regmove.c (try_auto_increment): Likewise.
17026
17027 2002-01-16  Graham Stott  <grahams@redhat.com>
17028
17029         * sched-rgn.c (passed): Use sbitmap_free.
17030         (header): Likewise.
17031         (inner): Likewise.
17032         (in_queue): Likewise.
17033         (in_stack): Likewise.
17034
17035 2002-01-15  Eric Christopher  <echristo@redhat.com>
17036
17037         * flow.c (propagate_one_insn): Change to use fatal_insn.
17038
17039 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17040
17041         * expmed.c (extract_fixed_bit_field): Remove unused code.
17042         * system.h: Poison SLOW_ZERO_EXTEND.
17043         * doc/tm.texi: Remove.
17044         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
17045         * config/arm/arm.h: Likewise.
17046         * config/avr/avr.h: Likewise.
17047         * config/clipper/clipper.h: Likewise.
17048         * config/convex/convex.h: Likewise.
17049         * config/d30v/d30v.h: Likewise.
17050         * config/dsp16xx/dsp16xx.h: Likewise.
17051         * config/elxsi/elxsi.h: Likewise.
17052         * config/fr30/fr30.h: Likewise.
17053         * config/h8300/h8300.h: Likewise.
17054         * config/i370/i370.h: Likewise.
17055         * config/i386/i386.h: Likewise.
17056         * config/m68k/m68k.h: Likewise.
17057         * config/mips/mips.h: Likewise.
17058         * config/ns32k/ns32k.h: Likewise.
17059         * config/pdp11/pdp11.h: Likewise.
17060         * config/pj/pj.h: Likewise.
17061         * config/s390/s390.h: Likewise.
17062         * config/sh/sh.h: Likewise.
17063         * config/stormy16/stormy16.h: Likewise.
17064         * config/v850/v850.h: Likewise.
17065         * config/vax/vax.h: Likewise.
17066         * config/we32k/we32k.h: Likewise.
17067
17068 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
17069
17070         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
17071         (altivec_lvsl): Change constraint to b.
17072         (altivec_lvsr): Same.
17073         (altivec_lvebx): Same.
17074         (altivec_lvehx): Same.
17075         (altivec_lvewx): Same.
17076         (altivec_lvxl): Same.
17077         (altivec_lvx): Same.
17078         (altivec_stvx): Add parallel.
17079         (altivec_stvxl): Same.
17080         (altivec_stvehx): Same.
17081         (altivec_stvebx): Same.
17082         (altivec_stvebx): Same.
17083
17084 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
17085
17086         * config.gcc: Change altivec.h to altivec-defs.h.
17087
17088         * config/rs6000/altivec.h: Delete.
17089
17090         * config/rs6000/altivec-defs.h: Add.
17091
17092 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17093
17094         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
17095         and UMOD modes.
17096
17097         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
17098         less than or equal to eight bytes.
17099
17100         * vax.md (andsi3): Remove constraints and change SET destination
17101         operand type to nonimmediate_operand.
17102         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
17103         when it is a CONST_INT.
17104
17105 2002-01-15  Jason Merrill  <jason@redhat.com>
17106
17107         * c-common.def (FILE_STMT): New code.
17108         * c-common.c (statement_code_p): It's a statement.
17109         * c-common.h (stmt_tree_s): Add x_last_filename.
17110         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
17111         (last_expr_filename): New macro.
17112         * c-semantics.c (begin_stmt_tree): Initialize it.
17113         (add_stmt): If the filename changed, also insert a
17114         FILE_STMT.
17115         (expand_stmt): Handle seeing one.
17116
17117 2002-01-15  Eric Christopher  <echristo@redhat.com>
17118
17119         * flow.c (propagate_one_insn): Add error message and print out
17120         insn for debugging.
17121
17122 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
17123
17124         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
17125         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
17126         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
17127         TRAMPOLINE_ALIGNMENT.
17128         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
17129         to be in bits.
17130         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
17131         PCC_BITFIELD_TYPE_MATTERS.
17132         * config/interix.h (STDC_VALUE): Remove.  Use
17133         STDC_0_IN_SYSTEM_HEADERS.
17134         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
17135         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
17136         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
17137
17138 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17139
17140         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
17141         not work on this platform currently.
17142
17143 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
17144
17145         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
17146         readonly_warning in _().
17147
17148 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
17149
17150         * gcc.c (delete_if_ordinary): Backout previous change.
17151
17152 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17153
17154         * config/h8300/h8300.c (print_operand): Remove support for
17155         unused operand characters.
17156
17157         * read-rtl.c: Fix formatting.
17158         * real.c: Likewise.
17159         * recog.c: Likewise.
17160         * regclass.c: Likewise.
17161         * regmove.c: Likewise.
17162         * reg-stack.c: Likewise.
17163         * reload1.c: Likewise.
17164         * rtlanal.c: Likewise.
17165
17166 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17167
17168         * config/i386/i386.c: Fix formatting.
17169
17170 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
17171
17172         * c-typeck.c (process_init_element): Don't save_expr
17173         COMPOUND_LITERAL_EXPR if just its initializer will be used.
17174
17175 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
17176
17177         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
17178         emit optional traceback table if optimize_size or TARGET_ELF.
17179         * config/rs6000/rs6000.md (prefetch): New.
17180
17181 2002-01-15  Andreas Jaeger  <aj@suse.de>
17182
17183         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
17184
17185 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17186
17187         * mips-tfile.c: Fix formatting.
17188
17189 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
17190
17191         * unroll.c (final_reg_note_copy): Fix previous commit.
17192
17193 2002-01-14  Kazu Hirata  <kazu@hxi.com>
17194
17195         * config/h8300/h8300-protos.h: Remove the prototype for
17196         eq_operator.
17197         * config/h8300/h8300.c (eq_operator): Remove.
17198
17199 2002-01-14  Richard Henderson  <rth@redhat.com>
17200
17201         * config/i386/i386.md (prefetch): Tidy.
17202         (prefetch_3dnow): Fix locality operand.
17203
17204 2002-01-14  Richard Henderson  <rth@redhat.com>
17205
17206         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
17207         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
17208
17209 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
17210
17211         * reload1.c (reload_combine): Pass reg_sum replacement through
17212         copy_rtx in loop performing multiple changes.
17213
17214 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
17215
17216         * except.c (remove_unreachable_regions): New.
17217         (free_eh_status): Clear exception_handler_labels.
17218         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
17219         (find_exception_handler_labels): Don't add the same label more than
17220         once.
17221         (remove_exception_handler_label): Don't die if
17222         find_exception_handler_labels hasn't been called for the current
17223         function yet.
17224
17225 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
17226
17227         * toplev.c (rest_of_compilation): Rebuild jump labels after
17228         gcse.
17229
17230 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
17231
17232         * doc/extend.texi: Move documentation of X86 built-in functions
17233         here.
17234         * doc/invoke.texi: From here.
17235         * doc/sourcebuild.texi: Document location of documentation for
17236         machine built-in functions.
17237
17238 2002-01-13  Christopher Faylor  <cgf@redhat.com>
17239
17240         * cppfiles.c (TEST_THRESHOLD): New macro.
17241         (SHOULD_MMAP): Ditto.
17242         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
17243         be used.
17244
17245 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
17246
17247         * unroll.c (final_reg_note_copy): Properly handle
17248         REG_LABEL
17249         (unroll_loops): Fix LOOP_CONDITION heuristics.
17250
17251 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
17252
17253         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
17254         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
17255
17256 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
17257
17258         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
17259         threaded loop.
17260
17261 2002-01-14  Tom Rix  <trix@redhat.com>
17262
17263         * config/rs6000/rs6000.md: Fix typo with sradi.
17264
17265 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
17266
17267         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
17268         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
17269         (clrstrdi, clrstrsi): Adapt callers.
17270
17271         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
17272
17273         (movti splitter): Never use register 0 as base register.
17274
17275 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17276
17277         * combine.c (simplify_shift_const): Always generate new rtx
17278         for shift expression instead of reusing given expression.
17279
17280 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17281
17282         * config/alpha/alpha.c (alpha_expand_mov): Don't call
17283         alpha_legitimize_address unless mode is Pmode.
17284
17285 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
17286
17287         * doc/md.texi (Modifiers): Document the '*' constraint for the
17288         user.
17289
17290         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
17291         * doc/extend.texi (Function Attributes): 'interrupt' is valid
17292         for xstormy16 too.
17293
17294 2002-01-13  Richard Henderson  <rth@redhat.com>
17295
17296         * reload.c (find_reloads): Use a hard reg destination as reload reg
17297         for an input reload of the source.
17298
17299 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17300
17301         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
17302         more generic.
17303
17304 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
17305
17306         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
17307         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
17308
17309         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
17310
17311 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17312
17313         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
17314
17315 2002-01-12  Tom Rix  <trix@redhat.com>
17316
17317         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
17318         TARGET_POWERPC64.
17319
17320 2002-01-12  Richard Henderson  <rth@redhat.com>
17321
17322         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
17323
17324         * doc/invoke.texi: Update Alpha options.
17325
17326         * doc/invoke.texi: Update i386 built-in function lists.
17327
17328 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
17329
17330         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
17331         referencing outside.
17332
17333 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17334
17335         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
17336         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
17337         offsets, and change line folding.
17338         * optabs.c (expand_binop): Remove warnings.
17339         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
17340
17341 2002-01-12  Graham Stott <grahams@redhat.com>
17342
17343         * attribs.c (handle_deprecated_attribute): constify WHAT.
17344         * diagnostic.c (warn_deprecated_use): Add braces, fixes
17345         dangling else warning and constify WHAT.
17346         * except.h (struct function, struct inline_remap): Move
17347         struct tag forward defs before all prototypes.
17348         (duplicate_eh_regions): Whitespace.
17349
17350 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
17351
17352         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
17353         MODE_BASE_REG_CLASS.
17354         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
17355
17356 2002-01-12  Richard Henderson  <rth@redhat.com>
17357
17358         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
17359         (ix86_expand_vector_move): New.
17360         (bdesc_2arg): Remove andps, andnps, orps, xorps.
17361         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
17362         Remove old prefetch builtins.  Special case the logicals removed above.
17363         (ix86_expand_builtin): Likewise.
17364         (safe_vector_operand): Use V4SFmode, not TImode.
17365         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
17366         (ix86_expand_timode_binop_builtin): New.
17367         * config/i386/i386-protos.h: Update.
17368         * config/i386/i386.h (enum ix86_builtins): Update.
17369         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
17370         Use ix86_expand_vector_move in vector move expanders.
17371         (movti_internal, movti_rex64): Add xorps alternative.
17372         (sse_clrv4sf): Rename and adjust from sse_clrti.
17373         (prefetch): Don't work so hard.
17374         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
17375         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
17376         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
17377
17378 2002-01-11  Richard Henderson  <rth@redhat.com>
17379
17380         * config/i386/mmintrin.h: New file.
17381         * config/i386/xmmintrin.h: New file.
17382         * config.gcc (i?86-*-*): Add extra_headers.
17383         * simplify-rtx.c (simplify_unary_operation): Handle saturating
17384         truncation codes.
17385         (simplify_binary_operation): Handle saturating arithmetic codes.
17386         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
17387         not the lowpart subreg.
17388         (ix86_expand_builtin): Return a TImode dummy register instead of 0
17389         on error.
17390         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
17391
17392 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17393
17394         * conflict.c (conflict_graph_compute): Free regsets when finished.
17395         * ssa.c (compute_coalesced_reg_partition): Likewise.
17396
17397 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
17398
17399         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
17400         every where we allocate a register.
17401
17402 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17403
17404         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
17405         * lcm.c (compute_earliest, compute_farthest): Likewise.
17406
17407 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
17408
17409         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
17410
17411 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
17412
17413         * doc/rtl.texi (Insns): Fix 2 typos.
17414
17415 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
17416
17417         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
17418         options.  Use @table @gcctabopt for MMIX options.  Add index
17419         entries for MMIX options.  Start new paragraph with first
17420         heading of the machine-dependent options.
17421
17422 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17423
17424         PR other/5299
17425         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
17426         * combine.c (force_to_mode): Same.
17427         * reload1.c (clear_reload_reg_in_use): Same.
17428
17429 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
17430
17431         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
17432         and 'subtargets'.
17433
17434 2002-01-11  Andreas Jaeger  <aj@suse.de>,
17435             Brad Lucier <lucier@math.purdue.edu>
17436
17437         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
17438         mcpu.
17439
17440 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
17441
17442         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
17443         Protect with IN_LIBGCC.
17444         (LINK_EH_SPEC): Add required trailing space.
17445
17446 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
17447
17448         * c-tree.h: Move function declarations so that they are listed
17449         under the filename which contains them.
17450         (check_identifier, finish_decl_top_level,
17451         lookup_name_current_level_global, shadow_record_fields): Remove.
17452
17453 2002-01-11  Andreas Jaeger  <aj@suse.de>
17454
17455         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
17456         march.
17457
17458 2002-01-10  Richard Henderson  <rth@redhat.com>
17459
17460         * config/alpha/alpha.c (print_operand): Add 'J'.
17461         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
17462         new operand with the sequence number for the lituse.  When splitting
17463         the insns, use gen_movdi_er_high_g and generate a sequence number.
17464         (gen_movdi_er_high_g): Print the sequence number if non-zero.
17465
17466 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
17467
17468         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
17469         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
17470         stvxl.
17471         (altivec_expand_builtin): Same.
17472         (altivec_expand_stv_builtin): New.
17473
17474         * config/rs6000/rs6000.h (rs6000_builtins): Same.
17475
17476         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
17477         ("altivec_lvehx"): New.
17478         ("altivec_lvewx"): New.
17479         ("altivec_lvxl"): New.
17480         ("altivec_lvx"): New.
17481         ("altivec_stvx"): New.
17482         ("altivec_stvebx"): New.
17483         ("altivec_stvehx"): New.
17484         ("altivec_stvewx"): New.
17485         ("altivec_stvxl"): New.
17486
17487 2002-01-10  Richard Henderson  <rth@redhat.com>
17488
17489         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
17490         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
17491         care not to delete instructions twice.
17492
17493 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
17494
17495         * toplev.c: Don't declare environ (it's not used anywhere).
17496         * configure.in: Don't check for declaration of environ.
17497         * config/i386/xm-mingw32.h: Don't #define environ.
17498         * config.in, configure: Regenerate.
17499
17500 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
17501
17502         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
17503         * configure: Regenerate.
17504
17505         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
17506         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
17507         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
17508         alpha/xm-vms.h.
17509         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
17510         LIMITS_H_TEST here, not in m68k/x-next.
17511         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
17512         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
17513
17514         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
17515         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
17516         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
17517
17518         * config/i386/x-djgpp: Renamed i386/t-djgpp.
17519         * config/m88k/x-dolph: Renamed m88k/t-dolph.
17520         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
17521         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
17522         replacement of quadlib.asm with quadlib.c.
17523
17524         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
17525         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
17526         config/rs6000/xm-beos.h: Delete file.
17527
17528         * config.gcc: Update to match above changes.
17529
17530 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17531
17532         * config/h8300/h8300.h: Fix comment typos.
17533         * config/h8300/h8300.md: Likewise.
17534         * config/h8300/lib1funcs.asm: Likewise.
17535
17536 2002-01-10  Dale Johannesen  <dalej@apple.com>
17537
17538         PR optimization/5269
17539         * unroll.c (precondition_loop_p): Make *increment be the correct
17540         sign when n_iterations known, to avoid confusing caller.
17541
17542 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17543
17544         * doc/extend.texi (deprecated): Fix a typo.
17545
17546 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
17547
17548         * basic-block.h (update_br_prob_note): Declare.
17549         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
17550         (try_forward_edges): Care negative frequencies and update note.
17551         (outgoing_edges_match): Tweek conditional merging heuristics.
17552         (try_crossjump_to_edge): use update_br_prob_note.
17553         * cfglayout.c (fixup_reorder_chain): Likewise.
17554         * cfrtl.c (update_br_prob_note): New.
17555         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
17556
17557         * i386.c (ix86_decompose_address): Return -1 if address contains
17558         shift.
17559         (legitimate_address_p): Require ix86_decompose_address to return 1.
17560
17561         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
17562         (cprop_insn): Likewise.
17563
17564 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17565
17566         * toplev.c: Fix formatting.
17567         * tree.c: Likewise.
17568         * tree-dump.c: Likewise.
17569         * unroll.c: Likewise.
17570         * unwind-dw2.c: Likewise.
17571         * unwind-dw2-fde.c: Likewise.
17572         * unwind-dw2-fde-glibc.c: Likewise.
17573         * unwind-sjlj.c: Likewise.
17574
17575 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
17576
17577         * doc/invoke.texi: Document PDP-11 options.
17578
17579 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17580
17581         * config/h8300/h8300.h: Fix formatting.
17582
17583 2002-01-10  Ira Ruben   <ira@apple.com>
17584
17585         Add __attribute__ ((deprecated)).
17586         * extend.texi: Document __attribute__ ((deprecated)).
17587         * invoke.texi: Document -Wno-deprecated-declarations.
17588         * testsuite/g++.dg/other/deprecated.C: New C++ test.
17589         * testsuite/gcc.dg/deprecated.c: New C test.
17590         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
17591         (c_common_attribute_table): Add "deprecated" entry.
17592         (handle_deprecated_attribute): New function.
17593         * c-decl.c (deprecated_states): New enum.
17594         deprecated_state: State of "deprecated" handling.
17595         (start_decl): Set deprecated_state based on attributes.
17596         (grokdeclarator): Test for deprecated uses, propagate attribute.
17597         * c-typeck.c (build_component_ref): Test for deprecated fields.
17598         (build_external_ref): Test for deprecated primaries.
17599         * diagnostic.c (warn_deprecated_use) New function to issue
17600         warnings about __attribute__ ((depricated)) references.
17601         * flags.h (warn_deprecated_decl): Extern declared for
17602         -W[no-]deprecated-declarations option.
17603         * print-tree.c (print_node): Show deprecated flag status.
17604         * toplev.c (warn_deprecated_decl): Defined.
17605         (W_options): Added "deprecated-declaration".
17606         * toplev.h (warn_deprecated_use): Extern declared.
17607         * tree.h (struct tree_common): Define deprecated_flag.
17608         (TREE_DEPRECATED): New macro to access flag.
17609         * cp/call.c (build_call): Test for deprecated calls.
17610         * cp/class.c (add_implicitly_declared_members): Set global
17611         flag to tell grokdeclarator to not issue deprecated warnings.
17612         * cp/cp-tree.h: Add extern for adding_implicit_members.
17613         * cp/decl.c (deprecated_states): New enum.
17614         (start_decl): Set deprecated_state based on attributes.
17615         (grokdeclarator): Test for deprecated uses, propagate attribute.
17616         * cp/lex.c (do_identifier): Test for deprecated primaries.
17617         * cp/typeck.c (build_component_ref): Test for deprecated fields.
17618
17619 2002-01-10  Ira Ruben   <ira@apple.com>
17620
17621         Fix to assign attributes to inline member functions.
17622         * cp/decl.c (start_method): Handle attrlist.
17623
17624 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17625
17626         * combine.c (expand_field_assignment): Use subreg_lsb().
17627
17628 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
17629
17630         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
17631         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
17632         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
17633         Recurse for any operand of AND as long as constant is non-zero.
17634
17635 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17636
17637         * config/h8300/h8300.md: Remove constraints from expanders.
17638
17639 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17640
17641         * varasm.c: Fix formatting.
17642         * varray.c: Likewise.
17643         * vmsdbgout.c: Likewise.
17644         * xcoffout.c: Likewise.
17645
17646 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
17647
17648         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
17649         update edge probabilities to match.
17650
17651 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
17652
17653         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
17654         dependencies.
17655         * doc/languages.texi, doc/sourcebuild.texi: New files.
17656         * doc/configfiles.texi: Make a subsubsection.  Update.
17657         * doc/configterms.texi: Add @node.  Remove warning that this isn't
17658         instructions for building GCC.
17659         * doc/makefile.texi: Make a subsection.
17660         * doc/gccint.texi: Update.
17661
17662 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
17663
17664         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
17665
17666 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
17667
17668         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
17669
17670 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
17671
17672         * optabs.c (expand_fix): Look for wider integer modes first.
17673
17674         * i386.md (mov?f): Avoid the fake const double trick for medium
17675         memory model.
17676         (min?f*/max?f*): Prohibit memory operands for i387 variant.
17677         (fop_df_4): Disable for SSE compilation.
17678
17679 2002-01-10  Graham Stott  <grahams@redhat.com>
17680
17681         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
17682         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
17683
17684 2002-01-10  Richard Henderson  <rth@redhat.com>
17685
17686         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
17687
17688 2002-01-10  Richard Henderson  <rth@redhat.com>
17689
17690         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
17691         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
17692
17693 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17694
17695         * combine.c (can_combine_p): Fix a comment typo.
17696
17697 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
17698
17699         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
17700         empty list correctly.  Change loop index $t to $f for
17701         consistency with rest of Makefile.
17702
17703 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
17704
17705         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
17706         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
17707
17708         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
17709         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
17710         (altivec_init_builtins): Same.
17711         (altivec_expand_unop_builtin): Return NULL_RTX on error.
17712         (altivec_expand_binop_builtin): Same.
17713         (altivec_expand_ternop_builtin): Same.
17714         (bdesc_dst): New.
17715
17716         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
17717         ("altivec_vctuxs"): Fix typo.
17718         ("altivec_vnmsubfp"): Same.
17719         ("altivec_dssall"): New.
17720         ("altivec_mfvscr"): New.
17721         ("altivec_dss"): New.
17722         ("altivec_lvsl"): New.
17723         ("altivec_lvsr"): New.
17724         ("altivec_dstt"): New.
17725         ("altivec_dstst"): New.
17726         ("altivec_dststt"): New.
17727         ("altivec_dst"): New.
17728
17729         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
17730         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
17731
17732 2002-01-09  Richard Henderson  <rth@redhat.com>
17733
17734         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
17735
17736 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
17737
17738         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
17739         function.
17740         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
17741         prototype.
17742         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
17743
17744 2002-01-09  Kazu Hirata  <kazu@hxi.com>
17745
17746         * read-rtl.c: Fix formatting.
17747         * real.c: Likewise.
17748         * regclass.c: Likewise.
17749         * regrename.c: Likewise.
17750         * reg-stack.c: Likewise.
17751         * reload1.c: Likewise.
17752         * reload.c: Likewise.
17753         * rtl.c: Likewise.
17754
17755 2002-01-09  Kazu Hirata  <kazu@hxi.com>
17756
17757         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
17758         to extract items in the expr_list chain.
17759
17760 2002-01-09  Richard Henderson  <rth@redhat.com>
17761
17762         * config/vax/vax.c (vax_rtx_cost): Never abort.
17763
17764         * config/vax/vax.h (REAL_ARITHMETIC): Define.
17765
17766 2002-01-09  Jan Hubicka  <jh@suse.cz>
17767
17768         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
17769
17770 2002-01-09  Richard Henderson  <rth@redhat.com>
17771
17772         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
17773         Unify code from various alternatives.
17774
17775 2002-01-09  Richard Henderson  <rth@redhat.com>
17776
17777         * regrename.c (copy_value): Ignore the copy if the source register
17778         is present in the value chain with a narrower mode.
17779
17780 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
17781
17782         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
17783         for the c4x target. Also improve layout.
17784
17785 2002-01-09  Richard Henderson  <rth@redhat.com>
17786
17787         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
17788         * config/m32r/m32r.md (and ior xor splitters): Swap operands
17789         to match insn patterns.
17790
17791 2002-01-09  Richard Henderson  <rth@redhat.com>
17792
17793         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
17794         (copyprop_hardreg_forward_1): Likewise.
17795
17796 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17797
17798         * pa.md (decrement_and_branch_until_zero): Change predicate for
17799         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
17800
17801 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
17802
17803         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
17804         gets undefined. For Darwin.
17805
17806 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
17807
17808         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
17809
17810 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17811
17812         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
17813
17814 2002-01-08  Richard Henderson  <rth@redhat.com>
17815
17816         * regrename.c (copy_value): Ignore overlapping copies.
17817
17818 2002-01-08  Richard Henderson  <rth@redhat.com>
17819
17820         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
17821         as needed to avoid shared structure.
17822
17823 2002-01-08  Kazu Hirata  <kazu@hxi.com>
17824
17825         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
17826         H8/300H and H8/S.
17827
17828 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
17829
17830         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
17831         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
17832         documentation of obsolete macros.
17833         * system.h: Poison these macros.
17834         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
17835         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
17836         config/c4x/c4x.h, config/clipper/clipper.h,
17837         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
17838         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
17839         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
17840         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
17841         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
17842         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
17843         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
17844         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
17845         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
17846         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
17847         config/sparc/sparc.h, config/stormy16/stormy16.h,
17848         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
17849         definitions and commented out definitions of obsolete macros.
17850         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
17851         of MAX_INT_TYPE_SIZE.
17852
17853 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
17854
17855         * config/s390/s390.c (s390_preferred_reload_class): Never
17856         return ADDR_REGS if it isn't a subset of the given class.
17857         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
17858         FP_REGS, but all superclasses as well.
17859
17860         * config/s390/s390.c (s390_function_profiler): Fix thinko.
17861
17862         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
17863         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
17864         must not be a const_int.
17865
17866 2002-01-08  Richard Henderson  <rth@redhat.com>
17867
17868         * Makefile.in (toplev.o): Depend on options.h.
17869         (gcc.o): Depend on specs.h.
17870
17871 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
17872
17873         * expr.c (store_expr): Convert VOIDmode constants back to target's
17874         mode.
17875
17876 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17877
17878         * doc/invoke.texi: Markup gcc as @command.  Refer to
17879         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
17880         of http://gcc.gnu.org/thanks.html.
17881
17882 2002-01-08  Dale Johannesen  <dalej@apple.com>
17883
17884         * config/rs6000/rs6000.md: Add missing int register
17885         target case to movdf_low.
17886
17887 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
17888
17889         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
17890         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
17891         (cppinit.o): Depend on except.h.
17892         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
17893         s-specs): New rules.
17894
17895         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
17896         Don't create specs.h/options.h/gencheck.h here.  Remove
17897         unnecessary variable settings from last argument of AC_OUTPUT.
17898         * config.in, configure: Regenerate.
17899         * intl.c: Hardcode package name as "gcc".
17900
17901         * cppinit.c: Include except.h.
17902         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
17903         appropriate.
17904         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
17905         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
17906         (!)USING_SJLJ_EXCEPTIONS.
17907         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
17908
17909 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
17910
17911         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
17912         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
17913         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
17914         documentation of obsolete macros.
17915         * system.h: Poison these macros.
17916         * config/d30v/d30v.h, config/ns32k/encore.h,
17917         config/stormy16/stormy16.h: Remove definitions and commented out
17918         definitions of obsolete macros.
17919
17920 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
17921
17922         * objc/objc-act.c (handle_class_ref): Mark the declaration of
17923         %sobjc_class_ref_%s as used - to prevent unwanted compiler
17924         warnings.
17925
17926 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
17927
17928         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
17929         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
17930         to insn adjusting stack/frame pointer.
17931         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
17932         accept operands that cause the insn to be non-splittable.
17933
17934 2002-01-08  Graham Stott  <grahams@redhat.com>
17935
17936         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
17937         (C_TYPE_FIELDS_VOLATILE): Likewise.
17938         (C_TYPE_BEING_DEFINED): Likewise.
17939         (C_IS_RESERVED_WORD): Likewise.
17940         (C_TYPE_VARIABLE_SIZE): Likewise.
17941         (C_DECL_VARIABLE_SIZE): Likewise.
17942         (C_MISSING_PROTOTYPE_WARNED): Likewise.
17943         (C_SET_EXP_ORIGINAL_CODE): Likewise.
17944         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
17945         parenthesis.
17946         (C_DECL_ANTICIPATED): Likewise.
17947         (c_build_type_variant): Add parenthesis.
17948
17949 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
17950
17951         * gcc.c (option_map): Remove --version.
17952         (process_command): Handle -fversion following the GNU Coding
17953         Standards.  Partially addresses PR other/704.
17954
17955 2002-01-08  Graham Stott  <grahams@redhat.com>
17956
17957         * combine.c (combine_instructions): Fix typo.
17958
17959 2002-01-08  Graham Stott  <grahams@redhat.com>
17960
17961         * debug.h: Use "tree" and "rtx" throughout.
17962
17963         * debug.c: Likewise.
17964
17965 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
17966
17967         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
17968         constant pool, use the pool's version of the symbol instead.
17969
17970 2002-01-07  Richard Henderson  <rth@redhat.com>
17971
17972         * regrename.c (find_oldest_value_reg): Ignore the value chain if
17973         the original register was copied in a mode with a fewer number of
17974         hard registers than the desired mode.
17975         (copyprop_hardreg_forward_1): Likewise.
17976         (debug_value_data): Fix loop test.
17977         * toplev.c (parse_options_and_default_flags): Reenable
17978         -fcprop-registers at -O1.
17979
17980 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
17981
17982         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
17983         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
17984
17985         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
17986         predicates.
17987
17988         * config/rs6000/rs6000.md: Add altivec predicate patterns.
17989
17990 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17991
17992         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
17993         (pa_output_function_prologue): Output local label at the beginning of
17994         the prologue when profiling.
17995         (hppa_profile_hook): Use the local label rather than the function label.
17996         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
17997
17998 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
17999
18000         * config/rs6000/rs6000.c (print_operand): Remove extra space.
18001         (altivec_expand_unop_builtin): Fix thinko.
18002         (altivec_expand_binop_builtin): Same.
18003         (altivec_expand_ternop_builtin): Same.
18004         (altivec_expand_builtin): Same.
18005
18006 2002-01-07  Richard Henderson  <rth@redhat.com>
18007
18008         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
18009
18010 2002-01-07  Jason Merrill  <jason@redhat.com>
18011
18012         * unwind-dw2.c (execute_cfa_program): Use < again.
18013
18014 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
18015
18016         * predict.c (combine_predictions_for_insn): Avoid division by zero.
18017
18018 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
18019
18020         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
18021         Don't allow -1 - x -> ~x simplifications in the first pass.
18022
18023 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
18024
18025         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
18026         arguments.
18027         (altivec_expand_binop_builtin): Same.
18028         (altivec_expand_unop_builtin): Same.
18029         (print_operand): Fix typo.
18030         (bdesc_1arg): Add vupk* variants.
18031
18032         * rs6000.h (rs6000_builtins): Add vupk* enums.
18033
18034         * rs6000.md: Add altivec_vupk* variants.
18035
18036 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
18037
18038         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
18039         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
18040         and last update dates.
18041
18042 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
18043
18044         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
18045
18046 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
18047
18048         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
18049         * config/avr/avr.h (CPP_SPEC): Likewise.
18050         (LINK_SPEC): Likewise.
18051         (CRT_BINUTILS_SPECS): Likewise.
18052         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
18053         * doc/invoke.texi (AVR Options): Document them.
18054
18055 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
18056
18057         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
18058         LABEL_NUSES.
18059
18060 2002-01-07  Graham Stott  <grahams@redhat.com>
18061
18062         * config/i386/i386.h: Update copyright date.
18063         (HALF_PIC_PTR): Add parenthesis.
18064         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
18065         (CONSTANT_ALIGNMENT): Add parenthesis.
18066         (DATA_ALIGNMENT): Likewise.
18067         (LOCAL_ALIGNMENT): Likewise.
18068         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
18069         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
18070         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
18071         (HARD_REGNO_NREGS): Add paranethesis.
18072         (VALID_SSE_REG_MODE): Whitespace.
18073         (VALID_MMX_REG_MODE): Whitespace.
18074         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
18075         (ix86_hard_regno_mode_ok): Add parenthesis.
18076         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
18077         (RETURN_IN_MEMORY): Whitespace.
18078         (N_REG_CLASSES): Add parenthesis.
18079         (INTEGER_CLASS_P): Add parenthesis and wrap.
18080         (FLOAT_CLASS_P): Likewise.
18081         (SSE_CLASS_P): Likewise.
18082         (MMX_CLASS_P): Likewise.
18083         (MAYBE_INTEGER_CLASS_P): Likewise.
18084         (MAYBE_FLOAT_CLASS_P): Likewise.
18085         (MAYBE_SSE_CLASS_P): Likewise.
18086         (MAYBE_MMX_CLASS_P): Likewise.
18087         (Q_CLASS_P): Likewise.
18088         (GENERAL_REGNO_P): Uppercase macro parameter.
18089         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
18090         (FP_REGNO_P): Likewise.
18091         (ANY_FP_REGNO_P): Uppercase macro parameter.
18092         (SSE_REGNO_P): Likewise.
18093         (SSE_REGNO): Likewise.
18094         (SSE_REG_P): Likewise.
18095         (SSE_FLOAT_MODE_P): Likewise.
18096         (MMX_REGNO_P): Likewise.
18097         (MMX_REG_P):Likewise.
18098         (STACK_REG_P): Likewise.
18099         (NON_STACK_REG_P): Likewise.
18100         (STACK_TOP_P): Likewise.
18101         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
18102         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
18103         (SECONDARY_MEMORY_NEEDED): Likewise.
18104         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
18105         (MD_ASM_CLOBBERS): Whitespace and wrap.
18106         (MUST_PASS_IN_STACK): Whitespace and wrap.
18107         (RETURN_POPS_ARGS): Add parenthesis.
18108         (INIT_CUMULATIVE_ARGS): Likewise.
18109         (FUNCTION_ARG): Likewise.
18110         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
18111         (SETUP_INCOMING_VARARGS): Likewise.
18112         (BUILD_VA_LIST_TYPE):  Add parenthesis.
18113         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
18114         parenthsis.
18115         (EXPAND_BUILTIN_VA_ARG): Likewise.
18116         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
18117         (INITIALIZE_TRAMPOLINE): Add parenthesis.
18118         (INITIAL_ELIMINATION_OFFSET): Likewise.
18119         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
18120         (REGNO_OK_FOR_BASE_P): Likewise.
18121         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
18122         (REGNO_OK_FOR_DIREG_P): Likewise.
18123         (REG_OK_FOR_INDEX_P): Whitespace.
18124         (REG_OK_FOR_BASE_P): Whitespace.
18125         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
18126         parenthesis.
18127         (FIND_BASE_TERM): Fix typo.
18128         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
18129         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
18130         (SYMBOLIC_CONST; Whitespace.
18131         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
18132         (ENCODE_SECTION_INFO): Whitespace.
18133         (FINALIZE_PIC): Remove do { ... } while (0).
18134         (PROMOTE_MODE): Wrap in do { ... } while (0).
18135         (CONST_COSTS): Whitespace.
18136         (RTX_COSTS): Add paramethesis, whitespace and wrap.
18137         (REGISTER_MOVE_COST): Add parenthesis.
18138         (MEMORY_MOVE_COST): Likewise.
18139         (EXTRA_CC_MODES): Whitespace.
18140         (SELECT_CC_MODE): Add parenthesis and whitespace.
18141         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
18142         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
18143         (ASM_OUTPUT_LABEL): Add paramethesis.
18144         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
18145         (ASM_OUTPUT_REG_POP): Likewise.
18146         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
18147         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18148
18149         * config/i386/i386.c: Update copyright.
18150         (CHECK_STACK_LIMIT): Add parenthesis.
18151         (AT_BP): Uppercase macro parameter.
18152         (x86_64_int_parameter_registers): Constify.
18153         (x86_64_int_return_registers): Likewise.
18154         (ix86_compare_op0): Use rtx.
18155         (construct_container): Constify INTREG parameter.
18156         (function_arg): Use rtx.
18157
18158         * diagnostic.h: Update copyright date.
18159         (output_buffer_state): Add parenthesis.
18160         (output_buffer_format_args): Likewise.
18161
18162         * combine.c (combine_instructions): Replace XEXP (links, 0)
18163         with link.
18164
18165 2002-01-06  H.J. Lu <hjl@gnu.org>
18166
18167         * cfgcleanup.c (thread_jump): Fix 2 typos.
18168
18169 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
18170
18171         * config.gcc: Add support for --enable-altivec.
18172
18173 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18174
18175         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
18176
18177 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
18178
18179         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
18180         __objc_class_name_*.
18181
18182 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18183
18184         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
18185
18186 2002-01-06  Richard Henderson  <rth@redhat.com>
18187
18188         * reorg.c (emit_delay_sequence): Remove death notes, not merely
18189         nop them out.  Increment label reference count for REG_LABEL.
18190         (fill_slots_from_thread): Frob label reference count around
18191         delete_related_insns.
18192
18193 2002-01-05  Richard Henderson  <rth@redhat.com>
18194
18195         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
18196         jump threading.
18197
18198 2002-01-05  Richard Henderson  <rth@redhat.com>
18199
18200         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
18201         * integrate.c (output_inline_function): Likewise.
18202         * toplev.c (rest_of_compilation): Do it here instead.  Move call
18203         to remove_unnecessary_notes after emitting abstract instance.
18204         Force an emitted nested function to have its parent emited as well.
18205         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
18206         for null.
18207         (rtl_for_decl_location): Do not look at reload data structures
18208         before reload has run.
18209
18210 2002-01-05  Kazu Hirata  <kazu@hxi.com>
18211
18212         * cse.c: Fix formatting.
18213         * dwarf2asm.c: Likewise.
18214         * dwarf2out.c: Likewise.
18215         * explow.c: Likewise.
18216         * expmed.c: Likewise.
18217         * function.c: Likewise.
18218         * gcov.c: Likewise.
18219         * gencheck.c: Likewise.
18220         * genrecog.c: Likewise.
18221         * ggc-common.c: Likewise.
18222         * ggc-page.c: Likewise.
18223         * global.c: Likewise.
18224
18225 2002-01-05  Kazu Hirata  <kazu@hxi.com>
18226
18227         * combine.c: Fix formatting.
18228
18229 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
18230
18231         PR middle-end/1557
18232         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
18233
18234 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
18235
18236         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
18237         as 1 for __powerpc64__ as well.
18238
18239         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
18240
18241         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
18242         return it.
18243
18244 2002-01-05  Daniel Berlin  <dan@dberlin.org>
18245
18246         * lcm.c: Revert change, due to performance regression it causes on
18247         SPEC because it's slightly more conservative (sigh, I hate
18248         edge-based LCM).
18249
18250 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
18251
18252         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
18253
18254 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
18255
18256         * doc/cppinternals.texi: Update.
18257
18258 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
18259
18260         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
18261         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
18262         negatives.
18263         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
18264         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
18265         kludge for pre-october-14th mmix versions to handle new-found bug
18266         with PUSHJ/PUSHGO and the register stack.
18267         * config/mmix/mmix.h (struct machine_function): Rename member
18268         has_call_value_without_parameters to has_call_without_parameters.
18269         All referers changed.
18270         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
18271         TARGET_MASK_BRANCH_PREDICT): New macros.
18272         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
18273         -mno-reg-stack-fill-bug-workaround.
18274         * config/mmix/mmix.md ("call"): Set struct machine member
18275         has_call_without_parameters.
18276
18277 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
18278
18279         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
18280
18281 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
18282
18283         * cfgcleanup.c: Include tm_p.h
18284         (mark_effect): Fix handling of hard register; fix handling of SET
18285
18286 2002-01-04  Kazu Hirata  <kazu@hxi.com>
18287
18288         * config/h8300/h8300.md (anonymous patterns): Check that
18289         operands are registers before using REGNO on them.
18290
18291 2002-01-03  Roland McGrath  <roland@frob.com>
18292
18293         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
18294
18295 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
18296
18297         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
18298         * c-common.h (genrtl_expr_stmt_value): Likewise.
18299         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
18300         (expand_expr_stmt_value): Add maybe_last argument.
18301         Don't warn about statement with no effect if it is the last statement
18302         in expression statement.
18303         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
18304         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
18305         expand_expr_stmt_value.
18306         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
18307         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
18308         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
18309         as maybe_last to expand_expr_stmt_value.
18310
18311 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
18312
18313         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
18314         be passed in, do not build it.
18315         (c_begin_if_stmt): New function.
18316         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
18317         * c-common.h (c_expand_start_cond): Update prototype.
18318         (c_begin_if_stmt): Prototype new function.
18319         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
18320         * c-parse.in (if_prefix): Use c_begin_if_stmt,
18321         c_begin_while_stmt and c_finish_while_stmt_cond.
18322
18323 2002-01-04  William Cohen  <wcohen@redhat.com>
18324
18325         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
18326         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
18327         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
18328         * config/pa/som.h (ASM_FILE_START): Likewise.
18329
18330 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
18331
18332         * lcm.c: Include df.h.
18333         Add available_transfer_function prototype.
18334         (compute_available): Rework to use iterative dataflow framework.
18335         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
18336         with bb_info in df.h
18337         (available_transfer_function): New function.
18338
18339         * Makefile.in (lcm.o): add df.h to dependencies.
18340
18341 2002-01-04  Richard Henderson  <rth@redhat.com>
18342
18343         * config/alpha/alpha.c (some_operand): Accept HIGH.
18344         (input_operand): Likewise; accept simple references to globals.
18345         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
18346         (alpha_const_double_ok_for_letter_p): Likewise.
18347         (alpha_extra_constraint): Likewise.
18348         (alpha_preferred_reload_class): Likewise.  Do not force
18349         symbolic constants to memory.
18350         (alpha_legitimate_address_p): Accept simple references
18351         to small_symbolic_operand.
18352         (alpha_legitimize_address): New arg scratch.  Be prepared to be
18353         called when no_new_pseudos.  Emit simple symbolic references.
18354         Split integers into low, high, and rest.
18355         (alpha_expand_mov): Use alpha_legitimize_address.
18356         (some_small_symbolic_mem_operand): New.
18357         (split_small_symbolic_mem_operand): New.
18358         * config/alpha/alpha-protos.h: Update.
18359         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
18360         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
18361         (EXTRA_CONSTRAINT): Likewise.
18362         (PREFERRED_RELOAD_CLASS): Likewise.
18363         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
18364         (PREDICATE_CODES): Update.
18365         * config/alpha/alpha.md: New post-reload splitters to convert
18366         simplfied symbolic operands to the form that references $29.
18367         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
18368         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
18369
18370 2002-01-03  Richard Henderson  <rth@redhat.com>
18371
18372         * local-alloc.c (function_invariant_p): Update commentary.
18373
18374 2002-01-04  H.J. Lu <hjl@gnu.org>
18375
18376         * toplev.c (rest_of_compilation): Fix a typo when calling
18377         cleanup_cfg.
18378
18379 2002-01-03  Kazu Hirata  <kazu@hxi.com>
18380
18381         * c-common.c: Fix formatting.
18382         * diagnostic.c: Likewise.
18383         * doloop.c: Likewise.
18384         * dwarf2out.c: Likewise.
18385
18386 2002-01-03  Kazu Hirata  <kazu@hxi.com>
18387
18388         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
18389         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
18390
18391 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
18392
18393         * cpperror.c: Update comments and copyright.
18394         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
18395         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
18396
18397 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18398
18399         * collect2.c (main): Use strcmp when testing for "-shared".
18400
18401 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
18402
18403         * cppmacro.c: Don't include intl.h.  Update comments.
18404         (new_number_token): Allocate enough buffer for 64-bit unsigned
18405         integers; update prototype.
18406         * cppmain.c: Update comments.
18407
18408 2002-01-03  William Cohen  <wcohen@redhat.com>
18409
18410         * function.h (struct function): Add profile.
18411         (current_function_profile): New.
18412         doc/extend.texi: Update documentation.
18413         * final.c (final_start_function): Use current_function_profile
18414         instead of profile_flag.
18415         (profile_after_prologue): Likewise.
18416         * function.c (expand_function_start): Likewise.
18417         (expand_function_start): Likewise.
18418         * config/alpha/alpha.c (direct_call_operand):
18419         (alpha_does_function_need_gp): Likewise.
18420         (alpha_expand_prologue): Likewise.
18421         * config/arm/arm.c (arm_expand_prologue): Likewise.
18422         thumb_expand_prologue: Likewise.
18423         * config/d30v/d30v.c (d30v_stack_info): Likewise.
18424         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
18425         (fr30_expand_prologue): Likewise.
18426         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
18427         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
18428         * config/i386/i386.h (FINALIZE_PIC): Likewise.
18429         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
18430         * config/i960/i960.c (i960_output_function_prologue): Likewise.
18431         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
18432         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
18433         (m32r_expand_prologue): Likewise.
18434         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
18435         (m88k_expand_prologue): Likewise.
18436         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
18437         * config/mips/mips.c (compute_frame_size): Likewise.
18438         (mips_expand_prologue): Likewise.
18439         (mips_can_use_return_insn): Likewise.
18440         * config/pa/elf.h (ASM_FILE_START): Likewise.
18441         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
18442         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
18443         * config/pa/som.h (ASM_FILE_START): Likewise.
18444         * config/romp/romp.c (romp_using_r14): Likewise.
18445         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
18446         (rs6000_stack_info): Likewise.
18447         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18448         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
18449         * config/v850/v850.c (compute_register_save_size): Likewise.
18450
18451 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
18452
18453         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
18454         gen_lowpart_common fails, use gen_lowpart_SUBREG.
18455
18456 2002-01-03  Turly O'Connor  <turly@apple.com>
18457
18458         * darwin.c (machopic_output_possible_stub_label): Don't generate
18459         stub routines for pseudo-stubs which we've just defined.
18460
18461 2002-01-03  Kazu Hirata  <kazu@hxi.com>
18462
18463         * builtins.c: Fix formatting.
18464         * c-typeck.c: Likewise.
18465         * combine.c: Likewise.
18466         * expr.c: Likewise.
18467         * loop.c: Likewise.
18468
18469 2002-01-03  Andreas Schwab  <schwab@suse.de>
18470
18471         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
18472         and return true if _cpp_push_next_buffer pushed a new include
18473         file.
18474         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
18475         _cpp_pop_file_buffer did not push a new file.
18476         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
18477
18478 2002-01-02  Eric Christopher  <echristo@redhat.com>
18479
18480         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
18481         FIND_REG_INC_NOTE call. Update copyright.
18482         * loop.c (canonicalize_condition): Ditto.
18483         * reorg.c (delete_scheduled_jump): Ditto.
18484
18485 2002-01-03  Kazu Hirata  <kazu@hxi.com>
18486
18487         * gcse.c: Fix formatting.
18488
18489 2002-01-03  Graham Stott  <grahams@redhat.com>
18490
18491         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
18492         forward defs for struct tags rtx_def, union_tree, rtvec_def
18493         also output corresponding typedefs for rtx, tree, and rtvec.
18494
18495         * system.h: Move forward defs for struct tags rtx_def, union_tree,
18496         rtvec_def along with corresponding typedefs for rtx, tree, and
18497         rtvec to config.h, hconfig.h, tconfig.h.
18498
18499 2002-01-03  Graham Stott  <grahams@redhat.com>
18500
18501         * tree.h: Update copyright date.
18502         (IS_EXPR_CODE_CLASS): Add parenthesis.
18503         (TREE_SET_CODE): Add whitespace.
18504         (TREE_CHECK): Add parenthesis.
18505         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
18506         (CST_OR_CONSTRUCTOR_CHECK):
18507         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
18508         (TREE_SYMBOL_REFERENCED): Whitespace.
18509         (INT_CST_LT): Likewise.
18510         (INT_CST_LT_UNSIGNED): Likewise.
18511         (tree_real_cst): Unwrap comment.
18512         (tree_string): Likewise.
18513         (tree_complex): Likewise.
18514         (IDENTIFIER_POINTER): correct cast.
18515         (SAVE_EXPR_CONTEXT): Whitespace.
18516         (EXPR_WFL_FILENAME_NODE): Likewise.
18517         (EXPR_WFL_FILENAME): Remove parenthesis.
18518         (DECL_ORIGIN): Add parenthesis.
18519         (DECL_FROM_INLINE): Use NULL_TREE.
18520         (build_int_2): Whitespace.
18521         (build_type_variant): Add parenthesis.
18522
18523         * gcc/jcf-parse.c: Update copyright date.
18524         (yyparse): Constify resource_filename.
18525
18526 2002-01-03  Graham Stott  <grahams@redhat.com>
18527
18528         * rtl.h: Update copyright date.
18529         (RTL_CHECK1): Wrap long line.
18530         (RTL_CHECK2): Likewise.
18531         (RTL_CHECKC1): Wrap long line and whitespace.
18532         (RTL_CHECKC2): Likewise.
18533         (XWINT): Whitespace.
18534         (XINT): Likewise.
18535         (XSTR): Likewise.
18536         (XEXP): Likewise.
18537         (XVEC): Likewise.
18538         (XMODE): Likewise.
18539         (XBITMAP): Likewise.
18540         (XTREE): Likewise.
18541         (XBBDEF): Likewise.
18542         (XTMPL): Likewise.
18543         (X0WINT): Likewise.
18544         (X0INT):Likewise.
18545         (X0UINT): Likewise.
18546         (X0STR): Likewise.
18547         (X0EXP): Likewise.
18548         (X0VEC): Likewise.
18549         (X0MODE): Likewise.
18550         (X0BITMAP): Likewise.
18551         (X0TREE): Likewise.
18552         (X0BBDEF): Likewise.
18553         (X0ADVFLAGS): Likewise.
18554         (X0CSELIB): Likewise.
18555         (X0MEMATTR): Likewise.
18556         (XCWINT): Likewise.
18557         (XCINT): Likewise.
18558         (XCUINT): Likewise.
18559         (XCSTR): Likewise.
18560         (XCEXP): Likewise.
18561         (XCVEC): Likewise.
18562         (XCMODE): Likewise.
18563         (XCBITMAP): Likewise.
18564         (XCTREE): Likewise.
18565         (XCBBDEF): Likewise.
18566         (XCADVFLAGS): Likewise.
18567         (XCCSELIB): Likewise.
18568         (XC2EXP): Likewise.
18569         (INSN_UID): Likewise.
18570         (PREV_INSN): Likewise.
18571         (PATTERN): Likewise.
18572         (INSN_CODE): Likewise.
18573         (PUT_REG_NOTE_KIND): Likewise.
18574         (CODE_LABEL_NUMBER): Likewise.
18575         (NOTE_SOURCE_FILE): Likewise.
18576         (NOTE_BLOCK): Likewise.
18577         (NOTE_EH_HANDLER): Likewise.
18578         (NOTE_RANGE_INFO): Likewise.
18579         (NOTE_LIVE_INFO): Likewise.
18580         (NOTE_BASIC_BLOCK): Likewise.
18581         (NOTE_EXPECTED_VALUE): Likewise.
18582         (NOTE_LINE_NUMBER): Likewise.
18583         (LABEL_NAME): Likewise.
18584         (LABEL_NUSES): Likewise.
18585         (LABEL_ALTERNATE_NAME): Likewise.
18586         (ADDRESSOF_DECL): Likewise.
18587         (JUMP_LABEL): Likewise.
18588         (LABEL_NEXTREF): Likewise.
18589         (REGNO): Likewise.
18590         (ORIGINAL_REGNO: Likewise.
18591         (HARD_REGISTER_NUM_P): Add parenthesis.
18592         (SUBREG_REG): Whitespace.
18593         (SUBREG_BYTE): Likewise.
18594         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
18595         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
18596         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
18597         (ASM_OPERANDS_INPUT_VEC): Likewise.
18598         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
18599         (ASM_OPERANDS_INPUT): Likewise.
18600         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
18601         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
18602         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
18603         (ASM_OPERANDS_INPUT_MODE): Likewise.
18604         (ASM_OPERANDS_SOURCE_FILE): Likewise.
18605         (ASM_OPERANDS_SOURCE_LINE): Likewise.
18606         (MEM_SET_IN_STRUCT_P): Minor reformat.
18607         (TRAP_CONDITION): Whitespace.
18608         (TRAP_CODE): Likewise.
18609         (COND_EXEC_TEST): Likewise.
18610         (COND_EXEC_CODE): Likewise.
18611         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
18612         (PHI_NODE_P): Add parenthesis.
18613         (plus_constant): Whitespace and add parenthesis.
18614
18615 2002-01-03  Kazu Hirata  <kazu@hxi.com>
18616
18617         * config/avr/avr.c: Fix comment typos.
18618         * config/c4x/c4x.md: Likewise.
18619         * config/dsp16xx/dsp16xx.h: Likewise.
18620         * config/dsp16xx/dsp16xx.md: Likewise.
18621         * config/i386/i386.md: Likewise.
18622         * config/ia64/ia64.c: Likewise.
18623         * config/m32r/m32r.h: Likewise.
18624         * config/m68hc11/m68hc11.md: Likewise.
18625         * config/mmix/mmix.c: Likewise.
18626         * config/mn10200/mn10200.c: Likewise.
18627         * config/romp/romp.c: Likewise.
18628         * config/sh/sh.c: Likewise.
18629         * config/stormy16/stormy16.c: Likewise.
18630         * config/stormy16/stormy16.h: Likewise.
18631         * config/stormy16/stormy16.md: Likewise.
18632
18633 2002-01-03  Graham Stott  <grahams@redhat.com>
18634
18635         * loop.h: Update copyright date.
18636         (LOOP_MOVABLES): Fix typo.
18637         (LOOP_REGS): Likewise.
18638         (LOOP_IVS): Likewise.
18639
18640 2002-01-03  Graham Stott  <grahams@redhat.com>
18641
18642         * cppinit.c: Update copyright date.
18643         Don't include output.h
18644         * Makefile.in: Update copyright date.
18645         Update dependency.
18646
18647 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18648
18649         PR c/5226
18650         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
18651         (-pthread) Add to RS/6000 options.
18652
18653 2002-01-02  Kazu Hirata  <kazu@hxi.com>
18654
18655         * except.c: Fix comment typos.
18656         * loop.c: Likewise.
18657         * varasm.c: Likewise.
18658         * doc/tm.texi: Fix a typo.
18659
18660 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
18661
18662         * c-typeck.c (output_init_element): Allow initializing static storage
18663         duration objects with compound literals.
18664
18665 2002-01-02  Richard Henderson  <rth@redhat.com>
18666
18667         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
18668         after abusing it.
18669
18670 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18671
18672         * gcc.c (default_compilers): Const-ify.
18673         * mips-tdump.c (stab_names): Likewise.
18674         * mips-tfile.c (map_coff_types, map_coff_storage,
18675         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
18676         pseudo_ops_t, pseudo_ops): Likewise.
18677         * protoize.c (default_include): Likewise
18678
18679         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
18680         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
18681         Add array size in declaration.
18682         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
18683         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
18684         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
18685         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
18686         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
18687         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
18688         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
18689         emtens, make_nan): Const-ify.
18690         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
18691         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
18692
18693 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
18694
18695         * config.gcc (ia64-*-*): Set extra_headers.
18696         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
18697         * config/alpha/t-osf: Remove.
18698         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
18699
18700 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
18701
18702         * config/rs6000/t-aix43: Revert previous change.
18703
18704 2002-01-02  Jason Merrill  <jason@redhat.com>
18705
18706         * c-decl.c (c_expand_body): Call outlining_inline_function when
18707         emitting an inline function out of line.
18708
18709 2002-01-02  Richard Henderson  <rth@redhat.com>
18710
18711         * dwarf2out.c (limbo_die_node): Add created_for member.
18712         (new_die): New argument created_for.  Update all callers.
18713         (mark_limbo_die_list): New.
18714         (dwarf2out_init): Register limbo_die_list as a root.
18715         (dwarf2out_finish): Force insert limbo dies into their function
18716         context.
18717
18718 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
18719
18720         PR c++/5089
18721         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
18722
18723 2002-01-02  Kazu Hirata  <kazu@hxi.com>
18724
18725         * config/h8300/fixunssfsi.c: Update copyright.
18726         Fix comment typos.
18727         Fix formatting.
18728         * config/h8300/h8300.c: Update copyright.
18729         Eliminate warnings.
18730
18731 2002-01-02  Kazu Hirata  <kazu@hxi.com>
18732
18733         * config/romp/romp.c: Fix comment formatting.
18734         * config/romp/romp.h: Likewise.
18735         * config/romp/romp.md: Likewise.
18736         * config/s390/s390.c: Likewise.
18737         * config/stormy16/stormy16.c: Likewise.
18738         * config/stormy16/stormy16.h: Likewise.
18739
18740 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
18741
18742         * c-common.h (genrtl_expr_stmt_value): Declare.
18743         * c-semantics.c (genrtl_goto_stmt): Redirect to...
18744         (genrtl_goto_stmt_value): ... this new function.  Pass new
18745         argument down to expand_expr_stmt_value, taking
18746         TREE_ADDRESSABLE into account.
18747         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
18748         STMT_EXPR as addressable, i.e., one whose result we want.
18749         * expr.c (expand_expr): Don't save expression statement value
18750         of labeled_blocks or loop_exprs.
18751         * stmt.c (expand_expr_stmt): Redirect to...
18752         (expand_expr_stmt_value): ... this new function.  Use new
18753         argument to tell whether to save expression value.
18754         (expand_end_stmt_expr): Reset last_expr_type and
18755         last_expr_value if we don't have either.
18756         * tree-inline.c (declare_return_variable): Mark its use
18757         statement as addressable.
18758         * tree.h: Document new use of TREE_ADDRESSABLE.
18759         (expand_expr_stmt_value): Declare.
18760
18761 2002-01-01  Tom Rix  <trix@redhat.com>
18762
18763         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
18764         rs6000_emit_allocate_stack.
18765
18766 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
18767
18768         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
18769         ${srcdir}/ginclude/ to every entry in extra_headers.
18770         * configure: Regenerate.
18771         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
18772         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
18773         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
18774         * ginclude/proto.h: Rename to config/convex/proto.h.
18775
18776 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18777
18778         * attribs.c (handle_vector_size_attribute): Use host_integerp
18779         and tree_int_cst; remove warnings.
18780         * caller-save.c (insert_restore): Add cast to get rid of warning.
18781         (insert_save): Likewise.
18782         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
18783         * regmove.c (find_matches): Add temporary var to kill a warning.
18784
18785 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
18786
18787         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
18788         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
18789         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
18790         (vms-dwarf2eh.o): Add Makefile rule.
18791         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
18792         * config/alpha/vms-dwarf2eh.asm: New file.
18793
18794         * gcc.c (delete_if_ordinary): Delete all versions.
18795
18796 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18797
18798         * config/mmix/mmix.md: Update FIXME to not mention
18799         define_constants.
18800         (MMIX_rJ_REGNUM): New define_constants constant.
18801         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
18802         "*movdicc_real"): Adjust contraints formatting.
18803         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
18804         for branch prediction.
18805         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
18806         output template.
18807         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
18808         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
18809         number.  Delete related FIXMEs.
18810         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
18811         from number to MMIX_rJ_REGNUM.
18812         (TARGET_MASK_BRANCH_PREDICT): New.
18813         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
18814         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
18815         value.  Add -mbranch-predict and -mno-branch-predict.
18816         (TARGET_VERSION): Drop date.
18817         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
18818         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
18819         for finding out global symbols.
18820         (mmix_asm_output_labelref): Revert condition for global symbol.
18821         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
18822         (mmix_print_operand_punct_valid_p): A '+' is valid.
18823
18824 See ChangeLog.6 for earlier changes.