OSDN Git Service

* toplev.h (report_error_function): Remove.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-06-05  Gabriel Dos Reis  <gdr@codesourcery.com>
2
3         * toplev.h (report_error_function): Remove.
4
5         * diagnostic.h (location_t): New datatype.
6         (text_info): Likewise.
7         (diagnostic_info): Likewise.
8         (output_prefix): New macro.
9         (diagnostic_last_function_changed): Likewise.
10         (diagnostic_set_last_function): Likewise.
11         (diagnostic_last_module_changed): Likewise.
12         (diagnostic_set_last_module): Likewise.
13         (report_diagnostic): Now macro.
14         (diagnostic_set_info): Declare.
15
16         * diagnostic.c (report_problematic_module): Rename to
17         diagnostic_repor_current_module. 
18         (set_diagnostic_context): Remove.
19         (count_error): Rename to diagnostic_error_count.
20         (error_function_changed): Remove.
21         (record_last_error_function): Likewise.
22         (error_module_changed): Likewise.
23         (record_last_error_module): Likewise.
24         (context_as_prefix): Rename to diagnostic_build_prefix.
25         (flush_diagnostic_buffer): Rename to diagnostic_flush_buffer.
26         (diagnostic_set_info): New function.
27
28         * objc/objc-act.c: #include diagnostic.h
29         (error_with_ivar): Adjust call to count_error.
30         (warn_with_method): Likewise.
31         * objc/Make-lang.in (objc-act.o): Depend on diagnostic.h
32
33 2002-06-05  Bob Wilson  <bob.wilson@acm.org>
34
35         * config/xtensa/xtensa.c (xtensa_build_va_list): Use
36         lang_hooks.types.make_type instead of make_node; set up
37         __va_list_tag type decl.
38         (xtensa_builtin_saveregs): Remove broken use of
39         RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P
40         for saved registers; add varargs alias set.
41
42 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
43
44 config:
45         * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS.
46         * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than
47         CPP_PREDEFINES and part of CPP_SPEC.
48         i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h,
49         i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly.
50
51 Wed Jun  5 15:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>
52
53         * reg-stack.c (reg_to_stack): Do not call find_basic_blocks.
54
55 2002-06-05  Alan Modra  <amodra@bigpond.net.au>
56
57         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
58
59 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
60
61         * gengtype-yacc.y: Make sure all rules end with a semicolon.
62
63 2002-06-04  Bob Wilson  <bob.wilson@acm.org>
64
65         * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
66         typo in function prototype and include "ggc.h" header.
67
68 2002-06-04  Richard Henderson  <rth@redhat.com>
69
70         * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
71         (print_operand) ['U']: Likewise.
72         (alpha_expand_unaligned_store): Correct constants for 32-bit cross.
73         (alpha_expand_unaligned_store_words): Likewise.
74         (alpha_expand_builtin_vector_binop): Fix typo.
75         (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
76         umulh, and cix insns.
77         (one_arg_builtins): Add cix builtins.
78         (two_arg_builtins): Add ext, ins, msk, umulh builtins.
79         (alpha_expand_builtin): Fix typo in arity.
80         * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
81         (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
82         builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
83         builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
84         builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
85         builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
86         builtin_ctlz, builtin_ctpop): New.
87         * doc/extend.texi (Alpha Built-in Functions): Update.
88
89 2002-06-04  Geoffrey Keating  <geoffk@redhat.com>
90
91         * gengtype.c (write_gc_root): Don't unnecessarily prevent
92         global variable-length arrays being roots.
93
94         * config.gcc (powerpc-*-darwin*): Set config_gtfiles.
95         * configure.in (config_gtfiles): New variable.
96         (all_gtfiles): Initialise from config_gtfiles.
97         * configure: Regenerate.
98
99 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
100
101 config/i386:
102         * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
103         i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
104         mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
105         sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
106         win32.h (CPP_SPEC): Remove cpp_cpu.
107         * i386.h (TARGET_CPU_CPP_BUILTINS): Use.
108         (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!
109
110 2002-06-04  Janis Johnson  <janis187@us.ibm.com>
111
112         * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
113
114 2002-06-04  Jeff Law <law@redhat.com.
115             David Edelsohn <edelsohn@gnu.org>
116             Michael Matz <matz@kde.org>
117
118         * sched-int.h (struct deps): New field libcall_block_tail_insn.
119         * sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
120         * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
121         is set, then mark the current insn as being part of a libcall
122         scheduling group.
123         (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
124
125         * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
126         insns against the issue rate.
127
128 Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>
129
130         * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
131         * final.c (final_scan_insn): Likewise.
132         * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
133         NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
134         * haifa-sched.c (unlink_other_notes): Likeewise.
135         (reemit_notes): Likewise.
136         * print-rtl.c (print_rtx): Likewise.
137         * sched-deps (sched-analyze): Likewise.
138         * rtl.c (note_insn_name): Likewise.
139         * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
140         (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
141         (RANGE_*): Kill.
142
143 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
144
145         * varasm.c (mark_constants): Handle RTX format 'B'.
146
147 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
148
149         * cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
150         (struct cpp_context): Add traditional fields.
151         * cppmacro.c (paste_all_tokens, push_ptoken_context,
152         push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
153         * cpptrad.c (skip_comment, lex_identifier,
154         _cpp_read_logical_line_trad, scan_out_logical_line): Update.
155
156 2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>
157
158         * gbl-ctors.h: Fix formatting.
159         * gcc.c: Likewise.
160         * gccspec.c: Likewise.
161         * gcov.c: Likewise.
162         * gcov-io.h: Likewise.
163         * gcse.c: Likewise.
164         * ggc-common.c: Likewise.
165         * ggc.h: Likewise.
166         * ggc-page.c: Likewise.
167         * ggc-simple.c: Likewise.
168         * global.c: Likewise.
169         * graph.h: Likewise.
170         * gthr-dce.h: Likewise.
171         * gthr.h: Likewise.
172         * gthr-posix.h: Likewise.
173         * gthr-rtems.h: Likewise.
174         * gthr-solaris.h: Likewise.
175         * gthr-win32.h: Likewise.
176
177 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
178
179         Merge from pch-branch:
180         
181         * gengtype.h (UNION_OR_STRUCT_P): New macro.
182         * gengtype.c (write_gc_structure_fields): Use it.
183         (write_gc_root): Use it here too.
184
185         * gengtype.c (write_gc_structure_fields): Assume that lengths
186         of typenames fit into an 'int'; don't pass a size_t to "%d" in
187         printf.
188         (write_gc_marker_routine_for_structure): Likewise.
189         (write_gc_types): Likewise.
190         (write_gc_root): Likewise.
191
192         * varray.h (VARRAY_CLEAR): New.
193         (varray_clear): Prototype.
194         * varray.c (varray_clear): New.
195         * cselib.c (reg_values_old): New.
196         (used_regs_old): New.
197         (cselib_init): Use cached varrays if available to avoid
198         generating large amounts of garbage.
199         (cselib_finish): Don't throw away old varrays.
200
201         * final.c (insn_addresses_): Move out of ifdef.
202
203         * varray.c (uses_ggc): Make more varray kinds GCable.
204         * varray.h (union varray_data_tag): Let gengtype see
205         fields 'generic' and 'te'.
206         * reg-stack.c: Include gt-reg-stack.h, ggc.h.
207         (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
208         (reg_to_stack): Don't call VARRAY_FREE.
209         * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
210         (insn_addresses_): Use gengtype to mark.
211         * gengtype.c (write_gc_structure_fields): Handle arrays of generic
212         pointers; handle generic pointers in unused union fields.
213         (get_output_file_with_visibility): Include cselib.h,
214         insn-addr.h in gtype-desc.c.
215         * function.c (prologue): Use gengtype to mark.
216         (epilogue): Likewise.
217         (sibcall_epilogue): Likewise.
218         * dependence.c: Include gt-dependence.h, ggc.h.
219         (struct def_use): Use gengtype to mark.
220         (struct loop): Likewise.
221         (struct induction): Likewise.
222         (struct dependence): Likewise.
223         (def_use_chain): Likewise.
224         (dep_chain): Likewise.
225         (loop_chain): Likewise.
226         (induction_chain): Likewise.
227         (init_dependence_analysis): Don't free anything, just clear pointers.
228         (build_def_use): Use GGC to allocate def_use.
229         (add_loop): Use GGC to allocate loop.
230         (find_induction_variable): Use GGC to allocate induction.
231         (check_node_dependence): Use GGC to allocate induction, dependence.
232         (dump_node_dependence): Don't free varrays.
233         (end_dependence_analysis): Likewise.
234         * cselib.h (struct cselib_val_struct): Use gengtype to mark.
235         (struct elt_loc_list): Likewise.
236         (struct elt_list): Likewise.
237         * cselib.c: Don't include obstack.h.
238         (hash_table): Use gengtype to mark.
239         (reg_values): Use gengtype to mark.
240         (used_regs): Use gengtype to mark.
241         (cselib_obstack): Delete.
242         (cselib_startobj): Delete.
243         (empty_vals): Mark as deletable.
244         (empty_elt_lists): Mark as deletable.
245         (empty_elt_loc_lists): Mark as deletable.
246         (new_elt_list): Use GGC to allocate struct elt_list.
247         (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
248         (clear_table): Don't delete obstack; don't unnecessarily clear
249         deletable variables.
250         (new_cselib_val): Use GGC to allocate struct cselib_val.
251         (cselib_init): Don't set up obstacks.  Use GGC to allocate
252         hash table.
253         (cselib_finish): Just clear variables, don't free anything.
254         * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
255         (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
256         (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
257         (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
258         (gt-reg-stack.h): New rule.
259         (gt-dependence.h): New rule.
260         (gtype-desc.o): Add cselib.h, insn-addr.h.
261
262         * varray.c: Use only necessary headers.
263         (element_size): New.
264         (uses_ggc): New.
265         (varray_init): Take type, not size.  Use GGC if appropriate.
266         (varray_grow): Update for change to struct varray_head_tag.
267         Use GGC if appropriate.
268         * varray.h (struct const_equiv_data): Use gengtype.
269         (enum varray_data_enum): New.
270         (union varray_data_tag): Use gengtype.
271         (struct varray_head_tag): Use gengtype.  Replace size field with
272         enum varray_data_enum.
273         (varray_init): Update prototype.
274         (VARRAY_SCHED_INIT): Delete.
275         (VARRAY_*_INIT): Update for change to varray_init.
276         (VARRAY_SCHED): Delete.
277         (VARRAY_PUSH_SCHED): Delete.
278         (VARRAY_TOP_SCHED): Delete.
279         * tree.h: Update for change to length specifier.
280         * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
281         (clone_body): Likewise.
282         * ssa.h (ssa_definition): Use gengtype to mark.
283         * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
284         * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
285         * rtl.h (struct rtvec_def): Update for change to length specifier.
286         * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
287         (struct initial_value_struct): Update for change to length specifier.
288         * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
289         (ggc_add_tree_varray_root): Delete prototype.
290         (ggc_mark_rtx_varray): Delete prototype.
291         (ggc_mark_tree_varray): Delete prototype.
292         * ggc-common.c (ggc_add_rtx_varray_root): Delete.
293         (ggc_add_tree_varray_root): Delete.
294         (ggc_mark_rtx_varray): Delete.
295         (ggc_mark_tree_varray): Delete.
296         (ggc_mark_rtx_varray_ptr): Delete.
297         (ggc_mark_tree_varray_ptr): Delete.
298         * gengtype.h (enum typekind): Remove TYPE_VARRAY.
299         (create_varray): Delete prototype.
300         * gengtype.c (varrays): Delete.
301         (create_varray): Delete.
302         (adjust_field_type): Detect array of string pointers.
303         (process_gc_options): Remove code to handle varray_type option.
304         (set_gc_used_type): Remove TYPE_VARRAY case.
305         (output_escaped_param): New.
306         (write_gc_structure_fields): Use output_escaped_param on all
307         parameters.  Handle 'skip' with 'use_param' option.  Handle
308         arrays of strings.  Remove TYPE_VARRAY handling.
309         (write_gc_roots): Use boolean to detect 'length' option.
310         * gengtype-yacc.y (VARRAY_TYPE): Delete token.
311         (struct_fields): Call adjust_field_type on array fields.
312         (type): Remove VARRAY_TYPE case.
313         (type_option): Likewise.
314         * gengtype-lex.l: Don't consider varray_type a keyword.
315         * function.h: Update for change to length specifier.
316         (free_eh_status): Delete prototype.
317         * function.c (free_after_compilation): Don't call free_eh_status.
318         (reorder_blocks): Don't use VARRAY_FREE.
319         * except.c (struct eh_status): Update for change to length specifier.
320         remove varray_type specifier.
321         (free_eh_status): Delete.
322         * dwarf2out.c: Include gt-dwarf2out.h.
323         (used_rtx_varray): Use gengtype to mark, move
324         outside ifdefs.
325         (incomplete_types): Likewise.
326         (decl_scope_table): Likewise.
327         (dwarf2out_init): Don't call ggc_add_tree_varray_root.  
328         * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
329         * c-tree.h (struct lang_type): Update for change to length specifier.
330         * c-parse.in (yylexstring): Don't use VARRAY_FREE.
331         * c-objc-common.c: Include gt-c-objc-common.h.
332         (deferred_fns): Mark for gengtype.
333         (c_objc_common_init): Don't call ggc_add_tree_varray_root.
334         (expand_deferred_fns): Just set deferred_fns to 0 to free it.
335         * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
336         (gtype-desc.o): Update dependencies.
337         (dwarf2out.o): Add gt-dwarf2out.h.
338         (varray.o): Update dependencies.
339         (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
340         (gt-c-objc-common.h): New rule.
341         (gt-dwarf2out.h): New rule.
342         * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
343
344         * doc/gty.texi (GTY Options): Correct spelling.
345         (GGC Roots): Likewise.
346         * Makefile.in (TEXI_CPP_FILES): New.
347         (TEXI_GCC_FILES): New.
348         (TEXI_GCCINT_FILES): New.
349         (TEXI_CPPINT_FILES): New.
350         ($(docdir)/cpp.info): Use new macros.
351         ($(docdir)/gcc.info): Likewise.
352         ($(docdir)/gccint.info): Likewise.
353         ($(docdir)/cppinternals.info): Likewise.
354         (cpp.dvi): Likewise.
355         (gcc.dvi): Likewise.
356         (gccint.dvi): Likewise.
357         (cppinternals.dvi): Likewise.
358
359         * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
360         * doc/gccint.texi (Top): Include gty.texi.
361         * doc/gty.texi: New file.
362
363         * bitmap.c: Include ggc.h, gt-bitmap.h.
364         (bitmap_ggc_free): New.
365         (bitmap_elem_to_freelist): New.
366         (bitmap_element_free): Use bitmap_elem_to_freelist.
367         (bitmap_element_allocate): Allow use of GGC.
368         (bitmap_clear): Use bitmap_elem_to_freelist.
369         (bitmap_copy): Update for change to bitmap_element_allocate.
370         (bitmap_set_bit): Likewise.
371         (bitmap_operation): Update for changes elsewhere.
372         (bitmap_initialize): Allow to create bitmaps that will use GGC.
373         * bitmap.h (struct bitmap_element_def): Use gengtype.
374         (struct bitmap_head_def): Likewise.  Also add 'using_obstack' field.
375         (bitmap_initialize): Add extra parameter.
376         (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
377         (BITMAP_ALLOCA): Delete.
378         (BITMAP_XMALLOC): Update for change to bitmap_initialize.
379         (BITMAP_GGC_ALLOC): New.
380         * Makefile.in (gtype-desc.o): Add bitmap.h.
381         (bitmap.o): Add gt-bitmap.h, $(GGC_H).
382         (GTFILES): Add bitmap.c.
383         (gt-bitmap.h): New rule.
384         ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
385         * basic-block.h: Update for changes to bitmap_initialize.
386         * except.c (exception_handler_label_map): Move into...
387         (struct eh_status): Here.
388         (struct eh_region): Make 'aka' GCable.
389         (free_eh_status): Don't need to specially handle
390         exception_handler_label_map.
391         (add_ehl_entry): Update for changes to exception_handler_label_map.
392         (find_exception_handler_labels): Likewise.
393         (remove_exception_handler_label): Likewise.
394         (maybe_remove_eh_handler): Likewise.
395         (for_each_eh_label): Likewise.
396         (remove_eh_handler): Allocate 'aka' using GGC.
397         * gengtype.c (get_output_file_with_visibility): Add bitmap.h
398         to list of includes.
399
400         * gengtype.c (write_gc_marker_routine_for_structure): Name
401         the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.  
402         (write_gc_types): Arrange for the tests with NULL to be inlined.
403         (write_gc_roots): Update uses of procedure pointers.
404         * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
405
406         * Makefile.in (explow.o): Add dependency on gt-explow.h.
407         (sdbout.o): Add dependency on gt-sdbout.h.
408
409         * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
410         (mem_attrs_htab): Likewise.
411         (init_emit_once): Don't call ggc_add_deletable_htab.
412         * fold-const.c (size_htab): Use gengtype to clear unused entries.
413         (size_int_type_wide): Don't call ggc_add_deletable_htab.
414         * gengtype.c (finish_root_table): Add LASTNAME and TNAME
415         parameters, use them, change callers.
416         (write_gc_root): Add IF_MARKED parameter, use it, change callers.
417         (write_gc_roots): Handle 'if_marked' option.
418         (main): Don't need to call set_gc_used_type any more.
419         * ggc.h (ggc_htab_marked_p): Delete.
420         (ggc_htab_mark): Delete.
421         (struct ggc_cache_tab): New.
422         (gt_ggc_cache_rtab): New declaration.
423         * ggc-common.c (struct d_htab_root): Delete.
424         (d_htab_roots): Delete.
425         (ggc_add_deletable_htab): Delete.
426         (ggc_htab_delete): Handle new htab-deleting mechanism.
427         (ggc_mark_roots): Use new htab-deleting mechanism.
428         * tree.c (type_hash_table): Use gengtype to clear unused entries.
429         Make static.
430         (init_obstacks): Don't call ggc_add_deletable_htab.
431
432         * objc/objc-act.h (struct hashed_attribute): Use gengtype.
433         (struct hashed_entry): Likewise.
434         (nst_method_hash_list): Likewise.
435         (cls_method_hash_list): Likewise.
436         (HASH_ALLOC_LIST_SIZE): Delete.
437         (ATTR_ALLOC_LIST_SIZE): Delete.
438         * objc/objc-act.c (hash_init): Use ggc to allocate
439         nst_method_hash_list, cls_method_hash_list.
440         (hash_enter): Use ggc to allocate; allocate one entry at a time.
441         (hash_add_attr): Likewise.
442         (ggc_mark_hash_table): Delete.
443         (objc_act_parse_init): Delete.
444         (objc_init): Delete reference to objc_act_parse_init.
445         * tlink.c: Replace hash.h with hashtab.h.  Explicitly include
446         obstack.h.  Replace references to 'struct hash_table' with htab_t.
447         (struct symbol_hash_entry): Replace hash header with key field.
448         (struct file_hash_entry): Replace hash header with key field.
449         (struct demangled_hash_entry): Replace hash header with key field.
450         (hash_string_eq): New.
451         (hash_string_hash): New.
452         (symbol_hash_newfunc): Delete.
453         (symbol_hash_lookup): Modify to use htab_t.
454         (file_hash_newfunc): Delete.
455         (file_hash_lookup): Modify to use htab_t.
456         (demangled_hash_newfunc): Delete.
457         (demangled_hash_lookup): Modify to use htab_t.
458         (tlink_init): Modify to use htab_t.
459         * hash.h: Delete.
460         * hash.c: Delete.
461         * ggc.h: Delete forward structure declarations.
462         Delete prototypes for deleted functions.
463         * ggc-common.c: Don't include hash.h.
464         (ggc_add_tree_hash_table_root): Delete.
465         (ggc_mark_tree_hash_table_entry): Delete.
466         (ggc_mark_tree_hash_table): Delete.
467         (ggc_mark_tree_hash_table_ptr): Delete.
468         * gengtype.c (write_gc_structure_fields): Allow param_is option.
469         (write_gc_marker_routine_for_structure): Use visibility of
470         the parameter if there is one.
471         * function.c: Replace hash.h with hashtab.h.  Replace references
472         to 'struct hash_table *' with htab_t.
473         (struct insns_for_mem_entry): Include a plain key.
474         (fixup_var_refs_insns_with_hash): Update to use htab_t.
475         (insns_for_mem_newfunc): Delete.
476         (insns_for_mem_hash): Update to use htab_t.
477         (insns_for_mem_comp): Likewise.
478         (insns_for_mem_walk): Likewise.
479         * c-lang.c: Include ggc.h.
480         * Makefile.in (OBJS): Remove hash.o.
481         (c-lang.o): Add GGC_H.
482         (COLLECT2_OBJS): Remove hash.o.
483         (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
484         (ggc-common.o): Remove hash.h.
485         (function.o): Remove hash.h, add HASHTAB_H.
486         (genautomata.o): Remove hash.h, add HASHTAB_H.
487
488         * varasm.c (mark_const_str_htab_1): Delete.
489         (mark_const_str_htab): Delete.
490         (const_str_htab_del): Delete.
491         (const_str_htab): Use gengtype to mark.
492         (init_varasm_once): Use gengtype to mark hashtables.  Use GC to
493         allocate them.
494         * tree.c (mark_tree_hashtable_entry): Delete.
495         (mark_tree_hashtable): Delete.
496         * tree.h (mark_tree_hashtable): Delete prototype.
497         * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
498         (ggc_mark): Likewise.
499         (ggc_calloc): New.
500         (htab_create_ggc): New.
501         * ggc-common.c (ggc_calloc): New.
502         * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
503         (struct type): Add param_struct structure.
504         * gengtype.c (param_structs): New.
505         (adjust_field_type): Handle param_is option.
506         (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
507         (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
508         (write_gc_structure_fields): Add new PARAM parameter.  Update
509         callers.  Handle use_param option.  Handle TYPE_PARAM_STRUCT.
510         (write_gc_marker_routine_for_structure): Add new PARAM parameter.
511         Use it to generate function name.  Update callers.
512         (write_gc_types): Add new PARAM_STRUCTS parameter.  Update callers.
513         Process them.
514         (write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
515         option.
516         (main): Define PTR as pointer-to-scalar.  Don't specially
517         mark deferred_string or ehl_map_entry.
518         * gengtype-yacc.y (PARAM_IS): Add new token.
519         (externstatic): Use adjust_field_type.
520         (type_option): Add PARAM_IS.
521         * gengtype-lex.l: Add rule for typedef of function pointers.
522         Add rule for PARAM_IS.
523         (IWORD): Add size_t.
524         * except.c (exception_handler_label_map): Use gengtype to mark.
525         (type_to_runtime_map): Likewise.
526         (mark_ehl_map_entry): Delete.
527         (mark_ehl_map): Delete.
528         (init_eh): Use gengtype for roots; use GC to allocate hash tables.
529         (t2r_mark_1): Delete.
530         (t2r_mark): Delete.
531         * Makefile.in (gtype-desc.o): Correct dependencies.
532         (GTFILES): Add hashtab.h.
533         (genautomata.o): Actually uses hashtab.h.
534
535         * Makefile.in (stringpool.o): Add $(GGC_H).
536         (dwarf2asm.o): Likewise.
537         (GTFILES): Add hashtable.h.
538         * c-common.h (struct c_common_identifier): Use gengtype.
539         * c-decl.h (c_mark_tree): Delete.
540         * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
541         * c-tree.h (struct lang_identifier): Use gengtype.
542         (union lang_tree_node): New.
543         (c_mark_tree): Delete prototype.
544         * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy 
545         dwarf2_debug_hooks.
546         * gengtype-lex.l (IWORD): Allow 'bool'.
547         (ptr_alias): Match.
548         * gengtype-yacc.y (ALIAS): New token.
549         (type_option): New rule.
550         (option): Use type_option.
551         * gengtype.c (process_gc_options): New.
552         (set_gc_used_type): Use it.
553         (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
554         Add new variable 't' to hold the type of the field being processed.
555         Add more error checking.  Use UNION_P when looking at 'desc' option.
556         Handle language-specific structures containing other
557         language-specific structures.
558         (write_gc_types): Handle 'ptr_alias' option.
559         (main): Don't need to specially output lang_type, lang_decl, lang_id2.
560         * ggc-common.c (ggc_pending_trees): Delete.
561         (ggc_mark_roots): Don't manipulate ggc_pending_trees.
562         (ggc_mark_trees): Delete.
563         (gt_ggc_m_tree_node): Delete.
564         * ggc.h (ggc_pending_trees): Delete.
565         (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
566         * hashtable.h (ht_identifier): Use gengtype.
567         * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
568         * langhooks.h (struct lang_hooks): Delete mark_tree.
569         * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
570         anyway.
571         * system.h: Poison LANG_HOOKS_MARK_TREE.
572         * tree.c (tree_node_structure): New.
573         * tree.h (struct tree_common): Use gengtype.
574         (struct tree_int_cst): Likewise.
575         (struct tree_real_cst): Likewise.
576         (struct tree_string): Likewise.
577         (struct tree_complex): Likewise.
578         (struct tree_vector): Likewise.
579         (struct tree_identifier): Likewise.
580         (struct tree_list): Likewise.
581         (struct tree_vec): Likewise.
582         (struct tree_exp): Likewise.
583         (struct tree_block): Likewise.
584         (struct tree_type): Likewise.
585         (struct tree_decl): Likewise.
586         (enum tree_structure_enum): New.
587         (union tree_node): Use gengtype, with an alias.
588         (tree_node_structure): Prototype.
589         * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
590
591         Merge to tag pch-merge-20020430.  The LANG_HOOKS_FUNCTION_MARK
592         macro was deleted.  The LANG_HOOKS_FUNCTION_FREE macro was renamed
593         to LANG_HOOKS_FUNCTION_FINAL.
594         * Makefile.in (GTFILES): Add bitmap.h.
595         * except.c (struct eh_region): Mark field 'aka' to be skipped.
596
597         * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
598         (alpha_init_machine_status): Give proper type.
599         * Makefile.in (c-lang.o): Depend on gtype-c.h.
600         (optabs.o): Depend on gt-optabs.h.
601         (GTFILES): Add optabs.o.
602         (gt-optabs.h): Add rule.
603         * optabs.c: Include gt-optabs.h.
604
605         * gengtype.c (set_gc_used_type): Correct some errors in last change.
606         (write_gc_structure_fields): If a field which should be NULL is
607         not, abort.
608         * c-pragma.c: Move struct align_stack and variable alignment_stack
609         out from the ifdef.
610
611         * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
612         * config/xtensa/xtensa.c: Include gt-cris.h.
613         (struct machine_function): Use gengtype to mark.
614         * config/mmix/mmix.h (struct machine_function): Use gengtype
615         to mark.
616         * config/cris/t-cris: Add dependencies for gt-cris.h.
617         * config/cris/cris.c: Include gt-cris.h.
618         (struct machine_function): Use gengtype to mark.
619         * config/rs6000/rs6000.h (struct machine_function): Use gengtype
620         to mark.
621         * doc/tm.texi (Per-Function Data): Delete references to
622         mark_machine_status.
623         * config/ia64/ia64.c (ia64_override_options): Don't set
624         mark_machine_status.
625         * config/i386/i386.c (override_options): Likewise.
626         * config/d30v/d30v.c (d30v_init_expanders): Likewise.
627         * config/arm/arm.c (arm_init_expanders): Likewise.
628         * config/alpha/alpha.c (override_options): Likewise.
629         * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO. 
630         * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
631         (write_gc_structure_fields): Don't handle 'really' option.
632         Handle 'maybe_null' option.
633         (write_gc_types): Handle 'maybe_null' option.
634         * function.h (struct function): Don't use "really".
635         (mark_machine_status): Delete declaration.
636         (mark_lang_status): Delete declaration.
637         (gt_ggc_mr_machine_function): Delete prototype.
638         (gt_ggc_mr_language_function): Delete prototype.
639         * function.c (mark_machine_status): Delete.
640         (mark_lang_status): Delete.
641         (gt_ggc_mr_machine_function): Delete.
642         (gt_ggc_mr_language_function): Delete.
643         * c-tree.h (mark_c_function_context): Delete prototype.
644         * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
645         * c-decl.c (struct language_function): Rename from struct
646         c_language_function.  Update uses.  Use gengtype to mark.
647         (mark_c_function_context): Delete.
648         * c-common.h (struct c_language_function): Rename from struct
649         language_function.
650         (mark_stmt_tree): Delete prototype.
651         (c_mark_lang_decl): Delete prototype.
652         (mark_c_language_function): Delete prototype.
653         * c-common.c (mark_stmt_tree): Delete.
654         (c_mark_lang_decl): Delete.
655         (mark_c_language_function): Delete.
656
657         * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
658         (lang_bitmap): New typedef.  Use where appropriate.
659         (struct type): Add gc_used field, lang_struct field.
660         (UNION_P): New macro.
661         (new_structure): New prototype.
662         (find_structure): Remove 'pos' parameter.  Change all callers.
663         * gengtype-lex.l: Update for changes to find_structure.
664         * gengtype-yacc.y (typedef_struct): Use new_structure.
665         (yacc_ids): Suppress warning.
666         (type): Use new_structure.
667         * gengtype.c (string_type): Update for changes to struct type.
668         (find_structure): Just find a structure, don't worry about
669         creating one.
670         (new_structure): New.
671         (note_yacc_type): Use new_structure.
672         (set_gc_used_type): New.
673         (set_gc_used): New.
674         (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
675         (write_gc_types): Handle TYPE_LANG_STRUCT.
676         (write_gc_marker_routine_for_structure): New.
677         (main): Call set_gc_used.  Add some calls to set_gc_used_type
678         for places where GCC doesn't use gengtype properly yet.
679         * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
680         (gt_ggc_m_tree_node): Likewise.
681
682         * varasm.c (copy_constant): Call expand_constant if we hit
683         something we can't recognise.
684
685         * ggc-common.c (ggc_mark_rtvec_children): Delete.
686         (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
687         (lang_mark_false_label_stack): Delete.
688         * rtl.h (struct rtvec_def): Use gengtype to mark.
689         * ggc.h (ggc_mark_rtvec): Delete.
690         (gt_ggc_m_rtvec_def): Delete.
691         (ggc_mark_nonnull_tree): Delete.
692         (ggc_mark_rtvec_children): Delete prototype.
693         (lang_mark_false_label_stack): Delete declaration.
694
695         * gengtype.h (note_yacc_type): Add prototype.
696         * gengtype.c (note_yacc_type): New function.
697         * gengtype-lex.l: Add lexer support for yacc files.
698         * gengtype-yacc.y (start): Extract union from yacc files.
699         (yacc_union): New rule.
700         (yacc_typematch): New rule.
701         (yacc_ids): New rule.
702         (enum_items): Tweak for efficiency.
703         (optionseq): Likewise.
704
705         * c-common.h (struct language_function): Use gengtype.
706         (struct c_lang_decl): Likewise.
707         * c-tree.h (struct lang_decl): Likewise.
708         (struct lang_type): Likewise.
709         * c-decl.c (lang_mark_tree): Use generated marker routines to mark
710         tree language substructures.
711
712         * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
713         ggc_mark_tree.
714         * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
715
716         * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
717
718         * stmt.c (struct nesting): Add discriminator.  Use gengtype to
719         mark. Remove 'data.block.cleanup_ptr' field.
720         (struct stmt_status): Use usual technique to mark struct nesting.
721         (gt_ggc_mr_nesting_cond): Delete.
722         (gt_ggc_mr_nesting_loop): Delete.
723         (gt_ggc_mr_nesting_block): Delete.
724         (gt_ggc_mr_nesting_case_stmt): Delete.
725         (expand_start_cond): Set discriminator.
726         (expand_start_loop): Likewise.
727         (expand_start_null_loop): Likewise.
728         (expand_start_bindings_and_block): Set discriminator.  Don't set
729         deleted fields.
730         (expand_decl_cleanup): Replace 'cleanup_ptr' with
731         &thisblock->data.block.cleanups.
732         (expand_start_case): Set discriminator.
733         (expand_start_case_dummy): Set discriminator.
734
735         * ggc-callbacks.c: Remove.
736
737         * gengtype.h (struct type): Add 'u.s.bitmap' field.
738         (find_structure): Add 'pos' parameter.
739         * gengtype-lex.l: Update callers to find_structure.
740         * gengtype-yacc.y: Likewise.
741         * gengtype.c (find_structure): Allow for structures to be defined
742         in multiple language backends.
743         (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
744         (counter): Rename to gc_counter.
745         (write_gc_structure_fields): Fail when writing out fields for
746         an incomplete structure.  Ignore arrays of scalars.  Handle
747         'tree_vec' special.
748         (write_gc_types): Reset counter for each procedure written.
749
750         * stmt.c (add_case_node): Use GGC to allocate struct case_node.
751         (free_case_nodes): Delete.
752         (expand_end_case_type): Delete call to free_case_nodes.
753
754         * Makefile.in (cselib.o): Include gt-<filename>.h.
755         (gcse.o): Likewise.
756         (profile.o): Likewise.
757         (alias.o): Likewise.
758         (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
759         alphabetize backend files.
760         (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
761         * alias.c: Use gengtype for roots.
762         * c-common.h (struct stmt_tree_s): Use gengtype.
763         * c-decl.c: Use gengtype for roots.
764         * cselib.c: Use gengtype for roots.
765         * expr.c: Use gengtype for roots.
766         * fold-const.c: Use gengtype for roots.
767         * gcse.c: Use gengtype for roots.
768         * gengtype-lex.l: Handle typedefs of function types.
769         Allow for empty array bounds.
770         Allow processing to stop on initialisers.
771         * gengtype-yacc.y (externstatic): Stop processing on initialisers.
772         (semiequal): New rule.
773         * gengtype.c (create_file): Tidy output files.
774         (get_output_file_with_visibility): Fix paren warning.  Fix bug
775         involving multiple input files mapping to one output file.
776         (write_gc_structure_fields): Skip arrays of scalars.
777         (write_gc_types): Tidy output files.
778         (write_gc_root): New function.
779         (write_gc_roots): Fix bugs, add support for roots that are
780         structures.
781         * ggc-common.c (ggc_mark_rtx_ptr): Delete.
782         (ggc_mark_tree_ptr): Delete.
783         (ggc_add_rtx_root): Delete.
784         (ggc_add_tree_root): Delete.
785         (ggc_del_root): Delete.
786         * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
787         allocate struct initial_value_struct.
788         * profile.c: Use gengtype for roots.
789         * sdbout.c: Use gengtype for roots.
790         * varasm.c (mark_weak_decls): Delete unused prototype.
791         (mark_const_hash_entry): Delete unused function.
792         * config/darwin-protos.h: Use gengtype for roots.
793         (machopic_add_gc_roots): Delete.
794         * config/arm/arm.c: Use gengtype for roots.
795         * config/arm/arm.h: Use gengtype for roots.
796         * config/c4x/c4x-protos.h: Use gengtype for roots.
797         * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
798         * config/d30v/d30v-protos.h: Use gengtype for roots.
799         * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
800         * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
801         * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
802         * config/ia64/ia64-protos.h: Use gengtype for roots.
803         * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
804         * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
805         * config/m68hc11/m68hc11.c (z_reg): Make global.
806         (z_reg_qi): Make global.
807         (m68hc11_add_gc_roots): Delete.
808         * config/mcore/mcore-protos.h: Use gengtype for roots.
809         * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
810         * config/mips/mips.c (mips_add_gc_roots): Delete.
811         * config/mips/mips.h: Use gengtype for roots.
812         * config/mmix/mmix.c (override_options): Use gengtype for roots.
813         * config/mmix/mmix.h: Use gengtype for roots.
814         * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
815         * config/mn10200/mn10200.h: Use gengtype for roots.
816         * config/pa/pa.c: Use gengtype for roots, marking.
817         (struct deferred_plabel): Use GGC, gengtype.
818         (pa_add_gc_roots): Delete.
819         (mark_deferred_plabels): Delete.
820         * config/pj/pj-protos.h: Use gengtype for roots.
821         * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
822         * config/rs6000/rs6000.c: Use gengtype for roots.  Don't call
823         machopic_add_gc_roots.
824         * config/rs6000/rs6000.h: Use gengtype for roots.
825         * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
826         (gt-darwin.h): Add rule.
827         * config/sh/sh.c: Use gengtype for roots.
828         * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
829         (gt-sh.h): Add rule.
830         * config/sparc/sparc.c: Use gengtype for roots.
831         (sparc_add_gc_roots): Delete.
832         (struct ultrasparc_pipeline_state): Use GGC, gengtype.
833         (mark_ultrasparc_pipeline_state): Delete.
834         * config/sparc/sparc.h: Use gengtype for roots.
835
836         * Makefile.in (c-parse.o): Update dependencies.
837         (c-common.o): Likewise.
838         (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
839         Add dependencies for the files they generate.
840         * c-common.c: Replace ggc_add_* uses with GTY annotations.
841         * c-common.h: Likewise.
842         * c-decl.c: Likewise.
843         (gt_ggc_mp_binding_level): Delete.
844         * c-lang.c: Include gtype-c.h.
845         * c-parse.in: Replace ggc_add_* uses with GTY annotations.  Include
846         gt-c-parse.h.
847         * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
848         (gt_ggc_mp_align_stack): Delete.
849         * c-tree.h: Replace ggc_add_* uses with GTY annotations.
850         * function.c: Replace ggc_add_* uses with GTY annotations.
851         (gt_ggc_mp_function): Delete.
852         * function.h: Replace ggc_add_* uses with GTY annotations.
853         * gengtype.c (lang_names): New.
854         (NUM_BASE_FILES): New.
855         (open_base_files): Create language base files.
856         (startswith): New.
857         (get_file_basename): New.
858         (get_base_file_bitmap): New.
859         (get_output_file_with_visibility): Rename from get_output_file.
860         Add more mappings for various C/Objc filenames.
861         (finish_root_table): New.
862         (write_gc_roots): Handle dependencies and scoping properly.
863         * gengtype.h: Add prototypes for new functions.
864         * ggc-common.c (struct deletable_root): Delete.
865         (deletables): Delete.
866         (ggc_add_deletable_root): Delete.
867         (ggc_mark_roots): No need to deal with deleted functionality.
868         * ggc.h (ggc_add_deletable_root): Delete prototype.
869         * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
870         (gtype-objc.h): Add rule to create.
871         * objc/config-lang.in (gtfiles): New.
872         * objc/objc-act.c: Allocate imp_list using GGC.  Replace uses of
873         ggc_add_* with GTY markers.  Include gtype-objc.h.
874         (ggc_mark_imp_list): Delete.
875         * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
876         * objc/objc-lang.c: Random Whitespace Change.
877
878         * except.h (exception_handler_labels): Delete.
879         (get_exception_handler_labels): New.
880         * except.c (exception_handler_labels): Delete.
881         (struct eh_status): Add exception_handler_labels field.
882         (doing_eh): Don't add exception_handler_labels as root.
883         (free_eh_status): Don't need to free exception_handler_labels.
884         (get_exception_handler_labels): New.
885         (find_exception_handler_labels): Update for move of
886         exception_handler_labels.
887         (remove_exception_handler_label): Likewise.
888         * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
889         * jump.c (rebuild_jump_labels): Likewise.
890         * loop.c (find_and_verify_loops): Likewise.
891         * sched-rgn.c (is_cfg_nonregular): Likewise.
892
893         * gengtype.c (write_gc_structure_fields): Handle variable-length
894         TYPE_ARRAYs.
895
896         * varasm.c (struct weak_syms): Use GGC, gengtype.
897         (mark_weak_decls): Delete.
898         (weak_decls): Likewise.
899         (add_weak): Likewise.
900         (remove_from_pending_weak_list): Likewise.
901         (init_varasm_once): Likewise.
902
903         * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
904         (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
905         stor-layout.c, regclass.c, and lists.c.
906         Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
907         gt-regclass.h and gt-lists.h on s-gtype.
908         * emit-rtl.c: Use gengtype for roots.  Include gt-emit-rtl.h.
909         * except.c: Use gengtype for roots.
910         * explow.c: Use gengtype for roots.  Include gt-explow.h.
911         * expr.h (init_stor_layout_once): Delete prototype.
912         * function.c: Use gengtype for roots.
913         * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
914         * gengtype-yacc.y (start): Can also be an externstatic.
915         (externstatic): New production.
916         (struct_fields): Correct array bounds inversion for 2-d arrays.
917         * gengtype.c (variables): New variable.
918         (note_variable): New function.
919         (get_output_file): Include libfuncs.h into gtype-desc.c.
920         (get_output_file_name): New function.
921         (write_gc_structure_fields): Suppress warnings.
922         (write_gc_types): Make static.
923         (put_mangled_filename): New function.
924         (write_gc_roots): New function.
925         (main): Call write_gc_roots.
926         * gengtype.h (note_variable): Prototype.
927         (get_output_file_name): Prototype.
928         (write_gc_types): Delete prototype.
929         * ggc.h: Clean up unnecessary structure predefinitions.
930         (struct ggc_root_tab): Define.
931         (gt_ggc_m_rtx_def): Make function, not macro.
932         (gt_ggc_m_tree_node): Likewise.
933         * libfuncs.h: Use gengtype for roots.
934         * lists.c: Use gengtype for roots.  Include gt-lists.h.
935         (init_EXPR_INSN_LIST_cache): Delete.
936         * optabs.c: Use gengtype for roots.
937         (gt_ggc_mp_optab): Delete.
938         * optabs.h: Use gengtype for roots.
939         * regclass.c: Use gengtype for roots.  Include gt-regclass.h.
940         * rtl.h: Use gengtype for roots.
941         (init_EXPR_INSN_LIST_cache): Delete prototype.
942         * stor-layout.c: Use gengtype for roots.
943         Include gt-stor-layout.h.
944         (init_stor_layout_once): Delete.
945         * toplev.c: Use gengtype for roots.  Delete calls to deleted
946         routines.
947         * tree.c: Use gengtype for roots.
948         * tree.h: Use gengtype for roots.
949         * varasm.c: Use gengtype for roots.
950         
951         * Makefile.in (GTFILES): Add @all_gtfiles@.
952         * configure: Regenerate.
953         * configure.in: Construct all_gtfiles from the gtfiles definitions
954         in config-lang.in.
955         * gengtype-yacc.y (type): Warn about duplicate structure names.
956         * gengtype.c (get_output_file): Handle .c files in language
957         subdirectories.
958
959         * Makefile.in (GTFILES): Run gengtype on all the config files
960         and on the target .c file.
961         * except.c (mark_eh_region): Delete.
962         (init_eh_for_function): Use GGC on struct eh_status.
963         (mark_eh_status): Delete.
964         (free_eh_status): Use GGC.
965         (expand_eh_region_start): Use GGC to
966         (collect_eh_region_array): Allocate last_region_number using GGC.
967         (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
968         (remove_eh_handler): Let GGC free struct eh_region.
969         (add_call_site): Use GGC to reallocate call_site_record array.
970         * function.c (init_machine_status): Update calling sequence.
971         (mark_machine_status): Likewise.
972         (mark_lang_status): Likewise.
973         (prepare_function_start): Update init_machine_status call.
974         (mark_function_status): Delete.
975         (maybe_mark_struct_function): Delete.
976         (ggc_mark_struct_function): Delete.
977         (gt_ggc_mp_function): New.
978         (gt_ggc_mr_machine_function): New.
979         (gt_ggc_mr_language_function): New.
980         (init_function_once): Use canonical names.
981         * function.h (struct function): Use gengtype.
982         (init_machine_status): Return the structure.
983         (mark_machine_status): Take a 'void *'.
984         (mark_lang_status): Likewise.
985         * ggc-common.c (ggc_mark_trees): Use canonical name for
986         ggc_mark_struct_function.
987         * tree.h (ggc_mark_struct_function): Delete prototype.
988         * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
989         (alpha_init_machine_status): Likewise.
990         (override_options): Use canonical name for alpha_mark_machine_status.
991         * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
992         * config/arm/arm.h (struct machine_function): Use gengtype.
993         * config/arm/arm.c (arm_mark_machine_status): Delete.
994         (arm_init_machine_status): Update calling sequence.
995         (arm_init_expanders): Use canonical name for arm_mark_machine_status.
996         * config/cris/cris.c (cris_init_machine_status): Update 
997         calling sequence.
998         * config/d30v/d30v.h (struct machine_function): Use gengtype.
999         * config/d30v/d30v.c (d30v_init_machine_status): Update 
1000         calling sequence.
1001         (d30v_mark_machine_status): Delete.
1002         * config/i386/i386.c: Include gt-i386.h.
1003         (struct machine_function): Use gengtype.
1004         (ix86_init_machine_status): Update calling sequence.
1005         (ix86_mark_machine_status): Delete.
1006         (override_options): Use canonical namke for ix86_mark_machine_status.
1007         * config/ia64/ia64.h (struct machine_function): Use gengtype.
1008         * config/ia64/ia64.c (ia64_init_machine_status): Update calling 
1009         sequence.
1010         (ia64_mark_machine_status): Delete.
1011         (ia64_override_options): Use canonical name for 
1012         ia64_mark_machine_status.
1013         * config/mmix/mmix.c (mmix_init_machine_status): Update calling 
1014         sequence.
1015         * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
1016         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
1017         * gengtype.c (get_output_file): Fix warning.
1018         (main): Add prototype to suppress warning.
1019         * tree.c: Remove tree_hash_mark prototype.
1020
1021         * tree.h (init_stmt): Delete prototype.
1022         * toplev.c (lang_independent_init): Don't call init_stmt.
1023         * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
1024         (stmt_obstack): Delete.
1025         (POPSTACK): No need to free 'struct nesting'.
1026         (gt_ggc_mr_nesting_cond): Use canonical names.
1027         (gt_ggc_mr_nesting_loop): Use canonical names.
1028         (gt_ggc_mr_nesting_block): Use canonical names.
1029         (gt_ggc_mr_nesting_case_stmt): Use canonical names.
1030         (mark_stmt_status): Delete.
1031         (init_stmt): Delete.
1032         (clear_last_expr): Clear both last_expr_type and last_expr_value.
1033         Use it everywhere that last_expr_type was cleared.
1034         * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
1035         (zap_lists): Delete.
1036         * ggc.h (ggc_add_deletable_root): Prototype.
1037         (mark_stmt_status): Remove prototype.
1038         * ggc-common.c (ggc_add_deletable_root): New.
1039         (ggc_mark_roots): Handle deletable roots.
1040         * function.c (ggc_mark_struct_function): Use canonical name
1041         for mark_stmt_status.
1042         * emit-rtl.c (free_sequence_stack): New.
1043         (start_sequence): Use a freelist for sequences.
1044         (end_sequence): Likewise.
1045         (init_emit_once): Add free_sequence_stack as a deleteable root.
1046         * c-pragma.c Include gt-c-pragma.h.
1047         (struct align_stack): Use gengtype.
1048         (push_alignment): Use GGC for struct align_stack.
1049         (mark_align_stack): Delete.
1050         (gt_ggc_mp_align_stack): New.
1051         (init_pragma): Use canonical name for mark_align_stack.
1052         * c-decl.c: Include gt-c-decl.h.
1053         (struct binding_level): Use gengtype.
1054         (make_binding_level): Use GGC; handle the freelist here.
1055         (pop_binding_level): New.
1056         (pushlevel): Move code into make_binding_level.
1057         (push_label_level): Likewise.
1058         (poplevel): Move code into pop_binding_level.
1059         (pop_label_level): Likewise.
1060         (mark_binding_level): Delete.
1061         (gt_ggc_mp_binding_level): New.
1062         (c_init_decl_processing): Use canonical name for mark_binding_level.
1063         Add free_binding_level as deletable root.
1064         (mark_c_function_context): Use canonical name for mark_binding_level.
1065         * Makefile.in (c-decl.o): Add gt-c-decl.h.
1066         (c-pragma.o): Add gt-c-pragma.h.
1067         (GTFILES): Add c-decl.c and c-pragma.c.
1068         (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
1069
1070         * tree.c (struct type_hash): Use gengtype.
1071         (init_obstacks): Use canonical name for type_hash_mark.
1072         (type_hash_mark): Delete.
1073         Include gt-tree.h.
1074         * rtl.h (struct mem_attrs): Use gengtype.
1075         * optabs.h (struct optab): Use gengtype.
1076         * optabs.c (expand_binop): Squish signed/unsigned warning.
1077         (mark_optab): Make local, use canonical name, use autogenerated
1078         marker procedure.
1079         (init_optabs): Use canonical name for mark_optab.
1080         (new_optab): Use GGC to allocate optabs.
1081         * ggc.h: Delete mark_optab prototype.
1082         * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
1083         mem_attrs marker procedure.
1084         * gengtype.c (get_output_file): Include headers in gtype-desc.c
1085         explicitly rather than deducing them from file names.
1086         (write_gc_structure_fields): Handle arrays of structures.
1087         (main): Return non-zero exit code if errors occur during output.
1088         * emit-rtl.c (mem_attrs_mark): Delete.
1089         (init_emit_once): Use canonical name for mem_attrs marker procedure.
1090         * Makefile.in (gtype-desc.o): Explicitly name dependencies.
1091         (tree.o): Depend on gt-tree.h.
1092         (GTFILES): Add rtl.h, optabs.h, tree.c.
1093         (gt-tree.h): Add it to s-gtype rule.
1094
1095         * .cvsignore: Ignore gengtype flex/bison generated files.
1096         * Makefile.in (GGC_H): Add gtype-desc.h.
1097         (OBJS): Add gtype-desc.o.
1098         (GEN): Add gengtype.
1099         (STAGESTUFF): Add gengtype.
1100         (varasm.o): Add gt-varasm.h.
1101         (stmt.o): Add gt-stmt.h.
1102         (except.o): Add gt-except.h.
1103         (integrate.o): Add gt-integrate.h.
1104         (GTFILES): New.
1105         Add new rules for new files.
1106         * configure: Regenerate.
1107         * configure.in: Correct defaults.h paths.
1108         * emit-rtl.c (mark_sequence_stack): Delete.
1109         (mark_emit_status): Delete.
1110         (start_sequence): Allocate sequence structures using GGC.
1111         (end_sequence): Allocate sequence structures using GGC.
1112         * except.c: Use gengtype for various structures.  Include
1113         gt-except.h.
1114         * expr.c (mark_expr_status): Delete.
1115         * function.c: Use gengtype for various structures.  Include
1116         gt-function.h.
1117         (mark_function_status): Use standard gt_ggc names for marker functions.
1118         (ggc_mark_struct_function): Likewise.
1119         * function.h: Use gengtype for various structures.
1120         * gengtype-lex.l: New file.
1121         * gengtype-yacc.y: New file.
1122         * gengtype.c: New file.
1123         * gengtype.h: New file.
1124         * ggc.h: Include gtype-desc.h.  Alias some marker procedures to
1125         the standard names.  Remove some now-unnecessary prototypes.
1126         * integrate.c: Use gengtype for various structures.  Include
1127         gt-integrate.h.
1128         (mark_hard_reg_initial_vals): Delete.
1129         * integrate.h (mark_hard_reg_initial_vals): Delete.
1130         * stmt.c: Use gengtype for various structures.  Include
1131         gt-stmt.h.
1132         (mark_case_node): Delete.
1133         (mark_goto_fixup): Delete.
1134         (mark_stmt_status): Use standard gt_ggc names for marker functions.
1135         * system.h: Define GTY to empty.   In flex/bison files,
1136         don't poison malloc or realloc, instead just define them to
1137         xmalloc and xrealloc.
1138         * varasm.c: Use gengtype for various structures.  Include
1139         gt-varasm.h.  Use standard gt_ggc names for marker functions.
1140         (mark_pool_constant): Delete.
1141         (mark_varasm_status): Delete.
1142         (decode_rtx_const): #if 0 out non-typesafe hack.
1143
1144         * function.h (free_lang_status): Mark as obsolete.
1145         * function.c (free_lang_status): Mark as obsolete.
1146         * c-decl.c (push_c_function_context): Use GC to allocate and free
1147         struct language_function.
1148         (pop_c_function_context): Likewise.
1149         * c-common.c (mark_c_language_function): Mark struct
1150         language_function.
1151
1152         * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
1153         Document that the machine_function structures must be allocated
1154         using GC.  Update mark_machine_status documentation.
1155         * function.h: Don't declare free_machine_status.
1156         * function.c (free_machine_status): Don't define. 
1157         (free_after_compilation): Don't call free_machine_status.
1158         (ggc_mark_struct_function): Mark f->machine.  Call
1159         mark_machine_status only on non-NULL pointers.
1160         * system.h: Poison free_machine_status.
1161         * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
1162         struct machine_function.
1163         (xtensa_free_machine_status): Delete.
1164         (override_options): Don't set free_machine_status.
1165         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
1166         free_machine_status.
1167         (rs6000_init_machine_status): Use GC on struct machine_function.
1168         (rs6000_free_machine_status): Delete.
1169         * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
1170         machine_function.
1171         (ia64_mark_machine_status): Likewise.
1172         (ia64_free_machine_status): Delete.
1173         (ia64_override_options): Don't set free_machine_status.
1174         * config/i386/i386.c (override_options): Don't set
1175         free_machine_status.
1176         (ix86_init_machine_status): Use GC on struct machine_function.
1177         (ix86_mark_machine_status): Likewise.
1178         (ix86_free_machine_status): Delete.
1179         * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
1180         machine_function.
1181         (d30v_mark_machine_status): Likewise.
1182         (d30v_free_machine_status): Delete.
1183         (d30v_init_expanders): Don't set free_machine_status.
1184         * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
1185         machine_function.
1186         (arm_init_machine_status): Likewise.
1187         (arm_free_machine_status): Delete.
1188         (arm_init_expanders): Don't set free_machine_status.
1189         * config/alpha/alpha.c (override_options): Don't set
1190         free_machine_status.
1191         (alpha_init_machine_status): Use GC on struct machine_function.
1192         (alpha_mark_machine_status): Likewise.
1193         (alpha_free_machine_status): Delete.
1194
1195         * varasm.c (compare_constant): Fix typo.
1196
1197         * varasm.c: Don't include obstack.h.
1198         (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
1199         (struct rtx_const): Give substructures names, improve formatting.
1200         (struct constant_descriptor): Delete.
1201         (struct constant_descriptor_tree): New, based on constant_descriptor.
1202         (const_hash_table): Is a hash table of trees.
1203         (mark_const_hash_entry): Is used for hashes of trees.  Mark
1204         constant_descriptor_tree structure.
1205         (mark_const_str_htab_1): Mark deferred_string structure.
1206         (compare_constant): Rewrite to compare trees.
1207         (compare_constant_1): Delete.
1208         (record_constant): Delete.
1209         (record_constant_1): Delete.
1210         (output_constant_def): Use struct constant_descriptor_tree.
1211         Don't duplicate trees twice.
1212         (struct constant_descriptor_rtx): New.
1213         (struct pool_constant): Used for rtx constants.
1214         (init_varasm_status): Update for change to struct varasm_status.
1215         (mark_varasm_status): Likewise.
1216         (free_varasm_status): Delete.
1217         (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
1218         (record_constant_rtx): Likewise.
1219         (mem_for_const_double): Update to use struct constant_descriptor_rtx.
1220         (force_const_mem): Likewise.
1221         * Makefile.in (varasm.o): Doesn't depend on obstack.h.
1222         * function.c (free_after_compilation): Don't use free_varasm_status.
1223         * function.h: Don't prototype free_varasm_status.
1224
1225         * ggc-common.c (ggc_realloc): Handle X being NULL.
1226
1227         * ggc-common.c (ggc_realloc): New function.
1228         * ggc.h: Prototype it.
1229         * emit-rtl.c (free_emit_status): Delete.
1230         (init_emit): Allocate emit subarrays using GC.
1231         (gen_reg_rtx): Reallocate subarrays using GC.
1232         (init_emit): Use GC to allocate 'struct emit_status' and its
1233         subarrays.
1234         (mark_emit_status): Mark structure and its subarrays.
1235         * stmt.c (free_stmt_status): Delete.
1236         * expr.c (free_expr_status): Delete.
1237         * function.h: Remove prototypes for deleted functions.
1238         * function.c (free_after_compilation): Don't use deleted functions.
1239         Don't call free() on x_parm_reg_stack_loc.
1240         (free_after_parsing): Don't use free_stmt_status.
1241         (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
1242         (mark_function_status): Mark x_parm_reg_stack_loc.
1243
1244         * varasm.c (init_varasm_status): Use GC to allocate
1245         'struct varasm_status' and its fields x_const_rtx_hash_table
1246         and x_const_rtx_sym_hash_table.
1247         (mark_varasm_status): Mark them.
1248         (free_varasm_status): Use GC to free them.
1249         * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
1250         (mark_expr_status): Mark the structure itself.
1251         (free_expr_status): Use GC to free the structure.
1252         * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
1253         (mark_stmt_status): Mark the 'struct stmt_status' itself.
1254         (init_stmt_for_function): Allocate the structure for GC.
1255
1256         * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
1257         (equate_type_number_to_die): Likewise.
1258         * tree.h (TYPE_SYMTAB_DIE): New macro.
1259         (struct die_struct): Predeclare.
1260         (struct tree_type): Add field symtab.die.   Add a tag
1261         to the union type of field symtab.
1262
1263         * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
1264         'struct rtvec_def *', not 'struct rtvec_def'.
1265
1266         * function.h (original_arg_vector): Make a real rtvec.
1267         * function.c (ggc_mark_struct_function): Adjust.
1268         * integrate.c (expand_inline_function): Adjust.
1269
1270 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
1271
1272         * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
1273         (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
1274         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
1275         (TARGET_VERSION_CPU): Define according to the
1276         default target.
1277         (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
1278         TARGET_VERSION_CPU.
1279         (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
1280         if TARGET_SHMEDIA64.
1281         (LINK_DEFAULT_CPU_EMUL): Define according to the
1282         default target.
1283         (SUBTARGET_LINK_EMUL_SUFFIX): Define.
1284         (SUBTARGET_LINK_SPEC): Define.
1285         (LINK_SPEC): Use SH_LINK_SPEC.
1286         (ASM_SPEC): Remove.
1287         (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
1288         (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
1289         and TARGET_SHMEDIA64 which abort, for now.
1290         * config/sh/t-netbsd-sh5: New file.
1291         * config/sh/t-netbsd-sh5-32: New file.
1292         * config/sh/t-netbsd-sh5-64: New file.
1293
1294 2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
1295             Richard Henderson  <rth@redhat.com>
1296
1297         * config/alpha/alpha.c (reg_or_const_int_operand): New.
1298         (some_operand, input_operand): Accept CONST_VECTOR.
1299         (alpha_extra_constraint): Add 'W'.
1300         (alpha_expand_zap_mask): New.
1301         (alpha_expand_builtin_vector_binop): New.
1302         (enum alpha_builtin): New.
1303         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
1304         (alpha_init_builtins, alpha_expand_builtin): New.
1305         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
1306         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
1307         (PREDICATE_CODES): Update.
1308         * config/alpha/alpha-protos.h: Update.
1309         * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
1310         UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
1311         (movv8qi, movv8qi_fix, movv8qi_nofix): New.
1312         (movv4hi, movv4hi_fix, movv4hi_nofix): New.
1313         (movv2si, movv2si_fix, movv2si_nofix): New.
1314         (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
1315         (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
1316         (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
1317         builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
1318         builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
1319         builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
1320         builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
1321         pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
1322         builtin_unpkbw, unpkbw): New.
1323         * doc/extend.texi (Alpha Built-in Functions): New.
1324
1325 2002-06-03  Richard Henderson  <rth@redhat.com>
1326
1327         * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
1328         USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
1329
1330 2002-06-03  Richard Henderson  <rth@redhat.com>
1331
1332         * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
1333
1334         * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
1335         (const0_operand): New.
1336         (reg_or_fp0_operand, fp0_operand): Remove.
1337         * config/alpha/alpha.h (PREDICATE_CODES): Update.
1338         * config/alpha/alpha-protos.h: Update.
1339         * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
1340         and fp0_operand with reg_or_0_operand and const0_operand.
1341
1342 2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
1343
1344         * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
1345
1346 2002-06-03  Roger Sayle  <roger@eyesopen.com>
1347
1348         * gcse.c (cprop_jump): Use single_set to get the pattern
1349         from the setcc argument.
1350
1351 2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>
1352
1353         * diagnostic.h (diagnostic_count): Move from output_buffer to 
1354         diagnostic_context.
1355         (diagnostic_kind_count): Adjust definition.
1356
1357 Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
1358
1359         * except.c (except.c): Do not rebuild CFG.
1360         * toplev.c (rest_of_compilation): Recompute CFG after sibcall
1361         optimization.
1362
1363 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
1364
1365         * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
1366         * toplev.c: Include cfglahout.h
1367         * Makefile.in (toplev.c): Add dependnecy.
1368
1369 2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>
1370
1371         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
1372         (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
1373         (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
1374
1375 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
1376
1377         * config/ns32k/netbsd.h: Update copyright years.
1378         (TARGET_OS_CPP_BUILTINS): Define.
1379         (CPP_PREDEFINES): Remove.
1380         * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
1381         (TARGET_CPU_CPP_BUILTINS): Define.
1382
1383 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1384
1385         * emit-rtl.c: Fix formatting.
1386         * errors.h: Likewise.
1387         * except.c: Likewise.
1388         * explow.c: Likewise.
1389         * expmed.c: Likewise.
1390         * expr.c: Likewise.
1391         * expr.h: Likewise.
1392
1393 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1394
1395         * config/h8300/elf.h: Fix formatting.
1396         * config/h8300/rtems.h: Likewise.
1397
1398 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
1399
1400         * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
1401
1402 2002-06-02  Tom Tromey  <tromey@redhat.com>
1403
1404         * fixinc/fixincl.x: Rebuilt.
1405         * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
1406
1407 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1408
1409 config/i370:
1410         * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
1411         * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
1412         * mvs.h: Similarly.
1413         * oe.h: Similarly.
1414
1415 Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
1416
1417         * final.c (final):  Allow notes to not have computed addresses;
1418         kill no longer needed STACK_REGS ifdef.
1419
1420 2002-06-02  Richard Henderson  <rth@redhat.com>
1421
1422         * gcse.c (bypass_conditional_jumps): Fix typo last change.
1423
1424 Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
1425
1426         * loop.c (emit_prefetch_instructions): Properly place the address
1427         computation.
1428
1429 Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
1430
1431         * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
1432         (set_block_for_insn): Turn into macro.
1433         * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
1434         * cfglayout.c (insn_scopes): Kill.
1435         (scope_to_insns_initialize): Do not use insn_scopes.
1436         (scope_to_insns_finalize): Likewise.
1437         (duplicate_insn_chain): Likewise.
1438         (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
1439         * cfgrtl.c (basic_block_for_insn): Kill.
1440         (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
1441         (create_basic_block_structure): Use reorder_insns.
1442         (compute_bb_for_insn): Do not use basic_block_for_insn.
1443         (merge_blocks_nomove): Likewise.
1444         (update_bb_for_insn): Likewise.
1445         (verify_flow_info): Likewise.
1446         (set_block_for_insn): Kill.
1447         * combine.c (try_combine): Update gen_rtx_INSN call.
1448         * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
1449         (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
1450         scopes and BBs.
1451         (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
1452         (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
1453         Clear BB.
1454         (emit_insns_after): Simplify.
1455         (emit_copy_of_insn_after): Copy scope.
1456         * final.c (final_start_function): Lower scopes.
1457         * flow.c (check_function_return_warnings): Do not rely on deleted insn.
1458         * integrate.c (copy_insn_list): Cope scopes.
1459         * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
1460         * loop.c (loop_optimize): Do not care block notes.
1461         * print-rtl.c (print_rtx): Print BB.
1462         * recog.c (apply_change_group): Simplify.
1463         * rtl.c (copy_rtx): Handle 'B'.
1464         * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
1465         * rtl.h (Field accessors): Update indexes.
1466         * sched-ebb.c (schedule_ebbs): Do not lower notes.
1467         * sched-rgn.c (schedule_insns): Likewise.
1468         * toplev.c (rest_of_compilation): Lower notes.
1469         * unroll.c (unroll_loop): Do not care scoping notes.
1470         (copy_loop_body): Copy scopes.
1471
1472 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1473
1474 config/h8300:
1475         * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
1476         SUBTARGET_SPEC.
1477         * rtems.h: Similarly.
1478         * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
1479         EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
1480         (TARGET_CPU_CPP_BUILTINS): Use.
1481
1482 2002-06-02  Richard Henderson  <rth@redhat.com>
1483
1484         * alias.c: Include target.h.
1485         (mark_constant_function): Use targetm.binds_local_p instead
1486         of checking TREE_PUBLIC ourselves.
1487         * Makefile.in (alias.o): Add TARGET_H.
1488
1489 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1490
1491         * c-lex.c: Update copyright and file description.
1492
1493 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1494
1495         * config/fr30/fr30.h: Update to new CPP macros.
1496
1497 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1498
1499         * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
1500
1501 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1502             Zack Weinberg <zack@codesourcery.com>
1503
1504         * c-common.c (c_common_init): Override cpplib's default
1505         warn_long_long setting.
1506         * c-lex.c (lex_number): Replace with interpret_integer,
1507         interpret_float, narrowest_unsigned_type and
1508         narrowest_signed_type, taking advantage of the new
1509         cpplib functionality.
1510         * cpperror.c (_cpp_begin_message): If a warning is turned
1511         into an error, avoid printing "warning:".
1512         * cppexp.c (cpp_num_sign_extend): New.
1513         * cppinit.c: Update comment.
1514         * cpplib.h (cpp_num_sign_extend): New.
1515         * tree.h: Update comment.
1516
1517 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
1518
1519         * diagnostic.h (struct diagnostic_context):  Add new member
1520         internal_error. 
1521         (internal_error_function): Remove declaration.
1522         * diagnostic.c (internal_error_function): Remove definition..
1523         (internal_error): Adjust use.
1524
1525 2002-06-02  Richard Henderson  <rth@redhat.com>
1526
1527         * rtl.h (CC0_P): New.
1528         * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
1529         (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
1530         (bypass_block): Save old dest block for dump text.
1531         (bypass_conditional_jumps): Allow any mode register; use CC0_P.
1532         Allow only true SET insns, not single_set.
1533
1534 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
1535
1536         * diagnostic.c (diagnostic_finish): Rename to output_flush.
1537         (clear_disgnostic_info): Rename to output_clear_data.  Use false
1538         instead of 0 for boolean value.
1539         Adjust function call throughout.
1540
1541 Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
1542
1543         * cfgrtl.c (commit_one_edge_insertion): Fix warning.
1544         * gcse.c (bypass_conditional_jumps): CSE out single_set call.
1545
1546 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1547
1548         * d30v.h (CPP_PREDEFINES): Replace with
1549         (TARGET_CPU_CPP_BUILTINS): New.
1550
1551 2002-06-02  Roger Sayle  <roger@eyesopen.com>
1552
1553         * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
1554
1555 Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
1556
1557         * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
1558
1559 2002-06-02  Richard Henderson  <rth@redhat.com>
1560
1561         * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
1562
1563 2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1564
1565         Support for C++ constructors/destructors.
1566         * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
1567         instead of looping if main() returns.
1568         (asm_file_start): Output global symbols that cause .data and .bss
1569         initialization code to be linked in, unconditionally for now.
1570         (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
1571         * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
1572         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
1573         (LIBSTDCXX): New.
1574         * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
1575         (__tablejump__): New.
1576         (__do_copy_data, __do_clear_bss): New.
1577         (__do_global_ctors, __do_global_dtors): New.
1578         * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
1579         _ctors, _dtors.
1580
1581 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1582
1583         * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
1584         (CPP_SPEC, CPP_PREDEFINES): Kill.
1585         * c4x/rtems.h (CPP_PREDEFINES): Kill.
1586         (TARGET_OS_CPP_BUILTINS): New.
1587
1588 Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>
1589
1590         * Makefile.in (tracer.o): New.
1591         * params.def (TRACER_*): New options.
1592         * rtl.h (tracer): Declare.
1593         * timevar.def (TV_TRACER): New.
1594         * toplev.c (dump_file_index): Add DFI_tracer.
1595         (dump_file_info): Add tracer.
1596         (flag_tracer): New.
1597         (lang_indepdenent_options): Add tracer.
1598         (rest_of_compilation): Call tracer.
1599         * tracer.c: New file.
1600         * invoke.texi (-ftracer): Document.
1601         (--param tracer-*): Document.
1602
1603 2002-06-01  Daniel Berlin  <dberlin@dberlin.org>
1604
1605         * tree-inline.c (expand_call_inline): Make the statement
1606         expression we generate have a COMPOUND_STMT.    
1607
1608 2002-06-01  Roger Sayle  <roger@eyesopen.com>
1609
1610         * gcse.c (cprop_cc0_jump): Function deleted.
1611         (cprop_jump): Take an additional argument which is the possibly
1612         NULL cc setting insn immediately before the conditional jump.
1613         When a MODE_CC set is present, substitute it into the JUMP_INSN
1614         before attempting the constant propagation.
1615         (cprop_insn):  Recognize cc setters followed by conditional jumps
1616         as a special case.   Use cprop_jump instead of cprop_cc0_jump.
1617         (cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
1618         (find_bypass_set): New function based upon find_avail_set used by
1619         cprop, but finds constant expressions available at the end of
1620         basic blocks.
1621         (bypass_block): New function.  Given a basic block that begins
1622         with a conditional jump and multiple incoming edges, perform
1623         the jump bypass optimization.
1624         (bypass_conditional_jumps): New function.  Call bypass_block with
1625         each suitable basic block in the CFG using a simple single pass.
1626
1627 2002-06-01  Roger Sayle  <roger@eyesopen.com>
1628
1629         * tree.c (real_minus_onep): New function to test for -1.0.
1630         * fold-const.c (fold) [MULT_EXPR]:  Optimize -1.0*x into -x.
1631
1632 2002-06-01  Roger Sayle  <roger@eyesopen.com>
1633
1634         * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
1635         and "!p && !q" into "(p|q) == 0" under suitable conditions.
1636
1637 2002-06-01  Andreas Jaeger  <aj@suse.de>
1638
1639         * cppexp.c (cpp_classify_number): Cast precission to int for
1640         correct printf format.
1641
1642 2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1643
1644         * config/avr/avr.c (avr_mcu_types): Remove devices that were once
1645         expected, but don't really exist: atmega83, atmega85, attiny10.
1646         * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
1647         emulations for all devices.
1648         (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
1649         * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
1650
1651 2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>
1652
1653         * config/h8300/h8300-protos.h: Add a prototype for
1654         h8300_shift_needs_scratch_p.
1655         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
1656         * config/h8300/h8300.h (OK_FOR_R): New.
1657         (OK_FOR_S): Likewise.
1658         (OK_FOR_T): Likewise.
1659         (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
1660         * config/h8300/h8300.md (anonymous shift patterns): Use
1661         constraints R, S, and T.
1662
1663 Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1664
1665         * basic-block.h (struct basic_block_def): New field loop_father.
1666         (BB_VISITED): New flag.
1667         (struct loop): New field pred, removed field shared.
1668         (struct loops): New field parray.
1669         (LOOP_EXITS_DOMS): Removed.
1670         (flow_loop_tree_node_add, flow_loop_tree_node_remove,
1671         flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
1672         dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
1673         add_bb_to_loop, remove_bb_from_loops, find_common_loop,
1674         verify_loop_structure): Declare.
1675         * cfg.c (entry_exit_blocks): Initialize loop_father field.
1676         * cfganal.c (dfs_enumerate_from): New function.
1677         * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
1678         (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
1679         flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
1680         flow_loop_dump, flow_loops_dump, flow_loops_free,
1681         flow_loop_tree_node_add, flow_loop_level_compute,
1682         flow_loops_level_compute, flow_loop_scan, flow_loops_update,
1683         flow_loop_outside_edge_p): Modified for new infrastructure.
1684         (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
1685         redirect_edge_with_latch_update, flow_loop_free): New static functions.
1686         (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
1687         get_loop_body, add_bb_to_loop, remove_bb_from_loops,
1688         find_common_loop, verify_loop_structure, loop_latch_edge,
1689         loop_preheader_edge): New functions.
1690         (flow_loops_cfg_dump): Do not show dominators, as this information
1691         does not remain up to date long.
1692         (flow_loops_find): Store results in new format.
1693         * predict.c (propagate_freq, estimate_probability,
1694         estimate_loops_at_level, estimate_bb_frequencies): Use new loop
1695         infrastructure.
1696
1697 2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>
1698
1699         * except.c (nothrow_function_p): Walk epilogue delay list
1700         checking the insn, not the chain for potential throws.
1701
1702 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
1703
1704         * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
1705         (install): Refer to install-cpp directly.
1706         (uninstall-cpp): Folded into uninstall rule.
1707         * configure.in: Delete all code relating to --disable-cpp.
1708         * configure: Regenerate.
1709         * config/t-install-cpp: Delete.
1710
1711 2002-05-31  Richard Henderson  <rth@redhat.com>
1712
1713         * configure.in (HAVE_AS_TLS): Add alpha tests.
1714         * configure: Rebuild.
1715         * config/alpha/alpha.c (TARGET_AS_TLS): New.
1716         (alpha_tls_size, alpha_tls_size_string): New.
1717         (overide_options): Set it.  Always install machine_status hooks.
1718         (input_operand): Accept got tls predicates.
1719         (local_symbol_p): Merge into ...
1720         (local_symbolic_operand): ... here.  Reject tls symbols.
1721         (global_symbolic_operand): Likewise.
1722         (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
1723         (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
1724         (tp16_symbolic_operand, tp32_symbolic_operand): New.
1725         (gottp_symbolic_operand, tls_symbolic_operand_type): New.
1726         (alpha_encode_section_info): Handle TLS symbols.
1727         (alpha_strip_name_encoding): Likewise.
1728         (alpha_legitimate_address_p): Likewise.
1729         (alpha_legitimize_address): Likewise.
1730         (alpha_expand_mov): Early exit to avoid nop moves.
1731         (struct machine_function): Move from unicosmk.h.  Add some_ld_name.
1732         (alpha_init_machine_status, alpha_mark_machine_status,
1733         alpha_free_machine_status): Always define.
1734         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
1735         (print_operand, print_operand_address): Add TLS relocs.
1736         * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
1737         (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
1738         (TARGET_SWITCHES): Add -mtls-kernel.
1739         (alpha_tls_size, alpha_tls_size_string): New.
1740         (TARGET_OPTIONS): Add -mtls-size=.
1741         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
1742         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
1743         (ASM_OUTPUT_LABELREF): Skip %.
1744         (PRINT_OPERAND_PUNCT_VALID_P): Add &.
1745         (PREDICATE_CODES): Update.
1746         * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
1747         UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
1748         UNSPEC_TP, UNSPECV_SET_TP): New.
1749         (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
1750         adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
1751         set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
1752         movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
1753         (call_value_osf_2_er): Accept anything as op4.
1754         * config/alpha/alpha-protos.h: Update.
1755         * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
1756
1757 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
1758
1759         * cppinit.c (append_include_chain): Always pay attention to
1760         cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
1761         marker on argument.
1762
1763 2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1764
1765         * target.h: Fix formatting.
1766         * timevar.h: Likewise.
1767         * tlink.c: Likewise.
1768         * toplev.c: Likewise.
1769         * toplev.h: Likewise.
1770         * tree.c: Likewise.
1771         * tree-dump.h: Likewise.
1772         * tree.h: Likewise.
1773         * tree-inline.h: Likewise.
1774         * unroll.c: Likewise.
1775         * unwind-dw2.c: Likewise.
1776         * unwind-dw2-fde.c: Likewise.
1777         * unwind-dw2-fde-glibc.c: Likewise.
1778         * unwind-dw2-fde.h: Likewise.
1779         * unwind.h: Likewise.
1780         * unwind-sjlj.c: Likewise.
1781         * varasm.c: Likewise.
1782         * varray.h: Likewise.
1783         * vmsdbg.h: Likewise.
1784         * vmsdbgout.c: Likewise.
1785         * xcoffout.h: Likewise.
1786
1787 2002-05-31  Igor Shevlyakov <igor@microunity.com>
1788
1789         * expr.c (compare_from_rtx): Generate comparison between op0 and op1
1790         rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
1791
1792 2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
1793
1794         * gcc.c (cpp_unique_options): Remove "-d" options.
1795         (cpp_debug_options): New spec string.
1796         (default_compilers): Use it.
1797         * objc/lang-specs.h: Likewise.
1798
1799 2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
1800
1801         * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
1802         BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
1803         * gcc/mklibgcc.in: Likewise.
1804         * gcc/config/arc/t-arc: Likewise.
1805         * gcc/configure.in: Likewise.
1806         * gcc/configure: Regenerate.
1807
1808 2002-05-31  Stan Shebs  <shebs@apple.com>
1809             Turly O'Connor  <turly@apple.com>
1810
1811         * c-decl.c (struct binding_level): Change int field n_incomplete
1812         to tree list incomplete_list.
1813         (clear_binding_level): Init field with NULL.
1814         (pushdecl): Add incomplete type to list.
1815         (mark_binding_level): Mark the incomplete list.
1816         (finish_struct): Scan the incomplete list for types instead
1817         of all decls in the current binding level.
1818
1819 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1820
1821         * pa.c (output_millicode_call): Add missing '%' characters.
1822         (output_call): Likewise.
1823
1824 2002-05-31  David Edelsohn  <edelsohn@gnu.org>
1825
1826         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
1827         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1828
1829 2002-05-31  Alan Lehotsky <apl@alum.mit.edu>
1830
1831         * varasm.c (mark_constant_pool): Walk epilogue delay list
1832         checking the insn, not the chain for potential constants.
1833
1834 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
1835
1836         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
1837
1838 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
1839
1840         * i386.c (classify_argument): Properly handle base types.
1841
1842         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
1843         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
1844         registers.
1845
1846 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
1847
1848         * gcse.c (gcse_emit_move_after): New.
1849         (pre_delete, hoist_store): Use it.
1850
1851         * reload1.c (emit_input_reload_insns): Use constrain_operands
1852         instead of constraint_accepts_reg_p to verify optimization.
1853         (constraint_accepts_reg_p): Kill
1854
1855         * reload1.c (reload_cse_delete_noop_set): Kill.
1856         (reload_cse_simplify): use delte_insn_and_edges.
1857
1858 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1859
1860         * cfgloop.c (flow_loops_find): Initialize first and last fields
1861         correctly.
1862
1863 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1864
1865         * c-common.c (builtin_define_std): Correct logic.
1866
1867 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1868
1869         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
1870         (output_call): Likewise.
1871
1872 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1873
1874         * pa.c: Move output.h include after tree.h include.
1875         (pa_asm_output_mi_thunk): Constify identifier lab.
1876
1877 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
1878
1879         * config/ns32k/ns32k.h: Define named constants for the
1880         bits in target_flags and use them.
1881         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
1882
1883 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1884
1885         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
1886         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
1887         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
1888         default scheduling model.
1889         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
1890         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
1891         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
1892         * doc/install.texi (hppa*-*-*): Document default scheduling.
1893
1894 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1895
1896         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
1897
1898 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
1899
1900         * config.gcc (ns32k-*-netbsd*): Set tm_file to
1901         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
1902         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
1903         netbsd.h, or netbsd-aout.h.
1904
1905 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
1906
1907         * longlong.h (count_trailing_zeros): Add missing \, and clean up
1908         whitespace in __ns32000__ case.
1909
1910 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
1911
1912         * expr.c (expand_expr): Output partially zeroed out vectors with
1913         output_constant_def.
1914
1915 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
1916
1917         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
1918         (sh-*-netbsdelf*)
1919         (shl*-*-netbsdelf*): New targets.
1920         * config/sh/netbsd-elf.h: New file.
1921         * config/sh/t-netbsd: New file.
1922
1923 2002-05-30  Richard Henderson  <rth@redhat.com>
1924             Eric Botcazou  <ebotcazou@multimania.com>
1925
1926         PR optimization/6822
1927         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
1928         to unsigned int for op1 comparisons.  Use gen_int_mode.
1929
1930 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
1931
1932         * expmed.c (const_mult_add_overflow_p): New.
1933         * expr.h: Declare it.
1934         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
1935         Don't eliminate the biv if the giv has a constant multiplier and
1936         the rhs argument of the comparison does satisfy the predicate.
1937         Use expand_mult_add to compute the replacement constant.
1938
1939 2002-05-30  Osku Salerma  <osku@iki.fi>
1940
1941         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
1942         (c_common_get_alias_set): Handle it.
1943         * doc/extend.texi: Document it.
1944
1945 2002-05-30  Richard Henderson  <rth@redhat.com>
1946
1947         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
1948         * toplev.c (process_options): Don't check it.
1949         * doc/tm.texi: Don't document it.
1950         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
1951         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
1952         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
1953         frame pointer optimization if current_function_profile.
1954
1955 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1956
1957         * langhooks.c: Fix formatting.
1958         * langhooks.h: Likewise.
1959         * lcm.c: Likewise.
1960         * libgcc2.c: Likewise.
1961         * lists.c: Likewise.
1962         * local-alloc.c: Likewise.
1963         * loop.c: Likewise.
1964         * loop.h: Likewise.
1965
1966 2002-05-30  Marc Espie <espie@openbsd.org>
1967
1968         * config.gcc (sparc64-*-openbsd*): New.
1969         * config/sparc/openbsd1-64.h: New.
1970         * config/sparc/openbsd64.h: New.
1971
1972 2002-05-30  Jeff Law <law@redhat.com>
1973
1974         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
1975         a dead insn with a REG_RETVAL note when the entire libcall is not
1976         dead and remove the associated REG_LIBCALL note at the same time.
1977
1978 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
1979
1980         * lcm.c (output.h): #include.
1981         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
1982         as an ordinary block.
1983         (optimize_mode_switching): Don't pretend that the exit block is
1984         an ordinary block, or handle sucessors of entry block specially.
1985         Instead, split edges from entry block and to exit block, and
1986         put a computing definition on the thus gained post-entry-block,
1987         and a need on the pre-exit-block.
1988
1989 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
1990
1991         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
1992         * rtl.texi: Document 'B'
1993
1994 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
1995
1996         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
1997         at run-time.
1998         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
1999
2000 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
2001
2002         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
2003         const0_rtx instead of NULL_RTX when in error.
2004         (altivec_expand_abs_builtin): Same.
2005         (rs6000_expand_binop_builtin): Same.
2006         (altivec_expand_predicate_builtin): Same.
2007         (altivec_expand_stv_builtin): Same.
2008         (rs6000_expand_ternop_builtin): Same.
2009         (altivec_expand_builtin): Same.
2010
2011 2002-05-29  David S. Miller  <davem@redhat.com>
2012
2013         * rtl.h (clear_emit_caches): Delete.
2014         * integrate.c (output_inline_function): Don't call it.
2015         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
2016         (clear_emit_caches): Delete definition.
2017         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
2018
2019 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
2020
2021         * config/mmix/mmix.c: Include real.h.
2022         (mmix_constant_address_p): Remove redundant test before switch.
2023
2024 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2025
2026         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
2027         only if not already defined.
2028
2029 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
2030
2031         * config/h8300/h8300-protos.h: Remove prototypes for
2032         ok_for_bclr and small_power_of_two.
2033         * config/h8300/h8300.c (small_power_of_two): Remove.
2034         (ok_for_blcr): Likewise.
2035         (fix_bit_operand): Make WHAT deal with an integer instead of a
2036         constraint character.
2037         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
2038         (CONST_OK_FOR_P): Likewise.
2039         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
2040         CONST_OK_FOR_P any more.
2041         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
2042         of fix_bit_operand.
2043         (iorqi3): Likewise.
2044         (xorqi3): Likewise.
2045
2046 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2047
2048         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2049         (CPP_PREDEFINES): Make sure this is undefined.
2050         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
2051         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
2052         or -U__MIPSEB__ before defining one or the other.  Instead,
2053         use %(subtarget_endian_default) if neither -EB nor -EL are
2054         specified.
2055         (SUBTARGET_EXTRA_SPECS): Define.
2056         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
2057         %(netbsd_cpp_spec).
2058
2059 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
2060
2061         * doc/md.texi (Patterns): Note pattern condition pitfall
2062         for unnamed insn.
2063
2064 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
2065
2066         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
2067         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
2068         ternary operations from here...
2069         (rs6000_expand_builtin): ...to here.
2070         New argument expandedp.
2071         Change all instances of altivec_expand_binop_builtin to
2072         rs6000_expand_binop_builtin.
2073         (altivec_expand_unop_builtin): Rename to
2074         rs6000_expand_unop_builtin.
2075         (altivec_expand_binop_builtin): Rename to
2076         rs6000_expand_binop_builtin.
2077         (altivec_expand_ternop_builtin): Rename to
2078         rs6000_expand_ternop_builtin.
2079
2080 2002-05-29  Richard Henderson  <rth@redhat.com>
2081
2082         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
2083         (TARGET_BI_ARCH): Likewise.
2084         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
2085         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
2086         (TARGET_64BIT_DEFAULT): Default to 0.
2087         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
2088
2089 2002-05-29  Richard Henderson  <rth@redhat.com>
2090
2091         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
2092         (get_pc_thunk_name): New.
2093         (output_set_got): Use it.
2094         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
2095         into linkonce sections.
2096
2097 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2098
2099         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2100         (CPP_PREDEFINES): Make sure this is undefined.
2101         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
2102         (CPP_SUBTARGET_SPEC): Don't provide different versions for
2103         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
2104         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
2105         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
2106         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2107         (CPP_PREDEFINES): Make sure this is undefined.
2108         (SUBTARGET_EXTRA_SPECS): Define.
2109         (CPP_SPEC): Use %(netbsd_cpp_spec).
2110
2111 2002-05-29  Jeff Law <law@redhat.com>
2112
2113         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
2114
2115         * flow.c (propagate_one_insn): Do not remove a dead insn if it
2116         contains a REG_RETVAL note.
2117
2118         * haifa-sched (sched_analyze): Remove another useless clearing
2119         of SCHED_GROUP_P I missed yesterday.
2120
2121         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
2122         * pa.c (pa_asm_output_mi_thunk): New function.
2123         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
2124
2125 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2126             Marek Michalkiewicz  <marekm@amelek.gda.pl>
2127
2128         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
2129         (avr_asm_only_p): Make non-static.
2130         (enum avr_arch): Remove.
2131         (avr_arch_types): New.
2132         (avr_mcu_types): Update.
2133         (avr_override_options): Use avr_arch_types table instead of switch.
2134         * avr.h (CPP_PREDEFINES): Die.
2135         (avr_base_arch_macro, avr_extra_arch_macro): New.
2136         (TARGET_CPU_CPP_BUILTINS): New.
2137         (CPP_SPEC, EXTRA_SPECS): Simplify.
2138         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
2139         CPP_AVR5_SPEC): Die.
2140
2141 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2142
2143         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
2144         NETBSD_OS_CPP_BUILTINS_AOUT.
2145         (SUBTARGET_EXTRA_SPECS): Define.
2146         (CPP_SPEC): Use %(netbsd_cpp_spec).
2147
2148 2002-05-29  Richard Henderson  <rth@redhat.com>
2149
2150         * config/i386/i386.c (ix86_output_function_epilogue): New.
2151         (TARGET_ASM_FUNCTION_EPILOGUE): New.
2152         (pic_label_name): Remove.
2153         (pic_labels_used): New.
2154         (ix86_asm_file_end): Emit one pc load stub for each register used.
2155         (output_set_got): Generate deep pc load to any register.
2156         (ix86_select_alt_pic_regnum): New.
2157         (ix86_save_reg): Don't save pic register if we can find a valid
2158         call-clobbered replacement.
2159         (ix86_expand_prologue): If we found a valid replacement, renumber
2160         pic_offset_table_rtx.
2161         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
2162         pic_offset_table_rtx after reload.
2163         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
2164         * config/i386/i386.md (set_got): Make insn, not expander.
2165         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
2166
2167 2002-05-29  Richard Henderson  <rth@redhat.com>
2168
2169         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
2170         alignment for alloca.
2171
2172 2002-05-29  Richard Henderson  <rth@redhat.com>
2173
2174         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
2175         (print_operand_address): Only add rip for symbolic addresses
2176         for which we do not have another relocation type.
2177
2178 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2179
2180         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2181         (EXTRA_SPECS): Add netbsd_cpp_spec.
2182         (CPP_SPEC): Use %(netbsd_cpp_spec).
2183         (CPP_PREDEFINES): Remove.
2184         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2185         (EXTRA_SPECS): Define.
2186         (CPP_SPEC): Use %(netbsd_cpp_spec).
2187         (CPP_PREDEFINES): Remove.
2188
2189 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2190
2191         PR preprocessor/6844
2192         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
2193         NUL.
2194
2195 2002-05-29  Eric Christopher  <echristo@redhat.com>
2196
2197         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
2198         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
2199
2200 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
2201
2202         * config/fr30/fr30.md: Remove previous restriction on splits.
2203         Enforce conformance through gen_lowpart and cont_int_operand.
2204         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
2205         as the assembler does not support ".bss".
2206
2207 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2208
2209         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2210         (CPP_PREDEFINES): Remove.
2211         (SUBTARGET_EXTRA_SPECS): Define.
2212         (CPP_SPEC): Use %(netbsd_cpp_spec).
2213         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2214         (CPP_PREDEFINES): Remove.
2215         (SUBTARGET_EXTRA_SPECS): Define.
2216         (CPP_SPEC): Use %(netbsd_cpp_spec).
2217         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
2218         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
2219         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
2220         Add netbsd_cpp_spec.
2221         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
2222
2223 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2224             Zack Weinberg <zack@codesourcery.com>
2225
2226         * cppexp.c (cpp_num): Move to cpplib.h.
2227         (CPP_ERROR): Remove.
2228         (interpret_float_suffix, interpret_int_suffix): New.
2229         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
2230         (cpp_classify_number, cpp_interpret_integer): New.
2231         (interpret_number): Remove.
2232         (eval_token): Update to use new routines.
2233         * cpphash.h (cpp_num_part): Move to cpplib.h.
2234         * cppinit.c (cpp_post_options): Set warn_long_long.
2235         * cpplib.h (struct cpp_options): Add warn_long_long.
2236         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
2237         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
2238         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
2239         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
2240         cpp_interpret_integer): New.
2241
2242 2002-05-29  Joel Sherrill <joel@OARcorp.com>
2243
2244         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
2245
2246 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2247
2248         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
2249         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
2250         (CPP_SUBTARGET_SPEC): Define.
2251         (SUBTARGET_EXTRA_SPECS): Define.
2252         (CPP_SPEC): Remove.
2253
2254 2002-05-29  Chris Lattner  <sabre@nondot.org>
2255
2256         * ssa.c (rename_insn_1): Rename uses of undefined registers to
2257         prevent confusion if/when the register is defined.
2258
2259 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
2260
2261         PR target/6838
2262         * config/cris/cris.md: Fix typos and thinkos in comments.
2263         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
2264         second alternative.
2265         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
2266         ("*mov_sideqi_mem"): Similar, but for operand 3.
2267         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
2268         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
2269         Remove spurious mode specifier on operand 2.
2270
2271 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
2272
2273         * config/h8300/h8300-protos.h: Remove the prototype for
2274         o_operand.
2275         Add prototypes for single_one_operand and single_zero_operand.
2276         * config/h8300/h8300.c (o_operand): Remove.
2277         (single_one_operand): New.
2278         (single_zero_operand): Likewise.
2279         (print_operand): For 'V' operand, and the operand with 0xff.
2280         For 'V' and 'W' operands, do not and the bit position with 7.
2281         * config/h8300/h8300.md (various anonymous patterns): Replace
2282         use of exact_log2 with single_one_operand/single_zero_operand.
2283
2284 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
2285
2286         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
2287
2288 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
2289
2290         * config/s390/s390.c (legitimate_pic_operand_p): Do not
2291         accept symbolic LARL operands.
2292         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
2293         epilogue insns.
2294
2295 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
2296
2297         * config/s390/s390.md (cmpstr_64/31): Mark whole
2298         input registers as used.
2299
2300 2002-05-28  Richard Henderson  <rth@redhat.com>
2301
2302         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
2303         not current_function_uses_pic_offset_table and
2304         current_function_uses_const_pool; examine current_function_profile.
2305         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
2306         input to blockage if needed.
2307         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
2308         (legitimize_pic_address): Likewise.  Set regs_ever_live for
2309         pic_offset_table_rtx when invoked during reload.
2310         * config/i386/i386.h (FINALIZE_PIC): Remove.
2311         * config/i386/i386.md (tablejump): Reformat.  Do not set
2312         current_function_uses_pic_offset_table.
2313         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
2314         (blockage): Accept anything as operand 0.
2315
2316 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
2317
2318         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
2319         common CPP built-ins for all NetBSD a.out targets.
2320         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
2321         common CPP built-ins for all NetBSD ELF targets.
2322         * config/netbsd.h: Add missing notice.
2323         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
2324         for all NetBSD targets.
2325         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
2326         for all NetBSD targets using an LP64 code model.
2327         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
2328         NetBSD targets.
2329
2330 2002-05-28  Richard Henderson  <rth@redhat.com>
2331
2332         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
2333         update if UPDATE_LIFE_LOCAL.
2334
2335 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
2336
2337         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
2338
2339 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
2340                           Jason R. Thorpe <thorpej@wasabisystems.com>
2341
2342         config/sh reorganization to factor out endianness and coff:
2343
2344         * config/sh/little.h: New file.
2345         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
2346         defined, define to 0 to select big-endian.
2347         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
2348         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2349         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2350         * config/sh/t-be: New file.
2351         * config/sh/t-le: New file.
2352
2353         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
2354         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
2355         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
2356         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
2357         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
2358         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
2359         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
2360         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
2361         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
2362         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
2363         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
2364         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
2365         (LINK_SPEC): Define to SH_LINK_SPEC.
2366         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
2367         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
2368         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
2369         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
2370         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
2371         * config/sh/coff.h: New file.
2372         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
2373         (TARGET_OBJFMT_CPP_BUILTINS): Define.
2374         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
2375         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
2376         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
2377         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
2378         (PTRDIFF_TYPE): Likewise.
2379         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
2380         (CPP_PREDEFINES): Don't define.
2381         (TARGET_OBJFMT_CPP_BUILTINS): Define.
2382         (LINK_SPEC): Define to SH_LINK_SPEC.
2383         (LINK_EMUL_PREFIX): Redefine.
2384         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
2385         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
2386         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
2387         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
2388         (TARGET_OS_CPP_BUILTINS): Define.
2389         (TARGET_DEFAULT): Redefine.
2390         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
2391         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
2392         (LINK_SPEC): Don't redefine.
2393         (LINK_DEFAULT_CPU_EMUL): Redefine.
2394         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2395         * sh.c (sh_asm_named_section): Don't declare / define.
2396         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
2397         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
2398         (sh64-*-elf* tm_file): Likewise.
2399         (sh-*-rtemself* tm_file): Likewise.
2400         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
2401         (sh-*-linux* tmake_file): Add sh/t-le.
2402         (sh-*-rtems* tm_file): Add sh/coff.h
2403         (sh-*-* tm_file): Likewise.
2404
2405 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
2406
2407         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
2408         CONSTANT_POOL_ADDRESS_P.
2409
2410         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
2411
2412 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
2413             Jeff Law <law@redhat.com>
2414
2415         * optabs.c (expand_binop): Fix nwords sign warnings.
2416         generate pseudo for add_optab.
2417
2418         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
2419         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
2420
2421 2002-05-28      Marc Espie <espie@openbsd.org>
2422
2423         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
2424         inherited from gas.h.
2425         (ASM_QUAD):  Undef.  OpenBSD does not support it.
2426
2427 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
2428
2429         * doc/install.texi (binaries): Change mingw binaries
2430         link to www.mingw.org.
2431
2432 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2433
2434         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
2435
2436 2002-05-28  Richard Henderson  <rth@redhat.com>
2437
2438         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
2439         bottom alignment for leaf functions.
2440
2441 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
2442
2443         * config/pa/milli32.S, config/pa/lib1funcs.asm,
2444         config/sparc/sol2-g1.asm: Delete unused files.
2445
2446 2002-05-28  Richard Henderson  <rth@redhat.com>
2447
2448         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
2449
2450         * flow.c (calculate_global_regs_live): Rename call_used to
2451         invalidated_by_call.  Initialize from regs_invalidated_by_call
2452         instead of call_used_regs.
2453
2454         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
2455         DECL_EXTERNAL.
2456
2457 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
2458
2459         * tree.h: Don't include real.h.
2460         Forward-declare struct realvaluetype.
2461         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
2462         contain it.
2463         (TREE_REAL_CST_PTR): New accessor.
2464         (TREE_REAL_CST): Update.
2465         * real.h: Include machmode.h.
2466         (realvaluetype): Make it struct realvaluetype, not a typedef.
2467         (build_real): Prototype here.
2468
2469         * tree.c: Include real.h.
2470         (build_real): Allocate the REAL_VALUE_TYPE as a separate
2471         object in GC memory, set TREE_REAL_CST_PTR to point to it.
2472         (build_real_from_int_cst): Use build_real.
2473         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
2474         REAL_CST.
2475
2476         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
2477         fold-const.c, print-tree.c, real.c: Include real.h.
2478         * Makefile.in: Update dependency lists.
2479
2480 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2481
2482         * basic-block.h (last_basic_block): Declare.
2483         (expunge_block_nocompact): Declaration removed.
2484         (compact_blocks): Declare.
2485         * cfg.c (last_basic_block): New variable.
2486         (expunge_block_nocompact): Removed.
2487         (expunge_block): Do not compact basic blocks.
2488         (compact_blocks): New.
2489         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
2490         longer change.
2491         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
2492         last_basic_block.
2493         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
2494         real positions of blocks.
2495         (delete_unreachable_blocks): Simplified -- quadratic behavior now
2496         cannot occur.
2497         (cleanup_cfg): Compact blocks.
2498         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
2499         basic_block_info varray.
2500         (flow_delete_block): Comment update.
2501         (back_edge_of_syntactic_loop_p): Modify position check code.
2502         (verify_flow_info): Update checking.
2503         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
2504         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
2505         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
2506         indices no longer change.
2507         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
2508         last_basic_block.
2509         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
2510         * profile.c (branch_prob): Compact blocks.
2511         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
2512         last_basic_block.
2513
2514 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
2515
2516         * config/h8300/h8300.md (two anonymous patterns): New.
2517
2518 2002-05-28  David S. Miller  <davem@redhat.com>
2519
2520         * config/sparc/sparc.md (cpu): Tidy.
2521         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
2522         'trap'.
2523         (in_call_delay): Delete reference to 'return' type.
2524         (eligible_for_return_delay, in_return_delay, define_delay
2525         referencing those): Delete.
2526         (rest of file): Use new type attributes as appropriate.
2527         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
2528         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
2529         * config/sparc/ultra1_2.md (us1_single): New reservation.
2530         (us1_ialuX): Likewise.
2531         * config/sparc/ultra3.md (us3_single): Likewise.
2532         (us3_ialuX): Likewise.
2533         (us3_imul, us3_idiv): Tweak.
2534
2535 2002-05-28  Richard Henderson  <rth@redhat.com>
2536
2537         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
2538         STRING_CST.
2539
2540 2002-05-28  Richard Henderson  <rth@redhat.com>
2541
2542         * config.gcc: Obsolete mn10200.
2543
2544 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
2545
2546         * cppexp.c (interpret_number): Optimize for single-digit
2547         and less-than-half-precision cases.
2548         (num_trim, num_positive, num_div_op): Cast constants.
2549
2550 2002-05-27  Bo Thorsen  <bo@suse.de>
2551
2552         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
2553         3.1 branch. The file was made by Jakub Jelinek.
2554         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
2555         support so multilib doesn't break. And don't define this at all
2556         when -Dinhibit_libc is used.
2557         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
2558         * config/i386/t-linux64: Implement full multilib support. Patch
2559         originally done by Andreas Jaeger and Jakub Jelinek.
2560
2561 2002-05-27  Roger Sayle  <roger@eyesopen.com>
2562
2563         * c-common.c: Add support for __attribute__((nothrow)) to specify
2564         that a function cannot throw an exception (using TREE_NOTHROW).
2565         (handle_nothrow_attribute): New function to process this attribute.
2566
2567         * doc/extend.texi: Document the new nothrow function attribute.
2568
2569 2002-05-27  H.J. Lu  (hjl@gnu.org)
2570
2571         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
2572         (num_positive): Likewise.
2573         (num_div_op): Likewise.
2574
2575 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2576
2577         * c-common.c (c_common_init): Always use intmax_t.
2578
2579 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2580
2581         * c-common.c (c_common_init): Use intmax_t for now.
2582
2583 2002-05-24  Andrew Haley  <aph@redhat.com>
2584
2585         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
2586         if T is a boolean type.
2587
2588 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2589
2590         * basic-block.h (last_basic_block): Defined as synonym for
2591         n_basic_blocks.
2592         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
2593         flow_depth_first_order_compute, flow_preorder_transversal_compute,
2594         flow_dfs_compute_reverse_init): Replaced relevant occurences of
2595         n_basic_blocks with last_basic_block.
2596         * cfgbuild.c (make_edges): Likewise.
2597         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
2598         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
2599         * combine.c (combine_instructions): Likewise.
2600         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
2601         iterative_dataflow_bitmap): Likewise.
2602         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
2603         calc_idoms, idoms_to_doms): Likewise.
2604         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
2605         Likewise.
2606         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
2607         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
2608         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
2609         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
2610         delete_null_pointer_checks, compute_code_hoist_vbeinout,
2611         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
2612         compute_store_table, build_store_vectors): Likewise.
2613         * haifa-sched.c (sched_init): Likewise.
2614         * ifcvt.c (if_convert): Likewise.
2615         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
2616         pre_edge_lcm, compute_available, compute_nearerout,
2617         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
2618         Likewise.
2619         * predict.c (estimate_probability, process_note_prediction,
2620         note_prediction_to_br_prob): Likewise.
2621         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
2622         * recog.c (split_all_insns, peephole2_optimize): Likewise.
2623         * regrename.c (copyprop_hardreg_forward): Likewise.
2624         * resource.c (init_resource_info): Likewise.
2625         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
2626         init_regions, schedule_insns): Likewise.
2627         * ssa-ccp.c (ssa_const_prop): Likewise.
2628         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
2629         * ssa.c (compute_dominance_frontiers,
2630         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
2631
2632         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
2633         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
2634         sizes consistently.
2635
2636 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
2637
2638         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
2639         new.
2640         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
2641         hoist_insn_after, hoist_insn_to_edge): New.
2642
2643 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
2644
2645         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
2646         (PROP_FINAL): Include.
2647         * flow.c (life_analysis, update_life_info,
2648         init_propagate_block_info, mark_set_1, mark_used_rgs):
2649         Support SCAN_DEAD_STORE.
2650
2651 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2652
2653         * c-common.c (c_common_init): Set CPP arithmetic precision.
2654         * cppexp.c (cpp_num_part): Move typedef ...
2655         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
2656         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
2657         (sanity_checks): Update.
2658
2659 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
2660
2661         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
2662         (mkheaders): New rule.
2663         (install-mkheaders): New rule.
2664         * configure.in (all_outputs): Add mkheaders.
2665         * configure: Regenerate.
2666         * mkheaders.in: New file.
2667
2668 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
2669
2670         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
2671
2672 2002-05-26  Andreas Jaeger  <aj@suse.de>
2673
2674         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
2675
2676 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2677
2678         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
2679         right_shift): Remove.
2680         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
2681         HIGH_PART): New.
2682         (struct op): Use cpp_num.
2683         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
2684         num_part_mul, num_unary_op, num_binary_op, num_negate,
2685         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
2686         num_div_op, num_lshift, num_rshift, append_digit): New.
2687         (interpret_number, parse_defined, eval_token, reduce): Update
2688         for two-integer arithmetic.
2689         (binary_handler): New typedef.
2690         (optab): Update.
2691         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
2692         (_cpp_parse_expr, reduce): Update to handle two-integers.
2693         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
2694
2695 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2696
2697         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
2698         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
2699         branch insn into account, do not assume 1.
2700         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
2701         over single word insn.  Handle upper half of I/O space too.
2702         * config/avr/avr.md (*sbrx_branch): Use it.
2703         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
2704         (*sbix_branch, *sbix_branch_bit7): Likewise.
2705         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
2706         Use RTL peepholes to optimize register operand sign tests.
2707
2708 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2709
2710         * config/avr/avr.c (avr_asm_only_p): New variable.
2711         (avr_override_options): Set it here if AVR1.
2712         (asm_file_start): Test it here, report an error if set.
2713
2714 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
2715
2716         * alias.c: Fix formatting.
2717         * attribs.c: Likewise.
2718         * bb-reorder.c: Likewise.
2719         * bitmap.c: Likewise.
2720         * bitmap.h: Likewise.
2721         * builtins.c: Likewise.
2722
2723 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
2724
2725         * reload.c (find_valid_class): Accept new argument DEST,
2726         choose class accordingly.
2727         (push_reload): Update callers.
2728
2729 2002-05-26  Andreas Jaeger  <aj@suse.de>
2730
2731         * combine.c (combine_instructions): Do not indent #if for
2732         traditional C.
2733
2734 2002-05-25  Richard Henderson  <rth@redhat.com>
2735
2736         * c-pragma.c (apply_pragma_weak): Convert value identifier to
2737         string for decl_attributes.
2738         (handle_pragma_weak): Call assemble_alias if we're modifying
2739         an existing decl.
2740
2741 2002-05-25  Richard Henderson  <rth@redhat.com>
2742
2743         PR target/6788
2744         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
2745         using rtl instead of fprintf.
2746         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
2747         * config/sparc/sparc-protos.h: Update.
2748
2749 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
2750
2751         * Makefile.in (C_COMMON_H): Fix.
2752         Update other targets.
2753         * c-common.c: Don't include c-lex.h.
2754         (builtin_define_with_value): Make static and prototype.
2755         (builtin_define_std): Move from c-lex.h.
2756         * c-common.h (init_c_lex): Move from c-lex.h.
2757         * c-decl.c: Don't include c-lex.h.
2758         (make_pointer_declarator): Move from c-parse.in.
2759         * c-lex.c: Don't include c-lex.h.
2760         * c-lex.h: Remove.
2761         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
2762         (make_pointer_declarator): Move to c-decl.c.
2763         * c-pragma.c: Don't include c-lex.h.
2764         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
2765         * c-tree.h (make_pointer_declarator): New.
2766 doc:
2767         * passes.texi, tm.texi: Update.
2768 objc:
2769         * Make-lang.in: Update and correct.
2770         * objc-act.c: Don't include c-lex.h or cpplib.h.
2771 treelang:
2772         * treetree.c: Don't include c-lex.h.
2773 config:
2774         * darwin-c.c: Don't include c-lex.h.
2775         * c4x/c4x-c.c: Don't include c-lex.h.
2776         * c4x/t-c4x: Update.
2777         * i370/i370-c.c: Don't include c-lex.h.
2778         * i370/t-i370: Update.
2779         * i960/i960-c.c: Don't include c-lex.h.
2780         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
2781         * i960/t-960bare: Update.
2782         * i960/t-vxworks: Update.
2783         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
2784         * rs6000/t-darwin: Update.
2785         * rs6000/t-rs6000-c-rule: Update.
2786         * v850/v850-c.c: Don't include c-lex.h.
2787         * v850/v850.c: Don't include c-lex.h or cpplib.h.
2788
2789
2790 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
2791
2792         * tree.def: Fix typos.
2793         * doc/install.texi: Likewise.
2794
2795 2002-05-25  Richard Henderson  <rth@redhat.com>
2796
2797         * configure.in (HAVE_AS_TLS): Add ia64 test.
2798         * configure: Rebuild.
2799         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
2800         (override_options): Set it.
2801         (TARGET_HAVE_TLS): New.
2802         (sdata_symbolic_operand): Look for 's'.
2803         (tls_symbolic_operand): New.
2804         (ia64_expand_load_address): Abort for tls symbols.
2805         (gen_tls_get_addr): New.
2806         (gen_thread_pointer): New.
2807         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
2808         (rtx_needs_barrier): Add new unspecs.
2809         (ia64_encode_section_info): Handle tls symbols.
2810         (ia64_strip_name_encoding): Strip two encoding chars.
2811         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
2812         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
2813         (TARGET_OPTIONS): Add tls-size.
2814         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
2815         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
2816         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
2817         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
2818         (movsf, movdf): Likewise.
2819         (movdi_symbolic): Use match_scratch.  Don't split if we won't
2820         have a scratch availiable.
2821         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
2822         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
2823         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
2824         * config/ia64/ia64-protos.h: Update.
2825         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
2826         sdata_symbolic_operand.
2827         (ASM_OUTPUT_LABELREF): Strip two characters.
2828
2829 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
2830
2831         * combine.c (simplify_set): Remove an unnecessary subreg.
2832
2833 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2834
2835         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
2836
2837         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
2838
2839 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
2840
2841         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
2842
2843 2002-05-25  Roger Sayle  <roger@eyesopen.com>
2844
2845         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
2846         (cond (compare x y) 0) into the equivalent (cond x y).
2847
2848 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
2849
2850         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
2851
2852 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
2853
2854         * config.gcc: Remove all stanzas for previously obsoleted
2855         systems.  Where necessary, add explicit error stanzas to
2856         prevent removed systems from being misidentified as something
2857         else.  Begin a fresh obsoletions list, with the systems that
2858         were reprieved last round.
2859         * doc/install.texi: Remove all mention of dead targets.
2860         * fixinc/mkfixinc.sh: Likewise.
2861
2862         * config/arm/arm.h: Bit 31 of target_flags is no longer
2863         reserved.
2864
2865         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
2866         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
2867         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
2868         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
2869         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
2870         config/alpha/osf12.h, config/alpha/osf2or3.h,
2871         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
2872         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
2873         config/clipper/clipper-protos.h, config/clipper/clipper.c,
2874         config/clipper/clipper.h, config/clipper/clipper.md,
2875         config/clipper/clix.h, config/convex/convex-protos.h,
2876         config/convex/convex.c, config/convex/convex.h,
2877         config/convex/convex.md, config/convex/fixinc.convex,
2878         config/convex/proto.h, config/elxsi/elxsi-protos.h,
2879         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
2880         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
2881         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
2882         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
2883         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
2884         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
2885         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
2886         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
2887         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
2888         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
2889         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
2890         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
2891         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
2892         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
2893         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
2894         config/m68k/altos3068.h, config/m68k/apollo68.h,
2895         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
2896         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
2897         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
2898         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
2899         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
2900         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
2901         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
2902         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
2903         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
2904         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
2905         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
2906         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
2907         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
2908         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
2909         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
2910         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
2911         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
2912         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
2913         config/mips/dec-osf1.h, config/mips/elflorion.h,
2914         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
2915         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
2916         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
2917         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
2918         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
2919         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
2920         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
2921         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
2922         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
2923         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
2924         config/ns32k/sequent.h, config/ns32k/tek6000.h,
2925         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
2926         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
2927         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
2928         config/sparc/rtems.h, config/we32k/we32k-protos.h,
2929         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
2930         Delete file.
2931
2932 2002-05-24  Richard Henderson  <rth@redhat.com>
2933
2934         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
2935         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
2936         * config/i386/i386.c (tls_model_chars): Add leading space.
2937         (tls_symbolic_operand): Don't bias by 1.
2938         (legitimize_address): Don't unbias by 1.
2939
2940 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
2941
2942         * lcm.c (optimize_mode_switching): Change bb used as indices
2943         to bb->index.
2944
2945 2002-05-24  Richard Henderson  <rth@redhat.com>
2946
2947         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
2948         of update_life_info_in_dirty_blocks.
2949
2950 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
2951
2952         PR other/6782
2953         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
2954
2955 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2956
2957         PR preprocessor/6780
2958         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
2959
2960 2002-05-24  Jim Blandy  <jimb@redhat.com>
2961
2962         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
2963         entry with a type code of zero, marking the end of the compilation
2964         unit's macro info.
2965
2966 2002-05-24  Richard Henderson  <rth@redhat.com>
2967
2968         * varasm.c (asm_output_bss): Always output one byte.
2969         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2970
2971 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
2972
2973         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
2974         namespace.
2975
2976 2002-05-24  Andreas Jaeger  <aj@suse.de>
2977
2978         * ggc-page.c (alloc_page): Cast variables of type size_t to
2979         unsigned long, adjust printf format string.
2980         (ggc_alloc): Likewise.
2981         (ggc_print_statistics): Likewise.
2982         (ggc_print_statistics): Correct printf format string for SCALE to
2983         use unsigned long.
2984
2985 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
2986
2987         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
2988
2989 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
2990             Zack Weinberg     <zack@codesourcery.com>
2991
2992         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
2993         quoted strings.
2994         * dwarf2out.c (lookup_filename): Properly quote filename in .file
2995         directive in assembly file.
2996         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
2997         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
2998         * config/pj/pj.h (ASM_FILE_START): Likewise.
2999         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
3000         * config/avr/avr.c (asm_file_end): Likewise.
3001         * toplev.c (output_quoted_string): Handle possibly signed plain
3002         char.
3003         * toplev.h (output_clean_symbol_name): Declare
3004         * toplev.c (output_clean_symbol_name): Define.
3005         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
3006         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
3007
3008 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
3009
3010         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
3011
3012 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
3013
3014         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
3015         of size of unsigned.
3016
3017 2002-05-23  Richard Henderson  <rth@redhat.com>
3018
3019         * configure.in (HAVE_AS_TLS): New test.
3020         * config.in, configure: Rebuild.
3021         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
3022         (ix86_tls_dialect_string, ix86_tls_dialect): New.
3023         (override_options): Set it.
3024         (tls_model_chars, tls_symbolic_operand): New.
3025         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
3026         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
3027         (local_exec_symbolic_operand): New.
3028         (get_pic_label_name): Merge into output_set_got.
3029         (ix86_asm_file_end): Emit pic_label_name if defined.
3030         (legitimate_constant_p, constant_address_p): New.
3031         (legitimate_pic_operand_p): New.
3032         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
3033         (legitimate_address_p): Likewise.
3034         (ix86_encode_section_info): Rename from i386_; handle tls decls.
3035         (ix86_strip_name_encoding): New.
3036         (get_thread_pointer): New.
3037         (legitimize_address): Handle tls symbols.
3038         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
3039         Remove UNSPEC_PLT.
3040         (struct machine_function): Add some_ld_name.
3041         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
3042         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
3043         (output_addr_const_extra): New.
3044         (maybe_get_pool_constant): New.
3045         (ix86_split_to_parts): Use it.
3046         (ix86_expand_move): Handle tls symbols.
3047         (ix86_tls_get_addr): New.
3048         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
3049         (TARGET_OPTIONS): Add tls-dialect.
3050         (CONSTANT_ADDRESS_P): Use new out-of-line function.
3051         (LEGITIMATE_CONSTANT_P): Likewise.
3052         (LEGITIMATE_PIC_OPERAND_P): Likewise.
3053         (TARGET_STRIP_NAME_ENCODING): New.
3054         (ASM_OUTPUT_LABELREF): New.
3055         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
3056         (OUTPUT_ADDR_CONST_EXTRA): New.
3057         (PREDICATE_CODES): Update.
3058         (ix86_tls_dialect, ix86_tls_dialect_string): New.
3059         * config/i386/i386.md: Regroup and renumber unspec constants.
3060         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
3061         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
3062         (tls_global_dynamic, tls_local_dynamic_base): New.
3063         (tls_local_dynamic_once): New.
3064         * config/i386/i386-protos.h: Update.
3065
3066 2002-05-23  Richard Henderson  <rth@redhat.com>
3067
3068         * genemit.c (gen_insn): Print file:lineno comment before function.
3069         (main): likewise.
3070         * gensupport.c (struct queue_elem): Add filename member.
3071         (queue_pattern): Initialize it; update all callers.
3072         (process_include): Don't free filename.
3073         (read_md_rtx): Set read_rtx_filename.
3074
3075 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
3076
3077         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
3078
3079 2002-05-23  Richard Henderson  <rth@redhat.com>
3080
3081         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
3082
3083 2002-05-23  Richard Henderson  <rth@redhat.com>
3084
3085         * doc/extend.texi (C++98 Thread-Local Edits): Update with
3086         commentary from Mark.
3087
3088 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3089
3090         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
3091         Use FOR_EACH_BB macros to iterate over basic block chain.
3092         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
3093         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
3094         Likewise.
3095         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
3096         find_unreachable_blocks, create_edge_list, verify_edge_list,
3097         remove_fake_edges, add_noreturn_fake_exit_edges,
3098         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
3099         Likewise.
3100         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
3101         find_sub_basic_blocks): Likewise.
3102         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
3103         Likewise.
3104         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
3105         Likewise.
3106         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
3107         Likewise.
3108         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
3109         commit_edge_insertions, commit_edge_insertions_watch_calls,
3110         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
3111         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
3112         * conflict.c (conflict_graph_compute): Likewise.
3113         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
3114         df_modified_p, df_refs_unlink, df_dump): Likewise.
3115         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
3116         * final.c (compute_alignments): Likewise.
3117         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
3118         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
3119         count_or_remove_death_notes): Likewise.
3120         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
3121         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
3122         classic_gcse, compute_transp, cprop, compute_pre_data,
3123         compute_transpout, invalidate_nonnull_info,
3124         delete_null_pointer_checks_1, delete_null_pointer_checks,
3125         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
3126         compute_store_table, build_store_vectors, store_motion): Likewise.
3127         * global.c (global_conflicts, mark_elimination): Likewise.
3128         * graph.c (print_rtl_graph_with_bb): Likewise.
3129         * haifa-sched.c (sched_init): Likewise.
3130         * ifcvt.c (if_convert): Likewise.
3131         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
3132         compute_available, compute_nearerout, compute_rev_insert_delete,
3133         optimize_mode_switching): Likewise.
3134         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
3135         * predict.c (estimate_probability, note_prediction_to_br_prob,
3136         propagate_freq, counts_to_freqs, expensive_function_p,
3137         estimate_bb_frequencies): Likewise.
3138         * profile.c (instrument_edges, get_exec_counts,
3139         compute_branch_probabilities, compute_checksum, branch_prob,
3140         find_spanning_tree): Likewise.
3141         * recog.c (split_all_insns, peephole2_optimize): Likewise.
3142         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
3143         Likewise.
3144         * regclass.c (scan_one_insn, regclass): Likewise.
3145         * regmove.c (mark_flags_life_zones, regmove_optimize,
3146         record_stack_memrefs): Likewise.
3147         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
3148         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
3149         * resource.c (find_basic_block): Likewise.
3150         * sched-ebb.c (schedule_ebbs): Likewise.
3151         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
3152         find_single_block_region, find_rgns, schedule_insns)
3153         * sibcall.c (optimize_sibling_and_tail_recursive_call)
3154         * ssa-ccp.c (optimize_unexecutable_edges,
3155         ssa_ccp_df_delete_unreachable_insns): Likewise.
3156         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
3157         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
3158         rename_block, convert_to_ssa, compute_conservative_reg_partition,
3159         compute_coalesced_reg_partition, rename_equivalent_regs,
3160         convert_from_ssa): Likewise.
3161         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
3162         process_for_unwind_directive): Likewise.
3163
3164         * df.c (FOR_ALL_BBS): Removed.
3165         * gcse.c (struct null_pointer_info): Type of current_block field
3166         changed.
3167         (struct reg_avail_info): Type of last_bb field changed.
3168         * config/ia64/ia64.c (block_num): Removed.
3169         (need_copy_state): Type changed.
3170         (last_block): New.
3171
3172 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3173
3174         * cppinit.c (mark_named_operators): Split out from init_builtins.
3175         (cpp_finish_options): Call it from here instead.
3176
3177 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
3178
3179         * builtin-attrs.def: Update copyright years.
3180         (ATTR_NONNULL): New attribute identifier.
3181         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
3182         attribute tree lists.
3183         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
3184         format operand.
3185         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
3186         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
3187         attribute lists.  Chain the appropriate nonnull attribute.
3188         * c-format.c (check_format_arg): Remove null format string
3189         warning.
3190         * testsuite/gcc.dg/format/null-1.c: New test.
3191
3192 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3193
3194         * Makefile.in (ADAC): Define.
3195         (SYSLIBS): Define.
3196         (.SUFFIXES): Move before language makefile fragments.
3197         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
3198
3199 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
3200
3201         * varasm.c (make_decl_rtl): Don't allow weak variables to be
3202         placed in common.
3203
3204 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
3205
3206         * cfg.c (dump_flow_info): Print results of
3207         maybe_hot/probably_never_executed predicates.
3208         * toplev.c (open_dump_file): Print function frequency.
3209
3210 2002-05-23  David S. Miller  <davem@redhat.com>
3211
3212         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
3213         regsets.
3214
3215 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
3216
3217         * c-common.c (warn_nonnull): Declare.
3218         (c_common_attribute_table): Add "nonnull" attribute.
3219         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
3220         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
3221         check_function_arguments_recurse): New functions.
3222         * c-common.h (warn_nonnull): Declare extern.
3223         (check_function_arguments, check_function_arguments_recurse): New
3224         prototypes.
3225         * c-decl.c (c_decode_option): Add -Wnonnull option.
3226         * c-format.c (set_Wformat): Set warn_nonnull if enabling
3227         format checking.
3228         (format_check_context): New structure.
3229         (check_format_info_recurse): Remove recursion and rename to...
3230         (check_format_arg): ...this.  Update comment.
3231         (check_format_info): Use check_function_arguments_recurse.
3232         * c-typeck.c (build_function_call): Call check_function_arguments
3233         instead of check_function_format.
3234         * doc/extend.texi: Document "nonnull" attribute.
3235         * doc/invoke.texi: Docuemnt -Wnonnull option.
3236         * testsuite/gcc.dg/nonnull-1.c: New test.
3237         * testsuite/gcc.dg/nonnull-2.c: New test.
3238
3239 2002-05-23  David S. Miller  <davem@redhat.com>
3240
3241         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
3242         * cfgcleanup.c (cleanup_cfg): If it is set do not
3243         attempt to delete trivially dead insns.
3244         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
3245         * toplev.c (rest_of_compilation): Document non-trivial aspect
3246         the RTL before optimize_save_area_alloca is run.
3247
3248 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3249
3250         * c-lex.c (indent_level): Remove.
3251         (cb_file_change, c_lex): Remove indent level handling.
3252         * c-lex.h (indent_level): Remove.
3253         * input.h (struct file_stack): Remove indent_level.
3254         * toplev.c (push_srcloc): Remove indent_level handling.
3255
3256 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
3257
3258         PR target/6753
3259         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
3260         of x in constraints for clarity.
3261         (sse_mov?fcc split): abort if op2 == op3.
3262         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
3263         sse_movsfcc_const0_4): Add earlyclobber.
3264         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
3265         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
3266         Use Y instead of x in constraints.
3267
3268 2002-05-23  Richard Henderson  <rth@redhat.com>
3269
3270         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
3271         (C++98 Thread-Local Edits): New subsection.
3272
3273         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
3274         (ix86_arch): Set type to enum processor_type.
3275
3276         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
3277         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
3278
3279 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
3280
3281         * configure.in: Fix as version test for binutils 2.12.1 releases
3282         (without dates).
3283         * configure: Rebuilt.
3284
3285 2002-05-23  Richard Henderson  <rth@redhat.com>
3286
3287         * config/i386/i386.c (get_pic_label_name): New.
3288         (load_pic_register): Remove.
3289         (output_set_got): New.
3290         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
3291         * config/i386/i386.md (UNSPEC_SET_GOT): New.
3292         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
3293         (prologue_set_got, prologue_get_pc): Remove.
3294         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
3295         (builtin_setjmp_receiver): Use gen_set_got.
3296         * config/i386/i386-protos.h: Update.
3297
3298 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
3299
3300         * gcse.c (hash_expr): Do not use alias set for hashing.
3301
3302 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
3303
3304         * dbxout.c (dbxout_class_name_qualifiers): New function.
3305         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
3306
3307 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3308
3309         * cpperror.c (_cpp_begin_message): No special casing
3310         of CPP_FATAL_LIMIT.
3311         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
3312         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
3313         * cpplib.c (do_include_common): Use DL_ERROR.
3314         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
3315         (DL_ICE): Renumber.
3316         * fix-header.c (read_scan_file): Update.
3317
3318 2002-05-22  Richard Henderson  <rth@redhat.com>
3319
3320         * config/i386/i386.c (ix86_expand_call): New function, extracted
3321         from md call patterns.  Add pic_offset_table_rtx to
3322         CALL_INSN_FUNCTION_USAGE when needed.
3323         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
3324         (call_value_pop, call_value, untyped_call): Likewise.
3325         (call_exp, call_value_exp): Remove.
3326         * config/i386/i386-protos.h: Update.
3327
3328 2002-05-22  Richard Henderson  <rth@redhat.com>
3329
3330         * varasm.c (default_section_type_flags): Check for VAR_DECL
3331         before using DECL_THREAD_LOCAL.
3332
3333 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
3334
3335         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
3336         (STARTFILE_SPEC): Delete PE crt0.o.
3337         * config/rs6000/aix51.h: Same.
3338         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
3339         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
3340         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
3341         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
3342         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
3343
3344 2002-05-22  Richard Henderson  <rth@redhat.com>
3345
3346         * varasm.c (default_section_type_flags): Handle tls data and
3347         default sections.
3348         (default_unique_section): Handle tls sections.
3349
3350 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
3351
3352         * configure.in (CROSS): Define NATIVE_CROSS.
3353         * configure: Regenerate.
3354         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
3355         (startfile_prefix_spec): New var.
3356         (static_specs): Add startfile_prefix_spec.
3357         (do_spec_2): Split out from..
3358         (do_spec): ..here.
3359         (main): Process startfile_prefix_spec.
3360         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
3361         dynamic linker.
3362         (STARTFILE_PREFIX_SPEC): Define.
3363         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
3364         absolute paths.
3365
3366 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
3367
3368         * cpperror.c: Fix formatting.
3369         * cppexp.c: Likewise.
3370         * cppfiles.c: Likewise.
3371         * cpphash.c: Likewise.
3372         * cpphash.h: Likewise.
3373         * cppinit.c: Likewise.
3374         * cpplex.c: Likewise.
3375         * cpplib.c: Likewise.
3376         * cppmacro.c: Likewise.
3377         * cppmain.c: Likewise.
3378         * cppspec.c: Likewise.
3379
3380 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
3381
3382         * combine.c (force_to_mode): Use gen_int_mode.
3383         Don't clear CONST_INT bits outside of mode.
3384
3385 2002-05-22  Richard Henderson  <rth@redhat.com>
3386
3387         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
3388         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3389
3390 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
3391
3392         PR c/6643
3393         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
3394         if DECL_SIZE_UNIT is INTEGER_CST.
3395
3396 2002-05-22  Richard Henderson  <rth@redhat.com>
3397
3398         * flow.c (life_analysis): Delete broken reg_label check.
3399
3400 2002-05-22  Richard Henderson  <rth@redhat.com>
3401
3402         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
3403         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3404
3405 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
3406
3407         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
3408         (embed-bb.c): New rule.
3409         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
3410         * config/sh/embed_bb.c: Delete.
3411
3412 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
3413
3414         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
3415
3416 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
3417
3418         * config/h8300/h8300.md (*andorqi3): New.
3419
3420 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
3421
3422         PR preprocessor/6517
3423         * Makefile.in: Update.
3424         * c-common.c (c_common_post_options): Add preprocessor
3425         errors to the error count.
3426         * c-lang.c (c_post_options): Kill.
3427         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
3428         * hooks.h: Add header guards.
3429         * langhooks-def.h: Include hooks.h.
3430         (LANG_HOOKS_POST_OPTIONS): Update.
3431         * langhooks.h (struct lang_hooks): Update post_options.
3432         * toplev.c (parse_options_and_default_flags): Update.
3433 objc:
3434         * objc-lang.c (objc_post_options): Kill.
3435         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
3436
3437 2002-05-21  Bruce Korb  <bkorb@gnu.org>
3438
3439         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
3440         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
3441         * fixinc/fixincl.x: regen.
3442
3443 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
3444
3445         * cfgbuild.c: Fix formatting.
3446         * cfg.c: Likewise.
3447         * cfgcleanup.c: Likewise.
3448         * cfglayout.c: Likewise.
3449         * cfgloop.c: Likewise.
3450         * cfgrtl.c: Likewise.
3451
3452 2002-05-21  Richard Henderson  <rth@redhat.com>
3453
3454         * c-common.h (enum rid): Add RID_THREAD.
3455         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
3456         (grokdeclarator): Grok __thread.
3457         * c-parse.in (reswords): Add __thread.
3458         (rid_to_yy): Add RID_THREAD.
3459
3460         * tree.h (DECL_THREAD_LOCAL): New.
3461         (struct tree_decl): Add thread_local_flag.
3462         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
3463         * tree.c (staticp): TLS variables are not static.
3464
3465         * target-def.h (TARGET_HAVE_TLS): New.
3466         * target.h (have_tls): New.
3467         * output.h (SECTION_TLS): New.
3468         * varasm.c (assemble_variable): TLS variables can't be common for now.
3469         (default_section_type_flags): Handle .tdata and .tbss.
3470         (default_elf_asm_named_section): Handle SECTION_TLS.
3471         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
3472
3473         * flags.h (flag_tls_default): Declare.
3474         * toplev.c (flag_tls_default): Define.
3475         (display_help): Display help for it.
3476         (decode_f_option): Set it.
3477
3478         * doc/extend.texi (Thread-Local): New node describing language-level
3479         thread-local storage.
3480         * doc/invoke.texi (-ftls-model): Document.
3481
3482         * fixinc/inclhack.def (thread_keyword): New.
3483         * fixinc/fixincl.x: Rebuild.
3484
3485 2002-05-21  Jeffrey A Law  <law@redhat.com>
3486
3487         * optabs.c (expand_binop): For double-word integer multiplies,
3488         do not compute intermediate results into something that is
3489         not a register (such as a SUBREG or MEM).
3490
3491         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
3492         (ix86_sched_reorder): Make sure to initialize scheduling
3493         data even when there's only one insn in the ready queue.
3494
3495 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
3496
3497         * genautomata.c (reserv_sets_hash_value): Fix a typo.
3498
3499 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
3500
3501         * genautomata.c (reserv_sets_hash_value): Define hash_value as
3502         set_el_t.  Transform the hash value into unsigned.
3503         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
3504         (transform_3): Add code to process `(A,B)+(D,E)'.
3505
3506 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
3507
3508         * reload1.c (do_output_reload): Run delete_output_reload
3509         only if optimizing.
3510
3511 2002-05-21  Roger Sayle  <roger@eyesopen.com>
3512
3513         PR middle-end/6600
3514         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
3515         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
3516         (can_store_by_pieces): ... and here to limit the largest mode used.
3517         Add a comment to document this function.
3518
3519 2002-05-21  Richard Henderson  <rth@redhat.com>
3520
3521         * flow.c (life_analysis): Fix test for deleted label.
3522
3523 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3524
3525         * doc/tm.texi: Fix typo.
3526
3527 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
3528
3529         * c-common.c (c_common_init): Set options->unsigned_char from
3530         flag_signed_char.
3531         (cb_register_builtins): Define __STRICT_ANSI__ and
3532         __CHAR_UNSIGNED__ here...
3533         * cppinit.c (init_builtins): Not here.
3534         (cpp_create_reader): unsigned_char option defaults to 0, not
3535         !DEFAULT_SIGNED_CHAR.
3536         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
3537         and -funsigned-char.
3538
3539         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
3540         * cpphash.c (_cpp_init_hashtable): Don't set it.
3541         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
3542         directly.  Clarify comment.
3543
3544 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3545
3546         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
3547         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
3548         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
3549         BASIC_BLOCK (n_basic_blocks - 1).
3550         * cfganal.c (can_fallthru, flow_call_edges_add,
3551         flow_preorder_transversal_compute): Too.
3552         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
3553         find_sub_basic_blocks): Too.
3554         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
3555         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
3556         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
3557         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
3558         * combine.c (this_basic_block): Type changed to basic_block.
3559         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
3560         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
3561         get_last_value, distribute_notes, distribute_links): Too.
3562         * final.c (compute_alignments): Too.
3563         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
3564         * function.c (thread_prologue_and_epilogue_insns): Too.
3565         * gcse.c (compute_code_hoist_vbeinout): Too.
3566         * global.c (build_insn_chain): Too.
3567         * ifcvt.c (find_if_block, find_cond_trap): Too.
3568         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
3569         * regmove.c (regmove_optimize): Too.
3570         * resource.c (find_basic_block): Too.
3571         * sched-ebb.c (schedule_ebbs): Too.
3572         * ssa-dce.c (find_control_dependence, find_pdom): Too.
3573
3574 2002-05-21  Andreas Jaeger  <aj@suse.de>
3575
3576         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
3577
3578 2002-05-21  Richard Henderson  <rth@redhat.com>
3579
3580         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
3581         unspec names, not numbers.
3582
3583 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3584
3585         * doc/sourcebuild.texi: Mention snapshot-README and
3586         snapshot-index.html as needing updating for new front ends.
3587
3588 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3589
3590         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
3591         disabling checking, and avoid multiple evaluation of RTX.
3592
3593 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
3594
3595         * bitmap.c (bitmap_find_bit): Return early if we have the correct
3596         element cached.
3597
3598 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
3599
3600         * profile.c (gen_edge_profiler):  Set alias set before the memory is
3601         used.
3602
3603 2002-05-20  David S. Miller  <davem@redhat.com>
3604
3605         * cselib.c (max_value_regs): New.
3606         (cselib_lookup, cselib_invalidate_regno): Initialize it when
3607         adding new entries to the REG_VALUES table and we are dealing with
3608         a hard register.
3609         (clear_table): Initialize it.
3610         (cselib_invalidate_regno): Use it to determine which hard
3611         registers to scan when mode is not VOIDmode.
3612
3613 2002-05-20  Duraid Madina   <duraid@fl.net.au>
3614
3615         * tradcpp.c (fixup_newlines): Use old-style function header.
3616
3617 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
3618
3619         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
3620
3621 2002-05-20  H.J. Lu  (hjl@gnu.org)
3622
3623         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
3624
3625         * config/mips/mips.h (DFMODE_NAN): Defined.
3626         (SFMODE_NAN): Likewise.
3627
3628 2002-05-20  Dale Johannesen  <dalej@apple.com>
3629
3630         * combine.c (cant_combine_insn_p):  Back out my
3631         previous patch.
3632
3633 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
3634
3635         * params.c: Fix formatting.
3636         * params.h: Likewise.
3637         * predict.c: Likewise.
3638         * prefix.c: Likewise.
3639         * print-rtl.c: Likewise.
3640         * print-tree.c: Likewise.
3641         * profile.c: Likewise.
3642
3643 2002-05-20  H.J. Lu  (hjl@gnu.org)
3644
3645         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
3646
3647 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
3648
3649         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
3650         switches straight on to the assembler, do not abbreviate them.
3651         * config/arm/elf.h (ASM_SPEC): As above.
3652         * config/arm/semi.h (ASM_SPEC): As above.
3653         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
3654         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
3655         -mcpu=xscale on to the assembler by default.
3656         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
3657
3658 2002-05-20  Richard Henderson  <rth@redhat.com>
3659
3660         * cse.c (canon_hash): Reorder do_not_record test.  Always
3661         allow pic_offset_table_rtx.
3662
3663 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
3664
3665         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
3666         (expand_binop): Ditto (3 times).
3667
3668 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
3669
3670         * Makefile.in (distclean): Remove QMTest stuff.
3671         (QMTEST_PATH): New variable.
3672         (QMTESTFLAGS): Likewise.
3673         (QMTESTRUNFLAGS): Likewise.
3674         (QMTEST): Likewise.
3675         (QMTEST_GPP_TESTS): Likewise.
3676         (QMTEST_DIR): Likewise.
3677         (QMTEST_DIR/context): New target.
3678         (qmtest-g++): Likeise.
3679         (qmtest-gui): Likewise.
3680         (QMTEST_DIR/gpp-expected.qmr): Likewise.
3681
3682 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
3683
3684         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
3685         an altivec register if TARGET_ALTIVEC.
3686
3687         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
3688         to ALTIVEC_VECTOR_MODE.
3689         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
3690         (rs6000_va_arg): Vectors may go in registers if they are not
3691         altivec vectors.
3692
3693 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
3694
3695         * protoize.c: Fix formatting.
3696
3697 2002-05-19  Richard Henderson  <rth@redhat.com>
3698
3699         * gensupport.c (init_include_reader): Merge into ...
3700         (process_include): ... here.  Simplify composite path creation.
3701         Plug memory leaks.  Fix file/line number tracking.  Do not
3702         process_define_cond_exec.  Return void.
3703         (process_rtx): Don't check process_include return value.
3704
3705 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3706
3707         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
3708         fields.
3709         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
3710         traversing basic block chain.
3711         (create_basic_block_structure, create_basic_block): Declaration changed.
3712         (link_block, unlink_block): Declare.
3713         * cfg.c (entry_exit_blocks): Initialize new fields.
3714         (link_block, unlink_block): New.
3715         (expunge_block_nocompact): Unlink basic block.
3716         (dump_flow_info): Print prev_bb/next_bb fields.
3717         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
3718         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
3719         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
3720         * cfgrtl.c (create_basic_block_structure, create_basic_block,
3721         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
3722         (verify_flow_info): Check that list agrees with numbering.
3723
3724 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
3725
3726         * c-common.c (preprocessing_asm): New macro.
3727         * c-lex.h (builtin_define, builtin_assert): Use pfile.
3728 doc:
3729         * tm.texi: Update.
3730 config/alpha:
3731         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
3732         (CPP_SPEC): Simplify.
3733         (TARGET_CPU_CPP_BUILTINS): Update.
3734         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
3735         (CPP_SPEC): Simplify.
3736         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
3737         (TARGET_OS_CPP_BUILTINS): Update.
3738         * osf.h (CPP_XFLOAT_SPEC): Kill.
3739         (TARGET_OS_CPP_BUILTINS): Update.
3740         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
3741         * osf5.h (CPP_XFLOAT_SPEC): Kill.
3742         * vms.h (CPP_SUBTARGET_SPEC): Kill.
3743         (TARGET_OS_CPP_BUILTINS): Update.
3744
3745 2002-05-19  Richard Henderson  <rth@redhat.com>
3746
3747         * varasm.c (default_binds_local_p): Fix typo.
3748
3749 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3750
3751         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
3752         CONST_INT operand to the correct mode after adding 1 to it.
3753
3754 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
3755
3756         * config.gcc (powerpc-wrs-windiss*): New target.
3757
3758 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3759
3760         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
3761         (ashrdi3): Use it.
3762
3763 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
3764
3765         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
3766         alphasort.
3767         * config.in: Regenerated.
3768         * configure: Regenerated.
3769
3770 2002-05-19  Richard Henderson  <rth@redhat.com>
3771
3772         * target-def.h (TARGET_BINDS_LOCAL_P): New.
3773         * target.h (struct gcc_target): Move boolean fields to the end.
3774         Add binds_local_p.
3775         * varasm.c (default_binds_local_p): New.
3776         * output.h: Declare it.
3777
3778         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
3779         * config/cris/cris.c (cris_encode_section_info): Likewise.
3780         * config/i386/i386.c (i386_encode_section_info): Likewise.
3781         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
3782         * config/sh/sh.c (sh_encode_section_info): Likewise.
3783
3784         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
3785         (TARGET_BINDS_LOCAL_P): New.
3786
3787 2002-05-19  Richard Henderson  <rth@redhat.com>
3788
3789         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
3790         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
3791         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
3792
3793         * toplev.c (display_help): Kill -a -ax help.
3794
3795         * config/1750a/1750a.h, config/alpha/alpha.h,
3796         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
3797         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
3798         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
3799         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
3800
3801         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
3802         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
3803
3804         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
3805         (ix86_output_function_block_profiler): Kill.
3806         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
3807         (m68hc11_function_block_profiler): Kill.
3808         * config/m68hc11/m68hc11-protos.h: Update.
3809         * config/m88k/m88k.c (output_block_profiler): Kill.
3810         (output_function_block_profiler): Kill.
3811         * config/m88k/m88k-protos.h: Update.
3812
3813 2002-05-19  Richard Henderson  <rth@redhat.com>
3814
3815         * system.h (STRIP_NAME_ENCODING): Poison it.
3816         * output.h (STRIP_NAME_ENCODING): Remove.
3817         (default_strip_name_encoding): Declare.
3818         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
3819         * target.h (strip_name_encoding): New.
3820         * varasm.c (default_strip_name_encoding): New.
3821
3822         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
3823         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
3824         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
3825         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
3826         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
3827         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
3828         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
3829         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
3830         config/v850/v850.h: Use the hook, not the macro.
3831
3832         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
3833         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
3834         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
3835         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
3836         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
3837         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
3838         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
3839         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
3840         config/v850/v850.c, config/v850/v850.h:
3841         Move STRIP_NAME_ENCODING to out-of-line function and add
3842         TARGET_STRIP_NAME_ENCODING.
3843
3844         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
3845         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
3846         with TARGET_STRIP_NAME_ENCODING referencing existing function;
3847         make function static.
3848
3849         * xcoffout.c: Include target.h
3850         * Makefile.in (xcoffout.o): Update.
3851
3852         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
3853         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
3854         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
3855         reloc argument unused.
3856         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
3857
3858         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
3859         STRIP_NAME_ENCODING docs.
3860
3861 2002-05-19  Andreas Jaeger  <aj@suse.de>
3862
3863         * gengenrtl.c: Add prototype for excluded_rtx.
3864
3865         * real.h: Add prototype for exact_real_truncate.
3866
3867 2002-05-18  Richard Henderson  <rth@redhat.com>
3868
3869         * system.h (ENCODE_SECTION_INFO): Poison it.
3870         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
3871         * target.h (encode_section_info): New.
3872         * varasm.c (make_decl_rtl, output_constant_def): Use it.
3873         * hooks.c (hook_tree_int_void): New.
3874         * hooks.h: Declare it.
3875
3876         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
3877         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
3878         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
3879         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
3880         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
3881         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
3882         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
3883         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
3884         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
3885         config/mcore/mcore-protos.h, config/mcore/mcore.c,
3886         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
3887         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
3888         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
3889         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
3890         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
3891         referencing existing function.  Make function static.
3892
3893         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
3894         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
3895         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
3896         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
3897         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
3898         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
3899         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
3900         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
3901         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
3902         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
3903         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
3904         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
3905         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
3906         Move ENCODE_SECTION_INFO to out-of-line function and add
3907         TARGET_ENCODE_SECTION_INFO.
3908
3909         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
3910         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
3911
3912         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
3913         from SUBTARGET_*
3914         (switch_to_section): Replace in_rdata case with in_readonly_data.
3915
3916         * config/h8300/h8300.c (h8300_encode_label): Make static.
3917         * config/h8300/h8300-protos.h: Update.
3918
3919         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
3920         from rs6000_encode_section_info; make static.
3921         (rs6000_xcoff_encode_section_info): New.
3922
3923         * config/v850/v850.c (v850_encode_data_area): Make static.
3924         * config/v850/v850-protos.h: Update.
3925
3926         * config/vax/vax.c: Include flags.h.
3927         (vms_select_section): Fix typo.
3928
3929         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
3930         ENCODE_SECTION_INFO docs.
3931
3932 2002-05-18  Richard Henderson  <rth@redhat.com>
3933
3934         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
3935         REGISTER_TARGET_PRAGMAS.
3936         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
3937
3938         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
3939
3940 2002-05-18  Richard Henderson  <rth@redhat.com>
3941
3942         * system.h (SELECT_RTX_SECTION): Poison.
3943         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
3944         * target.h (select_rtx_section): New.
3945         * varasm.c (output_constant_pool): Use it.
3946         (default_select_rtx_section, default_elf_select_rtx_section): New.
3947         * output.h: Declare them.
3948
3949         * config/darwin.h (SELECT_RTX_SECTION): Move ...
3950         * config/darwin.c (machopic_select_rtx_section): ... here.
3951         * config/darwin-protos.h: Update.
3952
3953         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
3954         * config/nextstep.c (machopic_select_rtx_section): ... here.
3955         (nextstep_select_section): Rename variable to avoid macro clash.
3956         * config/nextstep-protos.h: Update.
3957
3958         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
3959         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
3960         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
3961         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
3962         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
3963         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
3964         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
3965         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
3966         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
3967         (SELECT_RTX_SECTION): Remove.
3968
3969         * config/darwin.h, config/elfos.h, config/nextstep.h,
3970         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
3971         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
3972         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
3973         config/sparc/lynx.h, config/xtensa/xtensa.c
3974         (TARGET_ASM_SELECT_RTX_SECTION): New.
3975
3976         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
3977         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
3978         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
3979         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
3980         (ia64_aix_select_rtx_section): New.
3981         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
3982         redefining.
3983         * config/mips/mips.c (mips_select_rtx_section): Make static.
3984         Support ELF SHF_MERGE features.
3985         * config/mips/mips-protos.h: Update.
3986         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
3987         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
3988         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
3989         make static, fall back to default_elf_select_rtx_section.
3990         * config/rs6000/rs6000-protos.h: Update.
3991         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
3992         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
3993         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
3994         * config/romp/romp.c (romp_select_rtx_section): New.
3995         * config/s390/s390.c (s390_select_rtx_section): New.
3996         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
3997         declarations before target macro definition.
3998         (xtensa_emit_call): Use static buffer.
3999         (xtensa_select_rtx_section): New.
4000         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
4001         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
4002         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
4003
4004         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
4005         SELECT_RTX_SECTION docs.
4006
4007 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
4008
4009         * i386.md (movsi/movdi): Fix template.
4010         (sse2 patterns): Set attributes consistently.
4011
4012         * i386.md (pushqi2, ashrqi_*): Fix constraint.
4013
4014 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
4015
4016         * optabs.c (complex_part_zero_p): New.
4017         * (expand_cmplxdiv_straight): Use it.
4018         * (expand_cmplxdiv_wide): Ditto.
4019         * (expand_binop): Ditto.
4020
4021 2002-05-18  Richard Henderson  <rth@redhat.com>
4022
4023         * final.c (HAVE_READONLY_DATA_SECTION): New.
4024         (shorten_branches): Use it instead of ifdefs.
4025         * varasm.c (enum in_section): Add in_readonly_data.
4026         (text_section, data_section): Tidy.
4027         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
4028
4029         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
4030         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
4031         (READONLY_DATA_SECTION): Don't undef.
4032
4033         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
4034         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
4035         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
4036
4037         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
4038         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
4039         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
4040         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
4041
4042         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
4043         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
4044         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
4045         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
4046         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
4047         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
4048         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
4049         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
4050         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
4051
4052         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
4053         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
4054         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
4055         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
4056         config/pa/pa64-hpux.h, config/sparc/litecoff.h
4057         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
4058
4059         * config/elfos.h, config/netware.h, config/svr3.h,
4060         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
4061         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
4062         config/h8300/h8300.h, config/i386/i386-interix.h,
4063         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
4064         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
4065
4066         * config/elfos.h, config/netware.h, config/svr3.h,
4067         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
4068         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
4069         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
4070         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
4071
4072         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
4073         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
4074         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
4075         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
4076         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
4077         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
4078         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
4079         config/rs6000/sysv4.h, config/v850/v850.h
4080         (EXTRA_SECTIONS): Remove in_const/in_rdata.
4081         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
4082
4083         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
4084         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
4085         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
4086         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
4087         * config/alpha/alpha.c (alpha_start_function): Likewise.
4088         (alpha_write_linkage): Likewise.
4089         * config/m32r/m32r.c (m32r_select_section): Likewise.
4090         * config/m88k/m88k.c (m88k_select_section): Likewise.
4091         * config/mips/mips.c (mips_select_rtx_section): Likewise.
4092         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
4093         (rs6000_elf_select_section): Likewise.
4094         * config/v850/v850.c (v850_select_section): Likewise.
4095
4096         * config/1750a/1750a.h, config/i860/sysv3.h
4097         (READONLY_DATA_SECTION_ASM_OP): New.
4098         READONLY_DATA_SECTION_ASM_OP.
4099         * config/i386/interix.c, config/i386/winnt.c
4100         (i386_pe_unique_section): Always use .rdata prefix.
4101         * config/pa/som.h (readonly_data): Always switch to read-only section.
4102         (READONLY_DATA_SECTION): Predicate on flag_pic.
4103         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
4104         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
4105         (READONLY_DATA_SECTION): Update.
4106
4107 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
4108
4109         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
4110         is used without -Wformat.
4111         * c-common.h (warn_format_zero_length): Declare extern.
4112         * c-decl.c (warn_options): Add "format-zero-length".
4113         * c-format.c (warn_format_zero_length): Declare.
4114         (set_Wformat): Set warn_format_zero_length for -Wformat.
4115         (check_format_info): Only warn about zero-length formats if
4116         warn_format_zero_length is true.  Include the format type
4117         name in the warning message.
4118         * doc/invoke.texi: Document -Wformat-zero-length.
4119         * testsuite/gcc.dg/format/zero-length-1.c: New test.
4120
4121 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
4122
4123         * timevar.c: Fix formatting.
4124         * tlink.c: Likewise.
4125         * toplev.c: Likewise.
4126         * tree-dump.c: Likewise.
4127         * tree-inline.c: Likewise.
4128
4129 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
4130
4131         * cppinit.c (cpp_post_options): If preprocessed, turn off
4132         traditional.  If traditional, turn off column numbers.
4133         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
4134         * cpptrad.c (handle_newline): Update line_base.
4135         (skip_comment): Handle -Wcomment.
4136
4137 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
4138
4139         * cppinit.c (struct builtin): Remove unused fields.
4140         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
4141         (operator_array): New - was second half of builtin_array.
4142         (init_builtins): Simplify loop over builtin_array/operator_array.
4143
4144 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
4145
4146         * defaults.h (UNIQUE_SECTION): Remove.
4147         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
4148
4149 2002-05-17  Richard Henderson  <rth@redhat.com>
4150
4151         * expr.c (init_expr_once): Don't use start/end_sequence.
4152         Use rtx_alloc instead of emit_insn.
4153         * toplev.c (lang_dependent_init): Run init_expr_once here ...
4154         (lang_independent_init): ... not here.
4155
4156 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
4157
4158         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
4159
4160 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4161
4162         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
4163         for fixed registers, possibly used for global register variables.
4164         (initial_elimination_offset, avr_output_function_prologue,
4165         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
4166
4167 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4168
4169         * Makefile.in: Update for cpptrad.c.
4170         * cpphash.h (struct cpp_buffer): New members for buffer
4171         overlays.
4172         (struct cpp_reader): New members for traditional output.
4173         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
4174         * cppinit.c (cpp_create_reader): Set trad_line.
4175         (cpp_destroy): Free trad_out_base if used.
4176         (cpp_read_main_file): Overlay an empty buffer if traditional.
4177         (cpp_finish_options): Don't do builtins.
4178         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
4179         (cpp_handle_option): Handle it.
4180         * cpplex.c (continue_after_nul): New.
4181         (_cpp_lex_direct): Use handle_nul.
4182         * cpplib.h (struct cpp_options): New traditional option.
4183         * cpptrad.c: New file.
4184
4185 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4186
4187         * c-common.c (c_common_init_options): Use C89 for Objective-C,
4188         and set the options flag.
4189         * cppinit.c (lang_flags): Remove objc.
4190         (lang_defaults): Remove OBJC and OBJCXX.
4191         (set_lang): Update.
4192         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
4193         (cpp_handle_option): Remove -+ and -lang-objc++.
4194         For ObjC, just set a flag.
4195         (print_help): Update.
4196         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
4197
4198 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4199
4200         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
4201         bootstrap with -mips3.
4202
4203 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
4204
4205         * final.c: Fix formatting.
4206         * fix-header.c: Likewise.
4207         * flow.c: Likewise.
4208         * fold-const.c: Likewise.
4209         * function.c: Likewise.
4210
4211 2002-05-17  David S. Miller  <davem@redhat.com>
4212
4213         PR c/6689, PR optimization/6615
4214         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
4215         and make it a pointer to rtx.  Update comments.
4216         (update_equiv_regs): When scanning for equivalences, record
4217         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
4218         it while making the equiv replacements.
4219
4220 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4221
4222         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
4223
4224 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
4225
4226         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
4227         when encoding visibility into SYMBOL_REF_FLAG.
4228
4229 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
4230
4231         * expr.c (force_operand): Fix reversed move.
4232
4233 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
4234
4235         * doc/install.texi (Testing): Mention two common DejaGnu warnings
4236         that can be ignored.
4237
4238 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4239
4240         * doc/install.texi (Final install): Recommend to install into a
4241         "clean" target directory.
4242
4243 2002-05-17  Richard Henderson  <rth@redhat.com>
4244
4245         * config/ia64/ia64.md: Use braced strings instead of quoted strings
4246         for code blocks.  Tidy whitespace.
4247
4248 2002-05-17  Richard Henderson  <rth@redhat.com>
4249
4250         * hooks.c (hook_tree_bool_false): New.
4251         * hooks.h: Declare it.
4252         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
4253         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
4254         * target.h (select_section, unique_section): New.
4255         (in_small_data_p): New.
4256         * varasm.c (resolve_unique_section): Use hooks instead of macros.
4257         (variable_section, output_constant_def_contents): Likewise.
4258         (default_select_section, default_unique_section): New.
4259         (categorize_decl_for_section, default_elf_select_section): New.
4260         * output.h: Declare them.
4261
4262         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
4263         (TARGET_ASM_SELECT_SECTION): New.
4264         (SELECT_SECTION): Move ...
4265         * config/darwin.c (machopic_select_section): ... here.
4266         * config/darwin-protos.h: Update.
4267
4268         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
4269         (SELECT_SECTION): Move ...
4270         * config/nextstep.c (nextstep_select_section): ... here.
4271         * config/nextstep-protos.h: Update.
4272
4273         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
4274         (TARGET_ASM_SELECT_SECTION): New.
4275         * config/svr3.h (SELECT_SECTION): Remove.
4276
4277         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
4278         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
4279         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
4280         (alpha_encode_section_info): Use it.
4281         * config/alpha/alpha-protos.h: Update.
4282         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
4283         (SELECT_SECTION, UNIQUE_SECTION): Remove.
4284         (TARGET_ASM_SELECT_SECTION): New.
4285         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
4286
4287         * config/arm/pe.h (UNIQUE_SECTION): Remove.
4288         (TARGET_ASM_UNIQUE_SECTION): New.
4289
4290         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
4291         (avr_unique_section): Rename from unique_section; make static.
4292         * config/avr/avr-protos.h: Update.
4293         * config/avr/avr.h (UNIQUE_SECTION): Remove.
4294
4295         * config/c4x/c4x.h (SELECT_SECTION): Remove.
4296
4297         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
4298         (TARGET_ASM_UNIQUE_SECTION): New.
4299         * config/i386/i386-interix.h: Likewise.
4300         * config/i386/win32.h: Likewise.
4301         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
4302         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
4303         * config/i386/sco5.h (SELECT_SECTION): Remove.
4304         (TARGET_ASM_SELECT_SECTION): New.
4305         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
4306
4307         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
4308         instead of SELECT_SECTION.
4309         * config/m68k/dpx2.h: Likewise.
4310         * config/rs6000/lynx.h: Likewise.
4311
4312         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
4313         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
4314         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
4315         (ia64_in_small_data_p): New.
4316         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
4317         (ia64_aix_select_section, ia64_aix_unique_section): New.
4318         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
4319         (SELECT_SECTION, UNIQUE_SECTION): Remove.
4320
4321         * config/m32r/m32r.h (SELECT_SECTION): Remove.
4322         (TARGET_ASM_SELECT_SECTION): New.
4323         * config/m32r/m32r.c (m32r_select_section): Take align argument.
4324         * config/m32r/m32r-protos.h: Update.
4325
4326         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
4327         (SELECT_SECTION): Move ...
4328         * config/m88k/m88k.c (m88k_select_section): ... here.
4329
4330         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
4331         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
4332         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
4333         (mcore_unique_section): Make static.
4334         * config/mcore/mcore-protos.h: Update.
4335
4336         * config/mips/elf.h (UNIQUE_SECTION): Remove.
4337         (TARGET_ASM_UNIQUE_SECTION): New.
4338         * config/mips/elf64.h: Likewise.
4339         * config/mips/iris6gld.h: Likewise.
4340         * config/mips/linux.h: Likewise.
4341         * config/mips/mips-protos.h: Update.
4342         * config/mips/mips.c (mips_select_section): Add align argument.
4343         * config/mips/mips.h (SELECT_SECTION): Remove.
4344         (TARGET_ASM_SELECT_SECTION): New.
4345
4346         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
4347         * config/mmix/mmix.c (mmix_select_section): Remove.
4348         (mmix_unique_section): Remove.
4349         * config/mmix/mmix-protos.h: Update.
4350
4351         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
4352         (SELECT_SECTION): Move ...
4353         * config/pa/pa.c (pa_select_section): ... here.
4354         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
4355
4356         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
4357         from rs6000_select_section and make static.
4358         (rs6000_elf_unique_section): Similarly.
4359         (rs6000_xcoff_select_section): From xcoff.h.
4360         (rs6000_xcoff_unique_section): Likewise.
4361         * config/rs6000/rs6000-protos.h: Update.
4362         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
4363         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
4364         * config/rs6000/xcoff.h: Likewise.
4365
4366         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
4367         (SELECT_SECTION): Move ...
4368         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
4369
4370         * config/v850/v850.h (SELECT_SECTION): Move ...
4371         * config/v850/v850.c (v850_select_section): ... here.
4372         (TARGET_ASM_SELECT_SECTION): New.
4373
4374         * config/vax/vms.h (SELECT_SECTION): Move ...
4375         * config/vax/vax.c (vms_select_section): ... here.
4376         (TARGET_ASM_SELECT_SECTION): New.
4377
4378         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
4379         for the target hooks.
4380
4381 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
4382
4383         * config/arm/arm.c (emit_multi_reg_push): Do not set
4384         RTX_FRAME_RELATED_P on the SEQUENCE.
4385
4386 2002-05-16  Richard Henderson  <rth@redhat.com>
4387
4388         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
4389         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
4390
4391 2002-05-16  Richard Henderson  <rth@redhat.com>
4392
4393         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
4394
4395         * config/ia64/ia64.c (saveable_obstack): Do not declare.
4396
4397 2002-05-16  Richard Henderson  <rth@redhat.com>
4398
4399         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
4400         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
4401         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
4402         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
4403         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
4404         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
4405         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
4406         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
4407         Revert "Basic block renumbering removal", and two followup patches.
4408
4409 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
4410
4411         * lcm.c (optimize_mode_switching): Revert previous change.
4412
4413 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4414
4415         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
4416         with only extant block numbers.
4417
4418 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
4419
4420         * lcm.c (optimize_mode_switching): Fix typo.
4421
4422 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4423
4424         * flow.c (calculate_global_regs_live): Queue blocks in program order.
4425
4426 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4427
4428         * doc/install.texi (Configuration): Document PWDCMD.
4429
4430 2002-05-16  Dale Johannesen  <dalej@apple.com>
4431
4432         * combine.c (cant_combine_insn_p):  Reenable combinations
4433         involving hard regs unless CLASS_LIKELY_SPILLED_P.
4434
4435 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4436
4437         * c-common.c (cb_register_builtins): Handle more built-ins
4438         here rather than in gcc.c specs.
4439         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
4440         (cpp_options): Pass -O flags even when only preprocessing.
4441         * toplev.c (set_fast_math_flags): New prototype.
4442         (fast_math_flags_set_p): New.
4443         (set_no_fast_math_flags): Remove.
4444         (decode_f_option): Update.
4445         * toplev.h (set_fast_math_flags): Update.
4446         (fast_math_flags_set_p): New.
4447         (set_no_fast_math_flags): Remove.
4448 config:
4449         * c4x/c4x.c (c4x_override_options): Update.
4450
4451 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
4452
4453         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
4454         Default-define here.
4455         (builtin_define_with_value): Can now wrap the expansion in
4456         quotation marks if such is wanted.
4457         (cb_register_builtins): Update calls to builtin_define_with_value.
4458         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
4459         here.
4460         (c_common_init): Set options->stdc_0_in_system_headers.
4461         * c-lex.h: Update prototype of builtin_define_with_value.
4462         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
4463         and REGISTER_PREFIX.
4464
4465         * cppinit.c (VERS, ULP, C, X): Kill.
4466         (builtin_array): Remove entries for __VERSION__,
4467         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
4468         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
4469         a constant.
4470         (init_builtins): Kill off a bunch of now-dead code.
4471         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
4472         -fno-leading-underscore.
4473         (cpp_handle_option): Remove code to set user_label_prefix.
4474         (cpp_post_options): Likewise.
4475
4476         * cpplib.h (struct cpp_options): Remove user_label_prefix.
4477         (stdc_0_in_system_headers): New.
4478         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
4479         stdc_0_in_system_headers) too to decide the value of __STDC__.
4480
4481         * tradcpp.c (user_label_prefix): Kill.
4482         (main): Remove code handling -f(no-)leading-underscore.
4483         (initialize_builtins): Don't define __REGISTER_PREFIX__
4484         or __USER_LABEL_PREFIX__.
4485         (install_value): Wrap compound statement in dummy loop so the
4486         macro works properly in an if statement.
4487
4488
4489 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
4490
4491         * loop.h (struct loop_info): Add member has_prefetch.
4492         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
4493         (prescan_loop): Initialize has_prefetch.
4494         (struct prefetch_info): Change prefetch_in_loop and
4495         prefetch_before_loop from bit fields to ints.
4496         (emit_prefetch_instructions): Several small fixes.
4497         (check_dbra_loop): Don't reverse loop that uses prefetch.
4498
4499 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4500
4501         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
4502         * configure.in: Likewise.
4503         * fixinc/check.tpl: Likewise.
4504         * fixinc/fixinc.dgux: Likewise.
4505         * fixinc/fixinc.svr4: Likewise.
4506         * fixinc/fixinc.winnt: Likewise.
4507         * fixinc/fixincl.sh: Likewise.
4508         * fixproto: Likewise.
4509         * configure: Regenerate.
4510
4511 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4512
4513         Basic block renumbering removal:
4514         * basic_block.h (struct basic_block_def): Renamed index to sindex,
4515         added prev_bb and next_bb fields.
4516         (n_basic_blocks): Renamed to num_basic_blocks.
4517         (last_basic_block): New, index of last basic block.
4518         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
4519         traversing basic block chain.
4520         (BLOCK_NUM): index -> sindex.
4521         (create_basic_block_structure, create_basic_block): Declaration changed.
4522         (debug_num2bb): Declare.
4523         (expunge_block_nocompact): Declaration removed.
4524         (link_block, unlink_block, compact_blocks): Declare.
4525         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
4526         * cfg.c (entry_exit_blocks): Initialize new fields.
4527         (clear_edges, alloc_block, expunge_block, cached_make_edge,
4528         redirect_edge_pred, dump_flow_info, dump_edge_info,
4529         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
4530         free_aux_for_edges): Modified.
4531         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
4532         (expunge_block_nocompact): Removed.
4533         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
4534         find_unreachable_blocks, create_edge_list, print_edge_list,
4535         verify_edge_list, flow_edge_list_print, remove_fake_successors,
4536         remove_fake_edges, flow_reverse_top_sort_order_compute,
4537         flow_depth_first_order_compute, flow_preorder_transversal_compute,
4538         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
4539         flow_dfs_compute_reverse_execute): Modified.
4540         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
4541         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
4542         Modified.
4543         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
4544         merge_blocks_move_predecessor_nojumps,
4545         merge_blocks_move_successor_nojumps, merge_blocks,
4546         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
4547         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
4548         * cfglayout.c (skip_insns_after_block, label_for_bb,
4549         record_effective_endpoints, scope_to_insns_finalize,
4550         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
4551         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
4552         cfg_layout_duplicate_bb): Modified.
4553         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
4554         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
4555         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
4556         flow_loops_find, flow_loop_outside_edge_p): Modified.
4557         * cfgrtl.c (create_basic_block_structure, create_basic_block,
4558         flow_delete_block, compute_bb_for_insn, split_block,
4559         try_redirect_by_replacing_jump, redirect_edge_and_branch,
4560         force_nonfallthru_and_redirect, tidy_fallthru_edge,
4561         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
4562         commit_edge_insertions, commit_edge_insertions_watch_calls,
4563         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
4564         purge_all_dead_edges): Modified.
4565         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
4566         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
4567         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
4568         Modified.
4569         * conflict.c (conflict_graph_compute): Modified.
4570         * df.c (FOR_ALL_BBS): Removed.
4571         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
4572         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
4573         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
4574         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
4575         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
4576         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
4577         * final.c (compute_alignments, final_scan_insn): Modified.
4578         * flow.c (verify_local_live_at_start, update_life_info,
4579         update_life_info_in_dirty_blocks, free_basic_block_vars,
4580         delete_noop_moves, calculate_global_regs_live,
4581         initialize_uninitialized_subregs, allocate_bb_life_data,
4582         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
4583         mark_used_reg, count_or_remove_death_notes): Modified.
4584         * function.c (thread_prologue_and_epilogue_insns): Modified.
4585         * gcse.c (struct null_pointer_info): Change typo of current_block
4586         to basic_block.
4587         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
4588         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
4589         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
4590         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
4591         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
4592         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
4593         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
4594         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
4595         pre_delete, one_pre_gcse_pass, compute_transpout,
4596         invalidate_nonnull_info, delete_null_pointer_checks_1,
4597         free_code_hoist_mem, compute_code_hoist_vbeinout,
4598         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
4599         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
4600         compute_store_table, build_store_vectors, insert_insn_start_bb,
4601         insert_store, replace_store_insn, free_store_memory, store_motion):
4602         Modified.
4603         * global.c (global_alloc, global_conflicts, mark_elimination,
4604         build_insn_chain): Modified.
4605         * graph.c (print_rtl_graph_with_bb): Modified.
4606         * haifa-sched.c (sched_init): Modified.
4607         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
4608         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
4609         if_convert): Modified.
4610         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
4611         compute_insert_delete, pre_edge_lcm, compute_available,
4612         compute_farthest, compute_nearerout, compute_rev_insert_delete,
4613         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
4614         Modified.
4615         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
4616         * loop.c (loop_dump_aux): Modified.
4617         * predict.c (combine_predictions_for_insn, estimate_probability,
4618         last_basic_block_p, process_note_prediction, process_note_predictions,
4619         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
4620         expensive_function_p, estimate_bb_frequencies,
4621         compute_function_frequency): Modified.
4622         * print-rtl.c (print_rtx): Modified.
4623         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
4624         get_exec_counts, compute_branch_probabilities, compute_checksum,
4625         branch_prob, find_spanning_tree): Modified.
4626         * recog.c (split_all_insns, peephole2_optimize): Modified.
4627         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
4628         convert_regs_1, convert_regs_2, convert_regs): Modified.
4629         * regclass.c (scan_one_insn, regclass): Modified.
4630         * regmove.c (mark_flags_life_zones, regmove_optimize,
4631         combine_stack_adjustments): Modified.
4632         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
4633         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
4634         * reorg.c (dbr_schedule): Modified.
4635         * resource.c (find_basic_block, init_resource_info): Modified.
4636         * sbitmap.c (sbitmap_intersection_of_succs,
4637         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
4638         sbitmap_union_of_preds): Modified.
4639         * sched-deps.c (init_dependency_caches): Modified.
4640         * sched-ebb.c (schedule_ebbs): Modified.
4641         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
4642         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
4643         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
4644         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
4645         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
4646         ssa_const_prop): Modified.
4647         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
4648         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
4649         * ssa.c (remove_phi_alternative, find_evaluations,
4650         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
4651         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
4652         make_regs_equivalent_over_bad_edges,
4653         make_equivalent_phi_alternatives_equival,
4654         compute_conservative_reg_partition,
4655         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
4656         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
4657         Modified.
4658
4659 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
4660
4661         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
4662
4663 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
4664
4665         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
4666         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
4667         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
4668         calling CONSTANT_POOL_ADDRESS_P.
4669         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
4670         to decide whether to define __arm__ or __thumb.
4671         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
4672         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
4673
4674 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4675
4676         * config/arc/arc.h (CPP_PREDEFINES): Remove.
4677         (CPP_SPEC): Update.
4678         (TARGET_CPU_CPP_BUILTINS): New.
4679
4680 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4681
4682         * cpphash.h (cpp_macro): Move here, and make expansion a union.
4683         * cppmacro.c (cpp_macro): Remove.
4684         (enter_macro_context, replace_args, warn_of_redefinition,
4685         _cpp_create_definition, cpp_macro_definition): Update.
4686
4687 2002-05-16  Jason Merrill  <jason@redhat.com>
4688
4689         * config/mips/mips.c (mips_output_external): Don't do sdata
4690         optimization for a variable with DECL_COMDAT set.
4691
4692 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
4693
4694         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
4695         Cleanups for accepting modifiers on pointers.
4696         Fix predicate typos.
4697         Allow long pointers as well as int pointers.
4698
4699 2002-05-15  Richard Henderson  <rth@redhat.com>
4700
4701         * varasm.c (merge_weak): Remove special case for extern and common.
4702
4703 2002-05-15  Matt Hiller  <hiller@redhat.com>
4704
4705         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
4706         XFAILing.
4707         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
4708         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
4709         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
4710         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
4711         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
4712         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
4713
4714 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
4715
4716         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
4717
4718 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
4719
4720         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
4721         ("altivec_mfvscr"): Read from VSCR.
4722
4723         Add vscr sets for the following insns: altivec_vctuxs,
4724         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
4725         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
4726         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
4727         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
4728         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
4729         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
4730         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
4731         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
4732         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
4733         altivec_vsum2sws, altivec_vsumsws.
4734
4735         * config/rs6000/rs6000.h: Add VSCR fixed register.
4736         (CALL_REALLY_USED_REGISTERS): Add vscr.
4737         (CALL_USED_REGISTERS): Same.
4738         (FIXED_REGISTERS): Same.
4739         (REG_ALLOC_ORDER): Same.
4740         (reg_class): Add VSCR_REGS.
4741         (REG_CLASS_NAMES): Same.
4742         (REG_CLASS_CONTENTS): Same.
4743         (VSCR_REGNO): New.
4744         (REGISTER_NAMES): Add vscr.
4745         (DEBUG_REGISTER_NAMES): Same.
4746         (ADDITIONAL_REGISTER_NAMES): Same.
4747         (FIRST_PSEUDO_REGISTER): Increment.
4748         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
4749
4750 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
4751
4752         * fold-const.c (fold): Fix a typo.
4753
4754 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
4755
4756         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
4757         comparison against the highest or lowest integer value before
4758         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
4759         transformation and that of an unsigned comparison against 0
4760         right after.
4761
4762 2002-05-15  Richard Henderson  <rth@redhat.com>
4763
4764         * varasm.c (merge_weak): Error for any weakening after definition.
4765         Adjust weakening after use warning to catch more cases.
4766         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
4767         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
4768
4769 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
4770
4771         * invoke.texi (-malign-double): Re-add lost warning.
4772
4773         * i386-protos.h (x86_output_mi_thunk): Declare.
4774         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
4775         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
4776
4777         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
4778         when flag_asynchronous_unwind_tables is set.
4779
4780         * flags.h (flag_reorder_functions): Declare.
4781         * function.c (prepare_function_start): Initialize frequnecy.
4782         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
4783         * Makefile.in (predict.o): Add dependency on target.h and params.h
4784         * defaults.h (HOT_TEXT_SECTION_NAME,
4785         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
4786         * predict.c (choose_function_section): New function.
4787         (estimate_bb_frequencies): Use it.
4788         * toplev.c (flag_reorder_functions): New global variable.
4789         (lang_independent_options): New.
4790         (parse_options_and_default_flags): Set.
4791         * varasm.c (assemble_start_function): Bypass functdion alignment
4792         for never executed functions.
4793         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
4794         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
4795         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
4796         Document.
4797
4798         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
4799
4800         * predict.c: Inlude profile.h
4801         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
4802         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
4803         Use the information about maximal counter in the program.
4804
4805         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
4806
4807         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
4808         probably_never_executed_bb_p): New functions.
4809         * cfgcleanup.c (outgoing_edges_match): Use them.
4810         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
4811         (maybe_hot_bb_p, probably_cold_bb_p,
4812         probably_never_executed_bb_p): New functions.
4813
4814         * function.h (function): Add new field function_frequency.
4815         * predict.c (compute_function_frequency): New function.
4816         (estimate_probability): Call it.
4817
4818 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
4819
4820         PR optimization/5172, optimization/5200
4821         * gcse.c (gcse_main): Disable store_motion.
4822
4823 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
4824
4825         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
4826         (c_common_nodes_and_builtins): Use it.
4827         (builtin_define_with_value): New function.
4828         (cb_register_builtins): Define __SIZE_TYPE__,
4829         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
4830         using builtin_define_with_value.  Use consistent notation when
4831         defining __GXX_WEAK__.
4832         (WCHAR_TYPE_SIZE): Don't redefine.
4833         (combine_strings): Don't use WCHAR_TYPE_SIZE.
4834
4835         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
4836         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
4837         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
4838         * tradcpp.c (initialize_builtins): Likewise.
4839         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
4840
4841         * c-lex.h (builtin_define_with_value): Prototype.
4842         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
4843         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
4844         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
4845
4846         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
4847         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
4848         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
4849         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
4850         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
4851         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
4852         config/sparc/sol2-bi.h, config/sparc/sparc.h:
4853         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
4854         to __SIZE_TYPE__ etc from all spec strings. When this makes
4855         extra specs empty, delete them.
4856
4857 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4858
4859         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
4860         for PA8000 or generating dwarf2 call frame information.
4861         (output_call): Remove DO_FRAME_NOTES check from return pointer
4862         optimization.
4863         (following_call): Return 0 when scheduling for PA8000 or generating
4864         dwarf2 call frame information.  Revise comment.
4865
4866 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4867
4868 config/alpha:
4869         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
4870         and __IEEE_FP_INEXACT as appropriate.
4871         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
4872         (CPP_SPEC): Remove ieee defines.
4873         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
4874
4875 2002-05-14  Richard Henderson  <rth@redhat.com>
4876
4877         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
4878         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
4879
4880 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4881
4882         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
4883         (CPP_SPEC): Update.
4884         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
4885         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
4886         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
4887         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
4888         (EXTRA_SPECS): Update.
4889         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
4890         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
4891         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
4892         define TARGET_OS_CPP_BUILTINS if necessary.
4893
4894 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4895
4896         * gcc.c (cpp_options): Must pass -m* and -f* options
4897         to the front end even when only preprocessing.
4898         (cc1_options): Remove redundant -lang-c.
4899         * tradcpp.c (main): Ignore -m options.
4900 objc:
4901         * lang-specs.h: Similarly.
4902
4903 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
4904
4905         * genautomata.c (transform_3): Add code for transformation
4906         `(A,B,...)+C -> A+C,B,...'.
4907
4908 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
4909
4910         * final.c (end_final): Do not output profile_arcs constructor, when
4911         no functions are instrumented.
4912
4913 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
4914
4915         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
4916
4917 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4918
4919         * doc/install.texi: Remove special markup originally required for
4920         HTML generation with texi2html.
4921
4922 2002-05-14  Andreas Schwab  <schwab@suse.de>
4923
4924         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
4925         SELECT_SECTION.
4926         (UNIQUE_SECTION): Define to get small data correctly.
4927
4928         * varasm.c (resolve_unique_section): Add third parameter
4929         flag_function_or_data_sections and use it instead of
4930         flag_function_sections.
4931         (assemble_start_function): Pass flag_function_sections.
4932         (asm_emit_uninitialised): Pass flag_data_sections.
4933         (assemble_variable): Likewise.
4934
4935 2002-05-14  Richard Henderson  <rth@redhat.com>
4936
4937         * config/i386/i386.md: Use define_constants for unspec numbers.
4938         * config/i386/i386.c: Likewise.
4939
4940 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
4941
4942         * doc/contrib.texi: Update my entry.
4943
4944 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
4945
4946         * fixinc/inclhack.def (winidss_valist): Limit applicability.
4947         * fixinc/fixincl.x: Regenerated.
4948         * fixinc/tests/base/math.h: Update.
4949         * fixinc/tests/base/testing.h: Likewise.
4950
4951 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
4952
4953         * genattr.c (gen_attr): Don't emit a comma after the last
4954         enumerator.
4955
4956 2002-05-13  Richard Henderson  <rth@redhat.com>
4957
4958         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
4959         by non-local gotos.
4960         * recog.c (peephole2_optimize): Likewise.
4961
4962 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
4963
4964         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
4965         input to O_BINARY.
4966
4967 2002-05-13  Jeffrey A Law  (law@redhat.com)
4968
4969         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
4970         Update prototype and callers.
4971         (propagate_one_insn): Stack pointer adjustments kill MEMs on
4972         the mem_set_list which reference the stack pointer, as do
4973         calls to constant functions as they may clobber outgoing
4974         argument space.
4975
4976         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
4977
4978         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
4979         (ia32_multipass_dfa_lookahead): New function.
4980
4981 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
4982
4983         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
4984         (translate_options): Remove 'V'.
4985         (process_command): Similarly.
4986 doc:
4987         * invoke.texi: Remove documentation of 'V'.
4988
4989 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
4990
4991         * config/s390/linux.h: Revert 2002-04-22 changes.
4992
4993 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
4994
4995         * config/fr30/fr30.md: Only allow splits of immediate loads
4996         if the destination is a register.
4997
4998 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
4999
5000         * Makefile.in (c-common.o, cppinit.o): Update.
5001         * c-common.c: Include except.h.
5002         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
5003         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
5004         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
5005         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
5006         CPP_PREDEFINES): Handle here.
5007 config:
5008         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
5009         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
5010         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
5011         TARGET_OS_CPP_BUILTINS.
5012         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
5013         (CPP_SPEC, EXTRA_SPECS): Update.
5014         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
5015         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
5016         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
5017         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
5018         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
5019 doc:
5020         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
5021         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
5022
5023 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
5024
5025         * emit-rtl.c (global_rtl): Update comment.
5026         (const_double_htab, const_double_htab_hash,
5027         const_double_htab_hash, lookup_const_double): New.
5028         (const_int_htab_hash, const_int_htab_eq): Remove const
5029         qualifiers, which cause tons of warnings with RTL checking on.
5030         (gen_rtx_CONST_DOUBLE): Deleted.
5031         (const_double_from_real_value): New function - bears some
5032         resemblance to the former immed_real_const_1.
5033         (immed_double_const): Moved here from varasm.c and
5034         simplified.
5035         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
5036         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
5037         (gen_rtx): Use immed_double_const.
5038         (init_emit_once): Initialize the const_double_htab.  Use
5039         REAL_VALUE_FROM_INT where possible.  Can now use
5040         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
5041         * varasm.c (struct varasm_status): Remove x_const_double_chain.
5042         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
5043         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
5044         (init_varasm_status, mark_varasm_status): Don't touch
5045         x_const_double_chain.
5046
5047         * output.h: Delete prototype for clear_const_double_mem.
5048         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
5049         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
5050         const_double_from_real_value, not immed_real_const_1, and use
5051         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
5052         CONST_DOUBLE_ATOF.
5053         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
5054         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
5055         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
5056         (gen_rtx_REG): Second arg is unsigned.
5057
5058         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
5059         (excluded_rtx): New, return true for CONST_DOUBLE.
5060         (genmacro): Write nothing for excluded codes.
5061         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
5062         * expr.c (expand_expr): Likewise.
5063         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
5064         CONST_DOUBLE_CHAIN.
5065         * toplev.c (rest_of_compilation): Don't call
5066         clear_const_double_mem.
5067
5068         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
5069         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
5070         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
5071         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
5072         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
5073         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
5074         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
5075         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
5076
5077 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5078
5079         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
5080
5081 2002-05-12  Tom Tromey  <tromey@redhat.com>
5082
5083         * tree.h (copy_node): Don't mention TREE_PERMANENT.
5084
5085 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
5086
5087         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
5088         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
5089         * gensupport.h: Prototype new routines.
5090         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
5091         use of printf.
5092         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
5093         (next_comma_elt): Use scan_comma_elt.
5094
5095         * config/i386/i386.md: Use new attribute notation to break up
5096         long lines in define_attr forms.
5097
5098 2002-05-12  Richard Henderson  <rth@redhat.com>
5099
5100         * expr.c (compress_float_constant): New.
5101         (emit_move_insn): Use it.
5102         (float_extend_from_mem): New.
5103         (init_expr_once): Initialize it.
5104         * real.c (exact_real_truncate): New.
5105
5106         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
5107         dropped into memory; penalize for size.
5108         (RTX_COSTS): FLOAT_EXTEND is free.
5109         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
5110         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
5111
5112 2002-05-12  Richard Henderson  <rth@redhat.com>
5113
5114         * profile.h (profile_info): Add missing extern to declaration.
5115         * profile.c (profile_info): Define it.
5116
5117 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5118
5119         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
5120         used for DImode and TImode.
5121
5122 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5123
5124         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
5125         fake a newline.
5126
5127 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
5128
5129         * config/rs6000/rs6000.c (rs6000_default_long_calls,
5130         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
5131         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
5132         (rs6000_override_options): Handle -m(no-)longcall.
5133         (init_cumulative_args, output_mi_thunk): Check for both
5134         longcall and shortcall attributes on the function.
5135         (rs6000_attribute_table): Add "shortcall".
5136         (rs6000_handle_longcall_attribute): Update comment.
5137         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
5138         altivec_expand_ternop_builtin): Add default clauses to switches
5139         to silence warnings.
5140
5141         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
5142         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
5143         (TARGET_OPTIONS): Add longcall and no-longcall.
5144
5145         * config/rs6000/rs6000.md (call_nonlocal_sysv,
5146         call_value_nonlocal_sysv): Split by alternatives.  One pair
5147         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
5148         the call cookie.  The other pair accepts only LR/CTR and has
5149         no restriction.
5150
5151         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
5152         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
5153         tmake_file.
5154         * config/rs6000/rs6000-c.c: New file.
5155         * config/rs6000/t-rs6000-c-rule: New file.
5156         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
5157         Prototype rs6000_pragma_longcall.
5158
5159         * doc/extend.texi: Document shortcall attribute.
5160         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
5161
5162 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5163
5164         * reorg.c (dbr_schedule): Remove unnecessary test.
5165
5166 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
5167
5168         * i386.md (testsi to testqi spliters): New.
5169
5170         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
5171
5172         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
5173
5174         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
5175
5176         * basic-block.h: New flag EDGE_CAN_FALLTHRU
5177         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
5178         that can be made fallthru.
5179
5180         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
5181
5182         * cfglayout.c (cleanup_unconditional_jumps): New static function.
5183         (cfg_layout_initialize): Use it.
5184
5185 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5186
5187         * config/avr/avr.c (avr_mcu_types): Update supported devices.
5188         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
5189         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
5190
5191 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
5192
5193         * dbxout.c: Fix formatting.
5194         * dependence.c: Likewise.
5195         * df.c: Likewise.
5196         * diagnostic.c: Likewise.
5197         * doloop.c: Likewise.
5198         * dominance.c: Likewise.
5199         * doschk.c: Likewise.
5200         * dwarf2asm.c: Likewise.
5201         * dwarf2out.c: Likewise.
5202         * dwarfout.c: Likewise.
5203
5204 2002-05-10  Richard Henderson  <rth@redhat.com>
5205
5206         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
5207         Convert integers constants as needed.  Replace "nwords" field with
5208         "sizeof_bb".
5209         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
5210         * function.h: Fix typo in comment.
5211         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
5212
5213 2002-05-10  Roger Sayle  <roger@eyesopen.com>
5214
5215         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
5216         into the equivalent (signed char)c > 0.
5217
5218 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
5219
5220         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
5221         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
5222         (struct prefetch_info): Fix spelling of member bytes_accessed.
5223         (emit_prefetch_instructions): Make dump messages more regular;
5224         restructure code to add more dump messages; use new macros for
5225         heuristics. (There are no code generation changes in any of this).
5226
5227 2002-05-10  David S. Miller  <davem@redhat.com>
5228
5229         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
5230         (struct rtx_def): Update unchanging flag comment.
5231         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
5232         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
5233         to be handled to INSN too.
5234         (dbr_schedule): Likewise.
5235         * resource.c (next_insn_no_annul): Likewise.
5236
5237         * cse.c (rtx_cost): Remove multiplication by power of 2 special
5238         casing.
5239
5240 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5241
5242         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
5243         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
5244         (possibly) work around broken /bin/sh.
5245
5246 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5247
5248         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
5249         . as N64/N32 libgcc_s.so subdirs.
5250
5251 2002-05-10  David S. Miller  <davem@redhat.com>
5252
5253         * config/sparc/sparc.md: Use define_constants for unspec numbers.
5254
5255         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
5256         more accurately.
5257         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
5258         comment.
5259         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
5260         * doc/rtl.texi: Document these macros more accurately.
5261         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
5262         JUMP_INSNs and CALL_INSNs.
5263         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
5264         or INSN_FROM_TARGET_P if the code is appropriate.
5265
5266 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5267
5268         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
5269         before using SYMBOL_REF_FLAG (addr).
5270
5271         * config/avr/avr-protos.h (avr_io_address_p): Declare.
5272         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
5273         Make non-static.  Update all callers.
5274         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
5275         New insns to clear/set/test a single bit in I/O address space.
5276
5277 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5278
5279         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
5280
5281 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5282
5283         * Makefile.in: Update.
5284         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
5285         builtin_define_std): New.
5286         (c_common_init): Register CPP builtins callback.
5287         * c-common.h (flag_iso, flag_undef): New.
5288         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
5289         * c-lex.c: Don't include target.h.
5290         (cb_register_builtins): Move to c-common.c.
5291         (init_c_lex): Don't register hook here.
5292         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
5293         (cpp_define, cpp_assert): Remove.
5294         * gcc.c (cc1_options): Pass -undef to front end.
5295         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
5296         (TARGET_INITIALIZER): Update.
5297         * target.h (struct cpp_reader): Don't predeclare.
5298         (struct gcc_target): Remove cpp builtin hook.
5299         * tree.c (default_register_cpp_builtins): Remove.
5300 doc:
5301         * tm.texi: Update.
5302
5303 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5304
5305         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
5306
5307 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5308
5309         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
5310         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
5311
5312 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
5313
5314         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
5315         * config/sparc/libgcc-sparc-glibc.ver: New file.
5316         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
5317         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
5318
5319 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
5320
5321         PR target/6429
5322         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
5323         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
5324         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
5325         base multilibs.
5326         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
5327         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
5328         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
5329         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
5330
5331 2002-05-09  Richard Henderson  <rth@redhat.com>
5332
5333         * config/ia64/ia64.md: Use define_constants for unspec numbers.
5334         * config/ia64/ia64.c: Likewise.
5335
5336 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
5337
5338         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
5339         (save_restore_insns): Likewise.
5340         (mips_expand_prologue, mips_expand_epilogue): Update callers.
5341         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
5342
5343 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)
5344
5345         * athlon.md, k6.md, pentium.md, ppro.md): New files.
5346         * i386.md: Move scheduling information into new files.
5347
5348         * i386.md (type attribute): Add "rotate" for rotate insns.
5349         (rotate insns): Set type to "rotate".
5350         (various attributes and function units): Treat rotate like shift.
5351         (pent_pair attribute): Only rotates by one bit position are
5352         pairable.
5353         (sbb insns): Explicitly set pent_pair attribute on a couple
5354         that were missing it.
5355
5356 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
5357
5358         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
5359         make sure that buffer starts on odd word address.
5360         (sh_va_arg): Skip odd fp registers when reading a double precision
5361         value.
5362
5363 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5364
5365         * tree.h (preserve_data, object_permanent_p, type_precision):
5366         Remove.
5367
5368 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5369
5370         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
5371         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
5372 doc:
5373         * cpp.texi: Update for removal of obsolete features.
5374
5375 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
5376                           Jeffrey A Law  (law@redhat.com)
5377
5378         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
5379         the DFA interface for Pentium processors.
5380         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
5381         (attr_pent_pair, ix86_pent_find_pair): Remove.
5382         (ix86_sched_reorder_pentium): Remove.
5383         (ix86_sched_reorder): Remove reordering for Pentium.
5384         * i386.md (Pentium scheduling): Rewrite using DFA description.
5385
5386 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
5387
5388         * cfganal.c (can_fallthru): Fix fast path.
5389         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
5390         with edges to the next block.
5391
5392 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
5393                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
5394
5395         * final.c (end_final): Use C trees to output data structures for profiling.
5396
5397         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
5398         (profile.o): New dependency profile.h
5399         (final.o): New dependency profile.h
5400         * profile.h: New file. New global structure profile_info.
5401         * final.h (count_edges_instrumented_now): Declare.
5402         (current_function_cfg_checksum): Declare.
5403         (function_list): New structure.
5404         (functions_head, functions_tail): New static variables.
5405         (end_final): Emits more data, removed some -ax stuff.
5406         (final): Stores function names and chcksums.
5407         * gcov-io.h (__write_gcov_string): New function.
5408         (__read_gcov_string): New function.
5409         * gcov.c (read_profile): New function.
5410         (create_program_flow_graph): Uses read_profile instead of reading
5411         da_file.
5412         (read_files): Removed da_file checking, it's done by read_profile now.
5413         * libgcc2.c (bb_function_info): New structure.
5414         (bb): New field in structure, removed some -ax stuff.
5415         (__bb_exit_func): Changed structure of da_file.
5416         * profile.c (count_edges_instrumented_now): New global variable.
5417         (current_function_cfg_checksum): New global variable.
5418         (max_counter_in_program): New global variable.
5419         (get_exec_counts): New function.
5420         (compute_checksum): New function.
5421         (instrument_edges): Sets count_edges_instrumented_now.
5422         (compute_branch_probabilities): Uses get_exec_counts instead of
5423         reading da_file.
5424         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
5425         (init_branch_prob): Removed da_file checking, done in get_exec_counts
5426         now.
5427         (end_branch_prob): Removed da_file checking, done in get_exec_counts
5428         now.
5429         * gcov.texi: Updated information about gcov file format.
5430
5431 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
5432
5433         * sbitmap.c: Fix formatting.
5434         * scan.c: Likewise.
5435         * scan-decls.c: Likewise.
5436         * sched-deps.c: Likewise.
5437         * sched-ebb.c: Likewise.
5438         * sched-rgn.c: Likewise.
5439         * sched-vis.c: Likewise.
5440         * sdbout.c: Likewise.
5441         * sibcall.c: Likewise.
5442         * simplify-rtx.c: Likewise.
5443         * ssa.c: Likewise.
5444         * ssa-ccp.c: Likewise.
5445         * ssa-dce.c: Likewise.
5446         * stmt.c: Likewise.
5447         * stor-layout.c: Likewise.
5448         * stringpool.c: Likewise.
5449
5450 2002-05-09  David S. Miller  <davem@redhat.com>
5451
5452         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
5453
5454 2002-05-07  David S. Miller  <davem@redhat.com>
5455
5456         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
5457         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
5458         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
5459         library implementation clobbers the output before the inputs
5460         are fully consumed, use stack temporary for the output.
5461
5462 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
5463
5464         * config/netbsd.h (CPP_SPEC): Remove.
5465         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
5466         * config/i386/netbsd.h (CPP_SPEC): Define.
5467         * config/ns32k/netbsd.h (CPP_SPEC): Define.
5468         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
5469         * config/sparc/netbsd.h (CPP_SPEC): Define.
5470         * config/vax/netbsd.h (CPP_SPEC): Define.
5471
5472 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
5473
5474         * read-rtl.c: Fix formatting.
5475         * real.c: Likewise.
5476         * recog.c: Likewise.
5477         * regclass.c: Likewise.
5478         * regmove.c: Likewise.
5479         * reg-stack.c: Likewise.
5480         * reload1.c: Likewise.
5481         * reload.c: Likewise.
5482         * resource.c: Likewise.
5483         * rtlanal.c: Likewise.
5484         * rtl.c: Likewise.
5485         * rtl-error.c: Likewise.
5486
5487 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5488
5489         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
5490         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
5491
5492 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
5493
5494         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
5495         use __SSE2__ macro instead.
5496         * config/i386/xmmintrin.h: Likewise.
5497
5498 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
5499
5500         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
5501         and use it in all invocations of these macros.  Clean up comments.
5502         * rtl.c (rtl_check_failed_flag): Add an argument for the name
5503         of the flag access macro whose check failed.
5504         * doc/rtl.texi (Flags): Document additional flag uses.
5505
5506 2002-05-08  Robert Spier <rspier@pobox.com>
5507             Neil Booth  <neil@daikokuya.demon.co.uk>
5508
5509         PR preprocessor/6521
5510         * cppfiles.c (handle_missing_header): Don't do anything
5511         different for <> includes.
5512 doc:
5513         * cppopts.texi: Update documentation for -MG.
5514
5515 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
5516
5517         * cpplex.c (cpp_interpret_charconst): Truncate as well as
5518         sign-extend.
5519 doc:
5520         * cpp.texi: Clarify multichar charconst valuation.
5521
5522 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
5523
5524         * doc/invoke.texi: Document -mwindiss option.
5525
5526 2002-05-08  Jason Merrill  <jason@redhat.com>
5527
5528         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
5529
5530         * dwarf2out.c (gen_type_die): Abort on broken recursion.
5531
5532         PR c++/6381
5533         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
5534         REAL_CST.
5535
5536 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
5537
5538         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
5539         little-endian multilibs to override arm/thumb multilibs.
5540         Do not build hardware floating point multilibs, nor apcs-26
5541         multilibs for the Thumb.
5542
5543 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
5544
5545         PR c/6569.
5546         * varasm.c (mark_weak): New function.
5547         (merge_weak): Use it.  Do not call declare_weak.
5548         (declare_weak): Use merge_weak.
5549
5550 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
5551
5552         * cse.c (dead_libcall_p): Update counts.
5553         (delete_trivially_dead_insns): Update call of dead_libcall_p.
5554
5555 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
5556
5557         * cfglayout.c (function_tail_eff_head): Rename to ...
5558         (function_footer): ... this one.
5559         (unlink_insn_chain): New functions.
5560         (label_for_bb): Only call block_label and emit debug message.
5561         (record_effective_endpoints): Actually unlink the headers and footers.
5562         (fixup_reorder_cahin): Re-insert the unlinked sequences.
5563         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
5564         * cfglayout.h (struct reorder_block_def): New fields footer/header;
5565         remove eff_head/eff_end.
5566         * rtl.h (set_first_insn): Declare.
5567         * emit-rtl.c (set_first_insn): New function.
5568
5569         * cfglayout.c (fixup_reorder_chain): Dump duplicated
5570         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
5571         cfg_layout_duplicate_bb): New global function.
5572         (duplicate_insn_chain): New static function.
5573         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
5574         cfg_layout_duplicate_bb): Declare.
5575         (struct reorder_block_def): Add "original" field.
5576         * emit-rtl.c (emit_copy_of_insn_after): New function.
5577         * rtl.h (emit_copy_of_insn_after): Declare.
5578
5579         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
5580         (fixup_reorder_chain): properly handle edges to exit block.
5581
5582 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5583                                Jan Hubicka  <jh@suse.cz>
5584
5585         * basic-block.h (note_prediction_to_br_prob): declare.
5586         * c-semantics.c: Inlucde predit.h
5587         (expand_stmt): predict GOTO_STMT as not taken.
5588         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
5589         (cleanup_cfg): Do not free tail_recursion_list.
5590         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
5591         (flow_delete_block): Kill predictions past end of basic block.
5592         * output.h (delete_unreachable_blocks): Declare.
5593         * predict.c (predicted_by_p, process_note_predictions,
5594         process_note_prediction, last_block_p): New function.
5595         (estimate_probability): Bypass loop on PRED_CONTINUE;
5596         do not handle noreturn heuristics; kill PRED_RETURN; add
5597         PRED_EARLY_RETURN.
5598         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
5599         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
5600         * predict.h (IS_TAKEN): New constant.
5601         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
5602         * rtl.c (NOTE_INSN_PREDICTION): New.
5603         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
5604         New macro.
5605         (insn_note): add NOTE_INSN_PREDICTION.
5606         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
5607         CFG; free tail_recursion_label_list.
5608         * stmt.c: Include predict.h;
5609         (return_prediction): New.
5610         (expand_value_return): Use it.
5611         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
5612
5613 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
5614
5615         * config/mips/mips.md: Name the unspecs with define_constant.
5616         (*HILO_delay): Rename to 'hilo_delay' (no star).
5617         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
5618         (reload_outdi, reload_outsi): Likewise.
5619
5620 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
5621
5622         * toplev.c: Fix formatting.
5623
5624 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
5625
5626         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
5627         * configure.in (ac_rtlflag_checking): New.
5628         * doc/install.texi (--enable-checking): Document RTL flag checking.
5629
5630 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
5631
5632         * c-common.c (c_common_init): Set options->unsigned_wchar.
5633         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
5634         group target dependencies.
5635         (init_builtins, cpp_handle_option): Update.
5636         * cpplex.c (cpp_interpret_charconst): Update.
5637         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
5638         signed_char to unsigned_char, group target dependencies.
5639         * defaults.h (WCHAR_UNSIGNED): Remove.
5640         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
5641 config:
5642         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
5643         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
5644         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
5645         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
5646         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
5647 doc:
5648         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
5649
5650 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
5651
5652         * fixinc/inclhack.def (windiss_math1): New fix.
5653         (windiss_math2): Likewise.
5654         (windiss_valist): Likewise.
5655         * fixinc/fixincl.x: Regenerated.
5656
5657 2002-05-07  Andreas Jaeger  <aj@suse.de>
5658
5659         * genautomata.c (output_internal_min_issue_delay_func): Add
5660         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
5661         (output_internal_trans_func): Likewise.
5662
5663 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
5664
5665         * pa.c (hppa_profile_hook): Use force_reg to get the address
5666         of the profile hook into an appropriate pseudo register.
5667
5668 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
5669
5670         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
5671         (LINK_START_SPEC): Handle it.
5672         (LINK_OS_SPEC): Likewise.
5673         (CPP_SPEC): Likewise.
5674         (STARTFILE_SPEC): Likewise.
5675         (LIB_SPEC): Likewise.
5676         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
5677         all platforms.
5678         (CRTSAVRES_DEFAULT_SPEC): New macro.
5679         (LIB_WINDISS_SPEC): New macro.
5680         (CPP_OS_WINDISS_SPEC): Likewise.
5681         (STARTFILE_WINDISS_SPEC): Likewise.
5682         (ENDFILE_WINDISS_SPEC): Likewise.
5683         (LINK_START_WINDISS_SPEC): Likewise.
5684         (LINK_OS_WINDISS_SPEC): Likewise.
5685         * config/rs6000/windiss.h: New file.
5686
5687 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
5688
5689         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
5690
5691 2002-05-06  David S. Miller  <davem@redhat.com>
5692
5693         * config/sparc/sparc.md (shift insns): Do not mask off
5694         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
5695         take care of it.
5696
5697 2002-05-06  Richard Henderson  <rth@redhat.com>
5698
5699         PR c++/6212
5700         * expr.c (highest_pow2_factor_for_type): New.
5701         (expand_assignment): Use it.
5702
5703 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
5704
5705         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
5706         unspec_volatile.
5707         ("altivec_mfvscr"): Same.
5708
5709 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
5710
5711         * rtl.h (struct rtx_def): Update comments.
5712         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
5713         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
5714         RTL_FLAG_CHECK macros with list of expected RTL codes.
5715         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
5716         (rtl_check_failed_flag): New.
5717         * reload1.c (reload): Use REG macro before changing rtx to MEM.
5718         (reload_cse_noop_set_p): Check rtx code before using access macro.
5719         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
5720         before using access macro.
5721
5722 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
5723
5724         * doc/rtl.texi (Flags): Update to reflect current usage.
5725
5726 2002-05-06  Roger Sayle  <roger@eyesopen.com>
5727
5728         PR opt/3995
5729         * fold-const.c (sign_bit_p): New function.
5730         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
5731         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
5732         Reapply fold when converting (A & C) == C into (A & C) != 0.
5733         (fold_binary_op_with_conditional_arg): Fix typo in comment.
5734
5735 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
5736
5737         * c-common.c (warn_multichar): New.
5738         (c_common_init): Set CPP's warn_multichar.
5739         * c-common.h (warn_multichar): New.
5740         * c-decl.c (warn_multichar): Remove.
5741         * c-lex.c (lex_charconst): Update.
5742         * c-tree.h (warn_multichar): Remove.
5743         * cppexp.c (eval_token): Sign-extend charconst value.
5744         * cppinit.c (cpp_create_reader): Set warn_multichar.
5745         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
5746         each character.  Update prototype.  Sign-extend the result.
5747         * cpplib.h: Fix conditions.
5748         (struct cpp_options): Add new warning flag.
5749         (cpp_interpret_charconst): Update prototype.
5750 doc:
5751         * cpp.texi: Update documentation.
5752
5753 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
5754
5755         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
5756         Fix typo in usage of allof instead of unit.
5757
5758 2002-05-06  Richard Henderson  <rth@redhat.com>
5759
5760         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
5761         and any jump or call for IN.
5762
5763 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
5764
5765         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
5766         -msse2.
5767         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
5768
5769 2002-05-06  Roger Sayle  <roger@eyesopen.com>
5770
5771         * fold-const.c (lshift-double): Cast the high word to an unsigned
5772         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
5773         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
5774         avoid compiler warning.  (fold): Remove redundant code from
5775         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
5776
5777 2002-05-06  Jeff Law  <law@redhat.com>
5778
5779         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
5780         * pa.c (pa_adjust_cost): Remove all true dependency cost
5781         adjustments.  Also remove support for non-DFA scheduling.
5782         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
5783         to adjust true dependency costs.  Update various comments.
5784         (7100lc, 7200, 7300 scheduling): Simplify by combining the
5785         FP ALU & MPY units into a single unit.
5786
5787 2002-05-06  Catherine Moore  <clm@redhat.com>
5788
5789         * config/v850/v850.c (compute_register_save_size): Make sure
5790         to count all of the registers that will be saved.
5791
5792 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
5793
5794         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
5795
5796 2002-05-06  David S. Miller  <davem@redhat.com>
5797
5798         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
5799         allow result to overlap input operands in memory.
5800
5801 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
5802
5803 doc:
5804         * cpp.texi: Update multichar charconst docs.
5805
5806 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
5807
5808         * cpplex.c (cpp_interpret_charconst): Sign-extend each
5809         character.  Don't ignore excess characters.  Treat
5810         multicharacter character constants as signed.
5811         (cpp_parse_escape): Clarify diagnostic.
5812
5813 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
5814
5815         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
5816         use add instead of shift.
5817         (ashldi3_sp64): Likewise.
5818         (ashlsi3_const1, ashldi3_const1): Remove.
5819         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
5820         * config/sparc/sparc.c (const1_operand): New.
5821
5822 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
5823
5824         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
5825
5826 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
5827
5828         PR target/6561
5829         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
5830
5831 2002-05-05  Richard Henderson  <rth@redhat.com>
5832
5833         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
5834         memory latency adjustments.
5835         (alpha_variable_issue): Remove.
5836         (alpha_use_dfa_pipeline_interface): New.
5837         (alpha_multipass_dfa_lookahead): New.
5838         * config/alpha/alpha.md: Remove define_function_unit scheduling;
5839         include new dfa scheduling.
5840         (attr type): Add none.
5841         (blockage): Use it.
5842         * config/alpha/ev4.md: New.
5843         * config/alpha/ev5.md: New.
5844         * config/alpha/ev6.md: New.
5845
5846 2002-05-05  David S. Miller  <davem@redhat.com>
5847
5848         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
5849
5850 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
5851
5852         * cse.c: Fix formatting.
5853         * emit-rtl.c: Likewise.
5854
5855 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
5856
5857         * genautomata.c (initiate_states): Add additional guard to
5858         initialize `units_array'.
5859
5860 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
5861
5862         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
5863         process_unit_to_form_the_same_automaton_unit_lists,
5864         form_the_same_automaton_unit_lists
5865         check_unit_distributions_to_automata): New prototypes and
5866         functions.
5867         (check_automata): Rename it into `check_automata_insn_issues'.
5868         (unit_decl): New fields `the_same_automaton_unit' and
5869         `the_same_automaton_message_reported_p'.
5870         (unit_decl_t): New typedef.
5871         (the_same_automaton_lists): New gloval variable.
5872         (unit_regexp, unit_set_el, units_array, units_cmp,
5873         output_get_cpu_unit_code_func): Use the typedef.
5874         (evaluate_max_reserv_cycles): Increment
5875         `description->max_insn_reserv_cycles'.
5876         (initiate_states): Don't increment `max_cycles_num'.
5877         (transform_insn_regexps): Move code around transformation of
5878         regexps from `generate'.
5879         (generate): Remove call of `transform_insn_regexps'.
5880         (expand_automata): Call `transform_insn_regexps' and
5881         `check_unit_distributions_to_automata'.  Check errors before
5882         `generate'.
5883
5884         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
5885         automaton `ultrasparc3_1'.
5886
5887 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
5888
5889         * c-common.c (c_common_init): Set up CPP arithmetic.
5890         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
5891         something reasonable for the host.
5892         (sanity_checks): Add checks.
5893         (cpp_read_main_file): Call sanity_checks() from here...
5894         (cpp_post_options): ... not here.
5895         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
5896         * cpplib.h (struct cpp_options): New member int_precision.
5897
5898 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5899
5900         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
5901
5902 2002-05-04  David S. Miller  <davem@redhat.com>
5903
5904         * config/sparc/linux.h, config/sparc/linux64.h
5905         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
5906
5907         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
5908         more RTX codes.
5909         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
5910
5911         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
5912         of SETs.
5913
5914 2002-05-05  Tim Josling  <tej@melbpc.org.au>
5915
5916         * treelang; New directory for new sample language treelang.
5917
5918 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
5919
5920         * Makefile.in (c-lex.o): Update.
5921         * c-lex.c: Include target.h.
5922         (cb_register_builtins): New.
5923         (init_c_lex): Set builtins callback.
5924         * c-lex.h (cpp_define, cpp_assert): New prototypes.
5925         * cppinit.c (init_builtins): Use callback, including for
5926         GXX_WEAK.
5927         * cpplib.h (struct cpp_callbacks): New member.
5928         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
5929         (TARGET_INITIALIZER): Update.
5930         * target.h (struct gcc_target): New hook.
5931         * tree.c (default_register_cpp_builtins): New.
5932         * tree.h (default_register_cpp_builtins): New.
5933 doc:
5934         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
5935
5936 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
5937
5938         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
5939         (cpp_post_options): Move sanity checks to...
5940         (sanity_checks): New.
5941         * cpplex.c (maybe_read_ucs): Fix prototype.
5942         (parse_string, cpp_parse_escape): Cast for %c format specifier.
5943         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
5944         if necessary.
5945
5946 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
5947
5948         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
5949         builtins.  Use V2DI patterns instead of TI for logical operations.
5950         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
5951         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
5952         (ix86_expand_builtins): Change the pattern used for movntdq.
5953         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
5954         sse2_nandv2di3): New patterns.
5955         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
5956         on operands.
5957         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
5958         (cvtdq2pd): Correct mode on operand 1.
5959         (sse2_umulsidi3): Describe without unspec.
5960         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
5961         machine modes.
5962         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
5963         (ashlv2di3): Likewise, from sse2_ashlv2di3.
5964         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
5965         ashlv4si3, ashlv2di3): Use SImode for shift count.
5966         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
5967         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
5968         New patterns.
5969         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
5970         New typedefs.
5971         (__m128i, __m128d): New macros.
5972         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
5973         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
5974         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
5975         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
5976         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
5977         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
5978         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
5979         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
5980         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
5981         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
5982         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
5983         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
5984         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
5985         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
5986         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
5987         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
5988         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
5989         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
5990         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
5991         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
5992         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
5993         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
5994         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
5995         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
5996         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
5997         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
5998         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
5999         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
6000         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
6001         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
6002         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
6003         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
6004         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
6005         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
6006         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
6007         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
6008         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
6009         functions.
6010         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
6011         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
6012
6013 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
6014
6015         * dwarf2out.c: Fix formatting.
6016         * varasm.c: Likewise.
6017
6018 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
6019
6020         PR c/6543
6021         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
6022         clobber and use result as temporary value.
6023
6024 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
6025
6026         * expr.c (force_operand): Use expand_simple_* to handle more
6027         cases.
6028
6029 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6030
6031         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
6032         and sign-extension.
6033         (lex_charconst): Update for change in prototype of
6034         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
6035         appropriately.
6036         * cpphash.h (BITS_PER_CPPCHAR_T): New.
6037         * cppinit.c (cpp_create_reader): Initialize them for no
6038         change in semantics.
6039         (cpp_post_options): Add sanity checks.
6040         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
6041         and truncation issues.  Calculate in type cppchar_t.
6042         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
6043         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
6044         run-time dependent precision correctly.  Return whether the
6045         result is signed or not.
6046         * cpplib.c (dequote_string): Use cppchar_t; update.
6047         * cpplib.h (cppchar_signed_t): New.
6048         struct cpp_options): New precision members.
6049         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
6050         * cppexp.c (eval_token): Update.
6051
6052 2002-05-03  David S. Miller  <davem@redhat.com>
6053
6054         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
6055         * config/sparc/sparc.c (sparc_rtx_costs): New function
6056         implementing RTX_COSTS and CONST_COSTS.
6057         * config/sparc/sparc.h (CONST_COSTS): Delete.
6058         (RTX_COSTS_CASES): Define.
6059         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
6060         the work.
6061
6062         * config/sparc/sparc.md (DFA schedulers): Split out...
6063         * config/sparc/cypress.md, config/sparc/hypersparc.md,
6064         config/sparc/sparclet.md, config/sparc/supersparc.md,
6065         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
6066
6067         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
6068         checks on it, always defined for Sparc.
6069
6070         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
6071         Tweak, and add more detailed comments.
6072
6073 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
6074
6075         * Re-apply patch accidentally reverted with
6076         DFA scheduler merge: remove all rules and variables to slurp
6077         source files out of libiberty and rebuild them with HOST_CC.
6078         ($(HOST_PREFIX_1)varray.o): New rule.
6079         (genattrtab rule): Word wrap.
6080
6081 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
6082
6083         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
6084         (CPP_SUBTARGET_SPEC): Define.
6085         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
6086         cpp_subtarget specs.
6087         (CPP_SPEC): Redefine to include %(cpp_subtarget).
6088
6089 2002-05-03  David S. Miller  <davem@redhat.com>
6090
6091         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
6092         * target.h (struct gcc_target): Delete cycle_display member.
6093
6094         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
6095         (rtx_needs_barrier): Delete reference to cycle_display unspec.
6096         (ia64_sched_reorder2): Mention need for cycle display handling
6097         once such notes exist.
6098
6099 2002-05-03  Richard Henderson  <rth@redhat.com>
6100
6101         * real.c (etoasc): Strip most trailing zeros for clarity.
6102         * sched-vis.c: Include real.h.
6103         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
6104         * Makefile.in (sched-vis.o): Add real.h.
6105
6106 2002-05-03  David S. Miller  <davem@redhat.com>
6107
6108         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
6109         no longer needed.
6110
6111 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
6112
6113         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
6114         when we get an out of range literal.
6115         (altivec_expand_ternop_builtin): Same.
6116         (altivec_expand_unop_builtin): Same.
6117         (altivec_expand_builtin): Same, for dss.
6118         (altivec_expand_builtin): Use trees instead of rtl when
6119         determining literal argument validity.
6120
6121 2002-05-03  David S. Miller  <davem@redhat.com>
6122
6123         Delete cycle display scheduling hook.
6124         * config/ia64/ia64.c (ia64_cycle_display,
6125         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
6126         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
6127         and use emit_insn_before instead of ia64_emit_insn_before.
6128         * config/ia64/ia64.md (unspec usage): Delete cycle display.
6129         (cycle_display): Delete insn pattern.
6130         * config/sparc/sparc.md (unspec usage): Delete cycle display.
6131         (cycle_display): Delete insn pattern.
6132         * config/sparc/sparc.c (sparc_cycle_display,
6133         TARGET_SCHED_CYCLE_DISPLAY): Delete.
6134         * doc/md.texi (cycle_display): Don't mention.
6135         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
6136
6137 2002-05-03  Richard Henderson  <rth@redhat.com>
6138
6139         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
6140         * recog.h: Declare them.
6141
6142         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
6143         * config/sparc/sparc.md: Use store_data_bypass_p instead.
6144         * config/sparc/sparc-protos.h: Update.
6145
6146 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
6147
6148         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
6149         -D__arch64__.  Add -D_LP64.
6150         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
6151         from sparc.h.
6152         (CPP_ARCH64_SPEC): Likewise.
6153         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
6154         (NO_BUILTIN_SIZE_TYPE): Undef.
6155
6156 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
6157
6158         * genautomata.c (min_issue_delay_pass_states): Change return type
6159         in the prototype.
6160         (min_issue_delay_pass_states): Change the algorithm.
6161         (min_issue_delay): Set up min_insn_issue_delay for the state.
6162         (output_min_issue_delay_table): Interchange the nested loops and
6163         and initiate min_insn_issue_delay for states.
6164
6165 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
6166
6167         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
6168         jump is simplejump.
6169
6170 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
6171
6172         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
6173         sequence.
6174
6175 2002-05-03  Richard Henderson  <rth@redhat.com>
6176
6177         PR opt/6534
6178         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
6179         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
6180         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
6181         code before JUMP, not EARLIEST.
6182
6183 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
6184
6185         * c-format.c (check_format_info_main): Don't check for presence of
6186         parameter for * width until after operand number has been read,
6187         and only check for it if format parameters are available.
6188         Fixes PR c/6547.
6189
6190 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
6191
6192         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
6193         (LINK_SPEC): Undef before defining.
6194
6195 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
6196
6197         PR preprocessor/6489
6198         * tradcpp.c (fixup_newlines): New.
6199         (main, finclude): Use it.
6200
6201 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
6202
6203         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
6204         * config/mips/mips.c (mips_unique_section): Strip encoding from
6205         decl name.
6206
6207 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
6208
6209         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
6210         mode.
6211
6212 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6213
6214         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
6215         (Specific): Removed buildstats references.
6216         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
6217         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
6218         Accomodate Solaris versions beyond 8.
6219         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
6220         (Specific, *-*-solaris2.8): Removed, obsolete.
6221
6222 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
6223
6224         PR target/6542
6225         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
6226         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
6227         fill leaf_reg_remap with identity.
6228         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
6229
6230 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
6231
6232         * config/h8300/crti.asm: Remove trailing spaces.
6233         * config/h8300/h8300.c: Likewise.
6234         * config/h8300/lib1funcs.asm: Likewise.
6235
6236 2002-05-02  Jason Merrill  <jason@redhat.com>
6237
6238         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
6239         * c-decl.c (c_init_decl_processing): Use it.
6240         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
6241         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
6242         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
6243
6244 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
6245
6246         * regrename.c: Fix formatting.
6247         * tree.c: Likewise.
6248
6249 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
6250
6251         * i386.md (attribute memory): Handle compares properly.
6252
6253 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
6254
6255         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
6256         to none.
6257
6258 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
6259
6260         * function.c: Fix formatting.
6261
6262 2002-05-02  Jan Hubicka  <jh@suse.cz>
6263
6264         * haifa-sched.c (schedule_insn): Print table of instructions and
6265         reservations.
6266         (sched_block): Do not print ready list at verbosity level 1.
6267         * sched-vis.c (print_insn): Make global.
6268         * sched-ebb.c (ebb_print_insn): Rename from...
6269         (print_insn): ... this one.
6270         * sched-int.h (print_insn): Declare
6271
6272 2002-05-02  Richard Henderson  <rth@redhat.com>
6273
6274         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
6275         emitted by cycle_display.
6276
6277 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
6278
6279         * doc/install.texi (*-*-freebsd*): Update to latest status.
6280
6281 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
6282
6283         PR target/6540
6284         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
6285         * config/float-sparc.h: Assume 128-bit long double if
6286         __LONG_DOUBLE_128__ is defined.
6287
6288 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
6289
6290         * genattrtab.c (write_function_unit_info): Add a dummy element
6291         when num_units == 0.
6292
6293 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6294
6295         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
6296         TYPE_MODE (double_type_node) instead of DFmode.
6297
6298 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
6299
6300         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
6301         jumps post reload.
6302         * toplev.c (rest_of_compilation): Revert Richard's patch.
6303
6304 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6305
6306         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
6307
6308 2002-05-02  Catherine Moore  <clm@redhat.com>
6309
6310         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
6311
6312 2002-05-02  Kazu Hirata  <kazu@hxi.com>
6313
6314         * combine.c: Fix comment typos.
6315         * expr.c: Likewise.
6316         * genautomata.c: Likewise.
6317         * stmt.c: Likewise.
6318         * tree.h: Likewise.
6319
6320 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
6321
6322         * doc/install.texi: State GNAT version requirements.
6323
6324 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
6325
6326         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
6327         of the frame pointer or arg pointer register which strict register
6328         checking is not enabled.
6329
6330 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
6331
6332         * gcc.dg/altivec-8.c: New.
6333
6334         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
6335         PRE_INC and PRE_DEC for altivec modes.
6336
6337 2002-05-01  Bruce Korb  <bkorb@gnu.org>
6338
6339         * fixinc/check.tpl(set-writable): make sure the function exists first
6340         * fixinc/inclhack.def(alpha_assert): fix test_text
6341         * fixinc/tests/base/assert.h: add in missing result
6342
6343 2002-05-01  Jeff Law  <law@redhat.com>
6344
6345         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
6346         'T' constraint.
6347
6348 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
6349
6350         * dbxout.c (dbxout_type): Emit size information for range types,
6351         as well, but only when using GDB extensions.
6352
6353 2002-05-01  Richard Henderson  <rth@redhat.com>
6354
6355         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
6356         target-independent gnu binutils date test.
6357
6358 2002-05-01  Richard Henderson  <rth@redhat.com>
6359
6360         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
6361         info before expunging the block.
6362
6363 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
6364
6365         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
6366         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
6367         -M -or -MM is in effect.
6368
6369 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
6370
6371         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
6372         A29k configurations.
6373         * doc/install.texi: Update to match.
6374
6375 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6376
6377         PR bootstrap/6514
6378         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
6379         for duplicates. Always loop over whole list.
6380
6381 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6382
6383         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
6384
6385 2002-05-01      Joel Sherrill <joel@OARcorp.com>
6386
6387         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
6388         support routines.
6389
6390 2002-05-01      Joel Sherrill <joel@OARcorp.com>
6391
6392         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
6393
6394 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
6395
6396         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
6397         (nabs_nopower): Same.
6398         (floatdisf2): New pattern.
6399         (absdi2): Convert to define_insn_and_split.
6400         (nabsdi2): Same.
6401         (trunctfsf2): Same.
6402         (floatditf2): Same.
6403         (floatsitf2): Same.
6404         (fix_trunctfdi2): Same.
6405         (fix_trunctfsi2): Same.
6406
6407 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
6408
6409         * doc/install.texi: Update Texinfo version requirement
6410         documentation.
6411
6412 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
6413
6414         PR target/6512, PR target/5628
6415         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
6416         when memory is not aligned.
6417         (movdf_insn_v9only_vis): Likewise.
6418         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
6419         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
6420         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
6421
6422 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
6423
6424         * gcc.dg/altivec-7.c: New.
6425
6426         * config/rs6000/altivec.h: Cleanup.
6427
6428 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
6429
6430         * doc/invoke.texi (Option Summary): Add -mvrsave=.
6431         (RS/6000 and PowerPC Options): Document -mvrsave=.
6432
6433         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
6434         (rs6000_altivec_vrsave_string): Same.
6435         (rs6000_override_options): Call rs6000_parse_vrsave_option.
6436         (rs6000_parse_vrsave_option): New.
6437         (rs6000_stack_info): Only generate vrsave instructions when
6438         TARGET_ALTIVEC_VRSAVE.
6439
6440         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
6441         (rs6000_altivec_vrsave_string): Define extern.
6442         (rs6000_altivec_vrsave): Same.
6443         (TARGET_ALTIVEC_VRSAVE): New.
6444
6445 2002-04-30  Richard Henderson  <rth@redhat.com>
6446
6447         PR opt/6516
6448         * toplev.c (rest_of_compilation): Don't run cross-jump before
6449         bb-reorder.
6450
6451 2002-04-30  Tom Rix  <trix@redhat.com>
6452
6453         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
6454         check which_alternative.
6455
6456 2002-04-30  Kazu Hirata  <kazu@hxi.com>
6457
6458         * cpplex.c: Fix comment formatting.
6459         * function.c: Likewise.
6460         * integrate.c: Likewise.
6461         * regrename.c: Likewise.
6462         * sibcall.c: Likewise.
6463         * simplify-rtx.c: Likewise.
6464         * tree-inline.c: Likewise.
6465
6466 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6467
6468         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
6469         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
6470         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
6471         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
6472         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
6473         * pa/x-ada: New file.  Define ADA_CFLAGS.
6474
6475 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
6476
6477         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
6478         from MMIX_LAST_REGISTER_FILE_REGNUM.
6479         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
6480         (struct machine_function): New member highest_saved_stack_register
6481         previously static variable in mmix.c.
6482         (MACHINE_DEPENDENT_REORG): Define.
6483         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
6484         (MMIX_OUTPUT_REGNO): New.
6485         (mmix_target_asm_function_prologue): Move calculation of last used
6486         saved-stack-register into...
6487         (mmix_machine_dependent_reorg): New function.  Update to also handle
6488         !TARGET_ABI_GNU.
6489         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
6490         register names, simplify somewhat by new variable regno.
6491         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
6492         register.
6493         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
6494         emitting register names.
6495         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
6496         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
6497         Remove fixed FIXME.
6498         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
6499         Declare.
6500
6501         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
6502
6503 2002-04-30  Richard Henderson  <rth@redhat.com>
6504
6505         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
6506         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
6507         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
6508         emit_tfmode_cvt): New.
6509         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
6510         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
6511         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
6512         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
6513         * config/sparc/sparc-protos.h: Update.
6514
6515 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
6516
6517         * install.texi (Final install): Add to the list of info to include
6518         in a report of a successful bootstrap, and add link to 3.1 list.
6519
6520 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
6521
6522         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
6523         (mode): Add vector modes
6524         (i387): Kill attribute.
6525         (unit): New attribute.
6526         (length_immediate): Grok new types.
6527         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
6528         (modrm): Use "unit".
6529         (memory): Handle MMX/SSE properly.
6530         (scheduling descriptions): Kill uses of fop1.
6531         (sse, mmx, fp patterns): Set type and mode properly.
6532
6533 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)
6534
6535         * pa.c (override_options): Default to PA8000 scheduling.
6536         * doc/invoke.texi (HP-PA options): Mention newly added 7300
6537         scheduling parameter.
6538
6539         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
6540         handling of double precision multiplies.
6541
6542         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
6543         fpdiv and fpsqrt instructions.
6544         (7200 & 7300 scheduling): Fix typo in handling of
6545         store-load and store-store penalties.
6546
6547 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6548
6549         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
6550         mips.  Add two missing commas.
6551
6552 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
6553
6554         * doc/contrib.texi (Contributors): Update Paolo Carlini's
6555         and Benjamin Kosnik's entries.
6556
6557 2002-04-29  David S. Miller  <davem@redhat.com>
6558
6559         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
6560         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
6561         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
6562         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
6563
6564 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6565
6566         * combine.c (find_split_point): Use gen_int_mode.
6567
6568 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
6569
6570         Merging code from dfa-branch:
6571
6572         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
6573
6574         * genautomata.c (output_reserv_sets): Fix typo.
6575
6576         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
6577
6578         * genautomata.c (output_reserv_sets): Remove
6579         next_cycle_output_flag.
6580
6581         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
6582
6583         * sched-rgn.c (init_ready_list): Make the DFA code handle
6584         USE/CLOBBER insns in the same way as the traditional
6585         scheduler.
6586         (new_ready): Similarly..
6587
6588         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
6589
6590         * haifa-sched.c (schedule_block): Change the DFA state only after
6591         issuing insn.
6592
6593         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
6594
6595         * pa.c (hppa_use_dfa_pipeline_interface): New function.
6596         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
6597         (override_options): Add PA7300 scheduling support.
6598         (pa_adjust_cost): Update various comments.  Properly
6599         handle anti and output dependencies when using the
6600         DFA scheduler.
6601         (pa_issue_rate): Add PA7300 scheduling support.
6602         (pa_can_combine_p): Call extract_insn before calling
6603         constrain_operands (taken from mainline tree).
6604         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
6605         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
6606         descriptions using DFA descriptions.  Add PA7300
6607         scheduling support.
6608
6609         2002-03-30  David S. Miller  <davem@redhat.com>
6610
6611         Add UltraSPARC-III DFA scheduling support.
6612         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
6613         Update FP conditional move on register insn patterns to use it, as
6614         appropriate.
6615         (define_attr cpu): Add ultrasparc3.
6616         (define_attr us3load_type): New, update integer load patterns to
6617         set it, as appropriate.
6618         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
6619         (rest): Add UltraSPARC3 scheduling description.
6620         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
6621         (PROCESSOR_ULTRASPARC3): New.
6622         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
6623         ({ASM,CPP}_CPU_SPEC): Likewise.
6624         (REGISTER_MOVE_COST): Likewise.
6625         (RTX_COSTS): Likewise.
6626         * config/sparc/sparc.c (sparc_override_options,
6627         sparc_initialize_trampoline, sparc64_initialize_trampoline,
6628         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
6629         sparc_issue_rate): Likewise.
6630         * config/sparc/sol2.h: Likewise.
6631         * config/sparc/sol2-sld-64.h: Likewise.
6632         * config/sparc/linux64.h: Likewise.
6633
6634         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
6635
6636         * doc/md.texi: Add comments about usage the latency time for the
6637         different dependencies and about case when two or more conditions
6638         in different define_insn_reservations returns TRUE for an insn.
6639
6640         * doc/md.texi: Add reference for automaton based pipeline
6641         description.
6642
6643         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
6644
6645         * doc/passes.texi: Add missed information about genattrtab.
6646
6647         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
6648
6649         * genautomata.c (output_automata_list_transition_code): Check
6650         automata_list on NULL.
6651
6652         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
6653
6654         * genautomata.c (output_insn_code_cases,
6655         output_automata_list_min_issue_delay_code,
6656         output_automata_list_transition_code,
6657         output_automata_list_state_alts_code): Comment the functions.
6658
6659         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
6660
6661         * genautomata.c (automata_list_el_t): New typedef.
6662         (get_free_automata_list_el,free_automata_list_el,
6663         free_automata_list, automata_list_hash, automata_list_eq_p,
6664         initiate_automata_lists, automata_list_start, automata_list_add,
6665         automata_list_finish, finish_automata_lists,
6666         output_insn_code_cases, output_automata_list_min_issue_delay_code,
6667         output_automata_list_transition_code,
6668         output_automata_list_state_alts_code, add_automaton_state,
6669         form_important_insn_automata_lists): New functions and prototypes.
6670         (insn_reserv_decl): Add members important_automata_list and
6671         processed_p.
6672         (ainsn): Add members important_p.
6673         (automata_list_el): New structure.
6674         (first_free_automata_list_el, current_automata_list,
6675         automata_list_table): New global variables.
6676         (create_ainsns): Initiate member important_p.
6677         (output_internal_min_issue_delay_func): Generate the switch and
6678         call output_insn_code_cases.
6679         (output_internal_trans_func, output_internal_state_alts_func):
6680         Ditto.
6681         (generate): Call initiate_automata_lists.
6682         (automaton_states): New global variable.
6683         (expand_automata): Call form_important_insn_automata_lists.
6684         (write_automata): Call finish_automata_lists.
6685
6686         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
6687
6688         * genautomata.c (add_excls, add_presence_absence): Check that
6689         cpu units in the sets belong the same automaton.
6690
6691         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
6692         about that cpu units in the sets belong the same automaton.
6693
6694         * doc/md.texi: Ditto.
6695
6696         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
6697                     Nitin Gupta  <niting@noida.hcltech.com>
6698
6699         * config/sh/sh.c (sh_use_dfa_interface): New function.
6700
6701         (sh_issue_rate): New Function.
6702         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
6703         TARGET_SCHED_ISSUE_RATE: define.
6704
6705         * config/sh/sh.md: Add DFA based pipeline description for SH4.
6706
6707         (define_attr insn_class): New attribute used for DFA
6708          scheduling.
6709         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
6710         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
6711          cmpeqdi_t): Likewise.
6712
6713         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
6714          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
6715          ex_group.
6716         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
6717
6718         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
6719
6720         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
6721         break.
6722
6723         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
6724
6725         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
6726         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
6727         necessary.
6728         (output_dfa_start_func): Initiate new variable insn_codes_length,
6729         (write_automata): Output definition of the new variable.
6730
6731         2001-10-02  David S. Miller  <davem@redhat.com>
6732
6733         * haifa-sched.c (advance_one_cycle): New function.
6734         (schedule_block): Use it.
6735         (queue_to_ready): Use it, and also make sure to advance the DFA
6736         state on all stall cycles, not just those where insn_queue links
6737         are found.
6738
6739         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
6740
6741         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
6742         non-zero if the highest-priority instruction could be scheduled.
6743         (choose_ready): Remove last argument from max_issue call.
6744
6745         2001-09-28  David S. Miller  <davem@redhat.com>
6746
6747         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
6748         ultrasparc and 3 for other multi-issue sparcs.
6749
6750         2001-09-27  David S. Miller  <davem@redhat.com>
6751
6752         * config/sparc/sparc.md (cycle_display): New pattern.
6753         * config/sparc/sparc.c (sparc_cycle_display): New.
6754         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
6755
6756         2001-09-25  David S. Miller  <davem@redhat.com>
6757
6758         Convert all of Sparc scheduling to DFA
6759         * config/sparc/sparc.md: Kill all define_function_unit
6760         directives and replace with DFA equivalent.
6761         * config/sparc/sparc.c (ultrasparc_adjust_cost,
6762         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
6763         ultra_fpmode_conflict_exists, ultra_find_type,
6764         ultra_build_types_avail, ultra_flush_pipeline,
6765         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
6766         ultrasparc_variable_issue, ultrasparc_sched_init,
6767         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
6768         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
6769         ultra_cur_hist, ultra_cycles_elapsed): Kill.
6770         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
6771         ultrasparc_store_bypass_p): New.
6772         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
6773         Declare.
6774
6775         2001-09-24  David S. Miller  <davem@redhat.com>
6776
6777         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
6778         ready->vec[foo] not ready[foo].
6779
6780         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
6781
6782         * doc/md.texi: Correct examples for define_insn_reservations
6783         `mult' and `div'.
6784
6785         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
6786
6787         * genautomata.c (create_automata): Print message about creation of
6788         each automaton.
6789         (generate): Remove printing meease about creation of
6790         automata.
6791
6792         2001-09-05  David S. Miller  <davem@redhat.com>
6793
6794         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
6795         * config/sparc/linux64.h: Likewise.
6796
6797         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
6798
6799         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
6800         schedule_block, sched_init, sched_finish): Add missed calls of
6801         use_dfa_pipeline_interface.
6802
6803         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
6804         Ditto.
6805
6806         * sched-vis.c (get_visual_tbl_length): Ditto.
6807
6808         2001-08-27  Richard Henderson  <rth@redhat.com>
6809
6810         * genattr.c (main): Emit state_t even when not doing scheduling.
6811
6812         2001-08-27  Richard Henderson  <rth@redhat.com>
6813
6814         * genautomata.c (expand_automata): Always create a description.
6815
6816         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
6817
6818         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
6819         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
6820         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
6821         RTL constructions.
6822
6823         * genattr.c (main): New variable num_insn_reservations.  Increase
6824         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
6825         pipeline hazard recognizer interface.
6826
6827         * genattrtab.h: New file.
6828
6829         * genattrtab.c: Include genattrtab.h.
6830         (attr_printf, check_attr_test, make_internal_attr,
6831         make_numeric_value): Move protypes into genattrtab.h.  Define them
6832         as external.
6833         (num_dfa_decls): New global variable.
6834         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
6835         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
6836         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
6837         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
6838
6839         * genautomata.c: New file.
6840
6841         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
6842
6843         * sched-int.h: (curr_state): Add the external definition for
6844         automaton pipeline interface.
6845         (haifa_insn_data): Add comments for members blockage and units.
6846
6847         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
6848         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
6849         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
6850         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
6851         TARGET_SCHED_DFA_POST_CYCLE_INSN,
6852         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
6853         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
6854         macros.
6855         (TARGET_SCHED): Use the new macros.
6856
6857         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
6858         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
6859         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
6860         dfa_bubble): New members in gcc_target.sched.
6861
6862         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
6863         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
6864         (insn_queue): Redefine it as pointer to array.
6865         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
6866         INSN_QUEUE_SIZE.
6867         (max_insn_queue_index_macro_value): New variable.
6868         (curr_state, dfa_state_size, ready_try): New varaibles for
6869         automaton interface.
6870         (ready_element, ready_remove, max_issue): New function prototypes
6871         for automaton interface.
6872         (choose_ready): New function prototype.
6873         (insn_unit, blockage_range): Add comments.
6874         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
6875         FUNCTION_UNITS_SIZE == 0.
6876         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
6877         actual_hazard, potential_hazard): Add comments.
6878         (insn_cost): Use cost -1 as undefined value.  Remove
6879         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
6880         pipeline interface.
6881         (ready_element, ready_remove): New functions for automaton
6882         interface.
6883         (schedule_insn): Add new code for automaton pipeline interface.
6884         (queue_to_ready): Add new code for automaton pipeline interface.
6885         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
6886         (debug_ready_list): Print newline when the queue is empty.
6887         (max_issue): New function for automaton pipeline interface.
6888         (choose_ready): New function.
6889         (schedule_block): Add new code for automaton pipeline interface.
6890         Print ready list before scheduling each insn.
6891         (sched_init): Add new code for automaton pipeline interface.
6892         Initiate insn cost by -1.
6893         (sched_finish): Free the current automaton state and finalize
6894         automaton pipeline interface.
6895
6896         * sched-rgn.c: Include target.h.
6897         (init_ready_list, new_ready, debug_dependencies): Add new code for
6898         automaton pipeline interface.
6899
6900         * sched-vis.c: Include target.h.
6901         (get_visual_tbl_length): Add code for automaton interface.
6902         (target_units, print_block_visualization):  Add comments.
6903
6904         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
6905         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
6906         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
6907         (getruntime.o, genautomata.o): New entries.
6908         (genattrtab.o): Add new dependency file genattrtab.h.
6909         (genattrtab): Add new dependencies.  Link it with `libm.a'.
6910         (getruntime.o, hashtab.o): New entries for canadian cross.
6911
6912         * doc/md.texi: Description of automaton based model.
6913
6914         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
6915         Add comments.
6916         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
6917         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
6918         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
6919         TARGET_SCHED_DFA_POST_CYCLE_INSN,
6920         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
6921         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
6922         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
6923         hook descriptions.
6924         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
6925         MAX_DFA_ISSUE_RATE): New macro descriptions.
6926
6927         * doc/contrib.texi: Add dfa based scheduler contribution.
6928
6929         * doc/gcc.texi: Add more information about genattrtab.
6930
6931 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6932
6933         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
6934         adjust_address_nv call.
6935
6936 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
6937
6938         * doc/install.texi (Testing): Provide additional information, and
6939         a stronger encouragement, for running the testsuites.
6940
6941 2002-04-29  DJ Delorie  <dj@redhat.com>
6942
6943         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
6944         given in upper case.
6945
6946 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6947
6948         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
6949         Solaris 2 <widec.h> if missing.
6950         * fixinc/fixincl.x: Regenerate.
6951         * fixinc/tests/base/widec.h: New file.
6952
6953 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
6954
6955         * toplev.c (f_options): Add "profile" switch so that
6956         -fno-profile can be used to disable -p.
6957
6958 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
6959
6960         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
6961         UV2DImode.
6962         * tree.c (build_common_tree_nodes_2): Likewise.
6963         * tree.h (enum tree_index): Likewise.
6964         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
6965
6966         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
6967         entries.
6968         (init_mmx_sse_builtins): Initialize SSE2 builtins.
6969         (ix86_expand_builtin): Add support for SSE2 builtins.
6970         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
6971         (VALID_SSE_REG_MODE): Use it.
6972         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
6973         (enum ix86_builtins): Add SSE2 builtins.
6974         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
6975         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
6976         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
6977         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
6978         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
6979         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
6980         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
6981         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
6982         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
6983         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
6984         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
6985         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
6986         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
6987         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
6988         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
6989         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
6990         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
6991         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
6992         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
6993         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
6994         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
6995         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
6996         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
6997         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
6998         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
6999         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
7000         lfence_insn): New patterns.
7001         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
7002         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
7003
7004 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
7005
7006         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
7007
7008 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7009
7010         * doc/contrib.texi (Contributors): Add Paolo Carlini and
7011         Janis Johnson.
7012         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
7013         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
7014         and CPU instead of cpu.
7015
7016 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
7017
7018         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
7019         variables.
7020         (lang_independent_options): Add -fif-conversion, -fif-conversion2
7021         (rest_of_compilation): Do if conversion only when asked for.
7022         (parse_options_and_default_flags): Set new variables to 1 for -O1
7023         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
7024
7025 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
7026
7027         * i386.c (dbx64_register_map): Fix typo.
7028
7029 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
7030
7031         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
7032         real_one_half, real_bb_freq_max): New static variables.
7033         (debug_profile_bbauxs): Kill.
7034         (process_note_predictions): Kill unused variable.
7035         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
7036         volatile double.
7037         (propagate_freq): Use REAL_ARITHMETICS.
7038         (estimate_bb_frequencies): Likevise; init new static variables.
7039         * Makefile.in (predict.o): Add dependency on real.h
7040
7041 2002-04-28  David S. Miller  <davem@redhat.com>
7042
7043         PR target/6500
7044         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
7045         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
7046         several {reads,writes} instead.
7047         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
7048         Define.
7049
7050 2002-04-27  David S. Miller  <davem@redhat.com>
7051
7052         PR target/6494
7053         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
7054         of the stack bias.
7055
7056         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
7057         including signal.h and sys/ucontext.h, not needed.
7058
7059 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
7060
7061         * varasm.c (output_constant_def): Correct test for not calling
7062         ENCODE_SECTION_INFO for INTEGER_CST.
7063
7064 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7065
7066         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
7067         keep most cases as function eval_token.
7068         (eval_token): New function.
7069         (_cpp_parse_expr): Read token here for improved diagnostics.
7070         Don't use op_as_text.  Detect bad ':' here.
7071         (reduce): Don't detect bad ':' here.
7072         (op_as_text): Remove.
7073         * cpphash.h (_cpp_test_assertion): Change prototype.
7074         * cpplib.c (_cpp_test_assertion): Change prototype.
7075
7076 2002-04-28  Richard Henderson  <rth@redhat.com>
7077
7078         PR c/5154
7079         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
7080         (ggc_mark_rtx_children): New.
7081
7082 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
7083
7084         PR target/6496
7085         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
7086         after call peepholes for UltraSPARC.
7087         (call + jump 64-bit peepholes): Remove.
7088
7089 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7090
7091         PR c/6497
7092         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
7093         result as temporary value.
7094
7095 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
7096
7097         PR c++/6396
7098         * toplev.c (rest_of_compilation): Only run regrename and copy
7099         propagation if optimizing.
7100
7101 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
7102
7103         PR optimization/6475
7104         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
7105         register of REGNO_DECL (i).
7106         * Makefile.in (reload1.o): Add $(TREE_H).
7107
7108 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
7109
7110         * cppexp.c (lex): Update to use state.skip_eval.
7111         (struct op): Remove prio and flags members.
7112         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
7113         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
7114         (LEFT_ASSOC): New macro.
7115         (optab): New table of operator priorities and flags.
7116         (SHIFT): Update.
7117         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
7118         malloc-ed parser stack.
7119         (reduce): New; reduce the operator stack.
7120         (_cpp_expand_op_stack): Expand the operator stack as necessary.
7121         * cpphash.h (struct op): Predeclare.
7122         (struct cpp_reader): New members op_stack, op_limit.
7123         (struct lexer_state): New member skip_eval.
7124         (_cpp_parse_expr): Update.
7125         (_cpp_expand_op_stack): New.
7126         * cpplib.c (do_if): Update.
7127         * cppinit.c (cpp_create_reader): Create op stack.
7128         (cpp_destroy): And destroy it.
7129         * cpplib.h (CPP_LAST_CPP_OP): Correct.
7130         (TTYPE_TABLE): Correct.
7131
7132 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7133
7134         PR c/6343
7135         * c-decl.c (duplicate_decls): Call merge_weak.
7136         * c-pragma.c (apply_pragma_weak): Warn about misuse.
7137         * output.h (merge_weak): Prototype merge_weak.
7138         * varasm.c (merge_weak): New function.
7139         (declare_weak): Make sure we don't give an error on VAR_DECLs.
7140         Mark RTL with SYMBOL_REF_WEAK.
7141
7142 2002-04-27  Kurt Garloff <garloff@suse.de>
7143
7144         * tree-inline.c (inlinable_function_p): Improve heuristics
7145         by using a smoother function to cut down allowable inlinable size.
7146         * param.def: Add parameters max-inline-insns-single,
7147         max-inline-slope, min-inline-insns that determine the exact
7148         shape of the above function.
7149         * param.h: Likewise.
7150
7151 2002-04-26  Richard Henderson  <rth@redhat.com>
7152
7153         * c-parse.in (malloced_yyss, malloced_yyvs): New.
7154         (yyoverflow): Re-add.  Set them.
7155         (free_parser_stacks): New.
7156         * c-common.h: Declare it.
7157         * c-lex.c (c_common_parse_file): Call it.
7158
7159 2002-04-26  Richard Henderson  <rth@redhat.com>
7160
7161         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
7162         for fallthru search.
7163
7164 2002-04-26  Eric Christopher  <echristo@redhat.com>
7165
7166         PR optimization/3700
7167         * config/mips/mips.c (mips_issue_rate): Define.  New function.
7168         (TARGET_SCHED_ISSUE_RATE): Use.
7169
7170 2002-04-25  David S. Miller  <davem@redhat.com>
7171
7172         PR target/6422
7173         * reorg.c (optimize_skip): Do not allow exception causing
7174         instructions to be considered for delay slots.
7175         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
7176         (relax_delay_slots): Do not try to consider exception causing
7177         instructions as redundant.
7178
7179 2002-04-26  Richard Henderson  <rth@redhat.com>
7180
7181         PR c/5225
7182         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
7183
7184 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
7185
7186         PR bootstrap/6445
7187         * config/i386/i386.md (untyped_call): Return the value in a float
7188         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
7189         TARGET_80387.
7190
7191 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
7192
7193         * tree.c (tree_int_cst_lt): Compare constants whose types differ
7194         in unsigned-ness correctly.
7195
7196 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7197
7198         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
7199         portable runtime model.
7200
7201 2002-04-26  Richard Henderson  <rth@redhat.com>
7202
7203         * c-parse.in (yyoverflow): Revert.
7204
7205 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
7206             Richard Henderson  <rth@redhat.com>
7207
7208         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
7209         result as temporary value.
7210
7211 2002-04-26  Richard Henderson  <rth@redhat.com>
7212
7213         PR c/3581
7214         * c-common.c (fix_string_type): Split out of ...
7215         (combine_strings): ... here.  Take a varray, not a tree list.
7216         (c_expand_builtin_printf): Use fix_string_type.
7217         * c-common.h: Update decls.
7218         * c-parse.in (string): Remove.  Update all uses to use STRING
7219         instead, and not call combine_strings.
7220         (yylexstring): New.
7221         (_yylex): Use it.
7222         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
7223         (build_asm_stmt): Likewise.
7224         * objc/objc-act.c (my_build_string): Use fix_string_type.
7225         (build_objc_string_object): Build varray for combine_strings.
7226
7227 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
7228
7229         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
7230         x86-64.
7231
7232 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
7233
7234         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
7235         (HAVE_NO_R_OPERAND): Remove.
7236         (HAVE_VALUE): Remove.
7237         (op_to_prio): Update.
7238         (UNARY): Don't alter flags.
7239         (_cpp_parse_expr): want_value used to indicate whether
7240         a number or unary operator is expected next.  Distinguish
7241         unary and binary +/-.
7242         (op_as_text): Update for unary operators.
7243
7244 2002-04-25  Richard Henderson  <rth@redhat.com>
7245
7246         PR c/2161
7247         * c-parse.in (yyoverflow): New.
7248
7249 2002-04-25  Richard Henderson  <rth@redhat.com>
7250
7251         PR c/2098
7252         * c-common.c (shorten_compare): Simplfy conditions leading to
7253         the generation of a warning.
7254
7255 2002-04-25  Richard Henderson  <rth@redhat.com>
7256
7257         PR c/2035
7258         * expmed.c (extract_bit_field): Fall through to generic code rather
7259         than aborting on subreg special case.
7260
7261 2002-04-25  David S. Miller  <davem@redhat.com>
7262
7263         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
7264         for DECL being NULL.
7265
7266 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
7267
7268         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
7269
7270 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
7271
7272         * c-decl.c (grokdeclarator): Remove outdated ??? note
7273         on invalid declaration of flexible array members.
7274
7275 2002-04-25  Richard Henderson  <rth@redhat.com>
7276
7277         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
7278
7279 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
7280
7281         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
7282         needed by the compiler, even if they are used as global regs.
7283
7284 2002-04-25  Matt Hiller  <hiller@redhat.com>
7285
7286         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
7287         functions.
7288         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
7289         of the corresponding functions.
7290         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
7291         New prototypes.
7292
7293 2002-04-25  Matt Hiller  <hiller@redhat.com>
7294
7295         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
7296
7297         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
7298         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
7299         registers, adjust comment accordingly.
7300         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
7301         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
7302         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
7303         for coprocessor registers.
7304         (ADDITIONAL_REGISTER_NAMES): Include
7305         ALL_COP_ADDITIONAL_REGISTER_NAMES.
7306
7307         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
7308         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
7309         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
7310         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
7311         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
7312
7313         (mips_char_to_class): Adjust comment to include coprocessor
7314         constraint letters.
7315
7316         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
7317         New functions.
7318         (mips_reg_names, mips_regno_to_class): Include coprocessor
7319         information.
7320         (mips_sw_reg_names): Ditto, make non-static.
7321         (mips_move_1word): Handle moves to and from coprocessor registers.
7322         (mips_move_2words): Handle moves to and from coprocessor
7323         registers.
7324         (mips_class_max_nregs, mips_register_move_cost): Handle
7325         coprocessor register classes.
7326         (override_options): Initialize mips_char_to_class and
7327         mips_hard_regno_mode_ok properly for coprocessor registers.
7328
7329         * config/mips/mips.md (movdi_internal, movdi_internal2,
7330         movsi_internal1, movsi_internal2): Add constraint-sets for
7331         coprocessor registers.
7332         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
7333         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
7334         isn't mips.
7335         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
7336         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
7337         isn't mips.
7338         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
7339         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
7340         isn't mips.
7341         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
7342         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
7343         isn't mips.
7344
7345         * doc/tm.texi: Document feature.
7346
7347 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
7348
7349         * integrate.c (function_attribute_inlinable_p): Simplify.
7350         Check the table pointer is not NULL.
7351
7352 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
7353
7354         * doc/c-tree.texi: Fix typo in introduction.
7355
7356 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
7357
7358         * c-common.h (c_common_parse_file): Update.
7359         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
7360         * c-lex.c (YYDEBUG): Get from c-lex.h.
7361         (c_common_parse_file): Update.
7362         * c-lex.h (YYDEBUG, yydebug): New.
7363         * c-parse.in (YYDEBUG): Get from c-lex.h.
7364         (c_set_yydebug): Remove.
7365         * c-tree.h (c_set_yydebug): Remove.
7366         * langhooks-def.h (lhd_do_nothing_i): New.
7367         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
7368         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
7369         * langhooks.c  (lhd_do_nothing_i): New.
7370         (lhd_set_yydebug): Remove.
7371         * langhooks.h (struct lang_hooks): Update.
7372         * toplev.c (set_yydebug): New.
7373         (compile_file): Update call to parse_file hook.
7374         (decode_d_option): Update.
7375 objc:
7376         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
7377
7378 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
7379
7380         * loop.c (load_mems): Don't change the interface of called functions.
7381
7382         * calls.c (expand_call): Take current_function_pretend_args_size
7383         into account when setting argblock for sibcalls.
7384
7385 2002-04-24  Matt Hiller  <hiller@redhat.com>
7386
7387         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
7388         * c-lex.c: Ditto.
7389
7390         * cpplex.c (skip_line_comment): Process comment one multibyte
7391         character at a time rather than one char at a time, if
7392         appropriate.
7393         (parse_string): Process string one multibyte character at a time
7394         rather than one char at a time, if appropriate.
7395         * c-lex.c (lex_string): Lex and copy multibyte strings
7396         appropriately.
7397         * cpplib.h (cppchar_t): Change to unsigned.
7398
7399 2002-04-24  Richard Henderson  <rth@redhat.com>
7400
7401         PR c/3467
7402         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
7403         for c99.
7404
7405 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
7406
7407         * sh.c (sh_va_arg): If argument was passed by reference,
7408         dereference the pointer.
7409
7410         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
7411
7412         * sh.md (divsi3_i4_media): Use match_operand for input values
7413         rather than hard registers.
7414         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
7415         unnecessarily through hard registers.  Keep copies of pseudo
7416         registers outside of the libcall sequence.
7417
7418         * sh.md (casesi_shift_media): Add modes.
7419
7420         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
7421         values in memory.
7422
7423 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7424
7425         * attribs.c (c_common_attribute_table): Move table and handlers
7426         to c-common.c.
7427         (format_attribute_table, lang_attribute_table,
7428         lang_attribute_common): Remove.
7429         (init_attributes): Replace NULL pointers with pointers to the
7430         empty table.
7431         (handle_packed_attribute, handle_nocommon_attribute,
7432         handle_common_attribute, handle_noreturn_attribute,
7433         handle_noinline_attribute, handle_always_inline_attribute,
7434         handle_used_attribute, handle_unused_attribute,
7435         handle_const_attribute, handle_transparent_union_attribute,
7436         handle_constructor_attribute, handle_destructor_attribute,
7437         handle_mode_attribute, handle_section_attribute,
7438         handle_aligned_attribute, handle_weak_attribute,
7439         handle_alias_attribute, handle_visibility_attribute,
7440         handle_no_instrument_function_attribute, handle_malloc_attribute,
7441         handle_no_limit_stack_attribute, handle_pure_attribute,
7442         handle_deprecated_attribute, handle_vector_size_attribute,
7443         vector_size_helper): Move to c-common.c.
7444         * c-common.c (c_common_attribute_table,
7445         handle_packed_attribute, handle_nocommon_attribute,
7446         handle_common_attribute, handle_noreturn_attribute,
7447         handle_noinline_attribute, handle_always_inline_attribute,
7448         handle_used_attribute, handle_unused_attribute,
7449         handle_const_attribute, handle_transparent_union_attribute,
7450         handle_constructor_attribute, handle_destructor_attribute,
7451         handle_mode_attribute, handle_section_attribute,
7452         handle_aligned_attribute, handle_weak_attribute,
7453         handle_alias_attribute, handle_visibility_attribute,
7454         handle_no_instrument_function_attribute, handle_malloc_attribute,
7455         handle_no_limit_stack_attribute, handle_pure_attribute,
7456         handle_deprecated_attribute, handle_vector_size_attribute,
7457         vector_size_helper): Move from attribs.c.
7458         * c-common.h (c_common_attribute_table,
7459         c_common_format_attribute_table): New.
7460         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
7461         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
7462         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
7463         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
7464         (LANG_HOOKS_INITIALIZER): Update.
7465         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
7466         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
7467         * target.h: Update comment.
7468         * tree.c (default_target_attribute_table): Remove.
7469         * tree.h (default_target_attribute_table, format_attribute_table,
7470         lang_attribute_table, lang_attribute_common): Remove.
7471 objc:
7472         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
7473         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
7474
7475 2002-04-24  Jason Merrill  <jason@redhat.com>
7476
7477         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
7478         * dwarf2out.c (dwarf_attr_name): Support it.
7479         (gen_array_type_die): Emit it.
7480         (lookup_type_die): No special handling for VECTOR_TYPE.
7481         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
7482
7483 2002-04-24  Richard Henderson  <rth@redhat.com>
7484
7485         * config/mips/mips.md (movdi_usd): Renumber.
7486
7487 2002-04-24  David S. Miller  <davem@redhat.com>
7488
7489         PR target/6420
7490         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
7491         32-bit Sparc and current_function_returns_struct is true.
7492
7493 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
7494
7495         * loop.c (canonicalize_condition): Use gen_int_mode.
7496
7497 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
7498
7499         * config/rs6000/altivec.h: Cleanup file.  Add non individual
7500         variants.
7501         (vec_vaddubm): New.
7502         (vec_vadduhm): New.
7503         (vec_vadduwm): New.
7504         (vec_vaddfp): New.
7505         (vec_vaddcuw): New.
7506         (vec_vaddubs): New.
7507         (vec_vaddsbs): New.
7508         (vec_vadduhs): New.
7509         (vec_vadduws): New.
7510         (vec_vaddsws): New.
7511         (vec_vand): New.
7512         (vec_vandc): New.
7513         (vec_vavgub): New.
7514         (vec_vavgsb): New.
7515         (vec_vavguh): New.
7516         (vec_vavgsh): New.
7517         (vec_vavguw): New.
7518         (vec_vavgsw): New.
7519         (vec_vrfip): New.
7520         (vec_vcmpbfp): New.
7521         (vec_vcmpequb): New.
7522         (vec_vcmpequh): New.
7523         (vec_vcmpequw): New.
7524         (vec_vcmpeqfp): New.
7525         (vec_vcmpgefp): New.
7526         (vec_vcmpgtub): New.
7527         (vec_vcmpgtsb): New.
7528         (vec_vcmpgtuh): New.
7529         (vec_vcmpgtsh): New.
7530         (vec_vcmpgtuw): New.
7531         (vec_vcmpgtsw): New.
7532         (vec_vcmpgtfp): New.
7533         (vec_vcmpgefp): New.
7534         (vec_vcfux): New.
7535         (vec_vcfsx): New.
7536         (vec_vctsxs): New.
7537         (vec_vctuxs): New.
7538         (vec_vexptefp): New.
7539         (vec_vrfim): New.
7540         (vec_lvx): New.
7541         (vec_lvebx): New.
7542         (vec_lvehx): New.
7543         (vec_lde): Add vector float variant.
7544         (vec_lvewx): New.
7545         (vec_lvxl): New.
7546         (vec_vlogefp): New.
7547         (vec_vmaddfp): New.
7548         (vec_vmhaddshs): New.
7549         (vec_vmaxub): New.
7550         (vec_vmaxsb): New.
7551         (vec_vmaxuh): New.
7552         (vec_vmaxsh): New.
7553         (vec_vmaxuw): New.
7554         (vec_vmaxsw): New.
7555         (vec_vmaxsw): New.
7556         (vec_vmaxfp): New.
7557         (vec_vmrghb): New.
7558         (vec_vmrghh): New.
7559         (vec_vmrghw): New.
7560         (vec_vmrglb): New.
7561         (vec_vmrglh): New.
7562         (vec_vmrglw): New.
7563         (vec_vminub): New.
7564         (vec_vminsb): New.
7565         (vec_vminuh): New.
7566         (vec_vminsh): New.
7567         (vec_vminuw): New.
7568         (vec_vminsw): New.
7569         (vec_vminfp): New.
7570         (vec_vmladduhm): New.
7571         (vec_vmhraddshs): New.
7572         (vec_msumubm): New.
7573         (vec_vmsummbm): New.
7574         (vec_vmsumuhm): New.
7575         (vec_vmsumshm): New.
7576         (vec_vmsumuhs): New.
7577         (vec_vmsumshs): New.
7578         (vec_vmuleub): New.
7579         (vec_vmulesb): New.
7580         (vec_vmuleuh): New.
7581         (vec_vmulesh): New.
7582         (vec_vmuloub): New.
7583         (vec_mulosb): New.
7584         (vec_vmulouh): New.
7585         (vec_vmulosh): New.
7586         (vec_vnmsubfp): New.
7587         (vec_vnor): New.
7588         (vec_vor): New.
7589         (vec_vpkuhum): New.
7590         (vec_vpkuwum): New.
7591         (vec_vpkpx): New.
7592         (vec_vpkuhus): New.
7593         (vec_vpkshss): New.
7594         (vec_vpkuwus): New.
7595         (vec_vpkswss): New.
7596         (vec_vpkshus): New.
7597         (vec_vpkswus): New.
7598         (vec_vperm): New.
7599         (vec_vrefp): New.
7600         (vec_vrlb): New.
7601         (vec_vrlh): New.
7602         (vec_vrlw): New.
7603         (vec_vrfin): New.
7604         (vec_vrsqrtefp): New.
7605         (vec_vsel): New.
7606         (vec_vslb): New.
7607         (vec_vslh): New.
7608         (vec_vslw): New.
7609         (vec_vsldoi): New.
7610         (vec_vsl): New.
7611         (vec_vslo): New.
7612         (vec_vspltb): New.
7613         (vec_vsplth): New.
7614         (vec_vspltw): New.
7615         (vec_vspltisb): New.
7616         (vec_vspltish): New.
7617         (vec_vspltisw): New.
7618         (vec_vsrb): New.
7619         (vec_vsrh): New.
7620         (vec_vsrw): New.
7621         (vec_vsrab): New.
7622         (vec_vsrah): New.
7623         (vec_vsraw): New.
7624         (vec_vsr): New.
7625         (vec_vsro): New.
7626         (vec_stvx): New.
7627         (vec_stvebx): New.
7628         (vec_stvehx): New.
7629         (vec_stvewx): New.
7630         (vec_stvxl): New.
7631         (vec_vsububm): New.
7632         (vec_vsubuhm): New.
7633         (vec_vsubuwm): New.
7634         (vec_vsubfp): New.
7635         (vec_vsubcuw): New.
7636         (vec_vsububs): New.
7637         (vec_vsubsbs): New.
7638         (vec_vsubuhs): New.
7639         (vec_vsubshs): New.
7640         (vec_vsubuws): New.
7641         (vec_vsubsws): New.
7642         (vec_vsum4ubs): New.
7643         (vec_vsum4sbs): New.
7644         (vec_vsum4shs): New.
7645         (vec_vsum2sws): New.
7646         (vec_vsumsws): New.
7647         (vec_vrfiz): New.
7648         (vec_vupkhsb): New.
7649         (vec_vupkhpx): New.
7650         (vec_vupkhsh): New.
7651         (vec_vupklsb): New.
7652         (vec_vupklpx): New.
7653         (vec_vupklsh): New.
7654         (vec_vxor): New.
7655
7656 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
7657
7658         PR c/5430
7659         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
7660         added literals from substracted literals.
7661         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
7662         (fold) [associate]: Preserve MINUS_EXPR if needed.
7663
7664 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
7665
7666         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
7667         are obsoleted.
7668
7669 2002-04-23  Tom Tromey  <tromey@redhat.com>
7670
7671         * gcc.c: Added --resource.  For PR java/6314.
7672
7673 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
7674
7675         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
7676         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
7677         these libraries.
7678
7679 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
7680
7681         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
7682
7683 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
7684
7685         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
7686         workaround.
7687         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
7688         (ix86_expand_clrstr): Fix typo.
7689         * loop.c (gen_load_of_final_value): New.
7690         (loop_givs_rescan, strength_reduce, check_dbra_loop):
7691         Use it.
7692
7693 2002-04-23  Roger Sayle  <roger@eyesopen.com>
7694
7695         * builtins.c (builtin_memset_gen_str): New function.
7696         (expand_builtin_memset): Optimize the case of constant length, but
7697         unknown value.
7698
7699 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
7700
7701         * config/rs6000/altivec.h (vec_step): Remove extraneous
7702         parentheses.
7703         (vec_ctu): Cast return.
7704
7705 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
7706
7707         PR target/6413
7708         * function.h: (struct function): Add profile_label_no field.
7709         (current_function_profile_label_no): Define.
7710         * function.c: (profile_label_no): New static var.
7711         (expand_function_start): Increment it, and copy to
7712         current_function_profile_label_no.
7713         * output.h (profile_label_no): Delete.
7714         * final.c (profile_label_no): Delete.
7715         (profile_function): Use current_function_profile_label_no.
7716         (final_end_function): Don't increment profile_label_no here.
7717         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
7718         profile_label_no with current_function_profile_label_no.
7719         * config/pa/pa.c (current_function_number): Delete.
7720         (pa_output_function_prologue): Don't output profile label here.
7721         (hppa_profile_hook): Use label_no param rather than
7722         current_function_number.
7723         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
7724         * config/pa/pa.h: .. here.
7725         (FUNCTION_PROFILER): Output profile label here.
7726
7727 2002-04-22  Eric Christopher  <echristo@redhat.com>
7728
7729         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
7730         patch of 2002-04-09 due to binutils issues.
7731         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
7732
7733 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
7734
7735         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
7736         constraint to 'o' for m=r and r=m alternatives.
7737         ("*movv8hi_internal1"): Same.
7738         ("*movv16qi_internal1"): Same.
7739         ("*movv4sf_internal1"): Same.
7740
7741 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
7742
7743         * rtl.h (RTX_FLAG): New macro.
7744         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
7745         * final.c (alter_subreg): Use macro to access rtx flag.
7746         * integrate.c (copy_rtx_and_substitute): Use new access macro.
7747         * print-rtl.c (print_rtx): Use new access macro.
7748
7749         * cse.c (insert): Check rtx code before accessing flag.
7750
7751         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
7752         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
7753         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
7754         convert_const_symbol_ref, make_canonical, make_alternative_compare,
7755         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
7756         simplify_test_exp, optimize_attrs, simplify_by_exploding,
7757         find_and_mark_used_attributes, unmark_used_attributes,
7758         add_values_to_cover, simplify_with_current_value,
7759         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
7760         copy_rtx_unchanging, main): Use new access macros.
7761
7762 2002-04-22  Tom Rix  <trix@redhat.com>
7763
7764         * expmed.c (init_expmed): Generate shifted constant once.
7765
7766 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
7767
7768         * c-lex.c (lex_charconst): Call convert to get constant in
7769         proper type; don't just smash the type field.
7770         Fixes PR c/6300.
7771
7772         * config.gcc: Add list of obsolete configurations.  Disallow
7773         building these without --enable-obsolete.
7774         * doc/install.texi: Document --enable-obsolete and obsoletion
7775         policy.  Mention obsoletion of individual targets in
7776         appropriate places.
7777
7778 2002-04-22  Richard Henderson  <rth@redhat.com>
7779
7780         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
7781
7782 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
7783
7784         PR f/6138.
7785         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
7786         (walk_fixup_memory_subreg): Likewise.
7787         (fixup_var_refs_insn): Adjust accordingly.
7788         (fixup_var_refs_1): Likewise.
7789
7790 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
7791
7792         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
7793         LIBPATH_ARCH64_SPEC): Define.
7794         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
7795         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
7796         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
7797         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
7798
7799 2002-04-22      Joel Sherrill <joel@OARcorp.com>
7800
7801         * gthr-rtems.h: Correct prototypes to remove warnings.
7802
7803 2002-04-22  Richard Henderson  <rth@redhat.com>
7804
7805         PR c/6344
7806         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
7807
7808         * gcse.c (free_insn_expr_list_list): New.
7809         (clear_modify_mem_tables): Use it.  Fix bit set usage.
7810         (canon_list_insert): Use EXPR_LISTs for expressions.
7811         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
7812
7813 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7814
7815         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
7816         file change and include code to _cpp_pop_buffer.
7817         * cpphash.h (struct pending_option): Predeclare.
7818         (struct cpp_reader): New member next_include_file.
7819         (_cpp_pop_file_buffer): Update.
7820         (_cpp_push_next_buffer): Update, rename.
7821         * cppinit.c (cpp_destroy): Free include chain and pending here.
7822         (cpp_finish_options): Simplify.
7823         (_cpp_push_next_buffer): Rename and clean up.
7824         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
7825         Clarify.
7826         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
7827
7828 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
7829
7830         * config/rs6000/altivec.h (vec_xor): Add variant for both args
7831         being vector signed int.
7832         (vec_andc): Same.
7833         (vec_xor): Add variant for both args being vector signed char.
7834         Remove redundant variant.
7835         (vec_andc): Same.
7836
7837 2002-04-21  David S. Miller  <davem@redhat.com>
7838
7839         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
7840         compare mode in output RTL.
7841
7842 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
7843
7844         * config/rs6000/rs6000.c (rs6000_override_options): Correct
7845         style and formatting of previous patch.
7846
7847 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
7848
7849         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
7850         flag_pic for ABI_AIX.
7851
7852 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7853
7854         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
7855         * cppfiles.c (read_include_file): Similarly.
7856         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
7857         uxstrdup ustrchr, ufputs): Similarly.
7858         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
7859         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
7860         cpp_ideq, parse_identifier, parse_number): Similarly.
7861         * cpplib.c (struct directive, dequote_string, D, run_directive,
7862         cpp_push_buffer): Similarly.
7863         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
7864         _cpp_create_definition, check_trad_stringification,
7865         cpp_macro_definition): Similarly.
7866
7867 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7868
7869         * cppmacro.c (funlike_invocation_p): Don't step back
7870         over CPP_EOF.
7871
7872 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
7873
7874         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
7875         labelno.
7876
7877 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
7878
7879         * doc/invoke.texi: Remove Chill references.
7880         * doc/gcc.texi: Update last modified date.
7881
7882 2002-04-20  Kazu Hirata  <kazu@hxi.com>
7883
7884         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
7885         push and pop.  Replace add.l with add.w.
7886
7887 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
7888
7889         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
7890         multiply instructions for H8/300H case.
7891
7892 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
7893
7894         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
7895         Bum three instructions from each routine.
7896
7897 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7898
7899         * Makefile.in: Update.
7900         * decl.c (push_c_function_context, pop_c_function_context,
7901         mark_c_function_context): Rename for consistency.
7902         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
7903         * c-tree.h (push_c_function_context, pop_c_function_context,
7904         mark_c_function_context): Rename for consistency.
7905         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7906         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
7907         * function.c (init_lang_status, save_lang_status,
7908         restore_lang_status, mark_lang_status, free_lang_status):
7909         Move to langhooks.h.
7910         (push_function_context_to, pop_function_context_from,
7911         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
7912         Update.
7913         * function.h (init_lang_status, save_lang_status,
7914         restore_lang_status, mark_lang_status, free_lang_status):
7915         Move to langhooks.h.
7916         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
7917         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
7918         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
7919         LANG_HOOKS_FUNCTION_INITIALIZER): New.
7920         (LANG_HOOKS_INITIALIZER): Update.
7921         (lhd_do_nothing_f): New.
7922         * langhooks.h (struct lang_hooks_for_functions): New.
7923         (struct lang_hooks): New hooks.
7924         * langhooks.c (lhd_do_nothing_f): New.
7925 objc:
7926         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7927         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
7928
7929 2002-04-19  David S. Miller  <davem@redhat.com>
7930
7931         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
7932         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
7933
7934 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
7935
7936         PR optimization/3756
7937         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
7938         x = ((int) y < 0) ? cst1 : cst2.
7939
7940 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
7941
7942         PR c/6358
7943         * function.c: Reapply patch for c/6358.
7944         (expand_function_end): Copy decl_rtl's mode, not
7945         current_function_return_rtx mode.
7946
7947 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
7948
7949         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
7950         targets.
7951
7952 2002-04-19  Tom Tromey  <tromey@redhat.com>
7953
7954         * doc/install.texi (Specific): Update status of Solaris 2.8.
7955         For PR libgcj/6158.
7956
7957 2002-04-19  Andreas Schwab  <schwab@suse.de>
7958
7959         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
7960         (PUT_REAL): Restore old definition.
7961
7962 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
7963             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7964
7965         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
7966         binutils 2.11.2 and higher generate smaller binaries than Sun's
7967         native tools.
7968
7969 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
7970
7971         PR c++/6352
7972         * toplev.c (rest_of_compilation): Do not defer functions for which
7973         TREE_SYMBOL_REFERENCED has already been set.
7974
7975 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
7976
7977         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
7978         alternative.
7979
7980 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
7981
7982         * builtins.c: Include langhooks.h.
7983         (lang_type_promotes_to): Remove.
7984         (expand_builtin_va_arg): Use new hook.
7985         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
7986         (simple_type_promotes_to): Move to c-typeck.c.
7987         * c-common.h (simple_type_promotes_to): Remove.
7988         * c-decl.c (duplicate_decls, grokdeclarator): Update.
7989         * c-format.c: Include langhooks.h.
7990         (check_format_types): Update.
7991         * c-tree.h (c_type_promotes_to): New.
7992         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
7993         (type_lists_compatible_p): Update.
7994         * langhooks-def.h (lhd_type_promotes_to): New.
7995         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
7996         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
7997         * langhooks.c (lhd_type_promotes_to): New.
7998         * langhooks.h (struct lang_hooks_for_types): New hook.
7999         * tree.h (lang_type_promotes_to): Remove.
8000 objc:
8001         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
8002
8003 2002-04-18  Richard Henderson  <rth@redhat.com>
8004
8005         * function.c: Revert patch for c/6358.
8006
8007 2002-04-18  Richard Henderson  <rth@redhat.com>
8008
8009         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
8010         blocks.  Handle multiple references to the TRAP block.  Handle
8011         non-adjacent THEN and OTHER blocks.
8012
8013 2002-04-18  Richard Henderson  <rth@redhat.com>
8014
8015         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
8016         crash with no type for by-mode libcalls.
8017
8018         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
8019
8020 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
8021
8022         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
8023         __xtensa_nonlocal_goto): Use a syscall instructions to flush
8024         the register windows.
8025
8026 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
8027
8028         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
8029         appropriate.  Document need for extended precision even when
8030         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
8031         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
8032         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
8033         instead of relying on later syntax error when REAL_WIDTH > 5.
8034         * real.c: Define NE based only on whether or not we have a
8035         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
8036         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
8037         define GET_REAL and PUT_REAL as simple memcpy operations; no
8038         need to byteswap or round.
8039         Use #error instead of #ifdef-ing out the entire file, for
8040         prompt error detection.
8041
8042         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
8043
8044 2002-04-18  David S. Miller  <davem@redhat.com>
8045
8046         * config/sparc/sparc.h (BRANCH_COST): Define.
8047
8048         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
8049         does it.
8050
8051 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
8052
8053         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
8054         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
8055         propagate_block calls after relaxation loop using new variable
8056         stabilized_prop_flags.
8057
8058 2002-04-18  Richard Henderson  <rth@redhat.com>
8059
8060         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
8061         (ia64_va_arg): Expect variable sized types by reference.
8062         * config/ia64/ia64-protos.h: Update.
8063         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
8064         ia64_function_arg_pass_by_reference.
8065
8066 2002-04-18  Richard Henderson  <rth@redhat.com>
8067
8068         * ifcvt.c: Include except.h.
8069         (block_has_only_trap): Break out from find_cond_trap.
8070         (find_cond_trap): Use it.  Always delete the trap block.
8071         (merge_if_block): Allow then block null.  Be less simplistic about
8072         what insns can end a block.
8073         * Makefile.in (ifcvt.o): Depend on except.h.
8074
8075         * config/ia64/ia64.md (trap, conditional_trap): New.
8076
8077 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
8078
8079         PR c/6358
8080         * function.c (assign_parms): Assign hard current_function_return_rtx
8081         register here...
8082         (expand_function_end): ...not here.
8083
8084 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
8085
8086         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
8087         * c-tree.h (c_incomplete_type_error): New.
8088         * c-typeck.c (require_complete_type, build_component_ref): Update.
8089         (incomplete_type_error): Rename.
8090         * langhooks-def.h (lhd_incomplete_type_error): New.
8091         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
8092         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
8093         * langhooks.c (lhd_incomplete_type_error): New.
8094         * langhooks.h (struct lang_hooks_for_types): New hook.
8095         * tree.c (size_in_bytes): Use new hook.
8096         * tree.h (incomplete_type_error): Remove.
8097 objc:
8098         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
8099
8100 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
8101
8102         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
8103         TARGET_FLOAT_FORMAT blocks.
8104
8105 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8106
8107         * doc/install.texi (Downloading the source): Do not mention Chill
8108         any longer, but mention Ada.
8109         (Configuration): Do not mention Chill any longer.
8110
8111 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
8112
8113         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
8114
8115 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
8116
8117         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
8118         in last patch.
8119
8120 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
8121
8122         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
8123         instead of unsigned_type.
8124
8125 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
8126
8127         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
8128         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
8129         later.
8130
8131 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
8132
8133         * attribs.c (vector_type_node_list): New static variable.
8134         (handle_vector_size_attribute): Use it to avoid generating a
8135         new type node each time we are called.
8136
8137         * combine.c (subst): Avoid trying to make a vector mode subreg of
8138         an integer constant.
8139         (gen_lowpart_for_combine): Likewise.
8140
8141 2002-04-18  Roger Sayle  <roger@eyesopen.com>
8142             Jakub Jelinek  <jakub@redhat.com>
8143
8144         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
8145         for integer constant c (if x has unsigned type or sign bit is not
8146         set in c).  This folds the zero/sign extension into the bit-wise and
8147         operation.
8148
8149 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
8150
8151         PR middle-end/6205
8152         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
8153         otherwise xorps.
8154
8155 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
8156
8157         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
8158
8159 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
8160
8161         * gcc.c (read_specs): Detect and fail if an attempt is made to
8162         rename a spec string to an already existing string.
8163
8164 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
8165
8166         * config/s390/s390.c (legitimize_pic_address): Do not generate
8167         illegal address constant without CONST.
8168
8169 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8170
8171         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
8172         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
8173
8174 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
8175
8176         PR optimization/6305
8177         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
8178         to make sure previous reloads are taken into account.  Generate
8179         better code if one operand is an in-range immediate constant.
8180
8181 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
8182
8183         * doc/install.texi (Building): libgcj requires GNU make.
8184
8185 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
8186
8187         PR bootstrap/6315
8188         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
8189         even if hard quad and register is not floating.
8190         (movtf reg<-mem split): Disallow splitting if hard quad and
8191         register is floating.
8192         (movtf mem<-reg split): Likewise.
8193         * config/sparc/sparc.c (fp_register_operand): New predicate.
8194         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
8195
8196 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
8197
8198         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
8199         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
8200         (unprotoize.o): Ditto.  Build from protoize.c.  Define
8201         UNPROTOIZE on command line.
8202         * protoize.c: Include cppdefault.h.  Delete include_defaults.
8203         (in_system_include_dir): Use cpp_include_defaults (defined in
8204         cppdefault.o).
8205         * unprotoize.c: Delete file.
8206
8207 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
8208
8209         * config/rs6000/altivec.h (vec_ld): Add array variants.
8210         (vec_lde): Same.
8211         (vec_ldl): Same.
8212
8213 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
8214             Aldy Hernandez <aldyh@redhat.com>
8215
8216         * config/rs6000/altivec.h: Define __ALTIVEC__.
8217         (bool): New.
8218         (__pixel): New.
8219         (pixel): New.
8220         (vec_cfux): New.
8221         (vec_vmaddfp): New.
8222         (vec_vsldoi): New.
8223         Add parentheses to all macro arguments.
8224
8225 2002-04-16  Richard Henderson  <rth@redhat.com>
8226
8227         PR c++/6320
8228         * except.c (remove_eh_handler): Insert inner regions at beginning
8229         of sibling chain.  Refactor expressions.
8230
8231 2002-04-16  Richard Henderson  <rth@redhat.com>
8232
8233         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
8234         * config/sparc/sol2-gas-bi.h: New file.
8235         * config.gcc (sparc*-solaris): Add it as needed.
8236         * configure.in (AS_SPARC64_FLAG): Remove check.
8237         * config.in, configure: Regenerate.
8238
8239         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
8240
8241 2002-04-16  Richard Henderson  <rth@redhat.com>
8242
8243         * config/mips/mips.c (override_options): Don't override N32 for
8244         a 64-bit ISA.
8245
8246         PR 6202
8247         * config/mips/mips.md (can_delay): Split out of existing define_delays.
8248         (HILO_delay): Set can_delay false.
8249
8250 2002-04-16  Dale Johannesen <dalej@apple.com>
8251
8252         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
8253         instruction addresses.
8254         (rs6000_output_function_epilogue): Likewise.
8255
8256 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
8257
8258         * c-parse.in (poplevel, compstmt_start,
8259         compstmt_primary_start): Add ending ';', in accordance
8260         with POSIX.
8261
8262 2002-04-16  Richard Henderson  <rth@redhat.com>
8263
8264         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
8265         Adjust tm_file order to get TARGET_DEFAULT set properly.
8266         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
8267         * doc/install.texi (sparc-solaris): Update.
8268
8269 2002-04-16  Dale Johannesen <dalej@apple.com>
8270
8271         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
8272         comparison operands do not match each other or if modes of
8273         conditions do not match result.
8274
8275 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
8276
8277         PR target/6305
8278         * config/s390/s390.md (mulsidi3): Set both subregs of the
8279         multiword register.
8280
8281 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
8282
8283         * config/rs6000/altivec.h (vec_addc): Type check.
8284
8285 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
8286
8287         PR middle-end/6279
8288         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
8289
8290         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
8291
8292 2002-04-15  Richard Henderson  <rth@redhat.com>
8293
8294         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
8295         call_really_used_regs too.
8296
8297 2002-04-15  Richard Henderson  <rth@redhat.com>
8298
8299         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
8300
8301 2002-04-15  David S. Miller  <davem@redhat.com>
8302
8303         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
8304         as being CLOBBERed.
8305
8306 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
8307
8308         PR c/6290
8309         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
8310         CONST_VECTOR is { 0, ... 0 }.
8311
8312 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
8313
8314         * doc/install.texi (Installing GCC: Configuration): Clarify
8315         the only supported ways to configure gcc.
8316
8317 2002-04-15  Roland McGrath  <roland@frob.com>
8318
8319         * config.gcc (alpha*-*-gnu*): New target configuration.
8320         * config/alpha/gnu.h: New file for it.
8321         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
8322
8323 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
8324
8325         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
8326         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
8327         * tree.h (expand_start_stmt_expr): Update prototype.
8328         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
8329         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
8330         on the STMT_EXPR created for the inline function.
8331
8332 2002-04-15  Richard Henderson  <rth@redhat.com>
8333
8334         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
8335         config/i386/linux-aout.h, config/i386/linux-oldld.h,
8336         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
8337         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
8338         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
8339         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
8340         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
8341         Define __gnu_linux__, not gnu_linux.
8342         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
8343
8344 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
8345
8346         Remove Chill front end.
8347         * gcc.c (default_compilers): Remove Chill entries.
8348         * ch: Remove directory.
8349         * doc/frontends.texi: Remove information about Chill.
8350         * doc/sourcebuild.texi: Likewise.
8351         * doc/standards.texi: Likewise.
8352
8353 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
8354
8355         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
8356         (LONGLONG_STANDALONE): Define.
8357
8358 2002-04-15  David S. Miller  <davem@redhat.com>
8359
8360         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
8361         Call emit_library_call with LCT_NORMAL.
8362         (sparc_initialize_trampoline): Use LCT_foo instead of
8363         magic constant in emit_library_call invocations.
8364         (sparc64_initialize_trampoline): Likewise.
8365         (sparc_profile_hook): Likewise.
8366         * config/sparc/sparc.md: Likewise.
8367
8368         * config/sparc/sparc.c (sparc_extra_constraint_check):
8369         Fix type of argument 'c'.
8370         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
8371         Likewise.
8372
8373 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
8374
8375         * diagnostic.h (output_buffer_state): Redefine.
8376         (output_format_decoder): New macro.
8377         (output_prefixing_rule): Likewise.
8378         (output_line_cutoff): Likewise.
8379         (diagnostic_format_decoder): Adjust.
8380         (diagnostic_prefixing_rule): Likewise.
8381         (diagnostic_line_cutoff): Likewise.
8382         (diagnostic_state): Likewise.
8383         (diagnostic_kind_count): Likewise.
8384         (diagnostic_buffer): Now a macro.
8385
8386         * diagnostic.c (diagnostic_buffer): Remove definition.
8387         (output_is_line_wrapping): Adjust.
8388         (set_real_maximum_length): Likewise.
8389         (output_set_maximum_length): Likewise.
8390         (init_output_buffer): Likewise.
8391         (lhd_print_error_function): Likewise.
8392         (output_do_verbatim): Likewise.
8393
8394 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
8395
8396         * cpperror.c (print_location): Don't print include chain
8397         if line == 0.
8398         (cpp_begin_message): Update to use DL_ macros.
8399         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
8400         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
8401         cpp_notice, cpp_notice_from_errno): Remove.
8402         (cpp_error, cpp_error_with_line): Update to take a diagnostic
8403         level.
8404         (cpp_errno): New.
8405         * cppexp.c (CPP_ICE): Remove.
8406         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
8407         lex, integer_overflow, _cpp_parse_expr): Update.
8408         * cppfiles.c (read_include_file, find_include_file,
8409         handle_missing_header, _cpp_read_file, remap_filename): Update.
8410         * cpphash.h (enum error_type): Remove.
8411         (_cpp_begin_message): Update.
8412         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
8413         cpp_handle_option, cpp_post_options): Update.
8414         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
8415         skip_whitespace, parse_identifier, parse_slow, parse_string,
8416         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
8417         cpp_interpret_charconst): Update.
8418         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
8419         lex_macro_node, do_undef, glue_header_name, parse_include,
8420         do_include_common, read_flag, do_line, do_linemarker, do_ident,
8421         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
8422         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
8423         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
8424         _cpp_pop_buffer, do_diagnostic): Update.
8425         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
8426         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
8427         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
8428         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
8429         cpp_notice, cpp_notice_from_errno): Remove.
8430         (cpp_error, cpp_error_with_line): Update to take a diagnostic
8431         level.
8432         (cpp_errno): New.
8433         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
8434         collect_args, enter_macro_context, save_parameter, parse_params,
8435         _cpp_create_definition, check_trad_stringification,
8436         cpp_macro_definition): Update.
8437         * cppmain.c (cpp_preprocess_file): Update.
8438         * fix-header.c (read_scan_file): Update.
8439
8440 2002-04-14  Andreas Schwab  <schwab@suse.de>
8441
8442         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
8443
8444 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
8445
8446         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
8447
8448 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
8449
8450         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
8451         not gnu_hurd.
8452
8453 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
8454
8455         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
8456
8457 2002-04-13      Joel Sherrill <joel@OARcorp.com>
8458
8459         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
8460         sparc-elf and sparc-rtems targets.
8461
8462 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
8463
8464         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
8465         defined, and __gnu_hurd__ wherever __GNU__ is defined.
8466         * arm/linux-elf.h: Likewise.
8467         * cris/aout.h: Likewise.
8468         * cris/linux.h: Likewise.
8469         * i370/linux.h: Likewise.
8470         * i386/gnu.h: Likewise.
8471         * i386/linux-aout.h: Likewise.
8472         * i386/linux-oldld.h: Likewise.
8473         * i386/linux.h: Likewise.
8474         * i386/linux64.h: Likewise.
8475         * ia64/linux.h: Likewise.
8476         * m68k/linux-aout.h: Likewise.
8477         * m68k/linux.h: Likewise.
8478         * mips/linux.h: Likewise.
8479         * pa/pa-linux.h: Likewise.
8480         * pj/linux.h: Likewise.
8481         * rs6000/sysv4.h: Likewise.
8482         * s390/linux.h: Likewise.
8483         * sh/linux.h: Likewise.
8484         * sparc/linux-aout.h: Likewise.
8485         * sparc/linux.h: Likewise.
8486         * sparc/linux64.h: Likewise.
8487         * xtensa/linux.h: Likewise.
8488
8489 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
8490
8491         * stmt.c (check_unique_operand_names): Expect operand names to
8492         be strings rather than identifiers.  Use simple_cst_equal to
8493         compare them.
8494         (resolve_operand_name_1): Make same identifier to string change here.
8495         * c-parse.in (asm_operand): Convert a named operand into a string.
8496         * cp/parse.y (asm_operand): Likewise.
8497
8498 2002-04-13  Andreas Schwab  <schwab@suse.de>
8499
8500         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
8501
8502 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
8503
8504         Revert these changes:
8505
8506         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
8507
8508         PR c++/5571
8509         * stor-layout.c (layout_decl): Reset the RTL for the decl.
8510
8511 2002-04-12  Richard Henderson  <rth@redhat.com>
8512
8513         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
8514         (sparc*-*-solaris): Clean up header files.
8515         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
8516         and plan on generating 64-bit code.
8517         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
8518         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
8519         * config/sparc/sol2-sld-64.h: Rename ...
8520         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
8521         for AS_SPARC64_FLAG not defined.
8522         * config/sparc/sol2-gld-bi.h: New.
8523         * config/sparc/sol2-sld.h: Remove.
8524         * config/sparc/sol26-sld.h: New.
8525         * config/sparc/sol2.h: Tidy comments.
8526         * doc/install.texi: Document sparc-solaris configury changes.
8527
8528 2002-04-12  Richard Henderson  <rth@redhat.com>
8529
8530         * recog.c (offsettable_address_p): Match the logic in adjust_address.
8531
8532         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
8533         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
8534
8535 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8536
8537         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
8538
8539 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
8540
8541         * pa.c (pa_can_combine_p): Call extract_insn before calling
8542         constrain_operands.
8543
8544 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
8545
8546         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
8547         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
8548         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
8549         (CPP_PREDEFINES): Handle __declspec.
8550         * config/i386/t-interix (USER_H): Remove.
8551
8552 2002-04-12  DJ Delorie  <dj@redhat.com>
8553
8554         * integrate.c (compare_blocks): Make comparisons safe for when
8555         sizeof(int) < sizeof(char *).
8556         (find_block): Likewise.
8557
8558 2002-04-12  Jan Hubicka  <jh@suse.cz>
8559             David Edelsohn  <edelsohn@gnu.org>
8560
8561         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
8562         registers.
8563         (symbol_ref_operand): New.
8564         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
8565         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
8566
8567 2002-04-12  Andreas Schwab  <schwab@suse.de>
8568
8569         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
8570         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
8571         overrides the definition in config/svr4.h.
8572
8573 2002-04-12      Eric Norum <eric.norum@usask.ca>
8574
8575         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
8576         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
8577         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
8578         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
8579         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
8580         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
8581         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
8582         definitions to config/rtems.h and make the targets more similar.
8583
8584 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8585
8586         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
8587         POINTERS_EXTEND_UNSIGNED.
8588         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
8589         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
8590
8591         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
8592         not specified.
8593
8594 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
8595
8596         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
8597         depends on TARGET_SHMEDIA, not TARGET_SH5.
8598
8599 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
8600
8601         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
8602         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
8603
8604 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
8605
8606         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
8607         no r0 clobber.
8608
8609 2002-04-12  Andreas Schwab  <schwab@suse.de>
8610
8611         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
8612
8613 2002-04-12  Richard Henderson  <rth@redhat.com>
8614
8615         PR bootstrap/4191
8616         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
8617
8618         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
8619         modes spanning multiple hard regs.
8620
8621         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
8622
8623 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8624
8625         * pa.c (pa_output_function_prologue): Don't accumulate the total
8626         number of code bytes when using TARGET_64BIT, or gas, SOM and not
8627         the portable runtime.
8628         (output_deferred_plabels): Handle 64bit plabels.
8629         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
8630         generating pic code using the GAS assembler for object formats that
8631         are not SOM (ie., ELF32 and ELF64).
8632         (output_millicode_call): Check attribute type if attribute length is 28.
8633         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
8634         dbr_sequence_length once.
8635         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
8636         dbr_sequence_length once.
8637         * pa.h (TARGET_SOM): Define if not defined.
8638         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
8639         with GAS and not SOM.
8640         (jump, call_internal_reg, call_value_internal_reg): Likewise.
8641         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
8642
8643 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
8644
8645         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
8646         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
8647         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
8648         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
8649         elfos.h and dbxelf.h values are fine now.
8650         * config/i386/freebsd.h, config/alpha/freebsd.h
8651         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
8652
8653 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
8654
8655         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
8656         or set Acpu or Amachine.  Reformat.
8657         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
8658         define.
8659         (LINK_SPEC): Do not need to undef.
8660         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
8661         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
8662         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
8663         define.
8664         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
8665         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
8666         (LINK_SPEC): Do not need to undef.
8667         (DONT_USE_BUILTIN_SETJMP): Do not define.
8668         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
8669         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
8670         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
8671         Remove trailing spaces.
8672         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
8673         __ELF__, or set Acpu or Amachine.  Reformat.
8674         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
8675         define.
8676
8677 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
8678
8679         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
8680         all other *-*-freebsd* targets.
8681
8682 2002-04-11  Richard Henderson  <rth@redhat.com>
8683
8684         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
8685
8686 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
8687
8688         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
8689         Include {cpu}/{cpu}.h thru tm_file.
8690         (alpha*-*-linux*ecoff): Remove target.
8691         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
8692         (LINK_SPEC): Remove, is not OS independent.
8693         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
8694         (LINK_SPEC): Do not need to #undef any longer.
8695         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
8696         any longer.
8697         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
8698         __ELF__.
8699         (LINK_SPEC): Moved here from alpha/elf.h.
8700         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
8701         SUB_CPP_PREDEFINES.
8702         * config/alpha/linux-ecoff.h: Remove.
8703         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
8704         (CPP_SPEC): Define _POSIX_SOURCE as needed.
8705         (CPP_SUBTARGET_SPEC): Do not define.
8706         (LINK_SPEC): Do not need to #undef any longer.
8707         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
8708         * config/alpha/vms.h: Likewise.
8709
8710 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
8711
8712         * doc/extend.texi: Remove old claim that typedefs cannot have
8713         an alignment attribute.
8714
8715 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
8716
8717         PR optimization/6177
8718         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
8719         bitpos is 0 and bitsize CONCAT size.
8720
8721 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
8722
8723         PR c/6223
8724         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
8725
8726 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
8727
8728         * config/alpha/freebsd.h: Minor reformatting.
8729         (CPP_SPEC): Define ELF and add cpp_subtarget.
8730         (ASM_SPEC): No longer needed.
8731
8732 2002-04-11  Richard Henderson  <rth@redhat.com>
8733
8734         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
8735         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
8736         (dimode mem/zero splitter): New.
8737
8738 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
8739
8740         * config/cris/cris.c (cris_override_options): Tweak error message
8741         for PIC not implemented.
8742
8743         * config/cris/cris.h: Tweak comments related to parameter-passing.
8744
8745         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
8746
8747 2002-04-10  Richard Henderson  <rth@redhat.com>
8748
8749         * except.c (add_ehl_entry): Allow duplicates after landing pad
8750         creation.
8751
8752 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
8753
8754         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
8755
8756 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
8757
8758         * c-decl.c (c_init_decl_processing): Move generation of
8759         decls for g77_integer_type_node and friends from here ...
8760         * c-common.c (c_common_nodes_and_builtins): ... to here.
8761
8762 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
8763
8764         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
8765         is only used as frame pointer when frame_pointer_needed is true.
8766
8767 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
8768
8769         PR target/817
8770         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
8771         for the fact that the pool entry uses two words.
8772         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
8773         1k bytes.
8774         (movdf_soft_insn): Similarly.
8775         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
8776         for the fact that the pool entry uses three words.
8777
8778 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
8779
8780         * config/mips/mips.c (mips_va_arg): When using the struct version
8781         of the EABI va_list, allow arguments in the register save area to
8782         take up less room than a stack argument.
8783
8784 2002-04-10  Richard Henderson  <rth@redhat.com>
8785
8786         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
8787         if EXPAND_INITIALIZER.
8788
8789 2002-04-09  Richard Henderson  <rth@redhat.com>
8790
8791         * config/alpha/alpha.md (movdi_er_maybe_g): New.
8792         * config/alpha/alpha.c (alpha_expand_mov): Use it.
8793
8794 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
8795
8796         PR optimization/6233
8797         * rtlanal.c (pure_call_p): New function.
8798         * rtl.h (pure_call_p): Declare.
8799         * loop.c (prescan_loop): Use it to set has_nonconst_call.
8800         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
8801
8802 2002-04-09  Eric Christopher  <echristo@redhat.com>
8803
8804         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
8805         information to .comm directive.
8806
8807 2002-04-09  Richard Henderson  <rth@redhat.com>
8808
8809         PR c/5078
8810         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
8811
8812 2002-04-09  Richard Henderson  <rth@redhat.com>
8813
8814         * basic-block.h (flow_delete_block_noexpunge): Declare.
8815         (expunge_block_nocompact): Declare.
8816         * cfg.c (expunge_block_nocompact): Split out from ...
8817         (expunge_block): ... here.
8818         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
8819         (flow_delete_block_noexpunge): Split out from ...
8820         (flow_delete_block): ... here.
8821         * cfgcleanup.c (delete_unreachable_blocks): Compact while
8822         removing dead blocks.
8823         * except.c (exception_handler_labels): Remove.
8824         (exception_handler_label_map): New.
8825         (struct eh_region): Add aka member.
8826         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
8827         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
8828         (for_each_eh_label, for_each_eh_label_1): New.
8829         (init_eh): Register exception_handler_label_map.
8830         (free_eh_status): Use free_region.
8831         (find_exception_handler_labels): Use the map, not the list.
8832         (remove_exception_handler_label): Likewise.
8833         (maybe_remove_eh_handler): Likewise.
8834         (remove_eh_handler): Use the region aka bitmap.
8835         * except.h (exception_handler_labels): Remove.
8836         (for_each_eh_label): Declare.
8837         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
8838         * loop.c (invalidate_loops_containing_label): New.
8839         (find_and_verify_loops): Use it.  Use for_each_eh_label.
8840         * sched-rgn.c (is_cfg_nonregular): Use
8841         current_function_has_exception_handlers.
8842
8843 2002-04-09  Richard Henderson  <rth@redhat.com>
8844
8845         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
8846         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
8847         Do not return changed status.
8848         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
8849         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
8850         New functions that do return changed status.
8851         * sbitmap.h: Update decls.
8852         * gcse.c, lcm.c: Use _cg functions as needed.
8853
8854 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
8855
8856         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
8857         (sh64-*-elf*, sh-*-rtemself*): Likewise.
8858         * config/sh/embed_bb.c: New file.
8859         * config/sh/embed-elf.h: New file.
8860         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
8861         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
8862         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
8863         __PTRDIFF_TYPE__ .
8864         (SUBTARGET_CPP_PTR_SPEC): Don't define.
8865         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
8866         Add subtarget_asm_endian_spec.
8867         (ASM_SPEC): Use subtarget_asm_endian_spec.
8868         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
8869         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
8870         (WCHAR_UNSIGNED): Define.
8871         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
8872         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
8873         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
8874         Fix value.
8875         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
8876         (sh_adjust_cost): Likewise.
8877         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
8878         __PTRDIFF_TYPE__ .
8879         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
8880         (WCHAR_TYPE_SIZE): Likewise.
8881         (ASM_SPEC): Use subtarget_asm_endian_spec.
8882         (SH_ELF_WCHAR_TYPE): #undef/ #define.
8883         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
8884         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
8885         (MAX_WCHAR_TYPE_SIZE): Don't #define .
8886         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
8887         (USER_LABEL_PREFIX): Don't #undef /#define .
8888         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
8889         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
8890         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
8891         (ASM_SPEC): Likewise.
8892         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
8893         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
8894         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
8895         (LIB2FUNCS_EXTRA): Define.
8896         * t-sh64 (LIB2FUNCS_EXTRA): Define.
8897         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
8898         (LIB1ASMFUNCS_CACHE): Define.
8899         (LIB2FUNCS_EXTRA): Redefine empty.
8900
8901 2002-04-08  Richard Henderson  <rth@redhat.com>
8902
8903         * reorg.c (get_branch_condition): Use reversed_comparison_code.
8904
8905 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8906
8907         * config/m68hc11/larith.asm (__map_data_section): Fix condition
8908         and optimize for size.
8909         (__do_global_ctors): Fix pointer comparison.
8910         (__do_global_dtors): Likewise.
8911
8912 2002-04-09  David S. Miller  <davem@redhat.com>
8913
8914         * config/sparc/sparc.c (sparc_extra_constraint_check): New
8915         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
8916         allow reloading pseudos.
8917         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
8918         * config/sparc/sparc-protos.h: Declare it.
8919
8920         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
8921         unsigned comparison warning.
8922         (output_restore_regs): Mark leaf_function as unused.
8923
8924 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8925
8926         * expr.c (is_aligning_offset): New function.
8927         (expand_expr, case COMPONENT_EXPR): Call it.
8928
8929 2002-04-08  David S. Miller  <davem@redhat.com>
8930
8931         PR target/6082
8932         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
8933
8934         Make init_priority work on Sparc when using GNU ld.
8935         * config/sparc/linux.h, config/sparc/linux64.h,
8936         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
8937         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
8938         * config/sparc/sol2-gld.h: New file to do the same.
8939         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
8940         sparc/sol2-gld.h to tm_file.
8941
8942         PR optimization/4328
8943         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
8944         * doc/md.texi: Document it.
8945         * config/sparc/sparc.md (movdi_insn_sp64_novis,
8946         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
8947         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
8948         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
8949         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
8950
8951 2002-04-08  Andreas Jaeger  <aj@suse.de>
8952
8953         * stmt.c (expand_asm_operands): Revert last patch from Richard
8954         Henderson.
8955
8956 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8957
8958         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
8959         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
8960
8961 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8962
8963         * doc/contrib.texi (Contributors): Add David O'Brien.
8964
8965 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
8966
8967         * configure.in (auto-build.h): Use target_alias and build_alias
8968         when running configure.
8969         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
8970         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
8971         * configure: Regenerate.
8972
8973 2002-04-07  David S. Miller  <davem@redhat.com>
8974
8975         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
8976
8977 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8978
8979         PR 5933
8980         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
8981         generating 32-bit pic code.
8982
8983 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
8984
8985         * cppinit.c (cpp_create_reader): Initialize
8986         discard_comments_in_macro_exp.
8987         (COMMAND_LINE_OPTIONS): Add "-CC" option.
8988         (cpp_handle_option): Handle "-CC" option.
8989         * cpplex.c (save_comment): If saving a C++ comment in
8990         a directive, convert it to a C comment.
8991         (_cpp_lex_direct): Pass second comment start character to
8992         save_comment to indicate comment type.
8993         * cpplib.c (_cpp_handle_directive): If processing
8994         a "#define" directive and discard_comments_in_macro_exp
8995         is false,  re-enable saving of comments.
8996         (lex_macro_node): If discard_comments_in_macro_exp is false,
8997         discard any comments before the macro identifier.
8998         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
8999         member.
9000         * cppmacro.c (cpp_get_token): If expanding a macro while
9001         processing a directive, discard any comments we might encounter.
9002         (parse_params): If discard_comments_in_macro_exp is false,
9003         ignore comments in the macro parameter list.
9004         * gcc.c (cpp_unique_options): Add "-CC" option.
9005         (option_map): Map "--comments-in-macros" to "-CC".
9006         * doc/cppopts.texi: Document "-CC" option.
9007         * f/lang-specs.h: Add "-CC" option.
9008         * testsuite/gcc.dg/cpp/maccom1.c: New test.
9009         * testsuite/gcc.dg/cpp/maccom2.c: New test.
9010         * testsuite/gcc.dg/cpp/maccom3.c: New test.
9011         * testsuite/gcc.dg/cpp/maccom4.c: New test.
9012         * testsuite/gcc.dg/cpp/maccom5.c: New test.
9013         * testsuite/gcc.dg/cpp/maccom6.c: New test.
9014
9015 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9016
9017         PR middle-end/6180
9018         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
9019
9020 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
9021
9022         PR c++/5571
9023         * stor-layout.c (layout_decl): Reset the RTL for the decl.
9024
9025         PR opt/5120
9026         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
9027         RTX_UNCHANGING_P for the functions arguments when a tail call
9028         is made.
9029
9030 2002-04-06  Jason Merrill  <jason@redhat.com>
9031
9032         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
9033         (parse_options_and_default_flags): Set them appropriately.
9034         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
9035
9036 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
9037
9038         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
9039         here.
9040
9041         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
9042         semicolon.
9043
9044         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
9045         types come in by-reference.  Fix typo in comment.
9046
9047 2002-04-05  David S. Miller  <davem@redhat.com>
9048
9049         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
9050         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
9051         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
9052         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
9053
9054 2002-04-05  David S. Miller  <davem@redhat.com>
9055
9056         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
9057         are not going to emit return instructions, emit at least a nop
9058         for the sake of sane backtraces.
9059
9060 2002-04-05  Richard Henderson  <rth@redhat.com>
9061
9062         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
9063
9064 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
9065
9066         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
9067
9068 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
9069
9070         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
9071         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
9072         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
9073
9074 2002-04-05  Andreas Schwab  <schwab@suse.de>
9075
9076         * c-convert.c: Include c-common.h.
9077         * Makefile.in (c-convert.o): Updated.
9078
9079 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
9080
9081         * mklibgcc.in: Use separate libgcc.map for each multilib.
9082         * Makefile.in (distclean): Don't remove libgcc.map here.
9083
9084 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
9085
9086         * Makefile.in (s-mlib): Handle --disable-multilib by separate
9087         genmultilib invocation.
9088
9089 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
9090
9091         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
9092         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
9093         to num_gprs for symmetry.
9094         * config/mips/mips.c: Adjust accordingly.
9095
9096 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9097
9098         * c-common.c (truthvalue_conversion): Rename, update.
9099         * c-common.h (c_common_truthvalue_conversion): New.
9100         * c-convert.c (convert): Update.
9101         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
9102         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
9103         * c-typeck.c (build_binary_op, build_unary_op,
9104         build_conditional_expr): Update.
9105         * fold-const.c (constant_boolean_node, fold): Use langhook.
9106         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
9107         * langhooks.h (struct lang_hooks): New hook.
9108         * stmt.c (expand_decl_cleanup): Use langhook.
9109         * tree.h (truthvalue_conversion): Remove.
9110 objc:
9111         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
9112
9113 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
9114
9115         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
9116         Add rules to make null object file.
9117
9118 2002-04-04  Jim Blandy  <jimb@redhat.com>
9119
9120         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
9121         macro formal parameter names.
9122
9123 2002-04-04  David S. Miller  <davem@redhat.com>
9124
9125         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
9126
9127 2002-04-04  Richard Henderson  <rth@redhat.com>
9128
9129         PR middle-end/5099
9130         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
9131         Support copies into and out of memory.  Don't accept allows_reg
9132         and allows_mem as gospel.
9133
9134 2002-04-04  Richard Henderson  <rth@redhat.com>
9135
9136         PR opt/6165
9137         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
9138         (write_dependence_p): Likewise.
9139
9140 2002-04-04  Richard Henderson  <rth@redhat.com>
9141
9142         * predict.c (estimate_bb_frequencies): Do frequency calculation
9143         with a volatile temporary.
9144
9145 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
9146
9147         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
9148
9149 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9150
9151         PR c++/6119
9152         * final.c (final_start_function): Don't bump profile_label_no here...
9153         (final_end_function): ...but here.
9154
9155 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9156
9157         * config/sparc/sparc.md (pic): New attribute.
9158         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
9159         into stack slots.
9160         (split after do_builtin_setjmp_setup): New.
9161
9162 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9163
9164         PR fortran/6106
9165         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
9166         change.
9167
9168 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9169
9170         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
9171         UNITS_PER_WORD for zero sized aggregates.
9172
9173 2002-04-03  David S. Miller  <davem@redhat.com>
9174
9175         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
9176         one-character spec for this, just use %(link_gcc_c_sequence).
9177
9178 2002-04-03  David S. Miller  <davem@redhat.com>
9179
9180         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
9181         handling.
9182
9183 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9184
9185         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
9186         (DWARF_FRAME_RETURN_COLUMN): Move.
9187         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9188         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
9189         * pa.c (except.h, predict.h): Include.
9190         (FRP): Delete.
9191         (store_reg_modify, set_reg_plus_d): Revise prototypes.
9192         (output_ascii): Add cast.
9193         (store_reg_modify): Revise to add frame notes.
9194         (set_reg_plus_d): Likewise.
9195         (compute_frame_size): Include space for eh data registers in frame if
9196         the current function calls eh_return.
9197         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
9198         function calls eh_return.  Save eh data registers if the current
9199         function calls eh_return.  Fix code to add frame notes.  Emit
9200         blockage to prevent insns with frame notes being scheduled in the
9201         delay slot of calls.
9202         (hppa_expand_epilogue): Restore eh data registers and do final stack
9203         adjustment if the current function calls eh_return.  Don't add frame
9204         notes.
9205         (output_call): Revise for change in length of call insn.  Don't do
9206         return pointer adjustment for an unconditional jump in the delay slot
9207         of a call when using frame notes.
9208         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
9209         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
9210         (ARG_POINTER_CFA_OFFSET): Define.
9211         * pa.md (return_external_pic): New pattern.
9212         (prologue): Correct formatting.  Use return_external_pic if current
9213         function calls eh_return.
9214         (call_internal_symref, call_value_internal_symref,
9215         sibcall_internal_symref, sibcall_value_internal_symref): Change default
9216         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
9217         respectively.
9218         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
9219
9220         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
9221         list of targets to check using "nop" insn.
9222         * configure: Rebuilt.
9223
9224 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
9225
9226         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
9227
9228 2002-04-03  David S. Miller  <davem@redhat.com>
9229
9230         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
9231         library sequence passed to the linker.
9232         (LINK_COMMAND_SPEC): Use it.
9233         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
9234         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
9235         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
9236
9237 2002-04-03  Jason Merrill  <jason@redhat.com>
9238
9239         * except.c (struct eh_status): Remove protect_list.
9240         (begin_protect_partials, end_protect_partials): Remove.
9241         (add_partial_entry): Remove.
9242         * except.h: Remove prototypes.
9243
9244         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
9245         expand_decl_cleanup_eh.
9246
9247         PR c++/5636
9248         * tree.h (CLEANUP_EH_ONLY): New macro.
9249         * stmt.c (expand_decl_cleanup_eh): New fn.
9250         (expand_cleanups): Check CLEANUP_EH_ONLY.
9251         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
9252         Use expand_decl_cleanup_eh.
9253         (expand_stmt): Adjust.
9254         * c-common.h: Adjust prototype.
9255
9256 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
9257
9258         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
9259         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
9260         (cris_target_asm_function_epilogue): Ditto.
9261         (cris_initial_frame_pointer_offset): Ditto.
9262         (cris_simple_epilogue): Ditto.
9263         (cris_expand_builtin_va_arg): Variable-size types come in
9264         by-reference.
9265
9266 2002-04-03  David S. Miller  <davem@redhat.com>
9267
9268         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
9269         little-endian.
9270         (set_fast_math): Correct 'fsr' type.
9271
9272 2002-04-03  Richard Henderson  <rth@redhat.com>
9273
9274         PR opt/3569
9275         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
9276         * toplev.c (check_global_declarations): Use it.
9277         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
9278         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
9279         (LANG_HOOKS_DECLS): Add it.
9280         * langhooks.c (lhd_warn_unused_global_decl): New.
9281         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
9282         * c-objc-common.c (c_warn_unused_global_decl): New.
9283         * c-tree.h (c_warn_unused_global_decl): Declare.
9284         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
9285
9286 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
9287
9288         * langhooks-def.h (lhd_set_decl_assembler_name,
9289         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
9290         (LANG_HOOKS_INITIALIZER): Update.
9291         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
9292         * langhooks.h (struct lang_hooks): New hook.
9293         * tree.c (set_decl_assembler_name): Move to langhooks.c.
9294         (lang_set_decl_assembler_name): Remove.
9295         (init_obstacks): Don't set hook.
9296         (decl_assembler_name): New function.
9297         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
9298         (decl_assembler_name): New.
9299         (lang_set_decl_assembler_name): Remove.
9300
9301 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
9302
9303         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
9304         works properly with .hidden symbols.
9305         * configure: Rebuilt.
9306         * config.in: Rebuilt.
9307         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
9308         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
9309         properly with .hidden symbols.
9310
9311 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
9312
9313         PR middle-end/6102
9314         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
9315         USE argument.
9316
9317 2002-04-03  Richard Henderson  <rth@redhat.com>
9318
9319         PR opt/4120
9320         * sched-rgn.c (sets_likely_spilled): New.
9321         (sets_likely_spilled_1): New.
9322         (add_branch_dependences): Use it.
9323
9324 2002-04-02  Richard Henderson  <rth@redhat.com>
9325
9326         PR opt/4311
9327         * loop.h (LOOP_FIRST_PASS): New.
9328         * loop.c (strength_reduce): Mind it when deciding to unroll.
9329         * toplev.c (rest_of_compilation): Set it.
9330
9331 2002-04-02  David S. Miller  <davem@redhat.com>
9332
9333         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
9334         mems_ok_for_ldd_peep when the order of the loads being examined
9335         is reversed.
9336         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
9337         existing comment to increase comprehension of this situation.
9338
9339 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
9340
9341         * config/sh/sh.md: Don't use union real_extract.
9342
9343 2002-04-02  Richard Henderson  <rth@redhat.com>
9344
9345         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
9346
9347 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
9348
9349         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
9350         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
9351         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
9352         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
9353         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
9354         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
9355         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
9356         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
9357         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
9358         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
9359         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
9360         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
9361         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
9362         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
9363         Include as many configury headers via tm_file as possible.  This
9364         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
9365         * config/openbsd-oldgas.h: New file.
9366         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
9367         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
9368         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
9369         config/i386/i386-coff.h, config/i386/i386-interix.h,
9370         config/i386/iscdbx.h, config/i386/linux-aout.h,
9371         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
9372         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
9373         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
9374         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
9375         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
9376         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
9377         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
9378         config/i386/vxi386.h: Do not directly include configury headers.
9379         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
9380         Directly include configury headers that are no longer automatically
9381         included by the above headers.
9382         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
9383         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
9384         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
9385         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
9386         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
9387         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
9388         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
9389         (TARGET_VERSION): Define.
9390         * config/i386/beos-elf.h, config/i386/freebsd.h,
9391         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
9392         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
9393         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
9394         config/i386/sco5.h, config/i386/sysv4.h
9395         (TARGET_VERSION): Do not need to protect.
9396         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
9397         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
9398         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
9399         config/i386/i386-interix.h, config/i386/linux-aout.h,
9400         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
9401         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
9402         (YES_UNDERSCORES): Do not define - not needed.
9403         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
9404         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
9405         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
9406         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
9407         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
9408         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
9409         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
9410         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
9411
9412 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
9413             Richard Henderson  <rth@redhat.com>
9414
9415         PR c/5484
9416         * function.c (assign_temp): Accept either type or decl argument.
9417         Detect variables whose size is too large to fit into an integer.
9418         * stmt.c (expand_decl): Pass the decl, not the type.
9419
9420 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
9421
9422         * protoize.c: Match include directory usage with cppdefault.c.
9423
9424 2002-04-03  Jeffrey A Law  (law@redhat.com)
9425             Hans-Peter Nilsson  <hp@bitrange.com>
9426
9427         * combine.c (simplify_comparison): Avoid narrowing a comparison
9428         with a paradoxical subreg when doing so would drop signficant bits.
9429
9430 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
9431
9432         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
9433         if POINTERS_EXTEND_UNSIGNED is defined.
9434
9435 2002-04-02  Richard Henderson  <rth@redhat.com>
9436
9437         PR opt/3967
9438         * local-alloc.c (contains_replace_regs): LO_SUM may contain
9439         replace regs.
9440
9441 2002-04-02  Richard Henderson  <rth@redhat.com>
9442
9443         * doc/standards.texi: Document required freestanding libc entry points.
9444
9445 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
9446
9447         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
9448         associated splitter.  Remove MQ constraint.
9449         (ctrdi_internal4): Correct CCmode clobber.
9450
9451 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9452
9453         * milli64.S ($$dyncall): New function.
9454         * t-linux (LIB1ASMFUNCS): Revise module list.
9455         (LIB1ASMSRC): Use pa/milli64.S.
9456
9457 2002-04-02  Richard Henderson  <rth@redhat.com>
9458
9459         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
9460         rename solaris_sys_varargs_h.
9461
9462 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9463
9464         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
9465         the same mode as its component.
9466
9467 2002-04-02  Richard Henderson  <rth@redhat.com>
9468
9469         PR opt/190
9470         * final.c (this_is_asm_operands): Export.
9471         * output.h (this_is_asm_operands): Declare.
9472         * config/i386/i386.c (print_operand): Error odd asm operands.
9473
9474 2002-04-02  Richard Henderson  <rth@redhat.com>
9475
9476         PR opt/420
9477         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
9478
9479 2002-04-01  Richard Henderson  <rth@redhat.com>
9480
9481         PR target/1538
9482         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
9483         * fixinc/fixincl.x: Rebuild.
9484
9485 2002-04-01  Richard Henderson  <rth@redhat.com>
9486
9487         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
9488         (atomic_alloc, atomic_free): New.
9489         (SIZE, MASK_FOR, PTR_IN): New.
9490         (emergency_reg_state, emergency_reg_state_free): New.
9491         (emergency_labeled_state, emergency_labeled_state_free): New.
9492         (reg_state_alloced, labeled_state_alloced): New.
9493         (alloc_reg_state, free_reg_state): New.
9494         (alloc_label_state, free_label_state, free_label_states): New.
9495         (push, pop, dup_state_stack, free_state_stack): Use them.
9496         (desc_label_state): Likewise.
9497         (uw_frame_state_for): Free label states and state stack.
9498         (uw_update_reg_address): Eliminate warnings.
9499
9500 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
9501
9502         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
9503         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
9504
9505 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
9506
9507         * c-decl.c (grokdeclarator): Update.
9508         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
9509         * c-tree.h (c_mark_addressable): New.
9510         * c-typeck.c (default_function_array_conversion, build_unary_op,
9511         build_array_ref, convert_for_assignment): Update.
9512         (mark_addressable): Rename.
9513         * calls.c (try_to_integrate, expand_call): Use langhook.
9514         * expr.c (expand_expr): Use langhook.
9515         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
9516         * langhooks.h (struct lang_hooks): New hook.
9517         * stmt.c (expand_asm_operands): Use langhook.
9518         * tree.h (mark_addressable): Remove.
9519 objc:
9520         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
9521
9522 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
9523
9524         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
9525         in previous change.
9526
9527 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
9528
9529         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
9530         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
9531
9532 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
9533
9534         * c-common.c (unsigned_conversion_warning, convert_and_check,
9535         unsigned_type, signed_type, shorten_compare,
9536         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
9537         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
9538         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
9539         New.
9540         * c-decl.c (grokdeclarator): Update.
9541         * c-format.c (check_format_types): Update.
9542         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
9543         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
9544         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
9545         * convert.c (convert_to_integer): Use new hooks.
9546         * expmed.c (make_tree): Use new hooks.
9547         * expr.c (store_expr): Use new hooks.
9548         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
9549         all_ones_mask_p, unextend, fold): Use new hooks.
9550         * langhooks.h (struct lang_hooks_for_types): New hooks.
9551         * tree.h (signed_or_unsigned_type, signed_type,
9552         unsigned_type): Remove.
9553 objc:
9554         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
9555         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
9556
9557 2002-03-31  Richard Henderson  <rth@redhat.com>
9558
9559         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
9560         (desc_frgr_mem): Fix reference to f16-f31.
9561
9562 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9563
9564         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
9565         RTVEC_ELT): Const-ify.
9566         * varray.h (VARRAY_CHECK): Const-ify.
9567         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
9568         ggc_mark_rtvec, ggc_mark): Const-ify.
9569
9570 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
9571
9572         * diagnostic.c: Include langhooks-def.h.
9573         * Makefile.in (diagnostic.o): Update.
9574
9575 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
9576
9577         * c-common.c (c_unsafe_for_reeval): Rename.
9578         * c-common.h (c_unsafe_for_reeval): Rename.
9579         * c-decl.c (finish_incomplete_decl): Rename.
9580         (c_init_decl_processing): Don't set langhook.
9581         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
9582         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
9583         * c-objc-common.c (c_objc_common_init): Don't set langhook.
9584         * c-tree.h (finish_incomplete_decl): Rename.
9585         * langhooks-def.h (lhd_unsafe_for_reeval): New.
9586         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
9587         (LANG_HOOKS_INITIALIZER): Update.
9588         * langhooks.c (lhd_unsafe_For_reeval): New.
9589         * langhooks.h (struct langhooks): New hooks.
9590         * toplev.c (incomplete_decl_finalize_hook): Remove.
9591         (wrapup_global_declarations): Update.
9592         * tree.c (lang_unsafe_for_reeval): Remove.
9593         (unsafe_for_reeval): Update.
9594         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
9595         Remove.
9596 objc:
9597         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
9598         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
9599
9600 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
9601
9602         * diagnostic.c (print_error_function): Remove.
9603         (default_print_error_function): Rename.
9604         (report_error_function): Update.
9605         * diagnostic.h (print_error_function): Remove.
9606         (default_print_error_function): Remove.
9607         * langhooks-def.h (struct diagnostic_context): Predeclare.
9608         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
9609         (LANG_HOOKS_INITIALIZER): Update.
9610         * langhooks.h (struct diagnostic context): Predeclare.
9611         (struct lang_hooks): New hook.
9612
9613 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9614
9615         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
9616         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
9617         !flag_pic.
9618         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
9619         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
9620         of PIC_OFFSET_TABLE_REGNUM thruout.
9621         * config/rs6000/rs6000.md: Likewise.
9622         * config/rs6000/darwin.h: Likewise.
9623
9624 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9625
9626         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
9627         unsigned HOST_WIDE_INT, not unsigned int.
9628
9629 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
9630
9631         PR middle-end/6096, middle-end/6098, middle-end/6099
9632         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
9633         CODE_LABELs.
9634         (fill_slots_from_thread): Likewise.
9635
9636 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
9637
9638         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
9639         floating fields in float regs.
9640         (function_arg_record_value_2): Likewise.
9641
9642 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
9643
9644         * config/mmix/mmix.md (define_constants): Remove misleading
9645         FIXME.  Add MMIX_fp_rO_OFFSET.
9646         ("nonlocal_goto_receiver"): Don't have stack-frame address of
9647         saved rO as part of the pattern.  Remove FIXME.
9648         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
9649         here, at output-time.
9650
9651 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
9652
9653         PR middle-end/6100
9654         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
9655         REG_BR_PRED.
9656         (output_v9branch): Likewise.
9657
9658 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
9659
9660         * gcc.c: Revert previous patch for now.
9661         * config/i386/djgpp.h: Likewise.
9662
9663 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
9664
9665         * config/mmix/crti.asm (_init): Register _fini with atexit.
9666         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
9667
9668 2002-03-31  Richard Henderson  <rth@redhat.com>
9669
9670         PR target/3997
9671         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
9672         (ASM_OUTPUT_DEF_FROM_DECLS): New.
9673
9674 2002-03-31  Richard Henderson  <rth@redhat.com>
9675
9676         * libgcc2.c (__bb_exit_func): Make static.
9677
9678         * config/alpha/alpha.md (trap): New.
9679
9680 2002-03-31  Richard Henderson  <rth@redhat.com>
9681
9682         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
9683         promoted argument types; build trap.
9684         (expand_builtin_trap): New.
9685         (expand_builtin): Use it.
9686         * stmt.c (expand_nl_goto_receivers): Likewise.
9687         * expr.h (expand_builtin_trap): Declare.
9688         * libfuncs.h (LTI_abort, abort_libfunc): New.
9689         * optabs.c (init_optabs): Init abort_libfunc.
9690
9691 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
9692
9693         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
9694         (LINK_COMMAND_SPEC): ... from here.
9695         (init_gcc_specs): Duplicate it here too, omitting
9696         shared_name in the second copy.
9697         (init_spec): Test for duplicate
9698         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
9699
9700 2002-03-30  David S. Miller  <davem@redhat.com>
9701
9702         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
9703         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
9704
9705 2002-03-30  Roger Sayle <roger@eyesopen.com>
9706             Richard Henderson  <rth@redhat.com>
9707
9708         * regmove.c (combine_stack_adjustments_for_block): Avoid
9709         emitting a stack adjustment of zero bytes.  Let delete_insn
9710         update bb->head.
9711
9712 2002-03-30  Richard Henderson  <rth@redhat.com>
9713
9714         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
9715         (sparc_emitting_epilogue): New.
9716         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
9717         * config/sparc/sparc-protos.h: Update.
9718         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
9719         (TARGET_SWITCHES): Update.
9720         * config/sparc/sparc.md (return): Remove.
9721         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
9722         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
9723         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
9724         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
9725         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
9726         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
9727         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
9728         Remove MASK_EPILOGUE.
9729         * doc/invoke.texi: Update.
9730
9731 2002-03-30  Daniel Berlin  <dan@dberlin.org>
9732
9733         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
9734         CPP will start the file for us.
9735
9736 2002-03-30  Richard Henderson  <rth@redhat.com>
9737
9738         PR target/5446
9739         * config/ia64/ia64.c (group_barrier_needed_p): Special case
9740         prologue_allocate_stack.
9741         (ia64_single_set): Use insn codes for recognition of special
9742         cases, not rtl matching.
9743         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
9744
9745 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
9746
9747         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
9748
9749 2002-03-30  Richard Henderson  <rth@redhat.com>
9750
9751         PR target/6032
9752         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
9753         or -fomit-frame-pointer with profiling.
9754         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
9755         (FUNCTION_PROFILER): Do nothing.
9756         (PROFILE_HOOK): New.
9757         * config/sparc/sparc.c (sparc_override_options): Don't check
9758         code models for profiling.
9759         (sparc_function_profiler): Remove.
9760         (sparc_profile_hook): New.
9761         * config/sparc/sparc-protos.h: Update.
9762
9763 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
9764
9765         PR optimization/6086
9766         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
9767         of SUBREG of volatile MEM or because the MEM was mode dependent,
9768         return CLOBBER instead of unmodified SUBREG.
9769
9770 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
9771
9772         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
9773         when not optimizing.
9774
9775         * toplev.c (rest_of_compilation): Cann mark_constant_function
9776         only when optimizing.
9777
9778         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
9779         are NULL.
9780
9781         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
9782         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
9783         (try_optimize_cfg): clear all AUX fields.
9784
9785         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
9786         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
9787         (ix86_address_cost): Be prepared for SUBREGed registers.
9788         (legitimate_address_p): Accept SUBREGed registers.
9789
9790 2002-03-29  Richard Henderson  <rth@redhat.com>
9791
9792         PR target/5672
9793         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
9794
9795 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9796
9797         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
9798         for aggregate and TFmode types.
9799
9800 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
9801
9802         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
9803
9804 2002-03-29  Richard Henderson  <rth@redhat.com>
9805
9806         PR target/5886
9807         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
9808         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
9809
9810 2002-03-29  Richard Henderson  <rth@redhat.com>
9811
9812         PR target/6041
9813         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
9814         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
9815         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
9816         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
9817         conditional.
9818         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
9819
9820 2002-03-29  Dale Johannesen <dalej@apple.com>
9821
9822         * loop.c (combine_movables): Do allow combination of pseudos.
9823
9824 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
9825
9826         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
9827         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
9828         No functional change except ...
9829         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
9830         * doc/install.texi (*-*-freebsd*): Document port configuration.
9831
9832 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9833
9834         * Makefile.in (convert.o, calls.o, expmed.o): Update.
9835         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
9836         Use new hooks.
9837         * builtin-types.def (BT_PTRMODE): Update.
9838         * c-common.c (type_for_size): Rename c_common_type_for_size.
9839         (type_for_mode): Similarly.
9840         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
9841         Use new hook.
9842         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
9843         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
9844         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
9845         Redefine.
9846         * c-typeck.c (common_type, comptypes, default_conversion):
9847         Use new hooks.
9848         * calls.c: Include langhooks.h.
9849         (emit_library_call_value_1): Use new hooks.  Avoid redundant
9850         calls.
9851         * convert.c: Include langhooks.h
9852         (convert_to_pointer, convert_to_integer): Use new hooks.
9853         * except.c (init_eh): Similarly.
9854         * expmed.c: Include langhooks.h.
9855         (expand_mult_add): Use new hooks.
9856         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
9857         try_casesi): Similarly.
9858         * fold-const.c (optimize_bit_field_compare, make_range,
9859         decode_field_reference, fold_truthop, fold): Similarly.
9860         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
9861         put_var_into_stack): Similarly.
9862         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
9863         LANG_HOOKS_TYPE_FOR_SIZE): New.
9864         (LANG_HOOKS_TYPES_INITIALIZER): Update.
9865         * langhooks.h (lang_hooks_for_types): New hooks.
9866         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
9867         * tree.c (get_unwidened, get_narrower): Similarly.
9868         * tree.h (type_for_mode, type_for_size): Remove.
9869         * varasm.c (force_const_mem): Use new hooks.
9870         * utils2.c (nonbinary_modular_operation): Update.
9871 objc:
9872         * objc-act.c (handle_impent): Update.
9873         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
9874         Redefine.
9875
9876 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
9877
9878         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
9879         * config/ia64/ia64.c (basereg_operand): New.
9880         * config/ia64/ia64-protos.h (basereg_operand): Declare.
9881         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
9882
9883 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
9884
9885         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
9886         unwind information when frame_pointer_needed.
9887         (mmix_assemble_integer): Tweak wording in comment.
9888
9889 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9890
9891         * Makefile.in (except.o): Update.
9892         * except.c: Include langhooks.h.
9893         (init_eh): Use langhook.
9894         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
9895         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
9896         (LANG_HOOKS_INITIALIZER): Update.
9897         * langhooks.h (lang_hooks_for_types): New.
9898         (struct lang_hooks): Add it.
9899         * tree.c (make_lang_type_fn, make_lang_type): Remove.
9900         * tree.h (make_lang_type_fn, make_lang_type): Remove.
9901 config:
9902         * alpha/alpha.c: Include langhooks.h.
9903         (alpha_build_va_list): Use langhook.
9904         * d30v/d30v.c: Include langhooks.h.
9905         (d30v_build_va_list): Use langhook.
9906         * i386/i386.c: Include langhooks.h.
9907         (ix86_build_va_list): Use langhook.
9908         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
9909         * s390/s390.c: Include langhooks.h.
9910         (s390_build_va_list): Use langhook.
9911         * stormy16/stormy16.c: Include langhooks.h.
9912         (stormy16_build_va_list): Use langhook.
9913
9914 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
9915
9916         PR c++/5964
9917         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
9918         attributes.
9919         (length): Compute variable length for branches/calls/jumps here.
9920         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
9921         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
9922         define branch_type attribute.
9923         (divsi3_sp32): Maximum length is 6 not 7.
9924         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
9925         call_address_untyped_struct_value_sp32,
9926         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
9927         * config/sparc/sparc.c (empty_delay_slot): New function.
9928         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
9929         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
9930
9931 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
9932
9933         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
9934         nonzero_bits if not needed.
9935         (nonzero_bits) [XOR]: Likewise.
9936         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
9937         reg_last_set_mode and mode are both MODE_INT, but not equal.
9938         (record_value_for_reg): Compute reg_last_set_nonzero_bits
9939         in nonzero_bits_mode for MODE_INT modes.
9940
9941 2002-03-28  Richard Henderson  <rth@redhat.com>
9942
9943         PR target/5715
9944         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
9945         to GAS.  Correct drift between alternatives.
9946
9947 2002-03-28  Richard Henderson  <rth@redhat.com>
9948
9949         PR target/6087
9950         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
9951
9952 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
9953
9954         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
9955         emulation to the linker.
9956
9957 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
9958
9959         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
9960         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
9961
9962 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
9963
9964         * combine.c (simplify_and_const_int): Make sure to apply mask
9965         when force_to_mode returns a constant integer.  PR3311.
9966
9967 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9968
9969         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
9970
9971 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9972
9973         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
9974         and Objective-C Dialect Options.
9975
9976 2002-03-28  Richard Henderson  <rth@redhat.com>
9977
9978         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
9979         comparison should be done vs !=0 not >0 return code.  Tidy cases.
9980
9981 2002-03-28  Richard Henderson  <rth@redhat.com>
9982
9983         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
9984         on to c_expand_body.
9985         * c-tree.h (finish_function): Update decl.
9986         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
9987
9988 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
9989
9990         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
9991
9992 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
9993
9994         * rtlanal.c: Include flags.h
9995         (may_trap_p): Do not mark FP operations if trapping
9996         if !flag_trapping_math
9997         * Makefile.in (rtlanal.o): Add dependency on flag.h
9998         * ifcvt.c (noce_operand_ok): Avoid the lameness.
9999
10000 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
10001
10002         * mips.md: Use dconst1, not 1.0, as first argument of
10003         REAL_VALUE_LDEXP.  Don't use union real_extract.
10004
10005 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
10006
10007         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
10008         rather than $target.  Heed program_prefix and
10009         program_transform_name.  Search for gas in cross-compiler case too.
10010         "test -x" rather than "test -f".
10011         (gcc_cv_ld): Likewise.
10012         (gcc_cv_nm): Heed program_prefix and program_transform_name.
10013         (gcc_cv_objdump): Likewise.
10014         * configure: Regenerate.
10015
10016 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10017
10018         * Makefile.in (attribs.o): Update.
10019         * attribs.c: Include langhooks.h.
10020         (decl_attributes): Use langhook.
10021         * c-decl.c (insert_default_attributes): Rename.
10022         * c-tree.h (c_insert_default_attributes): New.
10023         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
10024         (LANG_HOOKS_INITIALIZER): Update.
10025         * langhooks.h (struct lang_hooks): New hook.
10026         * tree.h (insert_default_attributes): Remove.
10027 objc:
10028         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
10029
10030 2002-03-27  Andreas Schwab  <schwab@suse.de>
10031
10032         * config/i386/i386.c (classify_argument): Also check for
10033         QUAL_UNION_TYPE.
10034
10035 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10036
10037         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
10038         any more.
10039
10040 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
10041
10042         * i960.md (ret): Set PC.
10043         (nonlocal_goto): Fix expander.
10044         * builtins.c (epxand_builin_longjmp): Check that we've emitted
10045         some jump or call.
10046
10047 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
10048
10049         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
10050         of libcall regions.
10051
10052 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
10053
10054         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
10055         assigning to BLOCK_FOR_INSN directly.
10056
10057 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
10058
10059         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
10060
10061 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10062
10063         * c-common.c (c_expand_expr): Fix prototype.
10064         * c-common.h (c_expand_expr): Always declare, update.
10065         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
10066         * c-objc-common.c (c_objc_common_init): No global hook.
10067         * expr.c (expand_expr): Use langhook.
10068         * expr.h (enum expand_modifier): Conditionally declare.
10069         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
10070         (LANG_HOOKS_INITIALIZER): Update.
10071         * langhooks.c (lhd_expand_expr): New.
10072         * langhooks.h (struct lang_hooks): New hook.
10073         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
10074         (lang_independent_init): Don't default hook.
10075 objc:
10076         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
10077
10078 2002-03-27  Richard Henderson  <rth@redhat.com>
10079
10080         PR target/6054
10081         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
10082         TARGET_CONST_GP.  Simplify conditions.
10083
10084 2002-03-27  Richard Henderson  <rth@redhat.com>
10085
10086         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
10087         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
10088         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
10089
10090 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
10091
10092         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
10093         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
10094         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
10095         Remove unnecessary masks.
10096         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
10097         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
10098         -mwindows, -mdll switches and their negations.
10099
10100 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10101
10102         * gcc-common.c (lang_mark_false_label_stack): Remove.
10103         * ggc.h (lang_mark_false_label_stack): Similarly.
10104
10105 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
10106
10107         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
10108
10109         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
10110         or __rtems_ is defined.
10111
10112 2002-03-26  Richard Henderson  <rth@redhat.com>
10113
10114         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
10115         if a non-trivial load was emitted.
10116         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
10117         in high+extra+low case.
10118
10119 2002-03-26  Richard Henderson  <rth@redhat.com>
10120
10121         * config.gcc (sparc*-solaris): Use float_format=sparc.
10122
10123 2002-03-26  Richard Henderson  <rth@redhat.com>
10124
10125         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
10126         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
10127         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
10128         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
10129         (WINT_TYPE_SIZE): Fix at 32.
10130
10131 2002-03-26  Richard Henderson  <rth@redhat.com>
10132
10133         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
10134         until after eh landing pad generation.
10135         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
10136         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
10137
10138 2002-03-26  Richard Henderson  <rth@redhat.com>
10139
10140         * expr.h (ADD_PARM_SIZE): One more convert for INC.
10141
10142 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
10143
10144         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
10145         and warning switches.
10146         (cc1_options):  Likewise.
10147
10148 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
10149
10150         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
10151         Restore more of the signal context.  Set no_reg_stack_frame.
10152         * config/ia64/unwind-ia64.c (unw_state_record):
10153         Add no_reg_stack_frame, comments.
10154         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
10155         (uw_update_context): Adjust bsp when unwinding from leaf,
10156         but not signal frame.
10157
10158 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
10159
10160         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
10161
10162 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
10163
10164         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
10165
10166 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
10167
10168         PR target/5621
10169         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
10170         "Add a pool_range attribute", which was lost during the ARM/Thumb
10171         merge.
10172
10173 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
10174
10175         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
10176         a register into the MAC16 accumulator.
10177
10178 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
10179
10180         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
10181         (Warning Options): Document -Wswitch-enum.
10182         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
10183         -Wswitch.
10184         (warn_switch_enum): Define variables.
10185         * flags.h (warn_switch_enum): Declare variables.
10186         * stmt.c (expand_end_case_type): When warn_switch_enum /
10187         -Wswitch-enum, perform switch checks.
10188         Fix PR c/5044.
10189
10190 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
10191
10192         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
10193         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
10194         (reload_muladdsi_compare0_scratch): Delete.
10195
10196 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
10197
10198         * doc/install.texi (*-*-freebsd*): Update.
10199
10200 2002-03-26  Richard Henderson  <rth@redhat.com>
10201
10202         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
10203         (SUB_PARM_SIZE): Cast DEC to ssizetype.
10204
10205         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
10206         types from the normal argument frame.
10207
10208         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
10209         variable sized objects by reference.
10210         (sparc_va_arg): Receive them by reference too.
10211
10212 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
10213
10214         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
10215         code to not restoring global registers.
10216
10217 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
10218
10219         * Makefile.in (ggc-common.o): Update.
10220         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
10221         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
10222         * c-tree.h (c_mark_tree): New.
10223         * ggc-common.c: Include langhooks.h.
10224         (gcc_mark_trees): Use new langhook.
10225         * ggc-callbacks.c: Delete file.
10226         * ggc.h (lang_mark_tree): Remove.
10227         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
10228         (LANG_HOOKS_INITIALIZER): Update.
10229         * langhooks.h (struct lang_hooks): New hook.
10230 objc:
10231         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
10232
10233 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
10234
10235         * doc/cpp.texi: Exclude entire Top node from printed manual.
10236         Move option index after directive index.  Insert page breaks
10237         before GFDL and concept index.  Index environment variables
10238         with command line options.
10239         * doc/cppenv.texi: Use @vtable for environment variable list.
10240         Add paragraph explaining semantics of empty elements in path
10241         variables.  Exclude a cross-reference to Fishkill from the
10242         manpage.  Remove an unnecessary cross-reference of the entry
10243         right above the referer.  Don't use @anchor in text that goes
10244         into manpage.
10245         * doc/cppopts.texi: Cross-reference the environment variables
10246         section, not the specific environment variable, for consistency.
10247
10248 2002-03-25  Richard Henderson  <rth@redhat.com>
10249
10250         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
10251         anywhere in the block.  Don't refer to insns that have been
10252         removed from the chain.  Iterate backward through the new insns.
10253         Don't refer to edges that have been removed.
10254
10255 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
10256
10257         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
10258         test for overflow of constant.
10259
10260 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
10261
10262         PR target/2623
10263         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
10264         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
10265         these patterns on arm_archv4.
10266
10267 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
10268
10269         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
10270         int".
10271
10272 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
10273
10274         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
10275         float_handled, float_handler, float_signal, set_float_handler,
10276         and do_float_handler.  Set handler for SIGFPE to crash_signal.
10277         * toplev.h: Don't prototype do_float_handler.
10278
10279         * c-lex.c: Fold parse_float into lex_number.  Make warning
10280         about portability of hex float constants more informative, and
10281         don't issue it on top of a syntax error.
10282         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
10283         their callers.
10284         * real.h: Define REAL_VALUE_ABS here...
10285         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
10286         simplify_unary_real, simplify_binary_real, and
10287         simplify_binary_is2orm1 into their callers.
10288         * tree.c: Fold build_real_from_int_cst_1 into caller.
10289
10290         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
10291
10292         * tsystem.h: Include float.h here...
10293         * libgcc2.c: ... not here.
10294
10295 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
10296
10297         Fixes for: PR bootstrap/3591, target/5676
10298         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
10299         defined.  Do not disable exceptions or rtti.
10300         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
10301         mcore.h.  Disable exceptions and rtti, since they are not
10302         supported by EPOC.
10303
10304 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
10305
10306         * c-decl.c (maybe_build_cleanup): Remove.
10307         * expr.c (expand_expr): Use langhook.
10308         * langhooks-def.h (lhd_return_null_tree,
10309         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
10310         (LANGHOOKS_INITIALIZER): Update.
10311         * langhooks.c (lhd_return_null_tree): New.
10312         * langhooks.h (struct lang_hooks): New hook.
10313         * tree-inline.c (initialize_inlined_parameters): Use langhook.
10314         * tree.h (maybe_build_cleanup): Remove.
10315
10316 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
10317
10318         * regrename.c (build_def_use): Move recog_memoized
10319         before extract_insn.
10320
10321 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
10322
10323         PR target/6043
10324         * expr.c (emit_group_store): Handle storing into CONCAT.
10325
10326 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
10327
10328         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
10329         corresponding MATCH_DUP.
10330
10331 2002-03-24  Richard Henderson  <rth@redhat.com>
10332
10333         * unroll.c (unroll_loop): Zero label_map.
10334
10335         * gcse.c: Include except.h.
10336         * Makefile.in (gcse.o): Update.
10337
10338 2002-03-24  Richard Henderson  <rth@redhat.com>
10339
10340         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
10341         Do resolve_unique_section before shared data clause.
10342
10343 2002-03-24  Richard Henderson  <rth@redhat.com>
10344
10345         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
10346
10347 2002-03-24  Richard Henderson  <rth@redhat.com>
10348
10349         * recog.c (peephole2_optimize): Split blocks when EH insns are
10350         generated in the middle of a block.  Do global life update if
10351         zapped EH edges.
10352
10353 2002-03-24  Richard Henderson  <rth@redhat.com>
10354
10355         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
10356
10357 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10358
10359         preprocessor/3951
10360         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
10361         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
10362         (init_dependency_output): Don't make no_output decision here.
10363
10364 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
10365
10366         * stmt.c (check_for_full_enumeration_handling): Remove tests of
10367         warn_switch.  Update description.
10368         (expand_end_case_type): Call check_for_full_enumeration_handling
10369         when warn_switch.
10370
10371 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10372
10373         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
10374         (m68hc11_split_move): Call it to see if the source and destination
10375         operands use the same direction auto inc/dec mode, otherwise make the
10376         source an offsetable memory operand and generate an add.
10377
10378 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10379
10380         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
10381         register for operand 2.
10382         ("*subsi3_zero_extendqi"): Likewise.
10383         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
10384         bits so that it is compatible with a pop.
10385         ("*andhi3_gen"): Likewise.
10386         ("xorhi3"): Likewise.
10387
10388 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10389
10390         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
10391         -pedantic here...
10392         (cpp_post_options): ... not here.
10393
10394 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10395             Aldy Hernandez  <aldyh@redhat.com>
10396
10397         Removal of separate preprocessor cpp0.
10398
10399         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
10400         cpp0, install-common): Update.
10401         * c-common.c (flag_preprocess_only): New.
10402         (c_common_init): Preprocess for -E.
10403         * c-common.h (flag_preprocess_only): New.
10404         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
10405         * c-objc-common.c (c_init_decl_processing): Exit quickly
10406         for NULL return from c_common_init.
10407         * cpplib.h (cpp_preprocess_file): New.
10408         * cppmain.c (main, general_init, pfile, progname): Remove.
10409         (do_preprocessing): Rename cpp_preprocess_file, don't call
10410         cpp_finish.  Don't close stdout here.
10411         (setup_callbacks): Update prototype.
10412         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
10413         Update.
10414         * tradcpp.c (main): Ignore -quiet.
10415 objc:
10416         * lang-specs.h (default_compilers): Preprocess with cc1obj.
10417
10418 2002-03-24  Richard Henderson  <rth@redhat.com>
10419
10420         PR optimization/5742
10421         * machmode.def: Add inner mode field to complex modes.
10422         * config/mips/mips.c (mips_function_value): Always define.  Add
10423         new argument to handle libcalls.
10424         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
10425         (FUNCTION_VALUE): Likewise.
10426         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
10427         * config/mips/mips-protos.h: Update.
10428
10429 2002-03-23  Richard Henderson  <rth@redhat.com>
10430
10431         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
10432         * config/sparc/sparc-protos.h: Update.
10433         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
10434
10435 2002-03-23  Richard Henderson  <rth@redhat.com>
10436
10437         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
10438         _start or _init begins the text segment.
10439
10440 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
10441
10442         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
10443         not HOST_WIDEST_INT.
10444         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
10445
10446 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
10447
10448         PR java/5489
10449         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
10450         operand argument to output_return_instruction.
10451         * arm.c (arm_print_operand, case 'd'): If the operand is
10452         const_true_rtx then just return.
10453         (arm_print_operand, case 'D'): If the operand is const_true_rtx
10454         then abort.
10455
10456 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
10457
10458         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
10459         (Warning Options): Document -Wswitch-default.
10460         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
10461         -Wswitch.
10462         (warn_switch_default): Define variable.
10463         (warn_switch): Update comment.
10464         * flags.h (warn_switch_default): Declare variable.
10465         (warn_switch): Update comment.
10466         * stmt.c (expand_end_case): Check for and, when
10467         warn_switch_no_default, warn of a missing default case.
10468
10469 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
10470
10471         * real.h (N): Special case 128 bit doubles.
10472
10473         * combine.c (simplify_comparison): When widening modes, ignore
10474         sign extension on CONST_INTs.
10475
10476 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
10477
10478         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
10479         passed to adjust_address.  Fix comment formatting.
10480
10481
10482 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
10483
10484         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
10485         Always make REAL_VALUE_TYPE a struct containing an array of
10486         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
10487         big it is.  Don't declare or use union real_extract.
10488
10489         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
10490         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
10491         (print_operand), config/arm/arm.c (output_move_double),
10492         config/arm/arm.md (consttable_4, consttable_8),
10493         config/romp/romp.c (output_fpops), config/s390/s390.h
10494         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
10495         (xtensa_output_literal): Don't use union real_extract.
10496
10497         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
10498         (sfmode_constant_to_ulong), config/ns32k/merlin.h
10499         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
10500         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
10501         (PRINT_OPERAND): Don't use local version of union
10502         real_extract.
10503
10504         * config/convex/convex.c (check_float_value), config/vax/vax.c
10505         (vax_float_literal), config/m88k/m88k.md (divdf3),
10506         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
10507         config/pdp11/pdp11.c (output_move_quad): Don't do host
10508         arithmetic on target floating point quantities.
10509
10510         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
10511         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
10512
10513         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
10514         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
10515
10516         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
10517         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
10518         INFINITY.
10519         * print-rtl.c (print_rtx): Disable code which needs
10520         floating-point emulator.
10521         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
10522         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
10523         depending on HOST_FLOAT_FORMAT to be defined properly.
10524
10525         * config/1750a/1750a.c (get_double, float_label): Delete.
10526         (print_operand): Delete huge commented-out chunk.  Use
10527         REAL_VALUE_TO_DECIMAL.
10528         * config/1750a/1750a-protos.h: Delete prototypes of deleted
10529         functions.
10530         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
10531         IEEE_FLOAT_FORMAT.
10532         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
10533         Use REAL_VALUE_TO_DECIMAL as ELF version does.
10534         * config/m88k/m88k.c (real_power_of_2_operand,
10535         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
10536         real_extract out of the union; run the input through
10537         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
10538         from that into the union.
10539         * config/pdp11/pdp11.c (output_move_double): Rearrange
10540         parentheses to make automatic indenter happy.
10541
10542         * doc/tm.texi (Cross-compilation): Rename node to "Floating
10543         Point" and rewrite to describe current situation.  Also adjust
10544         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
10545         match code.
10546         * doc/rtl.texi: Adjust cross reference.
10547
10548 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
10549
10550         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
10551         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
10552         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
10553         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
10554         prevent use of sp as a reload register.
10555         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
10556         non_acc_reg_operand.
10557         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
10558         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
10559         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
10560         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
10561
10562 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
10563
10564         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
10565         * cpplex.c (unterminated): Delete.
10566         (parse_string): No string literal may extend over multiple
10567         lines.  Suppress the error when preprocessing assembly.
10568         * cppmain.c (scan_translation_unit): Strings are single-line.
10569
10570         * doc/cpp.texi: Update to match.
10571
10572 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
10573
10574         PR optimization/5854
10575         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
10576         Shut up warnings.
10577         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
10578         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
10579         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
10580         const0 if scratch register was not allocated.
10581         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
10582         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
10583         with GEN_INT (...).
10584         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
10585         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
10586         with GEN_INT (...) everywhere.  Remove constraints in define_split
10587         patterns.
10588         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
10589         require scratch register for setting 0 into regs/non-pushable memory.
10590
10591 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
10592
10593         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
10594         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
10595
10596 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
10597
10598         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
10599         * cppinit.c (cpp_create_reader):  On by default.
10600         (cpp_handle_option):  Handle -W[no-]endif-labels.
10601         (cpp_post_options):  Also enable if -pedantic.
10602         * cpplib.c (do_else):  Use it.
10603         (do_endif):  Likewise.
10604         * doc/cppopts.texi:  Document new option.
10605         * doc/invoke.texi:  Document new option.
10606
10607 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
10608
10609         * config/i386/i386.c, config/i386/i386.md: Change all occurences
10610         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
10611
10612 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
10613
10614         * flow.c (calculate_global_regs_live): Clear aux fields of
10615         ENTRY and EXIT.
10616
10617 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
10618
10619         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
10620         REG or MEM subregs, pass rtx * instead of rtx to it.
10621         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
10622         rtx * instead of rtx to alter_subreg.
10623         * config/m32r/m32r.c (gen_split_move_double): Likewise.
10624         * config/pj/pj.c (pj_output_rval): Likewise.
10625
10626 2002-03-22  Richard Henderson  <rth@redhat.com>
10627
10628         PR target/3177
10629         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
10630         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
10631         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
10632         (ia64_expand_prologue): Look at int_regs, not words, for number
10633         of incomming int regs.
10634
10635 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
10636
10637         * expr.c (expand_expr): A RESULT_DECL is part of a call.
10638
10639 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
10640
10641         * toplev.c (flag_loop_optimize, flag_crossjumping):
10642         New static variables.
10643         (rest_of_compilation): Conditionalize crossjumping and
10644         loop optimizer.
10645         (parse_options_and_default_flags): Default loop_optimize and
10646         crossjumping.
10647         (lang_independent_options): Add -fcrossjumping and -floop-optimize
10648         * invoke.texi (crossjumping, loop-optimize): Document.
10649
10650 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
10651
10652         * real.c (eiisneg): Move outside #ifdef NANS.
10653
10654 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
10655
10656         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
10657         frequencies match; avoid match on different loop depths.
10658         (try_crossjump_to_bb): Kill tests that no longer brings time
10659         savings.
10660         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
10661         updating code.
10662         (split_edge): Likewise.
10663
10664         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
10665         variable.
10666
10667         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
10668         * cfgrtl.c: Include insn-config.h
10669         (split_block) Dirtify block in presence of conditional execution
10670
10671 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
10672
10673         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
10674         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
10675         (function_arg): Constify CUMULATIVE_ARGS.
10676         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
10677         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
10678         (UNITS_PER_DOUBLE): New macro.
10679         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
10680         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
10681         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
10682         fp_regs and stack_words.
10683         (EABI_FLOAT_VARARGS_P): New macro.
10684         * config/mips/mips.c (struct mips_arg_info): New.
10685         (mips_arg_info): New function.
10686         (function_arg_advance): Use it.  Add adjustment instructions here
10687         rather than in function_arg.
10688         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
10689         for VOIDmode at the beginning of the function.
10690         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
10691         (function_arg_pass_by_reference): Likewise.
10692         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
10693         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
10694         (mips_va_start): Likewise.  Use the new stack_words field of
10695         CUMULATIVE_ARGS to set up overflow area.  Reformat.
10696         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
10697         doubles and other types, aligning the overflow pointer for non-doubles
10698         too.  Remove some code duplication.  Replace hard-coded constants.
10699
10700 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
10701
10702         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
10703         (CLASS_UNITS): Undefine.
10704         (CLASS_MAX_NREGS): Use FP_INC.
10705         * config/mips/mips.c (compute_frame_size): Likewise.
10706         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
10707
10708 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
10709
10710         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
10711         prototype, and handle lexing numbers and identifiers.
10712         (parse_identifier): Update to new form of parse_slow.
10713         (parse_number): Fast path only, use parse_slow otherwise.
10714         (_cpp_lex_direct): Update calls to parse_number.
10715
10716 2002-03-21  DJ Delorie  <dj@redhat.com>
10717
10718         * bb-reorder.c (make_reorder_chain_1): Protect against
10719         when redundant edges are omitted.
10720         * predict.c (dump_prediction): Likewise.
10721
10722 2002-03-21  Richard Henderson  <rth@redhat.com>
10723
10724         PR target/5996
10725         * fixinc/inclhack.def (solaris_stdio_tag): New.
10726         * fixinc/fixincl.x: Regenerate.
10727
10728 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
10729
10730         PR c/5597
10731         * c-typeck.c (process_init_element): Flag non-static
10732         initialization of a flexible array member as illegal.
10733
10734 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
10735
10736         * config/rs6000/t-linux64: New.
10737         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
10738         t-ppccomm.  Use t-rs6000 and t-linux64.
10739         (powerpc64-*-gnu* <tmake_file>): Likewise.
10740         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
10741         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
10742         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
10743
10744 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
10745
10746         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
10747         flag_really_no_inline instead of optimize == 0.
10748
10749         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
10750
10751         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
10752
10753         * flags.h (flag_really_no_inline): New.
10754
10755         * c-common.c (c_common_post_options): Initialize
10756         flag_really_no_inline.
10757
10758         * toplev.c (flag_really_no_inline): New.
10759
10760 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
10761
10762         * config/avr/avr.md (length): Fix length computation for
10763         conditional branches.
10764
10765 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
10766
10767         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
10768         sdbout.o, profile.o): Update.
10769         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
10770         langhook.
10771         * c-common.h (gettags): Move here from tree.h.
10772         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
10773         insert_block, getdecls, kept_level_p, global_bindings_p): New.
10774         * dbxout.c (dbxout_init): Use getdecls langhook.
10775         * expr.c (expand_expr): Use insert_block langhook.
10776         * fold-const.c: Include langhooks.h.
10777         (fold_range_test, fold_binary_op_with_conditional_arg,
10778         fold): Use global_bindings_p langhook.
10779         * integrate.c (expand_inline_function): Use insert_block langhook.
10780         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
10781         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
10782         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
10783         LANG_HOOKS_GETDECLS): New.
10784         (LANG_HOOKS_INITIALIZER): Update.
10785         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
10786         langhook.
10787         * langhooks.h (struct lang_hooks_for_decls): New.
10788         (struct lang_hooks): Update.
10789         * profile.c: Include langhooks.h.
10790         (output_func_start_profiler): Use new langhooks.
10791         * sdbout.c: Include langhooks.h.
10792         (sdbout_init, sdbout_finish): Use getdecls langhook.
10793         * stmt.c: Include langhooks.h.
10794         (expand_fixup, fixup_gotos): Use new langhooks.
10795         * stor-layout.c: Include langhooks.h.
10796         (variable_size): Use global_bindings_p langhook.
10797         * toplev.c (compile_file): Use getdecls langhook.
10798         * tree-inline.c (remap_block): Use insert_block langhook.
10799         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
10800         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
10801
10802 2002-03-21  Richard Henderson  <rth@redhat.com>
10803
10804         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
10805         constants in .data when -fpic.
10806
10807 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10808
10809         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
10810         where appropriate.
10811
10812 2002-03-21  Tom Tromey  <tromey@redhat.com>
10813
10814         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
10815
10816 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10817
10818         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
10819
10820         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
10821
10822 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
10823             Richard Henderson  <rth@redhat.com>
10824
10825         PR c/5354
10826         * c-common.c (c_expand_expr): Preserve result of a statement
10827         expression if needed.
10828
10829 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
10830
10831         PR bootstrap/4195
10832         * genrecog.c (maybe_both_true_mode): Remove.
10833         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
10834         * machmode.def (Pmode): Likewise.
10835
10836 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
10837
10838         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
10839         (nonlocal_mentioned_p_1): New function.
10840         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
10841         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
10842         (mark_constant_function): Recognize pure functions.
10843         * rtl.h (global_reg_mentioned_p): New prototype.
10844         * rtlanal.c (global_reg_mentioned_p,
10845         global_reg_mentioned_p_1): New function.
10846
10847 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10848
10849         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
10850         UNIX assert.h.
10851         * fixinc/fixincl.x: Regenerate.
10852
10853 2002-03-20  Jason Merrill  <jason@redhat.com>
10854
10855         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
10856
10857 2002-03-20  Michael Meissner  <meissner@redhat.com>
10858
10859         * doc/invoke.texi (Optimize Options): Document that -O2 sets
10860         -fstrict-aliasing.
10861
10862 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
10863
10864         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
10865         ".literal_position" directive before the constant pool.
10866
10867 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10868
10869         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
10870         Add Craig Rodrigues.
10871         Add Brad Lucier to testers.
10872
10873 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
10874
10875         PR target/4792
10876         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
10877         to if_then_else.
10878         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
10879         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
10880         instead of insn_extract.
10881
10882 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
10883
10884         PR bootstrap/4192
10885         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
10886
10887         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
10888         stmt if some case has been output.
10889
10890 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
10891
10892         PR c/5972
10893         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
10894         movsfcc_1, movdfcc_1): Add %O2.
10895         * config/i386/i386.c (print_operand): Handle %ON.
10896         Print . before float condition codes in Sun as cmov syntax.
10897         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
10898         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
10899         no longer true.
10900
10901 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
10902
10903         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
10904         return instruction if PC was popped.
10905
10906 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
10907
10908         * config/xtensa/xtensa.md: Remove unused type attributes.
10909         (adddi_carry, subddi_carry): Change type attribute to "multi".
10910
10911 2002-03-19  Dale Johannesen  <dalej@apple.com>
10912
10913         PR optimization/5999, middle-end/5731
10914         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
10915         multiplications by reciprocals.
10916
10917 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
10918
10919         * Makefile.in: Update.
10920         * c-common.c: Include langhooks.h.
10921         (inline_forbidden_p): Use new hook.
10922         * diagnostic.c: Include langhooks.h.
10923         (format_with_decl, announce_function,
10924         default_print_error_function): Use new hook.
10925         * dwarf2out.c (dwarf2_name): Use new hook.
10926         * function.c: Include langhooks.h.
10927         (init_function_start): Use new hook.
10928         * langhooks-def.h (lhd_decl_printable_name): New.
10929         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
10930         (LANGHOOKS_INITIALIZER): Update.
10931         * langhooks.c (lhd_decl_printable_name): New.
10932         * langhooks.h (struct lang_hooks): New hook.
10933         * toplev.c (decl_name, decl_printable_name): Remove.
10934         (open_dump_file): Use new hook.
10935         (process_options): Remove old hook.
10936         * tree.h (decl_printable_name): Remove.
10937 objc:
10938         * objc-act.c (objc_init): Remove old hook.
10939         (objc_printable_name): Export.
10940         * objc-act.h (objc_printable_name): New.
10941         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
10942
10943 2002-03-19  Jim Blandy  <jimb@redhat.com>
10944
10945         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
10946         the start_source_file debug hook, not the current line number.
10947
10948 2002-03-19  Richard Henderson  <rth@redhat.com>
10949
10950         * flow.c (EH_USES): Provide default.
10951         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
10952         * doc/tm.texi (EH_USES): New.
10953
10954         * config/ia64/ia64.c (ia64_eh_uses): New.
10955         * config/ia64/ia64-protos.h: Update.
10956         * config/ia64/ia64.h (EH_USES): New.
10957
10958 2002-03-19  Richard Henderson  <rth@redhat.com>
10959
10960         * varasm.c (output_constant_def): Fix stupid typo.
10961
10962 2002-03-19  Richard Henderson  <rth@redhat.com>
10963
10964         PR 5879
10965         * except.c (current_function_has_exception_handlers): New.
10966         * except.h: Declare it.
10967         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
10968         Combine tests that disable all sibcalls for the function.
10969
10970 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
10971
10972         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
10973         for INTEGER_CST.
10974
10975 2002-03-19  Richard Henderson  <rth@redhat.com>
10976
10977         PR 5977, 5991
10978         * config/ia64/ia64.c: Revert 2002-03-01 patch.
10979         * config/ia64/ia64.h (INIT_EXPANDERS): New.
10980
10981 2002-03-19  Jim Blandy  <jimb@redhat.com>
10982
10983         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
10984         name, even if the replacement list contains no tokens, as required
10985         by Dwarf.
10986
10987 2002-03-19  Jason Merrill  <jason@redhat.com>
10988
10989         * varasm.c (globalize_decl): Get the name from the RTL, not
10990         DECL_ASSEMBLER_NAME.
10991
10992         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
10993
10994 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
10995
10996         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
10997         subdi_carry): Define.
10998
10999 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
11000
11001         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
11002         about -fpic/-fPIC if extra_warnings set.
11003
11004 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
11005
11006         * expr.c (expand_expr): Sign-extend CONST_INT generated from
11007         TREE_STRING_POINTER.
11008         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
11009
11010 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11011
11012         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
11013         in favor of SP if FRAME_POINTER_REQUIRED is false.
11014
11015 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
11016
11017         * emit-rtl.c (gen_int_mode): New function.
11018         * rtl.h: Prototype for it.
11019         * combine.c (make_extraction, simplify_comparison), expmed.c
11020         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
11021         (convert_modes, store_field), optabs.c (expand_fix),
11022         simplify-rtx.c (neg_const_int, simplify_unary_real),
11023
11024         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
11025         Use it instead of GEN_INT (trunc_int_for_mode (...)).
11026
11027 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
11028
11029         PR c/5656
11030         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
11031         convert_parm_for_inlining.
11032         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
11033         Define.
11034         * langhooks-def.h: Likewise.
11035         * objc/objc-lang.c: Likewise.
11036         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
11037         function.
11038         * tree-inline.c (initialize_inlined_parameters):
11039         Call convert_parm_for_inlining lang hook if needed.
11040         * c-typeck.c (c_convert_parm_for_inlining): New function.
11041         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
11042
11043 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
11044
11045         * calls.c (precompute_arguments): Do not assume that temporaries
11046         can be destroyed after expanding the argument.
11047         (expand_call): Likewise.
11048
11049 2002-03-15  Eric Christopher  <echristo@redhat.com>
11050
11051         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
11052         Fix register preference on last change.
11053         * config/mips/mips.c (mips_return_in_memory): New function.
11054         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
11055         * config/mips/mips-protos.h: Declare.
11056         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
11057         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
11058
11059 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
11060
11061         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
11062         a register too.
11063         (anddi3, iorsi3): Likewise.
11064
11065         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
11066         use %gprel for symbols that are going to be placed in linkonce
11067         sections.
11068
11069         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
11070         RETURN_ADDRESS_POINTER_REGNUM to $ra.
11071         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
11072         not needed.  Disregard leaf_function_p().
11073         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
11074         mips16 frame pointer.
11075         * config/mips/mips.md (store ra): Only to small SP offsets.
11076         2001-08-22  Graham Stott  <grahams@redhat.com>
11077         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
11078         return a REG rtx for the return address register.
11079
11080 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
11081
11082         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
11083         constant-pool addresses as "mode-dependent".
11084         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
11085
11086 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
11087
11088         PR target/5740
11089         * expr.c (emit_group_load): Use extract_bit_field if
11090         needed for CONCAT arguments.
11091
11092 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
11093
11094         PR target/4863
11095         * arm.md (tablejump): Make this a define_expand.  For PIC add the
11096         offset to the base of the table.
11097         (thumb_tablejump): Matcher for Thumb tablejump insn.
11098         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
11099         as the difference of two labels.
11100         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
11101         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
11102         tables in the code.
11103         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
11104         * arm.c (get_jump_table_size): If the table is not in the text
11105         section, return zero.
11106
11107 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
11108
11109         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
11110         of gen_rtx_SUBREG.
11111         (arm_reload_out_hi): Use gen_lowpart instead of
11112         gen_rtx_SUBREG to access QImode components.
11113         * config/arm/arm.md: Disable zero_extend split for QImode
11114         subregs in BIG_ENDIAN mode.
11115         (storehi_bigend): Match use of least significant byte.
11116         (storeinthi): Remove extraneous SUBREG.
11117         Add missing construction of operands[2].
11118         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
11119         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
11120         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
11121
11122 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
11123
11124         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
11125         any_operand.
11126
11127 2002-03-17  Richard Henderson  <rth@redhat.com>
11128
11129         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
11130         explicitly.
11131
11132 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
11133
11134         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
11135         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
11136
11137 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11138
11139         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
11140
11141         * predict.c (estimate_bb_frequencies): Delete unused variables.
11142
11143 2002-03-17  Richard Henderson  <rth@redhat.com>
11144
11145         * config/ia64/ia64.c (ia64_attribute_table): Move before
11146         targetm definition.  Make static.
11147
11148 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
11149
11150         * c-common.h (yyparse, c_common_parse_file): New.
11151         * c-lang.c: Include c-common.h.
11152         (LANG_HOOKS_PARSE_FILE): Redefine.
11153         * c-lex.c: Include c-common.h.
11154         (yyparse): Rename c_common_parse_file.  Call yyparse.
11155         * c-parse.in (yyparse): Remove macro.
11156         * c-tree.h (yyparse_1): Remove.
11157         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
11158         (LANG_HOOKS_INITIALIZER): Update.
11159         * langhooks.h (struct lang_hoooks): New hook parse_file.
11160         * toplev.c (compile_file): Use parse_file hook.
11161         * tree.h (yyparse): Remove.
11162         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
11163
11164 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
11165
11166         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
11167         float_truncate, not fix.
11168         ("*truncdfsf2_real"): Ditto.
11169         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
11170
11171         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
11172
11173 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
11174
11175         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
11176         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
11177         where appropriate.  Make the second reference to
11178         leaf_function_p a function call, as intended.  Reindented.
11179
11180         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
11181         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
11182
11183         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
11184         add register to non-constant into sp.
11185
11186         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
11187         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
11188         (mips16_gp_pseudo_rtx): Lose.
11189         (INIT_EXPANDERS): Deleted.
11190         * config/mips/mips.c (mips_init_machine_status): New.
11191         (mips_free_machine_status): New.
11192         (mips_mark_machine_status): New.
11193         (override_options): Set them.
11194         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
11195         (struct machine_function): ... new.  Replaced all references.
11196         (mips_add_gc_roots): Don't mark them.
11197         (embedded_pic_fnaddr_reg): New, extracted from...
11198         (embedded_pic_offset): ... here.
11199         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
11200         (movsi): Likewise.
11201
11202 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
11203
11204         * cppinit.c: Revert -MD removal.
11205
11206 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11207
11208         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
11209         soft registers by default for 68HC12.
11210         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
11211         when compiling with -fomit-frame-pointer.
11212         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
11213         (expand_epilogue): Likewise.
11214         (m68hc11_gen_rotate): Use exg when rotating by 8.
11215
11216 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11217
11218         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
11219         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
11220         (splits): Remove unused add splits.
11221         ("*addhi3_68hc12"): Tune constraints.
11222         ("addhi_sp"): Try to use X instead of Y in all cases and if the
11223         constant fits in 8-bits and D is dead use abx/aby instructions.
11224         ("*addhi3"): Remove extern declaration of ix_reg.
11225         ("*subsi3"): Optimize and provide new split.
11226         ("subhi3"): Cleanup.
11227         ("*subhi3_sp"): Avoid saving X if we know it is dead.
11228         (arith splits): For 68hc12 save the address register on the stack
11229         and do the arithmetic operation with a pop.
11230
11231 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11232
11233         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
11234         allocating QImode in address registers.
11235         ("*movqi_m68hc11"): Likewise.
11236
11237 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
11238
11239         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
11240
11241 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
11242
11243         * cppinit.c (print_help): Display -MD and -MMD.
11244         Don't display usage string.  Update assertion syntax and
11245         typo.
11246         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
11247         (cpp_handle_option): Update.
11248
11249 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
11250
11251         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
11252         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
11253         and define it so that regardless of target CPU size,
11254         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
11255         of "int" rather than "long."
11256
11257 2002-03-15  Richard Henderson  <rth@redhat.com>
11258
11259         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
11260         size as a tree.
11261
11262 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11263
11264         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
11265         ("tstqi" split): Avoid using memory for tstqi on address register.
11266         (splits): Remove constraints.
11267         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
11268         ("cmpdf", "cmpsf"): Remove since not used.
11269         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
11270         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
11271
11272 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11273
11274         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
11275         ("neghi2"): Tighten constraints.
11276         ("one_cmplsi2"): Optimize and simplify split.
11277         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
11278
11279 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11280
11281         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
11282         and split of AND operation to clear the upper bits.
11283         ("*logicalsi3_zextqi"): Likewise.
11284         ("*logicallhi3_zexthi_ashift8"): Likewise.
11285         ("*logicalsi3_silshr16"): Likewise.
11286         ("logicalsi3_silshl16"): Likewise.
11287         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
11288
11289 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11290
11291         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
11292         (m68hc11_indirect_p): New function.
11293         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
11294         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
11295         TARGET_M6812.
11296         (asm_print_register): Likewise.
11297         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
11298         (m68hc11_indirect_p): Declare.
11299         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
11300         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
11301         (TARGET_SWITCHES): New option -mrelax.
11302         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
11303         destination.
11304         ("iorsi3", "xorsi3"): Likewise.
11305         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
11306         ("*andhi3_mem"): New to handle destination in memory with bclr
11307         and a scratch register.
11308         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
11309         ("*andhi3_const"): New when operand2 is constant.
11310         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
11311         ("*andhi3_gen"): Cleanup of the old "andhi3".
11312         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
11313         ("xorqi3"): Update constraints.
11314
11315 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11316
11317         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
11318         for reg_equiv_memory_loc when the operand is a register that does
11319         not get a hard register (stack location).
11320         (tst_operand): After reload, accept all memory operand.
11321         (symbolic_memory_operand): Fix detection of symbolic references.
11322         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
11323         accept symbols and any constant.
11324
11325 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11326
11327         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
11328         note on the insn that sets the soft frame register.
11329         (must_parenthesize): ix and iy are also reserved names.
11330         (print_operand_address): One more place where parenthesis are required
11331         to avoid confusion with register names.
11332         (m68hc11_gen_movhi): Allow push of stack pointer.
11333         (m68hc11_check_z_replacement): Fix handling of parallel with a
11334         clobber.
11335         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
11336         the replacement register is.
11337         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
11338         and D8_REGS classes.
11339         (MODES_TIEABLE_P): All modes are tieable except QImode.
11340
11341 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11342
11343         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
11344         (___subdi3): Likewise.
11345         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
11346         (__map_data_section): Optimize 68hc11 case.
11347
11348 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11349
11350         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
11351         than a shift to avoid adding a register with itself.
11352         (m68hc11_memory_move_cost): Take into account NO_REGS.
11353         (m68hc11_register_move_cost): Update and use memory move cost
11354         for soft registers.
11355         (m68hc11_address_cost): Make cost of valid offset not 0 so that
11356         it gives more opportunities to cse to optimize.
11357         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
11358         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
11359
11360 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
11361
11362         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
11363         * c-common.def (CLEANUP_STMT): New tree node.
11364         * c-common.h (CLEANUP_DECL): New macro.
11365         (CLEANUP_EXPR): Likewise.
11366         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
11367         * expr.c (expand_expr): Tidy.
11368         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
11369         * tree-inline.c (initialize_inlined_parameters): Clean up
11370         new local variables.
11371
11372 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
11373
11374         PR bootstrap/4128
11375         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
11376         before movrXX only, use reg_overlap_mentioned_p.
11377         Only special case NE if just one insn can be generated.
11378
11379 2002-03-15  Jason Merrill  <jason@redhat.com>
11380
11381         * varasm.c (assemble_variable): Call resolve_unique_section before
11382         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
11383         of error_mark_node.
11384
11385 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
11386
11387         PR target/5170
11388         * arm.md (split pattern for thumb shiftable immediates): Add comment
11389         explaining non-obvious test.
11390
11391 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
11392
11393         PR target/5712
11394         * arm.md (movaddr, movaddr_insn): Delete.
11395
11396 2002-03-15  Jason Merrill  <jason@redhat.com>
11397
11398         * toplev.c (wrapup_global_declarations): Clarify variable handling.
11399         -fkeep-static-consts doesn't apply to comdats.
11400
11401 2002-03-14  Richard Henderson  <rth@redhat.com>
11402
11403         * c-decl.c: Include c-pragma.h.
11404         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
11405         (finish_function): Tidy.
11406         * c-pragma.c: Include c-common.h.
11407         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
11408         (handle_pragma_weak): Use them.
11409         (init_pragma): Register pending_weaks.
11410         * c-pragma.h (maybe_apply_pragma_weak): Declare.
11411         * print-tree.c (print_node): Print DECL_WEAK.
11412         * varasm.c (mark_weak_decls): Remove.
11413         (remove_from_pending_weak_list): Remove.
11414         (add_weak): Remove.
11415         (asm_emit_uninitialised): Call globalize_decl for weak commons.
11416         (weak_decls): Make a tree_list.
11417         (declare_weak): Cons weak_decls directly.
11418         (globalize_decl): Remove weak_decls elements directly.
11419         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
11420         symbols.  Don't pretend to handle aliases.
11421         (init_varasm_once): Update weak_decls registry.
11422         * Makefile.in: Update dependencies.
11423
11424 2002-03-14  Richard Henderson  <rth@redhat.com>
11425
11426         PR target/5312
11427         * config/ia64/ia64.c: Include tm_p.h last.
11428         (gen_nop_type): Remove duplicate definition.
11429         (cycle_end_fill_slots): Set sched_data for second L slot.
11430         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
11431         (nop_cycles_until): Fix typos.
11432
11433 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
11434
11435         PR optimization/5891
11436         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
11437
11438 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
11439
11440         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
11441           descriptors correctly.
11442
11443 2002-03-14  Michael Meissner  <meissner@redhat.com>
11444
11445         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
11446         100, allowing MAX_UNROLLED_INSNS to be overridden.
11447
11448         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
11449         --param.
11450
11451         * unroll.c (params.h): Include.
11452         (MAX_UNROLLED_INSNS): Delete, now in params.h.
11453
11454         * doc/invoke.texi (--param max-unroll-insns): Document.
11455
11456         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
11457
11458 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
11459
11460         * arm.md: Fix warnings about constraints in peepholes and splits.
11461
11462 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
11463
11464         * cpphash.h (struct lexer_state): Remove line_extension member.
11465         * cpplib.c (dequote_string, do_linemarker): New functions.
11466         (linemarker_dir): New data object.
11467         (DIRECTIVE_TABLE): No longer need to interpret #line in
11468         preprocessed source.  Delete obsolete comment about return
11469         values of handlers.
11470         (end_directive, directive_diagnostics, _cpp_handle_directive):
11471         Don't muck with line_extension.
11472         (directive_diagnostics): No need to issue warnings for
11473         linemarkers here.
11474         (_cpp_handle_directive): Issue warnings for linemarkers here,
11475         when appropriate.  Dispatch linemarkers to do_linemarker, not
11476         do_line.
11477         (do_line): Code to handle linemarkers split out to do_linemarker.
11478         Convert escape sequences in filename argument, both places.
11479
11480         * cppmacro.c (quote_string): Rename cpp_quote_string and
11481         export.  All callers changed.
11482         * cpplib.h (cpp_quote_string): Prototype.
11483         * cppmain.c (print_line): Call cpp_quote_string on to_file
11484         before printing it.
11485
11486         * doc/cpp.texi: Document that escapes are now interpreted in
11487         #line and in linemarkers, and that non-printing characters are
11488         converted to octal escapes when linemarkers are generated.
11489
11490 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
11491
11492         * emit-rtl.c (try_split): Use delete_insns.
11493         * recog.c (split_all_insns): Fix terminating condition.
11494
11495 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
11496             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
11497
11498         PR target/5828
11499         * arm.c (arm_output_epilogue): Fix floating-point register save
11500         adjustment when using a frame pointer.
11501
11502 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
11503
11504         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
11505         * config/mips/mips.c (compute_frame_size): Retrofit them here.
11506         (save_restore_insns, mips_expand_epilogue): And here.
11507         (build_mips16_call_stub): And here.
11508         (mips_function_value): Use the new macros to decide whether a single
11509         or complex float can be returned in floating-point registers.  Return
11510         a parallel rtx in the complex case.
11511
11512 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
11513
11514         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
11515         call after liveness analysis.
11516
11517         * recog.c (split_insn): Use delete_insn_and_edges.
11518
11519         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
11520         instructions to have branch prediction notes.
11521         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
11522
11523 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
11524
11525         * configure.in: Don't pass -Wno-long-long to a ADA compiler
11526         that doesn't support it.
11527         * configure: Regenerate.
11528
11529 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
11530
11531         PR target/5626
11532         * config/sparc/sparc.md (normal_branch, inverted_branch,
11533         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
11534         inverted_fp_branch): Adjust calls to output_cbranch.
11535         Set length attribute.
11536         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
11537         output_v9branch.  Set length attribute.
11538         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
11539         predicates.
11540         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
11541         (output_cbranch): Likewise.  Handle far branches.
11542         (output_v9branch): Handle far branches.
11543         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
11544         Adjust prototypes.
11545         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
11546         noov_compare64_op predicates.
11547
11548 2002-03-13  Jason Merrill  <jason@redhat.com>
11549
11550         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
11551         into the function and constify it.
11552         * gthr-dce.h, gthr-solaris.h: Likewise.
11553
11554 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
11555
11556         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
11557         * config/rs6000/rs6000.c (rs6000_va_arg): Use
11558         std_expand_builtin_va_arg if not ABI_V4.
11559
11560 2002-03-13  Jason Merrill  <jason@redhat.com>
11561
11562         * varasm.c (globalize_decl): New fn.
11563         (assemble_start_function): Use it.
11564         (asm_emit_uninitialized): Use it.
11565         (assemble_alias): Use it.
11566         (assemble_variable): Use it.
11567
11568 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
11569
11570         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
11571         2002-03-12 internal visibility change.
11572         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
11573         visibility into SYMBOL_REF_FLAG.
11574
11575 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
11576
11577         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
11578         VOIDmode operand.  Add compile-time optimization for constant results.
11579
11580 2002-03-12  Jason Merrill  <jason@redhat.com>
11581
11582         * c-typeck.c (convert_for_assignment): Don't allow conversions
11583         between pointers and references.  Only allow lvalues to convert to
11584         reference.
11585
11586 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
11587
11588         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
11589         before prologue, to avoid scheduling problems.
11590
11591 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
11592
11593         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
11594         (ELIMINABLE_REGS): Add sfp->sp.
11595         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
11596
11597 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
11598
11599         PR optimization/5892
11600         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
11601
11602 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
11603
11604         * loop.c (basic_induction_var): Don't call convert_modes if mode
11605         classes are different.
11606
11607 2002-03-12  Richard Henderson  <rth@redhat.com>
11608
11609         PR optimization/5901
11610         * function.c (reposition_prologue_and_epilogue_notes): Position
11611         the markers after/before the last/first insn not deleted.
11612
11613 2002-03-12  Richard Henderson  <rth@redhat.com>
11614
11615         PR optimization/5878
11616         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
11617         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
11618         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
11619
11620         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
11621         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
11622         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
11623
11624         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
11625         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
11626         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
11627         also.  Don't set it if not flag_pic.
11628         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
11629         to be INVALID_REGNUM when not used.
11630
11631 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
11632
11633         * expmed.c (store_bit_field): Reset alias set for memory.
11634         (extract_bit_field): Same.
11635
11636 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11637
11638         * c-common.c (c_tree_code_type, c_tree_code_length,
11639         c_tree_code_name, add_c_tree_codes): Delete.
11640         * c-common.h (add_c_tree_codes): Delete.
11641         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
11642         Define.
11643         * c-objc-common.c (c_objc_common_init): Don't call
11644         add_c_tree_codes, instead set lang_unsafe_for_reeval.
11645         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
11646         objc_tree_code_name, add_objc_tree_codes): Delete.
11647         (objc_init): Don't call add_objc_tree_codes.
11648         * objc/objc-lang.c (tree_code_type, tree_code_length,
11649         tree_code_name): Define.
11650         * toplev.c (lang_independent_init): Don't set
11651         tree_code_length[IDENTIFIER_NODE].
11652         * tree.c (tree_code_type, tree_code_length, tree_code_name):
11653         Delete definitions, moved to language front-ends.
11654         * tree.def (IDENTIFIER_NODE): Hardwire the length.
11655         * tree.h (tree_code_type, tree_code_length, tree_code_name):
11656         Const-ify.
11657         (tree_code_length): Change type to unsigned char.
11658
11659 2002-03-12  Richard Henderson  <rth@redhat.com>
11660
11661         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
11662         internal visibility change.
11663
11664 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
11665
11666         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
11667         validize_mem() instead of change_address to avoid clobbering
11668         memory attributes.
11669
11670 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
11671
11672         * c-lex.h (position_after_whitespace): Remove.
11673
11674 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
11675
11676         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
11677         (lex_string): Use unsigned char pointers.
11678
11679 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
11680
11681         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
11682         is not a valid memory_operand.
11683
11684 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
11685
11686         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
11687         * config/xtensa/lib1funcs.asm: Fix copyright to include
11688         special case for libgcc files.
11689         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
11690         (__divsi3): Likewise.
11691         (__umodsi3): Likewise.
11692         (__modsi3): Likewise.
11693         * config/xtensa/lib2funcs.S: Fix copyright to include
11694         special case for libgcc files.
11695
11696 2002-03-12  Tom Rix  <trix@redhat.com>
11697
11698         * collect2.c (resolve_lib_name): Move outside of
11699         OBJECT_FORMAT_COFF ifdef.
11700         (ignore_library): Same.
11701
11702 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
11703
11704         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
11705
11706 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
11707
11708         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
11709         to function_section before writing out the constant pool.
11710
11711 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
11712
11713         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
11714         zero_constant.
11715         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
11716
11717 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
11718
11719         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
11720         (adddi3): Likewise.
11721         (movdf): Likewise.
11722         (movdi): Likewise.
11723         (cmpsi splitter): Likewise.
11724         (modsi3): Fail if <= 0.
11725         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
11726         redundant test when HOST_BITS_PER_WIDE_INT != 32.
11727         (reg_or_sub_cint64_operand): Likewise.
11728         (num_insns_constant_wide): Optimize sign extension.
11729         (rs6000_legitimize_address): Likewise.
11730
11731 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
11732
11733         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
11734         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
11735
11736 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
11737
11738         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
11739         address calculation.
11740
11741 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
11742
11743         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
11744         scratch register to DImode / TImode.
11745         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
11746         register used does not overlap the target.
11747
11748 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11749
11750         * Makefile.in (debug.o): Depend on debug.h.
11751         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
11752         * debug.c (do_nothing_debug_hooks): Likewise.
11753         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
11754         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
11755         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
11756         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
11757         * dwarfout.c (dwarf_debug_hooks): Likewise.
11758         * integrate.c (output_inline_function): Likewise.
11759         * objc/objc-act.c (synth_module_prologue): Likewise.
11760         * sdbout.c (sdb_debug_hooks): Likewise.
11761         * toplev.c (debug_hooks): Likewise.
11762         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11763
11764 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11765
11766         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
11767         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
11768         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
11769         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
11770         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
11771         * defaults.h (POINTER_SIZE): Define.
11772         * doc/tm.texi (POINTER_SIZE): Document default.
11773
11774 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11775
11776         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
11777
11778 2002-03-11  Richard Henderson  <rth@redhat.com>
11779
11780         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
11781         if rebuild_label_notes_after_reload.
11782
11783 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
11784
11785         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
11786         emit pic register load if "internal" visibility.
11787         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
11788         (cris_expand_builtin_va_arg): Do all computations on trees.
11789
11790 2002-03-11  Richard Henderson  <rth@redhat.com>
11791
11792         * rtlanal.c: Include recog.h.
11793         (keep_with_call_p): Fix thinko.
11794         * Makefile.in (rtlanal.o): Update dependencies.
11795
11796 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
11797
11798         * genflags.c (gen_insn): Use IS_VSPACE.
11799         * genoutput.c (output_insn_data): Likewise.
11800         (process_template): Likewise.
11801
11802 2002-03-11  Richard Henderson  <rth@redhat.com>
11803
11804         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
11805
11806 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
11807
11808         * Makefile.in: Update.
11809         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
11810         Update documentation.
11811         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
11812         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
11813
11814 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
11815
11816         * Makefile.in: Give texi2pod its input file as a command line
11817         argument, not on stdin.
11818
11819 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
11820             Daniel Berlin  <dan@dberlin.org>
11821
11822         C++ alias analysis improvement.
11823         * alias.c (record_component_aliases): Record aliases for base
11824         classes too.
11825
11826 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
11827
11828         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
11829
11830 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
11831
11832         * toplev.c (vms_fopen): Remove, not needed.
11833
11834         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
11835
11836         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
11837
11838         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
11839         for FP, already done later.
11840
11841         * toplev.c (debug_args): Add entry for VMS_DEBUG.
11842         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
11843
11844 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
11845
11846         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
11847         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
11848         LARGEST_EXPONENT_IS_NORMAL for the given mode.
11849         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
11850         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
11851         (ediv, emul, eldexp, esqrt): Likewise.
11852         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
11853         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
11854         (saturate): New function.
11855         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
11856         (make_nan): Use a saturation value instead of a NaN if
11857         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
11858         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
11859         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
11860         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
11861         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
11862         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
11863         !ROUND_TOWARDS_ZERO.
11864         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
11865         (ROUND_TOWARDS_ZERO): Document.
11866
11867 2002-03-11  Andreas Jaeger  <aj@suse.de>
11868
11869         * cfg.c (dump_flow_info): Remove unused variable.
11870
11871 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
11872
11873         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
11874         computations on trees.
11875
11876 2002-03-10  Richard Henderson  <rth@redhat.com>
11877
11878         PR 5693:
11879         * reload.c (copy_replacements_1): New.
11880         (copy_replacements): Use it to recurse through the rtx.
11881
11882 2002-03-10  Richard Henderson  <rth@redhat.com>
11883
11884         * loop.c (strength_reduce): Compute number of iterations as
11885         unsigned HOST_WIDE_INT.
11886
11887 2002-03-10  Richard Henderson  <rth@redhat.com>
11888
11889         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
11890         to move away from the end of the block.
11891
11892 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
11893
11894         PR preprocessor/5899
11895         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
11896
11897 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11898
11899         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
11900
11901         * attribs.c (decl_attributes): Fix signed/unsigned warning.
11902
11903 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
11904
11905         * config/mmix/mmix.c: Improve comments.
11906         (mmix_target_asm_function_prologue): Drop variable
11907         empty_stack_frame.  Don't allocate unused slot above fp.
11908         (mmix_target_asm_function_epilogue): Mirror prologue changes.
11909         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
11910         brace in first column.
11911         (enum reg_class): Ditto.
11912         (FIRST_PARM_OFFSET): Now 0.
11913         (USER_LABEL_PREFIX): Remove #if 0:d definition.
11914
11915 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11916
11917         * combine.c (make_extraction): Fix error in last change.
11918
11919 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11920
11921         * c4x.c (c4x_fp_reglist): Const-ify.
11922         * cris.c (cris_print_operand): Likewise.
11923         * i386.c (ix86_va_arg): Likewise.
11924         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
11925         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
11926         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
11927         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
11928         * mcore.h (regno_reg_class): Likewise.
11929         * mips.c (gen_int_relational): Likewise.
11930         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
11931         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
11932         * pdp11.c (move_costs): Likewise.
11933         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
11934         * s390.c (s390_branch_condition_mnemonic, regclass_map):
11935         Likewise.
11936         * s390.h (regclass_map): Likewise.
11937         * sh.c (shift_amounts): Likewise.
11938         * sh.md (rotlsi3): Likewise.
11939
11940 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
11941
11942         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
11943         (ne0+5): Use new clobber to generate proper shift pattern.
11944         Patch by Michael Matz <matz@kde.org>.
11945
11946 2002-03-09  Andreas Schwab  <schwab@suse.de>
11947
11948         * gcc.c (validate_all_switches): Also handle `%W{...}'.
11949
11950 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
11951
11952         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
11953
11954 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
11955
11956         PR middle-end/5877
11957         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
11958         even for non-representable constants.
11959
11960 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11961
11962         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
11963         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
11964         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
11965         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
11966         (pop_function_context): Compute MAY_SHARE parameter for
11967         fixup_var_refs.
11968         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
11969         (gen_mem_addressof): Call fixup_var_refs with new parm.
11970
11971         * combine.c (make_extraction): Don't make extension of CONST_INT.
11972
11973 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
11974
11975         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
11976         in o32 and o64 ABIs.
11977         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
11978         but getting fixed-size structs passed in registers regardless of
11979         padding in o32 and o64 ABIs.
11980
11981         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
11982         offset before loading address of argument passed by transparent
11983         reference.
11984
11985 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11986
11987         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
11988
11989 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
11990
11991         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
11992         marker such that registers after it are saved.
11993
11994 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11995
11996         * sparc.c (arith_4096_operand): Fix error in last change.
11997
11998 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
11999
12000         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
12001         defaults for MEABI.
12002
12003 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
12004
12005         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
12006         vectors.
12007
12008 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
12009
12010         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
12011
12012 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
12013
12014         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
12015         removed; fix return value.
12016         * combine.c (combine_instructions): Dirtify blocks where we failed to
12017         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
12018         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
12019
12020 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12021
12022         * gcse.c (insert_insn_end_bb): Fix typo in last change.
12023
12024 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
12025
12026         * recog.c (peephole2_optimize): Re-distribute EH edges.
12027
12028 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
12029
12030         * expr.c (expand_expr): Use unsave lang hook.
12031         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
12032         (LANG_HOOKS_INITIALIZER): Update.
12033         * langhooks.h (struct lang_hooks): New hook unsave.
12034         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
12035         (unsave_expr_1): Remove unused lang_unsave_expr_now.
12036         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
12037         (unsave_expr_now): Remove.
12038         * tree.h (unsave_expr_now, lang_unsave,
12039         lang_unsave_expr_now): Remove.
12040         (lhd_unsave): New.
12041
12042 2002-03-08  Andreas Jaeger  <aj@suse.de>
12043
12044         * flow.c (propagate_block_delete_insn): Remove unused variable.
12045
12046 2002-03-08  Kazu Hirata  <kazu@hxi.com>
12047
12048         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
12049         insn length for memory load/store.
12050
12051 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12052
12053         * doc/install.texi (--with-libiconv-prefix): Document.
12054
12055 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
12056
12057         * doc/sourcebuild.texi: Fix typo.
12058
12059 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
12060
12061         PR c/3711
12062         * builtins.c (std_expand_builtin_va_arg): Do all computations on
12063         trees.
12064
12065 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12066
12067         * rtl.c (copy_most_rtx): Move from here ...
12068         * emit-rtl.c (copy_most_rtx): ... to here.
12069
12070 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
12071
12072         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
12073         SUBTARGET_CPP_SIZE_SPEC.
12074         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
12075
12076         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
12077
12078 2002-03-07  Matt Hiller  <hiller@redhat.com>
12079
12080         * gensupport.c (first_dir_md_include): Renamed from include;
12081         change all references.
12082         (last_dir_md_include): Renamed from last_include; change all
12083         references.
12084         (init_md_reader): Unconditionally initialize base_dir whether or
12085         not filename is a relative path.
12086
12087 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
12088
12089         * config/fp-bit.c (_unord_f2): Compile it in even if
12090         US_SOFTWARE_GOFAST is enabled.
12091
12092         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
12093         NULL_RTX.  Set all HFmode operations as NULL_RTX.
12094         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
12095         NULL_RTX, try reversing the comparison and the operands.
12096
12097 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
12098
12099         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
12100         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
12101         and MATCH_OP_DUP.
12102
12103 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
12104
12105         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
12106
12107 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
12108
12109         * basic-block.h (fixup_abnormal_edges): Declare.
12110         * reload1.c (fixup_abnormal_edges): New function.
12111         * reg-stack.c (convert_regs): Use it.
12112
12113         * gcse.c (insert_insn_end_bb): Handle trapping insns.
12114
12115         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
12116
12117 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
12118
12119         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
12120         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
12121         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
12122         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
12123         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
12124         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
12125         unless x and y could be infinite.
12126         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
12127         Check that the common type of both arguments is a real, even for
12128         targets without unordered comparisons.  Allow an integer argument
12129         to be compared against a real.
12130         (expand_tree_builtin): Use expand_unordered_cmp.
12131         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
12132         * cse.c (fold_rtx): Likewise.  Fix indentation.
12133         * fold-const.c (fold_real_zero_addition_p): New.
12134         (fold): Use it, and the new HONOR_... macros.
12135         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
12136         * jump.c (reversed_comparison_code_parts): After searching for
12137         the true comparison mode, use HONOR_NANS to decide whether it
12138         can be safely reversed.
12139         (reverse_condition_maybe_unordered): Remove IEEE check.
12140         * simplify-rtx.c (simplify_binary_operation): Use the new macros
12141         to decide which simplifications are valid.  Allow the following
12142         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
12143         and (a - -b) to (a + b).
12144         (simplify_relational_operation): Use HONOR_NANS.
12145         * doc/tm.texi: Document the MODE_HAS_... macros.
12146
12147 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
12148
12149         * combine.c (simplify_comparison): If simplifying a logical shift
12150         right and compare with constant, force the comparison to unsigned.
12151
12152 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
12153
12154         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
12155
12156         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
12157         -mabi=no-altivec
12158         (alt_reg_names): Remove % for vrsave.
12159
12160 2002-03-06  Richard Henderson  <rth@redhat.com>
12161
12162         PR optimization/5844
12163         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
12164         if used indicates we've already emitted one copy of an operand.
12165         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
12166         (gen_split): Supply a non-null used.
12167
12168 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
12169
12170         * reload1.c (reload): Unshare all rtl after reload is done.
12171
12172         * simplify-rtx.c (simplify_plus_minus): Do not abort,
12173         but simply fail if the expression is too complex to simplify.
12174         (simplify_gen_binary): Handle simplify_plus_minus failures.
12175
12176 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
12177
12178         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
12179         consistently call delete_trivially_dead_insns after CSE and GCSE;
12180         fix DFI_life dumping; do jump threading after liveness; do crossjumping
12181         after liveness2; update comment in last crossjumping.
12182         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
12183
12184 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
12185
12186         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
12187         after completing fast dead code elimination.
12188
12189         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
12190         COMPARE operator.
12191
12192 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
12193
12194         * version.c:  Fix misplaced leading blanks on first line.
12195
12196 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
12197
12198         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
12199
12200 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
12201
12202         * cfgcleanup.c (mentions_nonequal_regs): New function.
12203         (thread_jump): Use it.
12204         * toplev.c (rest_of_compilation): Run jump threading after
12205         liveness.
12206
12207 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
12208
12209         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
12210         patch.
12211
12212 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
12213
12214         * predict.c (estimate_bb_frequencies): Do not reload the
12215         frequencies from notes.
12216
12217 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
12218
12219         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
12220         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
12221
12222         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
12223         delete_noop_moves): Return indeger.
12224         * flow.c (ndead): New variable.
12225         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
12226         BB argument; update callers.
12227         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
12228         (life_analysis): Do not call purge_all_dead_edges.
12229         (update_life_info): Return number of deleted insns; print statistics.
12230         (update_life_info_in_dirty_blocks): likewise.
12231         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
12232         return number of insns deleted.
12233
12234         * cse.c: Include timevar.h
12235         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
12236         iterate until stabilizes; print statistics; return number of killed
12237         insns.
12238         * Makefile.in: (cse.o): Add timevar.h dependency
12239         * rtl.h (delete_trivially_dead_insns): New.
12240         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
12241         * toplev.c (rest_of_compilation): Update callers.
12242
12243         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
12244         (try_optimize_cfg): Do not update liveness.
12245         (cleanup-cfg): Loop until try_optimize_cfg and dead code
12246         removal stabilizes; use delete_trivially_dead_insns.
12247
12248         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
12249
12250 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
12251
12252         * cppmain.c (setup_callbacks): Disable #pragma and #ident
12253         callbacks when processing assembly language.
12254
12255 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12256
12257         * pa.h (ASM_FILE_END): Define.
12258         * som.h (ASM_FILE_END): Delete.
12259
12260         * pa.c (function_arg): Don't pass floats in general registers in
12261         indirect calls if TARGET_ELF32.
12262
12263 2002-03-05  Richard Henderson  <rth@redhat.com>
12264
12265         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
12266
12267 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
12268
12269         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
12270
12271 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
12272
12273         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
12274         -r command line.  Don't hide any symbols if not building
12275         shared libgcc.
12276
12277 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
12278
12279         * cfg.c (dump_flow_info): Warn about profile mismatches.
12280         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
12281         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
12282
12283 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
12284
12285         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
12286         wide volatile memory by parts.
12287
12288 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
12289
12290         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
12291         is NULL.
12292
12293 2002-03-05  Richard Henderson  <rth@redhat.com>
12294
12295         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
12296
12297 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
12298
12299         * toplev.c (documented_lang_options): Document more
12300         language-specific options.
12301         * doc/invoke.texi (Warning Options): Correct documentation for
12302         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
12303         * c-decl.c (c_decode_option): Use a table to handle warning options.
12304
12305 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
12306
12307         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
12308         parameter to mmix_encode_section_info.
12309         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
12310         relocatably.  Always produce ELF, not mmo if linking relocatably.
12311         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
12312         first is non-zero, don't add symbol prefix.
12313         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
12314         prototype accordingly.
12315
12316 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
12317
12318         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
12319
12320 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
12321
12322         * configure.in: Increase required makeinfo version to 4.1.
12323         * configure: Regenerate.
12324
12325 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
12326
12327         * .cvsignore: Remove *.info* and genrtl*; these files are generated
12328         elsewhere now.
12329
12330 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
12331
12332         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
12333         * doc/invoke.texi: Fix @math uses.
12334
12335 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
12336
12337         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
12338         removal
12339
12340 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
12341
12342         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
12343         (powerpc-*-eabisimaltivec*): Same.
12344
12345         * config/rs6000/t-ppcendian: New.
12346
12347 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12348
12349         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
12350         nonimmediate_src_operand and nonimmediate_lsrc_operand to
12351         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
12352
12353 2002-03-03  Richard Henderson  <rth@redhat.com>
12354
12355         * toplev.c (rest_of_decl_compilation): Revert last two changes.
12356
12357 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
12358
12359         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
12360         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
12361         tree.c, config/m68k/m68k.c:
12362         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
12363         REAL_ARITHMETIC blocks unconditional.  Delete some further
12364         #ifdef blocks predicated on REAL_ARITHMETIC.
12365         * flags.h, toplev.c: Delete remaining references to
12366         flag_pretend_float.
12367
12368         * doc/invoke.texi: Remove documentation of -fpretend-float.
12369         * doc/tm.texi: Describe the various REAL_* macros as provided by
12370         real.h, not by the target configuration files.
12371
12372         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
12373         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
12374         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
12375         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
12376         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
12377         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
12378         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
12379         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
12380         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
12381         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
12382         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
12383         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
12384         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
12385         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
12386         config/xtensa/xtensa.h:
12387         Do not define, undefine, or mention in comments any of
12388         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
12389         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
12390         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
12391         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
12392         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
12393         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
12394         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
12395         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
12396         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
12397
12398 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12399
12400         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
12401         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
12402         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
12403         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
12404         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
12405         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
12406         Delete.
12407         * defaults.h (BITS_PER_WORD): Define.
12408         * doc/tm.texi (BITS_PER_WORD): Document default value.
12409
12410         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
12411         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
12412         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
12413
12414 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12415
12416         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
12417         lieu of explicit sizeof/sizeof.
12418         * i386.c (override_options, ix86_init_mmx_sse_builtins,
12419         ix86_expand_builtin): Likewise.
12420         * mips.c (mips_add_gc_roots): Likewise.
12421         * mmix.c (mmix_output_condition): Likewise.
12422         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
12423         altivec_init_builtins): Likewise.
12424         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
12425         * cppexp.c (Nsuff, parse_number): Likewise.
12426         * cppinit.c (builtin_array_end): Likewise.
12427         * gcc.c (n_default_compilers, process_command): Likewise.
12428         * genpreds.c (output_predicate_decls): Likewise.
12429         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
12430         * lcm.c (N_ENTITIES): Likewise.
12431         * stor-layout.c (set_sizetype): Likewise.
12432
12433 2002-03-03  Richard Henderson  <rth@redhat.com>
12434
12435         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
12436         for types or labels.
12437
12438 2002-03-03  Richard Henderson  <rth@redhat.com>
12439
12440         * c-decl.c (start_decl): Initialized variables are not common.
12441
12442 2002-03-02  Per Bothner  <per@bothner.com>
12443
12444         * gcc.c (option_map):  Suport new --bootclasspath option.
12445         --CLASSPATH is now just an alias for --classpath.
12446
12447 2002-03-02  Richard Henderson  <rth@redhat.com>
12448
12449         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
12450         load if "internal" visibility.
12451         * doc/extend.texi: Document visibility meanings.
12452
12453 2002-03-02  Richard Henderson  <rth@redhat.com>
12454
12455         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
12456         to functions as well.
12457
12458 2002-03-02  Richard Henderson  <rth@redhat.com>
12459
12460         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
12461         (handle_visibility_attribute): Don't call assemble_visibility.
12462         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
12463         without asmspec.  Invoke assemble_alias when needed.
12464         * varasm.c (maybe_assemble_visibility): New.
12465         (assemble_start_function, assemble_variable, assemble_alias): Use it.
12466
12467 2002-03-02  Richard Henderson  <rth@redhat.com>
12468
12469         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
12470         invoke ENCODE_SECTION_INFO with first call flag.
12471
12472         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
12473         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
12474         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
12475         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
12476         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
12477         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
12478         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
12479         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
12480         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
12481         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
12482         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
12483         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
12484         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
12485         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
12486         config/mcore/mcore-protos.h, config/mcore/mcore.c,
12487         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
12488         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
12489         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
12490         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
12491         config/sh/sh.h, config/sparc/sparc.h,
12492         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
12493         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
12494         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
12495         FIRST argument.  As needed, examine it and do nothing.
12496
12497         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
12498         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
12499         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
12500
12501         * config/arm/t-pe (pe.o): Add dependencies.
12502
12503 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12504
12505         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
12506         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
12507         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
12508         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
12509         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
12510         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
12511         * defaults.h (BITS_PER_UNIT): Define.
12512         * doc/tm.texi (BITS_PER_UNIT): Document default value.
12513
12514 2002-03-02  Kazu Hirata  <kazu@hxi.com>
12515
12516         * config/h8300/h8300-protos.h: Add a prototype for
12517         compute_a_shift_length.
12518         * config/h8300/h8300.c (h8300_asm_insn_count): New.
12519         (compute_a_shift_length): Likewise.
12520         (h8300_adjust_insn_length): Do not adjust insn length of shift
12521         insns.
12522         * config/h8300/h8300.md (anonymous shift patterns): Use
12523         compute_a_shift_length.
12524
12525 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12526
12527         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
12528         trunc_int_for_mode.
12529
12530         * emit-rtl.c (offset_address): Call update_temp_slot_address.
12531
12532 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12533
12534         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
12535         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
12536         * flags.h (flag_zero_initialized_in_bss): Declare.
12537         * toplev.c (flag_zero_initialized_in_bss): New flag.
12538         (lang_independent_options): Add flag_zero_initialized_in_bss.
12539         * tree.c (initializer_zerop): New function.
12540         * tree.h (initializer_zerop): Declare.
12541         * varasm.c (assemble_variable): If we can emit bss, put zero
12542         initializers in the bss section.
12543
12544 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
12545
12546         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
12547         like more than one symbol per .weak directive.
12548
12549 2002-03-01  Richard Henderson  <rth@redhat.com>
12550
12551         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
12552         adjust argument_pointer by pretend_args_size.
12553         (ia64_va_start): Adjust va_start address by -pretend_args_size.
12554
12555 2002-03-01  Kazu Hirata  <kazu@hxi.com>
12556
12557         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
12558
12559 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
12560
12561         * toplev.c (rest_of_compilation): Delete dead jumptables before
12562         loop.
12563         * flow.c (delete_dead_jumptables): Make global.
12564         * rtl.h (delete_dead_jumptables): Declare.
12565
12566 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
12567
12568         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
12569         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
12570         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
12571
12572 2002-03-01  Kazu Hirata  <kazu@hxi.com>
12573
12574         * config/h8300/h8300-protos.h: Fix formatting.
12575         * config/h8300/h8300.c: Likewise.
12576         * config/h8300/h8300.h: Likewise.
12577
12578 2002-03-01  Kazu Hirata  <kazu@hxi.com>
12579
12580         * config/h8300/h8300.c (print_operand): Support 16-bit
12581         constant addresses.
12582         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
12583
12584 2002-02-28  Richard Henderson  <rth@redhat.com>
12585
12586         * expmed.c (store_bit_field): Prevent generation of CONCATs;
12587         pun complex values as integers; use gen_lowpart instead of
12588         gen_rtx_SUBREG.
12589         (extract_bit_field): Likewise.
12590
12591 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
12592             David Edelsohn  <edelsohn@gnu.org>
12593
12594         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
12595         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
12596         (SUPPORTS_WEAK): Likewise.
12597         * output.h (add_weak): Add tree param.
12598         * varasm.c (add_weak): Likewise.  Save decl.
12599         (struct weak_syms): Add decl field.
12600         (mark_weak_decls): New function.
12601         (init_varasm_once): ggc_add_root mark_weak_decls.
12602         (assemble_start_function): Use ASM_WEAKEN_DECL.
12603         (assemble_variable): Likewise.
12604         (assemble_alias): Likewise.
12605         (declare_weak): Pass decl to add_weak.
12606         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
12607         (remove_from_pending_weak_list): Declare and define for
12608         ASM_WEAKEN_DECL.
12609         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
12610         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
12611         * defaults.h (SUPPORTS_WEAK): Likewise.
12612         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
12613         .weak for code sym.  Do emit .size for descriptor sym.
12614         (ASM_DECLARE_FUNCTION_SIZE): Define.
12615         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
12616         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
12617         .lglobl unless TARGET_XCOFF.  Formatting fixes.
12618         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
12619         .weak for code sym.
12620         (HANDLE_PRAGMA_WEAK): Remove.
12621         (ASM_WEAKEN_LABEL): Remove.
12622         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
12623
12624 2002-03-01  Jason Merrill  <jason@redhat.com>
12625
12626         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
12627         (TARGET_EXPR_CLEANUP): New macro.
12628
12629 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
12630
12631         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
12632         to take ptr_extend into account as third type of extension.
12633         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
12634         fields used by SUBREG_PROMOTED_UNSIGNED_P.
12635         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
12636         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
12637         * calls.c (precompute_arguments): Use new macro.
12638         (expand_call): Ditto.
12639         * combine.c (nonzero_bits): Ditto.
12640         (record_promoted_value): Ditto.
12641         * expr.c (store_expr): Ditto.
12642         (expand_expr): Ditto.
12643         * function.c (assign_parms): Ditto.
12644
12645 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
12646
12647         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
12648         override -shared and -shared-libgcc.
12649
12650 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
12651
12652         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
12653         of "ultrasparc".
12654         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
12655         to be broken.
12656
12657 2002-02-28  Richard Henderson  <rth@redhat.com>
12658
12659         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
12660         4 cycle latency from MM producers.
12661         (ia64_internal_sched_reorder): Likewise with pipeline flush.
12662
12663 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
12664
12665         * mklibgcc.in: Don't use GNU make extension.
12666
12667 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
12668
12669         * c-parse.in (STATIC): New terminal.
12670         (scspec): New non-terminal.  Update productions accordingly.
12671         (program): Remove bogus ifc / end ifc.
12672         (array_declarator): Simplify production using STATIC.
12673
12674 2002-02-28  Jim Meyering  <meyering@lucent.com>
12675
12676         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
12677         \a still means TARGET_BELL.
12678
12679 2002-02-28  Richard Henderson  <rth@redhat.com>
12680
12681         * haifa-sched.c (sched_emit_insn): New.
12682         (schedule_block): Use last_scheduled_insn to track last insn.
12683         * sched-int.h (sched_emit_insn): Prototype.
12684         * config/ia64/ia64.c (last_issued): Remove.
12685         (ia64_variable_issue): Don't set it.
12686         (nop_cycles_until): Use sched_emit_insn.
12687
12688 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
12689
12690         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
12691         extended constants.
12692
12693 2002-02-28  Kazu Hirata  <kazu@hxi.com>
12694
12695         * config/h8300/h8300.c: Fix formatting.
12696         * config/h8300/h8300.h: Likewise.
12697
12698 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
12699
12700         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
12701         which may overwrite the high byte of the frame pointer.
12702
12703 2002-02-28  Bo Thorsen  <bo@suse.de>
12704
12705         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
12706         (STARTFILE_SPEC): Add 64 bit files.
12707         (ENDFILE_SPEC): Likewise.
12708
12709 2002-02-28  Jason Merrill  <jason@redhat.com>
12710
12711         * c-decl.c (finish_function): Only warn about missing return
12712         statement with -Wreturn-type.
12713
12714 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
12715
12716         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
12717
12718         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
12719         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
12720
12721 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
12722
12723         * basic-block.h (BB_REACHABLE): Renumber.
12724         (BB_DIRTY, BB_NEW): New flags.
12725         (clear_bb_flags): Declare.
12726         (update_life_info_in_dirty_blocks): Declare.
12727         * cfg.c (clear_bb_flags): New function.
12728         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
12729         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
12730         reorder_insns, emit_insn_after): Mark block as dirty.
12731         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
12732         (update_life_info_in_dirty_blocks): New function.
12733         * recog.c (apply_change_group): Dirtify block.
12734
12735         * cse.c (cse_insn): Reorder emitting of jump insn to keep
12736         cfg consistent.
12737         * gcse.c (delete_null_pointer_checks): Likewise.
12738
12739         * toplev.c (dump_file_index): Move cse2 after bp,
12740         add DFI_null
12741         (dump_file_info): Similary.
12742         (rest_of_compilation): Avoid most of CFG rebuilds;
12743         do first if converision after null pointer checks, do cse2
12744         after branch prediction; avoid full liveness rebuild after
12745         initializing subregs.
12746         * invoke.texi (-d options): Document -du, renumber.
12747
12748         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
12749         (notice_new_block): Do not set BB_UPDATE_LIFE.
12750         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
12751          merge_blocks_move_successor_nojumps, merge_blocks,
12752          try_crossjump_to_edge): Likewise.
12753         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
12754         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
12755         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
12756         (merge_of_block): Do not use life_data_ok.
12757         (find_if_case_1): Do not use SET_UPDATE_LIFE.
12758         (if_convert): Use BB_DIRTY mechanizm to update life.
12759         * lcm.c (optimize_mode_switching): Update
12760         update_life_info_in_dirty_blocks
12761
12762 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
12763
12764         * Makefile.in (integrate.o): Update.
12765         * c-decl.c (copy_lang_decl): Rename.
12766         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
12767         * integrate.c: Include langhooks.h.
12768         (copy_decl_for_inlining): Update to use langhook.
12769         * langhooks-def.h (lhd_do_nothing_t,
12770         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
12771         (LANG_HOOKS_INITIALIZER): Update.
12772         * langhooks.c (lhd_do_nothing_t): New.
12773         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
12774         * tree.h (copy_lang_decl): Remove.
12775 objc:
12776         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
12777
12778 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
12779
12780         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
12781         POST_DEC, and POST_MODIFY.
12782
12783 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
12784
12785         * c-typeck.c (digest_init): Remove unused parameter; all
12786         callers changed.
12787
12788 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
12789
12790         * expmed.c (expand_shift): Correctly test for low part of a
12791         subreg.
12792
12793 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
12794
12795         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
12796         insn UIDs with insn addresses.
12797
12798 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
12799
12800         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
12801         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
12802         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
12803         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
12804         gcc.c, toplev.c: Delete code implementing -traditional mode.
12805
12806         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
12807         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
12808         Document removal of -traditional mode for compilation, and
12809         remove documentation only relevant to that mode.
12810
12811         * config/nextstep.h, config/ptx4.h, config/svr4.h,
12812         config/convex/convex.h, config/d30v/d30v.h,
12813         config/i386/dgux.h, config/i386/osf1elf.h,
12814         config/i386/osfelf.h, config/i386/osfrose.h,
12815         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
12816         config/m68k/hp310.h, config/m88k/dgux.h,
12817         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
12818         config/m88k/m88k.h, config/m88k/openbsd.h,
12819         config/mips/abi64.h, config/mips/osfrose.h,
12820         config/mips/svr4-5.h, config/mips/svr4-t.h,
12821         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
12822         config/stormy16/stormy16.h: Remove all references to
12823         -traditional from target specs.  Delete all mention of the
12824         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
12825         delete a couple of commented-out definitions of
12826         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
12827         to -traditional.
12828
12829         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
12830         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
12831
12832 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
12833
12834         * mklibgcc.in: Don't use \n in a line subject to
12835         interpretation by echo.
12836
12837 2002-02-27  Graham Stott  <grahams@redhat.com>
12838
12839         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
12840         Constify NAME.
12841
12842         * loop.c (prescan_loop): Handle PARALLEL.
12843
12844         * unroll.c (loop_iterations): Return 0 if the add_val for
12845         a BIV is REG.
12846
12847         * final.c (output_operand_lossage): Constify PFX_STR.
12848
12849         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
12850
12851 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
12852
12853         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
12854         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
12855
12856 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
12857
12858         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
12859
12860 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
12861
12862         * cpplex.c (_cpp_lex_token): Handle directives in macro
12863         arguments.
12864         * cpplib.c (_cpp_handle_directive): Save and restore state
12865         if parsing macro args when entering a directive.
12866         * cppmacro.c (collect_args): No need to handle directives
12867         in macro arguments.
12868         (enter_macro_context, replace_args): Use the original macro
12869         definition in case it was redefined whilst collecting arguments.
12870 doc:
12871         * cpp.texi: Update.
12872
12873 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
12874
12875         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
12876         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
12877         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
12878         method on AIX.
12879         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
12880         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
12881         (load_toc_v4_PIC_2): Same.
12882
12883 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
12884
12885         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
12886
12887 2002-02-26  Richard Henderson  <rth@redhat.com>
12888
12889         * config/alpha/alpha.md (ashldi_se): Re-enable.
12890
12891 2002-02-26  Richard Henderson  <rth@redhat.com>
12892
12893         * config/alpha/alpha.c (alpha_encode_section_info): Examine
12894         MODULE_LOCAL_P; improve commentary.
12895
12896 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
12897
12898         * doc/cpp.texi: Clarify documentation of relationship between
12899         #line and #include.
12900
12901 2002-02-26  Kazu Hirata  <kazu@hxi.com>
12902
12903         * config/h8300/h8300-protos.h: Update the prototype for
12904         compute_logical_op_length.  Add the prototype for
12905         compute_logical_op_cc.
12906         * config/h8300/h8300.c (compute_logical_op_length): Figure out
12907         code from operands.
12908         (compute_logical_op_cc): New.
12909         * config/h8300/h8300.md: Combine all the logical op patterns
12910         in HImode and SImode.  Use compute_logical_op_cc.
12911
12912 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
12913
12914         * config/i386/i386.c (print_operand): Don't append ATT-style
12915         length suffixs to x87 opcodes when in Intel mode.
12916
12917 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
12918
12919         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
12920         (init_emit_once): Update calls.
12921         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
12922         (init_syntax_once): Prototype.
12923
12924 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12925
12926         * pa-linux.h (LIB_SPEC): Update definition.
12927         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
12928
12929 2002-02-26  Richard Henderson  <rth@redhat.com>
12930
12931         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
12932         if we emitted a stop bit.
12933
12934 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
12935
12936         * configure.in (libgcc_visibility): Substitute.
12937         * configure: Rebuilt.
12938         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
12939         defined symbols .hidden.
12940
12941 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
12942
12943         * attribs.c (c_common_attribute_table): Add visibility.
12944         (handle_visibility_attribute): New function.
12945         * varasm.c (assemble_visibility): New function.
12946         * output.h (assemble_visibility): Add prototype.
12947         * tree.h (MODULE_LOCAL_P): Define.
12948         * crtstuff.c (__dso_handle): Use visibility attribute.
12949         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
12950         for MODULE_LOCAL_P symbols too.
12951         * config/ia64/ia64.c (ia64_encode_section_info): Handle
12952         MODULE_LOCAL_P symbols the same way as local symbols.
12953         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
12954         into .sdata/.sbss by the user.
12955         * doc/extend.texi (Function Attributes): Document visibility
12956         attribute.
12957
12958 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
12959
12960         PR debug/5770
12961         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
12962         STRING_CST initializer spanning the whole variable without
12963         embedded zeros.
12964         If expand_expr returned MEM, don't use it.
12965
12966 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
12967
12968         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
12969         generate a die for the lexical block.
12970
12971 2002-02-26  Kazu Hirata  <kazu@hxi.com>
12972
12973         * config/h8300/h8300-protos.h: Add a prototype for
12974         compute_logical_op_length.
12975         * config/h8300/h8300.c (compute_logical_op_length): New.
12976         * config/h8300/h8300.md (anonymous logical patterns): Use
12977         compute_logical_op_length for length.
12978
12979 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
12980
12981         * dwarf2out.c (modified_type_die): Do not call type_main_variant
12982         for vectors.
12983         (gen_type_die): Same.
12984
12985         * attribs.c (handle_vector_size_attribute): Set debug information.
12986
12987 2002-02-26  Daniel Egger  <degger@fhm.edu>
12988
12989         * config/rs6000/rs6000.md: Swap define_insn attributes to
12990         fix incorrect generation of merge high instructions instead
12991         of merge low.
12992
12993 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
12994
12995         * c-typeck.c (really_start_incremental_init): Use
12996         bitsize_zero_node for vectors.
12997
12998 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
12999
13000         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
13001         ("*set_vrsave_internal"): Same.
13002
13003 2002-02-25  Richard Henderson  <rth@redhat.com>
13004
13005         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
13006         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
13007
13008 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
13009
13010         PR target/5755
13011         * config/i386/i386.c (ix86_return_pops_args): Only pop
13012         fake structure return argument if it was passed on the stack.
13013
13014 2002-02-25  Jason Merrill  <jason@redhat.com>
13015
13016         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
13017         RESULT_DECL.
13018
13019 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
13020
13021         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
13022         link with shared_name only.
13023         * doc/invoke.texi (Link Options): Document new behavior.
13024
13025 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
13026
13027         * c-typeck.c (push_init_level): Handle vectors.
13028
13029 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
13030
13031         * config/sparc/sparc.c (const64_high_operand): Zero-extend
13032         operands of SPARC_SETHI_P.
13033         (input_operand): Likewise.
13034         (sparc_emit_set_const32): Likewise.
13035         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
13036         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
13037         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
13038         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
13039         (movdi_insn_sp64_vis): Likewise.
13040         (movdi split, movdf split): Use SETHI32.
13041         * doc/md.texi: Document SPARC constraints L, M and N.
13042
13043 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
13044
13045         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
13046         ("*set_vrsave_internal"): use mfspr for Darwin.
13047
13048         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
13049         gen_get_vrsave_internal.
13050
13051 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13052
13053         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
13054
13055 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
13056
13057         * cpplex.c (cpp_interpret_charconst): Get signedness or
13058         otherwise of wide character constants correct.
13059         * cppexp.c (lex): Get signedness of wide charconsts correct.
13060
13061 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13062
13063         * optabs.c (widen_operand): Only call convert_modes for
13064         promoted SUBREG if signedness matches.
13065         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
13066
13067 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13068
13069         * cpplib.c (glue_header_name): Use local buffer to build up
13070         header name.
13071
13072 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13073
13074         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
13075
13076 2002-02-23  Kazu Hirata  <kazu@hxi.com>
13077
13078         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
13079         H8/300[HS] separately.
13080         * config/h8300/h8300.md: Remove the early clobber constraint
13081         from bit field patterns.
13082
13083 2002-02-23  Kazu Hirata  <kazu@hxi.com>
13084
13085         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
13086         register_operand.
13087         (mulhisi3): Likewise.
13088         (umulqisi3): Likewise.
13089         (umulhisi3): Likewise.
13090
13091 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13092
13093         * cppinit.c (output_deps): Correct test for stdout output.
13094         (init_dependency_output): Cure warning.
13095
13096 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13097
13098         * expr.c (store_expr): When converting expression to promoted
13099         equivalent type, allow using SUBREG_REG of TARGET as the target
13100         of the expansion of EXP.
13101         * loop.c (basic_induction_var, case SUBREG): Always look inside.
13102         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
13103         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
13104         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
13105         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
13106
13107 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
13108
13109         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
13110         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
13111         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
13112
13113 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
13114
13115         PR optimization/5747
13116         * loop.c (scan_loop): Update reg info if move_movables created new
13117         pseudos.
13118
13119 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
13120
13121         * gcc.c (init_gcc_spec): Revert last change.
13122
13123 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
13124
13125         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
13126         gpc_reg_operand constraint.
13127
13128 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
13129
13130         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
13131         Simplify comparison of `low'.
13132         (add_operand): Fix formatting.
13133         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
13134         (mask_operand): Disallow mask to wrap in 64-bit mode.
13135         (rs6000_stack_info): Remove redundant test setting push_p.
13136         (output_toc): Fix formatting.
13137         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
13138         cc_reg_not_cr0_operand constraint.
13139         (booldi3, boolcdi3 splitters): Same.
13140
13141 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
13142
13143         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
13144
13145 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
13146
13147         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
13148         gcc invoked with -shared-libgcc.
13149
13150 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
13151
13152         PR c++/5748
13153         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
13154         decl if any of elements was TREE_USED.
13155
13156 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
13157
13158         * config/sparc/sol2.h: Don't include sys/mman.h.
13159         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
13160         (arith_4096_operand): Don't throw high bits away.
13161         (const64_operand): Take sign extension of CONST_INTs into account.
13162         (const64_high_operand, sparc_emit_set_const32): Likewise.
13163         (GEN_HIGHINT64): Likewise.
13164         (sparc_emit_set_const64_quick1): Likewise.
13165         (const64_is_2insns): Likewise.
13166         (print_operand): Use trunc_int_for_mode for sign extension.
13167         * config/sparc/sparc.h (SMALL_INT32): Likewise.
13168         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
13169         chars.  Assume CONST_INT is already properly sign-extended.
13170         (movdi split): Sign-extend each SImode part.
13171         (andsi3 split): Don't mask high bits off, so that result
13172         remains properly sign-extend.
13173         (iorsi3 split): Likewise.
13174         (xorsi3 split): Likewise.
13175
13176 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
13177
13178         * fold-const.c (fold): Fix typo in comments.
13179
13180 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
13181
13182         * Makefile.in (langhooks.o): Update dependencies.
13183
13184 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
13185
13186         * langhooks.c: Include flags.h.
13187
13188 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
13189
13190         * testsuite/gcc.dg/attr-alwaysinline.c: New.
13191
13192         * c-common.c (c_common_post_options): Set inline trees by
13193         default.
13194
13195         * doc/extend.texi (Function Attributes): Document always_inline
13196         attribute.
13197         Update documentation about inlining when not optimizing.
13198
13199         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
13200
13201         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
13202         unless DECL_ALWAYS_INLINE.
13203
13204         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
13205         unless DECL_ALWAYS_INLINE.
13206         (c_disregard_inline_limits): Disregard if always_inline set.
13207
13208         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
13209         Disregard if always_inline set.
13210         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
13211         unless DECL_ALWAYS_INLINE.
13212
13213         * attribs.c (handle_always_inline_attribute): New.
13214         (c_common_attribute_table): Add always_inline.
13215
13216         * config/rs6000/altivec.h: Add prototypes for builtins
13217         requiring the always_inline attribute.
13218
13219 2002-02-21  Eric Christopher  <echristo@redhat.com>
13220
13221         * expmed.c (store_bit_field): Try to simplify the subreg
13222         before generating a new one when when the mode size of
13223         value is less than maxmode.
13224
13225 2002-02-21  Richard Henderson  <rth@redhat.com>
13226
13227         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
13228         than gen_rtx_PLUS to form the sum.
13229         * explow.c (force_reg): Rearrange to not allocate new pseudo
13230         when force_operand returns a register.
13231         * expr.c (expand_assignment): Allow offset_rtx expansion to
13232         return a sum.  Do not force addresses into registers.
13233         (expand_expr): Likewise.
13234         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
13235         to canonicalize arithmetic that didn't simpify.
13236         (simplify_plus_minus): New argument force; update
13237         all callers.  Don't split CONST unless we can do something with it,
13238         and wouldn't lose the constness of the operands.
13239
13240         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
13241         that we generated earlier.
13242
13243 2002-02-21  Tom Tromey  <tromey@redhat.com>
13244
13245         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13246         (output_line_info): Use constant `1', with a long explanatory
13247         comment.
13248         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
13249
13250 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
13251
13252         * jump.c (redirect_jump): If old label has no UID, don't try to
13253         delete it.
13254
13255 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
13256
13257         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
13258         If input is constant, do shifts at compile time.
13259
13260 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
13261
13262         * doc/extend.texi: Fix some more overfull hboxes.
13263
13264 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
13265
13266         PR optimization/4994
13267         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
13268         register moves.
13269
13270 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
13271
13272         PR c++/4574
13273         * expr.h (expand_and): Add mode argument.
13274         * expmed.c (expand_and): Add mode argument.
13275         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
13276         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
13277         * except.c (expand_builtin_extract_return_addr): Likewise.
13278         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
13279         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
13280         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
13281         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
13282         * config/c4x/c4x.md: Use GEN_INT (x) instead of
13283         gen_rtx (CONST_INT, VOIDmode, x).
13284
13285 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
13286
13287         PR c/4697:
13288         * stmt.c (warn_if_unused_value): Move side effects test once more.
13289
13290 2002-02-20  Torbjorn Granlund  <tege@swox.com>
13291
13292         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
13293         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
13294
13295 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
13296
13297         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
13298         SUBREG or ZERO_EXTEND.
13299
13300 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
13301
13302         * sh.h (current_function_anonymous_args): Remove.
13303         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
13304         of current_function_varargs and current_function_stdarg is set.
13305         * sh.c (sh_expand_prologue): Check current_function_varargs /
13306         current_function_stdarg / TARGET_SH5 instead of
13307         current_function_anonymous_args.
13308
13309         * sh64.h (TARGET_VERSION): Define.
13310
13311 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
13312
13313         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
13314         VRSAVE_REGNO on TARGET_ALTIVEC.
13315
13316 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
13317
13318         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
13319         bits of SImode const_int.
13320         (includes_rshift_p): Likewise.
13321         (print_operand): Call mask_operand and mask64_operand with correct
13322         mode.
13323         (rs6000_output_function_epilogue): Pad traceback table to word.
13324         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
13325         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
13326         mask64_operand with correct mode.
13327         (FUNCTION_ARG_REGNO_P): Correct parentheses.
13328
13329 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
13330
13331         PR debug/4461
13332         * varasm.c (get_pool_constant_mark): New.
13333         * rtl.h (get_pool_constant_mark): Add prototype.
13334         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
13335         be represented if it has not been output.
13336
13337 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
13338
13339         * combine.c (do_SUBST): Sanity check substitutions of
13340         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
13341         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
13342         CONST_INT into its operand.
13343         (known_cond): Likewise, for ZERO_EXTEND.
13344         * simplify-rtx.c (simplify_unary_operation): Fix condition to
13345         allow for simplification of wide modes.  Reject CONST_INTs in
13346         ZERO_EXTEND when their actual mode is not given.
13347
13348 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
13349
13350         * c-decl.c (pushdecl): If no global declaration is found for an
13351         extern declaration in block scope, try a limbo one.
13352
13353 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
13354
13355         PR c++/4401
13356         * c-common.c (pointer_int_sum): Moved from...
13357         * c-typeck.c (pointer_int_sum): ...here.
13358         * c-common.h (pointer_int_sum): Add prototype.
13359
13360 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
13361
13362         PR c++/5713
13363         * c-decl.c (duplicate_decls): Return 0 if issued error about
13364         redeclaration.
13365
13366 2002-02-20  Roger Sayle  <roger@eyesopen.com>
13367             Jakub Jelinek  <jakub@redhat.com>
13368
13369         PR c/4389
13370         * tree.c (host_integerp): Ensure that the constant integer is
13371         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
13372         when pos is zero or non-zero respectively.  Clarify comment.
13373         * c-format.c (check_format_info_recurse): Fix host_integerp
13374         usage; the pos argument should be zero when assigning to a
13375         signed HOST_WIDE_INT.
13376
13377 2002-02-20  Richard Henderson  <rth@redhat.com>
13378
13379         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
13380         of the operand, rather than assuming TImode.
13381         (ix86_expand_binop_builtin): Cope with commutative patterns
13382         using nonimmediate_operand for both operands.
13383         (ix86_expand_timode_binop_builtin): Likewise.
13384         (ix86_expand_store_builtin): Validate operand 1.
13385         (ix86_expand_unop1_builtin): Likewise.
13386
13387 2002-02-20  Philip Blundell  <philb@gnu.org>
13388
13389         PR 5705
13390         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
13391
13392 2002-02-20  Richard Henderson  <rth@redhat.com>
13393
13394         PR c/5615
13395         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
13396
13397 2002-02-20  Tom Tromey  <tromey@redhat.com>
13398
13399         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13400         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13401         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13402         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13403         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
13404         unconditionally.
13405
13406 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
13407
13408         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
13409           for (const_int 0) in X not just INTVAL.
13410
13411 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
13412
13413         * doc/extend.texi: Avoid or reduce overfull hboxes.
13414
13415 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
13416
13417         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
13418         operations if the field does not start at a mode boundary.
13419
13420 2001-02-20      Joel Sherrill <joel@OARcorp.com>
13421
13422         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
13423         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
13424         Also done for -Acpu and -Amachine.
13425
13426 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
13427
13428         * cppinit.c (init_dependency_output): Take deps output file
13429         from -o if none given with -MF.  Suppress normal output.
13430         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
13431         * doc/cpp.texi, doc/invoke.texi: Update.
13432
13433 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
13434
13435         * toplev.c (output_quoted_string): Write unprintable
13436         characters with octal escapes.
13437
13438 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
13439
13440         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
13441         really_call_used[VRSAVE_REGNO] if not Altivec.
13442
13443 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
13444
13445         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
13446         MODE_MASK.
13447         (constant_pool_expr_1): Fix formatting.
13448         (rs6000_legitimize_reload_address): Likewise.
13449
13450 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13451
13452         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
13453         now that we have one.
13454
13455 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
13456
13457         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
13458         end of first block of bitfields (which was only seven bits);
13459         rename dummy to unused_1; remove comment which is no longer true.
13460
13461 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
13462
13463         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
13464
13465 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
13466
13467         PR 5399
13468         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
13469         if generating PIC.
13470
13471         PR 5054
13472         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
13473         arm_is_longcall_p rather than inspecting call-type cookie
13474         directly.
13475         (call_value_insn) [TARGET_THUMB]: Likewise.
13476
13477 2002-02-19  Graham Stott  <grahams@redhat.com>
13478
13479         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
13480
13481 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
13482
13483         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
13484         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
13485         (FP_SAVE_INLINE): Delete.
13486
13487         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
13488         * config/rs6000/eabi.asm: Remove ABI save restore routines.
13489         * config/rs6000/t-ppccomm: Build crtsavres.o.
13490         * config/rs6000/crtsavres.asm: New file.
13491
13492 2002-02-19  Philip Blundell  <philb@gnu.org>
13493
13494         * config/arm/arm.c (use_return_insn): Don't reject interrupt
13495         functions.
13496         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
13497         (output_return_instruction): Allow interrupt functions to return with
13498         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
13499         (arm_expand_prologue): Subtract 4 before stacking LR in an
13500         interrupt function.
13501
13502 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
13503
13504         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
13505         decl, not just FUNCTION_DECL.
13506         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
13507         (arm_assemble_integer): Likewise.
13508         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
13509         marked local.
13510
13511 2002-02-19  matthew green  <mrg@eterna.com.au>
13512
13513         * config.gcc (sparc-*-netbsdelf*): Enable target.
13514         (sparc64-*-netbsd*): New target.
13515         * config/sparc/netbsd-elf.h: New file.
13516         * config/sparc/t-netbsd64: New file.
13517
13518 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
13519
13520         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
13521
13522 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
13523
13524         * doc/invoke.texi: explicitly list the style guidelines that
13525         -Weffc++ checks for.
13526
13527 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
13528
13529         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
13530
13531 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
13532
13533         PR other/5718
13534         * gcc.c (cpp_unique_options): Treat -o as indicating object file
13535         only if not -E.  If -E, pass -o through to the preprocessor.
13536
13537 2002-02-19  Kazu Hirata  <kazu@hxi.com>
13538
13539         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
13540         register number with an appropriate macro.
13541
13542 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
13543
13544         * doc/rtl.texi (Constants): Close @code tag.
13545
13546 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
13547
13548         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
13549         ("mmx_uavgv4hi3"): Same.
13550         ("pmulhrwv4hi3"): Same.
13551
13552         * tree-inline.c (walk_tree): Handle vectors.
13553
13554         * c-common.c (constant_expression_warning): Handle vectors.
13555         (overflow_warning): Same.
13556
13557         * sched-deps.c (sched_analyze_2): Handle vectors.
13558
13559         * rtlanal.c (rtx_unstable_p): Handle vectors.
13560         (rtx_varies_p): Same.
13561         (count_occurrences): Same.
13562         (regs_set_between_p): Same.
13563         (modified_between_p): Same.
13564         (modified_in_p): Same.
13565         (volatile_insn_p): Same.
13566         (volatile_refs_p): Same.
13567         (side_effects_p): Same.
13568         (may_trap_p): Same.
13569         (inequality_comparisons_p): Same.
13570         (replace_regs): Same.
13571         (computed_jump_p_1): Same.
13572
13573         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
13574         argument.
13575         (inner_mode_array): New.
13576         (copy_rtx): Handle vectors.
13577         (copy_most_rtx): Same.
13578         (rtx_equal_p): Same.
13579         (get_mode_alignment): Adjust for vectors.
13580
13581         * resource.c (mark_referenced_resources): Handle vectors.
13582         (mark_set_resources): Same.
13583
13584         * reload1.c (eliminate_regs): Handle vectors.
13585         (elimination_effects): Same.
13586         (scan_paradoxical_subregs): Same.
13587
13588         * reload.c (subst_reg_equivs): Handle vectors.
13589
13590         * regrename.c (scan_rtx): Handle vectors.
13591
13592         * regclass.c (reg_scan_mark_refs): Handle vectors.
13593
13594         * recog.c (find_single_use_1): Handle vectors.
13595
13596         * local-alloc.c (equiv_init_varies_p): Handle vectors.
13597         (contains_replace_regs): Same.
13598         (memref_referenced_p): Same.
13599
13600         * integrate.c (copy_rtx_and_substitute): Handle vectors.
13601         (subst_constants): Same.
13602
13603         * genattrtab.c (attr_copy_rtx): Handle vectors.
13604         (encode_units_mask): Same.
13605         (clear_struct_flag): Same.
13606         (count_sub_rtxs): Same.
13607
13608         * gcse.c (want_to_gcse_p): Handle vectors.
13609         (oprs_unchanged_p): Same.
13610         (hash_expr_1): Same.
13611         (oprs_not_set_p): Same.
13612         (expr_killed_p): Same.
13613         (compute_transp): Same.
13614         (store_ops_ok): Same.
13615
13616         * function.c (purge_addressof_1): Do not allow paradoxical subregs
13617         of vectors.
13618         (fixup_var_refs_1): Same.
13619         (instantiate_virtual_regs_1): Same.
13620
13621         * fold-const.c (operand_equal_p): Handle vectors.
13622         (fold): Same.
13623         (rtl_expr_nonnegative_p): Same.
13624
13625         * flow.c (mark_used_regs): Handle vectors.
13626
13627         * df.c (df_uses_record): Handle vectors.
13628
13629         * cselib.c (cselib_subst_to_values): Handle vectors.
13630         (cselib_mem_conflict_p): Same.
13631         (hash_rtx): Same.
13632
13633         * cse.c (canon_reg): Handle vectors.
13634         (fold_rt): Same.
13635         (cse_process_notes): Same.
13636         (count_reg_usage): Same.
13637         (canon_hash): Same.
13638
13639         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
13640
13641         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
13642
13643         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
13644         (gen_rtx): Handle CONST_VECTOR.
13645         (gen_const_vector_0): New.
13646         (copy_rtx_if_shared): CONST_VECTORs can be shared.
13647         (reset_used_flags): Same.
13648         (copy_insn_1): Same.
13649         (initializer_constant_valid_p): Handle VECTOR_CST.
13650
13651         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
13652
13653         * doc/rtl.texi (Constants): Document const_vector.
13654         (CONST0_RTX): Update for vectors.
13655         (RTL sharing): Same.
13656
13657         * print-tree.c (print_node): Add case for VECTOR_CST.
13658
13659         * tree.h (TREE_VECTOR_CST_ELTS): New.
13660         (struct tree_vector): New.
13661         (union tree_node): Add vector node.
13662         (build_vector): Add prototype.
13663
13664         * tree.def (VECTOR_CST): New.
13665
13666         * tree.c (build_vector): New.
13667
13668         * expmed.c (make_tree): Handle CONST_VECTOR.
13669
13670         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
13671         (CONST_VECTOR_ELT): New.
13672         (CONST_VECTOR_NUNITS): New.
13673
13674         * machmode.h (GET_MODE_INNER): New.
13675         (DEF_MACHMODE): Accept 8th arg.
13676
13677         * machmode.def: Add 8th argument for vector inner mode.
13678         Add inner vector modes for vectors.
13679
13680         * rtl.def (VEC_CONST): Remove.
13681         (CONST_VECTOR): New.
13682
13683         * expr.c (clear_storage): Allow vectors.
13684         (is_zeros_p): Handle VECTOR_CST.
13685
13686         * varasm.c (output_constant_pool): Handle vectors.
13687         (rtx_const): Add veclo and vechi fields.
13688         (kind): Add RTX_VECTOR.
13689         (decode_rtx_const): Add case for vector.
13690
13691         * config/rs6000/rs6000-protos.h: Add zero_constant.
13692
13693         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
13694         constants.  Force easy vector constants into memory.
13695         (easy_vector_constant): New.
13696         (emit_easy_vector_constant): New.
13697         (rs6000_legitimize_reload_address): Do not generate bad reloads on
13698         darwin.
13699
13700         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
13701         instruction does.
13702         ("altivec_lvxl"): Same.
13703         (altivec_lvebx): Same.
13704         (altivec_lvehx): Same.
13705         (altivec_lvewx): Same.
13706         ("*movv4si_const0"): New.
13707         ("*movv4sf_const0"): New.
13708         ("*movv8hi_const0"): New.
13709         ("*movv16qi_const0"): New.
13710
13711 2002-02-18  Kazu Hirata  <kazu@hxi.com>
13712
13713         * config/h8300/h8300.c (notice_update_cc): Use
13714         cc_status.value2.
13715
13716 2002-02-18  Kazu Hirata  <kazu@hxi.com>
13717
13718         * config/h8300/h8300.md (divmod patterns): Change the
13719         constraints for operands[1] to register_operand.
13720
13721 2002-02-18  Kazu Hirata  <kazu@hxi.com>
13722
13723         * config/h8300/h8300-protos.h: Remove the prototype for
13724         p_operand.
13725         * config/h8300/h8300.c (p_operand): Remove.
13726         * config/h8300/h8300.md: Replace p_operand with
13727         const_int_operand.
13728
13729 2002-02-18 Philip Blundell <pb@nexus.co.uk>
13730
13731         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
13732         comment.
13733         (output_return_instruction): Allow use of LDR to unstack
13734         return addresss even for interrupt handlers or when
13735         interworking.  If compiling for ARMv5, use interworking-safe
13736         return instructions by default.  Remove duplicated code and
13737         lengthy "strcat" sequences.
13738
13739 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13740
13741         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
13742         (LINK_EH_SPEC): Define.
13743         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
13744
13745 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
13746
13747         * config/s390/s390.c (s390_emit_prologue): Do not set the
13748         frame_related flag for call-clobbered registers.
13749
13750 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
13751
13752         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
13753         (construct_container): Fix handling of SSE operands.
13754         (ix86_expand_builtin): Fix handling of 64bit pointers.
13755         (mmx_maskmovq_rex): New pattern.
13756
13757 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
13758
13759         * regrename.c (kill_set_value): Handle subregs properly.
13760
13761 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
13762
13763         * objc/objc-act.c (handle_impent): Remove leading '*'
13764         from objc_class_name.
13765
13766 2002-02-17  Richard Henderson  <rth@redhat.com>
13767
13768         * config/alpha/alpha.c (some_small_symbolic_operand,
13769         some_small_symbolic_operand_1, split_small_symbolic_operand,
13770         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
13771         Handle small SYMBOL_REFs anywhere, not just inside memories.
13772         * config/alpha/alpha-protos.h: Update.
13773         * config/alpha/alpha.h (PREDICATE_CODES): Update.
13774         * config/alpha/alpha.md (small symbolic operand splitter): Update.
13775
13776 2002-02-17  Roland McGrath  <roland@frob.com>
13777
13778         * config.gcc (powerpc-*-gnu-gnualtivec*,
13779         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
13780         * config/rs6000/gnu.h: New file.
13781         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
13782         Grok "gnu" in rs6000_abi_name.
13783         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
13784         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
13785         Grok -mcall-gnu analogous to -mcall-linux et al.
13786         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
13787         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
13788         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
13789
13790 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
13791
13792         PR c/3444:
13793         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
13794         shortening.
13795
13796 2002-02-17  Philipp Thomas  <pthomas@suse.de>
13797
13798         * config/cris/cris.h: Undefine STARTFILE_SPEC and
13799         ENDFILE_SPEC before (re)defining them.
13800
13801 2002-02-17  Kazu Hirata  <kazu@hxi.com>
13802
13803         * config/h8300/h8300.c: Fix formatting.
13804         * config/h8300/h8300.h: Likewise.
13805
13806 2002-02-17  Philipp Thomas  <pthomas@suse.de>
13807
13808         * doc/tm.texi: Explain why empty strings should not be
13809         marked for translation.
13810
13811 2002-02-17  Philipp Thomas  <pthomas@suse.de>
13812
13813         * final.c (output_operand_lossage): Changed to accept
13814         printf style arguments. Change calls where necessary.
13815         * output.h (output_operand_lossage): Change declaration
13816         accordingly. Update copyright.
13817         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
13818         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
13819         Update copyright date where necessary.
13820
13821         * config/i386/i386.c (print_operand): Likewise. Remove use of
13822         sprintf.
13823
13824         * config/cris/cris.c (cris_operand_lossage): Likewise.
13825         Rename parameter so that exgettext recognizes it as
13826         translatable message.
13827         (LOSE_AND_RETURN): Rename parameter to msgid.
13828
13829 2002-02-17  Kazu Hirata  <kazu@hxi.com>
13830
13831         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
13832         hard coded register number with an appropriate macro.
13833         (HARD_REGNO_MODE_OK): Likewise.
13834         (ARG_POINTER_REGNUM): Likewise.
13835         (STATIC_CHAIN_REGNUM): Likewise.
13836         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
13837         * config/h8300/h8300.md (define_constants): Define more
13838         register numbers.
13839
13840 2002-02-17  Philipp Thomas  <pthomas@suse.de>
13841
13842         * config/i386/i386.h: Don't mark empty strings for translation.
13843
13844 2002-02-16  H.J. Lu <hjl@gnu.org>
13845
13846         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
13847
13848 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
13849
13850         * cppinit.c (merge_include_chains): Check for brack being
13851         NULL before attempting to merge it with qtail.
13852
13853 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
13854
13855         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
13856         DBX_DEBUG.
13857
13858 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13859
13860         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
13861
13862 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13863
13864         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
13865         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
13866         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
13867
13868 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13869
13870         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
13871         now only if !TARGET_FIX.
13872         (*movsi_nt_vms_fix): New pattern.
13873
13874 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
13875
13876         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
13877         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
13878         (alpha_sa_mask, alpha_sa_size): Reflect above change.
13879         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
13880         (alpha_start_function, alpha_expand_epilogue): Likewise.
13881         (unicosmk_gen_dsib): Likewise.
13882
13883 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13884
13885         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
13886
13887 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
13888
13889         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
13890         check_and_change_labels, s390_final_chunkify): Delete.
13891         (s390_split_branches, s390_chunkify_pool): New functions.
13892         (s390_function_prologue): Call them.
13893
13894         * config/s390/s390.h (S390_REL_MAX): Delete.
13895         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
13896
13897         * config/s390/s390.md (cjump, icjump, jump): Fix length
13898         attribute calculation.
13899
13900
13901 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
13902
13903         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
13904         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
13905
13906 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13907
13908         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
13909         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
13910         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
13911
13912 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
13913
13914         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
13915
13916 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
13917
13918         * reload.c (find_dummy_reload): Check that an output register
13919         is valid for its mode.
13920
13921 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
13922
13923         * combine.c (known_cond): After replacing the REG of a SUBREG, try
13924         to simplify it.
13925
13926         * function.c (assign_parms): Demote promoted argument passed by
13927         transparent reference.
13928
13929 2001-02-14      Joel Sherrill <joel@OARcorp.com>
13930
13931         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
13932         -Acpu() and -Amachine() to eliminate warnings.
13933
13934 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
13935
13936         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
13937
13938 2002-02-14  Kazu Hirata  <kazu@hxi.com>
13939
13940         * config/h8300/h8300-protos.h: Update the prototype for
13941         const_costs.
13942         * config/h8300/h8300.c (const_costs): Treat SET as a little
13943         more expensive operation.
13944         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
13945         reference to const_costs.
13946
13947 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
13948
13949         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
13950
13951 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
13952
13953         PR c/5503:
13954         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
13955         use arguments from newtype.
13956
13957 2002-02-13  Eric Christopher  <echristo@redhat.com>
13958
13959         * config/mips/mips.c (override_options): Add check for march/mipsX
13960         on the same command line. Fix error message in cpu processing.
13961         Remove architecture and ISA checks.
13962
13963 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
13964
13965         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
13966
13967         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
13968
13969 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
13970
13971         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
13972         alternatives.
13973         ("*movv8hi_internal1"): Same.
13974         ("*movv16qi_internal1"): Same.
13975         ("*movv4sf_internal1"): Same.
13976
13977         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
13978         not push_reload for altivec modes.
13979
13980 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
13981
13982         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
13983         all RTEMS targets including removal of #includes from config/*/rtems*.h
13984         file and adding them to tm_file setting. Added xm_defines=POSIX to
13985         many targets.
13986         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
13987         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
13988         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
13989         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
13990         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
13991         config/m68k/rtemself.h: Ditto.
13992         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
13993         config/mips/rtems64.h: Ditto.
13994         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
13995         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
13996         Ditto.
13997         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
13998         config/sparc/rtemself.h: Ditto.
13999         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
14000         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
14001         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
14002         more like arm-elf.
14003         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
14004         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
14005         target made more similar to i386-elf.
14006         * config/i386/t-rtems-i386: Added soft float support and multilibs.
14007         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
14008         be similar to config/m68k/t-m68kelf.
14009         * gthr-rtems.h: Encapsulate with extern "C" for C++.
14010
14011 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
14012
14013         * regmove.c (kill_value): Handle subregs.
14014
14015 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
14016
14017         * i386.md (mul patterns): Allow memory operand to be first;
14018         add expanders where needed; fix constraints.
14019         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
14020         Allow memory operand to be the first.
14021
14022         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
14023         operands.
14024
14025 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
14026
14027         PR c/5681:
14028         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
14029         GET_MODE (x).
14030
14031 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
14032
14033         PR optimization/5547:
14034         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
14035         all valid IA-32 address modes involving non-scaled %ebx and
14036         GOT/GOTOFF as displacement.
14037
14038 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
14039
14040         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
14041         after emitting ltorg insns.
14042
14043         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
14044         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
14045         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
14046         *abssf2): Fix "op_type" attribute.
14047
14048 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
14049
14050         * mkconfig.sh: Avoid using a subshell redirect.
14051         ($output.T): Change to $(output)T.
14052         (ENABLE_NLS): Remove unneeded undef.
14053
14054         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
14055         * config/alpha/x-vms (libsubdir): Define.
14056
14057         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
14058         register frame procedures. Optimize retrieving context.
14059
14060         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
14061         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
14062         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
14063
14064 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14065
14066         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
14067         Make same change as for find_base_value.
14068
14069 2002-02-13  Kazu Hirata  <kazu@hxi.com>
14070
14071         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
14072         of QImode and SImode.
14073
14074 2002-02-13  Kazu Hirata  <kazu@hxi.com>
14075
14076         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
14077         length computation of movsi.
14078         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
14079
14080 2002-02-13  Kazu Hirata  <kazu@hxi.com>
14081
14082         * config/h8300/h8300.md (subqi3): Tighten the predicate for
14083         operands[2] to register_operand.
14084
14085 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
14086
14087         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
14088
14089 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
14090
14091         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
14092         for altivec_lvx* and altivec_stvx*.
14093         ("*movv4si_internal"): Add constraint for loading from GPRs.
14094         ("*movv8hi_internal1"): Same.
14095         ("*movv16qi_internal1"): Same.
14096         ("*movv4sf_internal1"): Same.
14097
14098         * config/rs6000/rs6000.c (altivec_register_operand): New.
14099
14100         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
14101         altivec_register_operand.
14102
14103 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
14104
14105         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
14106         handle SYMBOL_REF.
14107
14108 2002-02-13  Stan Shebs  <shebs@apple.com>
14109
14110         * c-typeck.c (digest_init): Handle vectors.
14111         (really_start_incremental_init): Same.
14112         (pop_init_level): Same.
14113         (process_init_element): Same.
14114
14115         * varasm.c (output_constant): Same.
14116
14117         * expr.c (clear_storage): Same.
14118         (store_constructor): Same.
14119
14120 2002-02-12  Eric Christopher  <echristo@redhat.com>
14121
14122         * explow.c (hard_function_value): Add comment explaining
14123         signed/unsigned comparison.
14124
14125 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
14126
14127         * jump.c (never_reached_warning): Add finish argument.
14128         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
14129         real insn after end.
14130         * rtl.h (never_reached_warning): Adjust prototype.
14131         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
14132         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
14133         never_reached_warning.
14134
14135 2002-02-12  Graham Stott  <grahams@redhat.com>
14136
14137         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
14138
14139 2002-02-12  Kazu Hirata  <kazu@hxi.com>
14140
14141         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
14142         logical shifts on H8/300.
14143         (shift_alg_si): Improve several shifts on H8/300.
14144         (get_shift_alg): Likewise.
14145
14146 2002-02-12  Graham Stott  <grahams@redhat.com>
14147
14148         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
14149
14150 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14151
14152         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
14153         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
14154
14155 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
14156
14157         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
14158         non-CONST_INT through default_assemble_integer.
14159         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
14160         <case 8>: Abort for CONST_DOUBLE.
14161
14162 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14163
14164         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
14165         is specified.
14166         * config/pa/pa-linux.h (LIB_SPEC): Delete.
14167         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
14168
14169 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
14170
14171         * config/stormy16/stormy16.md (zero_extendqihi2): New.
14172
14173 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
14174
14175         * regrename.c (regrename_optimize): Don't accept a
14176         part-clobbered register if the replaced register is not part
14177         clobbered.
14178
14179         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
14180         take padding into account when computing the argument value.
14181
14182         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
14183
14184         * combine.c (try_combine): Apply substitutions in
14185         CALL_INSN_FUNCTION_USAGE too.
14186
14187 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
14188
14189         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
14190         __builtin_altivec_abs*.
14191         (bdesc_abs): New.
14192
14193         * config/rs6000/rs6000.h (rs6000_builtins): Add
14194         ALTIVEC_BUILTIN_ABS*.
14195
14196         * config/rs6000/altivec.h: Use const char for builtins expecting
14197         literals.
14198         (vec_abs): New versions for C and C++.
14199         (vec_abss): Same.
14200
14201 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14202
14203         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
14204         using Pmode.
14205
14206 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14207
14208         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
14209         constant definition from h8300.md.
14210         (FRAME_POINTER_REGNUM): Likewise.
14211         * config/h8300/h8300.md (define_constants): Add FP_REG.
14212
14213 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14214
14215         * config/h8300/h8300.c (print_operand): Remove redundant code.
14216
14217 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14218
14219         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
14220         * config/h8300/h8300.c (byte_reg): Make it static.
14221
14222 2002-02-10  Richard Henderson  <rth@redhat.com>
14223
14224         PR c/5623
14225         * c-typeck.c (incomplete_type_error): Handle flexible array members.
14226
14227 2002-02-10  Richard Henderson  <rth@redhat.com>
14228
14229         PR c++/5624
14230         * tree.c (append_random_chars): Don't abort if main_input_filename
14231         does not exist.
14232
14233 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
14234
14235         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
14236
14237 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14238
14239         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
14240         (pushhi1): Likewise.
14241
14242 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14243
14244         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
14245         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
14246
14247 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
14248
14249         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
14250         remove MASK_VIS.
14251         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
14252
14253 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14254
14255         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
14256         a half of an SImode register on H8/300.
14257
14258 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
14259
14260         * i386.md (movdi_2): Add missing '!'.
14261
14262 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14263
14264         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
14265         definitions.
14266
14267 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14268
14269         * config/h8300/h8300.md (length): Correct the distance valid
14270         for the short branch.
14271
14272 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14273
14274         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
14275
14276 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
14277
14278         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
14279         registers in SImode.
14280         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
14281         part-clobbered.
14282
14283         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
14284         patch.
14285
14286         Contribute sh64-elf.
14287         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
14288         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
14289         (sh_cannot_modify_jumps_p): New function.
14290         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
14291         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
14292         (sh_ms_bitfield_layout_p): New function.
14293         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
14294                     Zack Weinberg  <zack@codesourcery.com>
14295         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
14296         expand_simple_binop instead of expand_binop.
14297         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
14298         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
14299         use of .quad and .uaquad.
14300         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
14301         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
14302         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14303         * config/sh/sh.md (movdi_const, movdi_const_32bit,
14304         movdi_const_16bit): Make sure all CONSTs have modes.
14305         (sym2PIC): Ditto, but by adjusting all callers.
14306         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
14307         if the prologue calls the SHmedia argument decoder or register
14308         saver.
14309         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14310         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
14311         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
14312         (sh_expand_epilogue): Don't emit USE of return target register.
14313         (prepare_move_operands): Legitimize DImode PIC addresses.
14314         (sh_media_register_for_return): Skip tr0, used to initialize the
14315         PIC register.
14316         (sh_expand_prologue): Remove explicit USE of return register.
14317         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
14318         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
14319         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
14320         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
14321         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
14322         EXTRA_CONSTRAINT_T.
14323         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
14324         (MOVI_SHORI_BASE_OPERAND_P): New.
14325         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
14326         (EXTRA_CONSTRAINT_T): Define in terms of them.
14327         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
14328         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
14329         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
14330         alternatives supporting TARGET_REGS.
14331         (UNSPEC_GOTPLT): New constant.
14332         (movdi split): Move incrementing of LABEL_NUSES...
14333         (movdi_const, movdi_const_32bit): Here.  Use
14334         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
14335         (movdi_const_16bit): New.
14336         (call, call_value) [flag_pic]: Use GOTPLT.
14337         (call_pop, call_value_pop): New expands.
14338         (call_pop_compact, call_pop_rettramp): New insns.
14339         (call_value_pop_compact, call_value_pop_rettramp): New insns.
14340         (sibcall) [flag_pic]: Use GOT.
14341         (builtint_setjmp_receiver): Remove bogus, unused expand.
14342         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
14343         (*pt, *ptb, ptrel): New insns.
14344         (sym2GOT): Handle DImode GOT.
14345         (sym2GOTPLT, symGOTPLT2reg): New expands.
14346         (sym2PIC): New expand.
14347         (shcompact_return_tramp): Use GOTPLT to return trampoline.
14348         (shcompact_return_tramp_i): Use return register explicitly.
14349         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
14350         disable flag_reorder_blocks.
14351         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
14352         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
14353         clobbers, for clarity.
14354         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
14355         restoring of r0 in macl as MAYBE_DEAD.
14356         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
14357         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
14358         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
14359         alter_subreg all over.
14360         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
14361         reload, instead of emitting instructions that would require
14362         reloading.
14363         (casesi_load_media): Add missing modes.
14364         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
14365         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
14366         as used if the argument decoder is called.
14367         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
14368         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
14369         Pmode, then extend it to DImode if necessary.
14370         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
14371         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
14372         constants in FPU-enabled SHmedia, let them be loaded from memory.
14373         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
14374         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
14375         Adjust whitespace in assembly output templates.
14376         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
14377         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
14378         mode of if_then_else.
14379         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
14380         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
14381         sh.h.
14382         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
14383                     Joern Rennecke <amylaar@redhat.com>
14384         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
14385         (SUBTARGET_CPP_PTR_SPEC): New.
14386         (SUBTARGET_CPP_SPEC): Remove.
14387         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
14388         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
14389         Fix typo in previous checkin.
14390         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
14391         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
14392         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
14393                     Alexandre Oliva  <aoliva@redhat.com>
14394         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
14395         what single FP register can hold for SHmedia target.
14396         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
14397                     Alexandre Oliva  <aoliva@redhat.com>
14398         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
14399         Do not split into SUBREG.
14400         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
14401         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
14402         and added new functions as specified in SH5 ABI r9.
14403         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
14404         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
14405         8-byte boundary.
14406         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
14407         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
14408         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
14409         and consttable_window_ends.
14410         2001-06-03  Graham Stott  <grahams@redhat,com>
14411         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
14412         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
14413         * config/sh/sh.c (print_operand): Handle floating-point pair,
14414         vector and matrix registers.
14415         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
14416         vector modes into account.
14417         * config/sh/sh.md (movv2sf): Split move between registers into
14418         movdf.
14419         (movv4sf, movv16sf): Introduce insns that get split only after
14420         reload.
14421         * config/sh/shmedia.h: Fix Copyright dates.
14422         * config/sh/ushmedia.h: Likewise.  Move loop counter
14423         declarations into conditionals that uses them.
14424         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
14425         loop boundary.
14426         * config/sh/sshmedia.h: Fix Copyright dates.
14427         (sh_media_PUTCFG): Fix constraints.
14428         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
14429         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
14430         ptrmemfunc_vbit_in_delta for SH5.
14431         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
14432         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
14433         * invoke.texi: Likewise.
14434         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
14435         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
14436         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
14437         GCC_pop_shmedia_regs_nofpu): New global symbols.
14438         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
14439         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
14440         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
14441         compact function with nonlocal labels.
14442         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
14443         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
14444         (initial_elimination_offset): Account for their stack space.
14445         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
14446         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
14447         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
14448         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
14449         least one of the operands to be a register.
14450         (movv2sf): Likewise.  Renamed to movv2sf_i.
14451         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
14452         prepare_move_operands() before emitting SHmedia insns.
14453         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
14454         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
14455         Don't save nor initialize r12.  Don't mis-align the stack.
14456         Pad the code with a nop.
14457         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
14458         stack.
14459         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
14460         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
14461         [__SHMEDIA__]: Implement.
14462         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
14463         * config/sh/sh.md: Set latency of `pt' closer to reality.
14464         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
14465         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
14466         Set move, load and store type attributes.
14467         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
14468         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
14469         profiling.
14470         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
14471         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
14472         * config/sh/sh.c (sh_media_register_for_return): New function.
14473         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
14474         branch-target register.
14475         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
14476         * config/sh/sh.md (return_media_i): Use any call-clobbered
14477         branch-target register.
14478         (return_media): If r18 wasn't copied in the prologue, copy it
14479         here.
14480         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
14481         Clear class FP0_REGS.
14482         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
14483         from elf.h.
14484         2001-03-08  DJ Delorie  <dj@redhat.com>
14485         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
14486         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
14487         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
14488         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
14489         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
14490         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
14491         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
14492         return value correctly for call_cookie.
14493         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
14494         * config/sh/crt1.asm (start): Modified so as to call
14495         ___setup_argv_and_call_main.
14496         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
14497         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
14498         SHmedia mode.
14499         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
14500         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
14501         (STRIP_NAME_ENCODING): Use it.
14502         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
14503         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
14504         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
14505         prepare_scc_operands().
14506         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
14507         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
14508         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
14509         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
14510         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
14511         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
14512         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
14513         used in shcompact_incoming_args.
14514         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
14515         change.
14516         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
14517         mode.
14518         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
14519         Adjust accordingly.
14520         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
14521         Simplify.  Adjust.  Add sanity check.
14522         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
14523         FPU_SINGLE_BIT.
14524         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
14525         TARGET_SHCOMPACT.
14526         (udivsi3, divsi3): Use them.
14527         (force_mode_for_call): New insn.
14528         (call, call_value, sibcall_value): Emit it before SHcompact
14529         calls.
14530         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
14531         * config/sh/sh.md (call, call_value, sibcall): Make sure the
14532         call cookie is non-NULL before taking its value.
14533         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
14534         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
14535         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
14536         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
14537         block.
14538         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
14539         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
14540         temporary for stack adjusts.  Use MACL and MACH to pass
14541         arguments to shcompact_incoming_args.
14542         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
14543         clobber r1.
14544         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
14545         (nested_trampoline): Load static chain address into r1.
14546         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
14547         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
14548         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
14549         fp_arith_reg_operand().
14550         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
14551         * config/sh/sh.md (casesi): Sign-extend the first two operands,
14552         and use signed compares for them.
14553         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
14554         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
14555         ones properly aligned.
14556         (find_barrier): Account for extra alignment needed for 8-byte wide
14557         constants.
14558         (machine_dependent_reorg): Require a label for the second 4-byte
14559         constant after an 8-byte one.
14560         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
14561         change.
14562         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
14563         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
14564         last_float when switching float modes.
14565         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
14566         auto-increment for general-purpose registers.
14567         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
14568         result.
14569         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
14570         for stack adjust.
14571         * config/sh/sh.c (sh_builtin_saveregs): Support using all
14572         registers for varargs.
14573         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
14574         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
14575         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
14576         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
14577         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
14578         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
14579         call_cookie accordingly.
14580         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
14581         (SHCOMPACT_BYREF): Likewise.
14582         (SHCOMPACT_FORCE_ON_STACK): New macro.
14583         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
14584         (sh_builtin_saveregs): Likewise.
14585         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
14586         shcompact_incoming_args): Use new shift values.  Support
14587         sequences of consecutive and non-consecutive pushes/pops.
14588         * config/sh/sh.md (return): Don't explicitly use PR_REG.
14589         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
14590         * config/sh/sh.h (TEXT_SECTION): Define.
14591         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
14592         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
14593         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
14594         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
14595         return values on FPU-enabled SHmedia.
14596         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
14597         FPU-enabled SHmedia.
14598         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
14599         value is returned in a non-FP reg and is not returned by
14600         reference.
14601         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
14602         jump_ind.
14603         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
14604         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
14605         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
14606         quad-aligned to be passed by callee-copy reference.
14607         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
14608         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
14609         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
14610         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
14611         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
14612         copying low-numbered FP regs to r7 and r8.
14613         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
14614         FP regs to general-purpose regs only if the copy was passed on the
14615         stack.
14616         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
14617         copying FP reg to r9.
14618         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
14619         copy FP regs to general-purpose regs only in outgoing calls.
14620         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
14621         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
14622         HOST_WIDE_INT.
14623         * config/sh/sh.h (struct sh_args): Document all fields.
14624         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
14625         passed partially on the stack should not consider making
14626         sibcalls.
14627         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
14628         stack_regs only for incoming calls.  When passing FP args,
14629         make sure there are FP regs available before modifying
14630         call_cookie.
14631         (SHCOMPACT_BYREF): Pass double args in general-purpose
14632         registers by reference.
14633         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
14634         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
14635         attempt to generate sibcalls if the caller got any arguments
14636         by reference.
14637         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
14638         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
14639         to 8-byte boundaries.
14640         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
14641         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
14642         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
14643         stored in the stack.
14644         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
14645         for the offsets to have the ISA bit set.
14646         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
14647         invocation.  Use beq instead of bgt to mark end of sequence of
14648         loads.
14649         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
14650         bgt to mark end of sequence of stores.
14651         * config/sh/sh.c (arith_operand): Don't check whether
14652         CONST_OK_FOR_J for now.
14653         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
14654         instead of long for conversion.
14655         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
14656         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
14657         before passing it to fprintf.
14658         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
14659         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
14660         Call set_fpscr before reading/writing SR.
14661         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
14662         Call set_fpscr.
14663         * config/sh/lib1funcs.asm: Add `.align 2' directives before
14664         SHmedia code.
14665         (FMOVD_WORKS): Define on SH5 with FPU.
14666         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
14667         setting.
14668         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
14669         _fpscr_values.
14670         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
14671         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
14672         address.
14673         (ia_main_table): Ditto.
14674         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
14675         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
14676         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
14677         the definitions from sh.h.
14678         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
14679         TARGET_SH5.
14680         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
14681         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
14682         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
14683         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
14684         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
14685         Increment LABEL_NUSES.
14686
14687         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
14688         TARGET_SH5.
14689         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
14690         defined.
14691         * config/sh/elf.h (SIZE_TYPE): Likewise.
14692         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
14693         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
14694         shcompact_incoming_args): Load switch table addresses using
14695         datalabel.
14696         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
14697         (NO_BUILTIN_SIZE_TYPE): Define.
14698         (SIZE_TYPE): Don't define.
14699         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
14700         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
14701         definition of __SH5__=32 for -m5-compact-nofpu.
14702         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
14703         ADDR_DIFF_VEC.
14704         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
14705         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
14706         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
14707         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
14708         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
14709         (INSN_LENGTH_ALIGNMENT): Likewise.
14710         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
14711         * config/sh/sh.md (call, call_value, sibcall): Simplify
14712         copying of non-branch-target register.
14713         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
14714         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
14715         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
14716         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
14717         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
14718         floating-point values as structs.
14719         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
14720         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
14721         general-purpose register.
14722         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
14723         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
14724         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
14725         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
14726         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
14727         (ENCODE_SECTION_INFO): Enclose variables and constants in
14728         DATALABEL unspecs.
14729         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
14730         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
14731         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
14732         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
14733         only for LABEL_REFs.  For SYMBOL_REFs, prepend
14734         SH_DATALABEL_ENCODING to the symbol name.
14735         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
14736         convert_mode().
14737         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
14738         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
14739         UNSPEC_DATALABEL.
14740         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
14741         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
14742         (DATALABEL_REF_P): Don't require CONST.
14743         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
14744         REL label.
14745         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
14746         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
14747         right.
14748         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
14749         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
14750         Use shallow_copy_rtx and PUT_MODE to change the mode of
14751         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
14752         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
14753         on SHmedia using GENERAL_REGs.
14754         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
14755         bltu_media_i): Fix reversion of conditions.
14756         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
14757         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
14758         * config/sh/sh.c (output_far_jump): Save r13 in macl.
14759         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
14760         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
14761         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
14762         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
14763         (GCC_nested_trampoline): Likewise.
14764         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
14765         * config/sh/sh.c (gen_datalabel_ref): Define.
14766         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
14767         (INITIALIZE_TRAMPOLINE): Likewise.
14768         (TRAMPOLINE_ADJUST_ADDRESS): Define.
14769         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
14770         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
14771         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
14772         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
14773         (ic_invalidate): Adjust for SH5.
14774         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
14775         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
14776         _nested_trampoline.
14777         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
14778         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
14779         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
14780         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
14781         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
14782         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
14783         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
14784         * config/sh/sh.c (target_reg_operand): Match only target-branch
14785         registers and pseudos that aren't virtual registers.
14786         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
14787         Copy operands that don't match target_reg_operand to pseudos.
14788         (call_media, call_value_media, sibcall_media): Use
14789         target_reg_operand instead of target_operand.
14790         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
14791         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
14792         * config/sh/sh.c (target_reg_operand): Match hardware registers
14793         other than branch-target registers.
14794         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
14795         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
14796         (fpscr_values) [SH5 == 32]: Define.
14797         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
14798         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
14799         Handle function addresses coming in SUBREGs.
14800         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
14801         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
14802         shcompact_return_trampoline): Use datalabel where appropriate.
14803         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
14804         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
14805         general-purpose register to copy one branch-target register to
14806         another.
14807         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
14808         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
14809         SYMBOL_REFs with VOIDmode.
14810         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
14811         bltu_media_i): New insns.
14812         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
14813         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
14814         (INIT_CUMULATIVE_ARGS): Likewise.
14815         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
14816         * machmode.def (V16SFmode): New mode.
14817         * c-common.c (type_for_mode): Support V2SF and V16SF.
14818         * tree.c (build_common_tree_nodes_2): Likewise.
14819         * tree.h (tree_index): Likewise.
14820         * calls.c (emit_call_1): Take args_so_far.  Adjust all
14821         callers.  Introduce CALL_POPS_ARGS.
14822         * tm.texi (CALL_POPS_ARGS): Document.
14823         * config/sh/crt1.asm: Implement in SHmedia mode.
14824         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
14825         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
14826         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
14827         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
14828         Implement divsi and udivsi in SHmedia mode.  Introduce
14829         SHcompact trampolines.
14830         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
14831         only in SHmedia64.
14832         (regno_reg_class): Rewrite.
14833         (fp_reg_names): Remove.
14834         (sh_register_names, sh_additional_register_names): New.
14835         (print_operand): Added `u'.  Support SUBREGs in addresses.
14836         Add parentheses around shifted CONSTs.
14837         (output_file_start): Output .mode and .abi directives.
14838         (shiftcosts, addsubcosts, multcosts): Adjust.
14839         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
14840         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
14841         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
14842         bytes, not registers.  Take into account the need for the
14843         SHcompact incoming args trampoline.  Adjust all callers.
14844         (sh_expand_prologue): Take stack_regs into account.  Call
14845         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
14846         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
14847         stack aligned as per SH5 ABI.
14848         (sh_builtin_saveregs): Support SH5 ABI.
14849         (sh_build_va_list, sh_va_start): Likewise.
14850         (initial_elimination_offset): Take alignment into account.
14851         Compute location of PR according to the SH5 stack frame.
14852         (arith_reg_operand): Reject branch-target registers.
14853         (shmedia_6bit_operand): New.
14854         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
14855         (target_reg_operand): Match DImode only.  Accept SUBREGs.
14856         (target_operand): New.
14857         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
14858         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
14859         SIBCALL_REGS for SHmedia.
14860         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
14861         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
14862         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
14863         (TARGET_SWITCHES): New SH5 flags.
14864         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
14865         VALID_REGISTER_P to disable unsupported registers.
14866         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
14867         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
14868         (FUNCTION_ARG_PADDING): Define.
14869         (FASTEST_ALIGNMENT): Adjust.
14870         (SH_REGISTER_NAMES_INITIALIZER): New.
14871         (sh_register_names): Declare.
14872         (DEBUG_REGISTER_NAMES): Define.
14873         (REGISTER_NAMES): Define based on sh_register_names.
14874         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
14875         (sh_additional_register_names): Declare.
14876         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
14877         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
14878         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
14879         (REGISTER_NATURAL_MODE): Define.
14880         (FIRST_PSEUDO_REGISTER): Adjust.
14881         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
14882         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
14883         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
14884         (VECTOR_MODE_SUPPORTED_P): Define.
14885         (REG_CLASS_CONTENTS): Adjust.
14886         (SMALL_REGISTER_CLASSES): Adjust.
14887         (REG_ALLOC_ORDER): Adjust.
14888         (INDEX_REG_CLASS): Adjust.
14889         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
14890         (CONST_OK_FOR_LETTER_P): Adjust.
14891         (PREFERRED_RELOAD_CLASS): Adjust.
14892         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
14893         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
14894         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
14895         (FIRST_FP_PARM_REG): Adjust.
14896         (CALL_POPS_ARGS): Define.
14897         (FUNCTION_ARG_REGNO_P): Adjust.
14898         (struct sh_args): New fields.
14899         (GET_SH_ARG_CLASS): Adjust.
14900         (INIT_CUMULATIVE_ARGS): Adjust.
14901         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
14902         (FUNCTION_ARG_ADVANCE): Adjust.
14903         (FUNCTION_ARG): Adjust.
14904         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
14905         (FUNCTION_ARG_CALLEE_COPIES): Define.
14906         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
14907         (STRICT_ARGUMENT_NAMING): Define.
14908         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
14909         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
14910         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
14911         (SETUP_INCOMING_VARARGS): Adjust.
14912         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
14913         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
14914         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
14915         (SUBREG_OK_FOR_INDEX_P): Adjust.
14916         (EXTRA_CONSTRAINT_S): Update.
14917         (EXTRA_CONSTRAINT_T): New.
14918         (EXTRA_CONSTRAINT): Adjust.
14919         (GO_IF_LEGITIMATE_INDEX): Adjust.
14920         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
14921         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
14922         (MOVE_MAX): Adjust.
14923         (MAX_MOVE_MAX): Define.
14924         (Pmode): Adjust.
14925         (CONST_COSTS): Adjust.
14926         (REGISTER_MOVE_COST): Adjust.
14927         (BRANCH_COST): Adjust.
14928         (TEXT_SECTION_ASM_OP): Adjust.
14929         (DBX_REGISTER_NUMBER): Adjust.
14930         (ASM_OUTPUT_DOUBLE_INT): New.
14931         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
14932         (PREDICATE_CODES): Adjust.
14933         (PROMOTE_MODE): Adjust.
14934         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
14935         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
14936         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
14937         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
14938         (DR0_REG, DR2_REG, DR4_REG): Renumber.
14939         (TR0_REG, TR1_REG, TR2_REG): New.
14940         (XD0_REG): Renumber.
14941         (UNSPEC_COMPACT_ARGS): New.
14942         (type): Added pt and ptabs.
14943         (length): Default to 4 on SHmedia.  Default pt length to 12
14944         and     20 on SHmedia32 and SHmedia64, respectively.
14945         (pt): New function unit.
14946         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
14947         Add whitespace between operands of SHmedia instructions.
14948         (movdicc): Fix.
14949         (adddi3_media, addsi3_media): Adjust constraints.
14950         (subsi3) [SHmedia]: Force operand 1 into a register.
14951         (udivsi3_i1_media, udivsi3_i4_media): New.
14952         (udivsi3): Support SHmedia.
14953         (divsi3_i1_media, divsi3_i4_media): New.
14954         (divsi3): Support SHmedia.
14955         (anddi3, iordi3, xordi3): Adjust constraints.
14956         (zero_extendhidi2, zero_extendqidi2): New.
14957         (extendsidi2, extendhidi2, extendqidi2): New.
14958         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
14959         (pop_e, pop_fpul, pop_4): Likewise.
14960         (movsi_media): Support FP and BT registers.
14961         (movsi_media_nofpu): New.  Adjust splits to DImode.
14962         (lduw, ldub): Renamed to zero_extend* above.
14963         (movqi_media): Fix typo.
14964         (movdi_media): Support FP and BT registers.
14965         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
14966         (movdi_const_32bit): New.
14967         (shori_media): Require immediate operand.  Use `u' for output.
14968         (movdf_media, movsf_media): Simplified.
14969         (movdf_media_nofpu, movsf_media_nofpu): New.
14970         (movdf, movsf): Adjust
14971         (movv2sf, movv2sf, movv16sf): New.
14972         (beq_media, beq_media_i): Adjust constraints.  Don't use
14973         scratch BT register.
14974         (bne_media, bne_media_i): Likewise.
14975         (bgt_media, bgt_media_i): Likewise.
14976         (bge_media, bge_media_i): Likewise.
14977         (bgtu_media, bgtu_media_i): Likewise.
14978         (bgeu_media, bgeu_media_i): Likewise.
14979         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
14980         bunordered): Emit jump insn.  Force operands to registers when
14981         needed.
14982         (jump_media, jump): Simplify.
14983         (call_compact, call_compact_rettramp): New.
14984         (call_value_compact, call_value_compact_rettramp): New.
14985         (call_media, call_value_media): Simplify.
14986         (sibcall_compact, sibcall_media): New.
14987         (call, call_value): Adjust for SHmedia and SHcompact.
14988         (sibcall, sibcall_value, untyped_call): Likewise.
14989         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
14990         (indirect_jump): Adjust for SHmedia.
14991         (casesi_jump_media): New.
14992         (nop): Re-enable for SHmedia.
14993         (call_site): Restrict to SH1.
14994         (casesi): Adjust for SHmedia.
14995         (casesi_shift_media, casesi_load_media): New.
14996         (return): Explicitly use PR register.  Call return trampoline
14997         on SHcompact.
14998         (return_i): Explicitly use PR register.
14999         (shcompact_return_tramp, shcompact_return_tramp_i): New.
15000         (return_media): Adjust.
15001         (shcompact_incoming_args): New.
15002         (epilogue): Adjust.
15003         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
15004         (movstrsi): Disable on SH5.
15005         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
15006         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
15007         (subsf3, subsf3_media): Likewise.
15008         (mulsf3, mulsf3_media, mac_media): Likewise.
15009         (divsf3, divsf3_media): Likewise.
15010         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
15011         (floatsisf2, fux_truncsfsi2): Likewise.
15012         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
15013         constraints.
15014         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
15015         (cmpunsf_media, cmpsf): Likewise.
15016         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
15017         (abssf2, abssf2_media): Likewise.
15018         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
15019         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
15020         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
15021         (floatsidf2, fix_truncdfsi2): Likewise.
15022         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
15023         constraints.
15024         (cmpeqdf_media, cmpgtdf_media): Likewise.
15025         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
15026         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
15027         (absdf2, absdf2_media): Likewise.
15028         (extendsfdf2, extendsfdf2_media): Likewise.
15029         (truncsfdf2, truncsfdf2_media): Likewise.
15030         * config/sh/sh64.h: New file.
15031         * config/sh/t-sh64: New file.
15032         * config/sh/shmedia.h: New file.
15033         * config/sh/ushmedia.h: New file.
15034         * config/sh/sshmedia.h: New file.
15035         * configure.in: Added sh64-*-elf.
15036         * configure: Rebuilt.
15037         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
15038         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
15039         (reg_class_from_letter): Use `b' for TARGET_REGS.
15040         (print_operand): Support `%M', `%m', `AND' and
15041         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
15042         (andcosts): Adjust for SHmedia.
15043         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
15044         Likewise.
15045         (target_reg_operand): New function.
15046         * config/sh/sh-protos.h (target_reg_operand): Declare.
15047         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
15048         FP registers on SH5.
15049         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
15050         on SH4.
15051         (TARGET_REGISTER_P): New macro.
15052         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
15053         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
15054         (EXTRA_CONSTRAINT_S): New macro.
15055         (EXTRA_CONSTRAINT): Adjust.
15056         (FLOAT_TYPE_SIZE): Define to 32.
15057         (Pmode): DImode on SHmedia.
15058         (CONST_COSTS): Adjust for SHmedia literals.
15059         (PREDICATE_CODES): Added target_reg_operand.
15060         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
15061         * config/sh/sh.md: Remove all attrs from SHmedia insns.
15062         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
15063         (cmpdi): Accept SHmedia.
15064         (movdicc_false, movdicc_true): New insns.
15065         (movdicc): New expand.
15066         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
15067         no_new_pseudos.
15068         (addsi3_media): Match `S' constraint.
15069         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
15070         (negdi2): Expand for SHmedia.
15071         (one_cmpldi2): New expand.
15072         (zero_extendsidi2): Change from expand to insn.
15073         (extendsidi2): Add constraints.
15074         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
15075         LD/ST address.  Fix SI immediate loading split.
15076         (movhi_media, movqi_media, lduw, ldub): New insns.
15077         (movhi, movqi): Accept SHmedia.
15078         (shori_media, movdi_media): Relax input constraints.  Split
15079         symbolic constants.
15080         (movdf_media, movsf_media): New insn.  New split to movdi.
15081         (movdf, movsf): Match on SHmedia.
15082         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
15083         bgeu_media): New insns and splits.  New insns with `_i' suffix.
15084         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
15085         (bunordered): New expand.
15086         (jump_compact): Renamed from `jump'.
15087         (jump_media): New insn.
15088         (jump): New expand.
15089         (call_media, call_value_media): New insns.
15090         (call, call_value): Adjust.
15091         (indirect_jump_compact): Renamed from `indirect_jump'.
15092         (indirect_jump_media): New insn.
15093         (indirect_jump): New expand.
15094         (untyped_call, return): Accept SHmedia.
15095         (return_media): New insn.
15096         (prologue, epilogue, blockage): Accept SHmedia.
15097         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
15098         (sunordered): New expand.
15099         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
15100         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
15101         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
15102         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
15103         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
15104         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
15105         abssf2_media): New insns.
15106         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
15107         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
15108         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
15109         floatdidf2, floatsidf2_media, fix_truncdfdi2,
15110         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
15111         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
15112         absdf2_media): New insns.
15113         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
15114         (extendsfdf2_media, truncdfsf2_media): New insns.
15115         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
15116         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
15117         * config/sh/sh.h (CONST_OK_FOR_J): Document.
15118         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
15119         * config/sh/sh.md (adddi3): New expand.
15120         (adddi3_media, adddi3z_media): New insns.
15121         (adddi3_compact): Renamed from adddi3.
15122         (addsi3_media): Use add.l r63 to add constant zero.
15123         (subdi3): New expand.
15124         (subdi3_media): New insn.
15125         (subdi3_compact): Renamed from subdi3.
15126         (mulsidi3): New expand.
15127         (mulsidi3_media): New insn.
15128         (mulsidi3_compact): Renamed from mulsidi3.
15129         (umulsidi3): New expand.
15130         (umulsidi3_media): New insn.
15131         (umulsidi3_compact): Renamed from umulsidi3.
15132         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
15133         (ashlsi3, ashrsi3, lshrsi3): Use them.
15134         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
15135         (ashldi3, ashrdi3, lshrdi3): Use them.
15136         (zero_extendsidi2): New expand.
15137         (extendsidi2): New insn.
15138         (movsi_media): New insn.  Split to movdi to load constants.
15139         (movsi): Enable for shmedia.
15140         (movdi_media): New insn.  Use shori_media to load wide constants.
15141         (short_media): New insn.
15142         (movdi): Enable for shmedia.
15143         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
15144         * config/sh/sh.h (CPP_SPEC): Added `m5'.
15145         (SUBTARGET_CPP_SPEC): Added `!m5'.
15146         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
15147         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
15148         to all other SH variants.
15149         (TARGET_DEFAULT): Set to SH1_BIT.
15150         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
15151         (BITS_PER_WORD): Raise to 64 on shmedia.
15152         (MAX_BITS_PER_WORD): Change to 64.
15153         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
15154         (INT_TYPE_SIZE): Keep as 32.
15155         (UNITS_PER_WORD): Raise to 8 on shmedia.
15156         (MIN_UNITS_PER_WORD): Keep as 4.
15157         (POINTER_SIZE): Raise to 64 on shmedia.
15158         (CONST_OK_FOR_J): New macro.
15159         (CONST_OK_FOR_LETTER_P): Use it.
15160         (processor_type): Add PROCESSOR_SH5.
15161         * config/sh/sh.md: Conditionalize all expands, insns and
15162         splits to TARGET_SH1.
15163         (cpu): Added sh5.
15164         (addsi3_compact): Renamed from...
15165         (addsi3): Now an expand.
15166         (addsi3_media, subsi3_media): New insns.
15167         (subsi3): Don't negate constants with SHmedia.
15168
15169         * hooks.c: New file.
15170         * hooks.h: New file.
15171         * Makefile.in (HOOKS_H): New.
15172         (TARGET_DEF_H): Added $(HOOKS_H).
15173         (OBJS): Added hooks.o.
15174         (cfgcleanup.o, bb-reorder.o): Added target.h.
15175         (hooks.o): Added dependencies.
15176         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
15177         (TARGET_INITIALIZER): this.
15178         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
15179         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
15180         * bb-reorder.c: Include target.h.
15181         (reorder_basic_blocks): Skip if cannot modify jumps.
15182         * cfgcleanup.c: Include target.h.
15183         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
15184
15185 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
15186
15187         * config/mips/mips.md (casesi_internal, casesi_internal_di):
15188         Protect jump delay slot instructions with .set noreorder and
15189         .set nomacro.
15190
15191 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
15192
15193         * config/mips/mips.md (casesi_internal_di): Calculate
15194         the index into the target offset table correctly.
15195
15196 2002-02-08  Richard Henderson  <rth@redhat.com>
15197
15198         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
15199         * final.c (output_addr_const): Accept and discard SUBREG.
15200         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
15201         mark them unknown instead.
15202         (simplify_subtraction): Handle RTX_UNKNOWN.
15203         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
15204
15205 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
15206
15207         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
15208
15209 2002-02-08  Richard Henderson  <rth@redhat.com>
15210
15211         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
15212
15213 2002-02-08  Andreas Jaeger  <aj@suse.de>
15214
15215         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
15216         * config/i386/t-linux64: New file.
15217
15218 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
15219
15220         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
15221         * c-parse.in (compstmt): Clear last_expr_type.
15222
15223 2002-02-07  Richard Henderson  <rth@redhat.com>
15224
15225         * loop.c (strength_reduce): Sink final_value when not
15226         eliminating a biv.
15227
15228 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
15229
15230         * config/sparc/freebsd.h: Fix mismatched spec {.
15231
15232 2002-02-07  Richard Henderson  <rth@redhat.com>
15233
15234         * cfgrtl.c: Include recog.h and insn-config.h.
15235         (keep_with_call_p): Fix general_operand invocation.
15236         * Makefile.in (cfgrtl.o): Update dependencies.
15237
15238 2002-02-07  Kazu Hirata  <kazu@hxi.com>
15239
15240         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
15241         comment.  Accept HImode only if TARGET_H8300.
15242
15243 2002-02-07  Eric Christopher  <echristo@redhat.com>
15244
15245         * config/mips/crtn.asm: Cleanup #ifdefs.
15246
15247 2002-02-07  Eric Christopher  <echristo@redhat.com>
15248
15249         * config/mips/crti.asm: Add changes for mips16. mips16 uses
15250         register 7 as RA instead of $31.
15251         * config/mips/crtn.asm: Ditto.
15252         * config/mips/mips.c (mips_move_2words): Add case for
15253         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
15254         (compute_frame_size): Fix typo.
15255         (save_restore_insns): Ditto.  Make documentation about using
15256         register $7 as return register more precise.
15257         (mips_expand_epilogue): Fix comment. Add code to work around not
15258         being able to add to the stack pointer directly.
15259         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
15260         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
15261         epilogue.
15262
15263 2002-02-07  Tom Rix  <trix@redhat.com>
15264
15265         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
15266         immediates in ldu and stdu DS opcode field.
15267         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
15268         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
15269         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
15270
15271 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
15272
15273         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
15274         offset for stack bias.
15275
15276 2002-02-07  H.J. Lu <hjl@gnu.org>
15277
15278         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
15279
15280 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
15281
15282         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
15283
15284 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
15285
15286         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
15287         * i386.c (x86_order_regs_for_local_alloc): New global function.
15288         * i386.h (REG_ALLOC_ORDER): CLeanup.
15289         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
15290
15291 2002-02-07  Richard Henderson  <rth@redhat.com>
15292
15293         PR optimization/2463
15294         * alias.c (find_base_value): Recall base values for fixed hard regs.
15295         * loop.c (loop_regs_update): Don't use single_set on non-insns.
15296
15297 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
15298
15299         * config/mips/mips.md (define_delay) [mips16]: Adjust required
15300         length.
15301
15302 2002-02-06  Richard Henderson  <rth@redhat.com>
15303
15304         PR c/5609
15305         * stmt.c (resolve_operand_name_1): Take more care with mixed
15306         named and unnamed operands.
15307
15308 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
15309             Jan Hubicka  <jh@suse.cz>
15310
15311         * loop.c (remove_constant_addition): Avoid clobbering a shared
15312         CONST expression.
15313
15314 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15315
15316         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
15317         * config/s390/t-linux64: New file.
15318         * config/s390/libgcc-glibc.ver: New file.
15319
15320 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15321
15322         * config/s390/linux64.h: Delete file.
15323         * config/s390/s390x.h: New file.
15324         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
15325         as target header file.
15326         * config/s390/linux.h (TARGET_VERSION): Define depending on
15327         DEFAULT_TARGET_64BIT.
15328         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
15329         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
15330         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
15331         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
15332         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
15333         (EXTRA_SPEC): New define.
15334         * config/s390/s390.h (TARGET_VERSION): Define depending on
15335         DEFAULT_TARGET_64BIT.
15336         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
15337
15338 2002-02-06  Jason Merrill  <jason@redhat.com>
15339
15340         * c-decl.c (finish_function): Warn about a non-void function with
15341         no return statement and no abnormal exit.
15342         (current_function_returns_abnormally): New variable.
15343         (start_function): Clear it.
15344         (struct c_language_function): Add returns_abnormally.
15345         (push_c_function_context): Save it.
15346         (pop_c_function_context): Restore it.
15347         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
15348         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
15349         an explicit return type.
15350         * c-tree.h: Declare current_function_returns_abnormally.
15351         (C_FUNCTION_IMPLICIT_INT): New macro.
15352         * c-typeck.c (build_function_call): Set it.
15353         (c_expand_return): Set current_function_returns_value even if the
15354         value is erroneous.
15355
15356 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
15357
15358         PR c/5420:
15359         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
15360         unsafe for reevaluation.
15361
15362 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
15363
15364         PR c/5482:
15365         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
15366         EXPR_STMT, but COMPOUND_STMT, recurse into it.
15367
15368 2002-02-06  Richard Henderson  <rth@redhat.com>
15369
15370         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
15371         be a general_operand.  Dest for function value must be a pseudo.
15372
15373 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
15374
15375         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
15376         as SYMBOL_REFs from the constant pool.
15377
15378 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
15379
15380         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
15381         passed by invisible reference.
15382
15383 2002-02-05  Richard Henderson  <rth@redhat.com>
15384
15385         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
15386
15387 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
15388
15389         Implement using "base addresses" in insn operands as default.
15390         * config/mmix/mmix.c (mmix_conditional_register_usage): if
15391         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
15392         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
15393         used to read the rtx value.
15394         (mmix_target_asm_function_epilogue): Fix spacing.
15395         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
15396         (mmix_legitimate_address): Ditto.
15397         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
15398         should be loaded with a GETA insn.  Don't allocate needless extra
15399         char for nul termination and fix misleading comment.
15400         (mmix_print_operand_address): Handle constants if
15401         TARGET_BASE_ADDRESSES.
15402         (mmix_output_register_setting): Use base addressing if
15403         TARGET_BASE_ADDRESSES and the number of insns is 3.
15404         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
15405         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
15406         to use R as constraint, add LDA to match s.
15407         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
15408         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
15409         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
15410         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
15411         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
15412         order with other fixed registers.
15413         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
15414         other parameter/call-clobbered registers.
15415         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
15416         -mbase-addresses, -mno-base-addresses.
15417         (MMIX Options): Ditto.
15418
15419 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15420
15421         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
15422
15423 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
15424
15425         * config/rs6000/altivec.h: Change elem to _S_elem.
15426
15427 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
15428
15429         * config/netbsd.h (WCHAR_TYPE): Define.
15430         (WCHAR_TYPE_SIZE): Ditto.
15431         (WINT_TYPE): Ditto.
15432         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
15433         (WCHAR_UNSIGNED): Ditto.
15434         (WCHAR_TYPE_SIZE): Ditto.
15435         (WINT_TYPE): Ditto.
15436         * config/arm/netbsd.h: Likewise.
15437         * config/i386/netbsd-elf.h: Likewise.
15438         * config/i386/netbsd.h: Likewise.
15439         * config/m68k/netbsd-elf.h: Likewise.
15440         * config/m68k/netbsd.h: Likewise.
15441         * config/ns32k/netbsd.h: Likewise.
15442         * config/sparc/netbsd.h: Likewise.
15443         * config/vax/netbsd.: Likewise.
15444
15445 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
15446
15447         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
15448         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
15449         (TARGET_INITIALIZER): this.
15450         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
15451         (BITFIELD_NBYTES_LIMITED): Markup fix.
15452         * tree.h (default_ms_bitfield_layout_p): Declare.
15453         (record_layout_info): Added prev_field.
15454         * tree.c (default_ms_bitfield_layout_p): New fn.
15455         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
15456         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
15457         * stor-layout.c: Include target.h.
15458         (start_record_layout): Initialize prev_field.
15459         (place_field): Handle MS bit-field layout, and disregard
15460         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
15461         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
15462         * Makefile.in (stor-layout.o): Adjust dependencies.
15463
15464 2002-02-05  Jason Merrill  <jason@redhat.com>
15465
15466         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
15467
15468 2002-02-05  Andreas Jaeger  <aj@suse.de>
15469
15470         * crtstuff.c: Fix comments.
15471
15472 2002-02-05  Richard Henderson  <rth@redhat.com>
15473
15474         PR fortran/3393
15475         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
15476         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
15477
15478         PR fortran/3392
15479         * config/mips/mips.c (function_arg): Handle TImode.
15480         (function_arg_advance): Likewise.
15481
15482 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
15483
15484         * config/rs6000/altivec.h (vec_step_help): Rename to
15485         __vec_step_help.
15486
15487 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
15488
15489         * config/rs6000/altivec.h: Fix typos.
15490
15491 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
15492
15493         * config/arm/netbsd.h: Correct a comment.
15494
15495 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
15496
15497         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
15498         building void typed builtins.
15499
15500         * config/rs6000/altivec.h (vec_ld*): Fix typos.
15501         (vec_step): Implement for C++.
15502
15503 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15504
15505         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
15506
15507 2002-02-04  Richard Henderson  <rth@redhat.com>
15508
15509         * combine.c (nonzero_bits): Re-introduce special case for
15510         sp/fp/ap wrt REGNO_POINTER_ALIGN.
15511
15512 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
15513
15514         * doc/extend.texi: Warn about unsupported usage of altivec
15515         builtins.
15516
15517         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
15518         (altivec_predicate_*): New.
15519
15520         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
15521         Add C++ version of vec_*() functions.
15522
15523         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
15524         (bdesc_2arg): Remove altivec predicates.
15525         (altivec_expand_builtin): Handle predicates.
15526         (altivec_init_builtins): Handle predicates.
15527         (altivec_expand_predicate_builtin): New.
15528
15529 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15530
15531         * pa.c (DO_FRAME_NOTES): Move forward.
15532         (store_reg): Revise handling of frame notes.
15533         (load_reg): Likewise.
15534         (set_reg_plus_d): Likewise.
15535         (hppa_expand_prologue): Likewise.
15536         (hppa_expand_epilogue): Likewise.
15537
15538 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15539
15540         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
15541
15542 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
15543
15544         PR c/4475, c++/3780:
15545         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
15546         * c-common.h (SWITCH_TYPE): Define.
15547         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
15548         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
15549         Rename spareness variable to sparseness.
15550         (expand_end_case_type): Renamed from expand_end_case, use orig_type
15551         if non-NULL instead of TREE_TYPE (orig_index).
15552         * tree.h (expand_end_case_type): Renamed from expand_end_case.
15553         (expand_end_case): Define using expand_end_case_type.
15554         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
15555         to expand_end_case_type.
15556         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
15557
15558 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15559
15560         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
15561         (BIGGEST_ALIGNMENT): Change to 128.
15562
15563 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15564
15565         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
15566
15567 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15568
15569         * pa.md (call_internal_reg_64bit): Remove unused variable.
15570
15571 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
15572
15573         * config/arm/arm.h (machine_function): Add uses_anonymous_args
15574         field.
15575         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
15576         * config/arm/arm.c (current_function_anonymous_args): Delete,
15577         replace uses with cfun->machine->uses_anonymous_args.
15578         (arm_reorg): Do not reset uses_anonymous_args.
15579
15580         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
15581         any geenral register.
15582
15583 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
15584
15585         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
15586         the entry block.
15587
15588 2002-02-04  Richard Henderson  <rth@redhat.com>
15589
15590         * combine.c (force_to_mode): Remove STACK_BIAS code.
15591         (nonzero_bits): Likewise.  Replace sp/fp special case with
15592         REGNO_POINTER_ALIGN.
15593
15594         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
15595         (HARD_FRAME_POINTER_REGNUM): New.
15596         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
15597         (FIXED_REGS, CALL_USED_REGS): Update.
15598         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
15599         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
15600         (HARD_REGNO_NREGS): Update for SFP.
15601         (STACK_POINTER_OFFSET): Include bias here ...
15602         (FIRST_PARM_OFFSET): ... not here.
15603         (STACK_BIAS): Remove.
15604         (INIT_EXPANDERS): New.
15605         (STARTING_FRAME_OFFSET): Do not include bias.
15606         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
15607         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
15608         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
15609         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
15610         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
15611         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
15612         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
15613         (MUST_SAVE_REGISTER): Likewise.
15614         (sparc_flat_function_prologue): Likewise.
15615         (sparc_flat_function_epilogue): Likewise.
15616         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
15617         (sparc_init_modes): SFP is GENERAL_REGS.
15618         (sparc_builtin_saveregs): SFP does not have bias applied.
15619
15620 2002-02-04  Richard Henderson  <rth@redhat.com>
15621
15622         * config/alpha/alpha.c (current_function_is_thunk): Don't check
15623         current_function_is_thunk.
15624         (alpha_sa_mask): Distinguish between current_function_is_thunk
15625         called from ASM_OUTPUT_MI_THUNK and not.
15626         (alpha_does_function_need_gp): Thunks always need gp.
15627         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
15628         (alpha_output_mi_thunk_osf): New.
15629         * config/alpha/alpha-protos.h: Update.
15630         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
15631
15632 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
15633
15634         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
15635         function types, not when they're taken away.
15636
15637 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
15638
15639         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
15640         CODE_LABEL and jump table when replacing a table jump with a
15641         simple jump.
15642
15643 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
15644
15645         * config/s390/s390-protos.h (legitimize_la_operand,
15646         s390_secondary_input_reload_class, s390_plus_operand,
15647         s390_expand_plus_operand): Add prototypes.
15648
15649         config/s390/s390.c (s390_secondary_input_reload_class,
15650         s390_plus_operand, s390_expand_plus_operand): New functions.
15651
15652         (struct s390_address): New member 'pointer'.
15653         (s390_decompose_address): Compute it.
15654         (legitimate_la_operand_p): Use it.
15655         (legitimize_la_operand): New function.
15656         (movti, movdi, movdf splitters): Call it.
15657
15658         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
15659         (PREDICATE_CODES): Add s390_plus_operand.
15660
15661         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
15662         (la_ccclobber): Allow GENERAL_REGS as output operand.
15663
15664         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
15665         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
15666         (*la_64, *la_31, reload_indi, reload_insi): ... these.
15667
15668 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
15669
15670         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
15671         register names for regular asm () construct.
15672
15673 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
15674
15675         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
15676         registers.
15677
15678 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
15679
15680         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
15681         pat for recog.
15682
15683 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
15684
15685         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
15686         constant pool to be identical by string address and index.
15687
15688 2002-02-04  Anthony Green  <green@redhat.com>
15689
15690         * output.h (SECTION_OVERRIDE): Define.
15691         * varasm.c (named_section): Obey SECTION_OVERRIDE.
15692
15693 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
15694
15695         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
15696         by existing arm*-*-netbsd* (a.out) target.
15697         (ns32k-*-netbsdelf*): Likewise.
15698         (sparc-*-netbsdelf*): Likewise.
15699         (vax-*-netbsdelf*): Likewise.
15700
15701 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
15702
15703         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
15704         headers and libobjc headers.
15705
15706 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
15707
15708         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
15709         (_mingw.h): Remove duplicate include.
15710
15711 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
15712
15713         * config.gcc: Set cpu_type to m68k for 68010, as well.
15714         (m68010-*-netbsdelf*): New...
15715         (m68k*-*-netbsdelf*): ...targets.
15716         * config/m68k/netbsd-elf.h: New file.
15717
15718 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15719
15720         * config/h8300/h8300.c (hand_list): Move inside function_arg.
15721
15722 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15723
15724         * config/h8300/h8300.c (h8_push_ops): Move inside
15725         h8300_init_once.
15726         (h8_pop_ops): Likewise.
15727         (h8_move_ops): Likewise.
15728
15729 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15730
15731         * config/h8300/h8300.c (os_task): Make it static.
15732         (monitor): Likewise.
15733         (pragma_saveall): Likewise.
15734
15735 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
15736
15737         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
15738         constant is a valid sign-extension for Pmode.
15739
15740 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15741
15742         * config/h8300/h8300.c: Fix formatting.
15743
15744 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15745
15746         * config/h8300/h8300.md: Fix formatting.
15747
15748 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15749
15750         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
15751         predicates of operands[1].  Split the patterns for each
15752         processor variant.
15753
15754 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15755
15756         * config/h8300/h8300.md (xor patterns): Tighten the predicates
15757         of operands[1] to register_operand.
15758
15759 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
15760
15761         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
15762         * cpphash.c (_cpp_init_hashtable): Similarly.
15763         * cppinit.c (cpp_create_reader): Default the signed_char flag.
15764         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
15765         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
15766         (cpp_handle_option): Handle the new options.
15767         * cpplex.c (cpp_interpret_charconst): Use new flag.
15768         * cpplib.h (struct cpp_options): New member signed_char.
15769         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
15770         (cpp_options): Handle -fsigned-char and -funsigned-char.
15771         (static_specs): Remove signed_char_spec.
15772         (do_spec1): Don't handle %c.
15773         * system.h: Poison SIGNED_CHAR_SPEC.
15774         * tradcif.y (yylex): Use flag_signed_char.
15775         * tradcpp.h (flag_signed_char): New.
15776         * tradcpp.c (flag_signed_char): New.
15777         (main): Handle new command-line options.
15778         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
15779 config:
15780         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
15781         * avr/avr.h: Remove old comments.
15782         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
15783         (CC1_SPEC): Pass -fsigned-char if -mic*.
15784         (SIGNED_CHAR_SPEC): Remove.
15785 doc:
15786         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
15787
15788 2002-02-01  Eric Christopher  <echristo@redhat.com>
15789
15790         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
15791         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
15792         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
15793         (ASM_OUTPUT_REG_POP): Ditto.
15794
15795 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
15796
15797         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
15798         patch.
15799
15800 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
15801
15802         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
15803
15804 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
15805
15806         PR c/5304:
15807         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
15808         unconditionally.
15809
15810 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
15811
15812         * cfganal.c: Include tm_p.h.
15813         (keep_with_call_p): Fix the test that determines if a register holds
15814         the return value of a call.
15815
15816 2002-02-01  DJ Delorie  <dj@redhat.com>
15817
15818         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
15819         we are given conflicting registers, switch to the other one we
15820         had allocated for us.
15821         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
15822         as TImode so we know when the "other" register is available.
15823
15824 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
15825
15826         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
15827         sparc/sparc_bi.h.
15828
15829 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
15830
15831         * cfganal.c (keep_with_call_p): New function.
15832         (flow_call_edges_add): Prevent splitting a block between a call and
15833         a single-set instruction that should be kept in the same block.
15834
15835 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15836
15837         * doc/install.texi (avr): Update outdated URL.
15838
15839 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
15840
15841         * config/stormy16/stormy16.md (pushqi): New.
15842         (popqi): New.
15843         (pushhi): New.
15844         (pophi): New.
15845         (movhi): Remove stack operands.
15846         (movqi): Likewise.
15847         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
15848         nonimmediate_nonstack_operand.
15849         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
15850         New.
15851         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
15852         New.
15853
15854 2002-01-31  Jason Merrill  <jason@redhat.com>
15855
15856         * Makefile.in (c-parse.c): Handle .output file.
15857         * objc/Make-lang.in (objc-parse.c): Likewise.
15858
15859 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
15860
15861         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
15862         the -me[lb] option is given.  Don't output the default flag
15863         twice.
15864
15865 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
15866
15867         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
15868         the primary source file; this has not been done yet.
15869         * c-decl.c (c_expand_body): Reset input_filename from
15870         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
15871
15872 2002-01-31  Kazu Hirata  <kazu@hxi.com>
15873
15874         * rtlanal.c (subreg_regno_offset): Do not use
15875         SUBREG_REGNO_OFFSET.
15876         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
15877         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
15878
15879 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
15880
15881         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
15882         version rather than GNATS version in --version output.
15883
15884 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
15885
15886         * ifcvt.c (noce_process_if_block): Make a copy of the destination
15887         when copying back from a temporary.
15888
15889 2002-01-30  Richard Henderson  <rth@redhat.com>
15890
15891         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
15892         and new_dest are the same.
15893
15894 2002-01-30  Richard Henderson  <rth@redhat.com>
15895
15896         PR opt/5076
15897         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
15898         * rtl.c (note_insn_name): Update.
15899         * emit-rtl.c (remove_unnecessary_notes): Kill it.
15900         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
15901         to perform loop rotation.
15902         (expand_exit_loop_top_cond): New.
15903         * tree.h (expand_exit_loop_top_cond): Declare it.
15904         * c-semantics.c (genrtl_while_stmt): Use it.
15905         (genrtl_for_stmt): Likewise.
15906
15907 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
15908
15909         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
15910         arguments to 64-bit boundaries on 64-bit ABIs.
15911
15912 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
15913
15914         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
15915
15916 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
15917
15918         * c-decl.c (grokdeclarator): Handle type being a typedef for an
15919         invalid type.
15920
15921 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
15922
15923         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
15924         * config/sparc/sparc_bi.h: Remove file.
15925         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
15926
15927 2002-01-30  Richard Henderson  <rth@redhat.com>
15928
15929         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
15930
15931 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
15932
15933         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
15934
15935 2002-01-30  Jason Merrill  <jason@redhat.com>
15936
15937         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
15938         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
15939         (reg_save): Use DW_CFA_offset_extended_sf instead.
15940
15941         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
15942
15943 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
15944
15945         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
15946         in cselib_lookup.
15947
15948 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
15949
15950         * rs6000.md ("*call_value_local32"): Remove constraints.
15951         ("*call_value_local64"): Same.
15952         ("*call_value_indirect_nonlocal_aix32"): Same.
15953         ("*call_value_nonlocal_aix32"): Same.
15954         ("*call_value_indirect_nonlocal_aix64"): Same.
15955         ("*call_value_nonlocal_aix64"): Same.
15956         ("*call_value_nonlocal_sysv"): Same.
15957
15958 2002-01-29  Richard Henderson  <rth@redhat.com>
15959
15960         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
15961
15962 2002-01-29  Richard Henderson  <rth@redhat.com>
15963
15964         * expr.c (force_operand): Ignore flag_pic for detecting pic
15965         address loads.
15966         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
15967         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
15968         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
15969         instead of open-coded loop.
15970         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
15971         be fixed when in use.
15972
15973 2002-01-29  Richard Henderson  <rth@redhat.com>
15974
15975         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
15976         * sched-rgn.c (propagate_deps): Update them.
15977         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
15978         clobbers list when either gets too long.
15979
15980 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
15981
15982         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
15983         and INDEX_REGS the same as GENERAL_REGS.
15984         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
15985
15986 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
15987
15988         * tree.c (build_nonstandard_integer_type): Correct prototype.
15989
15990 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
15991
15992         * config/s390/s390.md (movstrsico, movstrdix_64,
15993         movstrsix_31): Remove, replace by ...
15994         (movstrdi_short, movstrsi_short, movstrdi_long,
15995         movstrsi_long): ... these.  New.
15996         (movstrdi, movstrsi): Adapt.
15997
15998         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
15999         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
16000         Remove unnecessary CC clobber.
16001         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
16002         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
16003
16004         (divmoddi4): Don't partially initialize TImode register.
16005
16006 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
16007
16008         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
16009
16010 2002-01-29  Richard Henderson  <rth@redhat.com>
16011
16012         * flow.c (print_rtl_and_abort): Remove.
16013         (print_rtl_and_abort_fcn): Remove.
16014         (verify_local_live_at_start): Use dump_bb instead.
16015         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
16016         (verify_wide_reg_1): Return 2 on mode test failure.
16017
16018 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
16019
16020         PR c/3325, c/3326, c/2511, c/3347
16021         * c-decl.c (enum_decl_context): Remove BITFIELD.
16022         (grokdeclarator): Take bitfield width as an input.
16023         Ensure bitfields are given the correct type.  Perform
16024         bitfield width validation with build_bitfield_integer_type
16025         rather than waiting for finish_struct.
16026         (grok_typename, grok_typename_in_parm_context, start_decl,
16027         push_parmdecl, grokfield, start_function): Update calls to
16028         grokdeclarator.
16029         (build_bitfield_integer_type): New function.
16030         (finish_struct): Move bitfield validation to grokdeclarator
16031         and build_bitfield_integer_type.
16032         * tree.c (build_nonstandard_integer_type): New function.
16033         * tree.h (build_nonstandard_integer_type): New prototype.
16034 objc:
16035         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
16036
16037 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
16038
16039         PR other/1502:
16040         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
16041         don't ignore unrecognized -W* options.
16042         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
16043         * cpplib.h (cpp_handle_option): Adjust prototype.
16044         * c-decl.c (c_decode_options): Pass 0 as last argument to
16045         cpp_handle_option.
16046
16047         PR c/2896:
16048         * gcc.c (cpp_unique_options): Split from cpp_options.
16049         (cpp_options): Source cpp_unique_options.
16050         (default_compilers): Use cpp_unique_options instead of cpp_options
16051         when used together with cc1_options.
16052         (static_specs): Add cpp_unique_options.
16053         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
16054         when used together with cc1_options.
16055
16056 2002-01-29  Kazu Hirata  <kazu@hxi.com>
16057
16058         * config/h8300/h8300-protos.h: Update the prototype of
16059         output_a_shift.
16060         * config/h8300/h8300.c (output_a_shift): Remove an unused
16061         argument 'insn'.  Remove redundant code.
16062         * config/h8300/h8300.md: Adust to the new prototype of
16063         output_a_shift.
16064
16065 2002-01-29  Kazu Hirata  <kazu@hxi.com>
16066
16067         * config/h8300/h8300-protos.h: Update the prototypes of
16068         emit_a_rotate and expand_a_rotate.
16069         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
16070         first argument to 'enum rtx_code'.
16071         (expand_a_rotate): Likewise.
16072
16073 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16074
16075         * config/h8300/h8300-protos.h: Update the prototype of
16076         output_simode_bld.
16077         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
16078         'log2'.
16079         * config/h8300/h8300.md: Adjust to the new prototype.
16080
16081 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16082
16083         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
16084         redundant code.
16085
16086 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16087
16088         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
16089         is a fixed register before returning pic_offset_table_rtx.
16090         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
16091         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
16092
16093 2002-01-28  Jason Merrill  <jason@redhat.com>
16094
16095         * dwarf2.h: Sync with src version.
16096
16097 2002-01-28  Paul Koning  <pkoning@equallogic.com>
16098
16099         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
16100         BT_FN_VOID_PTR_VAR.
16101         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
16102         * doc/extend.texi (__builtin_prefetch): Update documentation:
16103         first argument is now const void ptr.
16104
16105 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16106
16107         * config/h8300/h8300-protos.h: Remove an unused prototype.
16108
16109 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
16110
16111         * toplev.c (lang_independent_init): Round up identifier size.
16112
16113 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
16114
16115         * config.gcc: Revert previous change.
16116
16117 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
16118
16119         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
16120
16121 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
16122
16123         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
16124         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
16125         other non-elf netbsd config frags.
16126         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
16127         collect2 will does that.
16128         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
16129         shared-lib frobbing will work.
16130
16131 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16132
16133         * config/h8300/h8300.h: Fix formatting.
16134         * config/h8300/h8300.md: Likewise.
16135
16136 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
16137
16138         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
16139         the old, removed AAA_standards fix.
16140         * fixinc/fixincl.x: Rebuilt.
16141
16142 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
16143
16144         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
16145         atexit call in crtbegin, hooked in after call to frame_dummy;
16146         register EH before registering __fini__start.
16147
16148 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
16149
16150         * config/rs6000/altivec.h: Remove spurious semicolons.
16151
16152 2002-01-27  Kazu Hirata  <kazu@hxi.com>
16153
16154         * config/h8300/h8300.md: Replace dead bit extraction patterns
16155         with ones that work.
16156
16157 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16158
16159         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
16160         if not STRICT_ALIGNMENT.
16161         * rtl.h (MEM_ALIGN): Likewise.
16162
16163 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16164
16165         * doc/invoke.texi (-fdump-translation-unit): Revert this
16166         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16167
16168 2002-01-27  Kazu Hirata  <kazu@hxi.com>
16169
16170         * config/h8300/h8300.md (define_constants): New.
16171         (anonymous patterns) Use defined constants appropriately.
16172
16173 2002-01-27  Kazu Hirata  <kazu@hxi.com>
16174
16175         * config/h8300/h8300.c (function_arg): Remove redundant code.
16176
16177 2002-01-26  Richard Henderson  <rth@redhat.com>
16178
16179         * sched-deps.c (reg_pending_uses_head): New.
16180         (reg_pending_barrier): Rename from reg_pending_sets_all.
16181         (find_insn_list): Don't mark inline.
16182         (find_insn_mem_list): Remove.
16183         (add_dependence_list, add_dependence_list_and_free): New.
16184         (flush_pending_lists): Replace only_write param with separate
16185         for_read and for_write parameters.  Update all callers.  Use
16186         add_dependence_list_and_free.
16187         (sched_analyze_1): Do not add reg dependencies here; just set
16188         the pending bits.  Use add_dependence_list.
16189         (sched_analyze_2): Likewise.
16190         (sched_analyze_insn): Replace schedule_barrier_found with
16191         reg_pending_barrier.  Add all dependencies for pending reg
16192         uses, sets, and clobbers.
16193         (sched_analyze): Don't add reg dependencies for calls, just
16194         set pending bits.  Use regs_invalidated_by_call.  Treat
16195         sched_before_next_call as a normal list, not a fake insn.
16196         (init_deps): No funny init for sched_before_next_call.
16197         (free_deps): Free pending mems lists.  Don't zero reg_last.
16198         (init_deps_global): Init reg_pending_uses.
16199         (finish_deps_global): Free it.
16200         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
16201         (find_insn_mem_list): Remove.
16202         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
16203         (propagate_deps): Use them.  Zero temp mem lists.
16204
16205 2002-01-26  Richard Henderson  <rth@redhat.com>
16206
16207         * Makefile.in (CRTSTUFF_CFLAGS): New.
16208         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
16209         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
16210         crtstuff.c instead of alpha assembly version.
16211         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
16212         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
16213         not FORCE_{INIT,FINI}_SECTION_ALIGN.
16214         (__do_global_dtors_aux): Mark used.
16215         (frame_dummy, __do_global_ctors_aux): Mark used.
16216         (fini_dummy, init_dummy): Remove.
16217
16218         * config/alpha/crtbegin.asm: Remove file.
16219         * config/alpha/crtend.asm: Remove file.
16220         * config/alpha/t-crtbe: Remove file.
16221         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
16222         (LINK_EH_SPEC): New.
16223
16224         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
16225         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
16226         calling constructors.
16227         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
16228
16229         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
16230         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
16231         CRT_END_INIT_DUMMY hack.
16232         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
16233         FORCE_{INIT,FINI}_SECTION_ALIGN.
16234
16235         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
16236         FORCE_{INIT,FINI}_SECTION_ALIGN.
16237
16238         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
16239         invocation sequence.
16240         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
16241
16242         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
16243         (FORCE_CODE_SECTION_ALIGN): New.
16244
16245 2002-01-26  Richard Henderson  <rth@redhat.com>
16246
16247         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
16248
16249 2002-01-26  Richard Henderson  <rth@redhat.com>
16250
16251         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
16252         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
16253
16254 2002-01-26  Kazu Hirata  <kazu@hxi.com>
16255
16256         * config/h8300/h8300.md: Remove bit extraction patterns that
16257         cannot be triggered.
16258         Restrict each bit extraction pattern to a variant on which the
16259         pattern is tested.
16260
16261 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
16262
16263         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
16264
16265 2002-01-26  Kazu Hirata  <kazu@hxi.com>
16266
16267         * config/h8300/h8300.md: Remove bit test patterns that cannot
16268         be triggered.
16269         Restrict each bit test pattern to a variant on which the
16270         pattern is tested.
16271
16272 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16273
16274         * builtins.c (expand_builtin_strncat): Remove redundant check for
16275         INTEGER_CST.
16276
16277 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
16278
16279         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
16280         default setting.
16281         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
16282         existing setting.
16283
16284 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
16285
16286         * dbxout.c (dbxout_init): Use assemble_name rather than just
16287         stripping off the first character.
16288         (dbxout_source_file): Likewise.
16289
16290 2002-01-25  DJ Delorie  <dj@redhat.com>
16291
16292         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
16293         using rtx_equal_p, not by comparing pointers.
16294
16295 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
16296
16297         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
16298         for PIC_OFFSET_TABLE_REGNUM.
16299         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
16300
16301 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
16302
16303         * config.gcc (x86_64-*-freebsd*): New target.
16304         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
16305         value.
16306         (i[34567]86-*-freebsd*): Don't include svr4.h.
16307         * config/i386/freebsd64.h: New file.
16308
16309 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
16310
16311         * config/alpha/x-vms (version): Make static.
16312
16313         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
16314         in previous checkin.
16315
16316         * Makefile.in (install-headers-cp): New target.
16317         * config.gcc (alpha-dec-*vms*): Install headers with
16318         install-headers-cp
16319
16320 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
16321
16322         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
16323         avoid it's copies.
16324
16325 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16326
16327         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
16328         of compare_tree_int.
16329         (expand_builtin_strncat): Likewise.
16330         * c-decl.c (finish_struct): Use tree_low_cst.
16331         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
16332         * tree.c (compare_tree_int): Likewise.
16333
16334 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
16335
16336         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
16337         adjustments even if they are implemented by more than two insns.
16338
16339 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
16340
16341         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
16342         * df.h (struct ref): Kill B.
16343         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
16344
16345         * basic-block.h (PROP_EQUAL_NOTES): New flag.
16346         * flow.c (propagate_one_insn): Use it.
16347         (mark_used_regs): Handle NIL.
16348
16349 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
16350
16351         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
16352         to help folding.
16353
16354 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
16355
16356         * rs6000.md (prefetch): Make address V4SI mode so that the address
16357         is restricted to legitimate form for instruction.
16358
16359 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
16360
16361         * doc/install.texi (xtensa-*-elf): New target.
16362         (xtensa-*-linux*): New target.
16363         * doc/contrib.texi: Add myself.
16364
16365 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
16366
16367         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
16368         purpose register to hold an SImode (or smaller) value.
16369
16370 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
16371
16372         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
16373         registry only.
16374         * crtstuff.c: Likewise.
16375
16376 2002-01-25  Kazu Hirata  <kazu@hxi.com>
16377
16378         * config/h8300/h8300.md (negation patterns): Tighten
16379         predicates to register_operand.
16380
16381 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
16382
16383         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
16384         mode, not Pmode.
16385
16386         * builtins.c (expand_builtin_prefetch): Same.
16387
16388 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
16389
16390         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
16391         modes.
16392
16393 2002-01-24  Kazu Hirata  <kazu@hxi.com>
16394
16395         * config/h8300/h8300.c (print_operand): Remove support for
16396         operand character 'A'.
16397         * config/h8300/h8300.md (three anonymous patterns): Replace
16398         operand character 'A' with either 'T' or 'S'.
16399
16400 2002-01-24  Kazu Hirata  <kazu@hxi.com>
16401
16402         * config/h8300/h8300.c (print_operand): Remove support for
16403         operand character 'U'.
16404
16405 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
16406
16407         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
16408
16409 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
16410
16411         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
16412         values to be assigned to the stack pointer.
16413
16414 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
16415
16416         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
16417         to const_double needs to be done right for big-endian systems.
16418
16419 2002-01-24  Jason Merrill  <jason@redhat.com>
16420
16421         PR c++/2432
16422         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
16423         to can_throw_internal.
16424
16425 2002-01-23  Richard Henderson  <rth@redhat.com>
16426
16427         * fold-const.c (fold): Change UINT_MAX test to check vs precision
16428         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
16429
16430 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
16431
16432         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
16433         (symGOT2reg): Use them, then set as GOT value as unchanging.
16434         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
16435         as a temporary, if possible.
16436         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
16437         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
16438
16439 2002-01-23  Kazu Hirata  <kazu@hxi.com>
16440
16441         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
16442         accept to accept 0x80 as operands[2].
16443
16444 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
16445
16446         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
16447
16448 2002-01-23  Richard Henderson  <rth@redhat.com>
16449
16450         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
16451
16452 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
16453
16454         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
16455         (parmlist_or_identifiers_1): Verify that only a parmlist follows
16456         an attribute.
16457
16458 2002-01-23  Richard Henderson  <rth@redhat.com>
16459
16460         * expr.c (move_by_pieces_1): Extend size before negation.
16461
16462         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
16463         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
16464         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
16465         * config/m68k/t-m68kelf: Likewise.
16466
16467 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
16468
16469         * config/xtensa/elf.h: New file.
16470         * config/xtensa/lib1funcs.asm: New file.
16471         * config/xtensa/lib2funcs.S: New file.
16472         * config/xtensa/linux.h: New file.
16473         * config/xtensa/t-xtensa: New file.
16474         * config/xtensa/xtensa-config.h: New file.
16475         * config/xtensa/xtensa-protos.h: New file.
16476         * config/xtensa/xtensa.c: New file.
16477         * config/xtensa/xtensa.h: New file.
16478         * config/xtensa/xtensa.md: New file.
16479         * config.gcc (xtensa-*-elf*): New target.
16480         (xtensa-*-linux*): New target.
16481         * cse.c (canon_hash): Compare rtx pointers instead of register
16482         numbers.  This is required for the Xtensa port.
16483         * integrate.c (copy_insn_list): Handle case where the static
16484         chain is in memory and the memory address has to be copied to
16485         a register.
16486         * doc/invoke.texi (Option Summary): Add Xtensa options.
16487         (Xtensa Options): New node.
16488         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
16489
16490 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
16491
16492         * diagnostic.c (internal_error): Do ICE suppression only
16493         when ENABLE_CHECKING is not defined.
16494
16495         * c-typeck.c (require_complete_type): Return error_mark_node
16496         if type is error_mark_node.
16497
16498 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
16499
16500         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
16501         -Os and issue a warning.
16502
16503 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
16504
16505         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
16506         current (lack of) need for host configuration by hand.
16507
16508         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
16509         references.  Documentation of some target macros moved from
16510         hostconfig.texi to tm.texi.
16511
16512 2002-01-23  Will Cohen  <wcohen@redhat.com>
16513
16514         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
16515         defined.
16516
16517 2002-01-23  Kazu Hirata  <kazu@hxi.com>
16518
16519         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
16520         operand[3].
16521
16522 2002-01-23  Jason Merrill  <jason@redhat.com>
16523
16524         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
16525
16526         * function.c (assign_parms): Don't put args of inline functions
16527         into registers when not optimizing.
16528
16529 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
16530
16531         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
16532         (prologue_use): New pattern.
16533         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
16534         preference to gen_rtx_USE.
16535         (thumb_expand_prologue): Use gen_prologue_use in preference to
16536         gen_rtx_USE.
16537         (thumb_expand_epilogue): Use gen_prologue_use in preference to
16538         gen_rtx_USE.
16539
16540 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
16541
16542         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
16543
16544 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
16545
16546         PR c/3504
16547         * doc/extend.texi: Correct documentation of __alignof__.
16548
16549 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
16550
16551         * params.h: Rename arguments of DEFPARAM so that it will be
16552         recognized as a translation keyword.
16553
16554 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
16555
16556         * extend.texi: Document altivec functions.
16557         Fix N-bit adjectives in X86 builtin documentation.
16558
16559 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
16560
16561         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
16562         auto_inc_dec values.
16563
16564 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
16565
16566         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
16567         after backslash.
16568         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
16569
16570 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
16571
16572         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
16573
16574 2002-01-22  Richard Henderson  <rth@redhat.com>
16575
16576         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
16577         copy_insn not copy_rtx.
16578
16579 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
16580
16581         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
16582         "nonzero" as that might add "1" bits.  Ensure "constop" is
16583         properly sign extened.
16584         (force_to_mode): Tweak for sign extended constop.
16585
16586 2002-01-22  Richard Henderson  <rth@redhat.com>
16587
16588         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
16589         for_each_rtx instead of assuming we're already looking at the MEM.
16590         (split_small_symbolic_mem_operand): Likewise.
16591         * config/alpha/alpha.h (PREDICATE_CODES): Update.
16592         * config/alpha/alpha.md (small symbolic memory splitters): Update.
16593
16594 2002-01-22  Richard Henderson  <rth@redhat.com>
16595
16596         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
16597         sequence number for the literal.
16598         (divmoddi_internal_er): Likewise.
16599
16600 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16601
16602         PR java/4972
16603         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
16604         in LIBICONV variable.
16605         * configure: Regenerated.
16606
16607 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
16608
16609         * dependence.c (build_def_use): Remove array_idx.
16610
16611         * dwarfout.c (last_filename): Remove.
16612         (output_compile_unit_die): Remove last_filename.
16613
16614 2002-01-22  Roger Sayle  <roger@eyesopen.com>
16615             Richard Henderson  <rth@redhat.com>
16616
16617         PR opt/3640
16618         * fold-const.c (fold): Optimize unsigned comparisons against
16619         UINT_MAX (and similar unsigned constants).
16620
16621 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
16622
16623         * Makefile.in (loop.o): Depend on OPTABS_H.
16624         * loop.c (emit_prefetch_instructions): Check the prefetch operand
16625         against the predicate.
16626
16627         PR target/5379
16628         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
16629         for the address operand.
16630
16631 2002-01-22  Richard Henderson  <rth@redhat.com>
16632
16633         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
16634
16635 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16636
16637         PR other/5450
16638         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
16639         preprocessor flags.
16640
16641 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
16642
16643         * config.gcc (x86_64-*-netbsd*): New target.
16644         * config/i386/netbsd64.h: New file.
16645
16646 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
16647
16648         * regrename.c (kill_value): Fix typo.
16649
16650 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
16651
16652         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
16653
16654         * config/rs6000/rs6000.h: Same.
16655
16656         * function.c (instantiate_virtual_regs): Remove
16657         STARTING_FRAME_PHASE.
16658         (assign_stack_local_1): Same.
16659         Calculate frame phase.
16660
16661 2002-01-22  Nick Clifton  <nickc@redhat.com>
16662
16663         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
16664         variable declaration to outer scope in order to simplify
16665         future extensions.
16666         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
16667         arm_hard_regno_mode_ok.
16668         * config/arm/arm-protos.h: Add a prototype for
16669         arm_hard_regno_mode_ok.
16670         * config/arm/arm.c (soft_df_operand): Remove now redundant
16671         check for DImode values using IP_REGNUM.
16672         (nonimmediate_soft_df_operand): Remove now redundant check for
16673         DImode values using IP_REGNUM.
16674         (arm_hard_regno_mode_ok): New function. New check: make sure
16675         that DImode values are not stored in IP_REGNUM.
16676
16677         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
16678         note with a USE.
16679         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
16680
16681 2002-01-22  Jason Merrill  <jason@redhat.com>
16682
16683         * c-semantics.c (genrtl_compound_stmt): Only check nesting
16684         consistency if this COMPOUND_STMT is scoped.
16685
16686 2002-01-22  Kazu Hirata  <kazu@hxi.com>
16687
16688         * predict.c: Fix formatting.
16689         * print-tree.c: Likewise.
16690         * protoize.c: Likewise.
16691         * real.h: Likewise.
16692         * rtl.h: Likewise.
16693         * sbitmap.h: Likewise.
16694         * scan.c: Likewise.
16695         * sched-deps.c: Likewise.
16696         * sched-vis.c: Likewise.
16697         * sdbout.c: Likewise.
16698         * sibcall.c: Likewise.
16699         * ssa.c: Likewise.
16700         * ssa-ccp.c: Likewise.
16701         * ssa-dce.c: Likewise.
16702         * stmt.c: Likewise.
16703         * stor-layout.c: Likewise.
16704         * system.h: Likewise.
16705
16706 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16707
16708         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
16709         if fits in bounds of base type.
16710
16711         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
16712         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
16713         (add_bound_info, default): If can't find a context, make a
16714         SAVE_EXPR.
16715         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
16716
16717 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
16718
16719         * c-typeck.c (parser_build_binary_op): If result from
16720         build_binary_op is ERROR_MARK just return error_mark_node without
16721         further processing.
16722
16723 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
16724
16725         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
16726         Split a.out-specific bits into...
16727         * config/netbsd-aout.h: ...this.
16728         * config/netbsd-elf.h: New file.
16729         * config/alpha/netbsd-elf.h: Remove.
16730         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
16731         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
16732         (STARTFILE_SPEC): Remove redundant definition.
16733         (ENDFILE_SPEC): Likewise.
16734         (LINK_SPEC): Likewise.
16735         (CPP_SPEC): Likewise.
16736         (ASM_SPEC): Likewise.
16737         (LIB_SPEC): Likewise.
16738         (SWITCH_TAKES_ARG): Likewise.
16739         (TARGET_MEM_FUNCTIONS): Likewise.
16740         (CPP_PREDEFINES): Redefine.
16741         (ASM_FINAL_SPEC): Remove redefinition.
16742         (ASM_COMMENT_START): Redefine.
16743         (FUNCTION_PROFILER): Define.
16744         (TARGET_VERSION): Redefine.
16745         Comment and formatting cleanup.
16746         * config/i386/netbsd.h: Include <netbsd-aout.h>.
16747         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
16748         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
16749         big- or little-endian.
16750         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
16751         * config.gcc (*-*-netbsd*): Add definitions common to all
16752         NetBSD configs.
16753         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
16754         gnu_ld definitions.  Add netbsd-elf.h to and remove
16755         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
16756         tmake_file, and don't lose previous tmake_file contents.
16757         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
16758         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
16759         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
16760         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
16761         (mipsel-*-netbsd*): Rename this to...
16762         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
16763         mips/little.h to tm_file for mips*el-*.
16764         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
16765         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
16766         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
16767
16768 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16769
16770         * pa-protos.h (reg_before_reload_operand): New function prototype.
16771         * pa.c (reg_before_reload_operand): New function implementation.
16772         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
16773         contraints to "*m".
16774
16775 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16776
16777         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
16778
16779 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16780
16781         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
16782         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
16783         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
16784         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
16785         (ENDFILE_SPEC): Undefine.
16786         (STARTFILE_SPEC): Redefine for PA.
16787
16788 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16789
16790         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
16791
16792 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
16793
16794         * config.gcc: Add entries to supported PowerPC --with-cpu
16795         types.
16796
16797 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
16798
16799         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
16800         true for 64-bit mode only SSE registers in 32-bit mode.
16801
16802 2002-01-21  Kazu Hirata  <kazu@hxi.com>
16803
16804         * unwind-dw2.c: Fix formatting.
16805         * unwind-dw2-fde.c: Likewise.
16806         * unwind-dw2-fde.h: Likewise.
16807         * unwind-pe.h: Likewise.
16808         * varasm.c: Likewise.
16809         * varray.h: Likewise.
16810
16811 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
16812
16813         Remove workaround for register stack overwrite bug in mmix.
16814         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
16815         support for TARGET_REG_STACK_FILL_BUG.
16816         * config/mmix/mmix.h: Remove member has_call_without_parameters.
16817         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
16818         Delete.
16819         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
16820         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
16821         -mno-reg-stack-fill-bug-workaround.
16822         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
16823         machine member has_call_without_parameters.
16824         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
16825         -mreg-stack-fill-bug-workaround and
16826         -mno-reg-stack-fill-bug-workaround.
16827         (MMIX Options): Ditto.
16828
16829 2002-01-21  Kazu Hirata  <kazu@hxi.com>
16830
16831         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
16832         as appropriate.
16833         Remove redundant code.
16834
16835 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
16836
16837         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
16838         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
16839         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
16840         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
16841         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
16842         out target macro definitions and non-target-specific comments
16843         mostly taken from old versions of the manual.
16844
16845 2002-01-20  Kazu Hirata  <kazu@hxi.com>
16846
16847         * config/h8300/h8300.h: Fix comment formatting.
16848         * config/ia64/aix.h: Likewise.
16849         * config/ia64/ia64-protos.h: Likewise.
16850         * config/ia64/ia64.c: Likewise.
16851         * config/ia64/ia64.h: Likewise.
16852         * config/ia64/ia64intrin.h: Likewise.
16853         * config/ia64/linux.h: Likewise.
16854         * config/ia64/unwind-aix.c: Likewise.
16855         * config/ia64/unwind-ia64.c: Likewise.
16856
16857 2002-01-20  Kazu Hirata  <kazu@hxi.com>
16858
16859         * config/h8300/h8300.c: Revise comments about shift code.
16860
16861 2002-01-20  Kazu Hirata  <kazu@hxi.com>
16862
16863         * config/h8300/h8300.c (function_arg): Update a comment.
16864
16865 2002-01-20  Kazu Hirata  <kazu@hxi.com>
16866
16867         * config/h8300/h8300.md: Update the comments at the beginning
16868         of the file.
16869
16870 2002-01-20  Kazu Hirata  <kazu@hxi.com>
16871
16872         * config/i370/i370.c: Fix comment formatting.
16873         * config/i370/i370.h: Likewise.
16874         * config/i370/i370.md: Likewise.
16875         * config/i370/linux.h: Likewise.
16876
16877 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16878
16879         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
16880
16881         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
16882         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
16883         in incomplete case.
16884
16885 2002-01-20  Graham Stott  <grahams@redhat.com>
16886
16887         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
16888
16889 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16890
16891         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
16892
16893 2002-01-19  Tom Rix  <trix@redhat.com>
16894
16895         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
16896
16897 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
16898
16899         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
16900
16901         * function.c (assign_stack_local_1): Adjust x_frame_offset with
16902         STARTING_FRAME_PHASE.
16903         (STARTING_FRAME_PHASE): New.
16904         (instantiate_virtual_regs): Check saneness of
16905         STARTING_FRAME_PHASE.
16906
16907         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
16908
16909 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
16910
16911         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
16912
16913 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16914
16915         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
16916         be used for bootstrapping GCC 3.0.
16917
16918 2002-01-18  Kazu Hirata  <kazu@hxi.com>
16919
16920         * config/h8300/h8300.md: Fix an insn length.
16921
16922 2002-01-18  Kazu Hirata  <kazu@hxi.com>
16923
16924         * bitmap.h: Fix comment formatting.
16925         * combine.c: Likewise.
16926         * cppfiles.c: Likewise.
16927         * c-pragma.h: Likewise.
16928         * c-typeck.c: Likewise.
16929         * df.c: Likewise.
16930         * dwarf2out.c: Likewise.
16931         * function.c: Likewise.
16932         * gcc.c: Likewise.
16933         * genattrtab.c: Likewise.
16934         * gthr-win32.h: Likewise.
16935         * haifa-sched.c: Likewise.
16936         * predict.c: Likewise.
16937         * rtlanal.c: Likewise.
16938         * rtl.h: Likewise.
16939         * unwind-dw2-fde.h: Likewise.
16940         * unwind-pe.h: Likewise.
16941         * vmsdbgout.c: Likewise.
16942
16943 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16944
16945         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
16946         if type_required and passed decl.
16947
16948 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
16949
16950         * config.gcc (cpu_type): Include altivec.h in powerpc
16951         extra_headers.
16952         Same for darwin.
16953
16954         * config/rs6000/altivec.h: New.
16955
16956 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
16957
16958         * doc/install.texi (*-ibm-aix*): Update assembler and exception
16959         handling information.
16960         * doc/trouble.texi (Interoperation): Add libstdc++ information
16961         for AIX.
16962         (Misunderstandings): Add template instantiation and static template
16963         member information for AIX.
16964
16965 2002-01-17  Jason Merrill  <jason@redhat.com>
16966
16967         * dbxout.c (dbxout_type): Support const and volatile.
16968
16969         * except.c (add_partial_entry): Remove backwards compatibility code.
16970         (end_protect_partials): Likewise.
16971
16972 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
16973
16974         * config/ia64/ia64.md (prologue_use): New.
16975         * config/ia64/ia64.c (ia64_expand_prologue): Use
16976         gen_prologue_use instead of gen_rtx_USE.
16977         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
16978         as CODE_FOR_pred_rel_mutex.
16979         (ia64_sched_reorder2): Likewise.
16980
16981 2002-01-16  Eric Christopher  <echristo@redhat.com>
16982
16983         * config/mips/r3900.h: Reformat.
16984         (SUBTARGET_CPP_SIZE_SPEC): Remove.
16985         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
16986         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
16987         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
16988         * config/mips/t-elf: Remove mips3 multilib.
16989
16990 2002-01-16  H.J. Lu <hjl@gnu.org>
16991
16992         * config/mips/linux.h: Include "mips/abi64.h".
16993
16994 2002-01-16  H.J. Lu <hjl@gnu.org>
16995
16996         * config/mips/t-linux: New.
16997
16998         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
16999
17000         * config/mips/linux.h: Don't include "gofast.h".
17001         (INIT_SUBTARGET_OPTABS): Removed.
17002
17003 2002-01-16  Kazu Hirata  <kazu@hxi.com>
17004
17005         * config/h8300/h8300-protos.h: Replace emit_a_shift with
17006         output_a_shift.
17007         * config/h8300/h8300.c: Likewise.
17008         * config/h8300/h8300.md: Likewise.
17009
17010 2002-01-16  Kazu Hirata  <kazu@hxi.com>
17011
17012         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
17013         spaces after an opcode name.
17014         (pushqi1_h8300hs): Likewise.
17015         (pushhi1_h8300hs): Likewise.
17016
17017 2002-01-16  Kazu Hirata  <kazu@hxi.com>
17018
17019         * doc/extend.texi: Replace "option" with "attribute"
17020         appropriately.
17021
17022 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
17023
17024         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
17025         (and:DI () (const_int -8)).
17026         (split_small_symbolic_mem_operand): Split
17027         (mem (and:DI () (const_int -8)).
17028
17029 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
17030
17031         PR target/5309:
17032         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
17033         same way as TYPE_IMUL.
17034         (ultrasparc_sched_reorder): Likewise.
17035         * config/sparc/sparc.md (type): Add comment to update
17036         ultrasparc_sched_reorder when making changes.
17037
17038 2002-01-16  Kazu Hirata  <kazu@hxi.com>
17039
17040         * doc/invoke.texi: Change the dump file name of block
17041         reordering pass from 28.bbro to 29.bbro.
17042         Mention -dk option.
17043
17044 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
17045
17046         * i386.md (minsf splitter): Fix pasto.
17047
17048 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
17049
17050         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
17051         to frame pointer initialisation instruction.
17052         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
17053         initialisation instruction.
17054         (soft_df_operand): Do not accept the IP register.
17055         (nonimmediate_soft_df_operand): Do not accept the IP register.
17056
17057 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
17058
17059         PR target/5357:
17060         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
17061         MASK_V8 being both set.
17062
17063 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
17064
17065         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
17066         insn for GOT register; add REG_MAYBE_DEAD notes instead.
17067         config/s390/s390.md (call, call_value): Add GOT register to
17068         CALL_INSN_FUNCTION_USAGE where needed.
17069         (call_exp, call_value_exp): New.
17070
17071 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
17072
17073         * config/arm/arm.c: General formatting tidy up.
17074
17075 2002-01-16  Graham Stott  <grahams@redhat.com>
17076
17077         * calls.c (try_to_integrate): Use "(size_t)" intermediate
17078         cast and when casting an integer literal to "rtx" pointer.
17079         (expand_call): Likewise.
17080         * flow.c (try_pre_increment): Likewise.
17081         (find_use_as_address): Likewise.
17082         * integrate.c (expand_iline_function): Likewise.
17083         * regmove.c (try_auto_increment): Likewise.
17084
17085 2002-01-16  Graham Stott  <grahams@redhat.com>
17086
17087         * sched-rgn.c (passed): Use sbitmap_free.
17088         (header): Likewise.
17089         (inner): Likewise.
17090         (in_queue): Likewise.
17091         (in_stack): Likewise.
17092
17093 2002-01-15  Eric Christopher  <echristo@redhat.com>
17094
17095         * flow.c (propagate_one_insn): Change to use fatal_insn.
17096
17097 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17098
17099         * expmed.c (extract_fixed_bit_field): Remove unused code.
17100         * system.h: Poison SLOW_ZERO_EXTEND.
17101         * doc/tm.texi: Remove.
17102         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
17103         * config/arm/arm.h: Likewise.
17104         * config/avr/avr.h: Likewise.
17105         * config/clipper/clipper.h: Likewise.
17106         * config/convex/convex.h: Likewise.
17107         * config/d30v/d30v.h: Likewise.
17108         * config/dsp16xx/dsp16xx.h: Likewise.
17109         * config/elxsi/elxsi.h: Likewise.
17110         * config/fr30/fr30.h: Likewise.
17111         * config/h8300/h8300.h: Likewise.
17112         * config/i370/i370.h: Likewise.
17113         * config/i386/i386.h: Likewise.
17114         * config/m68k/m68k.h: Likewise.
17115         * config/mips/mips.h: Likewise.
17116         * config/ns32k/ns32k.h: Likewise.
17117         * config/pdp11/pdp11.h: Likewise.
17118         * config/pj/pj.h: Likewise.
17119         * config/s390/s390.h: Likewise.
17120         * config/sh/sh.h: Likewise.
17121         * config/stormy16/stormy16.h: Likewise.
17122         * config/v850/v850.h: Likewise.
17123         * config/vax/vax.h: Likewise.
17124         * config/we32k/we32k.h: Likewise.
17125
17126 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
17127
17128         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
17129         (altivec_lvsl): Change constraint to b.
17130         (altivec_lvsr): Same.
17131         (altivec_lvebx): Same.
17132         (altivec_lvehx): Same.
17133         (altivec_lvewx): Same.
17134         (altivec_lvxl): Same.
17135         (altivec_lvx): Same.
17136         (altivec_stvx): Add parallel.
17137         (altivec_stvxl): Same.
17138         (altivec_stvehx): Same.
17139         (altivec_stvebx): Same.
17140         (altivec_stvebx): Same.
17141
17142 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
17143
17144         * config.gcc: Change altivec.h to altivec-defs.h.
17145
17146         * config/rs6000/altivec.h: Delete.
17147
17148         * config/rs6000/altivec-defs.h: Add.
17149
17150 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17151
17152         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
17153         and UMOD modes.
17154
17155         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
17156         less than or equal to eight bytes.
17157
17158         * vax.md (andsi3): Remove constraints and change SET destination
17159         operand type to nonimmediate_operand.
17160         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
17161         when it is a CONST_INT.
17162
17163 2002-01-15  Jason Merrill  <jason@redhat.com>
17164
17165         * c-common.def (FILE_STMT): New code.
17166         * c-common.c (statement_code_p): It's a statement.
17167         * c-common.h (stmt_tree_s): Add x_last_filename.
17168         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
17169         (last_expr_filename): New macro.
17170         * c-semantics.c (begin_stmt_tree): Initialize it.
17171         (add_stmt): If the filename changed, also insert a
17172         FILE_STMT.
17173         (expand_stmt): Handle seeing one.
17174
17175 2002-01-15  Eric Christopher  <echristo@redhat.com>
17176
17177         * flow.c (propagate_one_insn): Add error message and print out
17178         insn for debugging.
17179
17180 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
17181
17182         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
17183         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
17184         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
17185         TRAMPOLINE_ALIGNMENT.
17186         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
17187         to be in bits.
17188         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
17189         PCC_BITFIELD_TYPE_MATTERS.
17190         * config/interix.h (STDC_VALUE): Remove.  Use
17191         STDC_0_IN_SYSTEM_HEADERS.
17192         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
17193         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
17194         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
17195
17196 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17197
17198         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
17199         not work on this platform currently.
17200
17201 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
17202
17203         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
17204         readonly_warning in _().
17205
17206 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
17207
17208         * gcc.c (delete_if_ordinary): Backout previous change.
17209
17210 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17211
17212         * config/h8300/h8300.c (print_operand): Remove support for
17213         unused operand characters.
17214
17215         * read-rtl.c: Fix formatting.
17216         * real.c: Likewise.
17217         * recog.c: Likewise.
17218         * regclass.c: Likewise.
17219         * regmove.c: Likewise.
17220         * reg-stack.c: Likewise.
17221         * reload1.c: Likewise.
17222         * rtlanal.c: Likewise.
17223
17224 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17225
17226         * config/i386/i386.c: Fix formatting.
17227
17228 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
17229
17230         * c-typeck.c (process_init_element): Don't save_expr
17231         COMPOUND_LITERAL_EXPR if just its initializer will be used.
17232
17233 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
17234
17235         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
17236         emit optional traceback table if optimize_size or TARGET_ELF.
17237         * config/rs6000/rs6000.md (prefetch): New.
17238
17239 2002-01-15  Andreas Jaeger  <aj@suse.de>
17240
17241         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
17242
17243 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17244
17245         * mips-tfile.c: Fix formatting.
17246
17247 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
17248
17249         * unroll.c (final_reg_note_copy): Fix previous commit.
17250
17251 2002-01-14  Kazu Hirata  <kazu@hxi.com>
17252
17253         * config/h8300/h8300-protos.h: Remove the prototype for
17254         eq_operator.
17255         * config/h8300/h8300.c (eq_operator): Remove.
17256
17257 2002-01-14  Richard Henderson  <rth@redhat.com>
17258
17259         * config/i386/i386.md (prefetch): Tidy.
17260         (prefetch_3dnow): Fix locality operand.
17261
17262 2002-01-14  Richard Henderson  <rth@redhat.com>
17263
17264         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
17265         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
17266
17267 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
17268
17269         * reload1.c (reload_combine): Pass reg_sum replacement through
17270         copy_rtx in loop performing multiple changes.
17271
17272 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
17273
17274         * except.c (remove_unreachable_regions): New.
17275         (free_eh_status): Clear exception_handler_labels.
17276         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
17277         (find_exception_handler_labels): Don't add the same label more than
17278         once.
17279         (remove_exception_handler_label): Don't die if
17280         find_exception_handler_labels hasn't been called for the current
17281         function yet.
17282
17283 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
17284
17285         * toplev.c (rest_of_compilation): Rebuild jump labels after
17286         gcse.
17287
17288 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
17289
17290         * doc/extend.texi: Move documentation of X86 built-in functions
17291         here.
17292         * doc/invoke.texi: From here.
17293         * doc/sourcebuild.texi: Document location of documentation for
17294         machine built-in functions.
17295
17296 2002-01-13  Christopher Faylor  <cgf@redhat.com>
17297
17298         * cppfiles.c (TEST_THRESHOLD): New macro.
17299         (SHOULD_MMAP): Ditto.
17300         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
17301         be used.
17302
17303 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
17304
17305         * unroll.c (final_reg_note_copy): Properly handle
17306         REG_LABEL
17307         (unroll_loops): Fix LOOP_CONDITION heuristics.
17308
17309 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
17310
17311         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
17312         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
17313
17314 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
17315
17316         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
17317         threaded loop.
17318
17319 2002-01-14  Tom Rix  <trix@redhat.com>
17320
17321         * config/rs6000/rs6000.md: Fix typo with sradi.
17322
17323 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
17324
17325         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
17326         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
17327         (clrstrdi, clrstrsi): Adapt callers.
17328
17329         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
17330
17331         (movti splitter): Never use register 0 as base register.
17332
17333 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17334
17335         * combine.c (simplify_shift_const): Always generate new rtx
17336         for shift expression instead of reusing given expression.
17337
17338 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17339
17340         * config/alpha/alpha.c (alpha_expand_mov): Don't call
17341         alpha_legitimize_address unless mode is Pmode.
17342
17343 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
17344
17345         * doc/md.texi (Modifiers): Document the '*' constraint for the
17346         user.
17347
17348         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
17349         * doc/extend.texi (Function Attributes): 'interrupt' is valid
17350         for xstormy16 too.
17351
17352 2002-01-13  Richard Henderson  <rth@redhat.com>
17353
17354         * reload.c (find_reloads): Use a hard reg destination as reload reg
17355         for an input reload of the source.
17356
17357 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17358
17359         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
17360         more generic.
17361
17362 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
17363
17364         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
17365         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
17366
17367         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
17368
17369 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17370
17371         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
17372
17373 2002-01-12  Tom Rix  <trix@redhat.com>
17374
17375         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
17376         TARGET_POWERPC64.
17377
17378 2002-01-12  Richard Henderson  <rth@redhat.com>
17379
17380         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
17381
17382         * doc/invoke.texi: Update Alpha options.
17383
17384         * doc/invoke.texi: Update i386 built-in function lists.
17385
17386 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
17387
17388         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
17389         referencing outside.
17390
17391 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17392
17393         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
17394         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
17395         offsets, and change line folding.
17396         * optabs.c (expand_binop): Remove warnings.
17397         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
17398
17399 2002-01-12  Graham Stott <grahams@redhat.com>
17400
17401         * attribs.c (handle_deprecated_attribute): constify WHAT.
17402         * diagnostic.c (warn_deprecated_use): Add braces, fixes
17403         dangling else warning and constify WHAT.
17404         * except.h (struct function, struct inline_remap): Move
17405         struct tag forward defs before all prototypes.
17406         (duplicate_eh_regions): Whitespace.
17407
17408 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
17409
17410         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
17411         MODE_BASE_REG_CLASS.
17412         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
17413
17414 2002-01-12  Richard Henderson  <rth@redhat.com>
17415
17416         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
17417         (ix86_expand_vector_move): New.
17418         (bdesc_2arg): Remove andps, andnps, orps, xorps.
17419         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
17420         Remove old prefetch builtins.  Special case the logicals removed above.
17421         (ix86_expand_builtin): Likewise.
17422         (safe_vector_operand): Use V4SFmode, not TImode.
17423         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
17424         (ix86_expand_timode_binop_builtin): New.
17425         * config/i386/i386-protos.h: Update.
17426         * config/i386/i386.h (enum ix86_builtins): Update.
17427         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
17428         Use ix86_expand_vector_move in vector move expanders.
17429         (movti_internal, movti_rex64): Add xorps alternative.
17430         (sse_clrv4sf): Rename and adjust from sse_clrti.
17431         (prefetch): Don't work so hard.
17432         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
17433         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
17434         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
17435
17436 2002-01-11  Richard Henderson  <rth@redhat.com>
17437
17438         * config/i386/mmintrin.h: New file.
17439         * config/i386/xmmintrin.h: New file.
17440         * config.gcc (i?86-*-*): Add extra_headers.
17441         * simplify-rtx.c (simplify_unary_operation): Handle saturating
17442         truncation codes.
17443         (simplify_binary_operation): Handle saturating arithmetic codes.
17444         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
17445         not the lowpart subreg.
17446         (ix86_expand_builtin): Return a TImode dummy register instead of 0
17447         on error.
17448         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
17449
17450 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17451
17452         * conflict.c (conflict_graph_compute): Free regsets when finished.
17453         * ssa.c (compute_coalesced_reg_partition): Likewise.
17454
17455 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
17456
17457         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
17458         every where we allocate a register.
17459
17460 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17461
17462         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
17463         * lcm.c (compute_earliest, compute_farthest): Likewise.
17464
17465 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
17466
17467         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
17468
17469 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
17470
17471         * doc/rtl.texi (Insns): Fix 2 typos.
17472
17473 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
17474
17475         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
17476         options.  Use @table @gcctabopt for MMIX options.  Add index
17477         entries for MMIX options.  Start new paragraph with first
17478         heading of the machine-dependent options.
17479
17480 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17481
17482         PR other/5299
17483         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
17484         * combine.c (force_to_mode): Same.
17485         * reload1.c (clear_reload_reg_in_use): Same.
17486
17487 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
17488
17489         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
17490         and 'subtargets'.
17491
17492 2002-01-11  Andreas Jaeger  <aj@suse.de>,
17493             Brad Lucier <lucier@math.purdue.edu>
17494
17495         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
17496         mcpu.
17497
17498 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
17499
17500         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
17501         Protect with IN_LIBGCC.
17502         (LINK_EH_SPEC): Add required trailing space.
17503
17504 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
17505
17506         * c-tree.h: Move function declarations so that they are listed
17507         under the filename which contains them.
17508         (check_identifier, finish_decl_top_level,
17509         lookup_name_current_level_global, shadow_record_fields): Remove.
17510
17511 2002-01-11  Andreas Jaeger  <aj@suse.de>
17512
17513         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
17514         march.
17515
17516 2002-01-10  Richard Henderson  <rth@redhat.com>
17517
17518         * config/alpha/alpha.c (print_operand): Add 'J'.
17519         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
17520         new operand with the sequence number for the lituse.  When splitting
17521         the insns, use gen_movdi_er_high_g and generate a sequence number.
17522         (gen_movdi_er_high_g): Print the sequence number if non-zero.
17523
17524 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
17525
17526         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
17527         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
17528         stvxl.
17529         (altivec_expand_builtin): Same.
17530         (altivec_expand_stv_builtin): New.
17531
17532         * config/rs6000/rs6000.h (rs6000_builtins): Same.
17533
17534         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
17535         ("altivec_lvehx"): New.
17536         ("altivec_lvewx"): New.
17537         ("altivec_lvxl"): New.
17538         ("altivec_lvx"): New.
17539         ("altivec_stvx"): New.
17540         ("altivec_stvebx"): New.
17541         ("altivec_stvehx"): New.
17542         ("altivec_stvewx"): New.
17543         ("altivec_stvxl"): New.
17544
17545 2002-01-10  Richard Henderson  <rth@redhat.com>
17546
17547         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
17548         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
17549         care not to delete instructions twice.
17550
17551 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
17552
17553         * toplev.c: Don't declare environ (it's not used anywhere).
17554         * configure.in: Don't check for declaration of environ.
17555         * config/i386/xm-mingw32.h: Don't #define environ.
17556         * config.in, configure: Regenerate.
17557
17558 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
17559
17560         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
17561         * configure: Regenerate.
17562
17563         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
17564         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
17565         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
17566         alpha/xm-vms.h.
17567         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
17568         LIMITS_H_TEST here, not in m68k/x-next.
17569         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
17570         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
17571
17572         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
17573         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
17574         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
17575
17576         * config/i386/x-djgpp: Renamed i386/t-djgpp.
17577         * config/m88k/x-dolph: Renamed m88k/t-dolph.
17578         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
17579         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
17580         replacement of quadlib.asm with quadlib.c.
17581
17582         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
17583         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
17584         config/rs6000/xm-beos.h: Delete file.
17585
17586         * config.gcc: Update to match above changes.
17587
17588 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17589
17590         * config/h8300/h8300.h: Fix comment typos.
17591         * config/h8300/h8300.md: Likewise.
17592         * config/h8300/lib1funcs.asm: Likewise.
17593
17594 2002-01-10  Dale Johannesen  <dalej@apple.com>
17595
17596         PR optimization/5269
17597         * unroll.c (precondition_loop_p): Make *increment be the correct
17598         sign when n_iterations known, to avoid confusing caller.
17599
17600 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17601
17602         * doc/extend.texi (deprecated): Fix a typo.
17603
17604 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
17605
17606         * basic-block.h (update_br_prob_note): Declare.
17607         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
17608         (try_forward_edges): Care negative frequencies and update note.
17609         (outgoing_edges_match): Tweek conditional merging heuristics.
17610         (try_crossjump_to_edge): use update_br_prob_note.
17611         * cfglayout.c (fixup_reorder_chain): Likewise.
17612         * cfrtl.c (update_br_prob_note): New.
17613         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
17614
17615         * i386.c (ix86_decompose_address): Return -1 if address contains
17616         shift.
17617         (legitimate_address_p): Require ix86_decompose_address to return 1.
17618
17619         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
17620         (cprop_insn): Likewise.
17621
17622 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17623
17624         * toplev.c: Fix formatting.
17625         * tree.c: Likewise.
17626         * tree-dump.c: Likewise.
17627         * unroll.c: Likewise.
17628         * unwind-dw2.c: Likewise.
17629         * unwind-dw2-fde.c: Likewise.
17630         * unwind-dw2-fde-glibc.c: Likewise.
17631         * unwind-sjlj.c: Likewise.
17632
17633 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
17634
17635         * doc/invoke.texi: Document PDP-11 options.
17636
17637 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17638
17639         * config/h8300/h8300.h: Fix formatting.
17640
17641 2002-01-10  Ira Ruben   <ira@apple.com>
17642
17643         Add __attribute__ ((deprecated)).
17644         * extend.texi: Document __attribute__ ((deprecated)).
17645         * invoke.texi: Document -Wno-deprecated-declarations.
17646         * testsuite/g++.dg/other/deprecated.C: New C++ test.
17647         * testsuite/gcc.dg/deprecated.c: New C test.
17648         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
17649         (c_common_attribute_table): Add "deprecated" entry.
17650         (handle_deprecated_attribute): New function.
17651         * c-decl.c (deprecated_states): New enum.
17652         deprecated_state: State of "deprecated" handling.
17653         (start_decl): Set deprecated_state based on attributes.
17654         (grokdeclarator): Test for deprecated uses, propagate attribute.
17655         * c-typeck.c (build_component_ref): Test for deprecated fields.
17656         (build_external_ref): Test for deprecated primaries.
17657         * diagnostic.c (warn_deprecated_use) New function to issue
17658         warnings about __attribute__ ((depricated)) references.
17659         * flags.h (warn_deprecated_decl): Extern declared for
17660         -W[no-]deprecated-declarations option.
17661         * print-tree.c (print_node): Show deprecated flag status.
17662         * toplev.c (warn_deprecated_decl): Defined.
17663         (W_options): Added "deprecated-declaration".
17664         * toplev.h (warn_deprecated_use): Extern declared.
17665         * tree.h (struct tree_common): Define deprecated_flag.
17666         (TREE_DEPRECATED): New macro to access flag.
17667         * cp/call.c (build_call): Test for deprecated calls.
17668         * cp/class.c (add_implicitly_declared_members): Set global
17669         flag to tell grokdeclarator to not issue deprecated warnings.
17670         * cp/cp-tree.h: Add extern for adding_implicit_members.
17671         * cp/decl.c (deprecated_states): New enum.
17672         (start_decl): Set deprecated_state based on attributes.
17673         (grokdeclarator): Test for deprecated uses, propagate attribute.
17674         * cp/lex.c (do_identifier): Test for deprecated primaries.
17675         * cp/typeck.c (build_component_ref): Test for deprecated fields.
17676
17677 2002-01-10  Ira Ruben   <ira@apple.com>
17678
17679         Fix to assign attributes to inline member functions.
17680         * cp/decl.c (start_method): Handle attrlist.
17681
17682 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17683
17684         * combine.c (expand_field_assignment): Use subreg_lsb().
17685
17686 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
17687
17688         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
17689         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
17690         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
17691         Recurse for any operand of AND as long as constant is non-zero.
17692
17693 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17694
17695         * config/h8300/h8300.md: Remove constraints from expanders.
17696
17697 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17698
17699         * varasm.c: Fix formatting.
17700         * varray.c: Likewise.
17701         * vmsdbgout.c: Likewise.
17702         * xcoffout.c: Likewise.
17703
17704 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
17705
17706         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
17707         update edge probabilities to match.
17708
17709 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
17710
17711         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
17712         dependencies.
17713         * doc/languages.texi, doc/sourcebuild.texi: New files.
17714         * doc/configfiles.texi: Make a subsubsection.  Update.
17715         * doc/configterms.texi: Add @node.  Remove warning that this isn't
17716         instructions for building GCC.
17717         * doc/makefile.texi: Make a subsection.
17718         * doc/gccint.texi: Update.
17719
17720 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
17721
17722         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
17723
17724 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
17725
17726         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
17727
17728 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
17729
17730         * optabs.c (expand_fix): Look for wider integer modes first.
17731
17732         * i386.md (mov?f): Avoid the fake const double trick for medium
17733         memory model.
17734         (min?f*/max?f*): Prohibit memory operands for i387 variant.
17735         (fop_df_4): Disable for SSE compilation.
17736
17737 2002-01-10  Graham Stott  <grahams@redhat.com>
17738
17739         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
17740         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
17741
17742 2002-01-10  Richard Henderson  <rth@redhat.com>
17743
17744         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
17745
17746 2002-01-10  Richard Henderson  <rth@redhat.com>
17747
17748         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
17749         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
17750
17751 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17752
17753         * combine.c (can_combine_p): Fix a comment typo.
17754
17755 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
17756
17757         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
17758         empty list correctly.  Change loop index $t to $f for
17759         consistency with rest of Makefile.
17760
17761 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
17762
17763         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
17764         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
17765
17766         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
17767         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
17768         (altivec_init_builtins): Same.
17769         (altivec_expand_unop_builtin): Return NULL_RTX on error.
17770         (altivec_expand_binop_builtin): Same.
17771         (altivec_expand_ternop_builtin): Same.
17772         (bdesc_dst): New.
17773
17774         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
17775         ("altivec_vctuxs"): Fix typo.
17776         ("altivec_vnmsubfp"): Same.
17777         ("altivec_dssall"): New.
17778         ("altivec_mfvscr"): New.
17779         ("altivec_dss"): New.
17780         ("altivec_lvsl"): New.
17781         ("altivec_lvsr"): New.
17782         ("altivec_dstt"): New.
17783         ("altivec_dstst"): New.
17784         ("altivec_dststt"): New.
17785         ("altivec_dst"): New.
17786
17787         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
17788         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
17789
17790 2002-01-09  Richard Henderson  <rth@redhat.com>
17791
17792         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
17793
17794 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
17795
17796         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
17797         function.
17798         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
17799         prototype.
17800         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
17801
17802 2002-01-09  Kazu Hirata  <kazu@hxi.com>
17803
17804         * read-rtl.c: Fix formatting.
17805         * real.c: Likewise.
17806         * regclass.c: Likewise.
17807         * regrename.c: Likewise.
17808         * reg-stack.c: Likewise.
17809         * reload1.c: Likewise.
17810         * reload.c: Likewise.
17811         * rtl.c: Likewise.
17812
17813 2002-01-09  Kazu Hirata  <kazu@hxi.com>
17814
17815         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
17816         to extract items in the expr_list chain.
17817
17818 2002-01-09  Richard Henderson  <rth@redhat.com>
17819
17820         * config/vax/vax.c (vax_rtx_cost): Never abort.
17821
17822         * config/vax/vax.h (REAL_ARITHMETIC): Define.
17823
17824 2002-01-09  Jan Hubicka  <jh@suse.cz>
17825
17826         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
17827
17828 2002-01-09  Richard Henderson  <rth@redhat.com>
17829
17830         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
17831         Unify code from various alternatives.
17832
17833 2002-01-09  Richard Henderson  <rth@redhat.com>
17834
17835         * regrename.c (copy_value): Ignore the copy if the source register
17836         is present in the value chain with a narrower mode.
17837
17838 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
17839
17840         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
17841         for the c4x target. Also improve layout.
17842
17843 2002-01-09  Richard Henderson  <rth@redhat.com>
17844
17845         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
17846         * config/m32r/m32r.md (and ior xor splitters): Swap operands
17847         to match insn patterns.
17848
17849 2002-01-09  Richard Henderson  <rth@redhat.com>
17850
17851         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
17852         (copyprop_hardreg_forward_1): Likewise.
17853
17854 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17855
17856         * pa.md (decrement_and_branch_until_zero): Change predicate for
17857         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
17858
17859 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
17860
17861         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
17862         gets undefined. For Darwin.
17863
17864 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
17865
17866         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
17867
17868 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17869
17870         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
17871
17872 2002-01-08  Richard Henderson  <rth@redhat.com>
17873
17874         * regrename.c (copy_value): Ignore overlapping copies.
17875
17876 2002-01-08  Richard Henderson  <rth@redhat.com>
17877
17878         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
17879         as needed to avoid shared structure.
17880
17881 2002-01-08  Kazu Hirata  <kazu@hxi.com>
17882
17883         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
17884         H8/300H and H8/S.
17885
17886 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
17887
17888         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
17889         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
17890         documentation of obsolete macros.
17891         * system.h: Poison these macros.
17892         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
17893         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
17894         config/c4x/c4x.h, config/clipper/clipper.h,
17895         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
17896         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
17897         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
17898         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
17899         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
17900         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
17901         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
17902         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
17903         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
17904         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
17905         config/sparc/sparc.h, config/stormy16/stormy16.h,
17906         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
17907         definitions and commented out definitions of obsolete macros.
17908         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
17909         of MAX_INT_TYPE_SIZE.
17910
17911 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
17912
17913         * config/s390/s390.c (s390_preferred_reload_class): Never
17914         return ADDR_REGS if it isn't a subset of the given class.
17915         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
17916         FP_REGS, but all superclasses as well.
17917
17918         * config/s390/s390.c (s390_function_profiler): Fix thinko.
17919
17920         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
17921         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
17922         must not be a const_int.
17923
17924 2002-01-08  Richard Henderson  <rth@redhat.com>
17925
17926         * Makefile.in (toplev.o): Depend on options.h.
17927         (gcc.o): Depend on specs.h.
17928
17929 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
17930
17931         * expr.c (store_expr): Convert VOIDmode constants back to target's
17932         mode.
17933
17934 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17935
17936         * doc/invoke.texi: Markup gcc as @command.  Refer to
17937         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
17938         of http://gcc.gnu.org/thanks.html.
17939
17940 2002-01-08  Dale Johannesen  <dalej@apple.com>
17941
17942         * config/rs6000/rs6000.md: Add missing int register
17943         target case to movdf_low.
17944
17945 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
17946
17947         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
17948         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
17949         (cppinit.o): Depend on except.h.
17950         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
17951         s-specs): New rules.
17952
17953         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
17954         Don't create specs.h/options.h/gencheck.h here.  Remove
17955         unnecessary variable settings from last argument of AC_OUTPUT.
17956         * config.in, configure: Regenerate.
17957         * intl.c: Hardcode package name as "gcc".
17958
17959         * cppinit.c: Include except.h.
17960         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
17961         appropriate.
17962         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
17963         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
17964         (!)USING_SJLJ_EXCEPTIONS.
17965         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
17966
17967 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
17968
17969         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
17970         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
17971         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
17972         documentation of obsolete macros.
17973         * system.h: Poison these macros.
17974         * config/d30v/d30v.h, config/ns32k/encore.h,
17975         config/stormy16/stormy16.h: Remove definitions and commented out
17976         definitions of obsolete macros.
17977
17978 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
17979
17980         * objc/objc-act.c (handle_class_ref): Mark the declaration of
17981         %sobjc_class_ref_%s as used - to prevent unwanted compiler
17982         warnings.
17983
17984 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
17985
17986         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
17987         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
17988         to insn adjusting stack/frame pointer.
17989         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
17990         accept operands that cause the insn to be non-splittable.
17991
17992 2002-01-08  Graham Stott  <grahams@redhat.com>
17993
17994         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
17995         (C_TYPE_FIELDS_VOLATILE): Likewise.
17996         (C_TYPE_BEING_DEFINED): Likewise.
17997         (C_IS_RESERVED_WORD): Likewise.
17998         (C_TYPE_VARIABLE_SIZE): Likewise.
17999         (C_DECL_VARIABLE_SIZE): Likewise.
18000         (C_MISSING_PROTOTYPE_WARNED): Likewise.
18001         (C_SET_EXP_ORIGINAL_CODE): Likewise.
18002         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
18003         parenthesis.
18004         (C_DECL_ANTICIPATED): Likewise.
18005         (c_build_type_variant): Add parenthesis.
18006
18007 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
18008
18009         * gcc.c (option_map): Remove --version.
18010         (process_command): Handle -fversion following the GNU Coding
18011         Standards.  Partially addresses PR other/704.
18012
18013 2002-01-08  Graham Stott  <grahams@redhat.com>
18014
18015         * combine.c (combine_instructions): Fix typo.
18016
18017 2002-01-08  Graham Stott  <grahams@redhat.com>
18018
18019         * debug.h: Use "tree" and "rtx" throughout.
18020
18021         * debug.c: Likewise.
18022
18023 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
18024
18025         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
18026         constant pool, use the pool's version of the symbol instead.
18027
18028 2002-01-07  Richard Henderson  <rth@redhat.com>
18029
18030         * regrename.c (find_oldest_value_reg): Ignore the value chain if
18031         the original register was copied in a mode with a fewer number of
18032         hard registers than the desired mode.
18033         (copyprop_hardreg_forward_1): Likewise.
18034         (debug_value_data): Fix loop test.
18035         * toplev.c (parse_options_and_default_flags): Reenable
18036         -fcprop-registers at -O1.
18037
18038 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
18039
18040         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
18041         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
18042
18043         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
18044         predicates.
18045
18046         * config/rs6000/rs6000.md: Add altivec predicate patterns.
18047
18048 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18049
18050         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
18051         (pa_output_function_prologue): Output local label at the beginning of
18052         the prologue when profiling.
18053         (hppa_profile_hook): Use the local label rather than the function label.
18054         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
18055
18056 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
18057
18058         * config/rs6000/rs6000.c (print_operand): Remove extra space.
18059         (altivec_expand_unop_builtin): Fix thinko.
18060         (altivec_expand_binop_builtin): Same.
18061         (altivec_expand_ternop_builtin): Same.
18062         (altivec_expand_builtin): Same.
18063
18064 2002-01-07  Richard Henderson  <rth@redhat.com>
18065
18066         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
18067
18068 2002-01-07  Jason Merrill  <jason@redhat.com>
18069
18070         * unwind-dw2.c (execute_cfa_program): Use < again.
18071
18072 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
18073
18074         * predict.c (combine_predictions_for_insn): Avoid division by zero.
18075
18076 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
18077
18078         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
18079         Don't allow -1 - x -> ~x simplifications in the first pass.
18080
18081 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
18082
18083         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
18084         arguments.
18085         (altivec_expand_binop_builtin): Same.
18086         (altivec_expand_unop_builtin): Same.
18087         (print_operand): Fix typo.
18088         (bdesc_1arg): Add vupk* variants.
18089
18090         * rs6000.h (rs6000_builtins): Add vupk* enums.
18091
18092         * rs6000.md: Add altivec_vupk* variants.
18093
18094 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
18095
18096         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
18097         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
18098         and last update dates.
18099
18100 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
18101
18102         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
18103
18104 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
18105
18106         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
18107         * config/avr/avr.h (CPP_SPEC): Likewise.
18108         (LINK_SPEC): Likewise.
18109         (CRT_BINUTILS_SPECS): Likewise.
18110         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
18111         * doc/invoke.texi (AVR Options): Document them.
18112
18113 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
18114
18115         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
18116         LABEL_NUSES.
18117
18118 2002-01-07  Graham Stott  <grahams@redhat.com>
18119
18120         * config/i386/i386.h: Update copyright date.
18121         (HALF_PIC_PTR): Add parenthesis.
18122         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
18123         (CONSTANT_ALIGNMENT): Add parenthesis.
18124         (DATA_ALIGNMENT): Likewise.
18125         (LOCAL_ALIGNMENT): Likewise.
18126         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
18127         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
18128         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
18129         (HARD_REGNO_NREGS): Add paranethesis.
18130         (VALID_SSE_REG_MODE): Whitespace.
18131         (VALID_MMX_REG_MODE): Whitespace.
18132         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
18133         (ix86_hard_regno_mode_ok): Add parenthesis.
18134         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
18135         (RETURN_IN_MEMORY): Whitespace.
18136         (N_REG_CLASSES): Add parenthesis.
18137         (INTEGER_CLASS_P): Add parenthesis and wrap.
18138         (FLOAT_CLASS_P): Likewise.
18139         (SSE_CLASS_P): Likewise.
18140         (MMX_CLASS_P): Likewise.
18141         (MAYBE_INTEGER_CLASS_P): Likewise.
18142         (MAYBE_FLOAT_CLASS_P): Likewise.
18143         (MAYBE_SSE_CLASS_P): Likewise.
18144         (MAYBE_MMX_CLASS_P): Likewise.
18145         (Q_CLASS_P): Likewise.
18146         (GENERAL_REGNO_P): Uppercase macro parameter.
18147         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
18148         (FP_REGNO_P): Likewise.
18149         (ANY_FP_REGNO_P): Uppercase macro parameter.
18150         (SSE_REGNO_P): Likewise.
18151         (SSE_REGNO): Likewise.
18152         (SSE_REG_P): Likewise.
18153         (SSE_FLOAT_MODE_P): Likewise.
18154         (MMX_REGNO_P): Likewise.
18155         (MMX_REG_P):Likewise.
18156         (STACK_REG_P): Likewise.
18157         (NON_STACK_REG_P): Likewise.
18158         (STACK_TOP_P): Likewise.
18159         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
18160         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
18161         (SECONDARY_MEMORY_NEEDED): Likewise.
18162         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
18163         (MD_ASM_CLOBBERS): Whitespace and wrap.
18164         (MUST_PASS_IN_STACK): Whitespace and wrap.
18165         (RETURN_POPS_ARGS): Add parenthesis.
18166         (INIT_CUMULATIVE_ARGS): Likewise.
18167         (FUNCTION_ARG): Likewise.
18168         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
18169         (SETUP_INCOMING_VARARGS): Likewise.
18170         (BUILD_VA_LIST_TYPE):  Add parenthesis.
18171         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
18172         parenthsis.
18173         (EXPAND_BUILTIN_VA_ARG): Likewise.
18174         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
18175         (INITIALIZE_TRAMPOLINE): Add parenthesis.
18176         (INITIAL_ELIMINATION_OFFSET): Likewise.
18177         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
18178         (REGNO_OK_FOR_BASE_P): Likewise.
18179         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
18180         (REGNO_OK_FOR_DIREG_P): Likewise.
18181         (REG_OK_FOR_INDEX_P): Whitespace.
18182         (REG_OK_FOR_BASE_P): Whitespace.
18183         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
18184         parenthesis.
18185         (FIND_BASE_TERM): Fix typo.
18186         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
18187         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
18188         (SYMBOLIC_CONST; Whitespace.
18189         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
18190         (ENCODE_SECTION_INFO): Whitespace.
18191         (FINALIZE_PIC): Remove do { ... } while (0).
18192         (PROMOTE_MODE): Wrap in do { ... } while (0).
18193         (CONST_COSTS): Whitespace.
18194         (RTX_COSTS): Add paramethesis, whitespace and wrap.
18195         (REGISTER_MOVE_COST): Add parenthesis.
18196         (MEMORY_MOVE_COST): Likewise.
18197         (EXTRA_CC_MODES): Whitespace.
18198         (SELECT_CC_MODE): Add parenthesis and whitespace.
18199         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
18200         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
18201         (ASM_OUTPUT_LABEL): Add paramethesis.
18202         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
18203         (ASM_OUTPUT_REG_POP): Likewise.
18204         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
18205         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18206
18207         * config/i386/i386.c: Update copyright.
18208         (CHECK_STACK_LIMIT): Add parenthesis.
18209         (AT_BP): Uppercase macro parameter.
18210         (x86_64_int_parameter_registers): Constify.
18211         (x86_64_int_return_registers): Likewise.
18212         (ix86_compare_op0): Use rtx.
18213         (construct_container): Constify INTREG parameter.
18214         (function_arg): Use rtx.
18215
18216         * diagnostic.h: Update copyright date.
18217         (output_buffer_state): Add parenthesis.
18218         (output_buffer_format_args): Likewise.
18219
18220         * combine.c (combine_instructions): Replace XEXP (links, 0)
18221         with link.
18222
18223 2002-01-06  H.J. Lu <hjl@gnu.org>
18224
18225         * cfgcleanup.c (thread_jump): Fix 2 typos.
18226
18227 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
18228
18229         * config.gcc: Add support for --enable-altivec.
18230
18231 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18232
18233         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
18234
18235 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
18236
18237         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
18238         __objc_class_name_*.
18239
18240 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18241
18242         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
18243
18244 2002-01-06  Richard Henderson  <rth@redhat.com>
18245
18246         * reorg.c (emit_delay_sequence): Remove death notes, not merely
18247         nop them out.  Increment label reference count for REG_LABEL.
18248         (fill_slots_from_thread): Frob label reference count around
18249         delete_related_insns.
18250
18251 2002-01-05  Richard Henderson  <rth@redhat.com>
18252
18253         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
18254         jump threading.
18255
18256 2002-01-05  Richard Henderson  <rth@redhat.com>
18257
18258         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
18259         * integrate.c (output_inline_function): Likewise.
18260         * toplev.c (rest_of_compilation): Do it here instead.  Move call
18261         to remove_unnecessary_notes after emitting abstract instance.
18262         Force an emitted nested function to have its parent emited as well.
18263         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
18264         for null.
18265         (rtl_for_decl_location): Do not look at reload data structures
18266         before reload has run.
18267
18268 2002-01-05  Kazu Hirata  <kazu@hxi.com>
18269
18270         * cse.c: Fix formatting.
18271         * dwarf2asm.c: Likewise.
18272         * dwarf2out.c: Likewise.
18273         * explow.c: Likewise.
18274         * expmed.c: Likewise.
18275         * function.c: Likewise.
18276         * gcov.c: Likewise.
18277         * gencheck.c: Likewise.
18278         * genrecog.c: Likewise.
18279         * ggc-common.c: Likewise.
18280         * ggc-page.c: Likewise.
18281         * global.c: Likewise.
18282
18283 2002-01-05  Kazu Hirata  <kazu@hxi.com>
18284
18285         * combine.c: Fix formatting.
18286
18287 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
18288
18289         PR middle-end/1557
18290         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
18291
18292 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
18293
18294         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
18295         as 1 for __powerpc64__ as well.
18296
18297         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
18298
18299         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
18300         return it.
18301
18302 2002-01-05  Daniel Berlin  <dan@dberlin.org>
18303
18304         * lcm.c: Revert change, due to performance regression it causes on
18305         SPEC because it's slightly more conservative (sigh, I hate
18306         edge-based LCM).
18307
18308 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
18309
18310         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
18311
18312 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
18313
18314         * doc/cppinternals.texi: Update.
18315
18316 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
18317
18318         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
18319         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
18320         negatives.
18321         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
18322         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
18323         kludge for pre-october-14th mmix versions to handle new-found bug
18324         with PUSHJ/PUSHGO and the register stack.
18325         * config/mmix/mmix.h (struct machine_function): Rename member
18326         has_call_value_without_parameters to has_call_without_parameters.
18327         All referers changed.
18328         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
18329         TARGET_MASK_BRANCH_PREDICT): New macros.
18330         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
18331         -mno-reg-stack-fill-bug-workaround.
18332         * config/mmix/mmix.md ("call"): Set struct machine member
18333         has_call_without_parameters.
18334
18335 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
18336
18337         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
18338
18339 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
18340
18341         * cfgcleanup.c: Include tm_p.h
18342         (mark_effect): Fix handling of hard register; fix handling of SET
18343
18344 2002-01-04  Kazu Hirata  <kazu@hxi.com>
18345
18346         * config/h8300/h8300.md (anonymous patterns): Check that
18347         operands are registers before using REGNO on them.
18348
18349 2002-01-03  Roland McGrath  <roland@frob.com>
18350
18351         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
18352
18353 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
18354
18355         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
18356         * c-common.h (genrtl_expr_stmt_value): Likewise.
18357         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
18358         (expand_expr_stmt_value): Add maybe_last argument.
18359         Don't warn about statement with no effect if it is the last statement
18360         in expression statement.
18361         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
18362         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
18363         expand_expr_stmt_value.
18364         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
18365         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
18366         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
18367         as maybe_last to expand_expr_stmt_value.
18368
18369 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
18370
18371         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
18372         be passed in, do not build it.
18373         (c_begin_if_stmt): New function.
18374         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
18375         * c-common.h (c_expand_start_cond): Update prototype.
18376         (c_begin_if_stmt): Prototype new function.
18377         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
18378         * c-parse.in (if_prefix): Use c_begin_if_stmt,
18379         c_begin_while_stmt and c_finish_while_stmt_cond.
18380
18381 2002-01-04  William Cohen  <wcohen@redhat.com>
18382
18383         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
18384         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
18385         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
18386         * config/pa/som.h (ASM_FILE_START): Likewise.
18387
18388 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
18389
18390         * lcm.c: Include df.h.
18391         Add available_transfer_function prototype.
18392         (compute_available): Rework to use iterative dataflow framework.
18393         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
18394         with bb_info in df.h
18395         (available_transfer_function): New function.
18396
18397         * Makefile.in (lcm.o): add df.h to dependencies.
18398
18399 2002-01-04  Richard Henderson  <rth@redhat.com>
18400
18401         * config/alpha/alpha.c (some_operand): Accept HIGH.
18402         (input_operand): Likewise; accept simple references to globals.
18403         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
18404         (alpha_const_double_ok_for_letter_p): Likewise.
18405         (alpha_extra_constraint): Likewise.
18406         (alpha_preferred_reload_class): Likewise.  Do not force
18407         symbolic constants to memory.
18408         (alpha_legitimate_address_p): Accept simple references
18409         to small_symbolic_operand.
18410         (alpha_legitimize_address): New arg scratch.  Be prepared to be
18411         called when no_new_pseudos.  Emit simple symbolic references.
18412         Split integers into low, high, and rest.
18413         (alpha_expand_mov): Use alpha_legitimize_address.
18414         (some_small_symbolic_mem_operand): New.
18415         (split_small_symbolic_mem_operand): New.
18416         * config/alpha/alpha-protos.h: Update.
18417         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
18418         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
18419         (EXTRA_CONSTRAINT): Likewise.
18420         (PREFERRED_RELOAD_CLASS): Likewise.
18421         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
18422         (PREDICATE_CODES): Update.
18423         * config/alpha/alpha.md: New post-reload splitters to convert
18424         simplfied symbolic operands to the form that references $29.
18425         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
18426         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
18427
18428 2002-01-03  Richard Henderson  <rth@redhat.com>
18429
18430         * local-alloc.c (function_invariant_p): Update commentary.
18431
18432 2002-01-04  H.J. Lu <hjl@gnu.org>
18433
18434         * toplev.c (rest_of_compilation): Fix a typo when calling
18435         cleanup_cfg.
18436
18437 2002-01-03  Kazu Hirata  <kazu@hxi.com>
18438
18439         * c-common.c: Fix formatting.
18440         * diagnostic.c: Likewise.
18441         * doloop.c: Likewise.
18442         * dwarf2out.c: Likewise.
18443
18444 2002-01-03  Kazu Hirata  <kazu@hxi.com>
18445
18446         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
18447         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
18448
18449 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
18450
18451         * cpperror.c: Update comments and copyright.
18452         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
18453         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
18454
18455 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18456
18457         * collect2.c (main): Use strcmp when testing for "-shared".
18458
18459 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
18460
18461         * cppmacro.c: Don't include intl.h.  Update comments.
18462         (new_number_token): Allocate enough buffer for 64-bit unsigned
18463         integers; update prototype.
18464         * cppmain.c: Update comments.
18465
18466 2002-01-03  William Cohen  <wcohen@redhat.com>
18467
18468         * function.h (struct function): Add profile.
18469         (current_function_profile): New.
18470         doc/extend.texi: Update documentation.
18471         * final.c (final_start_function): Use current_function_profile
18472         instead of profile_flag.
18473         (profile_after_prologue): Likewise.
18474         * function.c (expand_function_start): Likewise.
18475         (expand_function_start): Likewise.
18476         * config/alpha/alpha.c (direct_call_operand):
18477         (alpha_does_function_need_gp): Likewise.
18478         (alpha_expand_prologue): Likewise.
18479         * config/arm/arm.c (arm_expand_prologue): Likewise.
18480         thumb_expand_prologue: Likewise.
18481         * config/d30v/d30v.c (d30v_stack_info): Likewise.
18482         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
18483         (fr30_expand_prologue): Likewise.
18484         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
18485         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
18486         * config/i386/i386.h (FINALIZE_PIC): Likewise.
18487         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
18488         * config/i960/i960.c (i960_output_function_prologue): Likewise.
18489         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
18490         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
18491         (m32r_expand_prologue): Likewise.
18492         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
18493         (m88k_expand_prologue): Likewise.
18494         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
18495         * config/mips/mips.c (compute_frame_size): Likewise.
18496         (mips_expand_prologue): Likewise.
18497         (mips_can_use_return_insn): Likewise.
18498         * config/pa/elf.h (ASM_FILE_START): Likewise.
18499         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
18500         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
18501         * config/pa/som.h (ASM_FILE_START): Likewise.
18502         * config/romp/romp.c (romp_using_r14): Likewise.
18503         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
18504         (rs6000_stack_info): Likewise.
18505         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18506         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
18507         * config/v850/v850.c (compute_register_save_size): Likewise.
18508
18509 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
18510
18511         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
18512         gen_lowpart_common fails, use gen_lowpart_SUBREG.
18513
18514 2002-01-03  Turly O'Connor  <turly@apple.com>
18515
18516         * darwin.c (machopic_output_possible_stub_label): Don't generate
18517         stub routines for pseudo-stubs which we've just defined.
18518
18519 2002-01-03  Kazu Hirata  <kazu@hxi.com>
18520
18521         * builtins.c: Fix formatting.
18522         * c-typeck.c: Likewise.
18523         * combine.c: Likewise.
18524         * expr.c: Likewise.
18525         * loop.c: Likewise.
18526
18527 2002-01-03  Andreas Schwab  <schwab@suse.de>
18528
18529         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
18530         and return true if _cpp_push_next_buffer pushed a new include
18531         file.
18532         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
18533         _cpp_pop_file_buffer did not push a new file.
18534         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
18535
18536 2002-01-02  Eric Christopher  <echristo@redhat.com>
18537
18538         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
18539         FIND_REG_INC_NOTE call. Update copyright.
18540         * loop.c (canonicalize_condition): Ditto.
18541         * reorg.c (delete_scheduled_jump): Ditto.
18542
18543 2002-01-03  Kazu Hirata  <kazu@hxi.com>
18544
18545         * gcse.c: Fix formatting.
18546
18547 2002-01-03  Graham Stott  <grahams@redhat.com>
18548
18549         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
18550         forward defs for struct tags rtx_def, union_tree, rtvec_def
18551         also output corresponding typedefs for rtx, tree, and rtvec.
18552
18553         * system.h: Move forward defs for struct tags rtx_def, union_tree,
18554         rtvec_def along with corresponding typedefs for rtx, tree, and
18555         rtvec to config.h, hconfig.h, tconfig.h.
18556
18557 2002-01-03  Graham Stott  <grahams@redhat.com>
18558
18559         * tree.h: Update copyright date.
18560         (IS_EXPR_CODE_CLASS): Add parenthesis.
18561         (TREE_SET_CODE): Add whitespace.
18562         (TREE_CHECK): Add parenthesis.
18563         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
18564         (CST_OR_CONSTRUCTOR_CHECK):
18565         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
18566         (TREE_SYMBOL_REFERENCED): Whitespace.
18567         (INT_CST_LT): Likewise.
18568         (INT_CST_LT_UNSIGNED): Likewise.
18569         (tree_real_cst): Unwrap comment.
18570         (tree_string): Likewise.
18571         (tree_complex): Likewise.
18572         (IDENTIFIER_POINTER): correct cast.
18573         (SAVE_EXPR_CONTEXT): Whitespace.
18574         (EXPR_WFL_FILENAME_NODE): Likewise.
18575         (EXPR_WFL_FILENAME): Remove parenthesis.
18576         (DECL_ORIGIN): Add parenthesis.
18577         (DECL_FROM_INLINE): Use NULL_TREE.
18578         (build_int_2): Whitespace.
18579         (build_type_variant): Add parenthesis.
18580
18581         * gcc/jcf-parse.c: Update copyright date.
18582         (yyparse): Constify resource_filename.
18583
18584 2002-01-03  Graham Stott  <grahams@redhat.com>
18585
18586         * rtl.h: Update copyright date.
18587         (RTL_CHECK1): Wrap long line.
18588         (RTL_CHECK2): Likewise.
18589         (RTL_CHECKC1): Wrap long line and whitespace.
18590         (RTL_CHECKC2): Likewise.
18591         (XWINT): Whitespace.
18592         (XINT): Likewise.
18593         (XSTR): Likewise.
18594         (XEXP): Likewise.
18595         (XVEC): Likewise.
18596         (XMODE): Likewise.
18597         (XBITMAP): Likewise.
18598         (XTREE): Likewise.
18599         (XBBDEF): Likewise.
18600         (XTMPL): Likewise.
18601         (X0WINT): Likewise.
18602         (X0INT):Likewise.
18603         (X0UINT): Likewise.
18604         (X0STR): Likewise.
18605         (X0EXP): Likewise.
18606         (X0VEC): Likewise.
18607         (X0MODE): Likewise.
18608         (X0BITMAP): Likewise.
18609         (X0TREE): Likewise.
18610         (X0BBDEF): Likewise.
18611         (X0ADVFLAGS): Likewise.
18612         (X0CSELIB): Likewise.
18613         (X0MEMATTR): Likewise.
18614         (XCWINT): Likewise.
18615         (XCINT): Likewise.
18616         (XCUINT): Likewise.
18617         (XCSTR): Likewise.
18618         (XCEXP): Likewise.
18619         (XCVEC): Likewise.
18620         (XCMODE): Likewise.
18621         (XCBITMAP): Likewise.
18622         (XCTREE): Likewise.
18623         (XCBBDEF): Likewise.
18624         (XCADVFLAGS): Likewise.
18625         (XCCSELIB): Likewise.
18626         (XC2EXP): Likewise.
18627         (INSN_UID): Likewise.
18628         (PREV_INSN): Likewise.
18629         (PATTERN): Likewise.
18630         (INSN_CODE): Likewise.
18631         (PUT_REG_NOTE_KIND): Likewise.
18632         (CODE_LABEL_NUMBER): Likewise.
18633         (NOTE_SOURCE_FILE): Likewise.
18634         (NOTE_BLOCK): Likewise.
18635         (NOTE_EH_HANDLER): Likewise.
18636         (NOTE_RANGE_INFO): Likewise.
18637         (NOTE_LIVE_INFO): Likewise.
18638         (NOTE_BASIC_BLOCK): Likewise.
18639         (NOTE_EXPECTED_VALUE): Likewise.
18640         (NOTE_LINE_NUMBER): Likewise.
18641         (LABEL_NAME): Likewise.
18642         (LABEL_NUSES): Likewise.
18643         (LABEL_ALTERNATE_NAME): Likewise.
18644         (ADDRESSOF_DECL): Likewise.
18645         (JUMP_LABEL): Likewise.
18646         (LABEL_NEXTREF): Likewise.
18647         (REGNO): Likewise.
18648         (ORIGINAL_REGNO: Likewise.
18649         (HARD_REGISTER_NUM_P): Add parenthesis.
18650         (SUBREG_REG): Whitespace.
18651         (SUBREG_BYTE): Likewise.
18652         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
18653         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
18654         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
18655         (ASM_OPERANDS_INPUT_VEC): Likewise.
18656         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
18657         (ASM_OPERANDS_INPUT): Likewise.
18658         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
18659         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
18660         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
18661         (ASM_OPERANDS_INPUT_MODE): Likewise.
18662         (ASM_OPERANDS_SOURCE_FILE): Likewise.
18663         (ASM_OPERANDS_SOURCE_LINE): Likewise.
18664         (MEM_SET_IN_STRUCT_P): Minor reformat.
18665         (TRAP_CONDITION): Whitespace.
18666         (TRAP_CODE): Likewise.
18667         (COND_EXEC_TEST): Likewise.
18668         (COND_EXEC_CODE): Likewise.
18669         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
18670         (PHI_NODE_P): Add parenthesis.
18671         (plus_constant): Whitespace and add parenthesis.
18672
18673 2002-01-03  Kazu Hirata  <kazu@hxi.com>
18674
18675         * config/avr/avr.c: Fix comment typos.
18676         * config/c4x/c4x.md: Likewise.
18677         * config/dsp16xx/dsp16xx.h: Likewise.
18678         * config/dsp16xx/dsp16xx.md: Likewise.
18679         * config/i386/i386.md: Likewise.
18680         * config/ia64/ia64.c: Likewise.
18681         * config/m32r/m32r.h: Likewise.
18682         * config/m68hc11/m68hc11.md: Likewise.
18683         * config/mmix/mmix.c: Likewise.
18684         * config/mn10200/mn10200.c: Likewise.
18685         * config/romp/romp.c: Likewise.
18686         * config/sh/sh.c: Likewise.
18687         * config/stormy16/stormy16.c: Likewise.
18688         * config/stormy16/stormy16.h: Likewise.
18689         * config/stormy16/stormy16.md: Likewise.
18690
18691 2002-01-03  Graham Stott  <grahams@redhat.com>
18692
18693         * loop.h: Update copyright date.
18694         (LOOP_MOVABLES): Fix typo.
18695         (LOOP_REGS): Likewise.
18696         (LOOP_IVS): Likewise.
18697
18698 2002-01-03  Graham Stott  <grahams@redhat.com>
18699
18700         * cppinit.c: Update copyright date.
18701         Don't include output.h
18702         * Makefile.in: Update copyright date.
18703         Update dependency.
18704
18705 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18706
18707         PR c/5226
18708         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
18709         (-pthread) Add to RS/6000 options.
18710
18711 2002-01-02  Kazu Hirata  <kazu@hxi.com>
18712
18713         * except.c: Fix comment typos.
18714         * loop.c: Likewise.
18715         * varasm.c: Likewise.
18716         * doc/tm.texi: Fix a typo.
18717
18718 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
18719
18720         * c-typeck.c (output_init_element): Allow initializing static storage
18721         duration objects with compound literals.
18722
18723 2002-01-02  Richard Henderson  <rth@redhat.com>
18724
18725         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
18726         after abusing it.
18727
18728 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18729
18730         * gcc.c (default_compilers): Const-ify.
18731         * mips-tdump.c (stab_names): Likewise.
18732         * mips-tfile.c (map_coff_types, map_coff_storage,
18733         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
18734         pseudo_ops_t, pseudo_ops): Likewise.
18735         * protoize.c (default_include): Likewise
18736
18737         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
18738         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
18739         Add array size in declaration.
18740         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
18741         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
18742         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
18743         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
18744         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
18745         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
18746         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
18747         emtens, make_nan): Const-ify.
18748         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
18749         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
18750
18751 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
18752
18753         * config.gcc (ia64-*-*): Set extra_headers.
18754         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
18755         * config/alpha/t-osf: Remove.
18756         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
18757
18758 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
18759
18760         * config/rs6000/t-aix43: Revert previous change.
18761
18762 2002-01-02  Jason Merrill  <jason@redhat.com>
18763
18764         * c-decl.c (c_expand_body): Call outlining_inline_function when
18765         emitting an inline function out of line.
18766
18767 2002-01-02  Richard Henderson  <rth@redhat.com>
18768
18769         * dwarf2out.c (limbo_die_node): Add created_for member.
18770         (new_die): New argument created_for.  Update all callers.
18771         (mark_limbo_die_list): New.
18772         (dwarf2out_init): Register limbo_die_list as a root.
18773         (dwarf2out_finish): Force insert limbo dies into their function
18774         context.
18775
18776 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
18777
18778         PR c++/5089
18779         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
18780
18781 2002-01-02  Kazu Hirata  <kazu@hxi.com>
18782
18783         * config/h8300/fixunssfsi.c: Update copyright.
18784         Fix comment typos.
18785         Fix formatting.
18786         * config/h8300/h8300.c: Update copyright.
18787         Eliminate warnings.
18788
18789 2002-01-02  Kazu Hirata  <kazu@hxi.com>
18790
18791         * config/romp/romp.c: Fix comment formatting.
18792         * config/romp/romp.h: Likewise.
18793         * config/romp/romp.md: Likewise.
18794         * config/s390/s390.c: Likewise.
18795         * config/stormy16/stormy16.c: Likewise.
18796         * config/stormy16/stormy16.h: Likewise.
18797
18798 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
18799
18800         * c-common.h (genrtl_expr_stmt_value): Declare.
18801         * c-semantics.c (genrtl_goto_stmt): Redirect to...
18802         (genrtl_goto_stmt_value): ... this new function.  Pass new
18803         argument down to expand_expr_stmt_value, taking
18804         TREE_ADDRESSABLE into account.
18805         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
18806         STMT_EXPR as addressable, i.e., one whose result we want.
18807         * expr.c (expand_expr): Don't save expression statement value
18808         of labeled_blocks or loop_exprs.
18809         * stmt.c (expand_expr_stmt): Redirect to...
18810         (expand_expr_stmt_value): ... this new function.  Use new
18811         argument to tell whether to save expression value.
18812         (expand_end_stmt_expr): Reset last_expr_type and
18813         last_expr_value if we don't have either.
18814         * tree-inline.c (declare_return_variable): Mark its use
18815         statement as addressable.
18816         * tree.h: Document new use of TREE_ADDRESSABLE.
18817         (expand_expr_stmt_value): Declare.
18818
18819 2002-01-01  Tom Rix  <trix@redhat.com>
18820
18821         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
18822         rs6000_emit_allocate_stack.
18823
18824 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
18825
18826         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
18827         ${srcdir}/ginclude/ to every entry in extra_headers.
18828         * configure: Regenerate.
18829         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
18830         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
18831         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
18832         * ginclude/proto.h: Rename to config/convex/proto.h.
18833
18834 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18835
18836         * attribs.c (handle_vector_size_attribute): Use host_integerp
18837         and tree_int_cst; remove warnings.
18838         * caller-save.c (insert_restore): Add cast to get rid of warning.
18839         (insert_save): Likewise.
18840         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
18841         * regmove.c (find_matches): Add temporary var to kill a warning.
18842
18843 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
18844
18845         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
18846         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
18847         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
18848         (vms-dwarf2eh.o): Add Makefile rule.
18849         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
18850         * config/alpha/vms-dwarf2eh.asm: New file.
18851
18852         * gcc.c (delete_if_ordinary): Delete all versions.
18853
18854 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18855
18856         * config/mmix/mmix.md: Update FIXME to not mention
18857         define_constants.
18858         (MMIX_rJ_REGNUM): New define_constants constant.
18859         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
18860         "*movdicc_real"): Adjust contraints formatting.
18861         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
18862         for branch prediction.
18863         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
18864         output template.
18865         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
18866         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
18867         number.  Delete related FIXMEs.
18868         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
18869         from number to MMIX_rJ_REGNUM.
18870         (TARGET_MASK_BRANCH_PREDICT): New.
18871         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
18872         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
18873         value.  Add -mbranch-predict and -mno-branch-predict.
18874         (TARGET_VERSION): Drop date.
18875         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
18876         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
18877         for finding out global symbols.
18878         (mmix_asm_output_labelref): Revert condition for global symbol.
18879         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
18880         (mmix_print_operand_punct_valid_p): A '+' is valid.
18881
18882 See ChangeLog.6 for earlier changes.