OSDN Git Service

* Makefile.in (TEXI_GCCINSTALL_FILES): Define.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2
3         * Makefile.in (TEXI_GCCINSTALL_FILES): Define.
4         ($(docdir)/gccinstall.info): New target.
5         (info): Depend on it.
6         (gccinstall.dvi): New target.
7         (dvi): Depend on it.
8         * doc/.cvsignore: Ignore new info files.
9         * doc/install.texi (@setfilename): Reflect new info filename.
10
11 Thu Jun  6 15:57:23 2002  J"orn Rennecke <joern.rennecke@superh.com>
12
13         * sh.c (machine_dependent_reorg): Don't set RTX_UNCHANGING_P
14         on an UNSPEC.
15
16 Thu Jun  6 07:17:43 2002  Nicola Pero  <n.pero@mi.flashnet.it>
17
18         PR objc/6834
19         * objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be
20         c_common_get_alias_set.
21         (LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p.   
22
23 2002-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
24
25         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): New
26         functions.
27         * rtl.h (get_first_nonnote_insn, get_last_nonnote_insn): Declare.
28         * avr/avr.c (avr_output_function_epilogue): Use above to determine
29         function size.
30         * pa/pa.c (pa_output_function_prologue): Likewise.
31
32 2002-06-05  David S. Miller  <davem@redhat.com>
33
34         * integrate.c (subst_constants): Handle 'B' RTL format.
35
36 2002-06-05  Eric Christopher  <echristo@redhat.com>
37
38         * varasm.c (make_decl_rtl): Fix comment for removed
39         halfpic.c.
40
41 2002-06-05  Eric Christopher  <echristo@redhat.com>
42
43         * Makefile.in: Remove missed halfpic bits.
44
45 2002-06-05  Eric Christopher  <echristo@redhat.com>
46
47         * toplev.c: Remove half-pic.
48         * config/mips/mips.c: Ditto.
49         * config/mips/mips.h: Ditto. Remove unused defines.
50         * config/mips/openbsd.h: Update comment to reflect above.
51         * config/mips/mips.md: Remove half-pic constraints.
52         * halfpic.h: Delete.
53         * halfpic.c: Ditto.
54
55 2002-06-05  Jeffrey Law  <law@redhat.com>
56
57         * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it
58         rejects (mem (lo_sum (reg) (unspec))), but will allow
59         (mem (lo_sum (reg) (symbol_ref)) for PA2.0.
60
61 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
62
63         * cpphash.h (_cpp_create_definition): Update prototype.
64         (_cpp_push_text_context, _cpp_create_trad_definition): New.
65         ( cpp_lex_identifier_trad): New.
66         (_cpp_set_trad_context): New.
67         * cppinit.c (cpp_finish_options): Don't conditionalize builtins.
68         * cpplib.c (SEEN_EOL): Update.
69         (lex_macro_node): Update for -traditional.
70         (cpp_push_buffer, _cpp_pop_buffer): Similarly.
71         * cppmacro.c (_cpp_create_definition): Split into
72         create_iso_definition() and _cpp_create_trad_definition().
73         (warn_of_redefinition): Update prototype; handle traditional
74         macros.
75         (_cpp_push_text_context): New.
76         * cpptrad.c (skip_whitespace, push_replacement_text): New.
77         (lex_identifier): Call ht_lookup with correct start.
78         (_cpp_lex_identifier_tradm _cpp_create_trad_definition,
79         _cpp_set_trad_context): New.
80         (scan_out_logical_line): Update to handle changing contexts.
81
82 Wed Jun  5 20:42:31 2002  J"orn Rennecke <joern.rennecke@superh.com>
83
84         * config.gcc (sh-*-elf*,  sh64*-*-elf*): Unify.
85         (shl*-*-elf*): Add.
86         * config/sh/t-be (MULTILIB_ENDIAN): Set.
87         * config/sh/t-le (MULTILIB_ENDIAN): Likewise.
88         * t-sh (MULTILIB_ENDIAN): Set.
89         (MULTILIB_OPTIONS): Use it.
90         * t-sh64 (MULTILIB_OPTIONS): Likewise.
91         (MULTILIB_DIRNAMES): Likewise.
92
93 2002-06-05  Gabriel Dos Reis  <gdr@codesourcery.com>
94
95         * toplev.h (report_error_function): Remove.
96
97         * diagnostic.h (location_t): New datatype.
98         (text_info): Likewise.
99         (diagnostic_info): Likewise.
100         (output_prefix): New macro.
101         (diagnostic_last_function_changed): Likewise.
102         (diagnostic_set_last_function): Likewise.
103         (diagnostic_last_module_changed): Likewise.
104         (diagnostic_set_last_module): Likewise.
105         (report_diagnostic): Now macro.
106         (diagnostic_set_info): Declare.
107
108         * diagnostic.c (report_problematic_module): Rename to
109         diagnostic_repor_current_module.
110         (set_diagnostic_context): Remove.
111         (count_error): Rename to diagnostic_error_count.
112         (error_function_changed): Remove.
113         (record_last_error_function): Likewise.
114         (error_module_changed): Likewise.
115         (record_last_error_module): Likewise.
116         (context_as_prefix): Rename to diagnostic_build_prefix.
117         (flush_diagnostic_buffer): Rename to diagnostic_flush_buffer.
118         (diagnostic_set_info): New function.
119
120         * objc/objc-act.c: #include diagnostic.h
121         (error_with_ivar): Adjust call to count_error.
122         (warn_with_method): Likewise.
123         * objc/Make-lang.in (objc-act.o): Depend on diagnostic.h
124
125 2002-06-05  Bob Wilson  <bob.wilson@acm.org>
126
127         * config/xtensa/xtensa.c (xtensa_build_va_list): Use
128         lang_hooks.types.make_type instead of make_node; set up
129         __va_list_tag type decl.
130         (xtensa_builtin_saveregs): Remove broken use of
131         RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P
132         for saved registers; add varargs alias set.
133
134 2002-06-05  Neil Booth  <neil@daikokuya.demon.co.uk>
135
136 config:
137         * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS.
138         * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than
139         CPP_PREDEFINES and part of CPP_SPEC.
140         i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h,
141         i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly.
142
143 Wed Jun  5 15:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>
144
145         * reg-stack.c (reg_to_stack): Do not call find_basic_blocks.
146
147 2002-06-05  Alan Modra  <amodra@bigpond.net.au>
148
149         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define.
150
151 2002-06-04  Zack Weinberg  <zack@codesourcery.com>
152
153         * gengtype-yacc.y: Make sure all rules end with a semicolon.
154
155 2002-06-04  Bob Wilson  <bob.wilson@acm.org>
156
157         * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix
158         typo in function prototype and include "ggc.h" header.
159
160 2002-06-04  Richard Henderson  <rth@redhat.com>
161
162         * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs.
163         (print_operand) ['U']: Likewise.
164         (alpha_expand_unaligned_store): Correct constants for 32-bit cross.
165         (alpha_expand_unaligned_store_words): Likewise.
166         (alpha_expand_builtin_vector_binop): Fix typo.
167         (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk,
168         umulh, and cix insns.
169         (one_arg_builtins): Add cix builtins.
170         (two_arg_builtins): Add ext, ins, msk, umulh builtins.
171         (alpha_expand_builtin): Fix typo in arity.
172         * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New.
173         (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh,
174         builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll,
175         builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh,
176         builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql,
177         builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz,
178         builtin_ctlz, builtin_ctpop): New.
179         * doc/extend.texi (Alpha Built-in Functions): Update.
180
181 2002-06-04  Geoffrey Keating  <geoffk@redhat.com>
182
183         * gengtype.c (write_gc_root): Don't unnecessarily prevent
184         global variable-length arrays being roots.
185
186         * config.gcc (powerpc-*-darwin*): Set config_gtfiles.
187         * configure.in (config_gtfiles): New variable.
188         (all_gtfiles): Initialise from config_gtfiles.
189         * configure: Regenerate.
190
191 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
192
193 config/i386:
194         * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h,
195         i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h,
196         mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h,
197         sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h,
198         win32.h (CPP_SPEC): Remove cpp_cpu.
199         * i386.h (TARGET_CPU_CPP_BUILTINS): Use.
200         (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die!
201
202 2002-06-04  Janis Johnson  <janis187@us.ibm.com>
203
204         * config/ia64/ia64.c (gen_thread_pointer): Fix variable name.
205
206 2002-06-04  Jeff Law <law@redhat.com.
207             David Edelsohn <edelsohn@gnu.org>
208             Michael Matz <matz@kde.org>
209
210         * sched-int.h (struct deps): New field libcall_block_tail_insn.
211         * sched_deps.c (init_deps): Initialize libcall_block_tail_insn.
212         * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn
213         is set, then mark the current insn as being part of a libcall
214         scheduling group.
215         (sched_analyze): Set and clear libcall_block_tail_insn appropriately.
216
217         * haifa-sched.c (schedule_block): Do not count USE or CLOBBER
218         insns against the issue rate.
219
220 Tue Jun  4 19:29:42 CEST 2002  Jan Hubicka  <jh@suse.cz>
221
222         * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
223         * final.c (final_scan_insn): Likewise.
224         * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
225         NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
226         * haifa-sched.c (unlink_other_notes): Likeewise.
227         (reemit_notes): Likewise.
228         * print-rtl.c (print_rtx): Likewise.
229         * sched-deps (sched-analyze): Likewise.
230         * rtl.c (note_insn_name): Likewise.
231         * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
232         (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
233         (RANGE_*): Kill.
234
235 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
236
237         * varasm.c (mark_constants): Handle RTX format 'B'.
238
239 2002-06-04  Neil Booth  <neil@daikokuya.demon.co.uk>
240
241         * cpphash.h (FIRST, LAST, CUR, RLIMIT): New.
242         (struct cpp_context): Add traditional fields.
243         * cppmacro.c (paste_all_tokens, push_ptoken_context,
244         push_token_context, cpp_get_token, _cpp_backup_tokens): Update.
245         * cpptrad.c (skip_comment, lex_identifier,
246         _cpp_read_logical_line_trad, scan_out_logical_line): Update.
247
248 2002-06-04  Kazu Hirata  <kazu@cs.umass.edu>
249
250         * gbl-ctors.h: Fix formatting.
251         * gcc.c: Likewise.
252         * gccspec.c: Likewise.
253         * gcov.c: Likewise.
254         * gcov-io.h: Likewise.
255         * gcse.c: Likewise.
256         * ggc-common.c: Likewise.
257         * ggc.h: Likewise.
258         * ggc-page.c: Likewise.
259         * ggc-simple.c: Likewise.
260         * global.c: Likewise.
261         * graph.h: Likewise.
262         * gthr-dce.h: Likewise.
263         * gthr.h: Likewise.
264         * gthr-posix.h: Likewise.
265         * gthr-rtems.h: Likewise.
266         * gthr-solaris.h: Likewise.
267         * gthr-win32.h: Likewise.
268
269 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
270
271         Merge from pch-branch:
272
273         * gengtype.h (UNION_OR_STRUCT_P): New macro.
274         * gengtype.c (write_gc_structure_fields): Use it.
275         (write_gc_root): Use it here too.
276
277         * gengtype.c (write_gc_structure_fields): Assume that lengths
278         of typenames fit into an 'int'; don't pass a size_t to "%d" in
279         printf.
280         (write_gc_marker_routine_for_structure): Likewise.
281         (write_gc_types): Likewise.
282         (write_gc_root): Likewise.
283
284         * varray.h (VARRAY_CLEAR): New.
285         (varray_clear): Prototype.
286         * varray.c (varray_clear): New.
287         * cselib.c (reg_values_old): New.
288         (used_regs_old): New.
289         (cselib_init): Use cached varrays if available to avoid
290         generating large amounts of garbage.
291         (cselib_finish): Don't throw away old varrays.
292
293         * final.c (insn_addresses_): Move out of ifdef.
294
295         * varray.c (uses_ggc): Make more varray kinds GCable.
296         * varray.h (union varray_data_tag): Let gengtype see
297         fields 'generic' and 'te'.
298         * reg-stack.c: Include gt-reg-stack.h, ggc.h.
299         (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
300         (reg_to_stack): Don't call VARRAY_FREE.
301         * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
302         (insn_addresses_): Use gengtype to mark.
303         * gengtype.c (write_gc_structure_fields): Handle arrays of generic
304         pointers; handle generic pointers in unused union fields.
305         (get_output_file_with_visibility): Include cselib.h,
306         insn-addr.h in gtype-desc.c.
307         * function.c (prologue): Use gengtype to mark.
308         (epilogue): Likewise.
309         (sibcall_epilogue): Likewise.
310         * dependence.c: Include gt-dependence.h, ggc.h.
311         (struct def_use): Use gengtype to mark.
312         (struct loop): Likewise.
313         (struct induction): Likewise.
314         (struct dependence): Likewise.
315         (def_use_chain): Likewise.
316         (dep_chain): Likewise.
317         (loop_chain): Likewise.
318         (induction_chain): Likewise.
319         (init_dependence_analysis): Don't free anything, just clear pointers.
320         (build_def_use): Use GGC to allocate def_use.
321         (add_loop): Use GGC to allocate loop.
322         (find_induction_variable): Use GGC to allocate induction.
323         (check_node_dependence): Use GGC to allocate induction, dependence.
324         (dump_node_dependence): Don't free varrays.
325         (end_dependence_analysis): Likewise.
326         * cselib.h (struct cselib_val_struct): Use gengtype to mark.
327         (struct elt_loc_list): Likewise.
328         (struct elt_list): Likewise.
329         * cselib.c: Don't include obstack.h.
330         (hash_table): Use gengtype to mark.
331         (reg_values): Use gengtype to mark.
332         (used_regs): Use gengtype to mark.
333         (cselib_obstack): Delete.
334         (cselib_startobj): Delete.
335         (empty_vals): Mark as deletable.
336         (empty_elt_lists): Mark as deletable.
337         (empty_elt_loc_lists): Mark as deletable.
338         (new_elt_list): Use GGC to allocate struct elt_list.
339         (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
340         (clear_table): Don't delete obstack; don't unnecessarily clear
341         deletable variables.
342         (new_cselib_val): Use GGC to allocate struct cselib_val.
343         (cselib_init): Don't set up obstacks.  Use GGC to allocate
344         hash table.
345         (cselib_finish): Just clear variables, don't free anything.
346         * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
347         (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
348         (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
349         (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
350         (gt-reg-stack.h): New rule.
351         (gt-dependence.h): New rule.
352         (gtype-desc.o): Add cselib.h, insn-addr.h.
353
354         * varray.c: Use only necessary headers.
355         (element_size): New.
356         (uses_ggc): New.
357         (varray_init): Take type, not size.  Use GGC if appropriate.
358         (varray_grow): Update for change to struct varray_head_tag.
359         Use GGC if appropriate.
360         * varray.h (struct const_equiv_data): Use gengtype.
361         (enum varray_data_enum): New.
362         (union varray_data_tag): Use gengtype.
363         (struct varray_head_tag): Use gengtype.  Replace size field with
364         enum varray_data_enum.
365         (varray_init): Update prototype.
366         (VARRAY_SCHED_INIT): Delete.
367         (VARRAY_*_INIT): Update for change to varray_init.
368         (VARRAY_SCHED): Delete.
369         (VARRAY_PUSH_SCHED): Delete.
370         (VARRAY_TOP_SCHED): Delete.
371         * tree.h: Update for change to length specifier.
372         * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
373         (clone_body): Likewise.
374         * ssa.h (ssa_definition): Use gengtype to mark.
375         * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
376         * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
377         * rtl.h (struct rtvec_def): Update for change to length specifier.
378         * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
379         (struct initial_value_struct): Update for change to length specifier.
380         * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
381         (ggc_add_tree_varray_root): Delete prototype.
382         (ggc_mark_rtx_varray): Delete prototype.
383         (ggc_mark_tree_varray): Delete prototype.
384         * ggc-common.c (ggc_add_rtx_varray_root): Delete.
385         (ggc_add_tree_varray_root): Delete.
386         (ggc_mark_rtx_varray): Delete.
387         (ggc_mark_tree_varray): Delete.
388         (ggc_mark_rtx_varray_ptr): Delete.
389         (ggc_mark_tree_varray_ptr): Delete.
390         * gengtype.h (enum typekind): Remove TYPE_VARRAY.
391         (create_varray): Delete prototype.
392         * gengtype.c (varrays): Delete.
393         (create_varray): Delete.
394         (adjust_field_type): Detect array of string pointers.
395         (process_gc_options): Remove code to handle varray_type option.
396         (set_gc_used_type): Remove TYPE_VARRAY case.
397         (output_escaped_param): New.
398         (write_gc_structure_fields): Use output_escaped_param on all
399         parameters.  Handle 'skip' with 'use_param' option.  Handle
400         arrays of strings.  Remove TYPE_VARRAY handling.
401         (write_gc_roots): Use boolean to detect 'length' option.
402         * gengtype-yacc.y (VARRAY_TYPE): Delete token.
403         (struct_fields): Call adjust_field_type on array fields.
404         (type): Remove VARRAY_TYPE case.
405         (type_option): Likewise.
406         * gengtype-lex.l: Don't consider varray_type a keyword.
407         * function.h: Update for change to length specifier.
408         (free_eh_status): Delete prototype.
409         * function.c (free_after_compilation): Don't call free_eh_status.
410         (reorder_blocks): Don't use VARRAY_FREE.
411         * except.c (struct eh_status): Update for change to length specifier.
412         remove varray_type specifier.
413         (free_eh_status): Delete.
414         * dwarf2out.c: Include gt-dwarf2out.h.
415         (used_rtx_varray): Use gengtype to mark, move
416         outside ifdefs.
417         (incomplete_types): Likewise.
418         (decl_scope_table): Likewise.
419         (dwarf2out_init): Don't call ggc_add_tree_varray_root.
420         * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
421         * c-tree.h (struct lang_type): Update for change to length specifier.
422         * c-parse.in (yylexstring): Don't use VARRAY_FREE.
423         * c-objc-common.c: Include gt-c-objc-common.h.
424         (deferred_fns): Mark for gengtype.
425         (c_objc_common_init): Don't call ggc_add_tree_varray_root.
426         (expand_deferred_fns): Just set deferred_fns to 0 to free it.
427         * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
428         (gtype-desc.o): Update dependencies.
429         (dwarf2out.o): Add gt-dwarf2out.h.
430         (varray.o): Update dependencies.
431         (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
432         (gt-c-objc-common.h): New rule.
433         (gt-dwarf2out.h): New rule.
434         * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
435
436         * doc/gty.texi (GTY Options): Correct spelling.
437         (GGC Roots): Likewise.
438         * Makefile.in (TEXI_CPP_FILES): New.
439         (TEXI_GCC_FILES): New.
440         (TEXI_GCCINT_FILES): New.
441         (TEXI_CPPINT_FILES): New.
442         ($(docdir)/cpp.info): Use new macros.
443         ($(docdir)/gcc.info): Likewise.
444         ($(docdir)/gccint.info): Likewise.
445         ($(docdir)/cppinternals.info): Likewise.
446         (cpp.dvi): Likewise.
447         (gcc.dvi): Likewise.
448         (gccint.dvi): Likewise.
449         (cppinternals.dvi): Likewise.
450
451         * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
452         * doc/gccint.texi (Top): Include gty.texi.
453         * doc/gty.texi: New file.
454
455         * bitmap.c: Include ggc.h, gt-bitmap.h.
456         (bitmap_ggc_free): New.
457         (bitmap_elem_to_freelist): New.
458         (bitmap_element_free): Use bitmap_elem_to_freelist.
459         (bitmap_element_allocate): Allow use of GGC.
460         (bitmap_clear): Use bitmap_elem_to_freelist.
461         (bitmap_copy): Update for change to bitmap_element_allocate.
462         (bitmap_set_bit): Likewise.
463         (bitmap_operation): Update for changes elsewhere.
464         (bitmap_initialize): Allow to create bitmaps that will use GGC.
465         * bitmap.h (struct bitmap_element_def): Use gengtype.
466         (struct bitmap_head_def): Likewise.  Also add 'using_obstack' field.
467         (bitmap_initialize): Add extra parameter.
468         (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
469         (BITMAP_ALLOCA): Delete.
470         (BITMAP_XMALLOC): Update for change to bitmap_initialize.
471         (BITMAP_GGC_ALLOC): New.
472         * Makefile.in (gtype-desc.o): Add bitmap.h.
473         (bitmap.o): Add gt-bitmap.h, $(GGC_H).
474         (GTFILES): Add bitmap.c.
475         (gt-bitmap.h): New rule.
476         ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
477         * basic-block.h: Update for changes to bitmap_initialize.
478         * except.c (exception_handler_label_map): Move into...
479         (struct eh_status): Here.
480         (struct eh_region): Make 'aka' GCable.
481         (free_eh_status): Don't need to specially handle
482         exception_handler_label_map.
483         (add_ehl_entry): Update for changes to exception_handler_label_map.
484         (find_exception_handler_labels): Likewise.
485         (remove_exception_handler_label): Likewise.
486         (maybe_remove_eh_handler): Likewise.
487         (for_each_eh_label): Likewise.
488         (remove_eh_handler): Allocate 'aka' using GGC.
489         * gengtype.c (get_output_file_with_visibility): Add bitmap.h
490         to list of includes.
491
492         * gengtype.c (write_gc_marker_routine_for_structure): Name
493         the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.
494         (write_gc_types): Arrange for the tests with NULL to be inlined.
495         (write_gc_roots): Update uses of procedure pointers.
496         * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
497
498         * Makefile.in (explow.o): Add dependency on gt-explow.h.
499         (sdbout.o): Add dependency on gt-sdbout.h.
500
501         * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
502         (mem_attrs_htab): Likewise.
503         (init_emit_once): Don't call ggc_add_deletable_htab.
504         * fold-const.c (size_htab): Use gengtype to clear unused entries.
505         (size_int_type_wide): Don't call ggc_add_deletable_htab.
506         * gengtype.c (finish_root_table): Add LASTNAME and TNAME
507         parameters, use them, change callers.
508         (write_gc_root): Add IF_MARKED parameter, use it, change callers.
509         (write_gc_roots): Handle 'if_marked' option.
510         (main): Don't need to call set_gc_used_type any more.
511         * ggc.h (ggc_htab_marked_p): Delete.
512         (ggc_htab_mark): Delete.
513         (struct ggc_cache_tab): New.
514         (gt_ggc_cache_rtab): New declaration.
515         * ggc-common.c (struct d_htab_root): Delete.
516         (d_htab_roots): Delete.
517         (ggc_add_deletable_htab): Delete.
518         (ggc_htab_delete): Handle new htab-deleting mechanism.
519         (ggc_mark_roots): Use new htab-deleting mechanism.
520         * tree.c (type_hash_table): Use gengtype to clear unused entries.
521         Make static.
522         (init_obstacks): Don't call ggc_add_deletable_htab.
523
524         * objc/objc-act.h (struct hashed_attribute): Use gengtype.
525         (struct hashed_entry): Likewise.
526         (nst_method_hash_list): Likewise.
527         (cls_method_hash_list): Likewise.
528         (HASH_ALLOC_LIST_SIZE): Delete.
529         (ATTR_ALLOC_LIST_SIZE): Delete.
530         * objc/objc-act.c (hash_init): Use ggc to allocate
531         nst_method_hash_list, cls_method_hash_list.
532         (hash_enter): Use ggc to allocate; allocate one entry at a time.
533         (hash_add_attr): Likewise.
534         (ggc_mark_hash_table): Delete.
535         (objc_act_parse_init): Delete.
536         (objc_init): Delete reference to objc_act_parse_init.
537         * tlink.c: Replace hash.h with hashtab.h.  Explicitly include
538         obstack.h.  Replace references to 'struct hash_table' with htab_t.
539         (struct symbol_hash_entry): Replace hash header with key field.
540         (struct file_hash_entry): Replace hash header with key field.
541         (struct demangled_hash_entry): Replace hash header with key field.
542         (hash_string_eq): New.
543         (hash_string_hash): New.
544         (symbol_hash_newfunc): Delete.
545         (symbol_hash_lookup): Modify to use htab_t.
546         (file_hash_newfunc): Delete.
547         (file_hash_lookup): Modify to use htab_t.
548         (demangled_hash_newfunc): Delete.
549         (demangled_hash_lookup): Modify to use htab_t.
550         (tlink_init): Modify to use htab_t.
551         * hash.h: Delete.
552         * hash.c: Delete.
553         * ggc.h: Delete forward structure declarations.
554         Delete prototypes for deleted functions.
555         * ggc-common.c: Don't include hash.h.
556         (ggc_add_tree_hash_table_root): Delete.
557         (ggc_mark_tree_hash_table_entry): Delete.
558         (ggc_mark_tree_hash_table): Delete.
559         (ggc_mark_tree_hash_table_ptr): Delete.
560         * gengtype.c (write_gc_structure_fields): Allow param_is option.
561         (write_gc_marker_routine_for_structure): Use visibility of
562         the parameter if there is one.
563         * function.c: Replace hash.h with hashtab.h.  Replace references
564         to 'struct hash_table *' with htab_t.
565         (struct insns_for_mem_entry): Include a plain key.
566         (fixup_var_refs_insns_with_hash): Update to use htab_t.
567         (insns_for_mem_newfunc): Delete.
568         (insns_for_mem_hash): Update to use htab_t.
569         (insns_for_mem_comp): Likewise.
570         (insns_for_mem_walk): Likewise.
571         * c-lang.c: Include ggc.h.
572         * Makefile.in (OBJS): Remove hash.o.
573         (c-lang.o): Add GGC_H.
574         (COLLECT2_OBJS): Remove hash.o.
575         (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
576         (ggc-common.o): Remove hash.h.
577         (function.o): Remove hash.h, add HASHTAB_H.
578         (genautomata.o): Remove hash.h, add HASHTAB_H.
579
580         * varasm.c (mark_const_str_htab_1): Delete.
581         (mark_const_str_htab): Delete.
582         (const_str_htab_del): Delete.
583         (const_str_htab): Use gengtype to mark.
584         (init_varasm_once): Use gengtype to mark hashtables.  Use GC to
585         allocate them.
586         * tree.c (mark_tree_hashtable_entry): Delete.
587         (mark_tree_hashtable): Delete.
588         * tree.h (mark_tree_hashtable): Delete prototype.
589         * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
590         (ggc_mark): Likewise.
591         (ggc_calloc): New.
592         (htab_create_ggc): New.
593         * ggc-common.c (ggc_calloc): New.
594         * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
595         (struct type): Add param_struct structure.
596         * gengtype.c (param_structs): New.
597         (adjust_field_type): Handle param_is option.
598         (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
599         (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
600         (write_gc_structure_fields): Add new PARAM parameter.  Update
601         callers.  Handle use_param option.  Handle TYPE_PARAM_STRUCT.
602         (write_gc_marker_routine_for_structure): Add new PARAM parameter.
603         Use it to generate function name.  Update callers.
604         (write_gc_types): Add new PARAM_STRUCTS parameter.  Update callers.
605         Process them.
606         (write_gc_roots): Handle TYPE_PARAM_STRUCT.  Allow param_is
607         option.
608         (main): Define PTR as pointer-to-scalar.  Don't specially
609         mark deferred_string or ehl_map_entry.
610         * gengtype-yacc.y (PARAM_IS): Add new token.
611         (externstatic): Use adjust_field_type.
612         (type_option): Add PARAM_IS.
613         * gengtype-lex.l: Add rule for typedef of function pointers.
614         Add rule for PARAM_IS.
615         (IWORD): Add size_t.
616         * except.c (exception_handler_label_map): Use gengtype to mark.
617         (type_to_runtime_map): Likewise.
618         (mark_ehl_map_entry): Delete.
619         (mark_ehl_map): Delete.
620         (init_eh): Use gengtype for roots; use GC to allocate hash tables.
621         (t2r_mark_1): Delete.
622         (t2r_mark): Delete.
623         * Makefile.in (gtype-desc.o): Correct dependencies.
624         (GTFILES): Add hashtab.h.
625         (genautomata.o): Actually uses hashtab.h.
626
627         * Makefile.in (stringpool.o): Add $(GGC_H).
628         (dwarf2asm.o): Likewise.
629         (GTFILES): Add hashtable.h.
630         * c-common.h (struct c_common_identifier): Use gengtype.
631         * c-decl.h (c_mark_tree): Delete.
632         * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
633         * c-tree.h (struct lang_identifier): Use gengtype.
634         (union lang_tree_node): New.
635         (c_mark_tree): Delete prototype.
636         * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy
637         dwarf2_debug_hooks.
638         * gengtype-lex.l (IWORD): Allow 'bool'.
639         (ptr_alias): Match.
640         * gengtype-yacc.y (ALIAS): New token.
641         (type_option): New rule.
642         (option): Use type_option.
643         * gengtype.c (process_gc_options): New.
644         (set_gc_used_type): Use it.
645         (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
646         Add new variable 't' to hold the type of the field being processed.
647         Add more error checking.  Use UNION_P when looking at 'desc' option.
648         Handle language-specific structures containing other
649         language-specific structures.
650         (write_gc_types): Handle 'ptr_alias' option.
651         (main): Don't need to specially output lang_type, lang_decl, lang_id2.
652         * ggc-common.c (ggc_pending_trees): Delete.
653         (ggc_mark_roots): Don't manipulate ggc_pending_trees.
654         (ggc_mark_trees): Delete.
655         (gt_ggc_m_tree_node): Delete.
656         * ggc.h (ggc_pending_trees): Delete.
657         (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
658         * hashtable.h (ht_identifier): Use gengtype.
659         * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
660         * langhooks.h (struct lang_hooks): Delete mark_tree.
661         * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
662         anyway.
663         * system.h: Poison LANG_HOOKS_MARK_TREE.
664         * tree.c (tree_node_structure): New.
665         * tree.h (struct tree_common): Use gengtype.
666         (struct tree_int_cst): Likewise.
667         (struct tree_real_cst): Likewise.
668         (struct tree_string): Likewise.
669         (struct tree_complex): Likewise.
670         (struct tree_vector): Likewise.
671         (struct tree_identifier): Likewise.
672         (struct tree_list): Likewise.
673         (struct tree_vec): Likewise.
674         (struct tree_exp): Likewise.
675         (struct tree_block): Likewise.
676         (struct tree_type): Likewise.
677         (struct tree_decl): Likewise.
678         (enum tree_structure_enum): New.
679         (union tree_node): Use gengtype, with an alias.
680         (tree_node_structure): Prototype.
681         * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
682
683         Merge to tag pch-merge-20020430.  The LANG_HOOKS_FUNCTION_MARK
684         macro was deleted.  The LANG_HOOKS_FUNCTION_FREE macro was renamed
685         to LANG_HOOKS_FUNCTION_FINAL.
686         * Makefile.in (GTFILES): Add bitmap.h.
687         * except.c (struct eh_region): Mark field 'aka' to be skipped.
688
689         * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
690         (alpha_init_machine_status): Give proper type.
691         * Makefile.in (c-lang.o): Depend on gtype-c.h.
692         (optabs.o): Depend on gt-optabs.h.
693         (GTFILES): Add optabs.o.
694         (gt-optabs.h): Add rule.
695         * optabs.c: Include gt-optabs.h.
696
697         * gengtype.c (set_gc_used_type): Correct some errors in last change.
698         (write_gc_structure_fields): If a field which should be NULL is
699         not, abort.
700         * c-pragma.c: Move struct align_stack and variable alignment_stack
701         out from the ifdef.
702
703         * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
704         * config/xtensa/xtensa.c: Include gt-cris.h.
705         (struct machine_function): Use gengtype to mark.
706         * config/mmix/mmix.h (struct machine_function): Use gengtype
707         to mark.
708         * config/cris/t-cris: Add dependencies for gt-cris.h.
709         * config/cris/cris.c: Include gt-cris.h.
710         (struct machine_function): Use gengtype to mark.
711         * config/rs6000/rs6000.h (struct machine_function): Use gengtype
712         to mark.
713         * doc/tm.texi (Per-Function Data): Delete references to
714         mark_machine_status.
715         * config/ia64/ia64.c (ia64_override_options): Don't set
716         mark_machine_status.
717         * config/i386/i386.c (override_options): Likewise.
718         * config/d30v/d30v.c (d30v_init_expanders): Likewise.
719         * config/arm/arm.c (arm_init_expanders): Likewise.
720         * config/alpha/alpha.c (override_options): Likewise.
721         * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO.
722         * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
723         (write_gc_structure_fields): Don't handle 'really' option.
724         Handle 'maybe_null' option.
725         (write_gc_types): Handle 'maybe_null' option.
726         * function.h (struct function): Don't use "really".
727         (mark_machine_status): Delete declaration.
728         (mark_lang_status): Delete declaration.
729         (gt_ggc_mr_machine_function): Delete prototype.
730         (gt_ggc_mr_language_function): Delete prototype.
731         * function.c (mark_machine_status): Delete.
732         (mark_lang_status): Delete.
733         (gt_ggc_mr_machine_function): Delete.
734         (gt_ggc_mr_language_function): Delete.
735         * c-tree.h (mark_c_function_context): Delete prototype.
736         * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
737         * c-decl.c (struct language_function): Rename from struct
738         c_language_function.  Update uses.  Use gengtype to mark.
739         (mark_c_function_context): Delete.
740         * c-common.h (struct c_language_function): Rename from struct
741         language_function.
742         (mark_stmt_tree): Delete prototype.
743         (c_mark_lang_decl): Delete prototype.
744         (mark_c_language_function): Delete prototype.
745         * c-common.c (mark_stmt_tree): Delete.
746         (c_mark_lang_decl): Delete.
747         (mark_c_language_function): Delete.
748
749         * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
750         (lang_bitmap): New typedef.  Use where appropriate.
751         (struct type): Add gc_used field, lang_struct field.
752         (UNION_P): New macro.
753         (new_structure): New prototype.
754         (find_structure): Remove 'pos' parameter.  Change all callers.
755         * gengtype-lex.l: Update for changes to find_structure.
756         * gengtype-yacc.y (typedef_struct): Use new_structure.
757         (yacc_ids): Suppress warning.
758         (type): Use new_structure.
759         * gengtype.c (string_type): Update for changes to struct type.
760         (find_structure): Just find a structure, don't worry about
761         creating one.
762         (new_structure): New.
763         (note_yacc_type): Use new_structure.
764         (set_gc_used_type): New.
765         (set_gc_used): New.
766         (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
767         (write_gc_types): Handle TYPE_LANG_STRUCT.
768         (write_gc_marker_routine_for_structure): New.
769         (main): Call set_gc_used.  Add some calls to set_gc_used_type
770         for places where GCC doesn't use gengtype properly yet.
771         * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
772         (gt_ggc_m_tree_node): Likewise.
773
774         * varasm.c (copy_constant): Call expand_constant if we hit
775         something we can't recognise.
776
777         * ggc-common.c (ggc_mark_rtvec_children): Delete.
778         (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
779         (lang_mark_false_label_stack): Delete.
780         * rtl.h (struct rtvec_def): Use gengtype to mark.
781         * ggc.h (ggc_mark_rtvec): Delete.
782         (gt_ggc_m_rtvec_def): Delete.
783         (ggc_mark_nonnull_tree): Delete.
784         (ggc_mark_rtvec_children): Delete prototype.
785         (lang_mark_false_label_stack): Delete declaration.
786
787         * gengtype.h (note_yacc_type): Add prototype.
788         * gengtype.c (note_yacc_type): New function.
789         * gengtype-lex.l: Add lexer support for yacc files.
790         * gengtype-yacc.y (start): Extract union from yacc files.
791         (yacc_union): New rule.
792         (yacc_typematch): New rule.
793         (yacc_ids): New rule.
794         (enum_items): Tweak for efficiency.
795         (optionseq): Likewise.
796
797         * c-common.h (struct language_function): Use gengtype.
798         (struct c_lang_decl): Likewise.
799         * c-tree.h (struct lang_decl): Likewise.
800         (struct lang_type): Likewise.
801         * c-decl.c (lang_mark_tree): Use generated marker routines to mark
802         tree language substructures.
803
804         * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
805         ggc_mark_tree.
806         * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
807
808         * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
809
810         * stmt.c (struct nesting): Add discriminator.  Use gengtype to
811         mark. Remove 'data.block.cleanup_ptr' field.
812         (struct stmt_status): Use usual technique to mark struct nesting.
813         (gt_ggc_mr_nesting_cond): Delete.
814         (gt_ggc_mr_nesting_loop): Delete.
815         (gt_ggc_mr_nesting_block): Delete.
816         (gt_ggc_mr_nesting_case_stmt): Delete.
817         (expand_start_cond): Set discriminator.
818         (expand_start_loop): Likewise.
819         (expand_start_null_loop): Likewise.
820         (expand_start_bindings_and_block): Set discriminator.  Don't set
821         deleted fields.
822         (expand_decl_cleanup): Replace 'cleanup_ptr' with
823         &thisblock->data.block.cleanups.
824         (expand_start_case): Set discriminator.
825         (expand_start_case_dummy): Set discriminator.
826
827         * ggc-callbacks.c: Remove.
828
829         * gengtype.h (struct type): Add 'u.s.bitmap' field.
830         (find_structure): Add 'pos' parameter.
831         * gengtype-lex.l: Update callers to find_structure.
832         * gengtype-yacc.y: Likewise.
833         * gengtype.c (find_structure): Allow for structures to be defined
834         in multiple language backends.
835         (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
836         (counter): Rename to gc_counter.
837         (write_gc_structure_fields): Fail when writing out fields for
838         an incomplete structure.  Ignore arrays of scalars.  Handle
839         'tree_vec' special.
840         (write_gc_types): Reset counter for each procedure written.
841
842         * stmt.c (add_case_node): Use GGC to allocate struct case_node.
843         (free_case_nodes): Delete.
844         (expand_end_case_type): Delete call to free_case_nodes.
845
846         * Makefile.in (cselib.o): Include gt-<filename>.h.
847         (gcse.o): Likewise.
848         (profile.o): Likewise.
849         (alias.o): Likewise.
850         (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
851         alphabetize backend files.
852         (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
853         * alias.c: Use gengtype for roots.
854         * c-common.h (struct stmt_tree_s): Use gengtype.
855         * c-decl.c: Use gengtype for roots.
856         * cselib.c: Use gengtype for roots.
857         * expr.c: Use gengtype for roots.
858         * fold-const.c: Use gengtype for roots.
859         * gcse.c: Use gengtype for roots.
860         * gengtype-lex.l: Handle typedefs of function types.
861         Allow for empty array bounds.
862         Allow processing to stop on initialisers.
863         * gengtype-yacc.y (externstatic): Stop processing on initialisers.
864         (semiequal): New rule.
865         * gengtype.c (create_file): Tidy output files.
866         (get_output_file_with_visibility): Fix paren warning.  Fix bug
867         involving multiple input files mapping to one output file.
868         (write_gc_structure_fields): Skip arrays of scalars.
869         (write_gc_types): Tidy output files.
870         (write_gc_root): New function.
871         (write_gc_roots): Fix bugs, add support for roots that are
872         structures.
873         * ggc-common.c (ggc_mark_rtx_ptr): Delete.
874         (ggc_mark_tree_ptr): Delete.
875         (ggc_add_rtx_root): Delete.
876         (ggc_add_tree_root): Delete.
877         (ggc_del_root): Delete.
878         * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
879         allocate struct initial_value_struct.
880         * profile.c: Use gengtype for roots.
881         * sdbout.c: Use gengtype for roots.
882         * varasm.c (mark_weak_decls): Delete unused prototype.
883         (mark_const_hash_entry): Delete unused function.
884         * config/darwin-protos.h: Use gengtype for roots.
885         (machopic_add_gc_roots): Delete.
886         * config/arm/arm.c: Use gengtype for roots.
887         * config/arm/arm.h: Use gengtype for roots.
888         * config/c4x/c4x-protos.h: Use gengtype for roots.
889         * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
890         * config/d30v/d30v-protos.h: Use gengtype for roots.
891         * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
892         * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
893         * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
894         * config/ia64/ia64-protos.h: Use gengtype for roots.
895         * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
896         * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
897         * config/m68hc11/m68hc11.c (z_reg): Make global.
898         (z_reg_qi): Make global.
899         (m68hc11_add_gc_roots): Delete.
900         * config/mcore/mcore-protos.h: Use gengtype for roots.
901         * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
902         * config/mips/mips.c (mips_add_gc_roots): Delete.
903         * config/mips/mips.h: Use gengtype for roots.
904         * config/mmix/mmix.c (override_options): Use gengtype for roots.
905         * config/mmix/mmix.h: Use gengtype for roots.
906         * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
907         * config/mn10200/mn10200.h: Use gengtype for roots.
908         * config/pa/pa.c: Use gengtype for roots, marking.
909         (struct deferred_plabel): Use GGC, gengtype.
910         (pa_add_gc_roots): Delete.
911         (mark_deferred_plabels): Delete.
912         * config/pj/pj-protos.h: Use gengtype for roots.
913         * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
914         * config/rs6000/rs6000.c: Use gengtype for roots.  Don't call
915         machopic_add_gc_roots.
916         * config/rs6000/rs6000.h: Use gengtype for roots.
917         * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
918         (gt-darwin.h): Add rule.
919         * config/sh/sh.c: Use gengtype for roots.
920         * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
921         (gt-sh.h): Add rule.
922         * config/sparc/sparc.c: Use gengtype for roots.
923         (sparc_add_gc_roots): Delete.
924         (struct ultrasparc_pipeline_state): Use GGC, gengtype.
925         (mark_ultrasparc_pipeline_state): Delete.
926         * config/sparc/sparc.h: Use gengtype for roots.
927
928         * Makefile.in (c-parse.o): Update dependencies.
929         (c-common.o): Likewise.
930         (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
931         Add dependencies for the files they generate.
932         * c-common.c: Replace ggc_add_* uses with GTY annotations.
933         * c-common.h: Likewise.
934         * c-decl.c: Likewise.
935         (gt_ggc_mp_binding_level): Delete.
936         * c-lang.c: Include gtype-c.h.
937         * c-parse.in: Replace ggc_add_* uses with GTY annotations.  Include
938         gt-c-parse.h.
939         * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
940         (gt_ggc_mp_align_stack): Delete.
941         * c-tree.h: Replace ggc_add_* uses with GTY annotations.
942         * function.c: Replace ggc_add_* uses with GTY annotations.
943         (gt_ggc_mp_function): Delete.
944         * function.h: Replace ggc_add_* uses with GTY annotations.
945         * gengtype.c (lang_names): New.
946         (NUM_BASE_FILES): New.
947         (open_base_files): Create language base files.
948         (startswith): New.
949         (get_file_basename): New.
950         (get_base_file_bitmap): New.
951         (get_output_file_with_visibility): Rename from get_output_file.
952         Add more mappings for various C/Objc filenames.
953         (finish_root_table): New.
954         (write_gc_roots): Handle dependencies and scoping properly.
955         * gengtype.h: Add prototypes for new functions.
956         * ggc-common.c (struct deletable_root): Delete.
957         (deletables): Delete.
958         (ggc_add_deletable_root): Delete.
959         (ggc_mark_roots): No need to deal with deleted functionality.
960         * ggc.h (ggc_add_deletable_root): Delete prototype.
961         * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
962         (gtype-objc.h): Add rule to create.
963         * objc/config-lang.in (gtfiles): New.
964         * objc/objc-act.c: Allocate imp_list using GGC.  Replace uses of
965         ggc_add_* with GTY markers.  Include gtype-objc.h.
966         (ggc_mark_imp_list): Delete.
967         * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
968         * objc/objc-lang.c: Random Whitespace Change.
969
970         * except.h (exception_handler_labels): Delete.
971         (get_exception_handler_labels): New.
972         * except.c (exception_handler_labels): Delete.
973         (struct eh_status): Add exception_handler_labels field.
974         (doing_eh): Don't add exception_handler_labels as root.
975         (free_eh_status): Don't need to free exception_handler_labels.
976         (get_exception_handler_labels): New.
977         (find_exception_handler_labels): Update for move of
978         exception_handler_labels.
979         (remove_exception_handler_label): Likewise.
980         * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
981         * jump.c (rebuild_jump_labels): Likewise.
982         * loop.c (find_and_verify_loops): Likewise.
983         * sched-rgn.c (is_cfg_nonregular): Likewise.
984
985         * gengtype.c (write_gc_structure_fields): Handle variable-length
986         TYPE_ARRAYs.
987
988         * varasm.c (struct weak_syms): Use GGC, gengtype.
989         (mark_weak_decls): Delete.
990         (weak_decls): Likewise.
991         (add_weak): Likewise.
992         (remove_from_pending_weak_list): Likewise.
993         (init_varasm_once): Likewise.
994
995         * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
996         (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
997         stor-layout.c, regclass.c, and lists.c.
998         Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
999         gt-regclass.h and gt-lists.h on s-gtype.
1000         * emit-rtl.c: Use gengtype for roots.  Include gt-emit-rtl.h.
1001         * except.c: Use gengtype for roots.
1002         * explow.c: Use gengtype for roots.  Include gt-explow.h.
1003         * expr.h (init_stor_layout_once): Delete prototype.
1004         * function.c: Use gengtype for roots.
1005         * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
1006         * gengtype-yacc.y (start): Can also be an externstatic.
1007         (externstatic): New production.
1008         (struct_fields): Correct array bounds inversion for 2-d arrays.
1009         * gengtype.c (variables): New variable.
1010         (note_variable): New function.
1011         (get_output_file): Include libfuncs.h into gtype-desc.c.
1012         (get_output_file_name): New function.
1013         (write_gc_structure_fields): Suppress warnings.
1014         (write_gc_types): Make static.
1015         (put_mangled_filename): New function.
1016         (write_gc_roots): New function.
1017         (main): Call write_gc_roots.
1018         * gengtype.h (note_variable): Prototype.
1019         (get_output_file_name): Prototype.
1020         (write_gc_types): Delete prototype.
1021         * ggc.h: Clean up unnecessary structure predefinitions.
1022         (struct ggc_root_tab): Define.
1023         (gt_ggc_m_rtx_def): Make function, not macro.
1024         (gt_ggc_m_tree_node): Likewise.
1025         * libfuncs.h: Use gengtype for roots.
1026         * lists.c: Use gengtype for roots.  Include gt-lists.h.
1027         (init_EXPR_INSN_LIST_cache): Delete.
1028         * optabs.c: Use gengtype for roots.
1029         (gt_ggc_mp_optab): Delete.
1030         * optabs.h: Use gengtype for roots.
1031         * regclass.c: Use gengtype for roots.  Include gt-regclass.h.
1032         * rtl.h: Use gengtype for roots.
1033         (init_EXPR_INSN_LIST_cache): Delete prototype.
1034         * stor-layout.c: Use gengtype for roots.
1035         Include gt-stor-layout.h.
1036         (init_stor_layout_once): Delete.
1037         * toplev.c: Use gengtype for roots.  Delete calls to deleted
1038         routines.
1039         * tree.c: Use gengtype for roots.
1040         * tree.h: Use gengtype for roots.
1041         * varasm.c: Use gengtype for roots.
1042
1043         * Makefile.in (GTFILES): Add @all_gtfiles@.
1044         * configure: Regenerate.
1045         * configure.in: Construct all_gtfiles from the gtfiles definitions
1046         in config-lang.in.
1047         * gengtype-yacc.y (type): Warn about duplicate structure names.
1048         * gengtype.c (get_output_file): Handle .c files in language
1049         subdirectories.
1050
1051         * Makefile.in (GTFILES): Run gengtype on all the config files
1052         and on the target .c file.
1053         * except.c (mark_eh_region): Delete.
1054         (init_eh_for_function): Use GGC on struct eh_status.
1055         (mark_eh_status): Delete.
1056         (free_eh_status): Use GGC.
1057         (expand_eh_region_start): Use GGC to
1058         (collect_eh_region_array): Allocate last_region_number using GGC.
1059         (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
1060         (remove_eh_handler): Let GGC free struct eh_region.
1061         (add_call_site): Use GGC to reallocate call_site_record array.
1062         * function.c (init_machine_status): Update calling sequence.
1063         (mark_machine_status): Likewise.
1064         (mark_lang_status): Likewise.
1065         (prepare_function_start): Update init_machine_status call.
1066         (mark_function_status): Delete.
1067         (maybe_mark_struct_function): Delete.
1068         (ggc_mark_struct_function): Delete.
1069         (gt_ggc_mp_function): New.
1070         (gt_ggc_mr_machine_function): New.
1071         (gt_ggc_mr_language_function): New.
1072         (init_function_once): Use canonical names.
1073         * function.h (struct function): Use gengtype.
1074         (init_machine_status): Return the structure.
1075         (mark_machine_status): Take a 'void *'.
1076         (mark_lang_status): Likewise.
1077         * ggc-common.c (ggc_mark_trees): Use canonical name for
1078         ggc_mark_struct_function.
1079         * tree.h (ggc_mark_struct_function): Delete prototype.
1080         * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
1081         (alpha_init_machine_status): Likewise.
1082         (override_options): Use canonical name for alpha_mark_machine_status.
1083         * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
1084         * config/arm/arm.h (struct machine_function): Use gengtype.
1085         * config/arm/arm.c (arm_mark_machine_status): Delete.
1086         (arm_init_machine_status): Update calling sequence.
1087         (arm_init_expanders): Use canonical name for arm_mark_machine_status.
1088         * config/cris/cris.c (cris_init_machine_status): Update
1089         calling sequence.
1090         * config/d30v/d30v.h (struct machine_function): Use gengtype.
1091         * config/d30v/d30v.c (d30v_init_machine_status): Update
1092         calling sequence.
1093         (d30v_mark_machine_status): Delete.
1094         * config/i386/i386.c: Include gt-i386.h.
1095         (struct machine_function): Use gengtype.
1096         (ix86_init_machine_status): Update calling sequence.
1097         (ix86_mark_machine_status): Delete.
1098         (override_options): Use canonical namke for ix86_mark_machine_status.
1099         * config/ia64/ia64.h (struct machine_function): Use gengtype.
1100         * config/ia64/ia64.c (ia64_init_machine_status): Update calling
1101         sequence.
1102         (ia64_mark_machine_status): Delete.
1103         (ia64_override_options): Use canonical name for
1104         ia64_mark_machine_status.
1105         * config/mmix/mmix.c (mmix_init_machine_status): Update calling
1106         sequence.
1107         * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
1108         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
1109         * gengtype.c (get_output_file): Fix warning.
1110         (main): Add prototype to suppress warning.
1111         * tree.c: Remove tree_hash_mark prototype.
1112
1113         * tree.h (init_stmt): Delete prototype.
1114         * toplev.c (lang_independent_init): Don't call init_stmt.
1115         * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
1116         (stmt_obstack): Delete.
1117         (POPSTACK): No need to free 'struct nesting'.
1118         (gt_ggc_mr_nesting_cond): Use canonical names.
1119         (gt_ggc_mr_nesting_loop): Use canonical names.
1120         (gt_ggc_mr_nesting_block): Use canonical names.
1121         (gt_ggc_mr_nesting_case_stmt): Use canonical names.
1122         (mark_stmt_status): Delete.
1123         (init_stmt): Delete.
1124         (clear_last_expr): Clear both last_expr_type and last_expr_value.
1125         Use it everywhere that last_expr_type was cleared.
1126         * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
1127         (zap_lists): Delete.
1128         * ggc.h (ggc_add_deletable_root): Prototype.
1129         (mark_stmt_status): Remove prototype.
1130         * ggc-common.c (ggc_add_deletable_root): New.
1131         (ggc_mark_roots): Handle deletable roots.
1132         * function.c (ggc_mark_struct_function): Use canonical name
1133         for mark_stmt_status.
1134         * emit-rtl.c (free_sequence_stack): New.
1135         (start_sequence): Use a freelist for sequences.
1136         (end_sequence): Likewise.
1137         (init_emit_once): Add free_sequence_stack as a deleteable root.
1138         * c-pragma.c Include gt-c-pragma.h.
1139         (struct align_stack): Use gengtype.
1140         (push_alignment): Use GGC for struct align_stack.
1141         (mark_align_stack): Delete.
1142         (gt_ggc_mp_align_stack): New.
1143         (init_pragma): Use canonical name for mark_align_stack.
1144         * c-decl.c: Include gt-c-decl.h.
1145         (struct binding_level): Use gengtype.
1146         (make_binding_level): Use GGC; handle the freelist here.
1147         (pop_binding_level): New.
1148         (pushlevel): Move code into make_binding_level.
1149         (push_label_level): Likewise.
1150         (poplevel): Move code into pop_binding_level.
1151         (pop_label_level): Likewise.
1152         (mark_binding_level): Delete.
1153         (gt_ggc_mp_binding_level): New.
1154         (c_init_decl_processing): Use canonical name for mark_binding_level.
1155         Add free_binding_level as deletable root.
1156         (mark_c_function_context): Use canonical name for mark_binding_level.
1157         * Makefile.in (c-decl.o): Add gt-c-decl.h.
1158         (c-pragma.o): Add gt-c-pragma.h.
1159         (GTFILES): Add c-decl.c and c-pragma.c.
1160         (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
1161
1162         * tree.c (struct type_hash): Use gengtype.
1163         (init_obstacks): Use canonical name for type_hash_mark.
1164         (type_hash_mark): Delete.
1165         Include gt-tree.h.
1166         * rtl.h (struct mem_attrs): Use gengtype.
1167         * optabs.h (struct optab): Use gengtype.
1168         * optabs.c (expand_binop): Squish signed/unsigned warning.
1169         (mark_optab): Make local, use canonical name, use autogenerated
1170         marker procedure.
1171         (init_optabs): Use canonical name for mark_optab.
1172         (new_optab): Use GGC to allocate optabs.
1173         * ggc.h: Delete mark_optab prototype.
1174         * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
1175         mem_attrs marker procedure.
1176         * gengtype.c (get_output_file): Include headers in gtype-desc.c
1177         explicitly rather than deducing them from file names.
1178         (write_gc_structure_fields): Handle arrays of structures.
1179         (main): Return non-zero exit code if errors occur during output.
1180         * emit-rtl.c (mem_attrs_mark): Delete.
1181         (init_emit_once): Use canonical name for mem_attrs marker procedure.
1182         * Makefile.in (gtype-desc.o): Explicitly name dependencies.
1183         (tree.o): Depend on gt-tree.h.
1184         (GTFILES): Add rtl.h, optabs.h, tree.c.
1185         (gt-tree.h): Add it to s-gtype rule.
1186
1187         * .cvsignore: Ignore gengtype flex/bison generated files.
1188         * Makefile.in (GGC_H): Add gtype-desc.h.
1189         (OBJS): Add gtype-desc.o.
1190         (GEN): Add gengtype.
1191         (STAGESTUFF): Add gengtype.
1192         (varasm.o): Add gt-varasm.h.
1193         (stmt.o): Add gt-stmt.h.
1194         (except.o): Add gt-except.h.
1195         (integrate.o): Add gt-integrate.h.
1196         (GTFILES): New.
1197         Add new rules for new files.
1198         * configure: Regenerate.
1199         * configure.in: Correct defaults.h paths.
1200         * emit-rtl.c (mark_sequence_stack): Delete.
1201         (mark_emit_status): Delete.
1202         (start_sequence): Allocate sequence structures using GGC.
1203         (end_sequence): Allocate sequence structures using GGC.
1204         * except.c: Use gengtype for various structures.  Include
1205         gt-except.h.
1206         * expr.c (mark_expr_status): Delete.
1207         * function.c: Use gengtype for various structures.  Include
1208         gt-function.h.
1209         (mark_function_status): Use standard gt_ggc names for marker functions.
1210         (ggc_mark_struct_function): Likewise.
1211         * function.h: Use gengtype for various structures.
1212         * gengtype-lex.l: New file.
1213         * gengtype-yacc.y: New file.
1214         * gengtype.c: New file.
1215         * gengtype.h: New file.
1216         * ggc.h: Include gtype-desc.h.  Alias some marker procedures to
1217         the standard names.  Remove some now-unnecessary prototypes.
1218         * integrate.c: Use gengtype for various structures.  Include
1219         gt-integrate.h.
1220         (mark_hard_reg_initial_vals): Delete.
1221         * integrate.h (mark_hard_reg_initial_vals): Delete.
1222         * stmt.c: Use gengtype for various structures.  Include
1223         gt-stmt.h.
1224         (mark_case_node): Delete.
1225         (mark_goto_fixup): Delete.
1226         (mark_stmt_status): Use standard gt_ggc names for marker functions.
1227         * system.h: Define GTY to empty.   In flex/bison files,
1228         don't poison malloc or realloc, instead just define them to
1229         xmalloc and xrealloc.
1230         * varasm.c: Use gengtype for various structures.  Include
1231         gt-varasm.h.  Use standard gt_ggc names for marker functions.
1232         (mark_pool_constant): Delete.
1233         (mark_varasm_status): Delete.
1234         (decode_rtx_const): #if 0 out non-typesafe hack.
1235
1236         * function.h (free_lang_status): Mark as obsolete.
1237         * function.c (free_lang_status): Mark as obsolete.
1238         * c-decl.c (push_c_function_context): Use GC to allocate and free
1239         struct language_function.
1240         (pop_c_function_context): Likewise.
1241         * c-common.c (mark_c_language_function): Mark struct
1242         language_function.
1243
1244         * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
1245         Document that the machine_function structures must be allocated
1246         using GC.  Update mark_machine_status documentation.
1247         * function.h: Don't declare free_machine_status.
1248         * function.c (free_machine_status): Don't define.
1249         (free_after_compilation): Don't call free_machine_status.
1250         (ggc_mark_struct_function): Mark f->machine.  Call
1251         mark_machine_status only on non-NULL pointers.
1252         * system.h: Poison free_machine_status.
1253         * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
1254         struct machine_function.
1255         (xtensa_free_machine_status): Delete.
1256         (override_options): Don't set free_machine_status.
1257         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
1258         free_machine_status.
1259         (rs6000_init_machine_status): Use GC on struct machine_function.
1260         (rs6000_free_machine_status): Delete.
1261         * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
1262         machine_function.
1263         (ia64_mark_machine_status): Likewise.
1264         (ia64_free_machine_status): Delete.
1265         (ia64_override_options): Don't set free_machine_status.
1266         * config/i386/i386.c (override_options): Don't set
1267         free_machine_status.
1268         (ix86_init_machine_status): Use GC on struct machine_function.
1269         (ix86_mark_machine_status): Likewise.
1270         (ix86_free_machine_status): Delete.
1271         * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
1272         machine_function.
1273         (d30v_mark_machine_status): Likewise.
1274         (d30v_free_machine_status): Delete.
1275         (d30v_init_expanders): Don't set free_machine_status.
1276         * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
1277         machine_function.
1278         (arm_init_machine_status): Likewise.
1279         (arm_free_machine_status): Delete.
1280         (arm_init_expanders): Don't set free_machine_status.
1281         * config/alpha/alpha.c (override_options): Don't set
1282         free_machine_status.
1283         (alpha_init_machine_status): Use GC on struct machine_function.
1284         (alpha_mark_machine_status): Likewise.
1285         (alpha_free_machine_status): Delete.
1286
1287         * varasm.c (compare_constant): Fix typo.
1288
1289         * varasm.c: Don't include obstack.h.
1290         (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
1291         (struct rtx_const): Give substructures names, improve formatting.
1292         (struct constant_descriptor): Delete.
1293         (struct constant_descriptor_tree): New, based on constant_descriptor.
1294         (const_hash_table): Is a hash table of trees.
1295         (mark_const_hash_entry): Is used for hashes of trees.  Mark
1296         constant_descriptor_tree structure.
1297         (mark_const_str_htab_1): Mark deferred_string structure.
1298         (compare_constant): Rewrite to compare trees.
1299         (compare_constant_1): Delete.
1300         (record_constant): Delete.
1301         (record_constant_1): Delete.
1302         (output_constant_def): Use struct constant_descriptor_tree.
1303         Don't duplicate trees twice.
1304         (struct constant_descriptor_rtx): New.
1305         (struct pool_constant): Used for rtx constants.
1306         (init_varasm_status): Update for change to struct varasm_status.
1307         (mark_varasm_status): Likewise.
1308         (free_varasm_status): Delete.
1309         (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
1310         (record_constant_rtx): Likewise.
1311         (mem_for_const_double): Update to use struct constant_descriptor_rtx.
1312         (force_const_mem): Likewise.
1313         * Makefile.in (varasm.o): Doesn't depend on obstack.h.
1314         * function.c (free_after_compilation): Don't use free_varasm_status.
1315         * function.h: Don't prototype free_varasm_status.
1316
1317         * ggc-common.c (ggc_realloc): Handle X being NULL.
1318
1319         * ggc-common.c (ggc_realloc): New function.
1320         * ggc.h: Prototype it.
1321         * emit-rtl.c (free_emit_status): Delete.
1322         (init_emit): Allocate emit subarrays using GC.
1323         (gen_reg_rtx): Reallocate subarrays using GC.
1324         (init_emit): Use GC to allocate 'struct emit_status' and its
1325         subarrays.
1326         (mark_emit_status): Mark structure and its subarrays.
1327         * stmt.c (free_stmt_status): Delete.
1328         * expr.c (free_expr_status): Delete.
1329         * function.h: Remove prototypes for deleted functions.
1330         * function.c (free_after_compilation): Don't use deleted functions.
1331         Don't call free() on x_parm_reg_stack_loc.
1332         (free_after_parsing): Don't use free_stmt_status.
1333         (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
1334         (mark_function_status): Mark x_parm_reg_stack_loc.
1335
1336         * varasm.c (init_varasm_status): Use GC to allocate
1337         'struct varasm_status' and its fields x_const_rtx_hash_table
1338         and x_const_rtx_sym_hash_table.
1339         (mark_varasm_status): Mark them.
1340         (free_varasm_status): Use GC to free them.
1341         * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
1342         (mark_expr_status): Mark the structure itself.
1343         (free_expr_status): Use GC to free the structure.
1344         * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
1345         (mark_stmt_status): Mark the 'struct stmt_status' itself.
1346         (init_stmt_for_function): Allocate the structure for GC.
1347
1348         * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
1349         (equate_type_number_to_die): Likewise.
1350         * tree.h (TYPE_SYMTAB_DIE): New macro.
1351         (struct die_struct): Predeclare.
1352         (struct tree_type): Add field symtab.die.   Add a tag
1353         to the union type of field symtab.
1354
1355         * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
1356         'struct rtvec_def *', not 'struct rtvec_def'.
1357
1358         * function.h (original_arg_vector): Make a real rtvec.
1359         * function.c (ggc_mark_struct_function): Adjust.
1360         * integrate.c (expand_inline_function): Adjust.
1361
1362 2002-06-04  Jason Thorpe  <thorpej@wasabisystems.com>
1363
1364         * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
1365         (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
1366         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
1367         (TARGET_VERSION_CPU): Define according to the
1368         default target.
1369         (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
1370         TARGET_VERSION_CPU.
1371         (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
1372         if TARGET_SHMEDIA64.
1373         (LINK_DEFAULT_CPU_EMUL): Define according to the
1374         default target.
1375         (SUBTARGET_LINK_EMUL_SUFFIX): Define.
1376         (SUBTARGET_LINK_SPEC): Define.
1377         (LINK_SPEC): Use SH_LINK_SPEC.
1378         (ASM_SPEC): Remove.
1379         (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
1380         (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
1381         and TARGET_SHMEDIA64 which abort, for now.
1382         * config/sh/t-netbsd-sh5: New file.
1383         * config/sh/t-netbsd-sh5-32: New file.
1384         * config/sh/t-netbsd-sh5-64: New file.
1385
1386 2002-06-03  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
1387             Richard Henderson  <rth@redhat.com>
1388
1389         * config/alpha/alpha.c (reg_or_const_int_operand): New.
1390         (some_operand, input_operand): Accept CONST_VECTOR.
1391         (alpha_extra_constraint): Add 'W'.
1392         (alpha_expand_zap_mask): New.
1393         (alpha_expand_builtin_vector_binop): New.
1394         (enum alpha_builtin): New.
1395         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
1396         (alpha_init_builtins, alpha_expand_builtin): New.
1397         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
1398         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
1399         (PREDICATE_CODES): Update.
1400         * config/alpha/alpha-protos.h: Update.
1401         * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
1402         UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
1403         (movv8qi, movv8qi_fix, movv8qi_nofix): New.
1404         (movv4hi, movv4hi_fix, movv4hi_nofix): New.
1405         (movv2si, movv2si_fix, movv2si_nofix): New.
1406         (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
1407         (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
1408         (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
1409         builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
1410         builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
1411         builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
1412         builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
1413         pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
1414         builtin_unpkbw, unpkbw): New.
1415         * doc/extend.texi (Alpha Built-in Functions): New.
1416
1417 2002-06-03  Richard Henderson  <rth@redhat.com>
1418
1419         * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
1420         USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
1421
1422 2002-06-03  Richard Henderson  <rth@redhat.com>
1423
1424         * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
1425
1426         * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
1427         (const0_operand): New.
1428         (reg_or_fp0_operand, fp0_operand): Remove.
1429         * config/alpha/alpha.h (PREDICATE_CODES): Update.
1430         * config/alpha/alpha-protos.h: Update.
1431         * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
1432         and fp0_operand with reg_or_0_operand and const0_operand.
1433
1434 2002-06-03  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
1435
1436         * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
1437
1438 2002-06-03  Roger Sayle  <roger@eyesopen.com>
1439
1440         * gcse.c (cprop_jump): Use single_set to get the pattern
1441         from the setcc argument.
1442
1443 2002-06-03  Gabriel Dos Reis  <gdr@codesourcery.com>
1444
1445         * diagnostic.h (diagnostic_count): Move from output_buffer to
1446         diagnostic_context.
1447         (diagnostic_kind_count): Adjust definition.
1448
1449 Mon Jun  3 19:11:53 CEST 2002  Jan Hubicka  <jh@suse.cz>
1450
1451         * except.c (except.c): Do not rebuild CFG.
1452         * toplev.c (rest_of_compilation): Recompute CFG after sibcall
1453         optimization.
1454
1455 Mon Jun  3 11:53:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
1456
1457         * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
1458         * toplev.c: Include cfglahout.h
1459         * Makefile.in (toplev.c): Add dependnecy.
1460
1461 2002-06-03  Neil Booth  <neil@daikokuya.demon.co.uk>
1462
1463         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
1464         (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
1465         (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
1466
1467 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
1468
1469         * config/ns32k/netbsd.h: Update copyright years.
1470         (TARGET_OS_CPP_BUILTINS): Define.
1471         (CPP_PREDEFINES): Remove.
1472         * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
1473         (TARGET_CPU_CPP_BUILTINS): Define.
1474
1475 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1476
1477         * emit-rtl.c: Fix formatting.
1478         * errors.h: Likewise.
1479         * except.c: Likewise.
1480         * explow.c: Likewise.
1481         * expmed.c: Likewise.
1482         * expr.c: Likewise.
1483         * expr.h: Likewise.
1484
1485 2002-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1486
1487         * config/h8300/elf.h: Fix formatting.
1488         * config/h8300/rtems.h: Likewise.
1489
1490 2002-06-03  Jason Thorpe  <thorpej@wasabisystems.com>
1491
1492         * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
1493
1494 2002-06-02  Tom Tromey  <tromey@redhat.com>
1495
1496         * fixinc/fixincl.x: Rebuilt.
1497         * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
1498
1499 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1500
1501 config/i370:
1502         * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
1503         * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
1504         * mvs.h: Similarly.
1505         * oe.h: Similarly.
1506
1507 Mon Jun  3 00:18:20 CEST 2002  Jan Hubicka  <jh@suse.cz>
1508
1509         * final.c (final):  Allow notes to not have computed addresses;
1510         kill no longer needed STACK_REGS ifdef.
1511
1512 2002-06-02  Richard Henderson  <rth@redhat.com>
1513
1514         * gcse.c (bypass_conditional_jumps): Fix typo last change.
1515
1516 Sun Jun  2 23:02:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
1517
1518         * loop.c (emit_prefetch_instructions): Properly place the address
1519         computation.
1520
1521 Sun Jun  2 22:56:48 CEST 2002  Jan Hubicka  <jh@suse.cz>
1522
1523         * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
1524         (set_block_for_insn): Turn into macro.
1525         * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
1526         * cfglayout.c (insn_scopes): Kill.
1527         (scope_to_insns_initialize): Do not use insn_scopes.
1528         (scope_to_insns_finalize): Likewise.
1529         (duplicate_insn_chain): Likewise.
1530         (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
1531         * cfgrtl.c (basic_block_for_insn): Kill.
1532         (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
1533         (create_basic_block_structure): Use reorder_insns.
1534         (compute_bb_for_insn): Do not use basic_block_for_insn.
1535         (merge_blocks_nomove): Likewise.
1536         (update_bb_for_insn): Likewise.
1537         (verify_flow_info): Likewise.
1538         (set_block_for_insn): Kill.
1539         * combine.c (try_combine): Update gen_rtx_INSN call.
1540         * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
1541         (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
1542         scopes and BBs.
1543         (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
1544         (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
1545         Clear BB.
1546         (emit_insns_after): Simplify.
1547         (emit_copy_of_insn_after): Copy scope.
1548         * final.c (final_start_function): Lower scopes.
1549         * flow.c (check_function_return_warnings): Do not rely on deleted insn.
1550         * integrate.c (copy_insn_list): Cope scopes.
1551         * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
1552         * loop.c (loop_optimize): Do not care block notes.
1553         * print-rtl.c (print_rtx): Print BB.
1554         * recog.c (apply_change_group): Simplify.
1555         * rtl.c (copy_rtx): Handle 'B'.
1556         * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
1557         * rtl.h (Field accessors): Update indexes.
1558         * sched-ebb.c (schedule_ebbs): Do not lower notes.
1559         * sched-rgn.c (schedule_insns): Likewise.
1560         * toplev.c (rest_of_compilation): Lower notes.
1561         * unroll.c (unroll_loop): Do not care scoping notes.
1562         (copy_loop_body): Copy scopes.
1563
1564 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1565
1566 config/h8300:
1567         * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
1568         SUBTARGET_SPEC.
1569         * rtems.h: Similarly.
1570         * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
1571         EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
1572         (TARGET_CPU_CPP_BUILTINS): Use.
1573
1574 2002-06-02  Richard Henderson  <rth@redhat.com>
1575
1576         * alias.c: Include target.h.
1577         (mark_constant_function): Use targetm.binds_local_p instead
1578         of checking TREE_PUBLIC ourselves.
1579         * Makefile.in (alias.o): Add TARGET_H.
1580
1581 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1582
1583         * c-lex.c: Update copyright and file description.
1584
1585 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1586
1587         * config/fr30/fr30.h: Update to new CPP macros.
1588
1589 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1590
1591         * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
1592
1593 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1594             Zack Weinberg <zack@codesourcery.com>
1595
1596         * c-common.c (c_common_init): Override cpplib's default
1597         warn_long_long setting.
1598         * c-lex.c (lex_number): Replace with interpret_integer,
1599         interpret_float, narrowest_unsigned_type and
1600         narrowest_signed_type, taking advantage of the new
1601         cpplib functionality.
1602         * cpperror.c (_cpp_begin_message): If a warning is turned
1603         into an error, avoid printing "warning:".
1604         * cppexp.c (cpp_num_sign_extend): New.
1605         * cppinit.c: Update comment.
1606         * cpplib.h (cpp_num_sign_extend): New.
1607         * tree.h: Update comment.
1608
1609 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
1610
1611         * diagnostic.h (struct diagnostic_context):  Add new member
1612         internal_error.
1613         (internal_error_function): Remove declaration.
1614         * diagnostic.c (internal_error_function): Remove definition..
1615         (internal_error): Adjust use.
1616
1617 2002-06-02  Richard Henderson  <rth@redhat.com>
1618
1619         * rtl.h (CC0_P): New.
1620         * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
1621         (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
1622         (bypass_block): Save old dest block for dump text.
1623         (bypass_conditional_jumps): Allow any mode register; use CC0_P.
1624         Allow only true SET insns, not single_set.
1625
1626 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
1627
1628         * diagnostic.c (diagnostic_finish): Rename to output_flush.
1629         (clear_disgnostic_info): Rename to output_clear_data.  Use false
1630         instead of 0 for boolean value.
1631         Adjust function call throughout.
1632
1633 Sun Jun  2 19:15:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
1634
1635         * cfgrtl.c (commit_one_edge_insertion): Fix warning.
1636         * gcse.c (bypass_conditional_jumps): CSE out single_set call.
1637
1638 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1639
1640         * d30v.h (CPP_PREDEFINES): Replace with
1641         (TARGET_CPU_CPP_BUILTINS): New.
1642
1643 2002-06-02  Roger Sayle  <roger@eyesopen.com>
1644
1645         * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
1646
1647 Sun Jun  2 12:11:52 CEST 2002  Jan Hubicka  <jh@suse.cz>
1648
1649         * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
1650
1651 2002-06-02  Richard Henderson  <rth@redhat.com>
1652
1653         * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
1654
1655 2002-06-02  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1656
1657         Support for C++ constructors/destructors.
1658         * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
1659         instead of looping if main() returns.
1660         (asm_file_start): Output global symbols that cause .data and .bss
1661         initialization code to be linked in, unconditionally for now.
1662         (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
1663         * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
1664         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
1665         (LIBSTDCXX): New.
1666         * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
1667         (__tablejump__): New.
1668         (__do_copy_data, __do_clear_bss): New.
1669         (__do_global_ctors, __do_global_dtors): New.
1670         * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
1671         _ctors, _dtors.
1672
1673 2002-06-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1674
1675         * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
1676         (CPP_SPEC, CPP_PREDEFINES): Kill.
1677         * c4x/rtems.h (CPP_PREDEFINES): Kill.
1678         (TARGET_OS_CPP_BUILTINS): New.
1679
1680 Sat Jun  1 23:29:51 CEST 2002  Jan Hubicka  <jh@suse.cz>
1681
1682         * Makefile.in (tracer.o): New.
1683         * params.def (TRACER_*): New options.
1684         * rtl.h (tracer): Declare.
1685         * timevar.def (TV_TRACER): New.
1686         * toplev.c (dump_file_index): Add DFI_tracer.
1687         (dump_file_info): Add tracer.
1688         (flag_tracer): New.
1689         (lang_indepdenent_options): Add tracer.
1690         (rest_of_compilation): Call tracer.
1691         * tracer.c: New file.
1692         * invoke.texi (-ftracer): Document.
1693         (--param tracer-*): Document.
1694
1695 2002-06-01  Daniel Berlin  <dberlin@dberlin.org>
1696
1697         * tree-inline.c (expand_call_inline): Make the statement
1698         expression we generate have a COMPOUND_STMT.
1699
1700 2002-06-01  Roger Sayle  <roger@eyesopen.com>
1701
1702         * gcse.c (cprop_cc0_jump): Function deleted.
1703         (cprop_jump): Take an additional argument which is the possibly
1704         NULL cc setting insn immediately before the conditional jump.
1705         When a MODE_CC set is present, substitute it into the JUMP_INSN
1706         before attempting the constant propagation.
1707         (cprop_insn):  Recognize cc setters followed by conditional jumps
1708         as a special case.   Use cprop_jump instead of cprop_cc0_jump.
1709         (cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
1710         (find_bypass_set): New function based upon find_avail_set used by
1711         cprop, but finds constant expressions available at the end of
1712         basic blocks.
1713         (bypass_block): New function.  Given a basic block that begins
1714         with a conditional jump and multiple incoming edges, perform
1715         the jump bypass optimization.
1716         (bypass_conditional_jumps): New function.  Call bypass_block with
1717         each suitable basic block in the CFG using a simple single pass.
1718
1719 2002-06-01  Roger Sayle  <roger@eyesopen.com>
1720
1721         * tree.c (real_minus_onep): New function to test for -1.0.
1722         * fold-const.c (fold) [MULT_EXPR]:  Optimize -1.0*x into -x.
1723
1724 2002-06-01  Roger Sayle  <roger@eyesopen.com>
1725
1726         * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
1727         and "!p && !q" into "(p|q) == 0" under suitable conditions.
1728
1729 2002-06-01  Andreas Jaeger  <aj@suse.de>
1730
1731         * cppexp.c (cpp_classify_number): Cast precission to int for
1732         correct printf format.
1733
1734 2002-06-01  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1735
1736         * config/avr/avr.c (avr_mcu_types): Remove devices that were once
1737         expected, but don't really exist: atmega83, atmega85, attiny10.
1738         * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
1739         emulations for all devices.
1740         (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
1741         * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
1742
1743 2002-06-01  Kazu Hirata  <kazu@cs.umass.edu>
1744
1745         * config/h8300/h8300-protos.h: Add a prototype for
1746         h8300_shift_needs_scratch_p.
1747         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
1748         * config/h8300/h8300.h (OK_FOR_R): New.
1749         (OK_FOR_S): Likewise.
1750         (OK_FOR_T): Likewise.
1751         (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
1752         * config/h8300/h8300.md (anonymous shift patterns): Use
1753         constraints R, S, and T.
1754
1755 Sat Jun  1 11:23:22 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1756
1757         * basic-block.h (struct basic_block_def): New field loop_father.
1758         (BB_VISITED): New flag.
1759         (struct loop): New field pred, removed field shared.
1760         (struct loops): New field parray.
1761         (LOOP_EXITS_DOMS): Removed.
1762         (flow_loop_tree_node_add, flow_loop_tree_node_remove,
1763         flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
1764         dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
1765         add_bb_to_loop, remove_bb_from_loops, find_common_loop,
1766         verify_loop_structure): Declare.
1767         * cfg.c (entry_exit_blocks): Initialize loop_father field.
1768         * cfganal.c (dfs_enumerate_from): New function.
1769         * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
1770         (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
1771         flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
1772         flow_loop_dump, flow_loops_dump, flow_loops_free,
1773         flow_loop_tree_node_add, flow_loop_level_compute,
1774         flow_loops_level_compute, flow_loop_scan, flow_loops_update,
1775         flow_loop_outside_edge_p): Modified for new infrastructure.
1776         (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
1777         redirect_edge_with_latch_update, flow_loop_free): New static functions.
1778         (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
1779         get_loop_body, add_bb_to_loop, remove_bb_from_loops,
1780         find_common_loop, verify_loop_structure, loop_latch_edge,
1781         loop_preheader_edge): New functions.
1782         (flow_loops_cfg_dump): Do not show dominators, as this information
1783         does not remain up to date long.
1784         (flow_loops_find): Store results in new format.
1785         * predict.c (propagate_freq, estimate_probability,
1786         estimate_loops_at_level, estimate_bb_frequencies): Use new loop
1787         infrastructure.
1788
1789 2002-06-01  Alan Lehotsky  <apl@alum.mit.edu>
1790
1791         * except.c (nothrow_function_p): Walk epilogue delay list
1792         checking the insn, not the chain for potential throws.
1793
1794 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
1795
1796         * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
1797         (install): Refer to install-cpp directly.
1798         (uninstall-cpp): Folded into uninstall rule.
1799         * configure.in: Delete all code relating to --disable-cpp.
1800         * configure: Regenerate.
1801         * config/t-install-cpp: Delete.
1802
1803 2002-05-31  Richard Henderson  <rth@redhat.com>
1804
1805         * configure.in (HAVE_AS_TLS): Add alpha tests.
1806         * configure: Rebuild.
1807         * config/alpha/alpha.c (TARGET_AS_TLS): New.
1808         (alpha_tls_size, alpha_tls_size_string): New.
1809         (overide_options): Set it.  Always install machine_status hooks.
1810         (input_operand): Accept got tls predicates.
1811         (local_symbol_p): Merge into ...
1812         (local_symbolic_operand): ... here.  Reject tls symbols.
1813         (global_symbolic_operand): Likewise.
1814         (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
1815         (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
1816         (tp16_symbolic_operand, tp32_symbolic_operand): New.
1817         (gottp_symbolic_operand, tls_symbolic_operand_type): New.
1818         (alpha_encode_section_info): Handle TLS symbols.
1819         (alpha_strip_name_encoding): Likewise.
1820         (alpha_legitimate_address_p): Likewise.
1821         (alpha_legitimize_address): Likewise.
1822         (alpha_expand_mov): Early exit to avoid nop moves.
1823         (struct machine_function): Move from unicosmk.h.  Add some_ld_name.
1824         (alpha_init_machine_status, alpha_mark_machine_status,
1825         alpha_free_machine_status): Always define.
1826         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
1827         (print_operand, print_operand_address): Add TLS relocs.
1828         * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
1829         (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
1830         (TARGET_SWITCHES): Add -mtls-kernel.
1831         (alpha_tls_size, alpha_tls_size_string): New.
1832         (TARGET_OPTIONS): Add -mtls-size=.
1833         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
1834         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
1835         (ASM_OUTPUT_LABELREF): Skip %.
1836         (PRINT_OPERAND_PUNCT_VALID_P): Add &.
1837         (PREDICATE_CODES): Update.
1838         * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
1839         UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
1840         UNSPEC_TP, UNSPECV_SET_TP): New.
1841         (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
1842         adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
1843         set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
1844         movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
1845         (call_value_osf_2_er): Accept anything as op4.
1846         * config/alpha/alpha-protos.h: Update.
1847         * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
1848
1849 2002-05-31  Zack Weinberg  <zack@codesourcery.com>
1850
1851         * cppinit.c (append_include_chain): Always pay attention to
1852         cxx_aware when setting new->sysp.  Remove ATTRIBUTE_UNUSED
1853         marker on argument.
1854
1855 2002-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1856
1857         * target.h: Fix formatting.
1858         * timevar.h: Likewise.
1859         * tlink.c: Likewise.
1860         * toplev.c: Likewise.
1861         * toplev.h: Likewise.
1862         * tree.c: Likewise.
1863         * tree-dump.h: Likewise.
1864         * tree.h: Likewise.
1865         * tree-inline.h: Likewise.
1866         * unroll.c: Likewise.
1867         * unwind-dw2.c: Likewise.
1868         * unwind-dw2-fde.c: Likewise.
1869         * unwind-dw2-fde-glibc.c: Likewise.
1870         * unwind-dw2-fde.h: Likewise.
1871         * unwind.h: Likewise.
1872         * unwind-sjlj.c: Likewise.
1873         * varasm.c: Likewise.
1874         * varray.h: Likewise.
1875         * vmsdbg.h: Likewise.
1876         * vmsdbgout.c: Likewise.
1877         * xcoffout.h: Likewise.
1878
1879 2002-05-31  Igor Shevlyakov <igor@microunity.com>
1880
1881         * expr.c (compare_from_rtx): Generate comparison between op0 and op1
1882         rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
1883
1884 2002-05-31  Matthew Woodcraft  <mattheww@chiark.greenend.org.uk>
1885
1886         * gcc.c (cpp_unique_options): Remove "-d" options.
1887         (cpp_debug_options): New spec string.
1888         (default_compilers): Use it.
1889         * objc/lang-specs.h: Likewise.
1890
1891 2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
1892
1893         * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
1894         BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
1895         * gcc/mklibgcc.in: Likewise.
1896         * gcc/config/arc/t-arc: Likewise.
1897         * gcc/configure.in: Likewise.
1898         * gcc/configure: Regenerate.
1899
1900 2002-05-31  Stan Shebs  <shebs@apple.com>
1901             Turly O'Connor  <turly@apple.com>
1902
1903         * c-decl.c (struct binding_level): Change int field n_incomplete
1904         to tree list incomplete_list.
1905         (clear_binding_level): Init field with NULL.
1906         (pushdecl): Add incomplete type to list.
1907         (mark_binding_level): Mark the incomplete list.
1908         (finish_struct): Scan the incomplete list for types instead
1909         of all decls in the current binding level.
1910
1911 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1912
1913         * pa.c (output_millicode_call): Add missing '%' characters.
1914         (output_call): Likewise.
1915
1916 2002-05-31  David Edelsohn  <edelsohn@gnu.org>
1917
1918         * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
1919         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1920
1921 2002-05-31  Alan Lehotsky <apl@alum.mit.edu>
1922
1923         * varasm.c (mark_constant_pool): Walk epilogue delay list
1924         checking the insn, not the chain for potential constants.
1925
1926 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
1927
1928         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
1929
1930 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
1931
1932         * i386.c (classify_argument): Properly handle base types.
1933
1934         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
1935         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
1936         registers.
1937
1938 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
1939
1940         * gcse.c (gcse_emit_move_after): New.
1941         (pre_delete, hoist_store): Use it.
1942
1943         * reload1.c (emit_input_reload_insns): Use constrain_operands
1944         instead of constraint_accepts_reg_p to verify optimization.
1945         (constraint_accepts_reg_p): Kill
1946
1947         * reload1.c (reload_cse_delete_noop_set): Kill.
1948         (reload_cse_simplify): use delte_insn_and_edges.
1949
1950 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1951
1952         * cfgloop.c (flow_loops_find): Initialize first and last fields
1953         correctly.
1954
1955 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1956
1957         * c-common.c (builtin_define_std): Correct logic.
1958
1959 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1960
1961         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
1962         (output_call): Likewise.
1963
1964 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1965
1966         * pa.c: Move output.h include after tree.h include.
1967         (pa_asm_output_mi_thunk): Constify identifier lab.
1968
1969 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
1970
1971         * config/ns32k/ns32k.h: Define named constants for the
1972         bits in target_flags and use them.
1973         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
1974
1975 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1976
1977         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
1978         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
1979         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
1980         default scheduling model.
1981         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
1982         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
1983         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
1984         * doc/install.texi (hppa*-*-*): Document default scheduling.
1985
1986 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1987
1988         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
1989
1990 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
1991
1992         * config.gcc (ns32k-*-netbsd*): Set tm_file to
1993         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
1994         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
1995         netbsd.h, or netbsd-aout.h.
1996
1997 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
1998
1999         * longlong.h (count_trailing_zeros): Add missing \, and clean up
2000         whitespace in __ns32000__ case.
2001
2002 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
2003
2004         * expr.c (expand_expr): Output partially zeroed out vectors with
2005         output_constant_def.
2006
2007 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
2008
2009         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
2010         (sh-*-netbsdelf*)
2011         (shl*-*-netbsdelf*): New targets.
2012         * config/sh/netbsd-elf.h: New file.
2013         * config/sh/t-netbsd: New file.
2014
2015 2002-05-30  Richard Henderson  <rth@redhat.com>
2016             Eric Botcazou  <ebotcazou@multimania.com>
2017
2018         PR optimization/6822
2019         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
2020         to unsigned int for op1 comparisons.  Use gen_int_mode.
2021
2022 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
2023
2024         * expmed.c (const_mult_add_overflow_p): New.
2025         * expr.h: Declare it.
2026         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
2027         Don't eliminate the biv if the giv has a constant multiplier and
2028         the rhs argument of the comparison does satisfy the predicate.
2029         Use expand_mult_add to compute the replacement constant.
2030
2031 2002-05-30  Osku Salerma  <osku@iki.fi>
2032
2033         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
2034         (c_common_get_alias_set): Handle it.
2035         * doc/extend.texi: Document it.
2036
2037 2002-05-30  Richard Henderson  <rth@redhat.com>
2038
2039         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
2040         * toplev.c (process_options): Don't check it.
2041         * doc/tm.texi: Don't document it.
2042         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
2043         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
2044         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
2045         frame pointer optimization if current_function_profile.
2046
2047 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
2048
2049         * langhooks.c: Fix formatting.
2050         * langhooks.h: Likewise.
2051         * lcm.c: Likewise.
2052         * libgcc2.c: Likewise.
2053         * lists.c: Likewise.
2054         * local-alloc.c: Likewise.
2055         * loop.c: Likewise.
2056         * loop.h: Likewise.
2057
2058 2002-05-30  Marc Espie <espie@openbsd.org>
2059
2060         * config.gcc (sparc64-*-openbsd*): New.
2061         * config/sparc/openbsd1-64.h: New.
2062         * config/sparc/openbsd64.h: New.
2063
2064 2002-05-30  Jeff Law <law@redhat.com>
2065
2066         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
2067         a dead insn with a REG_RETVAL note when the entire libcall is not
2068         dead and remove the associated REG_LIBCALL note at the same time.
2069
2070 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
2071
2072         * lcm.c (output.h): #include.
2073         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
2074         as an ordinary block.
2075         (optimize_mode_switching): Don't pretend that the exit block is
2076         an ordinary block, or handle sucessors of entry block specially.
2077         Instead, split edges from entry block and to exit block, and
2078         put a computing definition on the thus gained post-entry-block,
2079         and a need on the pre-exit-block.
2080
2081 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
2082
2083         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
2084         * rtl.texi: Document 'B'
2085
2086 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
2087
2088         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
2089         at run-time.
2090         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
2091
2092 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
2093
2094         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
2095         const0_rtx instead of NULL_RTX when in error.
2096         (altivec_expand_abs_builtin): Same.
2097         (rs6000_expand_binop_builtin): Same.
2098         (altivec_expand_predicate_builtin): Same.
2099         (altivec_expand_stv_builtin): Same.
2100         (rs6000_expand_ternop_builtin): Same.
2101         (altivec_expand_builtin): Same.
2102
2103 2002-05-29  David S. Miller  <davem@redhat.com>
2104
2105         * rtl.h (clear_emit_caches): Delete.
2106         * integrate.c (output_inline_function): Don't call it.
2107         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
2108         (clear_emit_caches): Delete definition.
2109         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
2110
2111 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
2112
2113         * config/mmix/mmix.c: Include real.h.
2114         (mmix_constant_address_p): Remove redundant test before switch.
2115
2116 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2117
2118         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
2119         only if not already defined.
2120
2121 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
2122
2123         * config/h8300/h8300-protos.h: Remove prototypes for
2124         ok_for_bclr and small_power_of_two.
2125         * config/h8300/h8300.c (small_power_of_two): Remove.
2126         (ok_for_blcr): Likewise.
2127         (fix_bit_operand): Make WHAT deal with an integer instead of a
2128         constraint character.
2129         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
2130         (CONST_OK_FOR_P): Likewise.
2131         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
2132         CONST_OK_FOR_P any more.
2133         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
2134         of fix_bit_operand.
2135         (iorqi3): Likewise.
2136         (xorqi3): Likewise.
2137
2138 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2139
2140         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2141         (CPP_PREDEFINES): Make sure this is undefined.
2142         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
2143         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
2144         or -U__MIPSEB__ before defining one or the other.  Instead,
2145         use %(subtarget_endian_default) if neither -EB nor -EL are
2146         specified.
2147         (SUBTARGET_EXTRA_SPECS): Define.
2148         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
2149         %(netbsd_cpp_spec).
2150
2151 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
2152
2153         * doc/md.texi (Patterns): Note pattern condition pitfall
2154         for unnamed insn.
2155
2156 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
2157
2158         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
2159         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
2160         ternary operations from here...
2161         (rs6000_expand_builtin): ...to here.
2162         New argument expandedp.
2163         Change all instances of altivec_expand_binop_builtin to
2164         rs6000_expand_binop_builtin.
2165         (altivec_expand_unop_builtin): Rename to
2166         rs6000_expand_unop_builtin.
2167         (altivec_expand_binop_builtin): Rename to
2168         rs6000_expand_binop_builtin.
2169         (altivec_expand_ternop_builtin): Rename to
2170         rs6000_expand_ternop_builtin.
2171
2172 2002-05-29  Richard Henderson  <rth@redhat.com>
2173
2174         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
2175         (TARGET_BI_ARCH): Likewise.
2176         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
2177         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
2178         (TARGET_64BIT_DEFAULT): Default to 0.
2179         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
2180
2181 2002-05-29  Richard Henderson  <rth@redhat.com>
2182
2183         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
2184         (get_pc_thunk_name): New.
2185         (output_set_got): Use it.
2186         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
2187         into linkonce sections.
2188
2189 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2190
2191         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2192         (CPP_PREDEFINES): Make sure this is undefined.
2193         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
2194         (CPP_SUBTARGET_SPEC): Don't provide different versions for
2195         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
2196         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
2197         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
2198         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2199         (CPP_PREDEFINES): Make sure this is undefined.
2200         (SUBTARGET_EXTRA_SPECS): Define.
2201         (CPP_SPEC): Use %(netbsd_cpp_spec).
2202
2203 2002-05-29  Jeff Law <law@redhat.com>
2204
2205         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
2206
2207         * flow.c (propagate_one_insn): Do not remove a dead insn if it
2208         contains a REG_RETVAL note.
2209
2210         * haifa-sched (sched_analyze): Remove another useless clearing
2211         of SCHED_GROUP_P I missed yesterday.
2212
2213         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
2214         * pa.c (pa_asm_output_mi_thunk): New function.
2215         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
2216
2217 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2218             Marek Michalkiewicz  <marekm@amelek.gda.pl>
2219
2220         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
2221         (avr_asm_only_p): Make non-static.
2222         (enum avr_arch): Remove.
2223         (avr_arch_types): New.
2224         (avr_mcu_types): Update.
2225         (avr_override_options): Use avr_arch_types table instead of switch.
2226         * avr.h (CPP_PREDEFINES): Die.
2227         (avr_base_arch_macro, avr_extra_arch_macro): New.
2228         (TARGET_CPU_CPP_BUILTINS): New.
2229         (CPP_SPEC, EXTRA_SPECS): Simplify.
2230         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
2231         CPP_AVR5_SPEC): Die.
2232
2233 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2234
2235         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
2236         NETBSD_OS_CPP_BUILTINS_AOUT.
2237         (SUBTARGET_EXTRA_SPECS): Define.
2238         (CPP_SPEC): Use %(netbsd_cpp_spec).
2239
2240 2002-05-29  Richard Henderson  <rth@redhat.com>
2241
2242         * config/i386/i386.c (ix86_output_function_epilogue): New.
2243         (TARGET_ASM_FUNCTION_EPILOGUE): New.
2244         (pic_label_name): Remove.
2245         (pic_labels_used): New.
2246         (ix86_asm_file_end): Emit one pc load stub for each register used.
2247         (output_set_got): Generate deep pc load to any register.
2248         (ix86_select_alt_pic_regnum): New.
2249         (ix86_save_reg): Don't save pic register if we can find a valid
2250         call-clobbered replacement.
2251         (ix86_expand_prologue): If we found a valid replacement, renumber
2252         pic_offset_table_rtx.
2253         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
2254         pic_offset_table_rtx after reload.
2255         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
2256         * config/i386/i386.md (set_got): Make insn, not expander.
2257         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
2258
2259 2002-05-29  Richard Henderson  <rth@redhat.com>
2260
2261         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
2262         alignment for alloca.
2263
2264 2002-05-29  Richard Henderson  <rth@redhat.com>
2265
2266         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
2267         (print_operand_address): Only add rip for symbolic addresses
2268         for which we do not have another relocation type.
2269
2270 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2271
2272         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2273         (EXTRA_SPECS): Add netbsd_cpp_spec.
2274         (CPP_SPEC): Use %(netbsd_cpp_spec).
2275         (CPP_PREDEFINES): Remove.
2276         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2277         (EXTRA_SPECS): Define.
2278         (CPP_SPEC): Use %(netbsd_cpp_spec).
2279         (CPP_PREDEFINES): Remove.
2280
2281 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2282
2283         PR preprocessor/6844
2284         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
2285         NUL.
2286
2287 2002-05-29  Eric Christopher  <echristo@redhat.com>
2288
2289         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
2290         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
2291
2292 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
2293
2294         * config/fr30/fr30.md: Remove previous restriction on splits.
2295         Enforce conformance through gen_lowpart and cont_int_operand.
2296         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
2297         as the assembler does not support ".bss".
2298
2299 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2300
2301         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2302         (CPP_PREDEFINES): Remove.
2303         (SUBTARGET_EXTRA_SPECS): Define.
2304         (CPP_SPEC): Use %(netbsd_cpp_spec).
2305         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2306         (CPP_PREDEFINES): Remove.
2307         (SUBTARGET_EXTRA_SPECS): Define.
2308         (CPP_SPEC): Use %(netbsd_cpp_spec).
2309         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
2310         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
2311         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
2312         Add netbsd_cpp_spec.
2313         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
2314
2315 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2316             Zack Weinberg <zack@codesourcery.com>
2317
2318         * cppexp.c (cpp_num): Move to cpplib.h.
2319         (CPP_ERROR): Remove.
2320         (interpret_float_suffix, interpret_int_suffix): New.
2321         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
2322         (cpp_classify_number, cpp_interpret_integer): New.
2323         (interpret_number): Remove.
2324         (eval_token): Update to use new routines.
2325         * cpphash.h (cpp_num_part): Move to cpplib.h.
2326         * cppinit.c (cpp_post_options): Set warn_long_long.
2327         * cpplib.h (struct cpp_options): Add warn_long_long.
2328         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
2329         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
2330         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
2331         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
2332         cpp_interpret_integer): New.
2333
2334 2002-05-29  Joel Sherrill <joel@OARcorp.com>
2335
2336         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
2337
2338 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
2339
2340         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
2341         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
2342         (CPP_SUBTARGET_SPEC): Define.
2343         (SUBTARGET_EXTRA_SPECS): Define.
2344         (CPP_SPEC): Remove.
2345
2346 2002-05-29  Chris Lattner  <sabre@nondot.org>
2347
2348         * ssa.c (rename_insn_1): Rename uses of undefined registers to
2349         prevent confusion if/when the register is defined.
2350
2351 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
2352
2353         PR target/6838
2354         * config/cris/cris.md: Fix typos and thinkos in comments.
2355         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
2356         second alternative.
2357         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
2358         ("*mov_sideqi_mem"): Similar, but for operand 3.
2359         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
2360         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
2361         Remove spurious mode specifier on operand 2.
2362
2363 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
2364
2365         * config/h8300/h8300-protos.h: Remove the prototype for
2366         o_operand.
2367         Add prototypes for single_one_operand and single_zero_operand.
2368         * config/h8300/h8300.c (o_operand): Remove.
2369         (single_one_operand): New.
2370         (single_zero_operand): Likewise.
2371         (print_operand): For 'V' operand, and the operand with 0xff.
2372         For 'V' and 'W' operands, do not and the bit position with 7.
2373         * config/h8300/h8300.md (various anonymous patterns): Replace
2374         use of exact_log2 with single_one_operand/single_zero_operand.
2375
2376 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
2377
2378         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
2379
2380 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
2381
2382         * config/s390/s390.c (legitimate_pic_operand_p): Do not
2383         accept symbolic LARL operands.
2384         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
2385         epilogue insns.
2386
2387 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
2388
2389         * config/s390/s390.md (cmpstr_64/31): Mark whole
2390         input registers as used.
2391
2392 2002-05-28  Richard Henderson  <rth@redhat.com>
2393
2394         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
2395         not current_function_uses_pic_offset_table and
2396         current_function_uses_const_pool; examine current_function_profile.
2397         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
2398         input to blockage if needed.
2399         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
2400         (legitimize_pic_address): Likewise.  Set regs_ever_live for
2401         pic_offset_table_rtx when invoked during reload.
2402         * config/i386/i386.h (FINALIZE_PIC): Remove.
2403         * config/i386/i386.md (tablejump): Reformat.  Do not set
2404         current_function_uses_pic_offset_table.
2405         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
2406         (blockage): Accept anything as operand 0.
2407
2408 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
2409
2410         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
2411         common CPP built-ins for all NetBSD a.out targets.
2412         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
2413         common CPP built-ins for all NetBSD ELF targets.
2414         * config/netbsd.h: Add missing notice.
2415         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
2416         for all NetBSD targets.
2417         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
2418         for all NetBSD targets using an LP64 code model.
2419         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
2420         NetBSD targets.
2421
2422 2002-05-28  Richard Henderson  <rth@redhat.com>
2423
2424         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
2425         update if UPDATE_LIFE_LOCAL.
2426
2427 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
2428
2429         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
2430
2431 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
2432                           Jason R. Thorpe <thorpej@wasabisystems.com>
2433
2434         config/sh reorganization to factor out endianness and coff:
2435
2436         * config/sh/little.h: New file.
2437         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
2438         defined, define to 0 to select big-endian.
2439         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
2440         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2441         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2442         * config/sh/t-be: New file.
2443         * config/sh/t-le: New file.
2444
2445         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
2446         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
2447         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
2448         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
2449         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
2450         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
2451         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
2452         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
2453         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
2454         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
2455         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
2456         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
2457         (LINK_SPEC): Define to SH_LINK_SPEC.
2458         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
2459         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
2460         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
2461         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
2462         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
2463         * config/sh/coff.h: New file.
2464         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
2465         (TARGET_OBJFMT_CPP_BUILTINS): Define.
2466         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
2467         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
2468         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
2469         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
2470         (PTRDIFF_TYPE): Likewise.
2471         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
2472         (CPP_PREDEFINES): Don't define.
2473         (TARGET_OBJFMT_CPP_BUILTINS): Define.
2474         (LINK_SPEC): Define to SH_LINK_SPEC.
2475         (LINK_EMUL_PREFIX): Redefine.
2476         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
2477         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
2478         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
2479         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
2480         (TARGET_OS_CPP_BUILTINS): Define.
2481         (TARGET_DEFAULT): Redefine.
2482         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
2483         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
2484         (LINK_SPEC): Don't redefine.
2485         (LINK_DEFAULT_CPU_EMUL): Redefine.
2486         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2487         * sh.c (sh_asm_named_section): Don't declare / define.
2488         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
2489         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
2490         (sh64-*-elf* tm_file): Likewise.
2491         (sh-*-rtemself* tm_file): Likewise.
2492         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
2493         (sh-*-linux* tmake_file): Add sh/t-le.
2494         (sh-*-rtems* tm_file): Add sh/coff.h
2495         (sh-*-* tm_file): Likewise.
2496
2497 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
2498
2499         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
2500         CONSTANT_POOL_ADDRESS_P.
2501
2502         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
2503
2504 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
2505             Jeff Law <law@redhat.com>
2506
2507         * optabs.c (expand_binop): Fix nwords sign warnings.
2508         generate pseudo for add_optab.
2509
2510         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
2511         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
2512
2513 2002-05-28      Marc Espie <espie@openbsd.org>
2514
2515         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
2516         inherited from gas.h.
2517         (ASM_QUAD):  Undef.  OpenBSD does not support it.
2518
2519 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
2520
2521         * doc/install.texi (binaries): Change mingw binaries
2522         link to www.mingw.org.
2523
2524 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2525
2526         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
2527
2528 2002-05-28  Richard Henderson  <rth@redhat.com>
2529
2530         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
2531         bottom alignment for leaf functions.
2532
2533 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
2534
2535         * config/pa/milli32.S, config/pa/lib1funcs.asm,
2536         config/sparc/sol2-g1.asm: Delete unused files.
2537
2538 2002-05-28  Richard Henderson  <rth@redhat.com>
2539
2540         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
2541
2542         * flow.c (calculate_global_regs_live): Rename call_used to
2543         invalidated_by_call.  Initialize from regs_invalidated_by_call
2544         instead of call_used_regs.
2545
2546         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
2547         DECL_EXTERNAL.
2548
2549 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
2550
2551         * tree.h: Don't include real.h.
2552         Forward-declare struct realvaluetype.
2553         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
2554         contain it.
2555         (TREE_REAL_CST_PTR): New accessor.
2556         (TREE_REAL_CST): Update.
2557         * real.h: Include machmode.h.
2558         (realvaluetype): Make it struct realvaluetype, not a typedef.
2559         (build_real): Prototype here.
2560
2561         * tree.c: Include real.h.
2562         (build_real): Allocate the REAL_VALUE_TYPE as a separate
2563         object in GC memory, set TREE_REAL_CST_PTR to point to it.
2564         (build_real_from_int_cst): Use build_real.
2565         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
2566         REAL_CST.
2567
2568         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
2569         fold-const.c, print-tree.c, real.c: Include real.h.
2570         * Makefile.in: Update dependency lists.
2571
2572 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2573
2574         * basic-block.h (last_basic_block): Declare.
2575         (expunge_block_nocompact): Declaration removed.
2576         (compact_blocks): Declare.
2577         * cfg.c (last_basic_block): New variable.
2578         (expunge_block_nocompact): Removed.
2579         (expunge_block): Do not compact basic blocks.
2580         (compact_blocks): New.
2581         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
2582         longer change.
2583         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
2584         last_basic_block.
2585         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
2586         real positions of blocks.
2587         (delete_unreachable_blocks): Simplified -- quadratic behavior now
2588         cannot occur.
2589         (cleanup_cfg): Compact blocks.
2590         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
2591         basic_block_info varray.
2592         (flow_delete_block): Comment update.
2593         (back_edge_of_syntactic_loop_p): Modify position check code.
2594         (verify_flow_info): Update checking.
2595         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
2596         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
2597         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
2598         indices no longer change.
2599         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
2600         last_basic_block.
2601         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
2602         * profile.c (branch_prob): Compact blocks.
2603         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
2604         last_basic_block.
2605
2606 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
2607
2608         * config/h8300/h8300.md (two anonymous patterns): New.
2609
2610 2002-05-28  David S. Miller  <davem@redhat.com>
2611
2612         * config/sparc/sparc.md (cpu): Tidy.
2613         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
2614         'trap'.
2615         (in_call_delay): Delete reference to 'return' type.
2616         (eligible_for_return_delay, in_return_delay, define_delay
2617         referencing those): Delete.
2618         (rest of file): Use new type attributes as appropriate.
2619         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
2620         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
2621         * config/sparc/ultra1_2.md (us1_single): New reservation.
2622         (us1_ialuX): Likewise.
2623         * config/sparc/ultra3.md (us3_single): Likewise.
2624         (us3_ialuX): Likewise.
2625         (us3_imul, us3_idiv): Tweak.
2626
2627 2002-05-28  Richard Henderson  <rth@redhat.com>
2628
2629         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
2630         STRING_CST.
2631
2632 2002-05-28  Richard Henderson  <rth@redhat.com>
2633
2634         * config.gcc: Obsolete mn10200.
2635
2636 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
2637
2638         * cppexp.c (interpret_number): Optimize for single-digit
2639         and less-than-half-precision cases.
2640         (num_trim, num_positive, num_div_op): Cast constants.
2641
2642 2002-05-27  Bo Thorsen  <bo@suse.de>
2643
2644         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
2645         3.1 branch. The file was made by Jakub Jelinek.
2646         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
2647         support so multilib doesn't break. And don't define this at all
2648         when -Dinhibit_libc is used.
2649         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
2650         * config/i386/t-linux64: Implement full multilib support. Patch
2651         originally done by Andreas Jaeger and Jakub Jelinek.
2652
2653 2002-05-27  Roger Sayle  <roger@eyesopen.com>
2654
2655         * c-common.c: Add support for __attribute__((nothrow)) to specify
2656         that a function cannot throw an exception (using TREE_NOTHROW).
2657         (handle_nothrow_attribute): New function to process this attribute.
2658
2659         * doc/extend.texi: Document the new nothrow function attribute.
2660
2661 2002-05-27  H.J. Lu  (hjl@gnu.org)
2662
2663         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
2664         (num_positive): Likewise.
2665         (num_div_op): Likewise.
2666
2667 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2668
2669         * c-common.c (c_common_init): Always use intmax_t.
2670
2671 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2672
2673         * c-common.c (c_common_init): Use intmax_t for now.
2674
2675 2002-05-24  Andrew Haley  <aph@redhat.com>
2676
2677         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
2678         if T is a boolean type.
2679
2680 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2681
2682         * basic-block.h (last_basic_block): Defined as synonym for
2683         n_basic_blocks.
2684         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
2685         flow_depth_first_order_compute, flow_preorder_transversal_compute,
2686         flow_dfs_compute_reverse_init): Replaced relevant occurences of
2687         n_basic_blocks with last_basic_block.
2688         * cfgbuild.c (make_edges): Likewise.
2689         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
2690         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
2691         * combine.c (combine_instructions): Likewise.
2692         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
2693         iterative_dataflow_bitmap): Likewise.
2694         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
2695         calc_idoms, idoms_to_doms): Likewise.
2696         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
2697         Likewise.
2698         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
2699         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
2700         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
2701         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
2702         delete_null_pointer_checks, compute_code_hoist_vbeinout,
2703         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
2704         compute_store_table, build_store_vectors): Likewise.
2705         * haifa-sched.c (sched_init): Likewise.
2706         * ifcvt.c (if_convert): Likewise.
2707         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
2708         pre_edge_lcm, compute_available, compute_nearerout,
2709         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
2710         Likewise.
2711         * predict.c (estimate_probability, process_note_prediction,
2712         note_prediction_to_br_prob): Likewise.
2713         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
2714         * recog.c (split_all_insns, peephole2_optimize): Likewise.
2715         * regrename.c (copyprop_hardreg_forward): Likewise.
2716         * resource.c (init_resource_info): Likewise.
2717         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
2718         init_regions, schedule_insns): Likewise.
2719         * ssa-ccp.c (ssa_const_prop): Likewise.
2720         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
2721         * ssa.c (compute_dominance_frontiers,
2722         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
2723
2724         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
2725         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
2726         sizes consistently.
2727
2728 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
2729
2730         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
2731         new.
2732         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
2733         hoist_insn_after, hoist_insn_to_edge): New.
2734
2735 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
2736
2737         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
2738         (PROP_FINAL): Include.
2739         * flow.c (life_analysis, update_life_info,
2740         init_propagate_block_info, mark_set_1, mark_used_rgs):
2741         Support SCAN_DEAD_STORE.
2742
2743 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2744
2745         * c-common.c (c_common_init): Set CPP arithmetic precision.
2746         * cppexp.c (cpp_num_part): Move typedef ...
2747         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
2748         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
2749         (sanity_checks): Update.
2750
2751 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
2752
2753         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
2754         (mkheaders): New rule.
2755         (install-mkheaders): New rule.
2756         * configure.in (all_outputs): Add mkheaders.
2757         * configure: Regenerate.
2758         * mkheaders.in: New file.
2759
2760 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
2761
2762         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
2763
2764 2002-05-26  Andreas Jaeger  <aj@suse.de>
2765
2766         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
2767
2768 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2769
2770         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
2771         right_shift): Remove.
2772         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
2773         HIGH_PART): New.
2774         (struct op): Use cpp_num.
2775         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
2776         num_part_mul, num_unary_op, num_binary_op, num_negate,
2777         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
2778         num_div_op, num_lshift, num_rshift, append_digit): New.
2779         (interpret_number, parse_defined, eval_token, reduce): Update
2780         for two-integer arithmetic.
2781         (binary_handler): New typedef.
2782         (optab): Update.
2783         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
2784         (_cpp_parse_expr, reduce): Update to handle two-integers.
2785         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
2786
2787 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2788
2789         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
2790         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
2791         branch insn into account, do not assume 1.
2792         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
2793         over single word insn.  Handle upper half of I/O space too.
2794         * config/avr/avr.md (*sbrx_branch): Use it.
2795         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
2796         (*sbix_branch, *sbix_branch_bit7): Likewise.
2797         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
2798         Use RTL peepholes to optimize register operand sign tests.
2799
2800 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2801
2802         * config/avr/avr.c (avr_asm_only_p): New variable.
2803         (avr_override_options): Set it here if AVR1.
2804         (asm_file_start): Test it here, report an error if set.
2805
2806 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
2807
2808         * alias.c: Fix formatting.
2809         * attribs.c: Likewise.
2810         * bb-reorder.c: Likewise.
2811         * bitmap.c: Likewise.
2812         * bitmap.h: Likewise.
2813         * builtins.c: Likewise.
2814
2815 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
2816
2817         * reload.c (find_valid_class): Accept new argument DEST,
2818         choose class accordingly.
2819         (push_reload): Update callers.
2820
2821 2002-05-26  Andreas Jaeger  <aj@suse.de>
2822
2823         * combine.c (combine_instructions): Do not indent #if for
2824         traditional C.
2825
2826 2002-05-25  Richard Henderson  <rth@redhat.com>
2827
2828         * c-pragma.c (apply_pragma_weak): Convert value identifier to
2829         string for decl_attributes.
2830         (handle_pragma_weak): Call assemble_alias if we're modifying
2831         an existing decl.
2832
2833 2002-05-25  Richard Henderson  <rth@redhat.com>
2834
2835         PR target/6788
2836         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
2837         using rtl instead of fprintf.
2838         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
2839         * config/sparc/sparc-protos.h: Update.
2840
2841 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
2842
2843         * Makefile.in (C_COMMON_H): Fix.
2844         Update other targets.
2845         * c-common.c: Don't include c-lex.h.
2846         (builtin_define_with_value): Make static and prototype.
2847         (builtin_define_std): Move from c-lex.h.
2848         * c-common.h (init_c_lex): Move from c-lex.h.
2849         * c-decl.c: Don't include c-lex.h.
2850         (make_pointer_declarator): Move from c-parse.in.
2851         * c-lex.c: Don't include c-lex.h.
2852         * c-lex.h: Remove.
2853         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
2854         (make_pointer_declarator): Move to c-decl.c.
2855         * c-pragma.c: Don't include c-lex.h.
2856         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
2857         * c-tree.h (make_pointer_declarator): New.
2858 doc:
2859         * passes.texi, tm.texi: Update.
2860 objc:
2861         * Make-lang.in: Update and correct.
2862         * objc-act.c: Don't include c-lex.h or cpplib.h.
2863 treelang:
2864         * treetree.c: Don't include c-lex.h.
2865 config:
2866         * darwin-c.c: Don't include c-lex.h.
2867         * c4x/c4x-c.c: Don't include c-lex.h.
2868         * c4x/t-c4x: Update.
2869         * i370/i370-c.c: Don't include c-lex.h.
2870         * i370/t-i370: Update.
2871         * i960/i960-c.c: Don't include c-lex.h.
2872         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
2873         * i960/t-960bare: Update.
2874         * i960/t-vxworks: Update.
2875         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
2876         * rs6000/t-darwin: Update.
2877         * rs6000/t-rs6000-c-rule: Update.
2878         * v850/v850-c.c: Don't include c-lex.h.
2879         * v850/v850.c: Don't include c-lex.h or cpplib.h.
2880
2881
2882 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
2883
2884         * tree.def: Fix typos.
2885         * doc/install.texi: Likewise.
2886
2887 2002-05-25  Richard Henderson  <rth@redhat.com>
2888
2889         * configure.in (HAVE_AS_TLS): Add ia64 test.
2890         * configure: Rebuild.
2891         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
2892         (override_options): Set it.
2893         (TARGET_HAVE_TLS): New.
2894         (sdata_symbolic_operand): Look for 's'.
2895         (tls_symbolic_operand): New.
2896         (ia64_expand_load_address): Abort for tls symbols.
2897         (gen_tls_get_addr): New.
2898         (gen_thread_pointer): New.
2899         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
2900         (rtx_needs_barrier): Add new unspecs.
2901         (ia64_encode_section_info): Handle tls symbols.
2902         (ia64_strip_name_encoding): Strip two encoding chars.
2903         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
2904         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
2905         (TARGET_OPTIONS): Add tls-size.
2906         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
2907         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
2908         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
2909         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
2910         (movsf, movdf): Likewise.
2911         (movdi_symbolic): Use match_scratch.  Don't split if we won't
2912         have a scratch availiable.
2913         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
2914         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
2915         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
2916         * config/ia64/ia64-protos.h: Update.
2917         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
2918         sdata_symbolic_operand.
2919         (ASM_OUTPUT_LABELREF): Strip two characters.
2920
2921 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
2922
2923         * combine.c (simplify_set): Remove an unnecessary subreg.
2924
2925 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2926
2927         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
2928
2929         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
2930
2931 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
2932
2933         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
2934
2935 2002-05-25  Roger Sayle  <roger@eyesopen.com>
2936
2937         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
2938         (cond (compare x y) 0) into the equivalent (cond x y).
2939
2940 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
2941
2942         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
2943
2944 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
2945
2946         * config.gcc: Remove all stanzas for previously obsoleted
2947         systems.  Where necessary, add explicit error stanzas to
2948         prevent removed systems from being misidentified as something
2949         else.  Begin a fresh obsoletions list, with the systems that
2950         were reprieved last round.
2951         * doc/install.texi: Remove all mention of dead targets.
2952         * fixinc/mkfixinc.sh: Likewise.
2953
2954         * config/arm/arm.h: Bit 31 of target_flags is no longer
2955         reserved.
2956
2957         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
2958         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
2959         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
2960         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
2961         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
2962         config/alpha/osf12.h, config/alpha/osf2or3.h,
2963         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
2964         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
2965         config/clipper/clipper-protos.h, config/clipper/clipper.c,
2966         config/clipper/clipper.h, config/clipper/clipper.md,
2967         config/clipper/clix.h, config/convex/convex-protos.h,
2968         config/convex/convex.c, config/convex/convex.h,
2969         config/convex/convex.md, config/convex/fixinc.convex,
2970         config/convex/proto.h, config/elxsi/elxsi-protos.h,
2971         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
2972         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
2973         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
2974         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
2975         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
2976         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
2977         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
2978         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
2979         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
2980         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
2981         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
2982         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
2983         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
2984         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
2985         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
2986         config/m68k/altos3068.h, config/m68k/apollo68.h,
2987         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
2988         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
2989         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
2990         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
2991         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
2992         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
2993         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
2994         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
2995         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
2996         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
2997         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
2998         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
2999         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
3000         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
3001         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
3002         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
3003         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
3004         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
3005         config/mips/dec-osf1.h, config/mips/elflorion.h,
3006         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
3007         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
3008         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
3009         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
3010         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
3011         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
3012         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
3013         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
3014         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
3015         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
3016         config/ns32k/sequent.h, config/ns32k/tek6000.h,
3017         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
3018         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
3019         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
3020         config/sparc/rtems.h, config/we32k/we32k-protos.h,
3021         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
3022         Delete file.
3023
3024 2002-05-24  Richard Henderson  <rth@redhat.com>
3025
3026         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
3027         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
3028         * config/i386/i386.c (tls_model_chars): Add leading space.
3029         (tls_symbolic_operand): Don't bias by 1.
3030         (legitimize_address): Don't unbias by 1.
3031
3032 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
3033
3034         * lcm.c (optimize_mode_switching): Change bb used as indices
3035         to bb->index.
3036
3037 2002-05-24  Richard Henderson  <rth@redhat.com>
3038
3039         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
3040         of update_life_info_in_dirty_blocks.
3041
3042 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
3043
3044         PR other/6782
3045         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
3046
3047 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
3048
3049         PR preprocessor/6780
3050         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
3051
3052 2002-05-24  Jim Blandy  <jimb@redhat.com>
3053
3054         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
3055         entry with a type code of zero, marking the end of the compilation
3056         unit's macro info.
3057
3058 2002-05-24  Richard Henderson  <rth@redhat.com>
3059
3060         * varasm.c (asm_output_bss): Always output one byte.
3061         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
3062
3063 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
3064
3065         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
3066         namespace.
3067
3068 2002-05-24  Andreas Jaeger  <aj@suse.de>
3069
3070         * ggc-page.c (alloc_page): Cast variables of type size_t to
3071         unsigned long, adjust printf format string.
3072         (ggc_alloc): Likewise.
3073         (ggc_print_statistics): Likewise.
3074         (ggc_print_statistics): Correct printf format string for SCALE to
3075         use unsigned long.
3076
3077 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
3078
3079         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
3080
3081 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
3082             Zack Weinberg     <zack@codesourcery.com>
3083
3084         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
3085         quoted strings.
3086         * dwarf2out.c (lookup_filename): Properly quote filename in .file
3087         directive in assembly file.
3088         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
3089         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
3090         * config/pj/pj.h (ASM_FILE_START): Likewise.
3091         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
3092         * config/avr/avr.c (asm_file_end): Likewise.
3093         * toplev.c (output_quoted_string): Handle possibly signed plain
3094         char.
3095         * toplev.h (output_clean_symbol_name): Declare
3096         * toplev.c (output_clean_symbol_name): Define.
3097         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
3098         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
3099
3100 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
3101
3102         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
3103
3104 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
3105
3106         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
3107         of size of unsigned.
3108
3109 2002-05-23  Richard Henderson  <rth@redhat.com>
3110
3111         * configure.in (HAVE_AS_TLS): New test.
3112         * config.in, configure: Rebuild.
3113         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
3114         (ix86_tls_dialect_string, ix86_tls_dialect): New.
3115         (override_options): Set it.
3116         (tls_model_chars, tls_symbolic_operand): New.
3117         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
3118         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
3119         (local_exec_symbolic_operand): New.
3120         (get_pic_label_name): Merge into output_set_got.
3121         (ix86_asm_file_end): Emit pic_label_name if defined.
3122         (legitimate_constant_p, constant_address_p): New.
3123         (legitimate_pic_operand_p): New.
3124         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
3125         (legitimate_address_p): Likewise.
3126         (ix86_encode_section_info): Rename from i386_; handle tls decls.
3127         (ix86_strip_name_encoding): New.
3128         (get_thread_pointer): New.
3129         (legitimize_address): Handle tls symbols.
3130         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
3131         Remove UNSPEC_PLT.
3132         (struct machine_function): Add some_ld_name.
3133         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
3134         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
3135         (output_addr_const_extra): New.
3136         (maybe_get_pool_constant): New.
3137         (ix86_split_to_parts): Use it.
3138         (ix86_expand_move): Handle tls symbols.
3139         (ix86_tls_get_addr): New.
3140         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
3141         (TARGET_OPTIONS): Add tls-dialect.
3142         (CONSTANT_ADDRESS_P): Use new out-of-line function.
3143         (LEGITIMATE_CONSTANT_P): Likewise.
3144         (LEGITIMATE_PIC_OPERAND_P): Likewise.
3145         (TARGET_STRIP_NAME_ENCODING): New.
3146         (ASM_OUTPUT_LABELREF): New.
3147         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
3148         (OUTPUT_ADDR_CONST_EXTRA): New.
3149         (PREDICATE_CODES): Update.
3150         (ix86_tls_dialect, ix86_tls_dialect_string): New.
3151         * config/i386/i386.md: Regroup and renumber unspec constants.
3152         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
3153         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
3154         (tls_global_dynamic, tls_local_dynamic_base): New.
3155         (tls_local_dynamic_once): New.
3156         * config/i386/i386-protos.h: Update.
3157
3158 2002-05-23  Richard Henderson  <rth@redhat.com>
3159
3160         * genemit.c (gen_insn): Print file:lineno comment before function.
3161         (main): likewise.
3162         * gensupport.c (struct queue_elem): Add filename member.
3163         (queue_pattern): Initialize it; update all callers.
3164         (process_include): Don't free filename.
3165         (read_md_rtx): Set read_rtx_filename.
3166
3167 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
3168
3169         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
3170
3171 2002-05-23  Richard Henderson  <rth@redhat.com>
3172
3173         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
3174
3175 2002-05-23  Richard Henderson  <rth@redhat.com>
3176
3177         * doc/extend.texi (C++98 Thread-Local Edits): Update with
3178         commentary from Mark.
3179
3180 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3181
3182         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
3183         Use FOR_EACH_BB macros to iterate over basic block chain.
3184         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
3185         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
3186         Likewise.
3187         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
3188         find_unreachable_blocks, create_edge_list, verify_edge_list,
3189         remove_fake_edges, add_noreturn_fake_exit_edges,
3190         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
3191         Likewise.
3192         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
3193         find_sub_basic_blocks): Likewise.
3194         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
3195         Likewise.
3196         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
3197         Likewise.
3198         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
3199         Likewise.
3200         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
3201         commit_edge_insertions, commit_edge_insertions_watch_calls,
3202         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
3203         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
3204         * conflict.c (conflict_graph_compute): Likewise.
3205         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
3206         df_modified_p, df_refs_unlink, df_dump): Likewise.
3207         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
3208         * final.c (compute_alignments): Likewise.
3209         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
3210         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
3211         count_or_remove_death_notes): Likewise.
3212         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
3213         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
3214         classic_gcse, compute_transp, cprop, compute_pre_data,
3215         compute_transpout, invalidate_nonnull_info,
3216         delete_null_pointer_checks_1, delete_null_pointer_checks,
3217         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
3218         compute_store_table, build_store_vectors, store_motion): Likewise.
3219         * global.c (global_conflicts, mark_elimination): Likewise.
3220         * graph.c (print_rtl_graph_with_bb): Likewise.
3221         * haifa-sched.c (sched_init): Likewise.
3222         * ifcvt.c (if_convert): Likewise.
3223         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
3224         compute_available, compute_nearerout, compute_rev_insert_delete,
3225         optimize_mode_switching): Likewise.
3226         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
3227         * predict.c (estimate_probability, note_prediction_to_br_prob,
3228         propagate_freq, counts_to_freqs, expensive_function_p,
3229         estimate_bb_frequencies): Likewise.
3230         * profile.c (instrument_edges, get_exec_counts,
3231         compute_branch_probabilities, compute_checksum, branch_prob,
3232         find_spanning_tree): Likewise.
3233         * recog.c (split_all_insns, peephole2_optimize): Likewise.
3234         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
3235         Likewise.
3236         * regclass.c (scan_one_insn, regclass): Likewise.
3237         * regmove.c (mark_flags_life_zones, regmove_optimize,
3238         record_stack_memrefs): Likewise.
3239         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
3240         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
3241         * resource.c (find_basic_block): Likewise.
3242         * sched-ebb.c (schedule_ebbs): Likewise.
3243         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
3244         find_single_block_region, find_rgns, schedule_insns)
3245         * sibcall.c (optimize_sibling_and_tail_recursive_call)
3246         * ssa-ccp.c (optimize_unexecutable_edges,
3247         ssa_ccp_df_delete_unreachable_insns): Likewise.
3248         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
3249         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
3250         rename_block, convert_to_ssa, compute_conservative_reg_partition,
3251         compute_coalesced_reg_partition, rename_equivalent_regs,
3252         convert_from_ssa): Likewise.
3253         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
3254         process_for_unwind_directive): Likewise.
3255
3256         * df.c (FOR_ALL_BBS): Removed.
3257         * gcse.c (struct null_pointer_info): Type of current_block field
3258         changed.
3259         (struct reg_avail_info): Type of last_bb field changed.
3260         * config/ia64/ia64.c (block_num): Removed.
3261         (need_copy_state): Type changed.
3262         (last_block): New.
3263
3264 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3265
3266         * cppinit.c (mark_named_operators): Split out from init_builtins.
3267         (cpp_finish_options): Call it from here instead.
3268
3269 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
3270
3271         * builtin-attrs.def: Update copyright years.
3272         (ATTR_NONNULL): New attribute identifier.
3273         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
3274         attribute tree lists.
3275         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
3276         format operand.
3277         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
3278         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
3279         attribute lists.  Chain the appropriate nonnull attribute.
3280         * c-format.c (check_format_arg): Remove null format string
3281         warning.
3282         * testsuite/gcc.dg/format/null-1.c: New test.
3283
3284 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3285
3286         * Makefile.in (ADAC): Define.
3287         (SYSLIBS): Define.
3288         (.SUFFIXES): Move before language makefile fragments.
3289         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
3290
3291 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
3292
3293         * varasm.c (make_decl_rtl): Don't allow weak variables to be
3294         placed in common.
3295
3296 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
3297
3298         * cfg.c (dump_flow_info): Print results of
3299         maybe_hot/probably_never_executed predicates.
3300         * toplev.c (open_dump_file): Print function frequency.
3301
3302 2002-05-23  David S. Miller  <davem@redhat.com>
3303
3304         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
3305         regsets.
3306
3307 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
3308
3309         * c-common.c (warn_nonnull): Declare.
3310         (c_common_attribute_table): Add "nonnull" attribute.
3311         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
3312         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
3313         check_function_arguments_recurse): New functions.
3314         * c-common.h (warn_nonnull): Declare extern.
3315         (check_function_arguments, check_function_arguments_recurse): New
3316         prototypes.
3317         * c-decl.c (c_decode_option): Add -Wnonnull option.
3318         * c-format.c (set_Wformat): Set warn_nonnull if enabling
3319         format checking.
3320         (format_check_context): New structure.
3321         (check_format_info_recurse): Remove recursion and rename to...
3322         (check_format_arg): ...this.  Update comment.
3323         (check_format_info): Use check_function_arguments_recurse.
3324         * c-typeck.c (build_function_call): Call check_function_arguments
3325         instead of check_function_format.
3326         * doc/extend.texi: Document "nonnull" attribute.
3327         * doc/invoke.texi: Docuemnt -Wnonnull option.
3328         * testsuite/gcc.dg/nonnull-1.c: New test.
3329         * testsuite/gcc.dg/nonnull-2.c: New test.
3330
3331 2002-05-23  David S. Miller  <davem@redhat.com>
3332
3333         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
3334         * cfgcleanup.c (cleanup_cfg): If it is set do not
3335         attempt to delete trivially dead insns.
3336         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
3337         * toplev.c (rest_of_compilation): Document non-trivial aspect
3338         the RTL before optimize_save_area_alloca is run.
3339
3340 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3341
3342         * c-lex.c (indent_level): Remove.
3343         (cb_file_change, c_lex): Remove indent level handling.
3344         * c-lex.h (indent_level): Remove.
3345         * input.h (struct file_stack): Remove indent_level.
3346         * toplev.c (push_srcloc): Remove indent_level handling.
3347
3348 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
3349
3350         PR target/6753
3351         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
3352         of x in constraints for clarity.
3353         (sse_mov?fcc split): abort if op2 == op3.
3354         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
3355         sse_movsfcc_const0_4): Add earlyclobber.
3356         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
3357         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
3358         Use Y instead of x in constraints.
3359
3360 2002-05-23  Richard Henderson  <rth@redhat.com>
3361
3362         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
3363         (C++98 Thread-Local Edits): New subsection.
3364
3365         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
3366         (ix86_arch): Set type to enum processor_type.
3367
3368         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
3369         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
3370
3371 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
3372
3373         * configure.in: Fix as version test for binutils 2.12.1 releases
3374         (without dates).
3375         * configure: Rebuilt.
3376
3377 2002-05-23  Richard Henderson  <rth@redhat.com>
3378
3379         * config/i386/i386.c (get_pic_label_name): New.
3380         (load_pic_register): Remove.
3381         (output_set_got): New.
3382         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
3383         * config/i386/i386.md (UNSPEC_SET_GOT): New.
3384         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
3385         (prologue_set_got, prologue_get_pc): Remove.
3386         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
3387         (builtin_setjmp_receiver): Use gen_set_got.
3388         * config/i386/i386-protos.h: Update.
3389
3390 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
3391
3392         * gcse.c (hash_expr): Do not use alias set for hashing.
3393
3394 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
3395
3396         * dbxout.c (dbxout_class_name_qualifiers): New function.
3397         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
3398
3399 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
3400
3401         * cpperror.c (_cpp_begin_message): No special casing
3402         of CPP_FATAL_LIMIT.
3403         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
3404         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
3405         * cpplib.c (do_include_common): Use DL_ERROR.
3406         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
3407         (DL_ICE): Renumber.
3408         * fix-header.c (read_scan_file): Update.
3409
3410 2002-05-22  Richard Henderson  <rth@redhat.com>
3411
3412         * config/i386/i386.c (ix86_expand_call): New function, extracted
3413         from md call patterns.  Add pic_offset_table_rtx to
3414         CALL_INSN_FUNCTION_USAGE when needed.
3415         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
3416         (call_value_pop, call_value, untyped_call): Likewise.
3417         (call_exp, call_value_exp): Remove.
3418         * config/i386/i386-protos.h: Update.
3419
3420 2002-05-22  Richard Henderson  <rth@redhat.com>
3421
3422         * varasm.c (default_section_type_flags): Check for VAR_DECL
3423         before using DECL_THREAD_LOCAL.
3424
3425 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
3426
3427         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
3428         (STARTFILE_SPEC): Delete PE crt0.o.
3429         * config/rs6000/aix51.h: Same.
3430         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
3431         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
3432         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
3433         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
3434         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
3435
3436 2002-05-22  Richard Henderson  <rth@redhat.com>
3437
3438         * varasm.c (default_section_type_flags): Handle tls data and
3439         default sections.
3440         (default_unique_section): Handle tls sections.
3441
3442 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
3443
3444         * configure.in (CROSS): Define NATIVE_CROSS.
3445         * configure: Regenerate.
3446         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
3447         (startfile_prefix_spec): New var.
3448         (static_specs): Add startfile_prefix_spec.
3449         (do_spec_2): Split out from..
3450         (do_spec): ..here.
3451         (main): Process startfile_prefix_spec.
3452         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
3453         dynamic linker.
3454         (STARTFILE_PREFIX_SPEC): Define.
3455         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
3456         absolute paths.
3457
3458 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
3459
3460         * cpperror.c: Fix formatting.
3461         * cppexp.c: Likewise.
3462         * cppfiles.c: Likewise.
3463         * cpphash.c: Likewise.
3464         * cpphash.h: Likewise.
3465         * cppinit.c: Likewise.
3466         * cpplex.c: Likewise.
3467         * cpplib.c: Likewise.
3468         * cppmacro.c: Likewise.
3469         * cppmain.c: Likewise.
3470         * cppspec.c: Likewise.
3471
3472 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
3473
3474         * combine.c (force_to_mode): Use gen_int_mode.
3475         Don't clear CONST_INT bits outside of mode.
3476
3477 2002-05-22  Richard Henderson  <rth@redhat.com>
3478
3479         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
3480         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3481
3482 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
3483
3484         PR c/6643
3485         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
3486         if DECL_SIZE_UNIT is INTEGER_CST.
3487
3488 2002-05-22  Richard Henderson  <rth@redhat.com>
3489
3490         * flow.c (life_analysis): Delete broken reg_label check.
3491
3492 2002-05-22  Richard Henderson  <rth@redhat.com>
3493
3494         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
3495         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3496
3497 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
3498
3499         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
3500         (embed-bb.c): New rule.
3501         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
3502         * config/sh/embed_bb.c: Delete.
3503
3504 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
3505
3506         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
3507
3508 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
3509
3510         * config/h8300/h8300.md (*andorqi3): New.
3511
3512 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
3513
3514         PR preprocessor/6517
3515         * Makefile.in: Update.
3516         * c-common.c (c_common_post_options): Add preprocessor
3517         errors to the error count.
3518         * c-lang.c (c_post_options): Kill.
3519         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
3520         * hooks.h: Add header guards.
3521         * langhooks-def.h: Include hooks.h.
3522         (LANG_HOOKS_POST_OPTIONS): Update.
3523         * langhooks.h (struct lang_hooks): Update post_options.
3524         * toplev.c (parse_options_and_default_flags): Update.
3525 objc:
3526         * objc-lang.c (objc_post_options): Kill.
3527         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
3528
3529 2002-05-21  Bruce Korb  <bkorb@gnu.org>
3530
3531         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
3532         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
3533         * fixinc/fixincl.x: regen.
3534
3535 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
3536
3537         * cfgbuild.c: Fix formatting.
3538         * cfg.c: Likewise.
3539         * cfgcleanup.c: Likewise.
3540         * cfglayout.c: Likewise.
3541         * cfgloop.c: Likewise.
3542         * cfgrtl.c: Likewise.
3543
3544 2002-05-21  Richard Henderson  <rth@redhat.com>
3545
3546         * c-common.h (enum rid): Add RID_THREAD.
3547         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
3548         (grokdeclarator): Grok __thread.
3549         * c-parse.in (reswords): Add __thread.
3550         (rid_to_yy): Add RID_THREAD.
3551
3552         * tree.h (DECL_THREAD_LOCAL): New.
3553         (struct tree_decl): Add thread_local_flag.
3554         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
3555         * tree.c (staticp): TLS variables are not static.
3556
3557         * target-def.h (TARGET_HAVE_TLS): New.
3558         * target.h (have_tls): New.
3559         * output.h (SECTION_TLS): New.
3560         * varasm.c (assemble_variable): TLS variables can't be common for now.
3561         (default_section_type_flags): Handle .tdata and .tbss.
3562         (default_elf_asm_named_section): Handle SECTION_TLS.
3563         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
3564
3565         * flags.h (flag_tls_default): Declare.
3566         * toplev.c (flag_tls_default): Define.
3567         (display_help): Display help for it.
3568         (decode_f_option): Set it.
3569
3570         * doc/extend.texi (Thread-Local): New node describing language-level
3571         thread-local storage.
3572         * doc/invoke.texi (-ftls-model): Document.
3573
3574         * fixinc/inclhack.def (thread_keyword): New.
3575         * fixinc/fixincl.x: Rebuild.
3576
3577 2002-05-21  Jeffrey A Law  <law@redhat.com>
3578
3579         * optabs.c (expand_binop): For double-word integer multiplies,
3580         do not compute intermediate results into something that is
3581         not a register (such as a SUBREG or MEM).
3582
3583         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
3584         (ix86_sched_reorder): Make sure to initialize scheduling
3585         data even when there's only one insn in the ready queue.
3586
3587 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
3588
3589         * genautomata.c (reserv_sets_hash_value): Fix a typo.
3590
3591 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
3592
3593         * genautomata.c (reserv_sets_hash_value): Define hash_value as
3594         set_el_t.  Transform the hash value into unsigned.
3595         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
3596         (transform_3): Add code to process `(A,B)+(D,E)'.
3597
3598 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
3599
3600         * reload1.c (do_output_reload): Run delete_output_reload
3601         only if optimizing.
3602
3603 2002-05-21  Roger Sayle  <roger@eyesopen.com>
3604
3605         PR middle-end/6600
3606         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
3607         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
3608         (can_store_by_pieces): ... and here to limit the largest mode used.
3609         Add a comment to document this function.
3610
3611 2002-05-21  Richard Henderson  <rth@redhat.com>
3612
3613         * flow.c (life_analysis): Fix test for deleted label.
3614
3615 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3616
3617         * doc/tm.texi: Fix typo.
3618
3619 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
3620
3621         * c-common.c (c_common_init): Set options->unsigned_char from
3622         flag_signed_char.
3623         (cb_register_builtins): Define __STRICT_ANSI__ and
3624         __CHAR_UNSIGNED__ here...
3625         * cppinit.c (init_builtins): Not here.
3626         (cpp_create_reader): unsigned_char option defaults to 0, not
3627         !DEFAULT_SIGNED_CHAR.
3628         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
3629         and -funsigned-char.
3630
3631         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
3632         * cpphash.c (_cpp_init_hashtable): Don't set it.
3633         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
3634         directly.  Clarify comment.
3635
3636 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3637
3638         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
3639         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
3640         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
3641         BASIC_BLOCK (n_basic_blocks - 1).
3642         * cfganal.c (can_fallthru, flow_call_edges_add,
3643         flow_preorder_transversal_compute): Too.
3644         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
3645         find_sub_basic_blocks): Too.
3646         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
3647         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
3648         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
3649         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
3650         * combine.c (this_basic_block): Type changed to basic_block.
3651         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
3652         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
3653         get_last_value, distribute_notes, distribute_links): Too.
3654         * final.c (compute_alignments): Too.
3655         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
3656         * function.c (thread_prologue_and_epilogue_insns): Too.
3657         * gcse.c (compute_code_hoist_vbeinout): Too.
3658         * global.c (build_insn_chain): Too.
3659         * ifcvt.c (find_if_block, find_cond_trap): Too.
3660         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
3661         * regmove.c (regmove_optimize): Too.
3662         * resource.c (find_basic_block): Too.
3663         * sched-ebb.c (schedule_ebbs): Too.
3664         * ssa-dce.c (find_control_dependence, find_pdom): Too.
3665
3666 2002-05-21  Andreas Jaeger  <aj@suse.de>
3667
3668         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
3669
3670 2002-05-21  Richard Henderson  <rth@redhat.com>
3671
3672         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
3673         unspec names, not numbers.
3674
3675 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3676
3677         * doc/sourcebuild.texi: Mention snapshot-README and
3678         snapshot-index.html as needing updating for new front ends.
3679
3680 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3681
3682         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
3683         disabling checking, and avoid multiple evaluation of RTX.
3684
3685 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
3686
3687         * bitmap.c (bitmap_find_bit): Return early if we have the correct
3688         element cached.
3689
3690 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
3691
3692         * profile.c (gen_edge_profiler):  Set alias set before the memory is
3693         used.
3694
3695 2002-05-20  David S. Miller  <davem@redhat.com>
3696
3697         * cselib.c (max_value_regs): New.
3698         (cselib_lookup, cselib_invalidate_regno): Initialize it when
3699         adding new entries to the REG_VALUES table and we are dealing with
3700         a hard register.
3701         (clear_table): Initialize it.
3702         (cselib_invalidate_regno): Use it to determine which hard
3703         registers to scan when mode is not VOIDmode.
3704
3705 2002-05-20  Duraid Madina   <duraid@fl.net.au>
3706
3707         * tradcpp.c (fixup_newlines): Use old-style function header.
3708
3709 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
3710
3711         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
3712
3713 2002-05-20  H.J. Lu  (hjl@gnu.org)
3714
3715         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
3716
3717         * config/mips/mips.h (DFMODE_NAN): Defined.
3718         (SFMODE_NAN): Likewise.
3719
3720 2002-05-20  Dale Johannesen  <dalej@apple.com>
3721
3722         * combine.c (cant_combine_insn_p):  Back out my
3723         previous patch.
3724
3725 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
3726
3727         * params.c: Fix formatting.
3728         * params.h: Likewise.
3729         * predict.c: Likewise.
3730         * prefix.c: Likewise.
3731         * print-rtl.c: Likewise.
3732         * print-tree.c: Likewise.
3733         * profile.c: Likewise.
3734
3735 2002-05-20  H.J. Lu  (hjl@gnu.org)
3736
3737         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
3738
3739 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
3740
3741         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
3742         switches straight on to the assembler, do not abbreviate them.
3743         * config/arm/elf.h (ASM_SPEC): As above.
3744         * config/arm/semi.h (ASM_SPEC): As above.
3745         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
3746         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
3747         -mcpu=xscale on to the assembler by default.
3748         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
3749
3750 2002-05-20  Richard Henderson  <rth@redhat.com>
3751
3752         * cse.c (canon_hash): Reorder do_not_record test.  Always
3753         allow pic_offset_table_rtx.
3754
3755 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
3756
3757         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
3758         (expand_binop): Ditto (3 times).
3759
3760 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
3761
3762         * Makefile.in (distclean): Remove QMTest stuff.
3763         (QMTEST_PATH): New variable.
3764         (QMTESTFLAGS): Likewise.
3765         (QMTESTRUNFLAGS): Likewise.
3766         (QMTEST): Likewise.
3767         (QMTEST_GPP_TESTS): Likewise.
3768         (QMTEST_DIR): Likewise.
3769         (QMTEST_DIR/context): New target.
3770         (qmtest-g++): Likeise.
3771         (qmtest-gui): Likewise.
3772         (QMTEST_DIR/gpp-expected.qmr): Likewise.
3773
3774 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
3775
3776         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
3777         an altivec register if TARGET_ALTIVEC.
3778
3779         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
3780         to ALTIVEC_VECTOR_MODE.
3781         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
3782         (rs6000_va_arg): Vectors may go in registers if they are not
3783         altivec vectors.
3784
3785 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
3786
3787         * protoize.c: Fix formatting.
3788
3789 2002-05-19  Richard Henderson  <rth@redhat.com>
3790
3791         * gensupport.c (init_include_reader): Merge into ...
3792         (process_include): ... here.  Simplify composite path creation.
3793         Plug memory leaks.  Fix file/line number tracking.  Do not
3794         process_define_cond_exec.  Return void.
3795         (process_rtx): Don't check process_include return value.
3796
3797 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3798
3799         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
3800         fields.
3801         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
3802         traversing basic block chain.
3803         (create_basic_block_structure, create_basic_block): Declaration changed.
3804         (link_block, unlink_block): Declare.
3805         * cfg.c (entry_exit_blocks): Initialize new fields.
3806         (link_block, unlink_block): New.
3807         (expunge_block_nocompact): Unlink basic block.
3808         (dump_flow_info): Print prev_bb/next_bb fields.
3809         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
3810         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
3811         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
3812         * cfgrtl.c (create_basic_block_structure, create_basic_block,
3813         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
3814         (verify_flow_info): Check that list agrees with numbering.
3815
3816 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
3817
3818         * c-common.c (preprocessing_asm): New macro.
3819         * c-lex.h (builtin_define, builtin_assert): Use pfile.
3820 doc:
3821         * tm.texi: Update.
3822 config/alpha:
3823         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
3824         (CPP_SPEC): Simplify.
3825         (TARGET_CPU_CPP_BUILTINS): Update.
3826         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
3827         (CPP_SPEC): Simplify.
3828         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
3829         (TARGET_OS_CPP_BUILTINS): Update.
3830         * osf.h (CPP_XFLOAT_SPEC): Kill.
3831         (TARGET_OS_CPP_BUILTINS): Update.
3832         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
3833         * osf5.h (CPP_XFLOAT_SPEC): Kill.
3834         * vms.h (CPP_SUBTARGET_SPEC): Kill.
3835         (TARGET_OS_CPP_BUILTINS): Update.
3836
3837 2002-05-19  Richard Henderson  <rth@redhat.com>
3838
3839         * varasm.c (default_binds_local_p): Fix typo.
3840
3841 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3842
3843         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
3844         CONST_INT operand to the correct mode after adding 1 to it.
3845
3846 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
3847
3848         * config.gcc (powerpc-wrs-windiss*): New target.
3849
3850 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3851
3852         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
3853         (ashrdi3): Use it.
3854
3855 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
3856
3857         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
3858         alphasort.
3859         * config.in: Regenerated.
3860         * configure: Regenerated.
3861
3862 2002-05-19  Richard Henderson  <rth@redhat.com>
3863
3864         * target-def.h (TARGET_BINDS_LOCAL_P): New.
3865         * target.h (struct gcc_target): Move boolean fields to the end.
3866         Add binds_local_p.
3867         * varasm.c (default_binds_local_p): New.
3868         * output.h: Declare it.
3869
3870         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
3871         * config/cris/cris.c (cris_encode_section_info): Likewise.
3872         * config/i386/i386.c (i386_encode_section_info): Likewise.
3873         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
3874         * config/sh/sh.c (sh_encode_section_info): Likewise.
3875
3876         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
3877         (TARGET_BINDS_LOCAL_P): New.
3878
3879 2002-05-19  Richard Henderson  <rth@redhat.com>
3880
3881         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
3882         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
3883         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
3884
3885         * toplev.c (display_help): Kill -a -ax help.
3886
3887         * config/1750a/1750a.h, config/alpha/alpha.h,
3888         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
3889         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
3890         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
3891         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
3892
3893         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
3894         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
3895
3896         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
3897         (ix86_output_function_block_profiler): Kill.
3898         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
3899         (m68hc11_function_block_profiler): Kill.
3900         * config/m68hc11/m68hc11-protos.h: Update.
3901         * config/m88k/m88k.c (output_block_profiler): Kill.
3902         (output_function_block_profiler): Kill.
3903         * config/m88k/m88k-protos.h: Update.
3904
3905 2002-05-19  Richard Henderson  <rth@redhat.com>
3906
3907         * system.h (STRIP_NAME_ENCODING): Poison it.
3908         * output.h (STRIP_NAME_ENCODING): Remove.
3909         (default_strip_name_encoding): Declare.
3910         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
3911         * target.h (strip_name_encoding): New.
3912         * varasm.c (default_strip_name_encoding): New.
3913
3914         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
3915         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
3916         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
3917         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
3918         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
3919         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
3920         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
3921         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
3922         config/v850/v850.h: Use the hook, not the macro.
3923
3924         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
3925         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
3926         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
3927         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
3928         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
3929         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
3930         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
3931         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
3932         config/v850/v850.c, config/v850/v850.h:
3933         Move STRIP_NAME_ENCODING to out-of-line function and add
3934         TARGET_STRIP_NAME_ENCODING.
3935
3936         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
3937         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
3938         with TARGET_STRIP_NAME_ENCODING referencing existing function;
3939         make function static.
3940
3941         * xcoffout.c: Include target.h
3942         * Makefile.in (xcoffout.o): Update.
3943
3944         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
3945         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
3946         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
3947         reloc argument unused.
3948         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
3949
3950         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
3951         STRIP_NAME_ENCODING docs.
3952
3953 2002-05-19  Andreas Jaeger  <aj@suse.de>
3954
3955         * gengenrtl.c: Add prototype for excluded_rtx.
3956
3957         * real.h: Add prototype for exact_real_truncate.
3958
3959 2002-05-18  Richard Henderson  <rth@redhat.com>
3960
3961         * system.h (ENCODE_SECTION_INFO): Poison it.
3962         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
3963         * target.h (encode_section_info): New.
3964         * varasm.c (make_decl_rtl, output_constant_def): Use it.
3965         * hooks.c (hook_tree_int_void): New.
3966         * hooks.h: Declare it.
3967
3968         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
3969         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
3970         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
3971         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
3972         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
3973         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
3974         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
3975         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
3976         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
3977         config/mcore/mcore-protos.h, config/mcore/mcore.c,
3978         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
3979         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
3980         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
3981         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
3982         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
3983         referencing existing function.  Make function static.
3984
3985         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
3986         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
3987         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
3988         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
3989         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
3990         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
3991         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
3992         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
3993         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
3994         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
3995         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
3996         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
3997         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
3998         Move ENCODE_SECTION_INFO to out-of-line function and add
3999         TARGET_ENCODE_SECTION_INFO.
4000
4001         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
4002         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4003
4004         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
4005         from SUBTARGET_*
4006         (switch_to_section): Replace in_rdata case with in_readonly_data.
4007
4008         * config/h8300/h8300.c (h8300_encode_label): Make static.
4009         * config/h8300/h8300-protos.h: Update.
4010
4011         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
4012         from rs6000_encode_section_info; make static.
4013         (rs6000_xcoff_encode_section_info): New.
4014
4015         * config/v850/v850.c (v850_encode_data_area): Make static.
4016         * config/v850/v850-protos.h: Update.
4017
4018         * config/vax/vax.c: Include flags.h.
4019         (vms_select_section): Fix typo.
4020
4021         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
4022         ENCODE_SECTION_INFO docs.
4023
4024 2002-05-18  Richard Henderson  <rth@redhat.com>
4025
4026         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
4027         REGISTER_TARGET_PRAGMAS.
4028         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
4029
4030         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
4031
4032 2002-05-18  Richard Henderson  <rth@redhat.com>
4033
4034         * system.h (SELECT_RTX_SECTION): Poison.
4035         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
4036         * target.h (select_rtx_section): New.
4037         * varasm.c (output_constant_pool): Use it.
4038         (default_select_rtx_section, default_elf_select_rtx_section): New.
4039         * output.h: Declare them.
4040
4041         * config/darwin.h (SELECT_RTX_SECTION): Move ...
4042         * config/darwin.c (machopic_select_rtx_section): ... here.
4043         * config/darwin-protos.h: Update.
4044
4045         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
4046         * config/nextstep.c (machopic_select_rtx_section): ... here.
4047         (nextstep_select_section): Rename variable to avoid macro clash.
4048         * config/nextstep-protos.h: Update.
4049
4050         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
4051         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
4052         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
4053         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
4054         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
4055         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
4056         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
4057         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
4058         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
4059         (SELECT_RTX_SECTION): Remove.
4060
4061         * config/darwin.h, config/elfos.h, config/nextstep.h,
4062         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
4063         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
4064         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
4065         config/sparc/lynx.h, config/xtensa/xtensa.c
4066         (TARGET_ASM_SELECT_RTX_SECTION): New.
4067
4068         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
4069         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
4070         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
4071         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
4072         (ia64_aix_select_rtx_section): New.
4073         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
4074         redefining.
4075         * config/mips/mips.c (mips_select_rtx_section): Make static.
4076         Support ELF SHF_MERGE features.
4077         * config/mips/mips-protos.h: Update.
4078         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
4079         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
4080         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
4081         make static, fall back to default_elf_select_rtx_section.
4082         * config/rs6000/rs6000-protos.h: Update.
4083         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
4084         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
4085         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
4086         * config/romp/romp.c (romp_select_rtx_section): New.
4087         * config/s390/s390.c (s390_select_rtx_section): New.
4088         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
4089         declarations before target macro definition.
4090         (xtensa_emit_call): Use static buffer.
4091         (xtensa_select_rtx_section): New.
4092         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
4093         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
4094         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
4095
4096         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
4097         SELECT_RTX_SECTION docs.
4098
4099 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
4100
4101         * i386.md (movsi/movdi): Fix template.
4102         (sse2 patterns): Set attributes consistently.
4103
4104         * i386.md (pushqi2, ashrqi_*): Fix constraint.
4105
4106 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
4107
4108         * optabs.c (complex_part_zero_p): New.
4109         * (expand_cmplxdiv_straight): Use it.
4110         * (expand_cmplxdiv_wide): Ditto.
4111         * (expand_binop): Ditto.
4112
4113 2002-05-18  Richard Henderson  <rth@redhat.com>
4114
4115         * final.c (HAVE_READONLY_DATA_SECTION): New.
4116         (shorten_branches): Use it instead of ifdefs.
4117         * varasm.c (enum in_section): Add in_readonly_data.
4118         (text_section, data_section): Tidy.
4119         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
4120
4121         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
4122         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
4123         (READONLY_DATA_SECTION): Don't undef.
4124
4125         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
4126         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
4127         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
4128
4129         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
4130         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
4131         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
4132         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
4133
4134         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
4135         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
4136         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
4137         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
4138         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
4139         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
4140         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
4141         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
4142         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
4143
4144         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
4145         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
4146         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
4147         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
4148         config/pa/pa64-hpux.h, config/sparc/litecoff.h
4149         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
4150
4151         * config/elfos.h, config/netware.h, config/svr3.h,
4152         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
4153         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
4154         config/h8300/h8300.h, config/i386/i386-interix.h,
4155         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
4156         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
4157
4158         * config/elfos.h, config/netware.h, config/svr3.h,
4159         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
4160         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
4161         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
4162         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
4163
4164         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
4165         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
4166         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
4167         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
4168         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
4169         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
4170         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
4171         config/rs6000/sysv4.h, config/v850/v850.h
4172         (EXTRA_SECTIONS): Remove in_const/in_rdata.
4173         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
4174
4175         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
4176         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
4177         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
4178         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
4179         * config/alpha/alpha.c (alpha_start_function): Likewise.
4180         (alpha_write_linkage): Likewise.
4181         * config/m32r/m32r.c (m32r_select_section): Likewise.
4182         * config/m88k/m88k.c (m88k_select_section): Likewise.
4183         * config/mips/mips.c (mips_select_rtx_section): Likewise.
4184         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
4185         (rs6000_elf_select_section): Likewise.
4186         * config/v850/v850.c (v850_select_section): Likewise.
4187
4188         * config/1750a/1750a.h, config/i860/sysv3.h
4189         (READONLY_DATA_SECTION_ASM_OP): New.
4190         READONLY_DATA_SECTION_ASM_OP.
4191         * config/i386/interix.c, config/i386/winnt.c
4192         (i386_pe_unique_section): Always use .rdata prefix.
4193         * config/pa/som.h (readonly_data): Always switch to read-only section.
4194         (READONLY_DATA_SECTION): Predicate on flag_pic.
4195         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
4196         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
4197         (READONLY_DATA_SECTION): Update.
4198
4199 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
4200
4201         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
4202         is used without -Wformat.
4203         * c-common.h (warn_format_zero_length): Declare extern.
4204         * c-decl.c (warn_options): Add "format-zero-length".
4205         * c-format.c (warn_format_zero_length): Declare.
4206         (set_Wformat): Set warn_format_zero_length for -Wformat.
4207         (check_format_info): Only warn about zero-length formats if
4208         warn_format_zero_length is true.  Include the format type
4209         name in the warning message.
4210         * doc/invoke.texi: Document -Wformat-zero-length.
4211         * testsuite/gcc.dg/format/zero-length-1.c: New test.
4212
4213 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
4214
4215         * timevar.c: Fix formatting.
4216         * tlink.c: Likewise.
4217         * toplev.c: Likewise.
4218         * tree-dump.c: Likewise.
4219         * tree-inline.c: Likewise.
4220
4221 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
4222
4223         * cppinit.c (cpp_post_options): If preprocessed, turn off
4224         traditional.  If traditional, turn off column numbers.
4225         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
4226         * cpptrad.c (handle_newline): Update line_base.
4227         (skip_comment): Handle -Wcomment.
4228
4229 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
4230
4231         * cppinit.c (struct builtin): Remove unused fields.
4232         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
4233         (operator_array): New - was second half of builtin_array.
4234         (init_builtins): Simplify loop over builtin_array/operator_array.
4235
4236 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
4237
4238         * defaults.h (UNIQUE_SECTION): Remove.
4239         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
4240
4241 2002-05-17  Richard Henderson  <rth@redhat.com>
4242
4243         * expr.c (init_expr_once): Don't use start/end_sequence.
4244         Use rtx_alloc instead of emit_insn.
4245         * toplev.c (lang_dependent_init): Run init_expr_once here ...
4246         (lang_independent_init): ... not here.
4247
4248 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
4249
4250         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
4251
4252 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4253
4254         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
4255         for fixed registers, possibly used for global register variables.
4256         (initial_elimination_offset, avr_output_function_prologue,
4257         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
4258
4259 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4260
4261         * Makefile.in: Update for cpptrad.c.
4262         * cpphash.h (struct cpp_buffer): New members for buffer
4263         overlays.
4264         (struct cpp_reader): New members for traditional output.
4265         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
4266         * cppinit.c (cpp_create_reader): Set trad_line.
4267         (cpp_destroy): Free trad_out_base if used.
4268         (cpp_read_main_file): Overlay an empty buffer if traditional.
4269         (cpp_finish_options): Don't do builtins.
4270         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
4271         (cpp_handle_option): Handle it.
4272         * cpplex.c (continue_after_nul): New.
4273         (_cpp_lex_direct): Use handle_nul.
4274         * cpplib.h (struct cpp_options): New traditional option.
4275         * cpptrad.c: New file.
4276
4277 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
4278
4279         * c-common.c (c_common_init_options): Use C89 for Objective-C,
4280         and set the options flag.
4281         * cppinit.c (lang_flags): Remove objc.
4282         (lang_defaults): Remove OBJC and OBJCXX.
4283         (set_lang): Update.
4284         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
4285         (cpp_handle_option): Remove -+ and -lang-objc++.
4286         For ObjC, just set a flag.
4287         (print_help): Update.
4288         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
4289
4290 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4291
4292         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
4293         bootstrap with -mips3.
4294
4295 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
4296
4297         * final.c: Fix formatting.
4298         * fix-header.c: Likewise.
4299         * flow.c: Likewise.
4300         * fold-const.c: Likewise.
4301         * function.c: Likewise.
4302
4303 2002-05-17  David S. Miller  <davem@redhat.com>
4304
4305         PR c/6689, PR optimization/6615
4306         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
4307         and make it a pointer to rtx.  Update comments.
4308         (update_equiv_regs): When scanning for equivalences, record
4309         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
4310         it while making the equiv replacements.
4311
4312 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4313
4314         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
4315
4316 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
4317
4318         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
4319         when encoding visibility into SYMBOL_REF_FLAG.
4320
4321 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
4322
4323         * expr.c (force_operand): Fix reversed move.
4324
4325 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
4326
4327         * doc/install.texi (Testing): Mention two common DejaGnu warnings
4328         that can be ignored.
4329
4330 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4331
4332         * doc/install.texi (Final install): Recommend to install into a
4333         "clean" target directory.
4334
4335 2002-05-17  Richard Henderson  <rth@redhat.com>
4336
4337         * config/ia64/ia64.md: Use braced strings instead of quoted strings
4338         for code blocks.  Tidy whitespace.
4339
4340 2002-05-17  Richard Henderson  <rth@redhat.com>
4341
4342         * hooks.c (hook_tree_bool_false): New.
4343         * hooks.h: Declare it.
4344         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
4345         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
4346         * target.h (select_section, unique_section): New.
4347         (in_small_data_p): New.
4348         * varasm.c (resolve_unique_section): Use hooks instead of macros.
4349         (variable_section, output_constant_def_contents): Likewise.
4350         (default_select_section, default_unique_section): New.
4351         (categorize_decl_for_section, default_elf_select_section): New.
4352         * output.h: Declare them.
4353
4354         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
4355         (TARGET_ASM_SELECT_SECTION): New.
4356         (SELECT_SECTION): Move ...
4357         * config/darwin.c (machopic_select_section): ... here.
4358         * config/darwin-protos.h: Update.
4359
4360         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
4361         (SELECT_SECTION): Move ...
4362         * config/nextstep.c (nextstep_select_section): ... here.
4363         * config/nextstep-protos.h: Update.
4364
4365         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
4366         (TARGET_ASM_SELECT_SECTION): New.
4367         * config/svr3.h (SELECT_SECTION): Remove.
4368
4369         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
4370         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
4371         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
4372         (alpha_encode_section_info): Use it.
4373         * config/alpha/alpha-protos.h: Update.
4374         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
4375         (SELECT_SECTION, UNIQUE_SECTION): Remove.
4376         (TARGET_ASM_SELECT_SECTION): New.
4377         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
4378
4379         * config/arm/pe.h (UNIQUE_SECTION): Remove.
4380         (TARGET_ASM_UNIQUE_SECTION): New.
4381
4382         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
4383         (avr_unique_section): Rename from unique_section; make static.
4384         * config/avr/avr-protos.h: Update.
4385         * config/avr/avr.h (UNIQUE_SECTION): Remove.
4386
4387         * config/c4x/c4x.h (SELECT_SECTION): Remove.
4388
4389         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
4390         (TARGET_ASM_UNIQUE_SECTION): New.
4391         * config/i386/i386-interix.h: Likewise.
4392         * config/i386/win32.h: Likewise.
4393         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
4394         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
4395         * config/i386/sco5.h (SELECT_SECTION): Remove.
4396         (TARGET_ASM_SELECT_SECTION): New.
4397         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
4398
4399         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
4400         instead of SELECT_SECTION.
4401         * config/m68k/dpx2.h: Likewise.
4402         * config/rs6000/lynx.h: Likewise.
4403
4404         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
4405         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
4406         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
4407         (ia64_in_small_data_p): New.
4408         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
4409         (ia64_aix_select_section, ia64_aix_unique_section): New.
4410         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
4411         (SELECT_SECTION, UNIQUE_SECTION): Remove.
4412
4413         * config/m32r/m32r.h (SELECT_SECTION): Remove.
4414         (TARGET_ASM_SELECT_SECTION): New.
4415         * config/m32r/m32r.c (m32r_select_section): Take align argument.
4416         * config/m32r/m32r-protos.h: Update.
4417
4418         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
4419         (SELECT_SECTION): Move ...
4420         * config/m88k/m88k.c (m88k_select_section): ... here.
4421
4422         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
4423         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
4424         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
4425         (mcore_unique_section): Make static.
4426         * config/mcore/mcore-protos.h: Update.
4427
4428         * config/mips/elf.h (UNIQUE_SECTION): Remove.
4429         (TARGET_ASM_UNIQUE_SECTION): New.
4430         * config/mips/elf64.h: Likewise.
4431         * config/mips/iris6gld.h: Likewise.
4432         * config/mips/linux.h: Likewise.
4433         * config/mips/mips-protos.h: Update.
4434         * config/mips/mips.c (mips_select_section): Add align argument.
4435         * config/mips/mips.h (SELECT_SECTION): Remove.
4436         (TARGET_ASM_SELECT_SECTION): New.
4437
4438         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
4439         * config/mmix/mmix.c (mmix_select_section): Remove.
4440         (mmix_unique_section): Remove.
4441         * config/mmix/mmix-protos.h: Update.
4442
4443         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
4444         (SELECT_SECTION): Move ...
4445         * config/pa/pa.c (pa_select_section): ... here.
4446         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
4447
4448         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
4449         from rs6000_select_section and make static.
4450         (rs6000_elf_unique_section): Similarly.
4451         (rs6000_xcoff_select_section): From xcoff.h.
4452         (rs6000_xcoff_unique_section): Likewise.
4453         * config/rs6000/rs6000-protos.h: Update.
4454         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
4455         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
4456         * config/rs6000/xcoff.h: Likewise.
4457
4458         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
4459         (SELECT_SECTION): Move ...
4460         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
4461
4462         * config/v850/v850.h (SELECT_SECTION): Move ...
4463         * config/v850/v850.c (v850_select_section): ... here.
4464         (TARGET_ASM_SELECT_SECTION): New.
4465
4466         * config/vax/vms.h (SELECT_SECTION): Move ...
4467         * config/vax/vax.c (vms_select_section): ... here.
4468         (TARGET_ASM_SELECT_SECTION): New.
4469
4470         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
4471         for the target hooks.
4472
4473 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
4474
4475         * config/arm/arm.c (emit_multi_reg_push): Do not set
4476         RTX_FRAME_RELATED_P on the SEQUENCE.
4477
4478 2002-05-16  Richard Henderson  <rth@redhat.com>
4479
4480         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
4481         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
4482
4483 2002-05-16  Richard Henderson  <rth@redhat.com>
4484
4485         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
4486
4487         * config/ia64/ia64.c (saveable_obstack): Do not declare.
4488
4489 2002-05-16  Richard Henderson  <rth@redhat.com>
4490
4491         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
4492         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
4493         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
4494         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
4495         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
4496         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
4497         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
4498         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
4499         Revert "Basic block renumbering removal", and two followup patches.
4500
4501 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
4502
4503         * lcm.c (optimize_mode_switching): Revert previous change.
4504
4505 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4506
4507         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
4508         with only extant block numbers.
4509
4510 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
4511
4512         * lcm.c (optimize_mode_switching): Fix typo.
4513
4514 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4515
4516         * flow.c (calculate_global_regs_live): Queue blocks in program order.
4517
4518 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4519
4520         * doc/install.texi (Configuration): Document PWDCMD.
4521
4522 2002-05-16  Dale Johannesen  <dalej@apple.com>
4523
4524         * combine.c (cant_combine_insn_p):  Reenable combinations
4525         involving hard regs unless CLASS_LIKELY_SPILLED_P.
4526
4527 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4528
4529         * c-common.c (cb_register_builtins): Handle more built-ins
4530         here rather than in gcc.c specs.
4531         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
4532         (cpp_options): Pass -O flags even when only preprocessing.
4533         * toplev.c (set_fast_math_flags): New prototype.
4534         (fast_math_flags_set_p): New.
4535         (set_no_fast_math_flags): Remove.
4536         (decode_f_option): Update.
4537         * toplev.h (set_fast_math_flags): Update.
4538         (fast_math_flags_set_p): New.
4539         (set_no_fast_math_flags): Remove.
4540 config:
4541         * c4x/c4x.c (c4x_override_options): Update.
4542
4543 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
4544
4545         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
4546         Default-define here.
4547         (builtin_define_with_value): Can now wrap the expansion in
4548         quotation marks if such is wanted.
4549         (cb_register_builtins): Update calls to builtin_define_with_value.
4550         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
4551         here.
4552         (c_common_init): Set options->stdc_0_in_system_headers.
4553         * c-lex.h: Update prototype of builtin_define_with_value.
4554         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
4555         and REGISTER_PREFIX.
4556
4557         * cppinit.c (VERS, ULP, C, X): Kill.
4558         (builtin_array): Remove entries for __VERSION__,
4559         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
4560         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
4561         a constant.
4562         (init_builtins): Kill off a bunch of now-dead code.
4563         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
4564         -fno-leading-underscore.
4565         (cpp_handle_option): Remove code to set user_label_prefix.
4566         (cpp_post_options): Likewise.
4567
4568         * cpplib.h (struct cpp_options): Remove user_label_prefix.
4569         (stdc_0_in_system_headers): New.
4570         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
4571         stdc_0_in_system_headers) too to decide the value of __STDC__.
4572
4573         * tradcpp.c (user_label_prefix): Kill.
4574         (main): Remove code handling -f(no-)leading-underscore.
4575         (initialize_builtins): Don't define __REGISTER_PREFIX__
4576         or __USER_LABEL_PREFIX__.
4577         (install_value): Wrap compound statement in dummy loop so the
4578         macro works properly in an if statement.
4579
4580
4581 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
4582
4583         * loop.h (struct loop_info): Add member has_prefetch.
4584         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
4585         (prescan_loop): Initialize has_prefetch.
4586         (struct prefetch_info): Change prefetch_in_loop and
4587         prefetch_before_loop from bit fields to ints.
4588         (emit_prefetch_instructions): Several small fixes.
4589         (check_dbra_loop): Don't reverse loop that uses prefetch.
4590
4591 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4592
4593         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
4594         * configure.in: Likewise.
4595         * fixinc/check.tpl: Likewise.
4596         * fixinc/fixinc.dgux: Likewise.
4597         * fixinc/fixinc.svr4: Likewise.
4598         * fixinc/fixinc.winnt: Likewise.
4599         * fixinc/fixincl.sh: Likewise.
4600         * fixproto: Likewise.
4601         * configure: Regenerate.
4602
4603 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4604
4605         Basic block renumbering removal:
4606         * basic_block.h (struct basic_block_def): Renamed index to sindex,
4607         added prev_bb and next_bb fields.
4608         (n_basic_blocks): Renamed to num_basic_blocks.
4609         (last_basic_block): New, index of last basic block.
4610         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
4611         traversing basic block chain.
4612         (BLOCK_NUM): index -> sindex.
4613         (create_basic_block_structure, create_basic_block): Declaration changed.
4614         (debug_num2bb): Declare.
4615         (expunge_block_nocompact): Declaration removed.
4616         (link_block, unlink_block, compact_blocks): Declare.
4617         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
4618         * cfg.c (entry_exit_blocks): Initialize new fields.
4619         (clear_edges, alloc_block, expunge_block, cached_make_edge,
4620         redirect_edge_pred, dump_flow_info, dump_edge_info,
4621         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
4622         free_aux_for_edges): Modified.
4623         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
4624         (expunge_block_nocompact): Removed.
4625         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
4626         find_unreachable_blocks, create_edge_list, print_edge_list,
4627         verify_edge_list, flow_edge_list_print, remove_fake_successors,
4628         remove_fake_edges, flow_reverse_top_sort_order_compute,
4629         flow_depth_first_order_compute, flow_preorder_transversal_compute,
4630         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
4631         flow_dfs_compute_reverse_execute): Modified.
4632         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
4633         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
4634         Modified.
4635         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
4636         merge_blocks_move_predecessor_nojumps,
4637         merge_blocks_move_successor_nojumps, merge_blocks,
4638         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
4639         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
4640         * cfglayout.c (skip_insns_after_block, label_for_bb,
4641         record_effective_endpoints, scope_to_insns_finalize,
4642         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
4643         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
4644         cfg_layout_duplicate_bb): Modified.
4645         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
4646         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
4647         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
4648         flow_loops_find, flow_loop_outside_edge_p): Modified.
4649         * cfgrtl.c (create_basic_block_structure, create_basic_block,
4650         flow_delete_block, compute_bb_for_insn, split_block,
4651         try_redirect_by_replacing_jump, redirect_edge_and_branch,
4652         force_nonfallthru_and_redirect, tidy_fallthru_edge,
4653         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
4654         commit_edge_insertions, commit_edge_insertions_watch_calls,
4655         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
4656         purge_all_dead_edges): Modified.
4657         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
4658         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
4659         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
4660         Modified.
4661         * conflict.c (conflict_graph_compute): Modified.
4662         * df.c (FOR_ALL_BBS): Removed.
4663         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
4664         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
4665         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
4666         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
4667         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
4668         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
4669         * final.c (compute_alignments, final_scan_insn): Modified.
4670         * flow.c (verify_local_live_at_start, update_life_info,
4671         update_life_info_in_dirty_blocks, free_basic_block_vars,
4672         delete_noop_moves, calculate_global_regs_live,
4673         initialize_uninitialized_subregs, allocate_bb_life_data,
4674         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
4675         mark_used_reg, count_or_remove_death_notes): Modified.
4676         * function.c (thread_prologue_and_epilogue_insns): Modified.
4677         * gcse.c (struct null_pointer_info): Change typo of current_block
4678         to basic_block.
4679         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
4680         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
4681         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
4682         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
4683         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
4684         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
4685         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
4686         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
4687         pre_delete, one_pre_gcse_pass, compute_transpout,
4688         invalidate_nonnull_info, delete_null_pointer_checks_1,
4689         free_code_hoist_mem, compute_code_hoist_vbeinout,
4690         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
4691         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
4692         compute_store_table, build_store_vectors, insert_insn_start_bb,
4693         insert_store, replace_store_insn, free_store_memory, store_motion):
4694         Modified.
4695         * global.c (global_alloc, global_conflicts, mark_elimination,
4696         build_insn_chain): Modified.
4697         * graph.c (print_rtl_graph_with_bb): Modified.
4698         * haifa-sched.c (sched_init): Modified.
4699         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
4700         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
4701         if_convert): Modified.
4702         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
4703         compute_insert_delete, pre_edge_lcm, compute_available,
4704         compute_farthest, compute_nearerout, compute_rev_insert_delete,
4705         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
4706         Modified.
4707         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
4708         * loop.c (loop_dump_aux): Modified.
4709         * predict.c (combine_predictions_for_insn, estimate_probability,
4710         last_basic_block_p, process_note_prediction, process_note_predictions,
4711         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
4712         expensive_function_p, estimate_bb_frequencies,
4713         compute_function_frequency): Modified.
4714         * print-rtl.c (print_rtx): Modified.
4715         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
4716         get_exec_counts, compute_branch_probabilities, compute_checksum,
4717         branch_prob, find_spanning_tree): Modified.
4718         * recog.c (split_all_insns, peephole2_optimize): Modified.
4719         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
4720         convert_regs_1, convert_regs_2, convert_regs): Modified.
4721         * regclass.c (scan_one_insn, regclass): Modified.
4722         * regmove.c (mark_flags_life_zones, regmove_optimize,
4723         combine_stack_adjustments): Modified.
4724         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
4725         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
4726         * reorg.c (dbr_schedule): Modified.
4727         * resource.c (find_basic_block, init_resource_info): Modified.
4728         * sbitmap.c (sbitmap_intersection_of_succs,
4729         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
4730         sbitmap_union_of_preds): Modified.
4731         * sched-deps.c (init_dependency_caches): Modified.
4732         * sched-ebb.c (schedule_ebbs): Modified.
4733         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
4734         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
4735         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
4736         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
4737         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
4738         ssa_const_prop): Modified.
4739         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
4740         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
4741         * ssa.c (remove_phi_alternative, find_evaluations,
4742         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
4743         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
4744         make_regs_equivalent_over_bad_edges,
4745         make_equivalent_phi_alternatives_equival,
4746         compute_conservative_reg_partition,
4747         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
4748         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
4749         Modified.
4750
4751 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
4752
4753         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
4754
4755 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
4756
4757         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
4758         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
4759         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
4760         calling CONSTANT_POOL_ADDRESS_P.
4761         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
4762         to decide whether to define __arm__ or __thumb.
4763         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
4764         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
4765
4766 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4767
4768         * config/arc/arc.h (CPP_PREDEFINES): Remove.
4769         (CPP_SPEC): Update.
4770         (TARGET_CPU_CPP_BUILTINS): New.
4771
4772 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
4773
4774         * cpphash.h (cpp_macro): Move here, and make expansion a union.
4775         * cppmacro.c (cpp_macro): Remove.
4776         (enter_macro_context, replace_args, warn_of_redefinition,
4777         _cpp_create_definition, cpp_macro_definition): Update.
4778
4779 2002-05-16  Jason Merrill  <jason@redhat.com>
4780
4781         * config/mips/mips.c (mips_output_external): Don't do sdata
4782         optimization for a variable with DECL_COMDAT set.
4783
4784 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
4785
4786         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
4787         Cleanups for accepting modifiers on pointers.
4788         Fix predicate typos.
4789         Allow long pointers as well as int pointers.
4790
4791 2002-05-15  Richard Henderson  <rth@redhat.com>
4792
4793         * varasm.c (merge_weak): Remove special case for extern and common.
4794
4795 2002-05-15  Matt Hiller  <hiller@redhat.com>
4796
4797         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
4798         XFAILing.
4799         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
4800         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
4801         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
4802         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
4803         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
4804         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
4805
4806 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
4807
4808         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
4809
4810 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
4811
4812         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
4813         ("altivec_mfvscr"): Read from VSCR.
4814
4815         Add vscr sets for the following insns: altivec_vctuxs,
4816         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
4817         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
4818         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
4819         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
4820         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
4821         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
4822         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
4823         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
4824         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
4825         altivec_vsum2sws, altivec_vsumsws.
4826
4827         * config/rs6000/rs6000.h: Add VSCR fixed register.
4828         (CALL_REALLY_USED_REGISTERS): Add vscr.
4829         (CALL_USED_REGISTERS): Same.
4830         (FIXED_REGISTERS): Same.
4831         (REG_ALLOC_ORDER): Same.
4832         (reg_class): Add VSCR_REGS.
4833         (REG_CLASS_NAMES): Same.
4834         (REG_CLASS_CONTENTS): Same.
4835         (VSCR_REGNO): New.
4836         (REGISTER_NAMES): Add vscr.
4837         (DEBUG_REGISTER_NAMES): Same.
4838         (ADDITIONAL_REGISTER_NAMES): Same.
4839         (FIRST_PSEUDO_REGISTER): Increment.
4840         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
4841
4842 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
4843
4844         * fold-const.c (fold): Fix a typo.
4845
4846 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
4847
4848         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
4849         comparison against the highest or lowest integer value before
4850         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
4851         transformation and that of an unsigned comparison against 0
4852         right after.
4853
4854 2002-05-15  Richard Henderson  <rth@redhat.com>
4855
4856         * varasm.c (merge_weak): Error for any weakening after definition.
4857         Adjust weakening after use warning to catch more cases.
4858         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
4859         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
4860
4861 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
4862
4863         * invoke.texi (-malign-double): Re-add lost warning.
4864
4865         * i386-protos.h (x86_output_mi_thunk): Declare.
4866         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
4867         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
4868
4869         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
4870         when flag_asynchronous_unwind_tables is set.
4871
4872         * flags.h (flag_reorder_functions): Declare.
4873         * function.c (prepare_function_start): Initialize frequnecy.
4874         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
4875         * Makefile.in (predict.o): Add dependency on target.h and params.h
4876         * defaults.h (HOT_TEXT_SECTION_NAME,
4877         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
4878         * predict.c (choose_function_section): New function.
4879         (estimate_bb_frequencies): Use it.
4880         * toplev.c (flag_reorder_functions): New global variable.
4881         (lang_independent_options): New.
4882         (parse_options_and_default_flags): Set.
4883         * varasm.c (assemble_start_function): Bypass functdion alignment
4884         for never executed functions.
4885         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
4886         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
4887         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
4888         Document.
4889
4890         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
4891
4892         * predict.c: Inlude profile.h
4893         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
4894         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
4895         Use the information about maximal counter in the program.
4896
4897         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
4898
4899         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
4900         probably_never_executed_bb_p): New functions.
4901         * cfgcleanup.c (outgoing_edges_match): Use them.
4902         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
4903         (maybe_hot_bb_p, probably_cold_bb_p,
4904         probably_never_executed_bb_p): New functions.
4905
4906         * function.h (function): Add new field function_frequency.
4907         * predict.c (compute_function_frequency): New function.
4908         (estimate_probability): Call it.
4909
4910 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
4911
4912         PR optimization/5172, optimization/5200
4913         * gcse.c (gcse_main): Disable store_motion.
4914
4915 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
4916
4917         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
4918         (c_common_nodes_and_builtins): Use it.
4919         (builtin_define_with_value): New function.
4920         (cb_register_builtins): Define __SIZE_TYPE__,
4921         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
4922         using builtin_define_with_value.  Use consistent notation when
4923         defining __GXX_WEAK__.
4924         (WCHAR_TYPE_SIZE): Don't redefine.
4925         (combine_strings): Don't use WCHAR_TYPE_SIZE.
4926
4927         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
4928         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
4929         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
4930         * tradcpp.c (initialize_builtins): Likewise.
4931         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
4932
4933         * c-lex.h (builtin_define_with_value): Prototype.
4934         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
4935         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
4936         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
4937
4938         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
4939         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
4940         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
4941         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
4942         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
4943         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
4944         config/sparc/sol2-bi.h, config/sparc/sparc.h:
4945         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
4946         to __SIZE_TYPE__ etc from all spec strings. When this makes
4947         extra specs empty, delete them.
4948
4949 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4950
4951         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
4952         for PA8000 or generating dwarf2 call frame information.
4953         (output_call): Remove DO_FRAME_NOTES check from return pointer
4954         optimization.
4955         (following_call): Return 0 when scheduling for PA8000 or generating
4956         dwarf2 call frame information.  Revise comment.
4957
4958 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4959
4960 config/alpha:
4961         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
4962         and __IEEE_FP_INEXACT as appropriate.
4963         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
4964         (CPP_SPEC): Remove ieee defines.
4965         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
4966
4967 2002-05-14  Richard Henderson  <rth@redhat.com>
4968
4969         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
4970         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
4971
4972 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4973
4974         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
4975         (CPP_SPEC): Update.
4976         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
4977         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
4978         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
4979         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
4980         (EXTRA_SPECS): Update.
4981         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
4982         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
4983         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
4984         define TARGET_OS_CPP_BUILTINS if necessary.
4985
4986 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4987
4988         * gcc.c (cpp_options): Must pass -m* and -f* options
4989         to the front end even when only preprocessing.
4990         (cc1_options): Remove redundant -lang-c.
4991         * tradcpp.c (main): Ignore -m options.
4992 objc:
4993         * lang-specs.h: Similarly.
4994
4995 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
4996
4997         * genautomata.c (transform_3): Add code for transformation
4998         `(A,B,...)+C -> A+C,B,...'.
4999
5000 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
5001
5002         * final.c (end_final): Do not output profile_arcs constructor, when
5003         no functions are instrumented.
5004
5005 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
5006
5007         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
5008
5009 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5010
5011         * doc/install.texi: Remove special markup originally required for
5012         HTML generation with texi2html.
5013
5014 2002-05-14  Andreas Schwab  <schwab@suse.de>
5015
5016         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
5017         SELECT_SECTION.
5018         (UNIQUE_SECTION): Define to get small data correctly.
5019
5020         * varasm.c (resolve_unique_section): Add third parameter
5021         flag_function_or_data_sections and use it instead of
5022         flag_function_sections.
5023         (assemble_start_function): Pass flag_function_sections.
5024         (asm_emit_uninitialised): Pass flag_data_sections.
5025         (assemble_variable): Likewise.
5026
5027 2002-05-14  Richard Henderson  <rth@redhat.com>
5028
5029         * config/i386/i386.md: Use define_constants for unspec numbers.
5030         * config/i386/i386.c: Likewise.
5031
5032 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
5033
5034         * doc/contrib.texi: Update my entry.
5035
5036 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
5037
5038         * fixinc/inclhack.def (winidss_valist): Limit applicability.
5039         * fixinc/fixincl.x: Regenerated.
5040         * fixinc/tests/base/math.h: Update.
5041         * fixinc/tests/base/testing.h: Likewise.
5042
5043 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
5044
5045         * genattr.c (gen_attr): Don't emit a comma after the last
5046         enumerator.
5047
5048 2002-05-13  Richard Henderson  <rth@redhat.com>
5049
5050         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
5051         by non-local gotos.
5052         * recog.c (peephole2_optimize): Likewise.
5053
5054 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
5055
5056         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
5057         input to O_BINARY.
5058
5059 2002-05-13  Jeffrey A Law  (law@redhat.com)
5060
5061         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
5062         Update prototype and callers.
5063         (propagate_one_insn): Stack pointer adjustments kill MEMs on
5064         the mem_set_list which reference the stack pointer, as do
5065         calls to constant functions as they may clobber outgoing
5066         argument space.
5067
5068         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
5069
5070         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
5071         (ia32_multipass_dfa_lookahead): New function.
5072
5073 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
5074
5075         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
5076         (translate_options): Remove 'V'.
5077         (process_command): Similarly.
5078 doc:
5079         * invoke.texi: Remove documentation of 'V'.
5080
5081 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
5082
5083         * config/s390/linux.h: Revert 2002-04-22 changes.
5084
5085 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
5086
5087         * config/fr30/fr30.md: Only allow splits of immediate loads
5088         if the destination is a register.
5089
5090 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
5091
5092         * Makefile.in (c-common.o, cppinit.o): Update.
5093         * c-common.c: Include except.h.
5094         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
5095         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
5096         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
5097         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
5098         CPP_PREDEFINES): Handle here.
5099 config:
5100         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
5101         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
5102         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
5103         TARGET_OS_CPP_BUILTINS.
5104         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
5105         (CPP_SPEC, EXTRA_SPECS): Update.
5106         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
5107         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
5108         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
5109         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
5110         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
5111 doc:
5112         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
5113         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
5114
5115 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
5116
5117         * emit-rtl.c (global_rtl): Update comment.
5118         (const_double_htab, const_double_htab_hash,
5119         const_double_htab_hash, lookup_const_double): New.
5120         (const_int_htab_hash, const_int_htab_eq): Remove const
5121         qualifiers, which cause tons of warnings with RTL checking on.
5122         (gen_rtx_CONST_DOUBLE): Deleted.
5123         (const_double_from_real_value): New function - bears some
5124         resemblance to the former immed_real_const_1.
5125         (immed_double_const): Moved here from varasm.c and
5126         simplified.
5127         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
5128         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
5129         (gen_rtx): Use immed_double_const.
5130         (init_emit_once): Initialize the const_double_htab.  Use
5131         REAL_VALUE_FROM_INT where possible.  Can now use
5132         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
5133         * varasm.c (struct varasm_status): Remove x_const_double_chain.
5134         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
5135         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
5136         (init_varasm_status, mark_varasm_status): Don't touch
5137         x_const_double_chain.
5138
5139         * output.h: Delete prototype for clear_const_double_mem.
5140         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
5141         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
5142         const_double_from_real_value, not immed_real_const_1, and use
5143         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
5144         CONST_DOUBLE_ATOF.
5145         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
5146         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
5147         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
5148         (gen_rtx_REG): Second arg is unsigned.
5149
5150         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
5151         (excluded_rtx): New, return true for CONST_DOUBLE.
5152         (genmacro): Write nothing for excluded codes.
5153         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
5154         * expr.c (expand_expr): Likewise.
5155         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
5156         CONST_DOUBLE_CHAIN.
5157         * toplev.c (rest_of_compilation): Don't call
5158         clear_const_double_mem.
5159
5160         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
5161         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
5162         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
5163         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
5164         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
5165         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
5166         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
5167         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
5168
5169 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5170
5171         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
5172
5173 2002-05-12  Tom Tromey  <tromey@redhat.com>
5174
5175         * tree.h (copy_node): Don't mention TREE_PERMANENT.
5176
5177 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
5178
5179         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
5180         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
5181         * gensupport.h: Prototype new routines.
5182         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
5183         use of printf.
5184         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
5185         (next_comma_elt): Use scan_comma_elt.
5186
5187         * config/i386/i386.md: Use new attribute notation to break up
5188         long lines in define_attr forms.
5189
5190 2002-05-12  Richard Henderson  <rth@redhat.com>
5191
5192         * expr.c (compress_float_constant): New.
5193         (emit_move_insn): Use it.
5194         (float_extend_from_mem): New.
5195         (init_expr_once): Initialize it.
5196         * real.c (exact_real_truncate): New.
5197
5198         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
5199         dropped into memory; penalize for size.
5200         (RTX_COSTS): FLOAT_EXTEND is free.
5201         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
5202         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
5203
5204 2002-05-12  Richard Henderson  <rth@redhat.com>
5205
5206         * profile.h (profile_info): Add missing extern to declaration.
5207         * profile.c (profile_info): Define it.
5208
5209 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5210
5211         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
5212         used for DImode and TImode.
5213
5214 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
5215
5216         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
5217         fake a newline.
5218
5219 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
5220
5221         * config/rs6000/rs6000.c (rs6000_default_long_calls,
5222         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
5223         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
5224         (rs6000_override_options): Handle -m(no-)longcall.
5225         (init_cumulative_args, output_mi_thunk): Check for both
5226         longcall and shortcall attributes on the function.
5227         (rs6000_attribute_table): Add "shortcall".
5228         (rs6000_handle_longcall_attribute): Update comment.
5229         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
5230         altivec_expand_ternop_builtin): Add default clauses to switches
5231         to silence warnings.
5232
5233         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
5234         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
5235         (TARGET_OPTIONS): Add longcall and no-longcall.
5236
5237         * config/rs6000/rs6000.md (call_nonlocal_sysv,
5238         call_value_nonlocal_sysv): Split by alternatives.  One pair
5239         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
5240         the call cookie.  The other pair accepts only LR/CTR and has
5241         no restriction.
5242
5243         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
5244         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
5245         tmake_file.
5246         * config/rs6000/rs6000-c.c: New file.
5247         * config/rs6000/t-rs6000-c-rule: New file.
5248         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
5249         Prototype rs6000_pragma_longcall.
5250
5251         * doc/extend.texi: Document shortcall attribute.
5252         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
5253
5254 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5255
5256         * reorg.c (dbr_schedule): Remove unnecessary test.
5257
5258 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
5259
5260         * i386.md (testsi to testqi spliters): New.
5261
5262         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
5263
5264         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
5265
5266         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
5267
5268         * basic-block.h: New flag EDGE_CAN_FALLTHRU
5269         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
5270         that can be made fallthru.
5271
5272         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
5273
5274         * cfglayout.c (cleanup_unconditional_jumps): New static function.
5275         (cfg_layout_initialize): Use it.
5276
5277 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5278
5279         * config/avr/avr.c (avr_mcu_types): Update supported devices.
5280         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
5281         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
5282
5283 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
5284
5285         * dbxout.c: Fix formatting.
5286         * dependence.c: Likewise.
5287         * df.c: Likewise.
5288         * diagnostic.c: Likewise.
5289         * doloop.c: Likewise.
5290         * dominance.c: Likewise.
5291         * doschk.c: Likewise.
5292         * dwarf2asm.c: Likewise.
5293         * dwarf2out.c: Likewise.
5294         * dwarfout.c: Likewise.
5295
5296 2002-05-10  Richard Henderson  <rth@redhat.com>
5297
5298         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
5299         Convert integers constants as needed.  Replace "nwords" field with
5300         "sizeof_bb".
5301         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
5302         * function.h: Fix typo in comment.
5303         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
5304
5305 2002-05-10  Roger Sayle  <roger@eyesopen.com>
5306
5307         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
5308         into the equivalent (signed char)c > 0.
5309
5310 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
5311
5312         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
5313         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
5314         (struct prefetch_info): Fix spelling of member bytes_accessed.
5315         (emit_prefetch_instructions): Make dump messages more regular;
5316         restructure code to add more dump messages; use new macros for
5317         heuristics. (There are no code generation changes in any of this).
5318
5319 2002-05-10  David S. Miller  <davem@redhat.com>
5320
5321         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
5322         (struct rtx_def): Update unchanging flag comment.
5323         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
5324         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
5325         to be handled to INSN too.
5326         (dbr_schedule): Likewise.
5327         * resource.c (next_insn_no_annul): Likewise.
5328
5329         * cse.c (rtx_cost): Remove multiplication by power of 2 special
5330         casing.
5331
5332 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5333
5334         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
5335         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
5336         (possibly) work around broken /bin/sh.
5337
5338 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5339
5340         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
5341         . as N64/N32 libgcc_s.so subdirs.
5342
5343 2002-05-10  David S. Miller  <davem@redhat.com>
5344
5345         * config/sparc/sparc.md: Use define_constants for unspec numbers.
5346
5347         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
5348         more accurately.
5349         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
5350         comment.
5351         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
5352         * doc/rtl.texi: Document these macros more accurately.
5353         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
5354         JUMP_INSNs and CALL_INSNs.
5355         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
5356         or INSN_FROM_TARGET_P if the code is appropriate.
5357
5358 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
5359
5360         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
5361         before using SYMBOL_REF_FLAG (addr).
5362
5363         * config/avr/avr-protos.h (avr_io_address_p): Declare.
5364         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
5365         Make non-static.  Update all callers.
5366         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
5367         New insns to clear/set/test a single bit in I/O address space.
5368
5369 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5370
5371         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
5372
5373 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5374
5375         * Makefile.in: Update.
5376         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
5377         builtin_define_std): New.
5378         (c_common_init): Register CPP builtins callback.
5379         * c-common.h (flag_iso, flag_undef): New.
5380         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
5381         * c-lex.c: Don't include target.h.
5382         (cb_register_builtins): Move to c-common.c.
5383         (init_c_lex): Don't register hook here.
5384         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
5385         (cpp_define, cpp_assert): Remove.
5386         * gcc.c (cc1_options): Pass -undef to front end.
5387         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
5388         (TARGET_INITIALIZER): Update.
5389         * target.h (struct cpp_reader): Don't predeclare.
5390         (struct gcc_target): Remove cpp builtin hook.
5391         * tree.c (default_register_cpp_builtins): Remove.
5392 doc:
5393         * tm.texi: Update.
5394
5395 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5396
5397         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
5398
5399 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5400
5401         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
5402         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
5403
5404 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
5405
5406         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
5407         * config/sparc/libgcc-sparc-glibc.ver: New file.
5408         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
5409         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
5410
5411 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
5412
5413         PR target/6429
5414         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
5415         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
5416         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
5417         base multilibs.
5418         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
5419         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
5420         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
5421         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
5422
5423 2002-05-09  Richard Henderson  <rth@redhat.com>
5424
5425         * config/ia64/ia64.md: Use define_constants for unspec numbers.
5426         * config/ia64/ia64.c: Likewise.
5427
5428 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
5429
5430         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
5431         (save_restore_insns): Likewise.
5432         (mips_expand_prologue, mips_expand_epilogue): Update callers.
5433         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
5434
5435 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)
5436
5437         * athlon.md, k6.md, pentium.md, ppro.md): New files.
5438         * i386.md: Move scheduling information into new files.
5439
5440         * i386.md (type attribute): Add "rotate" for rotate insns.
5441         (rotate insns): Set type to "rotate".
5442         (various attributes and function units): Treat rotate like shift.
5443         (pent_pair attribute): Only rotates by one bit position are
5444         pairable.
5445         (sbb insns): Explicitly set pent_pair attribute on a couple
5446         that were missing it.
5447
5448 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
5449
5450         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
5451         make sure that buffer starts on odd word address.
5452         (sh_va_arg): Skip odd fp registers when reading a double precision
5453         value.
5454
5455 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5456
5457         * tree.h (preserve_data, object_permanent_p, type_precision):
5458         Remove.
5459
5460 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
5461
5462         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
5463         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
5464 doc:
5465         * cpp.texi: Update for removal of obsolete features.
5466
5467 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
5468                           Jeffrey A Law  (law@redhat.com)
5469
5470         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
5471         the DFA interface for Pentium processors.
5472         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
5473         (attr_pent_pair, ix86_pent_find_pair): Remove.
5474         (ix86_sched_reorder_pentium): Remove.
5475         (ix86_sched_reorder): Remove reordering for Pentium.
5476         * i386.md (Pentium scheduling): Rewrite using DFA description.
5477
5478 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
5479
5480         * cfganal.c (can_fallthru): Fix fast path.
5481         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
5482         with edges to the next block.
5483
5484 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
5485                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
5486
5487         * final.c (end_final): Use C trees to output data structures for profiling.
5488
5489         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
5490         (profile.o): New dependency profile.h
5491         (final.o): New dependency profile.h
5492         * profile.h: New file. New global structure profile_info.
5493         * final.h (count_edges_instrumented_now): Declare.
5494         (current_function_cfg_checksum): Declare.
5495         (function_list): New structure.
5496         (functions_head, functions_tail): New static variables.
5497         (end_final): Emits more data, removed some -ax stuff.
5498         (final): Stores function names and chcksums.
5499         * gcov-io.h (__write_gcov_string): New function.
5500         (__read_gcov_string): New function.
5501         * gcov.c (read_profile): New function.
5502         (create_program_flow_graph): Uses read_profile instead of reading
5503         da_file.
5504         (read_files): Removed da_file checking, it's done by read_profile now.
5505         * libgcc2.c (bb_function_info): New structure.
5506         (bb): New field in structure, removed some -ax stuff.
5507         (__bb_exit_func): Changed structure of da_file.
5508         * profile.c (count_edges_instrumented_now): New global variable.
5509         (current_function_cfg_checksum): New global variable.
5510         (max_counter_in_program): New global variable.
5511         (get_exec_counts): New function.
5512         (compute_checksum): New function.
5513         (instrument_edges): Sets count_edges_instrumented_now.
5514         (compute_branch_probabilities): Uses get_exec_counts instead of
5515         reading da_file.
5516         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
5517         (init_branch_prob): Removed da_file checking, done in get_exec_counts
5518         now.
5519         (end_branch_prob): Removed da_file checking, done in get_exec_counts
5520         now.
5521         * gcov.texi: Updated information about gcov file format.
5522
5523 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
5524
5525         * sbitmap.c: Fix formatting.
5526         * scan.c: Likewise.
5527         * scan-decls.c: Likewise.
5528         * sched-deps.c: Likewise.
5529         * sched-ebb.c: Likewise.
5530         * sched-rgn.c: Likewise.
5531         * sched-vis.c: Likewise.
5532         * sdbout.c: Likewise.
5533         * sibcall.c: Likewise.
5534         * simplify-rtx.c: Likewise.
5535         * ssa.c: Likewise.
5536         * ssa-ccp.c: Likewise.
5537         * ssa-dce.c: Likewise.
5538         * stmt.c: Likewise.
5539         * stor-layout.c: Likewise.
5540         * stringpool.c: Likewise.
5541
5542 2002-05-09  David S. Miller  <davem@redhat.com>
5543
5544         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
5545
5546 2002-05-07  David S. Miller  <davem@redhat.com>
5547
5548         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
5549         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
5550         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
5551         library implementation clobbers the output before the inputs
5552         are fully consumed, use stack temporary for the output.
5553
5554 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
5555
5556         * config/netbsd.h (CPP_SPEC): Remove.
5557         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
5558         * config/i386/netbsd.h (CPP_SPEC): Define.
5559         * config/ns32k/netbsd.h (CPP_SPEC): Define.
5560         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
5561         * config/sparc/netbsd.h (CPP_SPEC): Define.
5562         * config/vax/netbsd.h (CPP_SPEC): Define.
5563
5564 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
5565
5566         * read-rtl.c: Fix formatting.
5567         * real.c: Likewise.
5568         * recog.c: Likewise.
5569         * regclass.c: Likewise.
5570         * regmove.c: Likewise.
5571         * reg-stack.c: Likewise.
5572         * reload1.c: Likewise.
5573         * reload.c: Likewise.
5574         * resource.c: Likewise.
5575         * rtlanal.c: Likewise.
5576         * rtl.c: Likewise.
5577         * rtl-error.c: Likewise.
5578
5579 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5580
5581         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
5582         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
5583
5584 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
5585
5586         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
5587         use __SSE2__ macro instead.
5588         * config/i386/xmmintrin.h: Likewise.
5589
5590 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
5591
5592         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
5593         and use it in all invocations of these macros.  Clean up comments.
5594         * rtl.c (rtl_check_failed_flag): Add an argument for the name
5595         of the flag access macro whose check failed.
5596         * doc/rtl.texi (Flags): Document additional flag uses.
5597
5598 2002-05-08  Robert Spier <rspier@pobox.com>
5599             Neil Booth  <neil@daikokuya.demon.co.uk>
5600
5601         PR preprocessor/6521
5602         * cppfiles.c (handle_missing_header): Don't do anything
5603         different for <> includes.
5604 doc:
5605         * cppopts.texi: Update documentation for -MG.
5606
5607 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
5608
5609         * cpplex.c (cpp_interpret_charconst): Truncate as well as
5610         sign-extend.
5611 doc:
5612         * cpp.texi: Clarify multichar charconst valuation.
5613
5614 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
5615
5616         * doc/invoke.texi: Document -mwindiss option.
5617
5618 2002-05-08  Jason Merrill  <jason@redhat.com>
5619
5620         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
5621
5622         * dwarf2out.c (gen_type_die): Abort on broken recursion.
5623
5624         PR c++/6381
5625         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
5626         REAL_CST.
5627
5628 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
5629
5630         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
5631         little-endian multilibs to override arm/thumb multilibs.
5632         Do not build hardware floating point multilibs, nor apcs-26
5633         multilibs for the Thumb.
5634
5635 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
5636
5637         PR c/6569.
5638         * varasm.c (mark_weak): New function.
5639         (merge_weak): Use it.  Do not call declare_weak.
5640         (declare_weak): Use merge_weak.
5641
5642 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
5643
5644         * cse.c (dead_libcall_p): Update counts.
5645         (delete_trivially_dead_insns): Update call of dead_libcall_p.
5646
5647 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
5648
5649         * cfglayout.c (function_tail_eff_head): Rename to ...
5650         (function_footer): ... this one.
5651         (unlink_insn_chain): New functions.
5652         (label_for_bb): Only call block_label and emit debug message.
5653         (record_effective_endpoints): Actually unlink the headers and footers.
5654         (fixup_reorder_cahin): Re-insert the unlinked sequences.
5655         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
5656         * cfglayout.h (struct reorder_block_def): New fields footer/header;
5657         remove eff_head/eff_end.
5658         * rtl.h (set_first_insn): Declare.
5659         * emit-rtl.c (set_first_insn): New function.
5660
5661         * cfglayout.c (fixup_reorder_chain): Dump duplicated
5662         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
5663         cfg_layout_duplicate_bb): New global function.
5664         (duplicate_insn_chain): New static function.
5665         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
5666         cfg_layout_duplicate_bb): Declare.
5667         (struct reorder_block_def): Add "original" field.
5668         * emit-rtl.c (emit_copy_of_insn_after): New function.
5669         * rtl.h (emit_copy_of_insn_after): Declare.
5670
5671         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
5672         (fixup_reorder_chain): properly handle edges to exit block.
5673
5674 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5675                                Jan Hubicka  <jh@suse.cz>
5676
5677         * basic-block.h (note_prediction_to_br_prob): declare.
5678         * c-semantics.c: Inlucde predit.h
5679         (expand_stmt): predict GOTO_STMT as not taken.
5680         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
5681         (cleanup_cfg): Do not free tail_recursion_list.
5682         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
5683         (flow_delete_block): Kill predictions past end of basic block.
5684         * output.h (delete_unreachable_blocks): Declare.
5685         * predict.c (predicted_by_p, process_note_predictions,
5686         process_note_prediction, last_block_p): New function.
5687         (estimate_probability): Bypass loop on PRED_CONTINUE;
5688         do not handle noreturn heuristics; kill PRED_RETURN; add
5689         PRED_EARLY_RETURN.
5690         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
5691         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
5692         * predict.h (IS_TAKEN): New constant.
5693         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
5694         * rtl.c (NOTE_INSN_PREDICTION): New.
5695         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
5696         New macro.
5697         (insn_note): add NOTE_INSN_PREDICTION.
5698         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
5699         CFG; free tail_recursion_label_list.
5700         * stmt.c: Include predict.h;
5701         (return_prediction): New.
5702         (expand_value_return): Use it.
5703         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
5704
5705 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
5706
5707         * config/mips/mips.md: Name the unspecs with define_constant.
5708         (*HILO_delay): Rename to 'hilo_delay' (no star).
5709         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
5710         (reload_outdi, reload_outsi): Likewise.
5711
5712 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
5713
5714         * toplev.c: Fix formatting.
5715
5716 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
5717
5718         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
5719         * configure.in (ac_rtlflag_checking): New.
5720         * doc/install.texi (--enable-checking): Document RTL flag checking.
5721
5722 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
5723
5724         * c-common.c (c_common_init): Set options->unsigned_wchar.
5725         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
5726         group target dependencies.
5727         (init_builtins, cpp_handle_option): Update.
5728         * cpplex.c (cpp_interpret_charconst): Update.
5729         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
5730         signed_char to unsigned_char, group target dependencies.
5731         * defaults.h (WCHAR_UNSIGNED): Remove.
5732         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
5733 config:
5734         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
5735         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
5736         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
5737         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
5738         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
5739 doc:
5740         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
5741
5742 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
5743
5744         * fixinc/inclhack.def (windiss_math1): New fix.
5745         (windiss_math2): Likewise.
5746         (windiss_valist): Likewise.
5747         * fixinc/fixincl.x: Regenerated.
5748
5749 2002-05-07  Andreas Jaeger  <aj@suse.de>
5750
5751         * genautomata.c (output_internal_min_issue_delay_func): Add
5752         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
5753         (output_internal_trans_func): Likewise.
5754
5755 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
5756
5757         * pa.c (hppa_profile_hook): Use force_reg to get the address
5758         of the profile hook into an appropriate pseudo register.
5759
5760 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
5761
5762         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
5763         (LINK_START_SPEC): Handle it.
5764         (LINK_OS_SPEC): Likewise.
5765         (CPP_SPEC): Likewise.
5766         (STARTFILE_SPEC): Likewise.
5767         (LIB_SPEC): Likewise.
5768         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
5769         all platforms.
5770         (CRTSAVRES_DEFAULT_SPEC): New macro.
5771         (LIB_WINDISS_SPEC): New macro.
5772         (CPP_OS_WINDISS_SPEC): Likewise.
5773         (STARTFILE_WINDISS_SPEC): Likewise.
5774         (ENDFILE_WINDISS_SPEC): Likewise.
5775         (LINK_START_WINDISS_SPEC): Likewise.
5776         (LINK_OS_WINDISS_SPEC): Likewise.
5777         * config/rs6000/windiss.h: New file.
5778
5779 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
5780
5781         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
5782
5783 2002-05-06  David S. Miller  <davem@redhat.com>
5784
5785         * config/sparc/sparc.md (shift insns): Do not mask off
5786         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
5787         take care of it.
5788
5789 2002-05-06  Richard Henderson  <rth@redhat.com>
5790
5791         PR c++/6212
5792         * expr.c (highest_pow2_factor_for_type): New.
5793         (expand_assignment): Use it.
5794
5795 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
5796
5797         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
5798         unspec_volatile.
5799         ("altivec_mfvscr"): Same.
5800
5801 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
5802
5803         * rtl.h (struct rtx_def): Update comments.
5804         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
5805         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
5806         RTL_FLAG_CHECK macros with list of expected RTL codes.
5807         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
5808         (rtl_check_failed_flag): New.
5809         * reload1.c (reload): Use REG macro before changing rtx to MEM.
5810         (reload_cse_noop_set_p): Check rtx code before using access macro.
5811         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
5812         before using access macro.
5813
5814 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
5815
5816         * doc/rtl.texi (Flags): Update to reflect current usage.
5817
5818 2002-05-06  Roger Sayle  <roger@eyesopen.com>
5819
5820         PR opt/3995
5821         * fold-const.c (sign_bit_p): New function.
5822         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
5823         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
5824         Reapply fold when converting (A & C) == C into (A & C) != 0.
5825         (fold_binary_op_with_conditional_arg): Fix typo in comment.
5826
5827 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
5828
5829         * c-common.c (warn_multichar): New.
5830         (c_common_init): Set CPP's warn_multichar.
5831         * c-common.h (warn_multichar): New.
5832         * c-decl.c (warn_multichar): Remove.
5833         * c-lex.c (lex_charconst): Update.
5834         * c-tree.h (warn_multichar): Remove.
5835         * cppexp.c (eval_token): Sign-extend charconst value.
5836         * cppinit.c (cpp_create_reader): Set warn_multichar.
5837         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
5838         each character.  Update prototype.  Sign-extend the result.
5839         * cpplib.h: Fix conditions.
5840         (struct cpp_options): Add new warning flag.
5841         (cpp_interpret_charconst): Update prototype.
5842 doc:
5843         * cpp.texi: Update documentation.
5844
5845 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
5846
5847         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
5848         Fix typo in usage of allof instead of unit.
5849
5850 2002-05-06  Richard Henderson  <rth@redhat.com>
5851
5852         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
5853         and any jump or call for IN.
5854
5855 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
5856
5857         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
5858         -msse2.
5859         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
5860
5861 2002-05-06  Roger Sayle  <roger@eyesopen.com>
5862
5863         * fold-const.c (lshift-double): Cast the high word to an unsigned
5864         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
5865         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
5866         avoid compiler warning.  (fold): Remove redundant code from
5867         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
5868
5869 2002-05-06  Jeff Law  <law@redhat.com>
5870
5871         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
5872         * pa.c (pa_adjust_cost): Remove all true dependency cost
5873         adjustments.  Also remove support for non-DFA scheduling.
5874         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
5875         to adjust true dependency costs.  Update various comments.
5876         (7100lc, 7200, 7300 scheduling): Simplify by combining the
5877         FP ALU & MPY units into a single unit.
5878
5879 2002-05-06  Catherine Moore  <clm@redhat.com>
5880
5881         * config/v850/v850.c (compute_register_save_size): Make sure
5882         to count all of the registers that will be saved.
5883
5884 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
5885
5886         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
5887
5888 2002-05-06  David S. Miller  <davem@redhat.com>
5889
5890         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
5891         allow result to overlap input operands in memory.
5892
5893 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
5894
5895 doc:
5896         * cpp.texi: Update multichar charconst docs.
5897
5898 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
5899
5900         * cpplex.c (cpp_interpret_charconst): Sign-extend each
5901         character.  Don't ignore excess characters.  Treat
5902         multicharacter character constants as signed.
5903         (cpp_parse_escape): Clarify diagnostic.
5904
5905 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
5906
5907         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
5908         use add instead of shift.
5909         (ashldi3_sp64): Likewise.
5910         (ashlsi3_const1, ashldi3_const1): Remove.
5911         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
5912         * config/sparc/sparc.c (const1_operand): New.
5913
5914 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
5915
5916         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
5917
5918 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
5919
5920         PR target/6561
5921         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
5922
5923 2002-05-05  Richard Henderson  <rth@redhat.com>
5924
5925         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
5926         memory latency adjustments.
5927         (alpha_variable_issue): Remove.
5928         (alpha_use_dfa_pipeline_interface): New.
5929         (alpha_multipass_dfa_lookahead): New.
5930         * config/alpha/alpha.md: Remove define_function_unit scheduling;
5931         include new dfa scheduling.
5932         (attr type): Add none.
5933         (blockage): Use it.
5934         * config/alpha/ev4.md: New.
5935         * config/alpha/ev5.md: New.
5936         * config/alpha/ev6.md: New.
5937
5938 2002-05-05  David S. Miller  <davem@redhat.com>
5939
5940         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
5941
5942 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
5943
5944         * cse.c: Fix formatting.
5945         * emit-rtl.c: Likewise.
5946
5947 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
5948
5949         * genautomata.c (initiate_states): Add additional guard to
5950         initialize `units_array'.
5951
5952 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
5953
5954         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
5955         process_unit_to_form_the_same_automaton_unit_lists,
5956         form_the_same_automaton_unit_lists
5957         check_unit_distributions_to_automata): New prototypes and
5958         functions.
5959         (check_automata): Rename it into `check_automata_insn_issues'.
5960         (unit_decl): New fields `the_same_automaton_unit' and
5961         `the_same_automaton_message_reported_p'.
5962         (unit_decl_t): New typedef.
5963         (the_same_automaton_lists): New gloval variable.
5964         (unit_regexp, unit_set_el, units_array, units_cmp,
5965         output_get_cpu_unit_code_func): Use the typedef.
5966         (evaluate_max_reserv_cycles): Increment
5967         `description->max_insn_reserv_cycles'.
5968         (initiate_states): Don't increment `max_cycles_num'.
5969         (transform_insn_regexps): Move code around transformation of
5970         regexps from `generate'.
5971         (generate): Remove call of `transform_insn_regexps'.
5972         (expand_automata): Call `transform_insn_regexps' and
5973         `check_unit_distributions_to_automata'.  Check errors before
5974         `generate'.
5975
5976         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
5977         automaton `ultrasparc3_1'.
5978
5979 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
5980
5981         * c-common.c (c_common_init): Set up CPP arithmetic.
5982         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
5983         something reasonable for the host.
5984         (sanity_checks): Add checks.
5985         (cpp_read_main_file): Call sanity_checks() from here...
5986         (cpp_post_options): ... not here.
5987         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
5988         * cpplib.h (struct cpp_options): New member int_precision.
5989
5990 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5991
5992         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
5993
5994 2002-05-04  David S. Miller  <davem@redhat.com>
5995
5996         * config/sparc/linux.h, config/sparc/linux64.h
5997         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
5998
5999         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
6000         more RTX codes.
6001         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
6002
6003         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
6004         of SETs.
6005
6006 2002-05-05  Tim Josling  <tej@melbpc.org.au>
6007
6008         * treelang; New directory for new sample language treelang.
6009
6010 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6011
6012         * Makefile.in (c-lex.o): Update.
6013         * c-lex.c: Include target.h.
6014         (cb_register_builtins): New.
6015         (init_c_lex): Set builtins callback.
6016         * c-lex.h (cpp_define, cpp_assert): New prototypes.
6017         * cppinit.c (init_builtins): Use callback, including for
6018         GXX_WEAK.
6019         * cpplib.h (struct cpp_callbacks): New member.
6020         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
6021         (TARGET_INITIALIZER): Update.
6022         * target.h (struct gcc_target): New hook.
6023         * tree.c (default_register_cpp_builtins): New.
6024         * tree.h (default_register_cpp_builtins): New.
6025 doc:
6026         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
6027
6028 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6029
6030         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
6031         (cpp_post_options): Move sanity checks to...
6032         (sanity_checks): New.
6033         * cpplex.c (maybe_read_ucs): Fix prototype.
6034         (parse_string, cpp_parse_escape): Cast for %c format specifier.
6035         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
6036         if necessary.
6037
6038 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
6039
6040         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
6041         builtins.  Use V2DI patterns instead of TI for logical operations.
6042         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
6043         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
6044         (ix86_expand_builtins): Change the pattern used for movntdq.
6045         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
6046         sse2_nandv2di3): New patterns.
6047         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
6048         on operands.
6049         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
6050         (cvtdq2pd): Correct mode on operand 1.
6051         (sse2_umulsidi3): Describe without unspec.
6052         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
6053         machine modes.
6054         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
6055         (ashlv2di3): Likewise, from sse2_ashlv2di3.
6056         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
6057         ashlv4si3, ashlv2di3): Use SImode for shift count.
6058         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
6059         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
6060         New patterns.
6061         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
6062         New typedefs.
6063         (__m128i, __m128d): New macros.
6064         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
6065         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
6066         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
6067         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
6068         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
6069         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
6070         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
6071         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
6072         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
6073         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
6074         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
6075         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
6076         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
6077         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
6078         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
6079         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
6080         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
6081         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
6082         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
6083         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
6084         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
6085         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
6086         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
6087         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
6088         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
6089         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
6090         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
6091         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
6092         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
6093         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
6094         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
6095         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
6096         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
6097         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
6098         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
6099         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
6100         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
6101         functions.
6102         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
6103         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
6104
6105 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
6106
6107         * dwarf2out.c: Fix formatting.
6108         * varasm.c: Likewise.
6109
6110 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
6111
6112         PR c/6543
6113         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
6114         clobber and use result as temporary value.
6115
6116 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
6117
6118         * expr.c (force_operand): Use expand_simple_* to handle more
6119         cases.
6120
6121 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
6122
6123         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
6124         and sign-extension.
6125         (lex_charconst): Update for change in prototype of
6126         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
6127         appropriately.
6128         * cpphash.h (BITS_PER_CPPCHAR_T): New.
6129         * cppinit.c (cpp_create_reader): Initialize them for no
6130         change in semantics.
6131         (cpp_post_options): Add sanity checks.
6132         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
6133         and truncation issues.  Calculate in type cppchar_t.
6134         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
6135         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
6136         run-time dependent precision correctly.  Return whether the
6137         result is signed or not.
6138         * cpplib.c (dequote_string): Use cppchar_t; update.
6139         * cpplib.h (cppchar_signed_t): New.
6140         struct cpp_options): New precision members.
6141         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
6142         * cppexp.c (eval_token): Update.
6143
6144 2002-05-03  David S. Miller  <davem@redhat.com>
6145
6146         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
6147         * config/sparc/sparc.c (sparc_rtx_costs): New function
6148         implementing RTX_COSTS and CONST_COSTS.
6149         * config/sparc/sparc.h (CONST_COSTS): Delete.
6150         (RTX_COSTS_CASES): Define.
6151         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
6152         the work.
6153
6154         * config/sparc/sparc.md (DFA schedulers): Split out...
6155         * config/sparc/cypress.md, config/sparc/hypersparc.md,
6156         config/sparc/sparclet.md, config/sparc/supersparc.md,
6157         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
6158
6159         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
6160         checks on it, always defined for Sparc.
6161
6162         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
6163         Tweak, and add more detailed comments.
6164
6165 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
6166
6167         * Re-apply patch accidentally reverted with
6168         DFA scheduler merge: remove all rules and variables to slurp
6169         source files out of libiberty and rebuild them with HOST_CC.
6170         ($(HOST_PREFIX_1)varray.o): New rule.
6171         (genattrtab rule): Word wrap.
6172
6173 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
6174
6175         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
6176         (CPP_SUBTARGET_SPEC): Define.
6177         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
6178         cpp_subtarget specs.
6179         (CPP_SPEC): Redefine to include %(cpp_subtarget).
6180
6181 2002-05-03  David S. Miller  <davem@redhat.com>
6182
6183         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
6184         * target.h (struct gcc_target): Delete cycle_display member.
6185
6186         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
6187         (rtx_needs_barrier): Delete reference to cycle_display unspec.
6188         (ia64_sched_reorder2): Mention need for cycle display handling
6189         once such notes exist.
6190
6191 2002-05-03  Richard Henderson  <rth@redhat.com>
6192
6193         * real.c (etoasc): Strip most trailing zeros for clarity.
6194         * sched-vis.c: Include real.h.
6195         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
6196         * Makefile.in (sched-vis.o): Add real.h.
6197
6198 2002-05-03  David S. Miller  <davem@redhat.com>
6199
6200         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
6201         no longer needed.
6202
6203 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
6204
6205         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
6206         when we get an out of range literal.
6207         (altivec_expand_ternop_builtin): Same.
6208         (altivec_expand_unop_builtin): Same.
6209         (altivec_expand_builtin): Same, for dss.
6210         (altivec_expand_builtin): Use trees instead of rtl when
6211         determining literal argument validity.
6212
6213 2002-05-03  David S. Miller  <davem@redhat.com>
6214
6215         Delete cycle display scheduling hook.
6216         * config/ia64/ia64.c (ia64_cycle_display,
6217         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
6218         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
6219         and use emit_insn_before instead of ia64_emit_insn_before.
6220         * config/ia64/ia64.md (unspec usage): Delete cycle display.
6221         (cycle_display): Delete insn pattern.
6222         * config/sparc/sparc.md (unspec usage): Delete cycle display.
6223         (cycle_display): Delete insn pattern.
6224         * config/sparc/sparc.c (sparc_cycle_display,
6225         TARGET_SCHED_CYCLE_DISPLAY): Delete.
6226         * doc/md.texi (cycle_display): Don't mention.
6227         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
6228
6229 2002-05-03  Richard Henderson  <rth@redhat.com>
6230
6231         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
6232         * recog.h: Declare them.
6233
6234         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
6235         * config/sparc/sparc.md: Use store_data_bypass_p instead.
6236         * config/sparc/sparc-protos.h: Update.
6237
6238 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
6239
6240         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
6241         -D__arch64__.  Add -D_LP64.
6242         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
6243         from sparc.h.
6244         (CPP_ARCH64_SPEC): Likewise.
6245         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
6246         (NO_BUILTIN_SIZE_TYPE): Undef.
6247
6248 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
6249
6250         * genautomata.c (min_issue_delay_pass_states): Change return type
6251         in the prototype.
6252         (min_issue_delay_pass_states): Change the algorithm.
6253         (min_issue_delay): Set up min_insn_issue_delay for the state.
6254         (output_min_issue_delay_table): Interchange the nested loops and
6255         and initiate min_insn_issue_delay for states.
6256
6257 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
6258
6259         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
6260         jump is simplejump.
6261
6262 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
6263
6264         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
6265         sequence.
6266
6267 2002-05-03  Richard Henderson  <rth@redhat.com>
6268
6269         PR opt/6534
6270         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
6271         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
6272         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
6273         code before JUMP, not EARLIEST.
6274
6275 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
6276
6277         * c-format.c (check_format_info_main): Don't check for presence of
6278         parameter for * width until after operand number has been read,
6279         and only check for it if format parameters are available.
6280         Fixes PR c/6547.
6281
6282 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
6283
6284         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
6285         (LINK_SPEC): Undef before defining.
6286
6287 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
6288
6289         PR preprocessor/6489
6290         * tradcpp.c (fixup_newlines): New.
6291         (main, finclude): Use it.
6292
6293 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
6294
6295         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
6296         * config/mips/mips.c (mips_unique_section): Strip encoding from
6297         decl name.
6298
6299 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
6300
6301         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
6302         mode.
6303
6304 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6305
6306         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
6307         (Specific): Removed buildstats references.
6308         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
6309         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
6310         Accomodate Solaris versions beyond 8.
6311         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
6312         (Specific, *-*-solaris2.8): Removed, obsolete.
6313
6314 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
6315
6316         PR target/6542
6317         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
6318         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
6319         fill leaf_reg_remap with identity.
6320         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
6321
6322 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
6323
6324         * config/h8300/crti.asm: Remove trailing spaces.
6325         * config/h8300/h8300.c: Likewise.
6326         * config/h8300/lib1funcs.asm: Likewise.
6327
6328 2002-05-02  Jason Merrill  <jason@redhat.com>
6329
6330         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
6331         * c-decl.c (c_init_decl_processing): Use it.
6332         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
6333         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
6334         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
6335
6336 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
6337
6338         * regrename.c: Fix formatting.
6339         * tree.c: Likewise.
6340
6341 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
6342
6343         * i386.md (attribute memory): Handle compares properly.
6344
6345 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
6346
6347         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
6348         to none.
6349
6350 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
6351
6352         * function.c: Fix formatting.
6353
6354 2002-05-02  Jan Hubicka  <jh@suse.cz>
6355
6356         * haifa-sched.c (schedule_insn): Print table of instructions and
6357         reservations.
6358         (sched_block): Do not print ready list at verbosity level 1.
6359         * sched-vis.c (print_insn): Make global.
6360         * sched-ebb.c (ebb_print_insn): Rename from...
6361         (print_insn): ... this one.
6362         * sched-int.h (print_insn): Declare
6363
6364 2002-05-02  Richard Henderson  <rth@redhat.com>
6365
6366         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
6367         emitted by cycle_display.
6368
6369 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
6370
6371         * doc/install.texi (*-*-freebsd*): Update to latest status.
6372
6373 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
6374
6375         PR target/6540
6376         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
6377         * config/float-sparc.h: Assume 128-bit long double if
6378         __LONG_DOUBLE_128__ is defined.
6379
6380 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
6381
6382         * genattrtab.c (write_function_unit_info): Add a dummy element
6383         when num_units == 0.
6384
6385 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6386
6387         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
6388         TYPE_MODE (double_type_node) instead of DFmode.
6389
6390 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
6391
6392         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
6393         jumps post reload.
6394         * toplev.c (rest_of_compilation): Revert Richard's patch.
6395
6396 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6397
6398         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
6399
6400 2002-05-02  Catherine Moore  <clm@redhat.com>
6401
6402         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
6403
6404 2002-05-02  Kazu Hirata  <kazu@hxi.com>
6405
6406         * combine.c: Fix comment typos.
6407         * expr.c: Likewise.
6408         * genautomata.c: Likewise.
6409         * stmt.c: Likewise.
6410         * tree.h: Likewise.
6411
6412 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
6413
6414         * doc/install.texi: State GNAT version requirements.
6415
6416 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
6417
6418         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
6419         of the frame pointer or arg pointer register which strict register
6420         checking is not enabled.
6421
6422 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
6423
6424         * gcc.dg/altivec-8.c: New.
6425
6426         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
6427         PRE_INC and PRE_DEC for altivec modes.
6428
6429 2002-05-01  Bruce Korb  <bkorb@gnu.org>
6430
6431         * fixinc/check.tpl(set-writable): make sure the function exists first
6432         * fixinc/inclhack.def(alpha_assert): fix test_text
6433         * fixinc/tests/base/assert.h: add in missing result
6434
6435 2002-05-01  Jeff Law  <law@redhat.com>
6436
6437         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
6438         'T' constraint.
6439
6440 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
6441
6442         * dbxout.c (dbxout_type): Emit size information for range types,
6443         as well, but only when using GDB extensions.
6444
6445 2002-05-01  Richard Henderson  <rth@redhat.com>
6446
6447         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
6448         target-independent gnu binutils date test.
6449
6450 2002-05-01  Richard Henderson  <rth@redhat.com>
6451
6452         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
6453         info before expunging the block.
6454
6455 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
6456
6457         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
6458         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
6459         -M -or -MM is in effect.
6460
6461 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
6462
6463         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
6464         A29k configurations.
6465         * doc/install.texi: Update to match.
6466
6467 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6468
6469         PR bootstrap/6514
6470         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
6471         for duplicates. Always loop over whole list.
6472
6473 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6474
6475         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
6476
6477 2002-05-01      Joel Sherrill <joel@OARcorp.com>
6478
6479         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
6480         support routines.
6481
6482 2002-05-01      Joel Sherrill <joel@OARcorp.com>
6483
6484         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
6485
6486 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
6487
6488         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
6489         (nabs_nopower): Same.
6490         (floatdisf2): New pattern.
6491         (absdi2): Convert to define_insn_and_split.
6492         (nabsdi2): Same.
6493         (trunctfsf2): Same.
6494         (floatditf2): Same.
6495         (floatsitf2): Same.
6496         (fix_trunctfdi2): Same.
6497         (fix_trunctfsi2): Same.
6498
6499 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
6500
6501         * doc/install.texi: Update Texinfo version requirement
6502         documentation.
6503
6504 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
6505
6506         PR target/6512, PR target/5628
6507         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
6508         when memory is not aligned.
6509         (movdf_insn_v9only_vis): Likewise.
6510         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
6511         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
6512         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
6513
6514 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
6515
6516         * gcc.dg/altivec-7.c: New.
6517
6518         * config/rs6000/altivec.h: Cleanup.
6519
6520 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
6521
6522         * doc/invoke.texi (Option Summary): Add -mvrsave=.
6523         (RS/6000 and PowerPC Options): Document -mvrsave=.
6524
6525         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
6526         (rs6000_altivec_vrsave_string): Same.
6527         (rs6000_override_options): Call rs6000_parse_vrsave_option.
6528         (rs6000_parse_vrsave_option): New.
6529         (rs6000_stack_info): Only generate vrsave instructions when
6530         TARGET_ALTIVEC_VRSAVE.
6531
6532         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
6533         (rs6000_altivec_vrsave_string): Define extern.
6534         (rs6000_altivec_vrsave): Same.
6535         (TARGET_ALTIVEC_VRSAVE): New.
6536
6537 2002-04-30  Richard Henderson  <rth@redhat.com>
6538
6539         PR opt/6516
6540         * toplev.c (rest_of_compilation): Don't run cross-jump before
6541         bb-reorder.
6542
6543 2002-04-30  Tom Rix  <trix@redhat.com>
6544
6545         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
6546         check which_alternative.
6547
6548 2002-04-30  Kazu Hirata  <kazu@hxi.com>
6549
6550         * cpplex.c: Fix comment formatting.
6551         * function.c: Likewise.
6552         * integrate.c: Likewise.
6553         * regrename.c: Likewise.
6554         * sibcall.c: Likewise.
6555         * simplify-rtx.c: Likewise.
6556         * tree-inline.c: Likewise.
6557
6558 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6559
6560         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
6561         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
6562         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
6563         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
6564         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
6565         * pa/x-ada: New file.  Define ADA_CFLAGS.
6566
6567 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
6568
6569         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
6570         from MMIX_LAST_REGISTER_FILE_REGNUM.
6571         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
6572         (struct machine_function): New member highest_saved_stack_register
6573         previously static variable in mmix.c.
6574         (MACHINE_DEPENDENT_REORG): Define.
6575         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
6576         (MMIX_OUTPUT_REGNO): New.
6577         (mmix_target_asm_function_prologue): Move calculation of last used
6578         saved-stack-register into...
6579         (mmix_machine_dependent_reorg): New function.  Update to also handle
6580         !TARGET_ABI_GNU.
6581         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
6582         register names, simplify somewhat by new variable regno.
6583         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
6584         register.
6585         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
6586         emitting register names.
6587         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
6588         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
6589         Remove fixed FIXME.
6590         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
6591         Declare.
6592
6593         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
6594
6595 2002-04-30  Richard Henderson  <rth@redhat.com>
6596
6597         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
6598         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
6599         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
6600         emit_tfmode_cvt): New.
6601         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
6602         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
6603         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
6604         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
6605         * config/sparc/sparc-protos.h: Update.
6606
6607 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
6608
6609         * install.texi (Final install): Add to the list of info to include
6610         in a report of a successful bootstrap, and add link to 3.1 list.
6611
6612 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
6613
6614         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
6615         (mode): Add vector modes
6616         (i387): Kill attribute.
6617         (unit): New attribute.
6618         (length_immediate): Grok new types.
6619         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
6620         (modrm): Use "unit".
6621         (memory): Handle MMX/SSE properly.
6622         (scheduling descriptions): Kill uses of fop1.
6623         (sse, mmx, fp patterns): Set type and mode properly.
6624
6625 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)
6626
6627         * pa.c (override_options): Default to PA8000 scheduling.
6628         * doc/invoke.texi (HP-PA options): Mention newly added 7300
6629         scheduling parameter.
6630
6631         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
6632         handling of double precision multiplies.
6633
6634         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
6635         fpdiv and fpsqrt instructions.
6636         (7200 & 7300 scheduling): Fix typo in handling of
6637         store-load and store-store penalties.
6638
6639 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6640
6641         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
6642         mips.  Add two missing commas.
6643
6644 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
6645
6646         * doc/contrib.texi (Contributors): Update Paolo Carlini's
6647         and Benjamin Kosnik's entries.
6648
6649 2002-04-29  David S. Miller  <davem@redhat.com>
6650
6651         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
6652         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
6653         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
6654         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
6655
6656 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6657
6658         * combine.c (find_split_point): Use gen_int_mode.
6659
6660 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
6661
6662         Merging code from dfa-branch:
6663
6664         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
6665
6666         * genautomata.c (output_reserv_sets): Fix typo.
6667
6668         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
6669
6670         * genautomata.c (output_reserv_sets): Remove
6671         next_cycle_output_flag.
6672
6673         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
6674
6675         * sched-rgn.c (init_ready_list): Make the DFA code handle
6676         USE/CLOBBER insns in the same way as the traditional
6677         scheduler.
6678         (new_ready): Similarly..
6679
6680         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
6681
6682         * haifa-sched.c (schedule_block): Change the DFA state only after
6683         issuing insn.
6684
6685         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
6686
6687         * pa.c (hppa_use_dfa_pipeline_interface): New function.
6688         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
6689         (override_options): Add PA7300 scheduling support.
6690         (pa_adjust_cost): Update various comments.  Properly
6691         handle anti and output dependencies when using the
6692         DFA scheduler.
6693         (pa_issue_rate): Add PA7300 scheduling support.
6694         (pa_can_combine_p): Call extract_insn before calling
6695         constrain_operands (taken from mainline tree).
6696         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
6697         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
6698         descriptions using DFA descriptions.  Add PA7300
6699         scheduling support.
6700
6701         2002-03-30  David S. Miller  <davem@redhat.com>
6702
6703         Add UltraSPARC-III DFA scheduling support.
6704         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
6705         Update FP conditional move on register insn patterns to use it, as
6706         appropriate.
6707         (define_attr cpu): Add ultrasparc3.
6708         (define_attr us3load_type): New, update integer load patterns to
6709         set it, as appropriate.
6710         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
6711         (rest): Add UltraSPARC3 scheduling description.
6712         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
6713         (PROCESSOR_ULTRASPARC3): New.
6714         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
6715         ({ASM,CPP}_CPU_SPEC): Likewise.
6716         (REGISTER_MOVE_COST): Likewise.
6717         (RTX_COSTS): Likewise.
6718         * config/sparc/sparc.c (sparc_override_options,
6719         sparc_initialize_trampoline, sparc64_initialize_trampoline,
6720         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
6721         sparc_issue_rate): Likewise.
6722         * config/sparc/sol2.h: Likewise.
6723         * config/sparc/sol2-sld-64.h: Likewise.
6724         * config/sparc/linux64.h: Likewise.
6725
6726         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
6727
6728         * doc/md.texi: Add comments about usage the latency time for the
6729         different dependencies and about case when two or more conditions
6730         in different define_insn_reservations returns TRUE for an insn.
6731
6732         * doc/md.texi: Add reference for automaton based pipeline
6733         description.
6734
6735         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
6736
6737         * doc/passes.texi: Add missed information about genattrtab.
6738
6739         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
6740
6741         * genautomata.c (output_automata_list_transition_code): Check
6742         automata_list on NULL.
6743
6744         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
6745
6746         * genautomata.c (output_insn_code_cases,
6747         output_automata_list_min_issue_delay_code,
6748         output_automata_list_transition_code,
6749         output_automata_list_state_alts_code): Comment the functions.
6750
6751         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
6752
6753         * genautomata.c (automata_list_el_t): New typedef.
6754         (get_free_automata_list_el,free_automata_list_el,
6755         free_automata_list, automata_list_hash, automata_list_eq_p,
6756         initiate_automata_lists, automata_list_start, automata_list_add,
6757         automata_list_finish, finish_automata_lists,
6758         output_insn_code_cases, output_automata_list_min_issue_delay_code,
6759         output_automata_list_transition_code,
6760         output_automata_list_state_alts_code, add_automaton_state,
6761         form_important_insn_automata_lists): New functions and prototypes.
6762         (insn_reserv_decl): Add members important_automata_list and
6763         processed_p.
6764         (ainsn): Add members important_p.
6765         (automata_list_el): New structure.
6766         (first_free_automata_list_el, current_automata_list,
6767         automata_list_table): New global variables.
6768         (create_ainsns): Initiate member important_p.
6769         (output_internal_min_issue_delay_func): Generate the switch and
6770         call output_insn_code_cases.
6771         (output_internal_trans_func, output_internal_state_alts_func):
6772         Ditto.
6773         (generate): Call initiate_automata_lists.
6774         (automaton_states): New global variable.
6775         (expand_automata): Call form_important_insn_automata_lists.
6776         (write_automata): Call finish_automata_lists.
6777
6778         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
6779
6780         * genautomata.c (add_excls, add_presence_absence): Check that
6781         cpu units in the sets belong the same automaton.
6782
6783         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
6784         about that cpu units in the sets belong the same automaton.
6785
6786         * doc/md.texi: Ditto.
6787
6788         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
6789                     Nitin Gupta  <niting@noida.hcltech.com>
6790
6791         * config/sh/sh.c (sh_use_dfa_interface): New function.
6792
6793         (sh_issue_rate): New Function.
6794         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
6795         TARGET_SCHED_ISSUE_RATE: define.
6796
6797         * config/sh/sh.md: Add DFA based pipeline description for SH4.
6798
6799         (define_attr insn_class): New attribute used for DFA
6800          scheduling.
6801         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
6802         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
6803          cmpeqdi_t): Likewise.
6804
6805         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
6806          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
6807          ex_group.
6808         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
6809
6810         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
6811
6812         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
6813         break.
6814
6815         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
6816
6817         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
6818         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
6819         necessary.
6820         (output_dfa_start_func): Initiate new variable insn_codes_length,
6821         (write_automata): Output definition of the new variable.
6822
6823         2001-10-02  David S. Miller  <davem@redhat.com>
6824
6825         * haifa-sched.c (advance_one_cycle): New function.
6826         (schedule_block): Use it.
6827         (queue_to_ready): Use it, and also make sure to advance the DFA
6828         state on all stall cycles, not just those where insn_queue links
6829         are found.
6830
6831         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
6832
6833         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
6834         non-zero if the highest-priority instruction could be scheduled.
6835         (choose_ready): Remove last argument from max_issue call.
6836
6837         2001-09-28  David S. Miller  <davem@redhat.com>
6838
6839         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
6840         ultrasparc and 3 for other multi-issue sparcs.
6841
6842         2001-09-27  David S. Miller  <davem@redhat.com>
6843
6844         * config/sparc/sparc.md (cycle_display): New pattern.
6845         * config/sparc/sparc.c (sparc_cycle_display): New.
6846         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
6847
6848         2001-09-25  David S. Miller  <davem@redhat.com>
6849
6850         Convert all of Sparc scheduling to DFA
6851         * config/sparc/sparc.md: Kill all define_function_unit
6852         directives and replace with DFA equivalent.
6853         * config/sparc/sparc.c (ultrasparc_adjust_cost,
6854         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
6855         ultra_fpmode_conflict_exists, ultra_find_type,
6856         ultra_build_types_avail, ultra_flush_pipeline,
6857         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
6858         ultrasparc_variable_issue, ultrasparc_sched_init,
6859         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
6860         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
6861         ultra_cur_hist, ultra_cycles_elapsed): Kill.
6862         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
6863         ultrasparc_store_bypass_p): New.
6864         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
6865         Declare.
6866
6867         2001-09-24  David S. Miller  <davem@redhat.com>
6868
6869         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
6870         ready->vec[foo] not ready[foo].
6871
6872         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
6873
6874         * doc/md.texi: Correct examples for define_insn_reservations
6875         `mult' and `div'.
6876
6877         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
6878
6879         * genautomata.c (create_automata): Print message about creation of
6880         each automaton.
6881         (generate): Remove printing meease about creation of
6882         automata.
6883
6884         2001-09-05  David S. Miller  <davem@redhat.com>
6885
6886         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
6887         * config/sparc/linux64.h: Likewise.
6888
6889         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
6890
6891         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
6892         schedule_block, sched_init, sched_finish): Add missed calls of
6893         use_dfa_pipeline_interface.
6894
6895         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
6896         Ditto.
6897
6898         * sched-vis.c (get_visual_tbl_length): Ditto.
6899
6900         2001-08-27  Richard Henderson  <rth@redhat.com>
6901
6902         * genattr.c (main): Emit state_t even when not doing scheduling.
6903
6904         2001-08-27  Richard Henderson  <rth@redhat.com>
6905
6906         * genautomata.c (expand_automata): Always create a description.
6907
6908         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
6909
6910         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
6911         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
6912         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
6913         RTL constructions.
6914
6915         * genattr.c (main): New variable num_insn_reservations.  Increase
6916         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
6917         pipeline hazard recognizer interface.
6918
6919         * genattrtab.h: New file.
6920
6921         * genattrtab.c: Include genattrtab.h.
6922         (attr_printf, check_attr_test, make_internal_attr,
6923         make_numeric_value): Move protypes into genattrtab.h.  Define them
6924         as external.
6925         (num_dfa_decls): New global variable.
6926         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
6927         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
6928         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
6929         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
6930
6931         * genautomata.c: New file.
6932
6933         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
6934
6935         * sched-int.h: (curr_state): Add the external definition for
6936         automaton pipeline interface.
6937         (haifa_insn_data): Add comments for members blockage and units.
6938
6939         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
6940         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
6941         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
6942         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
6943         TARGET_SCHED_DFA_POST_CYCLE_INSN,
6944         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
6945         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
6946         macros.
6947         (TARGET_SCHED): Use the new macros.
6948
6949         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
6950         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
6951         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
6952         dfa_bubble): New members in gcc_target.sched.
6953
6954         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
6955         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
6956         (insn_queue): Redefine it as pointer to array.
6957         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
6958         INSN_QUEUE_SIZE.
6959         (max_insn_queue_index_macro_value): New variable.
6960         (curr_state, dfa_state_size, ready_try): New varaibles for
6961         automaton interface.
6962         (ready_element, ready_remove, max_issue): New function prototypes
6963         for automaton interface.
6964         (choose_ready): New function prototype.
6965         (insn_unit, blockage_range): Add comments.
6966         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
6967         FUNCTION_UNITS_SIZE == 0.
6968         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
6969         actual_hazard, potential_hazard): Add comments.
6970         (insn_cost): Use cost -1 as undefined value.  Remove
6971         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
6972         pipeline interface.
6973         (ready_element, ready_remove): New functions for automaton
6974         interface.
6975         (schedule_insn): Add new code for automaton pipeline interface.
6976         (queue_to_ready): Add new code for automaton pipeline interface.
6977         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
6978         (debug_ready_list): Print newline when the queue is empty.
6979         (max_issue): New function for automaton pipeline interface.
6980         (choose_ready): New function.
6981         (schedule_block): Add new code for automaton pipeline interface.
6982         Print ready list before scheduling each insn.
6983         (sched_init): Add new code for automaton pipeline interface.
6984         Initiate insn cost by -1.
6985         (sched_finish): Free the current automaton state and finalize
6986         automaton pipeline interface.
6987
6988         * sched-rgn.c: Include target.h.
6989         (init_ready_list, new_ready, debug_dependencies): Add new code for
6990         automaton pipeline interface.
6991
6992         * sched-vis.c: Include target.h.
6993         (get_visual_tbl_length): Add code for automaton interface.
6994         (target_units, print_block_visualization):  Add comments.
6995
6996         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
6997         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
6998         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
6999         (getruntime.o, genautomata.o): New entries.
7000         (genattrtab.o): Add new dependency file genattrtab.h.
7001         (genattrtab): Add new dependencies.  Link it with `libm.a'.
7002         (getruntime.o, hashtab.o): New entries for canadian cross.
7003
7004         * doc/md.texi: Description of automaton based model.
7005
7006         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
7007         Add comments.
7008         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
7009         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
7010         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
7011         TARGET_SCHED_DFA_POST_CYCLE_INSN,
7012         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
7013         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
7014         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
7015         hook descriptions.
7016         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
7017         MAX_DFA_ISSUE_RATE): New macro descriptions.
7018
7019         * doc/contrib.texi: Add dfa based scheduler contribution.
7020
7021         * doc/gcc.texi: Add more information about genattrtab.
7022
7023 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7024
7025         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
7026         adjust_address_nv call.
7027
7028 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
7029
7030         * doc/install.texi (Testing): Provide additional information, and
7031         a stronger encouragement, for running the testsuites.
7032
7033 2002-04-29  DJ Delorie  <dj@redhat.com>
7034
7035         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
7036         given in upper case.
7037
7038 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7039
7040         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
7041         Solaris 2 <widec.h> if missing.
7042         * fixinc/fixincl.x: Regenerate.
7043         * fixinc/tests/base/widec.h: New file.
7044
7045 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
7046
7047         * toplev.c (f_options): Add "profile" switch so that
7048         -fno-profile can be used to disable -p.
7049
7050 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
7051
7052         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
7053         UV2DImode.
7054         * tree.c (build_common_tree_nodes_2): Likewise.
7055         * tree.h (enum tree_index): Likewise.
7056         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
7057
7058         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
7059         entries.
7060         (init_mmx_sse_builtins): Initialize SSE2 builtins.
7061         (ix86_expand_builtin): Add support for SSE2 builtins.
7062         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
7063         (VALID_SSE_REG_MODE): Use it.
7064         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
7065         (enum ix86_builtins): Add SSE2 builtins.
7066         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
7067         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
7068         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
7069         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
7070         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
7071         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
7072         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
7073         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
7074         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
7075         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
7076         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
7077         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
7078         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
7079         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
7080         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
7081         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
7082         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
7083         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
7084         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
7085         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
7086         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
7087         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
7088         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
7089         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
7090         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
7091         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
7092         lfence_insn): New patterns.
7093         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
7094         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
7095
7096 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
7097
7098         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
7099
7100 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7101
7102         * doc/contrib.texi (Contributors): Add Paolo Carlini and
7103         Janis Johnson.
7104         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
7105         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
7106         and CPU instead of cpu.
7107
7108 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
7109
7110         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
7111         variables.
7112         (lang_independent_options): Add -fif-conversion, -fif-conversion2
7113         (rest_of_compilation): Do if conversion only when asked for.
7114         (parse_options_and_default_flags): Set new variables to 1 for -O1
7115         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
7116
7117 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
7118
7119         * i386.c (dbx64_register_map): Fix typo.
7120
7121 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
7122
7123         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
7124         real_one_half, real_bb_freq_max): New static variables.
7125         (debug_profile_bbauxs): Kill.
7126         (process_note_predictions): Kill unused variable.
7127         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
7128         volatile double.
7129         (propagate_freq): Use REAL_ARITHMETICS.
7130         (estimate_bb_frequencies): Likevise; init new static variables.
7131         * Makefile.in (predict.o): Add dependency on real.h
7132
7133 2002-04-28  David S. Miller  <davem@redhat.com>
7134
7135         PR target/6500
7136         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
7137         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
7138         several {reads,writes} instead.
7139         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
7140         Define.
7141
7142 2002-04-27  David S. Miller  <davem@redhat.com>
7143
7144         PR target/6494
7145         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
7146         of the stack bias.
7147
7148         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
7149         including signal.h and sys/ucontext.h, not needed.
7150
7151 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
7152
7153         * varasm.c (output_constant_def): Correct test for not calling
7154         ENCODE_SECTION_INFO for INTEGER_CST.
7155
7156 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7157
7158         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
7159         keep most cases as function eval_token.
7160         (eval_token): New function.
7161         (_cpp_parse_expr): Read token here for improved diagnostics.
7162         Don't use op_as_text.  Detect bad ':' here.
7163         (reduce): Don't detect bad ':' here.
7164         (op_as_text): Remove.
7165         * cpphash.h (_cpp_test_assertion): Change prototype.
7166         * cpplib.c (_cpp_test_assertion): Change prototype.
7167
7168 2002-04-28  Richard Henderson  <rth@redhat.com>
7169
7170         PR c/5154
7171         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
7172         (ggc_mark_rtx_children): New.
7173
7174 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
7175
7176         PR target/6496
7177         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
7178         after call peepholes for UltraSPARC.
7179         (call + jump 64-bit peepholes): Remove.
7180
7181 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7182
7183         PR c/6497
7184         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
7185         result as temporary value.
7186
7187 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
7188
7189         PR c++/6396
7190         * toplev.c (rest_of_compilation): Only run regrename and copy
7191         propagation if optimizing.
7192
7193 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
7194
7195         PR optimization/6475
7196         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
7197         register of REGNO_DECL (i).
7198         * Makefile.in (reload1.o): Add $(TREE_H).
7199
7200 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
7201
7202         * cppexp.c (lex): Update to use state.skip_eval.
7203         (struct op): Remove prio and flags members.
7204         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
7205         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
7206         (LEFT_ASSOC): New macro.
7207         (optab): New table of operator priorities and flags.
7208         (SHIFT): Update.
7209         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
7210         malloc-ed parser stack.
7211         (reduce): New; reduce the operator stack.
7212         (_cpp_expand_op_stack): Expand the operator stack as necessary.
7213         * cpphash.h (struct op): Predeclare.
7214         (struct cpp_reader): New members op_stack, op_limit.
7215         (struct lexer_state): New member skip_eval.
7216         (_cpp_parse_expr): Update.
7217         (_cpp_expand_op_stack): New.
7218         * cpplib.c (do_if): Update.
7219         * cppinit.c (cpp_create_reader): Create op stack.
7220         (cpp_destroy): And destroy it.
7221         * cpplib.h (CPP_LAST_CPP_OP): Correct.
7222         (TTYPE_TABLE): Correct.
7223
7224 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7225
7226         PR c/6343
7227         * c-decl.c (duplicate_decls): Call merge_weak.
7228         * c-pragma.c (apply_pragma_weak): Warn about misuse.
7229         * output.h (merge_weak): Prototype merge_weak.
7230         * varasm.c (merge_weak): New function.
7231         (declare_weak): Make sure we don't give an error on VAR_DECLs.
7232         Mark RTL with SYMBOL_REF_WEAK.
7233
7234 2002-04-27  Kurt Garloff <garloff@suse.de>
7235
7236         * tree-inline.c (inlinable_function_p): Improve heuristics
7237         by using a smoother function to cut down allowable inlinable size.
7238         * param.def: Add parameters max-inline-insns-single,
7239         max-inline-slope, min-inline-insns that determine the exact
7240         shape of the above function.
7241         * param.h: Likewise.
7242
7243 2002-04-26  Richard Henderson  <rth@redhat.com>
7244
7245         * c-parse.in (malloced_yyss, malloced_yyvs): New.
7246         (yyoverflow): Re-add.  Set them.
7247         (free_parser_stacks): New.
7248         * c-common.h: Declare it.
7249         * c-lex.c (c_common_parse_file): Call it.
7250
7251 2002-04-26  Richard Henderson  <rth@redhat.com>
7252
7253         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
7254         for fallthru search.
7255
7256 2002-04-26  Eric Christopher  <echristo@redhat.com>
7257
7258         PR optimization/3700
7259         * config/mips/mips.c (mips_issue_rate): Define.  New function.
7260         (TARGET_SCHED_ISSUE_RATE): Use.
7261
7262 2002-04-25  David S. Miller  <davem@redhat.com>
7263
7264         PR target/6422
7265         * reorg.c (optimize_skip): Do not allow exception causing
7266         instructions to be considered for delay slots.
7267         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
7268         (relax_delay_slots): Do not try to consider exception causing
7269         instructions as redundant.
7270
7271 2002-04-26  Richard Henderson  <rth@redhat.com>
7272
7273         PR c/5225
7274         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
7275
7276 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
7277
7278         PR bootstrap/6445
7279         * config/i386/i386.md (untyped_call): Return the value in a float
7280         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
7281         TARGET_80387.
7282
7283 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
7284
7285         * tree.c (tree_int_cst_lt): Compare constants whose types differ
7286         in unsigned-ness correctly.
7287
7288 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7289
7290         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
7291         portable runtime model.
7292
7293 2002-04-26  Richard Henderson  <rth@redhat.com>
7294
7295         * c-parse.in (yyoverflow): Revert.
7296
7297 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
7298             Richard Henderson  <rth@redhat.com>
7299
7300         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
7301         result as temporary value.
7302
7303 2002-04-26  Richard Henderson  <rth@redhat.com>
7304
7305         PR c/3581
7306         * c-common.c (fix_string_type): Split out of ...
7307         (combine_strings): ... here.  Take a varray, not a tree list.
7308         (c_expand_builtin_printf): Use fix_string_type.
7309         * c-common.h: Update decls.
7310         * c-parse.in (string): Remove.  Update all uses to use STRING
7311         instead, and not call combine_strings.
7312         (yylexstring): New.
7313         (_yylex): Use it.
7314         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
7315         (build_asm_stmt): Likewise.
7316         * objc/objc-act.c (my_build_string): Use fix_string_type.
7317         (build_objc_string_object): Build varray for combine_strings.
7318
7319 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
7320
7321         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
7322         x86-64.
7323
7324 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
7325
7326         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
7327         (HAVE_NO_R_OPERAND): Remove.
7328         (HAVE_VALUE): Remove.
7329         (op_to_prio): Update.
7330         (UNARY): Don't alter flags.
7331         (_cpp_parse_expr): want_value used to indicate whether
7332         a number or unary operator is expected next.  Distinguish
7333         unary and binary +/-.
7334         (op_as_text): Update for unary operators.
7335
7336 2002-04-25  Richard Henderson  <rth@redhat.com>
7337
7338         PR c/2161
7339         * c-parse.in (yyoverflow): New.
7340
7341 2002-04-25  Richard Henderson  <rth@redhat.com>
7342
7343         PR c/2098
7344         * c-common.c (shorten_compare): Simplfy conditions leading to
7345         the generation of a warning.
7346
7347 2002-04-25  Richard Henderson  <rth@redhat.com>
7348
7349         PR c/2035
7350         * expmed.c (extract_bit_field): Fall through to generic code rather
7351         than aborting on subreg special case.
7352
7353 2002-04-25  David S. Miller  <davem@redhat.com>
7354
7355         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
7356         for DECL being NULL.
7357
7358 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
7359
7360         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
7361
7362 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
7363
7364         * c-decl.c (grokdeclarator): Remove outdated ??? note
7365         on invalid declaration of flexible array members.
7366
7367 2002-04-25  Richard Henderson  <rth@redhat.com>
7368
7369         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
7370
7371 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
7372
7373         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
7374         needed by the compiler, even if they are used as global regs.
7375
7376 2002-04-25  Matt Hiller  <hiller@redhat.com>
7377
7378         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
7379         functions.
7380         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
7381         of the corresponding functions.
7382         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
7383         New prototypes.
7384
7385 2002-04-25  Matt Hiller  <hiller@redhat.com>
7386
7387         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
7388
7389         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
7390         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
7391         registers, adjust comment accordingly.
7392         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
7393         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
7394         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
7395         for coprocessor registers.
7396         (ADDITIONAL_REGISTER_NAMES): Include
7397         ALL_COP_ADDITIONAL_REGISTER_NAMES.
7398
7399         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
7400         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
7401         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
7402         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
7403         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
7404
7405         (mips_char_to_class): Adjust comment to include coprocessor
7406         constraint letters.
7407
7408         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
7409         New functions.
7410         (mips_reg_names, mips_regno_to_class): Include coprocessor
7411         information.
7412         (mips_sw_reg_names): Ditto, make non-static.
7413         (mips_move_1word): Handle moves to and from coprocessor registers.
7414         (mips_move_2words): Handle moves to and from coprocessor
7415         registers.
7416         (mips_class_max_nregs, mips_register_move_cost): Handle
7417         coprocessor register classes.
7418         (override_options): Initialize mips_char_to_class and
7419         mips_hard_regno_mode_ok properly for coprocessor registers.
7420
7421         * config/mips/mips.md (movdi_internal, movdi_internal2,
7422         movsi_internal1, movsi_internal2): Add constraint-sets for
7423         coprocessor registers.
7424         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
7425         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
7426         isn't mips.
7427         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
7428         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
7429         isn't mips.
7430         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
7431         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
7432         isn't mips.
7433         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
7434         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
7435         isn't mips.
7436
7437         * doc/tm.texi: Document feature.
7438
7439 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
7440
7441         * integrate.c (function_attribute_inlinable_p): Simplify.
7442         Check the table pointer is not NULL.
7443
7444 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
7445
7446         * doc/c-tree.texi: Fix typo in introduction.
7447
7448 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
7449
7450         * c-common.h (c_common_parse_file): Update.
7451         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
7452         * c-lex.c (YYDEBUG): Get from c-lex.h.
7453         (c_common_parse_file): Update.
7454         * c-lex.h (YYDEBUG, yydebug): New.
7455         * c-parse.in (YYDEBUG): Get from c-lex.h.
7456         (c_set_yydebug): Remove.
7457         * c-tree.h (c_set_yydebug): Remove.
7458         * langhooks-def.h (lhd_do_nothing_i): New.
7459         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
7460         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
7461         * langhooks.c  (lhd_do_nothing_i): New.
7462         (lhd_set_yydebug): Remove.
7463         * langhooks.h (struct lang_hooks): Update.
7464         * toplev.c (set_yydebug): New.
7465         (compile_file): Update call to parse_file hook.
7466         (decode_d_option): Update.
7467 objc:
7468         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
7469
7470 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
7471
7472         * loop.c (load_mems): Don't change the interface of called functions.
7473
7474         * calls.c (expand_call): Take current_function_pretend_args_size
7475         into account when setting argblock for sibcalls.
7476
7477 2002-04-24  Matt Hiller  <hiller@redhat.com>
7478
7479         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
7480         * c-lex.c: Ditto.
7481
7482         * cpplex.c (skip_line_comment): Process comment one multibyte
7483         character at a time rather than one char at a time, if
7484         appropriate.
7485         (parse_string): Process string one multibyte character at a time
7486         rather than one char at a time, if appropriate.
7487         * c-lex.c (lex_string): Lex and copy multibyte strings
7488         appropriately.
7489         * cpplib.h (cppchar_t): Change to unsigned.
7490
7491 2002-04-24  Richard Henderson  <rth@redhat.com>
7492
7493         PR c/3467
7494         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
7495         for c99.
7496
7497 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
7498
7499         * sh.c (sh_va_arg): If argument was passed by reference,
7500         dereference the pointer.
7501
7502         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
7503
7504         * sh.md (divsi3_i4_media): Use match_operand for input values
7505         rather than hard registers.
7506         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
7507         unnecessarily through hard registers.  Keep copies of pseudo
7508         registers outside of the libcall sequence.
7509
7510         * sh.md (casesi_shift_media): Add modes.
7511
7512         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
7513         values in memory.
7514
7515 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
7516
7517         * attribs.c (c_common_attribute_table): Move table and handlers
7518         to c-common.c.
7519         (format_attribute_table, lang_attribute_table,
7520         lang_attribute_common): Remove.
7521         (init_attributes): Replace NULL pointers with pointers to the
7522         empty table.
7523         (handle_packed_attribute, handle_nocommon_attribute,
7524         handle_common_attribute, handle_noreturn_attribute,
7525         handle_noinline_attribute, handle_always_inline_attribute,
7526         handle_used_attribute, handle_unused_attribute,
7527         handle_const_attribute, handle_transparent_union_attribute,
7528         handle_constructor_attribute, handle_destructor_attribute,
7529         handle_mode_attribute, handle_section_attribute,
7530         handle_aligned_attribute, handle_weak_attribute,
7531         handle_alias_attribute, handle_visibility_attribute,
7532         handle_no_instrument_function_attribute, handle_malloc_attribute,
7533         handle_no_limit_stack_attribute, handle_pure_attribute,
7534         handle_deprecated_attribute, handle_vector_size_attribute,
7535         vector_size_helper): Move to c-common.c.
7536         * c-common.c (c_common_attribute_table,
7537         handle_packed_attribute, handle_nocommon_attribute,
7538         handle_common_attribute, handle_noreturn_attribute,
7539         handle_noinline_attribute, handle_always_inline_attribute,
7540         handle_used_attribute, handle_unused_attribute,
7541         handle_const_attribute, handle_transparent_union_attribute,
7542         handle_constructor_attribute, handle_destructor_attribute,
7543         handle_mode_attribute, handle_section_attribute,
7544         handle_aligned_attribute, handle_weak_attribute,
7545         handle_alias_attribute, handle_visibility_attribute,
7546         handle_no_instrument_function_attribute, handle_malloc_attribute,
7547         handle_no_limit_stack_attribute, handle_pure_attribute,
7548         handle_deprecated_attribute, handle_vector_size_attribute,
7549         vector_size_helper): Move from attribs.c.
7550         * c-common.h (c_common_attribute_table,
7551         c_common_format_attribute_table): New.
7552         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
7553         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
7554         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
7555         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
7556         (LANG_HOOKS_INITIALIZER): Update.
7557         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
7558         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
7559         * target.h: Update comment.
7560         * tree.c (default_target_attribute_table): Remove.
7561         * tree.h (default_target_attribute_table, format_attribute_table,
7562         lang_attribute_table, lang_attribute_common): Remove.
7563 objc:
7564         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
7565         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
7566
7567 2002-04-24  Jason Merrill  <jason@redhat.com>
7568
7569         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
7570         * dwarf2out.c (dwarf_attr_name): Support it.
7571         (gen_array_type_die): Emit it.
7572         (lookup_type_die): No special handling for VECTOR_TYPE.
7573         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
7574
7575 2002-04-24  Richard Henderson  <rth@redhat.com>
7576
7577         * config/mips/mips.md (movdi_usd): Renumber.
7578
7579 2002-04-24  David S. Miller  <davem@redhat.com>
7580
7581         PR target/6420
7582         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
7583         32-bit Sparc and current_function_returns_struct is true.
7584
7585 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
7586
7587         * loop.c (canonicalize_condition): Use gen_int_mode.
7588
7589 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
7590
7591         * config/rs6000/altivec.h: Cleanup file.  Add non individual
7592         variants.
7593         (vec_vaddubm): New.
7594         (vec_vadduhm): New.
7595         (vec_vadduwm): New.
7596         (vec_vaddfp): New.
7597         (vec_vaddcuw): New.
7598         (vec_vaddubs): New.
7599         (vec_vaddsbs): New.
7600         (vec_vadduhs): New.
7601         (vec_vadduws): New.
7602         (vec_vaddsws): New.
7603         (vec_vand): New.
7604         (vec_vandc): New.
7605         (vec_vavgub): New.
7606         (vec_vavgsb): New.
7607         (vec_vavguh): New.
7608         (vec_vavgsh): New.
7609         (vec_vavguw): New.
7610         (vec_vavgsw): New.
7611         (vec_vrfip): New.
7612         (vec_vcmpbfp): New.
7613         (vec_vcmpequb): New.
7614         (vec_vcmpequh): New.
7615         (vec_vcmpequw): New.
7616         (vec_vcmpeqfp): New.
7617         (vec_vcmpgefp): New.
7618         (vec_vcmpgtub): New.
7619         (vec_vcmpgtsb): New.
7620         (vec_vcmpgtuh): New.
7621         (vec_vcmpgtsh): New.
7622         (vec_vcmpgtuw): New.
7623         (vec_vcmpgtsw): New.
7624         (vec_vcmpgtfp): New.
7625         (vec_vcmpgefp): New.
7626         (vec_vcfux): New.
7627         (vec_vcfsx): New.
7628         (vec_vctsxs): New.
7629         (vec_vctuxs): New.
7630         (vec_vexptefp): New.
7631         (vec_vrfim): New.
7632         (vec_lvx): New.
7633         (vec_lvebx): New.
7634         (vec_lvehx): New.
7635         (vec_lde): Add vector float variant.
7636         (vec_lvewx): New.
7637         (vec_lvxl): New.
7638         (vec_vlogefp): New.
7639         (vec_vmaddfp): New.
7640         (vec_vmhaddshs): New.
7641         (vec_vmaxub): New.
7642         (vec_vmaxsb): New.
7643         (vec_vmaxuh): New.
7644         (vec_vmaxsh): New.
7645         (vec_vmaxuw): New.
7646         (vec_vmaxsw): New.
7647         (vec_vmaxsw): New.
7648         (vec_vmaxfp): New.
7649         (vec_vmrghb): New.
7650         (vec_vmrghh): New.
7651         (vec_vmrghw): New.
7652         (vec_vmrglb): New.
7653         (vec_vmrglh): New.
7654         (vec_vmrglw): New.
7655         (vec_vminub): New.
7656         (vec_vminsb): New.
7657         (vec_vminuh): New.
7658         (vec_vminsh): New.
7659         (vec_vminuw): New.
7660         (vec_vminsw): New.
7661         (vec_vminfp): New.
7662         (vec_vmladduhm): New.
7663         (vec_vmhraddshs): New.
7664         (vec_msumubm): New.
7665         (vec_vmsummbm): New.
7666         (vec_vmsumuhm): New.
7667         (vec_vmsumshm): New.
7668         (vec_vmsumuhs): New.
7669         (vec_vmsumshs): New.
7670         (vec_vmuleub): New.
7671         (vec_vmulesb): New.
7672         (vec_vmuleuh): New.
7673         (vec_vmulesh): New.
7674         (vec_vmuloub): New.
7675         (vec_mulosb): New.
7676         (vec_vmulouh): New.
7677         (vec_vmulosh): New.
7678         (vec_vnmsubfp): New.
7679         (vec_vnor): New.
7680         (vec_vor): New.
7681         (vec_vpkuhum): New.
7682         (vec_vpkuwum): New.
7683         (vec_vpkpx): New.
7684         (vec_vpkuhus): New.
7685         (vec_vpkshss): New.
7686         (vec_vpkuwus): New.
7687         (vec_vpkswss): New.
7688         (vec_vpkshus): New.
7689         (vec_vpkswus): New.
7690         (vec_vperm): New.
7691         (vec_vrefp): New.
7692         (vec_vrlb): New.
7693         (vec_vrlh): New.
7694         (vec_vrlw): New.
7695         (vec_vrfin): New.
7696         (vec_vrsqrtefp): New.
7697         (vec_vsel): New.
7698         (vec_vslb): New.
7699         (vec_vslh): New.
7700         (vec_vslw): New.
7701         (vec_vsldoi): New.
7702         (vec_vsl): New.
7703         (vec_vslo): New.
7704         (vec_vspltb): New.
7705         (vec_vsplth): New.
7706         (vec_vspltw): New.
7707         (vec_vspltisb): New.
7708         (vec_vspltish): New.
7709         (vec_vspltisw): New.
7710         (vec_vsrb): New.
7711         (vec_vsrh): New.
7712         (vec_vsrw): New.
7713         (vec_vsrab): New.
7714         (vec_vsrah): New.
7715         (vec_vsraw): New.
7716         (vec_vsr): New.
7717         (vec_vsro): New.
7718         (vec_stvx): New.
7719         (vec_stvebx): New.
7720         (vec_stvehx): New.
7721         (vec_stvewx): New.
7722         (vec_stvxl): New.
7723         (vec_vsububm): New.
7724         (vec_vsubuhm): New.
7725         (vec_vsubuwm): New.
7726         (vec_vsubfp): New.
7727         (vec_vsubcuw): New.
7728         (vec_vsububs): New.
7729         (vec_vsubsbs): New.
7730         (vec_vsubuhs): New.
7731         (vec_vsubshs): New.
7732         (vec_vsubuws): New.
7733         (vec_vsubsws): New.
7734         (vec_vsum4ubs): New.
7735         (vec_vsum4sbs): New.
7736         (vec_vsum4shs): New.
7737         (vec_vsum2sws): New.
7738         (vec_vsumsws): New.
7739         (vec_vrfiz): New.
7740         (vec_vupkhsb): New.
7741         (vec_vupkhpx): New.
7742         (vec_vupkhsh): New.
7743         (vec_vupklsb): New.
7744         (vec_vupklpx): New.
7745         (vec_vupklsh): New.
7746         (vec_vxor): New.
7747
7748 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
7749
7750         PR c/5430
7751         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
7752         added literals from substracted literals.
7753         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
7754         (fold) [associate]: Preserve MINUS_EXPR if needed.
7755
7756 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
7757
7758         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
7759         are obsoleted.
7760
7761 2002-04-23  Tom Tromey  <tromey@redhat.com>
7762
7763         * gcc.c: Added --resource.  For PR java/6314.
7764
7765 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
7766
7767         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
7768         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
7769         these libraries.
7770
7771 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
7772
7773         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
7774
7775 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
7776
7777         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
7778         workaround.
7779         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
7780         (ix86_expand_clrstr): Fix typo.
7781         * loop.c (gen_load_of_final_value): New.
7782         (loop_givs_rescan, strength_reduce, check_dbra_loop):
7783         Use it.
7784
7785 2002-04-23  Roger Sayle  <roger@eyesopen.com>
7786
7787         * builtins.c (builtin_memset_gen_str): New function.
7788         (expand_builtin_memset): Optimize the case of constant length, but
7789         unknown value.
7790
7791 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
7792
7793         * config/rs6000/altivec.h (vec_step): Remove extraneous
7794         parentheses.
7795         (vec_ctu): Cast return.
7796
7797 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
7798
7799         PR target/6413
7800         * function.h: (struct function): Add profile_label_no field.
7801         (current_function_profile_label_no): Define.
7802         * function.c: (profile_label_no): New static var.
7803         (expand_function_start): Increment it, and copy to
7804         current_function_profile_label_no.
7805         * output.h (profile_label_no): Delete.
7806         * final.c (profile_label_no): Delete.
7807         (profile_function): Use current_function_profile_label_no.
7808         (final_end_function): Don't increment profile_label_no here.
7809         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
7810         profile_label_no with current_function_profile_label_no.
7811         * config/pa/pa.c (current_function_number): Delete.
7812         (pa_output_function_prologue): Don't output profile label here.
7813         (hppa_profile_hook): Use label_no param rather than
7814         current_function_number.
7815         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
7816         * config/pa/pa.h: .. here.
7817         (FUNCTION_PROFILER): Output profile label here.
7818
7819 2002-04-22  Eric Christopher  <echristo@redhat.com>
7820
7821         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
7822         patch of 2002-04-09 due to binutils issues.
7823         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
7824
7825 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
7826
7827         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
7828         constraint to 'o' for m=r and r=m alternatives.
7829         ("*movv8hi_internal1"): Same.
7830         ("*movv16qi_internal1"): Same.
7831         ("*movv4sf_internal1"): Same.
7832
7833 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
7834
7835         * rtl.h (RTX_FLAG): New macro.
7836         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
7837         * final.c (alter_subreg): Use macro to access rtx flag.
7838         * integrate.c (copy_rtx_and_substitute): Use new access macro.
7839         * print-rtl.c (print_rtx): Use new access macro.
7840
7841         * cse.c (insert): Check rtx code before accessing flag.
7842
7843         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
7844         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
7845         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
7846         convert_const_symbol_ref, make_canonical, make_alternative_compare,
7847         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
7848         simplify_test_exp, optimize_attrs, simplify_by_exploding,
7849         find_and_mark_used_attributes, unmark_used_attributes,
7850         add_values_to_cover, simplify_with_current_value,
7851         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
7852         copy_rtx_unchanging, main): Use new access macros.
7853
7854 2002-04-22  Tom Rix  <trix@redhat.com>
7855
7856         * expmed.c (init_expmed): Generate shifted constant once.
7857
7858 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
7859
7860         * c-lex.c (lex_charconst): Call convert to get constant in
7861         proper type; don't just smash the type field.
7862         Fixes PR c/6300.
7863
7864         * config.gcc: Add list of obsolete configurations.  Disallow
7865         building these without --enable-obsolete.
7866         * doc/install.texi: Document --enable-obsolete and obsoletion
7867         policy.  Mention obsoletion of individual targets in
7868         appropriate places.
7869
7870 2002-04-22  Richard Henderson  <rth@redhat.com>
7871
7872         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
7873
7874 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
7875
7876         PR f/6138.
7877         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
7878         (walk_fixup_memory_subreg): Likewise.
7879         (fixup_var_refs_insn): Adjust accordingly.
7880         (fixup_var_refs_1): Likewise.
7881
7882 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
7883
7884         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
7885         LIBPATH_ARCH64_SPEC): Define.
7886         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
7887         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
7888         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
7889         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
7890
7891 2002-04-22      Joel Sherrill <joel@OARcorp.com>
7892
7893         * gthr-rtems.h: Correct prototypes to remove warnings.
7894
7895 2002-04-22  Richard Henderson  <rth@redhat.com>
7896
7897         PR c/6344
7898         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
7899
7900         * gcse.c (free_insn_expr_list_list): New.
7901         (clear_modify_mem_tables): Use it.  Fix bit set usage.
7902         (canon_list_insert): Use EXPR_LISTs for expressions.
7903         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
7904
7905 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
7906
7907         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
7908         file change and include code to _cpp_pop_buffer.
7909         * cpphash.h (struct pending_option): Predeclare.
7910         (struct cpp_reader): New member next_include_file.
7911         (_cpp_pop_file_buffer): Update.
7912         (_cpp_push_next_buffer): Update, rename.
7913         * cppinit.c (cpp_destroy): Free include chain and pending here.
7914         (cpp_finish_options): Simplify.
7915         (_cpp_push_next_buffer): Rename and clean up.
7916         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
7917         Clarify.
7918         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
7919
7920 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
7921
7922         * config/rs6000/altivec.h (vec_xor): Add variant for both args
7923         being vector signed int.
7924         (vec_andc): Same.
7925         (vec_xor): Add variant for both args being vector signed char.
7926         Remove redundant variant.
7927         (vec_andc): Same.
7928
7929 2002-04-21  David S. Miller  <davem@redhat.com>
7930
7931         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
7932         compare mode in output RTL.
7933
7934 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
7935
7936         * config/rs6000/rs6000.c (rs6000_override_options): Correct
7937         style and formatting of previous patch.
7938
7939 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
7940
7941         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
7942         flag_pic for ABI_AIX.
7943
7944 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7945
7946         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
7947         * cppfiles.c (read_include_file): Similarly.
7948         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
7949         uxstrdup ustrchr, ufputs): Similarly.
7950         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
7951         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
7952         cpp_ideq, parse_identifier, parse_number): Similarly.
7953         * cpplib.c (struct directive, dequote_string, D, run_directive,
7954         cpp_push_buffer): Similarly.
7955         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
7956         _cpp_create_definition, check_trad_stringification,
7957         cpp_macro_definition): Similarly.
7958
7959 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
7960
7961         * cppmacro.c (funlike_invocation_p): Don't step back
7962         over CPP_EOF.
7963
7964 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
7965
7966         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
7967         labelno.
7968
7969 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
7970
7971         * doc/invoke.texi: Remove Chill references.
7972         * doc/gcc.texi: Update last modified date.
7973
7974 2002-04-20  Kazu Hirata  <kazu@hxi.com>
7975
7976         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
7977         push and pop.  Replace add.l with add.w.
7978
7979 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
7980
7981         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
7982         multiply instructions for H8/300H case.
7983
7984 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
7985
7986         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
7987         Bum three instructions from each routine.
7988
7989 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
7990
7991         * Makefile.in: Update.
7992         * decl.c (push_c_function_context, pop_c_function_context,
7993         mark_c_function_context): Rename for consistency.
7994         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
7995         * c-tree.h (push_c_function_context, pop_c_function_context,
7996         mark_c_function_context): Rename for consistency.
7997         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7998         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
7999         * function.c (init_lang_status, save_lang_status,
8000         restore_lang_status, mark_lang_status, free_lang_status):
8001         Move to langhooks.h.
8002         (push_function_context_to, pop_function_context_from,
8003         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
8004         Update.
8005         * function.h (init_lang_status, save_lang_status,
8006         restore_lang_status, mark_lang_status, free_lang_status):
8007         Move to langhooks.h.
8008         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
8009         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
8010         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
8011         LANG_HOOKS_FUNCTION_INITIALIZER): New.
8012         (LANG_HOOKS_INITIALIZER): Update.
8013         (lhd_do_nothing_f): New.
8014         * langhooks.h (struct lang_hooks_for_functions): New.
8015         (struct lang_hooks): New hooks.
8016         * langhooks.c (lhd_do_nothing_f): New.
8017 objc:
8018         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
8019         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
8020
8021 2002-04-19  David S. Miller  <davem@redhat.com>
8022
8023         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
8024         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
8025
8026 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
8027
8028         PR optimization/3756
8029         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
8030         x = ((int) y < 0) ? cst1 : cst2.
8031
8032 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
8033
8034         PR c/6358
8035         * function.c: Reapply patch for c/6358.
8036         (expand_function_end): Copy decl_rtl's mode, not
8037         current_function_return_rtx mode.
8038
8039 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
8040
8041         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
8042         targets.
8043
8044 2002-04-19  Tom Tromey  <tromey@redhat.com>
8045
8046         * doc/install.texi (Specific): Update status of Solaris 2.8.
8047         For PR libgcj/6158.
8048
8049 2002-04-19  Andreas Schwab  <schwab@suse.de>
8050
8051         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
8052         (PUT_REAL): Restore old definition.
8053
8054 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
8055             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8056
8057         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
8058         binutils 2.11.2 and higher generate smaller binaries than Sun's
8059         native tools.
8060
8061 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
8062
8063         PR c++/6352
8064         * toplev.c (rest_of_compilation): Do not defer functions for which
8065         TREE_SYMBOL_REFERENCED has already been set.
8066
8067 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
8068
8069         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
8070         alternative.
8071
8072 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
8073
8074         * builtins.c: Include langhooks.h.
8075         (lang_type_promotes_to): Remove.
8076         (expand_builtin_va_arg): Use new hook.
8077         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
8078         (simple_type_promotes_to): Move to c-typeck.c.
8079         * c-common.h (simple_type_promotes_to): Remove.
8080         * c-decl.c (duplicate_decls, grokdeclarator): Update.
8081         * c-format.c: Include langhooks.h.
8082         (check_format_types): Update.
8083         * c-tree.h (c_type_promotes_to): New.
8084         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
8085         (type_lists_compatible_p): Update.
8086         * langhooks-def.h (lhd_type_promotes_to): New.
8087         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
8088         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
8089         * langhooks.c (lhd_type_promotes_to): New.
8090         * langhooks.h (struct lang_hooks_for_types): New hook.
8091         * tree.h (lang_type_promotes_to): Remove.
8092 objc:
8093         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
8094
8095 2002-04-18  Richard Henderson  <rth@redhat.com>
8096
8097         * function.c: Revert patch for c/6358.
8098
8099 2002-04-18  Richard Henderson  <rth@redhat.com>
8100
8101         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
8102         blocks.  Handle multiple references to the TRAP block.  Handle
8103         non-adjacent THEN and OTHER blocks.
8104
8105 2002-04-18  Richard Henderson  <rth@redhat.com>
8106
8107         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
8108         crash with no type for by-mode libcalls.
8109
8110         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
8111
8112 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
8113
8114         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
8115         __xtensa_nonlocal_goto): Use a syscall instructions to flush
8116         the register windows.
8117
8118 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
8119
8120         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
8121         appropriate.  Document need for extended precision even when
8122         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
8123         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
8124         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
8125         instead of relying on later syntax error when REAL_WIDTH > 5.
8126         * real.c: Define NE based only on whether or not we have a
8127         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
8128         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
8129         define GET_REAL and PUT_REAL as simple memcpy operations; no
8130         need to byteswap or round.
8131         Use #error instead of #ifdef-ing out the entire file, for
8132         prompt error detection.
8133
8134         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
8135
8136 2002-04-18  David S. Miller  <davem@redhat.com>
8137
8138         * config/sparc/sparc.h (BRANCH_COST): Define.
8139
8140         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
8141         does it.
8142
8143 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
8144
8145         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
8146         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
8147         propagate_block calls after relaxation loop using new variable
8148         stabilized_prop_flags.
8149
8150 2002-04-18  Richard Henderson  <rth@redhat.com>
8151
8152         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
8153         (ia64_va_arg): Expect variable sized types by reference.
8154         * config/ia64/ia64-protos.h: Update.
8155         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
8156         ia64_function_arg_pass_by_reference.
8157
8158 2002-04-18  Richard Henderson  <rth@redhat.com>
8159
8160         * ifcvt.c: Include except.h.
8161         (block_has_only_trap): Break out from find_cond_trap.
8162         (find_cond_trap): Use it.  Always delete the trap block.
8163         (merge_if_block): Allow then block null.  Be less simplistic about
8164         what insns can end a block.
8165         * Makefile.in (ifcvt.o): Depend on except.h.
8166
8167         * config/ia64/ia64.md (trap, conditional_trap): New.
8168
8169 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
8170
8171         PR c/6358
8172         * function.c (assign_parms): Assign hard current_function_return_rtx
8173         register here...
8174         (expand_function_end): ...not here.
8175
8176 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
8177
8178         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
8179         * c-tree.h (c_incomplete_type_error): New.
8180         * c-typeck.c (require_complete_type, build_component_ref): Update.
8181         (incomplete_type_error): Rename.
8182         * langhooks-def.h (lhd_incomplete_type_error): New.
8183         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
8184         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
8185         * langhooks.c (lhd_incomplete_type_error): New.
8186         * langhooks.h (struct lang_hooks_for_types): New hook.
8187         * tree.c (size_in_bytes): Use new hook.
8188         * tree.h (incomplete_type_error): Remove.
8189 objc:
8190         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
8191
8192 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
8193
8194         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
8195         TARGET_FLOAT_FORMAT blocks.
8196
8197 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8198
8199         * doc/install.texi (Downloading the source): Do not mention Chill
8200         any longer, but mention Ada.
8201         (Configuration): Do not mention Chill any longer.
8202
8203 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
8204
8205         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
8206
8207 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
8208
8209         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
8210         in last patch.
8211
8212 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
8213
8214         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
8215         instead of unsigned_type.
8216
8217 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
8218
8219         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
8220         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
8221         later.
8222
8223 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
8224
8225         * attribs.c (vector_type_node_list): New static variable.
8226         (handle_vector_size_attribute): Use it to avoid generating a
8227         new type node each time we are called.
8228
8229         * combine.c (subst): Avoid trying to make a vector mode subreg of
8230         an integer constant.
8231         (gen_lowpart_for_combine): Likewise.
8232
8233 2002-04-18  Roger Sayle  <roger@eyesopen.com>
8234             Jakub Jelinek  <jakub@redhat.com>
8235
8236         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
8237         for integer constant c (if x has unsigned type or sign bit is not
8238         set in c).  This folds the zero/sign extension into the bit-wise and
8239         operation.
8240
8241 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
8242
8243         PR middle-end/6205
8244         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
8245         otherwise xorps.
8246
8247 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
8248
8249         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
8250
8251 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
8252
8253         * gcc.c (read_specs): Detect and fail if an attempt is made to
8254         rename a spec string to an already existing string.
8255
8256 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
8257
8258         * config/s390/s390.c (legitimize_pic_address): Do not generate
8259         illegal address constant without CONST.
8260
8261 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8262
8263         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
8264         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
8265
8266 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
8267
8268         PR optimization/6305
8269         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
8270         to make sure previous reloads are taken into account.  Generate
8271         better code if one operand is an in-range immediate constant.
8272
8273 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
8274
8275         * doc/install.texi (Building): libgcj requires GNU make.
8276
8277 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
8278
8279         PR bootstrap/6315
8280         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
8281         even if hard quad and register is not floating.
8282         (movtf reg<-mem split): Disallow splitting if hard quad and
8283         register is floating.
8284         (movtf mem<-reg split): Likewise.
8285         * config/sparc/sparc.c (fp_register_operand): New predicate.
8286         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
8287
8288 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
8289
8290         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
8291         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
8292         (unprotoize.o): Ditto.  Build from protoize.c.  Define
8293         UNPROTOIZE on command line.
8294         * protoize.c: Include cppdefault.h.  Delete include_defaults.
8295         (in_system_include_dir): Use cpp_include_defaults (defined in
8296         cppdefault.o).
8297         * unprotoize.c: Delete file.
8298
8299 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
8300
8301         * config/rs6000/altivec.h (vec_ld): Add array variants.
8302         (vec_lde): Same.
8303         (vec_ldl): Same.
8304
8305 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
8306             Aldy Hernandez <aldyh@redhat.com>
8307
8308         * config/rs6000/altivec.h: Define __ALTIVEC__.
8309         (bool): New.
8310         (__pixel): New.
8311         (pixel): New.
8312         (vec_cfux): New.
8313         (vec_vmaddfp): New.
8314         (vec_vsldoi): New.
8315         Add parentheses to all macro arguments.
8316
8317 2002-04-16  Richard Henderson  <rth@redhat.com>
8318
8319         PR c++/6320
8320         * except.c (remove_eh_handler): Insert inner regions at beginning
8321         of sibling chain.  Refactor expressions.
8322
8323 2002-04-16  Richard Henderson  <rth@redhat.com>
8324
8325         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
8326         * config/sparc/sol2-gas-bi.h: New file.
8327         * config.gcc (sparc*-solaris): Add it as needed.
8328         * configure.in (AS_SPARC64_FLAG): Remove check.
8329         * config.in, configure: Regenerate.
8330
8331         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
8332
8333 2002-04-16  Richard Henderson  <rth@redhat.com>
8334
8335         * config/mips/mips.c (override_options): Don't override N32 for
8336         a 64-bit ISA.
8337
8338         PR 6202
8339         * config/mips/mips.md (can_delay): Split out of existing define_delays.
8340         (HILO_delay): Set can_delay false.
8341
8342 2002-04-16  Dale Johannesen <dalej@apple.com>
8343
8344         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
8345         instruction addresses.
8346         (rs6000_output_function_epilogue): Likewise.
8347
8348 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
8349
8350         * c-parse.in (poplevel, compstmt_start,
8351         compstmt_primary_start): Add ending ';', in accordance
8352         with POSIX.
8353
8354 2002-04-16  Richard Henderson  <rth@redhat.com>
8355
8356         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
8357         Adjust tm_file order to get TARGET_DEFAULT set properly.
8358         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
8359         * doc/install.texi (sparc-solaris): Update.
8360
8361 2002-04-16  Dale Johannesen <dalej@apple.com>
8362
8363         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
8364         comparison operands do not match each other or if modes of
8365         conditions do not match result.
8366
8367 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
8368
8369         PR target/6305
8370         * config/s390/s390.md (mulsidi3): Set both subregs of the
8371         multiword register.
8372
8373 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
8374
8375         * config/rs6000/altivec.h (vec_addc): Type check.
8376
8377 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
8378
8379         PR middle-end/6279
8380         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
8381
8382         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
8383
8384 2002-04-15  Richard Henderson  <rth@redhat.com>
8385
8386         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
8387         call_really_used_regs too.
8388
8389 2002-04-15  Richard Henderson  <rth@redhat.com>
8390
8391         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
8392
8393 2002-04-15  David S. Miller  <davem@redhat.com>
8394
8395         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
8396         as being CLOBBERed.
8397
8398 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
8399
8400         PR c/6290
8401         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
8402         CONST_VECTOR is { 0, ... 0 }.
8403
8404 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
8405
8406         * doc/install.texi (Installing GCC: Configuration): Clarify
8407         the only supported ways to configure gcc.
8408
8409 2002-04-15  Roland McGrath  <roland@frob.com>
8410
8411         * config.gcc (alpha*-*-gnu*): New target configuration.
8412         * config/alpha/gnu.h: New file for it.
8413         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
8414
8415 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
8416
8417         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
8418         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
8419         * tree.h (expand_start_stmt_expr): Update prototype.
8420         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
8421         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
8422         on the STMT_EXPR created for the inline function.
8423
8424 2002-04-15  Richard Henderson  <rth@redhat.com>
8425
8426         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
8427         config/i386/linux-aout.h, config/i386/linux-oldld.h,
8428         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
8429         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
8430         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
8431         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
8432         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
8433         Define __gnu_linux__, not gnu_linux.
8434         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
8435
8436 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
8437
8438         Remove Chill front end.
8439         * gcc.c (default_compilers): Remove Chill entries.
8440         * ch: Remove directory.
8441         * doc/frontends.texi: Remove information about Chill.
8442         * doc/sourcebuild.texi: Likewise.
8443         * doc/standards.texi: Likewise.
8444
8445 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
8446
8447         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
8448         (LONGLONG_STANDALONE): Define.
8449
8450 2002-04-15  David S. Miller  <davem@redhat.com>
8451
8452         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
8453         Call emit_library_call with LCT_NORMAL.
8454         (sparc_initialize_trampoline): Use LCT_foo instead of
8455         magic constant in emit_library_call invocations.
8456         (sparc64_initialize_trampoline): Likewise.
8457         (sparc_profile_hook): Likewise.
8458         * config/sparc/sparc.md: Likewise.
8459
8460         * config/sparc/sparc.c (sparc_extra_constraint_check):
8461         Fix type of argument 'c'.
8462         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
8463         Likewise.
8464
8465 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
8466
8467         * diagnostic.h (output_buffer_state): Redefine.
8468         (output_format_decoder): New macro.
8469         (output_prefixing_rule): Likewise.
8470         (output_line_cutoff): Likewise.
8471         (diagnostic_format_decoder): Adjust.
8472         (diagnostic_prefixing_rule): Likewise.
8473         (diagnostic_line_cutoff): Likewise.
8474         (diagnostic_state): Likewise.
8475         (diagnostic_kind_count): Likewise.
8476         (diagnostic_buffer): Now a macro.
8477
8478         * diagnostic.c (diagnostic_buffer): Remove definition.
8479         (output_is_line_wrapping): Adjust.
8480         (set_real_maximum_length): Likewise.
8481         (output_set_maximum_length): Likewise.
8482         (init_output_buffer): Likewise.
8483         (lhd_print_error_function): Likewise.
8484         (output_do_verbatim): Likewise.
8485
8486 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
8487
8488         * cpperror.c (print_location): Don't print include chain
8489         if line == 0.
8490         (cpp_begin_message): Update to use DL_ macros.
8491         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
8492         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
8493         cpp_notice, cpp_notice_from_errno): Remove.
8494         (cpp_error, cpp_error_with_line): Update to take a diagnostic
8495         level.
8496         (cpp_errno): New.
8497         * cppexp.c (CPP_ICE): Remove.
8498         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
8499         lex, integer_overflow, _cpp_parse_expr): Update.
8500         * cppfiles.c (read_include_file, find_include_file,
8501         handle_missing_header, _cpp_read_file, remap_filename): Update.
8502         * cpphash.h (enum error_type): Remove.
8503         (_cpp_begin_message): Update.
8504         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
8505         cpp_handle_option, cpp_post_options): Update.
8506         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
8507         skip_whitespace, parse_identifier, parse_slow, parse_string,
8508         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
8509         cpp_interpret_charconst): Update.
8510         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
8511         lex_macro_node, do_undef, glue_header_name, parse_include,
8512         do_include_common, read_flag, do_line, do_linemarker, do_ident,
8513         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
8514         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
8515         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
8516         _cpp_pop_buffer, do_diagnostic): Update.
8517         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
8518         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
8519         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
8520         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
8521         cpp_notice, cpp_notice_from_errno): Remove.
8522         (cpp_error, cpp_error_with_line): Update to take a diagnostic
8523         level.
8524         (cpp_errno): New.
8525         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
8526         collect_args, enter_macro_context, save_parameter, parse_params,
8527         _cpp_create_definition, check_trad_stringification,
8528         cpp_macro_definition): Update.
8529         * cppmain.c (cpp_preprocess_file): Update.
8530         * fix-header.c (read_scan_file): Update.
8531
8532 2002-04-14  Andreas Schwab  <schwab@suse.de>
8533
8534         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
8535
8536 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
8537
8538         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
8539
8540 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
8541
8542         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
8543         not gnu_hurd.
8544
8545 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
8546
8547         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
8548
8549 2002-04-13      Joel Sherrill <joel@OARcorp.com>
8550
8551         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
8552         sparc-elf and sparc-rtems targets.
8553
8554 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
8555
8556         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
8557         defined, and __gnu_hurd__ wherever __GNU__ is defined.
8558         * arm/linux-elf.h: Likewise.
8559         * cris/aout.h: Likewise.
8560         * cris/linux.h: Likewise.
8561         * i370/linux.h: Likewise.
8562         * i386/gnu.h: Likewise.
8563         * i386/linux-aout.h: Likewise.
8564         * i386/linux-oldld.h: Likewise.
8565         * i386/linux.h: Likewise.
8566         * i386/linux64.h: Likewise.
8567         * ia64/linux.h: Likewise.
8568         * m68k/linux-aout.h: Likewise.
8569         * m68k/linux.h: Likewise.
8570         * mips/linux.h: Likewise.
8571         * pa/pa-linux.h: Likewise.
8572         * pj/linux.h: Likewise.
8573         * rs6000/sysv4.h: Likewise.
8574         * s390/linux.h: Likewise.
8575         * sh/linux.h: Likewise.
8576         * sparc/linux-aout.h: Likewise.
8577         * sparc/linux.h: Likewise.
8578         * sparc/linux64.h: Likewise.
8579         * xtensa/linux.h: Likewise.
8580
8581 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
8582
8583         * stmt.c (check_unique_operand_names): Expect operand names to
8584         be strings rather than identifiers.  Use simple_cst_equal to
8585         compare them.
8586         (resolve_operand_name_1): Make same identifier to string change here.
8587         * c-parse.in (asm_operand): Convert a named operand into a string.
8588         * cp/parse.y (asm_operand): Likewise.
8589
8590 2002-04-13  Andreas Schwab  <schwab@suse.de>
8591
8592         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
8593
8594 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
8595
8596         Revert these changes:
8597
8598         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
8599
8600         PR c++/5571
8601         * stor-layout.c (layout_decl): Reset the RTL for the decl.
8602
8603 2002-04-12  Richard Henderson  <rth@redhat.com>
8604
8605         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
8606         (sparc*-*-solaris): Clean up header files.
8607         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
8608         and plan on generating 64-bit code.
8609         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
8610         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
8611         * config/sparc/sol2-sld-64.h: Rename ...
8612         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
8613         for AS_SPARC64_FLAG not defined.
8614         * config/sparc/sol2-gld-bi.h: New.
8615         * config/sparc/sol2-sld.h: Remove.
8616         * config/sparc/sol26-sld.h: New.
8617         * config/sparc/sol2.h: Tidy comments.
8618         * doc/install.texi: Document sparc-solaris configury changes.
8619
8620 2002-04-12  Richard Henderson  <rth@redhat.com>
8621
8622         * recog.c (offsettable_address_p): Match the logic in adjust_address.
8623
8624         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
8625         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
8626
8627 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8628
8629         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
8630
8631 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
8632
8633         * pa.c (pa_can_combine_p): Call extract_insn before calling
8634         constrain_operands.
8635
8636 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
8637
8638         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
8639         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
8640         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
8641         (CPP_PREDEFINES): Handle __declspec.
8642         * config/i386/t-interix (USER_H): Remove.
8643
8644 2002-04-12  DJ Delorie  <dj@redhat.com>
8645
8646         * integrate.c (compare_blocks): Make comparisons safe for when
8647         sizeof(int) < sizeof(char *).
8648         (find_block): Likewise.
8649
8650 2002-04-12  Jan Hubicka  <jh@suse.cz>
8651             David Edelsohn  <edelsohn@gnu.org>
8652
8653         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
8654         registers.
8655         (symbol_ref_operand): New.
8656         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
8657         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
8658
8659 2002-04-12  Andreas Schwab  <schwab@suse.de>
8660
8661         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
8662         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
8663         overrides the definition in config/svr4.h.
8664
8665 2002-04-12      Eric Norum <eric.norum@usask.ca>
8666
8667         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
8668         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
8669         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
8670         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
8671         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
8672         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
8673         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
8674         definitions to config/rtems.h and make the targets more similar.
8675
8676 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8677
8678         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
8679         POINTERS_EXTEND_UNSIGNED.
8680         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
8681         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
8682
8683         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
8684         not specified.
8685
8686 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
8687
8688         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
8689         depends on TARGET_SHMEDIA, not TARGET_SH5.
8690
8691 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
8692
8693         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
8694         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
8695
8696 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
8697
8698         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
8699         no r0 clobber.
8700
8701 2002-04-12  Andreas Schwab  <schwab@suse.de>
8702
8703         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
8704
8705 2002-04-12  Richard Henderson  <rth@redhat.com>
8706
8707         PR bootstrap/4191
8708         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
8709
8710         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
8711         modes spanning multiple hard regs.
8712
8713         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
8714
8715 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8716
8717         * pa.c (pa_output_function_prologue): Don't accumulate the total
8718         number of code bytes when using TARGET_64BIT, or gas, SOM and not
8719         the portable runtime.
8720         (output_deferred_plabels): Handle 64bit plabels.
8721         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
8722         generating pic code using the GAS assembler for object formats that
8723         are not SOM (ie., ELF32 and ELF64).
8724         (output_millicode_call): Check attribute type if attribute length is 28.
8725         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
8726         dbr_sequence_length once.
8727         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
8728         dbr_sequence_length once.
8729         * pa.h (TARGET_SOM): Define if not defined.
8730         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
8731         with GAS and not SOM.
8732         (jump, call_internal_reg, call_value_internal_reg): Likewise.
8733         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
8734
8735 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
8736
8737         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
8738         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
8739         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
8740         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
8741         elfos.h and dbxelf.h values are fine now.
8742         * config/i386/freebsd.h, config/alpha/freebsd.h
8743         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
8744
8745 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
8746
8747         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
8748         or set Acpu or Amachine.  Reformat.
8749         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
8750         define.
8751         (LINK_SPEC): Do not need to undef.
8752         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
8753         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
8754         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
8755         define.
8756         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
8757         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
8758         (LINK_SPEC): Do not need to undef.
8759         (DONT_USE_BUILTIN_SETJMP): Do not define.
8760         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
8761         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
8762         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
8763         Remove trailing spaces.
8764         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
8765         __ELF__, or set Acpu or Amachine.  Reformat.
8766         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
8767         define.
8768
8769 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
8770
8771         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
8772         all other *-*-freebsd* targets.
8773
8774 2002-04-11  Richard Henderson  <rth@redhat.com>
8775
8776         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
8777
8778 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
8779
8780         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
8781         Include {cpu}/{cpu}.h thru tm_file.
8782         (alpha*-*-linux*ecoff): Remove target.
8783         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
8784         (LINK_SPEC): Remove, is not OS independent.
8785         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
8786         (LINK_SPEC): Do not need to #undef any longer.
8787         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
8788         any longer.
8789         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
8790         __ELF__.
8791         (LINK_SPEC): Moved here from alpha/elf.h.
8792         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
8793         SUB_CPP_PREDEFINES.
8794         * config/alpha/linux-ecoff.h: Remove.
8795         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
8796         (CPP_SPEC): Define _POSIX_SOURCE as needed.
8797         (CPP_SUBTARGET_SPEC): Do not define.
8798         (LINK_SPEC): Do not need to #undef any longer.
8799         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
8800         * config/alpha/vms.h: Likewise.
8801
8802 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
8803
8804         * doc/extend.texi: Remove old claim that typedefs cannot have
8805         an alignment attribute.
8806
8807 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
8808
8809         PR optimization/6177
8810         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
8811         bitpos is 0 and bitsize CONCAT size.
8812
8813 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
8814
8815         PR c/6223
8816         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
8817
8818 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
8819
8820         * config/alpha/freebsd.h: Minor reformatting.
8821         (CPP_SPEC): Define ELF and add cpp_subtarget.
8822         (ASM_SPEC): No longer needed.
8823
8824 2002-04-11  Richard Henderson  <rth@redhat.com>
8825
8826         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
8827         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
8828         (dimode mem/zero splitter): New.
8829
8830 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
8831
8832         * config/cris/cris.c (cris_override_options): Tweak error message
8833         for PIC not implemented.
8834
8835         * config/cris/cris.h: Tweak comments related to parameter-passing.
8836
8837         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
8838
8839 2002-04-10  Richard Henderson  <rth@redhat.com>
8840
8841         * except.c (add_ehl_entry): Allow duplicates after landing pad
8842         creation.
8843
8844 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
8845
8846         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
8847
8848 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
8849
8850         * c-decl.c (c_init_decl_processing): Move generation of
8851         decls for g77_integer_type_node and friends from here ...
8852         * c-common.c (c_common_nodes_and_builtins): ... to here.
8853
8854 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
8855
8856         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
8857         is only used as frame pointer when frame_pointer_needed is true.
8858
8859 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
8860
8861         PR target/817
8862         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
8863         for the fact that the pool entry uses two words.
8864         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
8865         1k bytes.
8866         (movdf_soft_insn): Similarly.
8867         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
8868         for the fact that the pool entry uses three words.
8869
8870 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
8871
8872         * config/mips/mips.c (mips_va_arg): When using the struct version
8873         of the EABI va_list, allow arguments in the register save area to
8874         take up less room than a stack argument.
8875
8876 2002-04-10  Richard Henderson  <rth@redhat.com>
8877
8878         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
8879         if EXPAND_INITIALIZER.
8880
8881 2002-04-09  Richard Henderson  <rth@redhat.com>
8882
8883         * config/alpha/alpha.md (movdi_er_maybe_g): New.
8884         * config/alpha/alpha.c (alpha_expand_mov): Use it.
8885
8886 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
8887
8888         PR optimization/6233
8889         * rtlanal.c (pure_call_p): New function.
8890         * rtl.h (pure_call_p): Declare.
8891         * loop.c (prescan_loop): Use it to set has_nonconst_call.
8892         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
8893
8894 2002-04-09  Eric Christopher  <echristo@redhat.com>
8895
8896         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
8897         information to .comm directive.
8898
8899 2002-04-09  Richard Henderson  <rth@redhat.com>
8900
8901         PR c/5078
8902         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
8903
8904 2002-04-09  Richard Henderson  <rth@redhat.com>
8905
8906         * basic-block.h (flow_delete_block_noexpunge): Declare.
8907         (expunge_block_nocompact): Declare.
8908         * cfg.c (expunge_block_nocompact): Split out from ...
8909         (expunge_block): ... here.
8910         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
8911         (flow_delete_block_noexpunge): Split out from ...
8912         (flow_delete_block): ... here.
8913         * cfgcleanup.c (delete_unreachable_blocks): Compact while
8914         removing dead blocks.
8915         * except.c (exception_handler_labels): Remove.
8916         (exception_handler_label_map): New.
8917         (struct eh_region): Add aka member.
8918         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
8919         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
8920         (for_each_eh_label, for_each_eh_label_1): New.
8921         (init_eh): Register exception_handler_label_map.
8922         (free_eh_status): Use free_region.
8923         (find_exception_handler_labels): Use the map, not the list.
8924         (remove_exception_handler_label): Likewise.
8925         (maybe_remove_eh_handler): Likewise.
8926         (remove_eh_handler): Use the region aka bitmap.
8927         * except.h (exception_handler_labels): Remove.
8928         (for_each_eh_label): Declare.
8929         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
8930         * loop.c (invalidate_loops_containing_label): New.
8931         (find_and_verify_loops): Use it.  Use for_each_eh_label.
8932         * sched-rgn.c (is_cfg_nonregular): Use
8933         current_function_has_exception_handlers.
8934
8935 2002-04-09  Richard Henderson  <rth@redhat.com>
8936
8937         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
8938         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
8939         Do not return changed status.
8940         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
8941         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
8942         New functions that do return changed status.
8943         * sbitmap.h: Update decls.
8944         * gcse.c, lcm.c: Use _cg functions as needed.
8945
8946 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
8947
8948         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
8949         (sh64-*-elf*, sh-*-rtemself*): Likewise.
8950         * config/sh/embed_bb.c: New file.
8951         * config/sh/embed-elf.h: New file.
8952         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
8953         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
8954         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
8955         __PTRDIFF_TYPE__ .
8956         (SUBTARGET_CPP_PTR_SPEC): Don't define.
8957         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
8958         Add subtarget_asm_endian_spec.
8959         (ASM_SPEC): Use subtarget_asm_endian_spec.
8960         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
8961         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
8962         (WCHAR_UNSIGNED): Define.
8963         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
8964         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
8965         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
8966         Fix value.
8967         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
8968         (sh_adjust_cost): Likewise.
8969         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
8970         __PTRDIFF_TYPE__ .
8971         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
8972         (WCHAR_TYPE_SIZE): Likewise.
8973         (ASM_SPEC): Use subtarget_asm_endian_spec.
8974         (SH_ELF_WCHAR_TYPE): #undef/ #define.
8975         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
8976         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
8977         (MAX_WCHAR_TYPE_SIZE): Don't #define .
8978         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
8979         (USER_LABEL_PREFIX): Don't #undef /#define .
8980         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
8981         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
8982         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
8983         (ASM_SPEC): Likewise.
8984         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
8985         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
8986         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
8987         (LIB2FUNCS_EXTRA): Define.
8988         * t-sh64 (LIB2FUNCS_EXTRA): Define.
8989         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
8990         (LIB1ASMFUNCS_CACHE): Define.
8991         (LIB2FUNCS_EXTRA): Redefine empty.
8992
8993 2002-04-08  Richard Henderson  <rth@redhat.com>
8994
8995         * reorg.c (get_branch_condition): Use reversed_comparison_code.
8996
8997 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8998
8999         * config/m68hc11/larith.asm (__map_data_section): Fix condition
9000         and optimize for size.
9001         (__do_global_ctors): Fix pointer comparison.
9002         (__do_global_dtors): Likewise.
9003
9004 2002-04-09  David S. Miller  <davem@redhat.com>
9005
9006         * config/sparc/sparc.c (sparc_extra_constraint_check): New
9007         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
9008         allow reloading pseudos.
9009         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
9010         * config/sparc/sparc-protos.h: Declare it.
9011
9012         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
9013         unsigned comparison warning.
9014         (output_restore_regs): Mark leaf_function as unused.
9015
9016 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9017
9018         * expr.c (is_aligning_offset): New function.
9019         (expand_expr, case COMPONENT_EXPR): Call it.
9020
9021 2002-04-08  David S. Miller  <davem@redhat.com>
9022
9023         PR target/6082
9024         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
9025
9026         Make init_priority work on Sparc when using GNU ld.
9027         * config/sparc/linux.h, config/sparc/linux64.h,
9028         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
9029         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
9030         * config/sparc/sol2-gld.h: New file to do the same.
9031         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
9032         sparc/sol2-gld.h to tm_file.
9033
9034         PR optimization/4328
9035         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
9036         * doc/md.texi: Document it.
9037         * config/sparc/sparc.md (movdi_insn_sp64_novis,
9038         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
9039         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
9040         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
9041         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
9042
9043 2002-04-08  Andreas Jaeger  <aj@suse.de>
9044
9045         * stmt.c (expand_asm_operands): Revert last patch from Richard
9046         Henderson.
9047
9048 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9049
9050         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
9051         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
9052
9053 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9054
9055         * doc/contrib.texi (Contributors): Add David O'Brien.
9056
9057 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
9058
9059         * configure.in (auto-build.h): Use target_alias and build_alias
9060         when running configure.
9061         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
9062         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
9063         * configure: Regenerate.
9064
9065 2002-04-07  David S. Miller  <davem@redhat.com>
9066
9067         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
9068
9069 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9070
9071         PR 5933
9072         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
9073         generating 32-bit pic code.
9074
9075 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
9076
9077         * cppinit.c (cpp_create_reader): Initialize
9078         discard_comments_in_macro_exp.
9079         (COMMAND_LINE_OPTIONS): Add "-CC" option.
9080         (cpp_handle_option): Handle "-CC" option.
9081         * cpplex.c (save_comment): If saving a C++ comment in
9082         a directive, convert it to a C comment.
9083         (_cpp_lex_direct): Pass second comment start character to
9084         save_comment to indicate comment type.
9085         * cpplib.c (_cpp_handle_directive): If processing
9086         a "#define" directive and discard_comments_in_macro_exp
9087         is false,  re-enable saving of comments.
9088         (lex_macro_node): If discard_comments_in_macro_exp is false,
9089         discard any comments before the macro identifier.
9090         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
9091         member.
9092         * cppmacro.c (cpp_get_token): If expanding a macro while
9093         processing a directive, discard any comments we might encounter.
9094         (parse_params): If discard_comments_in_macro_exp is false,
9095         ignore comments in the macro parameter list.
9096         * gcc.c (cpp_unique_options): Add "-CC" option.
9097         (option_map): Map "--comments-in-macros" to "-CC".
9098         * doc/cppopts.texi: Document "-CC" option.
9099         * f/lang-specs.h: Add "-CC" option.
9100         * testsuite/gcc.dg/cpp/maccom1.c: New test.
9101         * testsuite/gcc.dg/cpp/maccom2.c: New test.
9102         * testsuite/gcc.dg/cpp/maccom3.c: New test.
9103         * testsuite/gcc.dg/cpp/maccom4.c: New test.
9104         * testsuite/gcc.dg/cpp/maccom5.c: New test.
9105         * testsuite/gcc.dg/cpp/maccom6.c: New test.
9106
9107 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9108
9109         PR middle-end/6180
9110         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
9111
9112 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
9113
9114         PR c++/5571
9115         * stor-layout.c (layout_decl): Reset the RTL for the decl.
9116
9117         PR opt/5120
9118         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
9119         RTX_UNCHANGING_P for the functions arguments when a tail call
9120         is made.
9121
9122 2002-04-06  Jason Merrill  <jason@redhat.com>
9123
9124         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
9125         (parse_options_and_default_flags): Set them appropriately.
9126         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
9127
9128 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
9129
9130         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
9131         here.
9132
9133         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
9134         semicolon.
9135
9136         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
9137         types come in by-reference.  Fix typo in comment.
9138
9139 2002-04-05  David S. Miller  <davem@redhat.com>
9140
9141         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
9142         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
9143         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
9144         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
9145
9146 2002-04-05  David S. Miller  <davem@redhat.com>
9147
9148         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
9149         are not going to emit return instructions, emit at least a nop
9150         for the sake of sane backtraces.
9151
9152 2002-04-05  Richard Henderson  <rth@redhat.com>
9153
9154         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
9155
9156 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
9157
9158         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
9159
9160 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
9161
9162         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
9163         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
9164         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
9165
9166 2002-04-05  Andreas Schwab  <schwab@suse.de>
9167
9168         * c-convert.c: Include c-common.h.
9169         * Makefile.in (c-convert.o): Updated.
9170
9171 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
9172
9173         * mklibgcc.in: Use separate libgcc.map for each multilib.
9174         * Makefile.in (distclean): Don't remove libgcc.map here.
9175
9176 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
9177
9178         * Makefile.in (s-mlib): Handle --disable-multilib by separate
9179         genmultilib invocation.
9180
9181 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
9182
9183         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
9184         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
9185         to num_gprs for symmetry.
9186         * config/mips/mips.c: Adjust accordingly.
9187
9188 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
9189
9190         * c-common.c (truthvalue_conversion): Rename, update.
9191         * c-common.h (c_common_truthvalue_conversion): New.
9192         * c-convert.c (convert): Update.
9193         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
9194         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
9195         * c-typeck.c (build_binary_op, build_unary_op,
9196         build_conditional_expr): Update.
9197         * fold-const.c (constant_boolean_node, fold): Use langhook.
9198         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
9199         * langhooks.h (struct lang_hooks): New hook.
9200         * stmt.c (expand_decl_cleanup): Use langhook.
9201         * tree.h (truthvalue_conversion): Remove.
9202 objc:
9203         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
9204
9205 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
9206
9207         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
9208         Add rules to make null object file.
9209
9210 2002-04-04  Jim Blandy  <jimb@redhat.com>
9211
9212         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
9213         macro formal parameter names.
9214
9215 2002-04-04  David S. Miller  <davem@redhat.com>
9216
9217         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
9218
9219 2002-04-04  Richard Henderson  <rth@redhat.com>
9220
9221         PR middle-end/5099
9222         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
9223         Support copies into and out of memory.  Don't accept allows_reg
9224         and allows_mem as gospel.
9225
9226 2002-04-04  Richard Henderson  <rth@redhat.com>
9227
9228         PR opt/6165
9229         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
9230         (write_dependence_p): Likewise.
9231
9232 2002-04-04  Richard Henderson  <rth@redhat.com>
9233
9234         * predict.c (estimate_bb_frequencies): Do frequency calculation
9235         with a volatile temporary.
9236
9237 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
9238
9239         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
9240
9241 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9242
9243         PR c++/6119
9244         * final.c (final_start_function): Don't bump profile_label_no here...
9245         (final_end_function): ...but here.
9246
9247 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9248
9249         * config/sparc/sparc.md (pic): New attribute.
9250         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
9251         into stack slots.
9252         (split after do_builtin_setjmp_setup): New.
9253
9254 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9255
9256         PR fortran/6106
9257         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
9258         change.
9259
9260 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
9261
9262         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
9263         UNITS_PER_WORD for zero sized aggregates.
9264
9265 2002-04-03  David S. Miller  <davem@redhat.com>
9266
9267         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
9268         one-character spec for this, just use %(link_gcc_c_sequence).
9269
9270 2002-04-03  David S. Miller  <davem@redhat.com>
9271
9272         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
9273         handling.
9274
9275 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9276
9277         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
9278         (DWARF_FRAME_RETURN_COLUMN): Move.
9279         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9280         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
9281         * pa.c (except.h, predict.h): Include.
9282         (FRP): Delete.
9283         (store_reg_modify, set_reg_plus_d): Revise prototypes.
9284         (output_ascii): Add cast.
9285         (store_reg_modify): Revise to add frame notes.
9286         (set_reg_plus_d): Likewise.
9287         (compute_frame_size): Include space for eh data registers in frame if
9288         the current function calls eh_return.
9289         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
9290         function calls eh_return.  Save eh data registers if the current
9291         function calls eh_return.  Fix code to add frame notes.  Emit
9292         blockage to prevent insns with frame notes being scheduled in the
9293         delay slot of calls.
9294         (hppa_expand_epilogue): Restore eh data registers and do final stack
9295         adjustment if the current function calls eh_return.  Don't add frame
9296         notes.
9297         (output_call): Revise for change in length of call insn.  Don't do
9298         return pointer adjustment for an unconditional jump in the delay slot
9299         of a call when using frame notes.
9300         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
9301         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
9302         (ARG_POINTER_CFA_OFFSET): Define.
9303         * pa.md (return_external_pic): New pattern.
9304         (prologue): Correct formatting.  Use return_external_pic if current
9305         function calls eh_return.
9306         (call_internal_symref, call_value_internal_symref,
9307         sibcall_internal_symref, sibcall_value_internal_symref): Change default
9308         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
9309         respectively.
9310         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
9311
9312         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
9313         list of targets to check using "nop" insn.
9314         * configure: Rebuilt.
9315
9316 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
9317
9318         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
9319
9320 2002-04-03  David S. Miller  <davem@redhat.com>
9321
9322         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
9323         library sequence passed to the linker.
9324         (LINK_COMMAND_SPEC): Use it.
9325         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
9326         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
9327         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
9328
9329 2002-04-03  Jason Merrill  <jason@redhat.com>
9330
9331         * except.c (struct eh_status): Remove protect_list.
9332         (begin_protect_partials, end_protect_partials): Remove.
9333         (add_partial_entry): Remove.
9334         * except.h: Remove prototypes.
9335
9336         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
9337         expand_decl_cleanup_eh.
9338
9339         PR c++/5636
9340         * tree.h (CLEANUP_EH_ONLY): New macro.
9341         * stmt.c (expand_decl_cleanup_eh): New fn.
9342         (expand_cleanups): Check CLEANUP_EH_ONLY.
9343         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
9344         Use expand_decl_cleanup_eh.
9345         (expand_stmt): Adjust.
9346         * c-common.h: Adjust prototype.
9347
9348 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
9349
9350         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
9351         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
9352         (cris_target_asm_function_epilogue): Ditto.
9353         (cris_initial_frame_pointer_offset): Ditto.
9354         (cris_simple_epilogue): Ditto.
9355         (cris_expand_builtin_va_arg): Variable-size types come in
9356         by-reference.
9357
9358 2002-04-03  David S. Miller  <davem@redhat.com>
9359
9360         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
9361         little-endian.
9362         (set_fast_math): Correct 'fsr' type.
9363
9364 2002-04-03  Richard Henderson  <rth@redhat.com>
9365
9366         PR opt/3569
9367         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
9368         * toplev.c (check_global_declarations): Use it.
9369         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
9370         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
9371         (LANG_HOOKS_DECLS): Add it.
9372         * langhooks.c (lhd_warn_unused_global_decl): New.
9373         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
9374         * c-objc-common.c (c_warn_unused_global_decl): New.
9375         * c-tree.h (c_warn_unused_global_decl): Declare.
9376         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
9377
9378 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
9379
9380         * langhooks-def.h (lhd_set_decl_assembler_name,
9381         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
9382         (LANG_HOOKS_INITIALIZER): Update.
9383         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
9384         * langhooks.h (struct lang_hooks): New hook.
9385         * tree.c (set_decl_assembler_name): Move to langhooks.c.
9386         (lang_set_decl_assembler_name): Remove.
9387         (init_obstacks): Don't set hook.
9388         (decl_assembler_name): New function.
9389         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
9390         (decl_assembler_name): New.
9391         (lang_set_decl_assembler_name): Remove.
9392
9393 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
9394
9395         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
9396         works properly with .hidden symbols.
9397         * configure: Rebuilt.
9398         * config.in: Rebuilt.
9399         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
9400         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
9401         properly with .hidden symbols.
9402
9403 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
9404
9405         PR middle-end/6102
9406         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
9407         USE argument.
9408
9409 2002-04-03  Richard Henderson  <rth@redhat.com>
9410
9411         PR opt/4120
9412         * sched-rgn.c (sets_likely_spilled): New.
9413         (sets_likely_spilled_1): New.
9414         (add_branch_dependences): Use it.
9415
9416 2002-04-02  Richard Henderson  <rth@redhat.com>
9417
9418         PR opt/4311
9419         * loop.h (LOOP_FIRST_PASS): New.
9420         * loop.c (strength_reduce): Mind it when deciding to unroll.
9421         * toplev.c (rest_of_compilation): Set it.
9422
9423 2002-04-02  David S. Miller  <davem@redhat.com>
9424
9425         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
9426         mems_ok_for_ldd_peep when the order of the loads being examined
9427         is reversed.
9428         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
9429         existing comment to increase comprehension of this situation.
9430
9431 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
9432
9433         * config/sh/sh.md: Don't use union real_extract.
9434
9435 2002-04-02  Richard Henderson  <rth@redhat.com>
9436
9437         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
9438
9439 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
9440
9441         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
9442         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
9443         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
9444         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
9445         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
9446         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
9447         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
9448         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
9449         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
9450         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
9451         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
9452         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
9453         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
9454         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
9455         Include as many configury headers via tm_file as possible.  This
9456         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
9457         * config/openbsd-oldgas.h: New file.
9458         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
9459         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
9460         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
9461         config/i386/i386-coff.h, config/i386/i386-interix.h,
9462         config/i386/iscdbx.h, config/i386/linux-aout.h,
9463         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
9464         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
9465         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
9466         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
9467         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
9468         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
9469         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
9470         config/i386/vxi386.h: Do not directly include configury headers.
9471         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
9472         Directly include configury headers that are no longer automatically
9473         included by the above headers.
9474         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
9475         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
9476         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
9477         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
9478         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
9479         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
9480         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
9481         (TARGET_VERSION): Define.
9482         * config/i386/beos-elf.h, config/i386/freebsd.h,
9483         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
9484         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
9485         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
9486         config/i386/sco5.h, config/i386/sysv4.h
9487         (TARGET_VERSION): Do not need to protect.
9488         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
9489         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
9490         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
9491         config/i386/i386-interix.h, config/i386/linux-aout.h,
9492         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
9493         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
9494         (YES_UNDERSCORES): Do not define - not needed.
9495         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
9496         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
9497         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
9498         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
9499         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
9500         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
9501         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
9502         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
9503
9504 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
9505             Richard Henderson  <rth@redhat.com>
9506
9507         PR c/5484
9508         * function.c (assign_temp): Accept either type or decl argument.
9509         Detect variables whose size is too large to fit into an integer.
9510         * stmt.c (expand_decl): Pass the decl, not the type.
9511
9512 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
9513
9514         * protoize.c: Match include directory usage with cppdefault.c.
9515
9516 2002-04-03  Jeffrey A Law  (law@redhat.com)
9517             Hans-Peter Nilsson  <hp@bitrange.com>
9518
9519         * combine.c (simplify_comparison): Avoid narrowing a comparison
9520         with a paradoxical subreg when doing so would drop signficant bits.
9521
9522 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
9523
9524         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
9525         if POINTERS_EXTEND_UNSIGNED is defined.
9526
9527 2002-04-02  Richard Henderson  <rth@redhat.com>
9528
9529         PR opt/3967
9530         * local-alloc.c (contains_replace_regs): LO_SUM may contain
9531         replace regs.
9532
9533 2002-04-02  Richard Henderson  <rth@redhat.com>
9534
9535         * doc/standards.texi: Document required freestanding libc entry points.
9536
9537 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
9538
9539         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
9540         associated splitter.  Remove MQ constraint.
9541         (ctrdi_internal4): Correct CCmode clobber.
9542
9543 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9544
9545         * milli64.S ($$dyncall): New function.
9546         * t-linux (LIB1ASMFUNCS): Revise module list.
9547         (LIB1ASMSRC): Use pa/milli64.S.
9548
9549 2002-04-02  Richard Henderson  <rth@redhat.com>
9550
9551         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
9552         rename solaris_sys_varargs_h.
9553
9554 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9555
9556         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
9557         the same mode as its component.
9558
9559 2002-04-02  Richard Henderson  <rth@redhat.com>
9560
9561         PR opt/190
9562         * final.c (this_is_asm_operands): Export.
9563         * output.h (this_is_asm_operands): Declare.
9564         * config/i386/i386.c (print_operand): Error odd asm operands.
9565
9566 2002-04-02  Richard Henderson  <rth@redhat.com>
9567
9568         PR opt/420
9569         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
9570
9571 2002-04-01  Richard Henderson  <rth@redhat.com>
9572
9573         PR target/1538
9574         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
9575         * fixinc/fixincl.x: Rebuild.
9576
9577 2002-04-01  Richard Henderson  <rth@redhat.com>
9578
9579         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
9580         (atomic_alloc, atomic_free): New.
9581         (SIZE, MASK_FOR, PTR_IN): New.
9582         (emergency_reg_state, emergency_reg_state_free): New.
9583         (emergency_labeled_state, emergency_labeled_state_free): New.
9584         (reg_state_alloced, labeled_state_alloced): New.
9585         (alloc_reg_state, free_reg_state): New.
9586         (alloc_label_state, free_label_state, free_label_states): New.
9587         (push, pop, dup_state_stack, free_state_stack): Use them.
9588         (desc_label_state): Likewise.
9589         (uw_frame_state_for): Free label states and state stack.
9590         (uw_update_reg_address): Eliminate warnings.
9591
9592 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
9593
9594         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
9595         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
9596
9597 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
9598
9599         * c-decl.c (grokdeclarator): Update.
9600         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
9601         * c-tree.h (c_mark_addressable): New.
9602         * c-typeck.c (default_function_array_conversion, build_unary_op,
9603         build_array_ref, convert_for_assignment): Update.
9604         (mark_addressable): Rename.
9605         * calls.c (try_to_integrate, expand_call): Use langhook.
9606         * expr.c (expand_expr): Use langhook.
9607         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
9608         * langhooks.h (struct lang_hooks): New hook.
9609         * stmt.c (expand_asm_operands): Use langhook.
9610         * tree.h (mark_addressable): Remove.
9611 objc:
9612         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
9613
9614 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
9615
9616         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
9617         in previous change.
9618
9619 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
9620
9621         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
9622         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
9623
9624 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
9625
9626         * c-common.c (unsigned_conversion_warning, convert_and_check,
9627         unsigned_type, signed_type, shorten_compare,
9628         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
9629         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
9630         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
9631         New.
9632         * c-decl.c (grokdeclarator): Update.
9633         * c-format.c (check_format_types): Update.
9634         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
9635         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
9636         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
9637         * convert.c (convert_to_integer): Use new hooks.
9638         * expmed.c (make_tree): Use new hooks.
9639         * expr.c (store_expr): Use new hooks.
9640         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
9641         all_ones_mask_p, unextend, fold): Use new hooks.
9642         * langhooks.h (struct lang_hooks_for_types): New hooks.
9643         * tree.h (signed_or_unsigned_type, signed_type,
9644         unsigned_type): Remove.
9645 objc:
9646         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
9647         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
9648
9649 2002-03-31  Richard Henderson  <rth@redhat.com>
9650
9651         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
9652         (desc_frgr_mem): Fix reference to f16-f31.
9653
9654 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9655
9656         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
9657         RTVEC_ELT): Const-ify.
9658         * varray.h (VARRAY_CHECK): Const-ify.
9659         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
9660         ggc_mark_rtvec, ggc_mark): Const-ify.
9661
9662 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
9663
9664         * diagnostic.c: Include langhooks-def.h.
9665         * Makefile.in (diagnostic.o): Update.
9666
9667 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
9668
9669         * c-common.c (c_unsafe_for_reeval): Rename.
9670         * c-common.h (c_unsafe_for_reeval): Rename.
9671         * c-decl.c (finish_incomplete_decl): Rename.
9672         (c_init_decl_processing): Don't set langhook.
9673         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
9674         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
9675         * c-objc-common.c (c_objc_common_init): Don't set langhook.
9676         * c-tree.h (finish_incomplete_decl): Rename.
9677         * langhooks-def.h (lhd_unsafe_for_reeval): New.
9678         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
9679         (LANG_HOOKS_INITIALIZER): Update.
9680         * langhooks.c (lhd_unsafe_For_reeval): New.
9681         * langhooks.h (struct langhooks): New hooks.
9682         * toplev.c (incomplete_decl_finalize_hook): Remove.
9683         (wrapup_global_declarations): Update.
9684         * tree.c (lang_unsafe_for_reeval): Remove.
9685         (unsafe_for_reeval): Update.
9686         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
9687         Remove.
9688 objc:
9689         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
9690         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
9691
9692 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
9693
9694         * diagnostic.c (print_error_function): Remove.
9695         (default_print_error_function): Rename.
9696         (report_error_function): Update.
9697         * diagnostic.h (print_error_function): Remove.
9698         (default_print_error_function): Remove.
9699         * langhooks-def.h (struct diagnostic_context): Predeclare.
9700         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
9701         (LANG_HOOKS_INITIALIZER): Update.
9702         * langhooks.h (struct diagnostic context): Predeclare.
9703         (struct lang_hooks): New hook.
9704
9705 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9706
9707         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
9708         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
9709         !flag_pic.
9710         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
9711         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
9712         of PIC_OFFSET_TABLE_REGNUM thruout.
9713         * config/rs6000/rs6000.md: Likewise.
9714         * config/rs6000/darwin.h: Likewise.
9715
9716 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9717
9718         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
9719         unsigned HOST_WIDE_INT, not unsigned int.
9720
9721 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
9722
9723         PR middle-end/6096, middle-end/6098, middle-end/6099
9724         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
9725         CODE_LABELs.
9726         (fill_slots_from_thread): Likewise.
9727
9728 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
9729
9730         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
9731         floating fields in float regs.
9732         (function_arg_record_value_2): Likewise.
9733
9734 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
9735
9736         * config/mmix/mmix.md (define_constants): Remove misleading
9737         FIXME.  Add MMIX_fp_rO_OFFSET.
9738         ("nonlocal_goto_receiver"): Don't have stack-frame address of
9739         saved rO as part of the pattern.  Remove FIXME.
9740         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
9741         here, at output-time.
9742
9743 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
9744
9745         PR middle-end/6100
9746         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
9747         REG_BR_PRED.
9748         (output_v9branch): Likewise.
9749
9750 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
9751
9752         * gcc.c: Revert previous patch for now.
9753         * config/i386/djgpp.h: Likewise.
9754
9755 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
9756
9757         * config/mmix/crti.asm (_init): Register _fini with atexit.
9758         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
9759
9760 2002-03-31  Richard Henderson  <rth@redhat.com>
9761
9762         PR target/3997
9763         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
9764         (ASM_OUTPUT_DEF_FROM_DECLS): New.
9765
9766 2002-03-31  Richard Henderson  <rth@redhat.com>
9767
9768         * libgcc2.c (__bb_exit_func): Make static.
9769
9770         * config/alpha/alpha.md (trap): New.
9771
9772 2002-03-31  Richard Henderson  <rth@redhat.com>
9773
9774         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
9775         promoted argument types; build trap.
9776         (expand_builtin_trap): New.
9777         (expand_builtin): Use it.
9778         * stmt.c (expand_nl_goto_receivers): Likewise.
9779         * expr.h (expand_builtin_trap): Declare.
9780         * libfuncs.h (LTI_abort, abort_libfunc): New.
9781         * optabs.c (init_optabs): Init abort_libfunc.
9782
9783 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
9784
9785         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
9786         (LINK_COMMAND_SPEC): ... from here.
9787         (init_gcc_specs): Duplicate it here too, omitting
9788         shared_name in the second copy.
9789         (init_spec): Test for duplicate
9790         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
9791
9792 2002-03-30  David S. Miller  <davem@redhat.com>
9793
9794         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
9795         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
9796
9797 2002-03-30  Roger Sayle <roger@eyesopen.com>
9798             Richard Henderson  <rth@redhat.com>
9799
9800         * regmove.c (combine_stack_adjustments_for_block): Avoid
9801         emitting a stack adjustment of zero bytes.  Let delete_insn
9802         update bb->head.
9803
9804 2002-03-30  Richard Henderson  <rth@redhat.com>
9805
9806         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
9807         (sparc_emitting_epilogue): New.
9808         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
9809         * config/sparc/sparc-protos.h: Update.
9810         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
9811         (TARGET_SWITCHES): Update.
9812         * config/sparc/sparc.md (return): Remove.
9813         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
9814         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
9815         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
9816         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
9817         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
9818         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
9819         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
9820         Remove MASK_EPILOGUE.
9821         * doc/invoke.texi: Update.
9822
9823 2002-03-30  Daniel Berlin  <dan@dberlin.org>
9824
9825         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
9826         CPP will start the file for us.
9827
9828 2002-03-30  Richard Henderson  <rth@redhat.com>
9829
9830         PR target/5446
9831         * config/ia64/ia64.c (group_barrier_needed_p): Special case
9832         prologue_allocate_stack.
9833         (ia64_single_set): Use insn codes for recognition of special
9834         cases, not rtl matching.
9835         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
9836
9837 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
9838
9839         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
9840
9841 2002-03-30  Richard Henderson  <rth@redhat.com>
9842
9843         PR target/6032
9844         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
9845         or -fomit-frame-pointer with profiling.
9846         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
9847         (FUNCTION_PROFILER): Do nothing.
9848         (PROFILE_HOOK): New.
9849         * config/sparc/sparc.c (sparc_override_options): Don't check
9850         code models for profiling.
9851         (sparc_function_profiler): Remove.
9852         (sparc_profile_hook): New.
9853         * config/sparc/sparc-protos.h: Update.
9854
9855 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
9856
9857         PR optimization/6086
9858         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
9859         of SUBREG of volatile MEM or because the MEM was mode dependent,
9860         return CLOBBER instead of unmodified SUBREG.
9861
9862 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
9863
9864         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
9865         when not optimizing.
9866
9867         * toplev.c (rest_of_compilation): Cann mark_constant_function
9868         only when optimizing.
9869
9870         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
9871         are NULL.
9872
9873         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
9874         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
9875         (try_optimize_cfg): clear all AUX fields.
9876
9877         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
9878         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
9879         (ix86_address_cost): Be prepared for SUBREGed registers.
9880         (legitimate_address_p): Accept SUBREGed registers.
9881
9882 2002-03-29  Richard Henderson  <rth@redhat.com>
9883
9884         PR target/5672
9885         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
9886
9887 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9888
9889         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
9890         for aggregate and TFmode types.
9891
9892 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
9893
9894         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
9895
9896 2002-03-29  Richard Henderson  <rth@redhat.com>
9897
9898         PR target/5886
9899         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
9900         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
9901
9902 2002-03-29  Richard Henderson  <rth@redhat.com>
9903
9904         PR target/6041
9905         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
9906         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
9907         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
9908         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
9909         conditional.
9910         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
9911
9912 2002-03-29  Dale Johannesen <dalej@apple.com>
9913
9914         * loop.c (combine_movables): Do allow combination of pseudos.
9915
9916 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
9917
9918         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
9919         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
9920         No functional change except ...
9921         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
9922         * doc/install.texi (*-*-freebsd*): Document port configuration.
9923
9924 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9925
9926         * Makefile.in (convert.o, calls.o, expmed.o): Update.
9927         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
9928         Use new hooks.
9929         * builtin-types.def (BT_PTRMODE): Update.
9930         * c-common.c (type_for_size): Rename c_common_type_for_size.
9931         (type_for_mode): Similarly.
9932         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
9933         Use new hook.
9934         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
9935         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
9936         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
9937         Redefine.
9938         * c-typeck.c (common_type, comptypes, default_conversion):
9939         Use new hooks.
9940         * calls.c: Include langhooks.h.
9941         (emit_library_call_value_1): Use new hooks.  Avoid redundant
9942         calls.
9943         * convert.c: Include langhooks.h
9944         (convert_to_pointer, convert_to_integer): Use new hooks.
9945         * except.c (init_eh): Similarly.
9946         * expmed.c: Include langhooks.h.
9947         (expand_mult_add): Use new hooks.
9948         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
9949         try_casesi): Similarly.
9950         * fold-const.c (optimize_bit_field_compare, make_range,
9951         decode_field_reference, fold_truthop, fold): Similarly.
9952         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
9953         put_var_into_stack): Similarly.
9954         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
9955         LANG_HOOKS_TYPE_FOR_SIZE): New.
9956         (LANG_HOOKS_TYPES_INITIALIZER): Update.
9957         * langhooks.h (lang_hooks_for_types): New hooks.
9958         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
9959         * tree.c (get_unwidened, get_narrower): Similarly.
9960         * tree.h (type_for_mode, type_for_size): Remove.
9961         * varasm.c (force_const_mem): Use new hooks.
9962         * utils2.c (nonbinary_modular_operation): Update.
9963 objc:
9964         * objc-act.c (handle_impent): Update.
9965         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
9966         Redefine.
9967
9968 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
9969
9970         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
9971         * config/ia64/ia64.c (basereg_operand): New.
9972         * config/ia64/ia64-protos.h (basereg_operand): Declare.
9973         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
9974
9975 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
9976
9977         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
9978         unwind information when frame_pointer_needed.
9979         (mmix_assemble_integer): Tweak wording in comment.
9980
9981 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
9982
9983         * Makefile.in (except.o): Update.
9984         * except.c: Include langhooks.h.
9985         (init_eh): Use langhook.
9986         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
9987         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
9988         (LANG_HOOKS_INITIALIZER): Update.
9989         * langhooks.h (lang_hooks_for_types): New.
9990         (struct lang_hooks): Add it.
9991         * tree.c (make_lang_type_fn, make_lang_type): Remove.
9992         * tree.h (make_lang_type_fn, make_lang_type): Remove.
9993 config:
9994         * alpha/alpha.c: Include langhooks.h.
9995         (alpha_build_va_list): Use langhook.
9996         * d30v/d30v.c: Include langhooks.h.
9997         (d30v_build_va_list): Use langhook.
9998         * i386/i386.c: Include langhooks.h.
9999         (ix86_build_va_list): Use langhook.
10000         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
10001         * s390/s390.c: Include langhooks.h.
10002         (s390_build_va_list): Use langhook.
10003         * stormy16/stormy16.c: Include langhooks.h.
10004         (stormy16_build_va_list): Use langhook.
10005
10006 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
10007
10008         PR c++/5964
10009         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
10010         attributes.
10011         (length): Compute variable length for branches/calls/jumps here.
10012         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
10013         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
10014         define branch_type attribute.
10015         (divsi3_sp32): Maximum length is 6 not 7.
10016         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
10017         call_address_untyped_struct_value_sp32,
10018         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
10019         * config/sparc/sparc.c (empty_delay_slot): New function.
10020         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
10021         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
10022
10023 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
10024
10025         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
10026         nonzero_bits if not needed.
10027         (nonzero_bits) [XOR]: Likewise.
10028         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
10029         reg_last_set_mode and mode are both MODE_INT, but not equal.
10030         (record_value_for_reg): Compute reg_last_set_nonzero_bits
10031         in nonzero_bits_mode for MODE_INT modes.
10032
10033 2002-03-28  Richard Henderson  <rth@redhat.com>
10034
10035         PR target/5715
10036         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
10037         to GAS.  Correct drift between alternatives.
10038
10039 2002-03-28  Richard Henderson  <rth@redhat.com>
10040
10041         PR target/6087
10042         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
10043
10044 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
10045
10046         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
10047         emulation to the linker.
10048
10049 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
10050
10051         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
10052         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
10053
10054 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
10055
10056         * combine.c (simplify_and_const_int): Make sure to apply mask
10057         when force_to_mode returns a constant integer.  PR3311.
10058
10059 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10060
10061         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
10062
10063 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10064
10065         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
10066         and Objective-C Dialect Options.
10067
10068 2002-03-28  Richard Henderson  <rth@redhat.com>
10069
10070         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
10071         comparison should be done vs !=0 not >0 return code.  Tidy cases.
10072
10073 2002-03-28  Richard Henderson  <rth@redhat.com>
10074
10075         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
10076         on to c_expand_body.
10077         * c-tree.h (finish_function): Update decl.
10078         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
10079
10080 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
10081
10082         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
10083
10084 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
10085
10086         * rtlanal.c: Include flags.h
10087         (may_trap_p): Do not mark FP operations if trapping
10088         if !flag_trapping_math
10089         * Makefile.in (rtlanal.o): Add dependency on flag.h
10090         * ifcvt.c (noce_operand_ok): Avoid the lameness.
10091
10092 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
10093
10094         * mips.md: Use dconst1, not 1.0, as first argument of
10095         REAL_VALUE_LDEXP.  Don't use union real_extract.
10096
10097 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
10098
10099         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
10100         rather than $target.  Heed program_prefix and
10101         program_transform_name.  Search for gas in cross-compiler case too.
10102         "test -x" rather than "test -f".
10103         (gcc_cv_ld): Likewise.
10104         (gcc_cv_nm): Heed program_prefix and program_transform_name.
10105         (gcc_cv_objdump): Likewise.
10106         * configure: Regenerate.
10107
10108 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10109
10110         * Makefile.in (attribs.o): Update.
10111         * attribs.c: Include langhooks.h.
10112         (decl_attributes): Use langhook.
10113         * c-decl.c (insert_default_attributes): Rename.
10114         * c-tree.h (c_insert_default_attributes): New.
10115         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
10116         (LANG_HOOKS_INITIALIZER): Update.
10117         * langhooks.h (struct lang_hooks): New hook.
10118         * tree.h (insert_default_attributes): Remove.
10119 objc:
10120         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
10121
10122 2002-03-27  Andreas Schwab  <schwab@suse.de>
10123
10124         * config/i386/i386.c (classify_argument): Also check for
10125         QUAL_UNION_TYPE.
10126
10127 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10128
10129         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
10130         any more.
10131
10132 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
10133
10134         * i960.md (ret): Set PC.
10135         (nonlocal_goto): Fix expander.
10136         * builtins.c (epxand_builin_longjmp): Check that we've emitted
10137         some jump or call.
10138
10139 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
10140
10141         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
10142         of libcall regions.
10143
10144 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
10145
10146         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
10147         assigning to BLOCK_FOR_INSN directly.
10148
10149 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
10150
10151         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
10152
10153 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10154
10155         * c-common.c (c_expand_expr): Fix prototype.
10156         * c-common.h (c_expand_expr): Always declare, update.
10157         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
10158         * c-objc-common.c (c_objc_common_init): No global hook.
10159         * expr.c (expand_expr): Use langhook.
10160         * expr.h (enum expand_modifier): Conditionally declare.
10161         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
10162         (LANG_HOOKS_INITIALIZER): Update.
10163         * langhooks.c (lhd_expand_expr): New.
10164         * langhooks.h (struct lang_hooks): New hook.
10165         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
10166         (lang_independent_init): Don't default hook.
10167 objc:
10168         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
10169
10170 2002-03-27  Richard Henderson  <rth@redhat.com>
10171
10172         PR target/6054
10173         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
10174         TARGET_CONST_GP.  Simplify conditions.
10175
10176 2002-03-27  Richard Henderson  <rth@redhat.com>
10177
10178         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
10179         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
10180         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
10181
10182 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
10183
10184         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
10185         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
10186         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
10187         Remove unnecessary masks.
10188         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
10189         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
10190         -mwindows, -mdll switches and their negations.
10191
10192 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10193
10194         * gcc-common.c (lang_mark_false_label_stack): Remove.
10195         * ggc.h (lang_mark_false_label_stack): Similarly.
10196
10197 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
10198
10199         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
10200
10201         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
10202         or __rtems_ is defined.
10203
10204 2002-03-26  Richard Henderson  <rth@redhat.com>
10205
10206         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
10207         if a non-trivial load was emitted.
10208         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
10209         in high+extra+low case.
10210
10211 2002-03-26  Richard Henderson  <rth@redhat.com>
10212
10213         * config.gcc (sparc*-solaris): Use float_format=sparc.
10214
10215 2002-03-26  Richard Henderson  <rth@redhat.com>
10216
10217         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
10218         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
10219         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
10220         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
10221         (WINT_TYPE_SIZE): Fix at 32.
10222
10223 2002-03-26  Richard Henderson  <rth@redhat.com>
10224
10225         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
10226         until after eh landing pad generation.
10227         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
10228         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
10229
10230 2002-03-26  Richard Henderson  <rth@redhat.com>
10231
10232         * expr.h (ADD_PARM_SIZE): One more convert for INC.
10233
10234 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
10235
10236         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
10237         and warning switches.
10238         (cc1_options):  Likewise.
10239
10240 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
10241
10242         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
10243         Restore more of the signal context.  Set no_reg_stack_frame.
10244         * config/ia64/unwind-ia64.c (unw_state_record):
10245         Add no_reg_stack_frame, comments.
10246         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
10247         (uw_update_context): Adjust bsp when unwinding from leaf,
10248         but not signal frame.
10249
10250 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
10251
10252         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
10253
10254 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
10255
10256         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
10257
10258 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
10259
10260         PR target/5621
10261         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
10262         "Add a pool_range attribute", which was lost during the ARM/Thumb
10263         merge.
10264
10265 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
10266
10267         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
10268         a register into the MAC16 accumulator.
10269
10270 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
10271
10272         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
10273         (Warning Options): Document -Wswitch-enum.
10274         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
10275         -Wswitch.
10276         (warn_switch_enum): Define variables.
10277         * flags.h (warn_switch_enum): Declare variables.
10278         * stmt.c (expand_end_case_type): When warn_switch_enum /
10279         -Wswitch-enum, perform switch checks.
10280         Fix PR c/5044.
10281
10282 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
10283
10284         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
10285         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
10286         (reload_muladdsi_compare0_scratch): Delete.
10287
10288 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
10289
10290         * doc/install.texi (*-*-freebsd*): Update.
10291
10292 2002-03-26  Richard Henderson  <rth@redhat.com>
10293
10294         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
10295         (SUB_PARM_SIZE): Cast DEC to ssizetype.
10296
10297         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
10298         types from the normal argument frame.
10299
10300         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
10301         variable sized objects by reference.
10302         (sparc_va_arg): Receive them by reference too.
10303
10304 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
10305
10306         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
10307         code to not restoring global registers.
10308
10309 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
10310
10311         * Makefile.in (ggc-common.o): Update.
10312         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
10313         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
10314         * c-tree.h (c_mark_tree): New.
10315         * ggc-common.c: Include langhooks.h.
10316         (gcc_mark_trees): Use new langhook.
10317         * ggc-callbacks.c: Delete file.
10318         * ggc.h (lang_mark_tree): Remove.
10319         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
10320         (LANG_HOOKS_INITIALIZER): Update.
10321         * langhooks.h (struct lang_hooks): New hook.
10322 objc:
10323         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
10324
10325 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
10326
10327         * doc/cpp.texi: Exclude entire Top node from printed manual.
10328         Move option index after directive index.  Insert page breaks
10329         before GFDL and concept index.  Index environment variables
10330         with command line options.
10331         * doc/cppenv.texi: Use @vtable for environment variable list.
10332         Add paragraph explaining semantics of empty elements in path
10333         variables.  Exclude a cross-reference to Fishkill from the
10334         manpage.  Remove an unnecessary cross-reference of the entry
10335         right above the referer.  Don't use @anchor in text that goes
10336         into manpage.
10337         * doc/cppopts.texi: Cross-reference the environment variables
10338         section, not the specific environment variable, for consistency.
10339
10340 2002-03-25  Richard Henderson  <rth@redhat.com>
10341
10342         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
10343         anywhere in the block.  Don't refer to insns that have been
10344         removed from the chain.  Iterate backward through the new insns.
10345         Don't refer to edges that have been removed.
10346
10347 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
10348
10349         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
10350         test for overflow of constant.
10351
10352 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
10353
10354         PR target/2623
10355         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
10356         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
10357         these patterns on arm_archv4.
10358
10359 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
10360
10361         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
10362         int".
10363
10364 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
10365
10366         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
10367         float_handled, float_handler, float_signal, set_float_handler,
10368         and do_float_handler.  Set handler for SIGFPE to crash_signal.
10369         * toplev.h: Don't prototype do_float_handler.
10370
10371         * c-lex.c: Fold parse_float into lex_number.  Make warning
10372         about portability of hex float constants more informative, and
10373         don't issue it on top of a syntax error.
10374         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
10375         their callers.
10376         * real.h: Define REAL_VALUE_ABS here...
10377         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
10378         simplify_unary_real, simplify_binary_real, and
10379         simplify_binary_is2orm1 into their callers.
10380         * tree.c: Fold build_real_from_int_cst_1 into caller.
10381
10382         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
10383
10384         * tsystem.h: Include float.h here...
10385         * libgcc2.c: ... not here.
10386
10387 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
10388
10389         Fixes for: PR bootstrap/3591, target/5676
10390         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
10391         defined.  Do not disable exceptions or rtti.
10392         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
10393         mcore.h.  Disable exceptions and rtti, since they are not
10394         supported by EPOC.
10395
10396 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
10397
10398         * c-decl.c (maybe_build_cleanup): Remove.
10399         * expr.c (expand_expr): Use langhook.
10400         * langhooks-def.h (lhd_return_null_tree,
10401         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
10402         (LANGHOOKS_INITIALIZER): Update.
10403         * langhooks.c (lhd_return_null_tree): New.
10404         * langhooks.h (struct lang_hooks): New hook.
10405         * tree-inline.c (initialize_inlined_parameters): Use langhook.
10406         * tree.h (maybe_build_cleanup): Remove.
10407
10408 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
10409
10410         * regrename.c (build_def_use): Move recog_memoized
10411         before extract_insn.
10412
10413 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
10414
10415         PR target/6043
10416         * expr.c (emit_group_store): Handle storing into CONCAT.
10417
10418 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
10419
10420         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
10421         corresponding MATCH_DUP.
10422
10423 2002-03-24  Richard Henderson  <rth@redhat.com>
10424
10425         * unroll.c (unroll_loop): Zero label_map.
10426
10427         * gcse.c: Include except.h.
10428         * Makefile.in (gcse.o): Update.
10429
10430 2002-03-24  Richard Henderson  <rth@redhat.com>
10431
10432         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
10433         Do resolve_unique_section before shared data clause.
10434
10435 2002-03-24  Richard Henderson  <rth@redhat.com>
10436
10437         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
10438
10439 2002-03-24  Richard Henderson  <rth@redhat.com>
10440
10441         * recog.c (peephole2_optimize): Split blocks when EH insns are
10442         generated in the middle of a block.  Do global life update if
10443         zapped EH edges.
10444
10445 2002-03-24  Richard Henderson  <rth@redhat.com>
10446
10447         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
10448
10449 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10450
10451         preprocessor/3951
10452         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
10453         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
10454         (init_dependency_output): Don't make no_output decision here.
10455
10456 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
10457
10458         * stmt.c (check_for_full_enumeration_handling): Remove tests of
10459         warn_switch.  Update description.
10460         (expand_end_case_type): Call check_for_full_enumeration_handling
10461         when warn_switch.
10462
10463 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10464
10465         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
10466         (m68hc11_split_move): Call it to see if the source and destination
10467         operands use the same direction auto inc/dec mode, otherwise make the
10468         source an offsetable memory operand and generate an add.
10469
10470 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
10471
10472         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
10473         register for operand 2.
10474         ("*subsi3_zero_extendqi"): Likewise.
10475         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
10476         bits so that it is compatible with a pop.
10477         ("*andhi3_gen"): Likewise.
10478         ("xorhi3"): Likewise.
10479
10480 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10481
10482         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
10483         -pedantic here...
10484         (cpp_post_options): ... not here.
10485
10486 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
10487             Aldy Hernandez  <aldyh@redhat.com>
10488
10489         Removal of separate preprocessor cpp0.
10490
10491         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
10492         cpp0, install-common): Update.
10493         * c-common.c (flag_preprocess_only): New.
10494         (c_common_init): Preprocess for -E.
10495         * c-common.h (flag_preprocess_only): New.
10496         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
10497         * c-objc-common.c (c_init_decl_processing): Exit quickly
10498         for NULL return from c_common_init.
10499         * cpplib.h (cpp_preprocess_file): New.
10500         * cppmain.c (main, general_init, pfile, progname): Remove.
10501         (do_preprocessing): Rename cpp_preprocess_file, don't call
10502         cpp_finish.  Don't close stdout here.
10503         (setup_callbacks): Update prototype.
10504         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
10505         Update.
10506         * tradcpp.c (main): Ignore -quiet.
10507 objc:
10508         * lang-specs.h (default_compilers): Preprocess with cc1obj.
10509
10510 2002-03-24  Richard Henderson  <rth@redhat.com>
10511
10512         PR optimization/5742
10513         * machmode.def: Add inner mode field to complex modes.
10514         * config/mips/mips.c (mips_function_value): Always define.  Add
10515         new argument to handle libcalls.
10516         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
10517         (FUNCTION_VALUE): Likewise.
10518         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
10519         * config/mips/mips-protos.h: Update.
10520
10521 2002-03-23  Richard Henderson  <rth@redhat.com>
10522
10523         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
10524         * config/sparc/sparc-protos.h: Update.
10525         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
10526
10527 2002-03-23  Richard Henderson  <rth@redhat.com>
10528
10529         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
10530         _start or _init begins the text segment.
10531
10532 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
10533
10534         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
10535         not HOST_WIDEST_INT.
10536         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
10537
10538 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
10539
10540         PR java/5489
10541         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
10542         operand argument to output_return_instruction.
10543         * arm.c (arm_print_operand, case 'd'): If the operand is
10544         const_true_rtx then just return.
10545         (arm_print_operand, case 'D'): If the operand is const_true_rtx
10546         then abort.
10547
10548 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
10549
10550         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
10551         (Warning Options): Document -Wswitch-default.
10552         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
10553         -Wswitch.
10554         (warn_switch_default): Define variable.
10555         (warn_switch): Update comment.
10556         * flags.h (warn_switch_default): Declare variable.
10557         (warn_switch): Update comment.
10558         * stmt.c (expand_end_case): Check for and, when
10559         warn_switch_no_default, warn of a missing default case.
10560
10561 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
10562
10563         * real.h (N): Special case 128 bit doubles.
10564
10565         * combine.c (simplify_comparison): When widening modes, ignore
10566         sign extension on CONST_INTs.
10567
10568 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
10569
10570         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
10571         passed to adjust_address.  Fix comment formatting.
10572
10573
10574 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
10575
10576         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
10577         Always make REAL_VALUE_TYPE a struct containing an array of
10578         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
10579         big it is.  Don't declare or use union real_extract.
10580
10581         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
10582         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
10583         (print_operand), config/arm/arm.c (output_move_double),
10584         config/arm/arm.md (consttable_4, consttable_8),
10585         config/romp/romp.c (output_fpops), config/s390/s390.h
10586         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
10587         (xtensa_output_literal): Don't use union real_extract.
10588
10589         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
10590         (sfmode_constant_to_ulong), config/ns32k/merlin.h
10591         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
10592         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
10593         (PRINT_OPERAND): Don't use local version of union
10594         real_extract.
10595
10596         * config/convex/convex.c (check_float_value), config/vax/vax.c
10597         (vax_float_literal), config/m88k/m88k.md (divdf3),
10598         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
10599         config/pdp11/pdp11.c (output_move_quad): Don't do host
10600         arithmetic on target floating point quantities.
10601
10602         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
10603         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
10604
10605         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
10606         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
10607
10608         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
10609         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
10610         INFINITY.
10611         * print-rtl.c (print_rtx): Disable code which needs
10612         floating-point emulator.
10613         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
10614         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
10615         depending on HOST_FLOAT_FORMAT to be defined properly.
10616
10617         * config/1750a/1750a.c (get_double, float_label): Delete.
10618         (print_operand): Delete huge commented-out chunk.  Use
10619         REAL_VALUE_TO_DECIMAL.
10620         * config/1750a/1750a-protos.h: Delete prototypes of deleted
10621         functions.
10622         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
10623         IEEE_FLOAT_FORMAT.
10624         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
10625         Use REAL_VALUE_TO_DECIMAL as ELF version does.
10626         * config/m88k/m88k.c (real_power_of_2_operand,
10627         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
10628         real_extract out of the union; run the input through
10629         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
10630         from that into the union.
10631         * config/pdp11/pdp11.c (output_move_double): Rearrange
10632         parentheses to make automatic indenter happy.
10633
10634         * doc/tm.texi (Cross-compilation): Rename node to "Floating
10635         Point" and rewrite to describe current situation.  Also adjust
10636         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
10637         match code.
10638         * doc/rtl.texi: Adjust cross reference.
10639
10640 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
10641
10642         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
10643         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
10644         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
10645         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
10646         prevent use of sp as a reload register.
10647         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
10648         non_acc_reg_operand.
10649         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
10650         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
10651         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
10652         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
10653
10654 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
10655
10656         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
10657         * cpplex.c (unterminated): Delete.
10658         (parse_string): No string literal may extend over multiple
10659         lines.  Suppress the error when preprocessing assembly.
10660         * cppmain.c (scan_translation_unit): Strings are single-line.
10661
10662         * doc/cpp.texi: Update to match.
10663
10664 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
10665
10666         PR optimization/5854
10667         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
10668         Shut up warnings.
10669         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
10670         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
10671         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
10672         const0 if scratch register was not allocated.
10673         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
10674         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
10675         with GEN_INT (...).
10676         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
10677         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
10678         with GEN_INT (...) everywhere.  Remove constraints in define_split
10679         patterns.
10680         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
10681         require scratch register for setting 0 into regs/non-pushable memory.
10682
10683 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
10684
10685         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
10686         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
10687
10688 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
10689
10690         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
10691         * cppinit.c (cpp_create_reader):  On by default.
10692         (cpp_handle_option):  Handle -W[no-]endif-labels.
10693         (cpp_post_options):  Also enable if -pedantic.
10694         * cpplib.c (do_else):  Use it.
10695         (do_endif):  Likewise.
10696         * doc/cppopts.texi:  Document new option.
10697         * doc/invoke.texi:  Document new option.
10698
10699 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
10700
10701         * config/i386/i386.c, config/i386/i386.md: Change all occurences
10702         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
10703
10704 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
10705
10706         * flow.c (calculate_global_regs_live): Clear aux fields of
10707         ENTRY and EXIT.
10708
10709 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
10710
10711         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
10712         REG or MEM subregs, pass rtx * instead of rtx to it.
10713         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
10714         rtx * instead of rtx to alter_subreg.
10715         * config/m32r/m32r.c (gen_split_move_double): Likewise.
10716         * config/pj/pj.c (pj_output_rval): Likewise.
10717
10718 2002-03-22  Richard Henderson  <rth@redhat.com>
10719
10720         PR target/3177
10721         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
10722         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
10723         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
10724         (ia64_expand_prologue): Look at int_regs, not words, for number
10725         of incomming int regs.
10726
10727 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
10728
10729         * expr.c (expand_expr): A RESULT_DECL is part of a call.
10730
10731 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
10732
10733         * toplev.c (flag_loop_optimize, flag_crossjumping):
10734         New static variables.
10735         (rest_of_compilation): Conditionalize crossjumping and
10736         loop optimizer.
10737         (parse_options_and_default_flags): Default loop_optimize and
10738         crossjumping.
10739         (lang_independent_options): Add -fcrossjumping and -floop-optimize
10740         * invoke.texi (crossjumping, loop-optimize): Document.
10741
10742 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
10743
10744         * real.c (eiisneg): Move outside #ifdef NANS.
10745
10746 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
10747
10748         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
10749         frequencies match; avoid match on different loop depths.
10750         (try_crossjump_to_bb): Kill tests that no longer brings time
10751         savings.
10752         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
10753         updating code.
10754         (split_edge): Likewise.
10755
10756         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
10757         variable.
10758
10759         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
10760         * cfgrtl.c: Include insn-config.h
10761         (split_block) Dirtify block in presence of conditional execution
10762
10763 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
10764
10765         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
10766         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
10767         (function_arg): Constify CUMULATIVE_ARGS.
10768         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
10769         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
10770         (UNITS_PER_DOUBLE): New macro.
10771         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
10772         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
10773         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
10774         fp_regs and stack_words.
10775         (EABI_FLOAT_VARARGS_P): New macro.
10776         * config/mips/mips.c (struct mips_arg_info): New.
10777         (mips_arg_info): New function.
10778         (function_arg_advance): Use it.  Add adjustment instructions here
10779         rather than in function_arg.
10780         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
10781         for VOIDmode at the beginning of the function.
10782         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
10783         (function_arg_pass_by_reference): Likewise.
10784         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
10785         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
10786         (mips_va_start): Likewise.  Use the new stack_words field of
10787         CUMULATIVE_ARGS to set up overflow area.  Reformat.
10788         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
10789         doubles and other types, aligning the overflow pointer for non-doubles
10790         too.  Remove some code duplication.  Replace hard-coded constants.
10791
10792 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
10793
10794         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
10795         (CLASS_UNITS): Undefine.
10796         (CLASS_MAX_NREGS): Use FP_INC.
10797         * config/mips/mips.c (compute_frame_size): Likewise.
10798         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
10799
10800 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
10801
10802         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
10803         prototype, and handle lexing numbers and identifiers.
10804         (parse_identifier): Update to new form of parse_slow.
10805         (parse_number): Fast path only, use parse_slow otherwise.
10806         (_cpp_lex_direct): Update calls to parse_number.
10807
10808 2002-03-21  DJ Delorie  <dj@redhat.com>
10809
10810         * bb-reorder.c (make_reorder_chain_1): Protect against
10811         when redundant edges are omitted.
10812         * predict.c (dump_prediction): Likewise.
10813
10814 2002-03-21  Richard Henderson  <rth@redhat.com>
10815
10816         PR target/5996
10817         * fixinc/inclhack.def (solaris_stdio_tag): New.
10818         * fixinc/fixincl.x: Regenerate.
10819
10820 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
10821
10822         PR c/5597
10823         * c-typeck.c (process_init_element): Flag non-static
10824         initialization of a flexible array member as illegal.
10825
10826 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
10827
10828         * config/rs6000/t-linux64: New.
10829         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
10830         t-ppccomm.  Use t-rs6000 and t-linux64.
10831         (powerpc64-*-gnu* <tmake_file>): Likewise.
10832         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
10833         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
10834         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
10835
10836 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
10837
10838         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
10839         flag_really_no_inline instead of optimize == 0.
10840
10841         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
10842
10843         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
10844
10845         * flags.h (flag_really_no_inline): New.
10846
10847         * c-common.c (c_common_post_options): Initialize
10848         flag_really_no_inline.
10849
10850         * toplev.c (flag_really_no_inline): New.
10851
10852 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
10853
10854         * config/avr/avr.md (length): Fix length computation for
10855         conditional branches.
10856
10857 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
10858
10859         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
10860         sdbout.o, profile.o): Update.
10861         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
10862         langhook.
10863         * c-common.h (gettags): Move here from tree.h.
10864         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
10865         insert_block, getdecls, kept_level_p, global_bindings_p): New.
10866         * dbxout.c (dbxout_init): Use getdecls langhook.
10867         * expr.c (expand_expr): Use insert_block langhook.
10868         * fold-const.c: Include langhooks.h.
10869         (fold_range_test, fold_binary_op_with_conditional_arg,
10870         fold): Use global_bindings_p langhook.
10871         * integrate.c (expand_inline_function): Use insert_block langhook.
10872         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
10873         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
10874         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
10875         LANG_HOOKS_GETDECLS): New.
10876         (LANG_HOOKS_INITIALIZER): Update.
10877         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
10878         langhook.
10879         * langhooks.h (struct lang_hooks_for_decls): New.
10880         (struct lang_hooks): Update.
10881         * profile.c: Include langhooks.h.
10882         (output_func_start_profiler): Use new langhooks.
10883         * sdbout.c: Include langhooks.h.
10884         (sdbout_init, sdbout_finish): Use getdecls langhook.
10885         * stmt.c: Include langhooks.h.
10886         (expand_fixup, fixup_gotos): Use new langhooks.
10887         * stor-layout.c: Include langhooks.h.
10888         (variable_size): Use global_bindings_p langhook.
10889         * toplev.c (compile_file): Use getdecls langhook.
10890         * tree-inline.c (remap_block): Use insert_block langhook.
10891         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
10892         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
10893
10894 2002-03-21  Richard Henderson  <rth@redhat.com>
10895
10896         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
10897         constants in .data when -fpic.
10898
10899 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10900
10901         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
10902         where appropriate.
10903
10904 2002-03-21  Tom Tromey  <tromey@redhat.com>
10905
10906         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
10907
10908 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10909
10910         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
10911
10912         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
10913
10914 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
10915             Richard Henderson  <rth@redhat.com>
10916
10917         PR c/5354
10918         * c-common.c (c_expand_expr): Preserve result of a statement
10919         expression if needed.
10920
10921 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
10922
10923         PR bootstrap/4195
10924         * genrecog.c (maybe_both_true_mode): Remove.
10925         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
10926         * machmode.def (Pmode): Likewise.
10927
10928 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
10929
10930         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
10931         (nonlocal_mentioned_p_1): New function.
10932         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
10933         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
10934         (mark_constant_function): Recognize pure functions.
10935         * rtl.h (global_reg_mentioned_p): New prototype.
10936         * rtlanal.c (global_reg_mentioned_p,
10937         global_reg_mentioned_p_1): New function.
10938
10939 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10940
10941         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
10942         UNIX assert.h.
10943         * fixinc/fixincl.x: Regenerate.
10944
10945 2002-03-20  Jason Merrill  <jason@redhat.com>
10946
10947         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
10948
10949 2002-03-20  Michael Meissner  <meissner@redhat.com>
10950
10951         * doc/invoke.texi (Optimize Options): Document that -O2 sets
10952         -fstrict-aliasing.
10953
10954 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
10955
10956         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
10957         ".literal_position" directive before the constant pool.
10958
10959 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10960
10961         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
10962         Add Craig Rodrigues.
10963         Add Brad Lucier to testers.
10964
10965 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
10966
10967         PR target/4792
10968         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
10969         to if_then_else.
10970         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
10971         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
10972         instead of insn_extract.
10973
10974 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
10975
10976         PR bootstrap/4192
10977         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
10978
10979         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
10980         stmt if some case has been output.
10981
10982 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
10983
10984         PR c/5972
10985         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
10986         movsfcc_1, movdfcc_1): Add %O2.
10987         * config/i386/i386.c (print_operand): Handle %ON.
10988         Print . before float condition codes in Sun as cmov syntax.
10989         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
10990         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
10991         no longer true.
10992
10993 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
10994
10995         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
10996         return instruction if PC was popped.
10997
10998 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
10999
11000         * config/xtensa/xtensa.md: Remove unused type attributes.
11001         (adddi_carry, subddi_carry): Change type attribute to "multi".
11002
11003 2002-03-19  Dale Johannesen  <dalej@apple.com>
11004
11005         PR optimization/5999, middle-end/5731
11006         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
11007         multiplications by reciprocals.
11008
11009 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
11010
11011         * Makefile.in: Update.
11012         * c-common.c: Include langhooks.h.
11013         (inline_forbidden_p): Use new hook.
11014         * diagnostic.c: Include langhooks.h.
11015         (format_with_decl, announce_function,
11016         default_print_error_function): Use new hook.
11017         * dwarf2out.c (dwarf2_name): Use new hook.
11018         * function.c: Include langhooks.h.
11019         (init_function_start): Use new hook.
11020         * langhooks-def.h (lhd_decl_printable_name): New.
11021         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
11022         (LANGHOOKS_INITIALIZER): Update.
11023         * langhooks.c (lhd_decl_printable_name): New.
11024         * langhooks.h (struct lang_hooks): New hook.
11025         * toplev.c (decl_name, decl_printable_name): Remove.
11026         (open_dump_file): Use new hook.
11027         (process_options): Remove old hook.
11028         * tree.h (decl_printable_name): Remove.
11029 objc:
11030         * objc-act.c (objc_init): Remove old hook.
11031         (objc_printable_name): Export.
11032         * objc-act.h (objc_printable_name): New.
11033         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
11034
11035 2002-03-19  Jim Blandy  <jimb@redhat.com>
11036
11037         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
11038         the start_source_file debug hook, not the current line number.
11039
11040 2002-03-19  Richard Henderson  <rth@redhat.com>
11041
11042         * flow.c (EH_USES): Provide default.
11043         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
11044         * doc/tm.texi (EH_USES): New.
11045
11046         * config/ia64/ia64.c (ia64_eh_uses): New.
11047         * config/ia64/ia64-protos.h: Update.
11048         * config/ia64/ia64.h (EH_USES): New.
11049
11050 2002-03-19  Richard Henderson  <rth@redhat.com>
11051
11052         * varasm.c (output_constant_def): Fix stupid typo.
11053
11054 2002-03-19  Richard Henderson  <rth@redhat.com>
11055
11056         PR 5879
11057         * except.c (current_function_has_exception_handlers): New.
11058         * except.h: Declare it.
11059         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
11060         Combine tests that disable all sibcalls for the function.
11061
11062 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
11063
11064         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
11065         for INTEGER_CST.
11066
11067 2002-03-19  Richard Henderson  <rth@redhat.com>
11068
11069         PR 5977, 5991
11070         * config/ia64/ia64.c: Revert 2002-03-01 patch.
11071         * config/ia64/ia64.h (INIT_EXPANDERS): New.
11072
11073 2002-03-19  Jim Blandy  <jimb@redhat.com>
11074
11075         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
11076         name, even if the replacement list contains no tokens, as required
11077         by Dwarf.
11078
11079 2002-03-19  Jason Merrill  <jason@redhat.com>
11080
11081         * varasm.c (globalize_decl): Get the name from the RTL, not
11082         DECL_ASSEMBLER_NAME.
11083
11084         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
11085
11086 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
11087
11088         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
11089         subdi_carry): Define.
11090
11091 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
11092
11093         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
11094         about -fpic/-fPIC if extra_warnings set.
11095
11096 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
11097
11098         * expr.c (expand_expr): Sign-extend CONST_INT generated from
11099         TREE_STRING_POINTER.
11100         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
11101
11102 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11103
11104         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
11105         in favor of SP if FRAME_POINTER_REQUIRED is false.
11106
11107 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
11108
11109         * emit-rtl.c (gen_int_mode): New function.
11110         * rtl.h: Prototype for it.
11111         * combine.c (make_extraction, simplify_comparison), expmed.c
11112         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
11113         (convert_modes, store_field), optabs.c (expand_fix),
11114         simplify-rtx.c (neg_const_int, simplify_unary_real),
11115
11116         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
11117         Use it instead of GEN_INT (trunc_int_for_mode (...)).
11118
11119 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
11120
11121         PR c/5656
11122         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
11123         convert_parm_for_inlining.
11124         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
11125         Define.
11126         * langhooks-def.h: Likewise.
11127         * objc/objc-lang.c: Likewise.
11128         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
11129         function.
11130         * tree-inline.c (initialize_inlined_parameters):
11131         Call convert_parm_for_inlining lang hook if needed.
11132         * c-typeck.c (c_convert_parm_for_inlining): New function.
11133         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
11134
11135 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
11136
11137         * calls.c (precompute_arguments): Do not assume that temporaries
11138         can be destroyed after expanding the argument.
11139         (expand_call): Likewise.
11140
11141 2002-03-15  Eric Christopher  <echristo@redhat.com>
11142
11143         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
11144         Fix register preference on last change.
11145         * config/mips/mips.c (mips_return_in_memory): New function.
11146         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
11147         * config/mips/mips-protos.h: Declare.
11148         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
11149         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
11150
11151 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
11152
11153         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
11154         a register too.
11155         (anddi3, iorsi3): Likewise.
11156
11157         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
11158         use %gprel for symbols that are going to be placed in linkonce
11159         sections.
11160
11161         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
11162         RETURN_ADDRESS_POINTER_REGNUM to $ra.
11163         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
11164         not needed.  Disregard leaf_function_p().
11165         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
11166         mips16 frame pointer.
11167         * config/mips/mips.md (store ra): Only to small SP offsets.
11168         2001-08-22  Graham Stott  <grahams@redhat.com>
11169         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
11170         return a REG rtx for the return address register.
11171
11172 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
11173
11174         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
11175         constant-pool addresses as "mode-dependent".
11176         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
11177
11178 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
11179
11180         PR target/5740
11181         * expr.c (emit_group_load): Use extract_bit_field if
11182         needed for CONCAT arguments.
11183
11184 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
11185
11186         PR target/4863
11187         * arm.md (tablejump): Make this a define_expand.  For PIC add the
11188         offset to the base of the table.
11189         (thumb_tablejump): Matcher for Thumb tablejump insn.
11190         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
11191         as the difference of two labels.
11192         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
11193         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
11194         tables in the code.
11195         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
11196         * arm.c (get_jump_table_size): If the table is not in the text
11197         section, return zero.
11198
11199 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
11200
11201         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
11202         of gen_rtx_SUBREG.
11203         (arm_reload_out_hi): Use gen_lowpart instead of
11204         gen_rtx_SUBREG to access QImode components.
11205         * config/arm/arm.md: Disable zero_extend split for QImode
11206         subregs in BIG_ENDIAN mode.
11207         (storehi_bigend): Match use of least significant byte.
11208         (storeinthi): Remove extraneous SUBREG.
11209         Add missing construction of operands[2].
11210         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
11211         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
11212         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
11213
11214 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
11215
11216         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
11217         any_operand.
11218
11219 2002-03-17  Richard Henderson  <rth@redhat.com>
11220
11221         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
11222         explicitly.
11223
11224 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
11225
11226         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
11227         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
11228
11229 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11230
11231         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
11232
11233         * predict.c (estimate_bb_frequencies): Delete unused variables.
11234
11235 2002-03-17  Richard Henderson  <rth@redhat.com>
11236
11237         * config/ia64/ia64.c (ia64_attribute_table): Move before
11238         targetm definition.  Make static.
11239
11240 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
11241
11242         * c-common.h (yyparse, c_common_parse_file): New.
11243         * c-lang.c: Include c-common.h.
11244         (LANG_HOOKS_PARSE_FILE): Redefine.
11245         * c-lex.c: Include c-common.h.
11246         (yyparse): Rename c_common_parse_file.  Call yyparse.
11247         * c-parse.in (yyparse): Remove macro.
11248         * c-tree.h (yyparse_1): Remove.
11249         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
11250         (LANG_HOOKS_INITIALIZER): Update.
11251         * langhooks.h (struct lang_hoooks): New hook parse_file.
11252         * toplev.c (compile_file): Use parse_file hook.
11253         * tree.h (yyparse): Remove.
11254         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
11255
11256 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
11257
11258         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
11259         float_truncate, not fix.
11260         ("*truncdfsf2_real"): Ditto.
11261         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
11262
11263         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
11264
11265 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
11266
11267         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
11268         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
11269         where appropriate.  Make the second reference to
11270         leaf_function_p a function call, as intended.  Reindented.
11271
11272         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
11273         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
11274
11275         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
11276         add register to non-constant into sp.
11277
11278         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
11279         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
11280         (mips16_gp_pseudo_rtx): Lose.
11281         (INIT_EXPANDERS): Deleted.
11282         * config/mips/mips.c (mips_init_machine_status): New.
11283         (mips_free_machine_status): New.
11284         (mips_mark_machine_status): New.
11285         (override_options): Set them.
11286         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
11287         (struct machine_function): ... new.  Replaced all references.
11288         (mips_add_gc_roots): Don't mark them.
11289         (embedded_pic_fnaddr_reg): New, extracted from...
11290         (embedded_pic_offset): ... here.
11291         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
11292         (movsi): Likewise.
11293
11294 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
11295
11296         * cppinit.c: Revert -MD removal.
11297
11298 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11299
11300         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
11301         soft registers by default for 68HC12.
11302         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
11303         when compiling with -fomit-frame-pointer.
11304         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
11305         (expand_epilogue): Likewise.
11306         (m68hc11_gen_rotate): Use exg when rotating by 8.
11307
11308 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11309
11310         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
11311         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
11312         (splits): Remove unused add splits.
11313         ("*addhi3_68hc12"): Tune constraints.
11314         ("addhi_sp"): Try to use X instead of Y in all cases and if the
11315         constant fits in 8-bits and D is dead use abx/aby instructions.
11316         ("*addhi3"): Remove extern declaration of ix_reg.
11317         ("*subsi3"): Optimize and provide new split.
11318         ("subhi3"): Cleanup.
11319         ("*subhi3_sp"): Avoid saving X if we know it is dead.
11320         (arith splits): For 68hc12 save the address register on the stack
11321         and do the arithmetic operation with a pop.
11322
11323 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11324
11325         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
11326         allocating QImode in address registers.
11327         ("*movqi_m68hc11"): Likewise.
11328
11329 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
11330
11331         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
11332
11333 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
11334
11335         * cppinit.c (print_help): Display -MD and -MMD.
11336         Don't display usage string.  Update assertion syntax and
11337         typo.
11338         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
11339         (cpp_handle_option): Update.
11340
11341 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
11342
11343         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
11344         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
11345         and define it so that regardless of target CPU size,
11346         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
11347         of "int" rather than "long."
11348
11349 2002-03-15  Richard Henderson  <rth@redhat.com>
11350
11351         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
11352         size as a tree.
11353
11354 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11355
11356         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
11357         ("tstqi" split): Avoid using memory for tstqi on address register.
11358         (splits): Remove constraints.
11359         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
11360         ("cmpdf", "cmpsf"): Remove since not used.
11361         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
11362         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
11363
11364 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11365
11366         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
11367         ("neghi2"): Tighten constraints.
11368         ("one_cmplsi2"): Optimize and simplify split.
11369         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
11370
11371 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11372
11373         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
11374         and split of AND operation to clear the upper bits.
11375         ("*logicalsi3_zextqi"): Likewise.
11376         ("*logicallhi3_zexthi_ashift8"): Likewise.
11377         ("*logicalsi3_silshr16"): Likewise.
11378         ("logicalsi3_silshl16"): Likewise.
11379         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
11380
11381 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11382
11383         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
11384         (m68hc11_indirect_p): New function.
11385         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
11386         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
11387         TARGET_M6812.
11388         (asm_print_register): Likewise.
11389         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
11390         (m68hc11_indirect_p): Declare.
11391         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
11392         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
11393         (TARGET_SWITCHES): New option -mrelax.
11394         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
11395         destination.
11396         ("iorsi3", "xorsi3"): Likewise.
11397         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
11398         ("*andhi3_mem"): New to handle destination in memory with bclr
11399         and a scratch register.
11400         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
11401         ("*andhi3_const"): New when operand2 is constant.
11402         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
11403         ("*andhi3_gen"): Cleanup of the old "andhi3".
11404         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
11405         ("xorqi3"): Update constraints.
11406
11407 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11408
11409         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
11410         for reg_equiv_memory_loc when the operand is a register that does
11411         not get a hard register (stack location).
11412         (tst_operand): After reload, accept all memory operand.
11413         (symbolic_memory_operand): Fix detection of symbolic references.
11414         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
11415         accept symbols and any constant.
11416
11417 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11418
11419         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
11420         note on the insn that sets the soft frame register.
11421         (must_parenthesize): ix and iy are also reserved names.
11422         (print_operand_address): One more place where parenthesis are required
11423         to avoid confusion with register names.
11424         (m68hc11_gen_movhi): Allow push of stack pointer.
11425         (m68hc11_check_z_replacement): Fix handling of parallel with a
11426         clobber.
11427         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
11428         the replacement register is.
11429         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
11430         and D8_REGS classes.
11431         (MODES_TIEABLE_P): All modes are tieable except QImode.
11432
11433 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11434
11435         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
11436         (___subdi3): Likewise.
11437         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
11438         (__map_data_section): Optimize 68hc11 case.
11439
11440 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11441
11442         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
11443         than a shift to avoid adding a register with itself.
11444         (m68hc11_memory_move_cost): Take into account NO_REGS.
11445         (m68hc11_register_move_cost): Update and use memory move cost
11446         for soft registers.
11447         (m68hc11_address_cost): Make cost of valid offset not 0 so that
11448         it gives more opportunities to cse to optimize.
11449         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
11450         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
11451
11452 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
11453
11454         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
11455         * c-common.def (CLEANUP_STMT): New tree node.
11456         * c-common.h (CLEANUP_DECL): New macro.
11457         (CLEANUP_EXPR): Likewise.
11458         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
11459         * expr.c (expand_expr): Tidy.
11460         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
11461         * tree-inline.c (initialize_inlined_parameters): Clean up
11462         new local variables.
11463
11464 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
11465
11466         PR bootstrap/4128
11467         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
11468         before movrXX only, use reg_overlap_mentioned_p.
11469         Only special case NE if just one insn can be generated.
11470
11471 2002-03-15  Jason Merrill  <jason@redhat.com>
11472
11473         * varasm.c (assemble_variable): Call resolve_unique_section before
11474         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
11475         of error_mark_node.
11476
11477 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
11478
11479         PR target/5170
11480         * arm.md (split pattern for thumb shiftable immediates): Add comment
11481         explaining non-obvious test.
11482
11483 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
11484
11485         PR target/5712
11486         * arm.md (movaddr, movaddr_insn): Delete.
11487
11488 2002-03-15  Jason Merrill  <jason@redhat.com>
11489
11490         * toplev.c (wrapup_global_declarations): Clarify variable handling.
11491         -fkeep-static-consts doesn't apply to comdats.
11492
11493 2002-03-14  Richard Henderson  <rth@redhat.com>
11494
11495         * c-decl.c: Include c-pragma.h.
11496         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
11497         (finish_function): Tidy.
11498         * c-pragma.c: Include c-common.h.
11499         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
11500         (handle_pragma_weak): Use them.
11501         (init_pragma): Register pending_weaks.
11502         * c-pragma.h (maybe_apply_pragma_weak): Declare.
11503         * print-tree.c (print_node): Print DECL_WEAK.
11504         * varasm.c (mark_weak_decls): Remove.
11505         (remove_from_pending_weak_list): Remove.
11506         (add_weak): Remove.
11507         (asm_emit_uninitialised): Call globalize_decl for weak commons.
11508         (weak_decls): Make a tree_list.
11509         (declare_weak): Cons weak_decls directly.
11510         (globalize_decl): Remove weak_decls elements directly.
11511         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
11512         symbols.  Don't pretend to handle aliases.
11513         (init_varasm_once): Update weak_decls registry.
11514         * Makefile.in: Update dependencies.
11515
11516 2002-03-14  Richard Henderson  <rth@redhat.com>
11517
11518         PR target/5312
11519         * config/ia64/ia64.c: Include tm_p.h last.
11520         (gen_nop_type): Remove duplicate definition.
11521         (cycle_end_fill_slots): Set sched_data for second L slot.
11522         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
11523         (nop_cycles_until): Fix typos.
11524
11525 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
11526
11527         PR optimization/5891
11528         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
11529
11530 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
11531
11532         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
11533           descriptors correctly.
11534
11535 2002-03-14  Michael Meissner  <meissner@redhat.com>
11536
11537         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
11538         100, allowing MAX_UNROLLED_INSNS to be overridden.
11539
11540         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
11541         --param.
11542
11543         * unroll.c (params.h): Include.
11544         (MAX_UNROLLED_INSNS): Delete, now in params.h.
11545
11546         * doc/invoke.texi (--param max-unroll-insns): Document.
11547
11548         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
11549
11550 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
11551
11552         * arm.md: Fix warnings about constraints in peepholes and splits.
11553
11554 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
11555
11556         * cpphash.h (struct lexer_state): Remove line_extension member.
11557         * cpplib.c (dequote_string, do_linemarker): New functions.
11558         (linemarker_dir): New data object.
11559         (DIRECTIVE_TABLE): No longer need to interpret #line in
11560         preprocessed source.  Delete obsolete comment about return
11561         values of handlers.
11562         (end_directive, directive_diagnostics, _cpp_handle_directive):
11563         Don't muck with line_extension.
11564         (directive_diagnostics): No need to issue warnings for
11565         linemarkers here.
11566         (_cpp_handle_directive): Issue warnings for linemarkers here,
11567         when appropriate.  Dispatch linemarkers to do_linemarker, not
11568         do_line.
11569         (do_line): Code to handle linemarkers split out to do_linemarker.
11570         Convert escape sequences in filename argument, both places.
11571
11572         * cppmacro.c (quote_string): Rename cpp_quote_string and
11573         export.  All callers changed.
11574         * cpplib.h (cpp_quote_string): Prototype.
11575         * cppmain.c (print_line): Call cpp_quote_string on to_file
11576         before printing it.
11577
11578         * doc/cpp.texi: Document that escapes are now interpreted in
11579         #line and in linemarkers, and that non-printing characters are
11580         converted to octal escapes when linemarkers are generated.
11581
11582 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
11583
11584         * emit-rtl.c (try_split): Use delete_insns.
11585         * recog.c (split_all_insns): Fix terminating condition.
11586
11587 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
11588             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
11589
11590         PR target/5828
11591         * arm.c (arm_output_epilogue): Fix floating-point register save
11592         adjustment when using a frame pointer.
11593
11594 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
11595
11596         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
11597         * config/mips/mips.c (compute_frame_size): Retrofit them here.
11598         (save_restore_insns, mips_expand_epilogue): And here.
11599         (build_mips16_call_stub): And here.
11600         (mips_function_value): Use the new macros to decide whether a single
11601         or complex float can be returned in floating-point registers.  Return
11602         a parallel rtx in the complex case.
11603
11604 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
11605
11606         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
11607         call after liveness analysis.
11608
11609         * recog.c (split_insn): Use delete_insn_and_edges.
11610
11611         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
11612         instructions to have branch prediction notes.
11613         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
11614
11615 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
11616
11617         * configure.in: Don't pass -Wno-long-long to a ADA compiler
11618         that doesn't support it.
11619         * configure: Regenerate.
11620
11621 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
11622
11623         PR target/5626
11624         * config/sparc/sparc.md (normal_branch, inverted_branch,
11625         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
11626         inverted_fp_branch): Adjust calls to output_cbranch.
11627         Set length attribute.
11628         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
11629         output_v9branch.  Set length attribute.
11630         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
11631         predicates.
11632         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
11633         (output_cbranch): Likewise.  Handle far branches.
11634         (output_v9branch): Handle far branches.
11635         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
11636         Adjust prototypes.
11637         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
11638         noov_compare64_op predicates.
11639
11640 2002-03-13  Jason Merrill  <jason@redhat.com>
11641
11642         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
11643         into the function and constify it.
11644         * gthr-dce.h, gthr-solaris.h: Likewise.
11645
11646 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
11647
11648         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
11649         * config/rs6000/rs6000.c (rs6000_va_arg): Use
11650         std_expand_builtin_va_arg if not ABI_V4.
11651
11652 2002-03-13  Jason Merrill  <jason@redhat.com>
11653
11654         * varasm.c (globalize_decl): New fn.
11655         (assemble_start_function): Use it.
11656         (asm_emit_uninitialized): Use it.
11657         (assemble_alias): Use it.
11658         (assemble_variable): Use it.
11659
11660 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
11661
11662         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
11663         2002-03-12 internal visibility change.
11664         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
11665         visibility into SYMBOL_REF_FLAG.
11666
11667 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
11668
11669         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
11670         VOIDmode operand.  Add compile-time optimization for constant results.
11671
11672 2002-03-12  Jason Merrill  <jason@redhat.com>
11673
11674         * c-typeck.c (convert_for_assignment): Don't allow conversions
11675         between pointers and references.  Only allow lvalues to convert to
11676         reference.
11677
11678 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
11679
11680         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
11681         before prologue, to avoid scheduling problems.
11682
11683 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
11684
11685         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
11686         (ELIMINABLE_REGS): Add sfp->sp.
11687         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
11688
11689 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
11690
11691         PR optimization/5892
11692         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
11693
11694 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
11695
11696         * loop.c (basic_induction_var): Don't call convert_modes if mode
11697         classes are different.
11698
11699 2002-03-12  Richard Henderson  <rth@redhat.com>
11700
11701         PR optimization/5901
11702         * function.c (reposition_prologue_and_epilogue_notes): Position
11703         the markers after/before the last/first insn not deleted.
11704
11705 2002-03-12  Richard Henderson  <rth@redhat.com>
11706
11707         PR optimization/5878
11708         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
11709         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
11710         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
11711
11712         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
11713         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
11714         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
11715
11716         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
11717         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
11718         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
11719         also.  Don't set it if not flag_pic.
11720         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
11721         to be INVALID_REGNUM when not used.
11722
11723 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
11724
11725         * expmed.c (store_bit_field): Reset alias set for memory.
11726         (extract_bit_field): Same.
11727
11728 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11729
11730         * c-common.c (c_tree_code_type, c_tree_code_length,
11731         c_tree_code_name, add_c_tree_codes): Delete.
11732         * c-common.h (add_c_tree_codes): Delete.
11733         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
11734         Define.
11735         * c-objc-common.c (c_objc_common_init): Don't call
11736         add_c_tree_codes, instead set lang_unsafe_for_reeval.
11737         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
11738         objc_tree_code_name, add_objc_tree_codes): Delete.
11739         (objc_init): Don't call add_objc_tree_codes.
11740         * objc/objc-lang.c (tree_code_type, tree_code_length,
11741         tree_code_name): Define.
11742         * toplev.c (lang_independent_init): Don't set
11743         tree_code_length[IDENTIFIER_NODE].
11744         * tree.c (tree_code_type, tree_code_length, tree_code_name):
11745         Delete definitions, moved to language front-ends.
11746         * tree.def (IDENTIFIER_NODE): Hardwire the length.
11747         * tree.h (tree_code_type, tree_code_length, tree_code_name):
11748         Const-ify.
11749         (tree_code_length): Change type to unsigned char.
11750
11751 2002-03-12  Richard Henderson  <rth@redhat.com>
11752
11753         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
11754         internal visibility change.
11755
11756 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
11757
11758         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
11759         validize_mem() instead of change_address to avoid clobbering
11760         memory attributes.
11761
11762 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
11763
11764         * c-lex.h (position_after_whitespace): Remove.
11765
11766 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
11767
11768         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
11769         (lex_string): Use unsigned char pointers.
11770
11771 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
11772
11773         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
11774         is not a valid memory_operand.
11775
11776 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
11777
11778         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
11779         * config/xtensa/lib1funcs.asm: Fix copyright to include
11780         special case for libgcc files.
11781         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
11782         (__divsi3): Likewise.
11783         (__umodsi3): Likewise.
11784         (__modsi3): Likewise.
11785         * config/xtensa/lib2funcs.S: Fix copyright to include
11786         special case for libgcc files.
11787
11788 2002-03-12  Tom Rix  <trix@redhat.com>
11789
11790         * collect2.c (resolve_lib_name): Move outside of
11791         OBJECT_FORMAT_COFF ifdef.
11792         (ignore_library): Same.
11793
11794 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
11795
11796         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
11797
11798 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
11799
11800         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
11801         to function_section before writing out the constant pool.
11802
11803 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
11804
11805         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
11806         zero_constant.
11807         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
11808
11809 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
11810
11811         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
11812         (adddi3): Likewise.
11813         (movdf): Likewise.
11814         (movdi): Likewise.
11815         (cmpsi splitter): Likewise.
11816         (modsi3): Fail if <= 0.
11817         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
11818         redundant test when HOST_BITS_PER_WIDE_INT != 32.
11819         (reg_or_sub_cint64_operand): Likewise.
11820         (num_insns_constant_wide): Optimize sign extension.
11821         (rs6000_legitimize_address): Likewise.
11822
11823 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
11824
11825         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
11826         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
11827
11828 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
11829
11830         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
11831         address calculation.
11832
11833 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
11834
11835         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
11836         scratch register to DImode / TImode.
11837         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
11838         register used does not overlap the target.
11839
11840 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11841
11842         * Makefile.in (debug.o): Depend on debug.h.
11843         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
11844         * debug.c (do_nothing_debug_hooks): Likewise.
11845         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
11846         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
11847         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
11848         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
11849         * dwarfout.c (dwarf_debug_hooks): Likewise.
11850         * integrate.c (output_inline_function): Likewise.
11851         * objc/objc-act.c (synth_module_prologue): Likewise.
11852         * sdbout.c (sdb_debug_hooks): Likewise.
11853         * toplev.c (debug_hooks): Likewise.
11854         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11855
11856 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11857
11858         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
11859         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
11860         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
11861         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
11862         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
11863         * defaults.h (POINTER_SIZE): Define.
11864         * doc/tm.texi (POINTER_SIZE): Document default.
11865
11866 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11867
11868         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
11869
11870 2002-03-11  Richard Henderson  <rth@redhat.com>
11871
11872         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
11873         if rebuild_label_notes_after_reload.
11874
11875 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
11876
11877         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
11878         emit pic register load if "internal" visibility.
11879         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
11880         (cris_expand_builtin_va_arg): Do all computations on trees.
11881
11882 2002-03-11  Richard Henderson  <rth@redhat.com>
11883
11884         * rtlanal.c: Include recog.h.
11885         (keep_with_call_p): Fix thinko.
11886         * Makefile.in (rtlanal.o): Update dependencies.
11887
11888 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
11889
11890         * genflags.c (gen_insn): Use IS_VSPACE.
11891         * genoutput.c (output_insn_data): Likewise.
11892         (process_template): Likewise.
11893
11894 2002-03-11  Richard Henderson  <rth@redhat.com>
11895
11896         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
11897
11898 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
11899
11900         * Makefile.in: Update.
11901         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
11902         Update documentation.
11903         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
11904         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
11905
11906 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
11907
11908         * Makefile.in: Give texi2pod its input file as a command line
11909         argument, not on stdin.
11910
11911 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
11912             Daniel Berlin  <dan@dberlin.org>
11913
11914         C++ alias analysis improvement.
11915         * alias.c (record_component_aliases): Record aliases for base
11916         classes too.
11917
11918 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
11919
11920         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
11921
11922 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
11923
11924         * toplev.c (vms_fopen): Remove, not needed.
11925
11926         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
11927
11928         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
11929
11930         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
11931         for FP, already done later.
11932
11933         * toplev.c (debug_args): Add entry for VMS_DEBUG.
11934         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
11935
11936 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
11937
11938         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
11939         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
11940         LARGEST_EXPONENT_IS_NORMAL for the given mode.
11941         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
11942         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
11943         (ediv, emul, eldexp, esqrt): Likewise.
11944         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
11945         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
11946         (saturate): New function.
11947         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
11948         (make_nan): Use a saturation value instead of a NaN if
11949         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
11950         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
11951         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
11952         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
11953         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
11954         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
11955         !ROUND_TOWARDS_ZERO.
11956         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
11957         (ROUND_TOWARDS_ZERO): Document.
11958
11959 2002-03-11  Andreas Jaeger  <aj@suse.de>
11960
11961         * cfg.c (dump_flow_info): Remove unused variable.
11962
11963 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
11964
11965         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
11966         computations on trees.
11967
11968 2002-03-10  Richard Henderson  <rth@redhat.com>
11969
11970         PR 5693:
11971         * reload.c (copy_replacements_1): New.
11972         (copy_replacements): Use it to recurse through the rtx.
11973
11974 2002-03-10  Richard Henderson  <rth@redhat.com>
11975
11976         * loop.c (strength_reduce): Compute number of iterations as
11977         unsigned HOST_WIDE_INT.
11978
11979 2002-03-10  Richard Henderson  <rth@redhat.com>
11980
11981         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
11982         to move away from the end of the block.
11983
11984 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
11985
11986         PR preprocessor/5899
11987         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
11988
11989 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11990
11991         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
11992
11993         * attribs.c (decl_attributes): Fix signed/unsigned warning.
11994
11995 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
11996
11997         * config/mmix/mmix.c: Improve comments.
11998         (mmix_target_asm_function_prologue): Drop variable
11999         empty_stack_frame.  Don't allocate unused slot above fp.
12000         (mmix_target_asm_function_epilogue): Mirror prologue changes.
12001         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
12002         brace in first column.
12003         (enum reg_class): Ditto.
12004         (FIRST_PARM_OFFSET): Now 0.
12005         (USER_LABEL_PREFIX): Remove #if 0:d definition.
12006
12007 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12008
12009         * combine.c (make_extraction): Fix error in last change.
12010
12011 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12012
12013         * c4x.c (c4x_fp_reglist): Const-ify.
12014         * cris.c (cris_print_operand): Likewise.
12015         * i386.c (ix86_va_arg): Likewise.
12016         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
12017         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
12018         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
12019         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
12020         * mcore.h (regno_reg_class): Likewise.
12021         * mips.c (gen_int_relational): Likewise.
12022         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
12023         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
12024         * pdp11.c (move_costs): Likewise.
12025         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
12026         * s390.c (s390_branch_condition_mnemonic, regclass_map):
12027         Likewise.
12028         * s390.h (regclass_map): Likewise.
12029         * sh.c (shift_amounts): Likewise.
12030         * sh.md (rotlsi3): Likewise.
12031
12032 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
12033
12034         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
12035         (ne0+5): Use new clobber to generate proper shift pattern.
12036         Patch by Michael Matz <matz@kde.org>.
12037
12038 2002-03-09  Andreas Schwab  <schwab@suse.de>
12039
12040         * gcc.c (validate_all_switches): Also handle `%W{...}'.
12041
12042 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
12043
12044         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
12045
12046 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
12047
12048         PR middle-end/5877
12049         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
12050         even for non-representable constants.
12051
12052 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12053
12054         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
12055         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
12056         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
12057         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
12058         (pop_function_context): Compute MAY_SHARE parameter for
12059         fixup_var_refs.
12060         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
12061         (gen_mem_addressof): Call fixup_var_refs with new parm.
12062
12063         * combine.c (make_extraction): Don't make extension of CONST_INT.
12064
12065 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
12066
12067         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
12068         in o32 and o64 ABIs.
12069         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
12070         but getting fixed-size structs passed in registers regardless of
12071         padding in o32 and o64 ABIs.
12072
12073         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
12074         offset before loading address of argument passed by transparent
12075         reference.
12076
12077 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12078
12079         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
12080
12081 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
12082
12083         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
12084         marker such that registers after it are saved.
12085
12086 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12087
12088         * sparc.c (arith_4096_operand): Fix error in last change.
12089
12090 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
12091
12092         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
12093         defaults for MEABI.
12094
12095 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
12096
12097         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
12098         vectors.
12099
12100 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
12101
12102         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
12103
12104 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
12105
12106         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
12107         removed; fix return value.
12108         * combine.c (combine_instructions): Dirtify blocks where we failed to
12109         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
12110         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
12111
12112 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12113
12114         * gcse.c (insert_insn_end_bb): Fix typo in last change.
12115
12116 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
12117
12118         * recog.c (peephole2_optimize): Re-distribute EH edges.
12119
12120 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
12121
12122         * expr.c (expand_expr): Use unsave lang hook.
12123         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
12124         (LANG_HOOKS_INITIALIZER): Update.
12125         * langhooks.h (struct lang_hooks): New hook unsave.
12126         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
12127         (unsave_expr_1): Remove unused lang_unsave_expr_now.
12128         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
12129         (unsave_expr_now): Remove.
12130         * tree.h (unsave_expr_now, lang_unsave,
12131         lang_unsave_expr_now): Remove.
12132         (lhd_unsave): New.
12133
12134 2002-03-08  Andreas Jaeger  <aj@suse.de>
12135
12136         * flow.c (propagate_block_delete_insn): Remove unused variable.
12137
12138 2002-03-08  Kazu Hirata  <kazu@hxi.com>
12139
12140         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
12141         insn length for memory load/store.
12142
12143 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
12144
12145         * doc/install.texi (--with-libiconv-prefix): Document.
12146
12147 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
12148
12149         * doc/sourcebuild.texi: Fix typo.
12150
12151 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
12152
12153         PR c/3711
12154         * builtins.c (std_expand_builtin_va_arg): Do all computations on
12155         trees.
12156
12157 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12158
12159         * rtl.c (copy_most_rtx): Move from here ...
12160         * emit-rtl.c (copy_most_rtx): ... to here.
12161
12162 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
12163
12164         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
12165         SUBTARGET_CPP_SIZE_SPEC.
12166         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
12167
12168         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
12169
12170 2002-03-07  Matt Hiller  <hiller@redhat.com>
12171
12172         * gensupport.c (first_dir_md_include): Renamed from include;
12173         change all references.
12174         (last_dir_md_include): Renamed from last_include; change all
12175         references.
12176         (init_md_reader): Unconditionally initialize base_dir whether or
12177         not filename is a relative path.
12178
12179 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
12180
12181         * config/fp-bit.c (_unord_f2): Compile it in even if
12182         US_SOFTWARE_GOFAST is enabled.
12183
12184         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
12185         NULL_RTX.  Set all HFmode operations as NULL_RTX.
12186         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
12187         NULL_RTX, try reversing the comparison and the operands.
12188
12189 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
12190
12191         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
12192         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
12193         and MATCH_OP_DUP.
12194
12195 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
12196
12197         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
12198
12199 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
12200
12201         * basic-block.h (fixup_abnormal_edges): Declare.
12202         * reload1.c (fixup_abnormal_edges): New function.
12203         * reg-stack.c (convert_regs): Use it.
12204
12205         * gcse.c (insert_insn_end_bb): Handle trapping insns.
12206
12207         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
12208
12209 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
12210
12211         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
12212         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
12213         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
12214         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
12215         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
12216         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
12217         unless x and y could be infinite.
12218         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
12219         Check that the common type of both arguments is a real, even for
12220         targets without unordered comparisons.  Allow an integer argument
12221         to be compared against a real.
12222         (expand_tree_builtin): Use expand_unordered_cmp.
12223         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
12224         * cse.c (fold_rtx): Likewise.  Fix indentation.
12225         * fold-const.c (fold_real_zero_addition_p): New.
12226         (fold): Use it, and the new HONOR_... macros.
12227         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
12228         * jump.c (reversed_comparison_code_parts): After searching for
12229         the true comparison mode, use HONOR_NANS to decide whether it
12230         can be safely reversed.
12231         (reverse_condition_maybe_unordered): Remove IEEE check.
12232         * simplify-rtx.c (simplify_binary_operation): Use the new macros
12233         to decide which simplifications are valid.  Allow the following
12234         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
12235         and (a - -b) to (a + b).
12236         (simplify_relational_operation): Use HONOR_NANS.
12237         * doc/tm.texi: Document the MODE_HAS_... macros.
12238
12239 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
12240
12241         * combine.c (simplify_comparison): If simplifying a logical shift
12242         right and compare with constant, force the comparison to unsigned.
12243
12244 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
12245
12246         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
12247
12248         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
12249         -mabi=no-altivec
12250         (alt_reg_names): Remove % for vrsave.
12251
12252 2002-03-06  Richard Henderson  <rth@redhat.com>
12253
12254         PR optimization/5844
12255         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
12256         if used indicates we've already emitted one copy of an operand.
12257         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
12258         (gen_split): Supply a non-null used.
12259
12260 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
12261
12262         * reload1.c (reload): Unshare all rtl after reload is done.
12263
12264         * simplify-rtx.c (simplify_plus_minus): Do not abort,
12265         but simply fail if the expression is too complex to simplify.
12266         (simplify_gen_binary): Handle simplify_plus_minus failures.
12267
12268 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
12269
12270         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
12271         consistently call delete_trivially_dead_insns after CSE and GCSE;
12272         fix DFI_life dumping; do jump threading after liveness; do crossjumping
12273         after liveness2; update comment in last crossjumping.
12274         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
12275
12276 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
12277
12278         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
12279         after completing fast dead code elimination.
12280
12281         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
12282         COMPARE operator.
12283
12284 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
12285
12286         * version.c:  Fix misplaced leading blanks on first line.
12287
12288 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
12289
12290         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
12291
12292 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
12293
12294         * cfgcleanup.c (mentions_nonequal_regs): New function.
12295         (thread_jump): Use it.
12296         * toplev.c (rest_of_compilation): Run jump threading after
12297         liveness.
12298
12299 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
12300
12301         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
12302         patch.
12303
12304 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
12305
12306         * predict.c (estimate_bb_frequencies): Do not reload the
12307         frequencies from notes.
12308
12309 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
12310
12311         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
12312         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
12313
12314         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
12315         delete_noop_moves): Return indeger.
12316         * flow.c (ndead): New variable.
12317         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
12318         BB argument; update callers.
12319         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
12320         (life_analysis): Do not call purge_all_dead_edges.
12321         (update_life_info): Return number of deleted insns; print statistics.
12322         (update_life_info_in_dirty_blocks): likewise.
12323         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
12324         return number of insns deleted.
12325
12326         * cse.c: Include timevar.h
12327         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
12328         iterate until stabilizes; print statistics; return number of killed
12329         insns.
12330         * Makefile.in: (cse.o): Add timevar.h dependency
12331         * rtl.h (delete_trivially_dead_insns): New.
12332         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
12333         * toplev.c (rest_of_compilation): Update callers.
12334
12335         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
12336         (try_optimize_cfg): Do not update liveness.
12337         (cleanup-cfg): Loop until try_optimize_cfg and dead code
12338         removal stabilizes; use delete_trivially_dead_insns.
12339
12340         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
12341
12342 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
12343
12344         * cppmain.c (setup_callbacks): Disable #pragma and #ident
12345         callbacks when processing assembly language.
12346
12347 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12348
12349         * pa.h (ASM_FILE_END): Define.
12350         * som.h (ASM_FILE_END): Delete.
12351
12352         * pa.c (function_arg): Don't pass floats in general registers in
12353         indirect calls if TARGET_ELF32.
12354
12355 2002-03-05  Richard Henderson  <rth@redhat.com>
12356
12357         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
12358
12359 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
12360
12361         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
12362
12363 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
12364
12365         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
12366         -r command line.  Don't hide any symbols if not building
12367         shared libgcc.
12368
12369 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
12370
12371         * cfg.c (dump_flow_info): Warn about profile mismatches.
12372         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
12373         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
12374
12375 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
12376
12377         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
12378         wide volatile memory by parts.
12379
12380 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
12381
12382         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
12383         is NULL.
12384
12385 2002-03-05  Richard Henderson  <rth@redhat.com>
12386
12387         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
12388
12389 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
12390
12391         * toplev.c (documented_lang_options): Document more
12392         language-specific options.
12393         * doc/invoke.texi (Warning Options): Correct documentation for
12394         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
12395         * c-decl.c (c_decode_option): Use a table to handle warning options.
12396
12397 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
12398
12399         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
12400         parameter to mmix_encode_section_info.
12401         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
12402         relocatably.  Always produce ELF, not mmo if linking relocatably.
12403         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
12404         first is non-zero, don't add symbol prefix.
12405         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
12406         prototype accordingly.
12407
12408 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
12409
12410         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
12411
12412 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
12413
12414         * configure.in: Increase required makeinfo version to 4.1.
12415         * configure: Regenerate.
12416
12417 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
12418
12419         * .cvsignore: Remove *.info* and genrtl*; these files are generated
12420         elsewhere now.
12421
12422 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
12423
12424         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
12425         * doc/invoke.texi: Fix @math uses.
12426
12427 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
12428
12429         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
12430         removal
12431
12432 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
12433
12434         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
12435         (powerpc-*-eabisimaltivec*): Same.
12436
12437         * config/rs6000/t-ppcendian: New.
12438
12439 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12440
12441         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
12442         nonimmediate_src_operand and nonimmediate_lsrc_operand to
12443         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
12444
12445 2002-03-03  Richard Henderson  <rth@redhat.com>
12446
12447         * toplev.c (rest_of_decl_compilation): Revert last two changes.
12448
12449 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
12450
12451         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
12452         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
12453         tree.c, config/m68k/m68k.c:
12454         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
12455         REAL_ARITHMETIC blocks unconditional.  Delete some further
12456         #ifdef blocks predicated on REAL_ARITHMETIC.
12457         * flags.h, toplev.c: Delete remaining references to
12458         flag_pretend_float.
12459
12460         * doc/invoke.texi: Remove documentation of -fpretend-float.
12461         * doc/tm.texi: Describe the various REAL_* macros as provided by
12462         real.h, not by the target configuration files.
12463
12464         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
12465         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
12466         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
12467         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
12468         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
12469         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
12470         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
12471         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
12472         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
12473         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
12474         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
12475         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
12476         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
12477         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
12478         config/xtensa/xtensa.h:
12479         Do not define, undefine, or mention in comments any of
12480         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
12481         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
12482         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
12483         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
12484         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
12485         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
12486         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
12487         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
12488         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
12489
12490 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12491
12492         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
12493         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
12494         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
12495         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
12496         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
12497         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
12498         Delete.
12499         * defaults.h (BITS_PER_WORD): Define.
12500         * doc/tm.texi (BITS_PER_WORD): Document default value.
12501
12502         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
12503         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
12504         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
12505
12506 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12507
12508         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
12509         lieu of explicit sizeof/sizeof.
12510         * i386.c (override_options, ix86_init_mmx_sse_builtins,
12511         ix86_expand_builtin): Likewise.
12512         * mips.c (mips_add_gc_roots): Likewise.
12513         * mmix.c (mmix_output_condition): Likewise.
12514         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
12515         altivec_init_builtins): Likewise.
12516         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
12517         * cppexp.c (Nsuff, parse_number): Likewise.
12518         * cppinit.c (builtin_array_end): Likewise.
12519         * gcc.c (n_default_compilers, process_command): Likewise.
12520         * genpreds.c (output_predicate_decls): Likewise.
12521         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
12522         * lcm.c (N_ENTITIES): Likewise.
12523         * stor-layout.c (set_sizetype): Likewise.
12524
12525 2002-03-03  Richard Henderson  <rth@redhat.com>
12526
12527         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
12528         for types or labels.
12529
12530 2002-03-03  Richard Henderson  <rth@redhat.com>
12531
12532         * c-decl.c (start_decl): Initialized variables are not common.
12533
12534 2002-03-02  Per Bothner  <per@bothner.com>
12535
12536         * gcc.c (option_map):  Suport new --bootclasspath option.
12537         --CLASSPATH is now just an alias for --classpath.
12538
12539 2002-03-02  Richard Henderson  <rth@redhat.com>
12540
12541         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
12542         load if "internal" visibility.
12543         * doc/extend.texi: Document visibility meanings.
12544
12545 2002-03-02  Richard Henderson  <rth@redhat.com>
12546
12547         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
12548         to functions as well.
12549
12550 2002-03-02  Richard Henderson  <rth@redhat.com>
12551
12552         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
12553         (handle_visibility_attribute): Don't call assemble_visibility.
12554         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
12555         without asmspec.  Invoke assemble_alias when needed.
12556         * varasm.c (maybe_assemble_visibility): New.
12557         (assemble_start_function, assemble_variable, assemble_alias): Use it.
12558
12559 2002-03-02  Richard Henderson  <rth@redhat.com>
12560
12561         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
12562         invoke ENCODE_SECTION_INFO with first call flag.
12563
12564         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
12565         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
12566         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
12567         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
12568         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
12569         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
12570         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
12571         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
12572         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
12573         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
12574         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
12575         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
12576         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
12577         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
12578         config/mcore/mcore-protos.h, config/mcore/mcore.c,
12579         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
12580         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
12581         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
12582         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
12583         config/sh/sh.h, config/sparc/sparc.h,
12584         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
12585         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
12586         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
12587         FIRST argument.  As needed, examine it and do nothing.
12588
12589         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
12590         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
12591         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
12592
12593         * config/arm/t-pe (pe.o): Add dependencies.
12594
12595 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12596
12597         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
12598         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
12599         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
12600         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
12601         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
12602         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
12603         * defaults.h (BITS_PER_UNIT): Define.
12604         * doc/tm.texi (BITS_PER_UNIT): Document default value.
12605
12606 2002-03-02  Kazu Hirata  <kazu@hxi.com>
12607
12608         * config/h8300/h8300-protos.h: Add a prototype for
12609         compute_a_shift_length.
12610         * config/h8300/h8300.c (h8300_asm_insn_count): New.
12611         (compute_a_shift_length): Likewise.
12612         (h8300_adjust_insn_length): Do not adjust insn length of shift
12613         insns.
12614         * config/h8300/h8300.md (anonymous shift patterns): Use
12615         compute_a_shift_length.
12616
12617 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12618
12619         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
12620         trunc_int_for_mode.
12621
12622         * emit-rtl.c (offset_address): Call update_temp_slot_address.
12623
12624 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12625
12626         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
12627         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
12628         * flags.h (flag_zero_initialized_in_bss): Declare.
12629         * toplev.c (flag_zero_initialized_in_bss): New flag.
12630         (lang_independent_options): Add flag_zero_initialized_in_bss.
12631         * tree.c (initializer_zerop): New function.
12632         * tree.h (initializer_zerop): Declare.
12633         * varasm.c (assemble_variable): If we can emit bss, put zero
12634         initializers in the bss section.
12635
12636 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
12637
12638         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
12639         like more than one symbol per .weak directive.
12640
12641 2002-03-01  Richard Henderson  <rth@redhat.com>
12642
12643         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
12644         adjust argument_pointer by pretend_args_size.
12645         (ia64_va_start): Adjust va_start address by -pretend_args_size.
12646
12647 2002-03-01  Kazu Hirata  <kazu@hxi.com>
12648
12649         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
12650
12651 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
12652
12653         * toplev.c (rest_of_compilation): Delete dead jumptables before
12654         loop.
12655         * flow.c (delete_dead_jumptables): Make global.
12656         * rtl.h (delete_dead_jumptables): Declare.
12657
12658 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
12659
12660         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
12661         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
12662         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
12663
12664 2002-03-01  Kazu Hirata  <kazu@hxi.com>
12665
12666         * config/h8300/h8300-protos.h: Fix formatting.
12667         * config/h8300/h8300.c: Likewise.
12668         * config/h8300/h8300.h: Likewise.
12669
12670 2002-03-01  Kazu Hirata  <kazu@hxi.com>
12671
12672         * config/h8300/h8300.c (print_operand): Support 16-bit
12673         constant addresses.
12674         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
12675
12676 2002-02-28  Richard Henderson  <rth@redhat.com>
12677
12678         * expmed.c (store_bit_field): Prevent generation of CONCATs;
12679         pun complex values as integers; use gen_lowpart instead of
12680         gen_rtx_SUBREG.
12681         (extract_bit_field): Likewise.
12682
12683 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
12684             David Edelsohn  <edelsohn@gnu.org>
12685
12686         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
12687         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
12688         (SUPPORTS_WEAK): Likewise.
12689         * output.h (add_weak): Add tree param.
12690         * varasm.c (add_weak): Likewise.  Save decl.
12691         (struct weak_syms): Add decl field.
12692         (mark_weak_decls): New function.
12693         (init_varasm_once): ggc_add_root mark_weak_decls.
12694         (assemble_start_function): Use ASM_WEAKEN_DECL.
12695         (assemble_variable): Likewise.
12696         (assemble_alias): Likewise.
12697         (declare_weak): Pass decl to add_weak.
12698         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
12699         (remove_from_pending_weak_list): Declare and define for
12700         ASM_WEAKEN_DECL.
12701         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
12702         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
12703         * defaults.h (SUPPORTS_WEAK): Likewise.
12704         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
12705         .weak for code sym.  Do emit .size for descriptor sym.
12706         (ASM_DECLARE_FUNCTION_SIZE): Define.
12707         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
12708         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
12709         .lglobl unless TARGET_XCOFF.  Formatting fixes.
12710         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
12711         .weak for code sym.
12712         (HANDLE_PRAGMA_WEAK): Remove.
12713         (ASM_WEAKEN_LABEL): Remove.
12714         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
12715
12716 2002-03-01  Jason Merrill  <jason@redhat.com>
12717
12718         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
12719         (TARGET_EXPR_CLEANUP): New macro.
12720
12721 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
12722
12723         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
12724         to take ptr_extend into account as third type of extension.
12725         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
12726         fields used by SUBREG_PROMOTED_UNSIGNED_P.
12727         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
12728         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
12729         * calls.c (precompute_arguments): Use new macro.
12730         (expand_call): Ditto.
12731         * combine.c (nonzero_bits): Ditto.
12732         (record_promoted_value): Ditto.
12733         * expr.c (store_expr): Ditto.
12734         (expand_expr): Ditto.
12735         * function.c (assign_parms): Ditto.
12736
12737 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
12738
12739         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
12740         override -shared and -shared-libgcc.
12741
12742 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
12743
12744         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
12745         of "ultrasparc".
12746         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
12747         to be broken.
12748
12749 2002-02-28  Richard Henderson  <rth@redhat.com>
12750
12751         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
12752         4 cycle latency from MM producers.
12753         (ia64_internal_sched_reorder): Likewise with pipeline flush.
12754
12755 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
12756
12757         * mklibgcc.in: Don't use GNU make extension.
12758
12759 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
12760
12761         * c-parse.in (STATIC): New terminal.
12762         (scspec): New non-terminal.  Update productions accordingly.
12763         (program): Remove bogus ifc / end ifc.
12764         (array_declarator): Simplify production using STATIC.
12765
12766 2002-02-28  Jim Meyering  <meyering@lucent.com>
12767
12768         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
12769         \a still means TARGET_BELL.
12770
12771 2002-02-28  Richard Henderson  <rth@redhat.com>
12772
12773         * haifa-sched.c (sched_emit_insn): New.
12774         (schedule_block): Use last_scheduled_insn to track last insn.
12775         * sched-int.h (sched_emit_insn): Prototype.
12776         * config/ia64/ia64.c (last_issued): Remove.
12777         (ia64_variable_issue): Don't set it.
12778         (nop_cycles_until): Use sched_emit_insn.
12779
12780 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
12781
12782         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
12783         extended constants.
12784
12785 2002-02-28  Kazu Hirata  <kazu@hxi.com>
12786
12787         * config/h8300/h8300.c: Fix formatting.
12788         * config/h8300/h8300.h: Likewise.
12789
12790 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
12791
12792         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
12793         which may overwrite the high byte of the frame pointer.
12794
12795 2002-02-28  Bo Thorsen  <bo@suse.de>
12796
12797         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
12798         (STARTFILE_SPEC): Add 64 bit files.
12799         (ENDFILE_SPEC): Likewise.
12800
12801 2002-02-28  Jason Merrill  <jason@redhat.com>
12802
12803         * c-decl.c (finish_function): Only warn about missing return
12804         statement with -Wreturn-type.
12805
12806 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
12807
12808         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
12809
12810         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
12811         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
12812
12813 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
12814
12815         * basic-block.h (BB_REACHABLE): Renumber.
12816         (BB_DIRTY, BB_NEW): New flags.
12817         (clear_bb_flags): Declare.
12818         (update_life_info_in_dirty_blocks): Declare.
12819         * cfg.c (clear_bb_flags): New function.
12820         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
12821         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
12822         reorder_insns, emit_insn_after): Mark block as dirty.
12823         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
12824         (update_life_info_in_dirty_blocks): New function.
12825         * recog.c (apply_change_group): Dirtify block.
12826
12827         * cse.c (cse_insn): Reorder emitting of jump insn to keep
12828         cfg consistent.
12829         * gcse.c (delete_null_pointer_checks): Likewise.
12830
12831         * toplev.c (dump_file_index): Move cse2 after bp,
12832         add DFI_null
12833         (dump_file_info): Similary.
12834         (rest_of_compilation): Avoid most of CFG rebuilds;
12835         do first if converision after null pointer checks, do cse2
12836         after branch prediction; avoid full liveness rebuild after
12837         initializing subregs.
12838         * invoke.texi (-d options): Document -du, renumber.
12839
12840         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
12841         (notice_new_block): Do not set BB_UPDATE_LIFE.
12842         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
12843          merge_blocks_move_successor_nojumps, merge_blocks,
12844          try_crossjump_to_edge): Likewise.
12845         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
12846         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
12847         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
12848         (merge_of_block): Do not use life_data_ok.
12849         (find_if_case_1): Do not use SET_UPDATE_LIFE.
12850         (if_convert): Use BB_DIRTY mechanizm to update life.
12851         * lcm.c (optimize_mode_switching): Update
12852         update_life_info_in_dirty_blocks
12853
12854 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
12855
12856         * Makefile.in (integrate.o): Update.
12857         * c-decl.c (copy_lang_decl): Rename.
12858         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
12859         * integrate.c: Include langhooks.h.
12860         (copy_decl_for_inlining): Update to use langhook.
12861         * langhooks-def.h (lhd_do_nothing_t,
12862         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
12863         (LANG_HOOKS_INITIALIZER): Update.
12864         * langhooks.c (lhd_do_nothing_t): New.
12865         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
12866         * tree.h (copy_lang_decl): Remove.
12867 objc:
12868         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
12869
12870 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
12871
12872         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
12873         POST_DEC, and POST_MODIFY.
12874
12875 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
12876
12877         * c-typeck.c (digest_init): Remove unused parameter; all
12878         callers changed.
12879
12880 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
12881
12882         * expmed.c (expand_shift): Correctly test for low part of a
12883         subreg.
12884
12885 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
12886
12887         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
12888         insn UIDs with insn addresses.
12889
12890 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
12891
12892         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
12893         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
12894         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
12895         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
12896         gcc.c, toplev.c: Delete code implementing -traditional mode.
12897
12898         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
12899         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
12900         Document removal of -traditional mode for compilation, and
12901         remove documentation only relevant to that mode.
12902
12903         * config/nextstep.h, config/ptx4.h, config/svr4.h,
12904         config/convex/convex.h, config/d30v/d30v.h,
12905         config/i386/dgux.h, config/i386/osf1elf.h,
12906         config/i386/osfelf.h, config/i386/osfrose.h,
12907         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
12908         config/m68k/hp310.h, config/m88k/dgux.h,
12909         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
12910         config/m88k/m88k.h, config/m88k/openbsd.h,
12911         config/mips/abi64.h, config/mips/osfrose.h,
12912         config/mips/svr4-5.h, config/mips/svr4-t.h,
12913         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
12914         config/stormy16/stormy16.h: Remove all references to
12915         -traditional from target specs.  Delete all mention of the
12916         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
12917         delete a couple of commented-out definitions of
12918         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
12919         to -traditional.
12920
12921         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
12922         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
12923
12924 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
12925
12926         * mklibgcc.in: Don't use \n in a line subject to
12927         interpretation by echo.
12928
12929 2002-02-27  Graham Stott  <grahams@redhat.com>
12930
12931         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
12932         Constify NAME.
12933
12934         * loop.c (prescan_loop): Handle PARALLEL.
12935
12936         * unroll.c (loop_iterations): Return 0 if the add_val for
12937         a BIV is REG.
12938
12939         * final.c (output_operand_lossage): Constify PFX_STR.
12940
12941         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
12942
12943 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
12944
12945         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
12946         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
12947
12948 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
12949
12950         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
12951
12952 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
12953
12954         * cpplex.c (_cpp_lex_token): Handle directives in macro
12955         arguments.
12956         * cpplib.c (_cpp_handle_directive): Save and restore state
12957         if parsing macro args when entering a directive.
12958         * cppmacro.c (collect_args): No need to handle directives
12959         in macro arguments.
12960         (enter_macro_context, replace_args): Use the original macro
12961         definition in case it was redefined whilst collecting arguments.
12962 doc:
12963         * cpp.texi: Update.
12964
12965 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
12966
12967         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
12968         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
12969         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
12970         method on AIX.
12971         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
12972         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
12973         (load_toc_v4_PIC_2): Same.
12974
12975 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
12976
12977         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
12978
12979 2002-02-26  Richard Henderson  <rth@redhat.com>
12980
12981         * config/alpha/alpha.md (ashldi_se): Re-enable.
12982
12983 2002-02-26  Richard Henderson  <rth@redhat.com>
12984
12985         * config/alpha/alpha.c (alpha_encode_section_info): Examine
12986         MODULE_LOCAL_P; improve commentary.
12987
12988 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
12989
12990         * doc/cpp.texi: Clarify documentation of relationship between
12991         #line and #include.
12992
12993 2002-02-26  Kazu Hirata  <kazu@hxi.com>
12994
12995         * config/h8300/h8300-protos.h: Update the prototype for
12996         compute_logical_op_length.  Add the prototype for
12997         compute_logical_op_cc.
12998         * config/h8300/h8300.c (compute_logical_op_length): Figure out
12999         code from operands.
13000         (compute_logical_op_cc): New.
13001         * config/h8300/h8300.md: Combine all the logical op patterns
13002         in HImode and SImode.  Use compute_logical_op_cc.
13003
13004 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
13005
13006         * config/i386/i386.c (print_operand): Don't append ATT-style
13007         length suffixs to x87 opcodes when in Intel mode.
13008
13009 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
13010
13011         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
13012         (init_emit_once): Update calls.
13013         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
13014         (init_syntax_once): Prototype.
13015
13016 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13017
13018         * pa-linux.h (LIB_SPEC): Update definition.
13019         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
13020
13021 2002-02-26  Richard Henderson  <rth@redhat.com>
13022
13023         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
13024         if we emitted a stop bit.
13025
13026 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
13027
13028         * configure.in (libgcc_visibility): Substitute.
13029         * configure: Rebuilt.
13030         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
13031         defined symbols .hidden.
13032
13033 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
13034
13035         * attribs.c (c_common_attribute_table): Add visibility.
13036         (handle_visibility_attribute): New function.
13037         * varasm.c (assemble_visibility): New function.
13038         * output.h (assemble_visibility): Add prototype.
13039         * tree.h (MODULE_LOCAL_P): Define.
13040         * crtstuff.c (__dso_handle): Use visibility attribute.
13041         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
13042         for MODULE_LOCAL_P symbols too.
13043         * config/ia64/ia64.c (ia64_encode_section_info): Handle
13044         MODULE_LOCAL_P symbols the same way as local symbols.
13045         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
13046         into .sdata/.sbss by the user.
13047         * doc/extend.texi (Function Attributes): Document visibility
13048         attribute.
13049
13050 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
13051
13052         PR debug/5770
13053         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
13054         STRING_CST initializer spanning the whole variable without
13055         embedded zeros.
13056         If expand_expr returned MEM, don't use it.
13057
13058 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
13059
13060         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
13061         generate a die for the lexical block.
13062
13063 2002-02-26  Kazu Hirata  <kazu@hxi.com>
13064
13065         * config/h8300/h8300-protos.h: Add a prototype for
13066         compute_logical_op_length.
13067         * config/h8300/h8300.c (compute_logical_op_length): New.
13068         * config/h8300/h8300.md (anonymous logical patterns): Use
13069         compute_logical_op_length for length.
13070
13071 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
13072
13073         * dwarf2out.c (modified_type_die): Do not call type_main_variant
13074         for vectors.
13075         (gen_type_die): Same.
13076
13077         * attribs.c (handle_vector_size_attribute): Set debug information.
13078
13079 2002-02-26  Daniel Egger  <degger@fhm.edu>
13080
13081         * config/rs6000/rs6000.md: Swap define_insn attributes to
13082         fix incorrect generation of merge high instructions instead
13083         of merge low.
13084
13085 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
13086
13087         * c-typeck.c (really_start_incremental_init): Use
13088         bitsize_zero_node for vectors.
13089
13090 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
13091
13092         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
13093         ("*set_vrsave_internal"): Same.
13094
13095 2002-02-25  Richard Henderson  <rth@redhat.com>
13096
13097         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
13098         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
13099
13100 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
13101
13102         PR target/5755
13103         * config/i386/i386.c (ix86_return_pops_args): Only pop
13104         fake structure return argument if it was passed on the stack.
13105
13106 2002-02-25  Jason Merrill  <jason@redhat.com>
13107
13108         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
13109         RESULT_DECL.
13110
13111 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
13112
13113         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
13114         link with shared_name only.
13115         * doc/invoke.texi (Link Options): Document new behavior.
13116
13117 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
13118
13119         * c-typeck.c (push_init_level): Handle vectors.
13120
13121 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
13122
13123         * config/sparc/sparc.c (const64_high_operand): Zero-extend
13124         operands of SPARC_SETHI_P.
13125         (input_operand): Likewise.
13126         (sparc_emit_set_const32): Likewise.
13127         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
13128         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
13129         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
13130         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
13131         (movdi_insn_sp64_vis): Likewise.
13132         (movdi split, movdf split): Use SETHI32.
13133         * doc/md.texi: Document SPARC constraints L, M and N.
13134
13135 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
13136
13137         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
13138         ("*set_vrsave_internal"): use mfspr for Darwin.
13139
13140         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
13141         gen_get_vrsave_internal.
13142
13143 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13144
13145         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
13146
13147 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
13148
13149         * cpplex.c (cpp_interpret_charconst): Get signedness or
13150         otherwise of wide character constants correct.
13151         * cppexp.c (lex): Get signedness of wide charconsts correct.
13152
13153 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13154
13155         * optabs.c (widen_operand): Only call convert_modes for
13156         promoted SUBREG if signedness matches.
13157         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
13158
13159 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13160
13161         * cpplib.c (glue_header_name): Use local buffer to build up
13162         header name.
13163
13164 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13165
13166         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
13167
13168 2002-02-23  Kazu Hirata  <kazu@hxi.com>
13169
13170         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
13171         H8/300[HS] separately.
13172         * config/h8300/h8300.md: Remove the early clobber constraint
13173         from bit field patterns.
13174
13175 2002-02-23  Kazu Hirata  <kazu@hxi.com>
13176
13177         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
13178         register_operand.
13179         (mulhisi3): Likewise.
13180         (umulqisi3): Likewise.
13181         (umulhisi3): Likewise.
13182
13183 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
13184
13185         * cppinit.c (output_deps): Correct test for stdout output.
13186         (init_dependency_output): Cure warning.
13187
13188 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13189
13190         * expr.c (store_expr): When converting expression to promoted
13191         equivalent type, allow using SUBREG_REG of TARGET as the target
13192         of the expansion of EXP.
13193         * loop.c (basic_induction_var, case SUBREG): Always look inside.
13194         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
13195         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
13196         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
13197         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
13198
13199 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
13200
13201         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
13202         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
13203         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
13204
13205 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
13206
13207         PR optimization/5747
13208         * loop.c (scan_loop): Update reg info if move_movables created new
13209         pseudos.
13210
13211 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
13212
13213         * gcc.c (init_gcc_spec): Revert last change.
13214
13215 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
13216
13217         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
13218         gpc_reg_operand constraint.
13219
13220 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
13221
13222         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
13223         Simplify comparison of `low'.
13224         (add_operand): Fix formatting.
13225         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
13226         (mask_operand): Disallow mask to wrap in 64-bit mode.
13227         (rs6000_stack_info): Remove redundant test setting push_p.
13228         (output_toc): Fix formatting.
13229         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
13230         cc_reg_not_cr0_operand constraint.
13231         (booldi3, boolcdi3 splitters): Same.
13232
13233 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
13234
13235         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
13236
13237 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
13238
13239         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
13240         gcc invoked with -shared-libgcc.
13241
13242 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
13243
13244         PR c++/5748
13245         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
13246         decl if any of elements was TREE_USED.
13247
13248 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
13249
13250         * config/sparc/sol2.h: Don't include sys/mman.h.
13251         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
13252         (arith_4096_operand): Don't throw high bits away.
13253         (const64_operand): Take sign extension of CONST_INTs into account.
13254         (const64_high_operand, sparc_emit_set_const32): Likewise.
13255         (GEN_HIGHINT64): Likewise.
13256         (sparc_emit_set_const64_quick1): Likewise.
13257         (const64_is_2insns): Likewise.
13258         (print_operand): Use trunc_int_for_mode for sign extension.
13259         * config/sparc/sparc.h (SMALL_INT32): Likewise.
13260         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
13261         chars.  Assume CONST_INT is already properly sign-extended.
13262         (movdi split): Sign-extend each SImode part.
13263         (andsi3 split): Don't mask high bits off, so that result
13264         remains properly sign-extend.
13265         (iorsi3 split): Likewise.
13266         (xorsi3 split): Likewise.
13267
13268 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
13269
13270         * fold-const.c (fold): Fix typo in comments.
13271
13272 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
13273
13274         * Makefile.in (langhooks.o): Update dependencies.
13275
13276 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
13277
13278         * langhooks.c: Include flags.h.
13279
13280 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
13281
13282         * testsuite/gcc.dg/attr-alwaysinline.c: New.
13283
13284         * c-common.c (c_common_post_options): Set inline trees by
13285         default.
13286
13287         * doc/extend.texi (Function Attributes): Document always_inline
13288         attribute.
13289         Update documentation about inlining when not optimizing.
13290
13291         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
13292
13293         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
13294         unless DECL_ALWAYS_INLINE.
13295
13296         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
13297         unless DECL_ALWAYS_INLINE.
13298         (c_disregard_inline_limits): Disregard if always_inline set.
13299
13300         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
13301         Disregard if always_inline set.
13302         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
13303         unless DECL_ALWAYS_INLINE.
13304
13305         * attribs.c (handle_always_inline_attribute): New.
13306         (c_common_attribute_table): Add always_inline.
13307
13308         * config/rs6000/altivec.h: Add prototypes for builtins
13309         requiring the always_inline attribute.
13310
13311 2002-02-21  Eric Christopher  <echristo@redhat.com>
13312
13313         * expmed.c (store_bit_field): Try to simplify the subreg
13314         before generating a new one when when the mode size of
13315         value is less than maxmode.
13316
13317 2002-02-21  Richard Henderson  <rth@redhat.com>
13318
13319         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
13320         than gen_rtx_PLUS to form the sum.
13321         * explow.c (force_reg): Rearrange to not allocate new pseudo
13322         when force_operand returns a register.
13323         * expr.c (expand_assignment): Allow offset_rtx expansion to
13324         return a sum.  Do not force addresses into registers.
13325         (expand_expr): Likewise.
13326         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
13327         to canonicalize arithmetic that didn't simpify.
13328         (simplify_plus_minus): New argument force; update
13329         all callers.  Don't split CONST unless we can do something with it,
13330         and wouldn't lose the constness of the operands.
13331
13332         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
13333         that we generated earlier.
13334
13335 2002-02-21  Tom Tromey  <tromey@redhat.com>
13336
13337         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13338         (output_line_info): Use constant `1', with a long explanatory
13339         comment.
13340         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
13341
13342 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
13343
13344         * jump.c (redirect_jump): If old label has no UID, don't try to
13345         delete it.
13346
13347 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
13348
13349         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
13350         If input is constant, do shifts at compile time.
13351
13352 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
13353
13354         * doc/extend.texi: Fix some more overfull hboxes.
13355
13356 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
13357
13358         PR optimization/4994
13359         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
13360         register moves.
13361
13362 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
13363
13364         PR c++/4574
13365         * expr.h (expand_and): Add mode argument.
13366         * expmed.c (expand_and): Add mode argument.
13367         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
13368         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
13369         * except.c (expand_builtin_extract_return_addr): Likewise.
13370         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
13371         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
13372         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
13373         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
13374         * config/c4x/c4x.md: Use GEN_INT (x) instead of
13375         gen_rtx (CONST_INT, VOIDmode, x).
13376
13377 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
13378
13379         PR c/4697:
13380         * stmt.c (warn_if_unused_value): Move side effects test once more.
13381
13382 2002-02-20  Torbjorn Granlund  <tege@swox.com>
13383
13384         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
13385         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
13386
13387 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
13388
13389         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
13390         SUBREG or ZERO_EXTEND.
13391
13392 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
13393
13394         * sh.h (current_function_anonymous_args): Remove.
13395         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
13396         of current_function_varargs and current_function_stdarg is set.
13397         * sh.c (sh_expand_prologue): Check current_function_varargs /
13398         current_function_stdarg / TARGET_SH5 instead of
13399         current_function_anonymous_args.
13400
13401         * sh64.h (TARGET_VERSION): Define.
13402
13403 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
13404
13405         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
13406         VRSAVE_REGNO on TARGET_ALTIVEC.
13407
13408 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
13409
13410         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
13411         bits of SImode const_int.
13412         (includes_rshift_p): Likewise.
13413         (print_operand): Call mask_operand and mask64_operand with correct
13414         mode.
13415         (rs6000_output_function_epilogue): Pad traceback table to word.
13416         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
13417         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
13418         mask64_operand with correct mode.
13419         (FUNCTION_ARG_REGNO_P): Correct parentheses.
13420
13421 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
13422
13423         PR debug/4461
13424         * varasm.c (get_pool_constant_mark): New.
13425         * rtl.h (get_pool_constant_mark): Add prototype.
13426         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
13427         be represented if it has not been output.
13428
13429 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
13430
13431         * combine.c (do_SUBST): Sanity check substitutions of
13432         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
13433         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
13434         CONST_INT into its operand.
13435         (known_cond): Likewise, for ZERO_EXTEND.
13436         * simplify-rtx.c (simplify_unary_operation): Fix condition to
13437         allow for simplification of wide modes.  Reject CONST_INTs in
13438         ZERO_EXTEND when their actual mode is not given.
13439
13440 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
13441
13442         * c-decl.c (pushdecl): If no global declaration is found for an
13443         extern declaration in block scope, try a limbo one.
13444
13445 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
13446
13447         PR c++/4401
13448         * c-common.c (pointer_int_sum): Moved from...
13449         * c-typeck.c (pointer_int_sum): ...here.
13450         * c-common.h (pointer_int_sum): Add prototype.
13451
13452 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
13453
13454         PR c++/5713
13455         * c-decl.c (duplicate_decls): Return 0 if issued error about
13456         redeclaration.
13457
13458 2002-02-20  Roger Sayle  <roger@eyesopen.com>
13459             Jakub Jelinek  <jakub@redhat.com>
13460
13461         PR c/4389
13462         * tree.c (host_integerp): Ensure that the constant integer is
13463         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
13464         when pos is zero or non-zero respectively.  Clarify comment.
13465         * c-format.c (check_format_info_recurse): Fix host_integerp
13466         usage; the pos argument should be zero when assigning to a
13467         signed HOST_WIDE_INT.
13468
13469 2002-02-20  Richard Henderson  <rth@redhat.com>
13470
13471         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
13472         of the operand, rather than assuming TImode.
13473         (ix86_expand_binop_builtin): Cope with commutative patterns
13474         using nonimmediate_operand for both operands.
13475         (ix86_expand_timode_binop_builtin): Likewise.
13476         (ix86_expand_store_builtin): Validate operand 1.
13477         (ix86_expand_unop1_builtin): Likewise.
13478
13479 2002-02-20  Philip Blundell  <philb@gnu.org>
13480
13481         PR 5705
13482         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
13483
13484 2002-02-20  Richard Henderson  <rth@redhat.com>
13485
13486         PR c/5615
13487         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
13488
13489 2002-02-20  Tom Tromey  <tromey@redhat.com>
13490
13491         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13492         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13493         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13494         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13495         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
13496         unconditionally.
13497
13498 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
13499
13500         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
13501           for (const_int 0) in X not just INTVAL.
13502
13503 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
13504
13505         * doc/extend.texi: Avoid or reduce overfull hboxes.
13506
13507 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
13508
13509         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
13510         operations if the field does not start at a mode boundary.
13511
13512 2001-02-20      Joel Sherrill <joel@OARcorp.com>
13513
13514         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
13515         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
13516         Also done for -Acpu and -Amachine.
13517
13518 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
13519
13520         * cppinit.c (init_dependency_output): Take deps output file
13521         from -o if none given with -MF.  Suppress normal output.
13522         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
13523         * doc/cpp.texi, doc/invoke.texi: Update.
13524
13525 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
13526
13527         * toplev.c (output_quoted_string): Write unprintable
13528         characters with octal escapes.
13529
13530 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
13531
13532         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
13533         really_call_used[VRSAVE_REGNO] if not Altivec.
13534
13535 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
13536
13537         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
13538         MODE_MASK.
13539         (constant_pool_expr_1): Fix formatting.
13540         (rs6000_legitimize_reload_address): Likewise.
13541
13542 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13543
13544         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
13545         now that we have one.
13546
13547 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
13548
13549         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
13550         end of first block of bitfields (which was only seven bits);
13551         rename dummy to unused_1; remove comment which is no longer true.
13552
13553 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
13554
13555         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
13556
13557 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
13558
13559         PR 5399
13560         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
13561         if generating PIC.
13562
13563         PR 5054
13564         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
13565         arm_is_longcall_p rather than inspecting call-type cookie
13566         directly.
13567         (call_value_insn) [TARGET_THUMB]: Likewise.
13568
13569 2002-02-19  Graham Stott  <grahams@redhat.com>
13570
13571         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
13572
13573 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
13574
13575         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
13576         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
13577         (FP_SAVE_INLINE): Delete.
13578
13579         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
13580         * config/rs6000/eabi.asm: Remove ABI save restore routines.
13581         * config/rs6000/t-ppccomm: Build crtsavres.o.
13582         * config/rs6000/crtsavres.asm: New file.
13583
13584 2002-02-19  Philip Blundell  <philb@gnu.org>
13585
13586         * config/arm/arm.c (use_return_insn): Don't reject interrupt
13587         functions.
13588         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
13589         (output_return_instruction): Allow interrupt functions to return with
13590         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
13591         (arm_expand_prologue): Subtract 4 before stacking LR in an
13592         interrupt function.
13593
13594 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
13595
13596         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
13597         decl, not just FUNCTION_DECL.
13598         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
13599         (arm_assemble_integer): Likewise.
13600         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
13601         marked local.
13602
13603 2002-02-19  matthew green  <mrg@eterna.com.au>
13604
13605         * config.gcc (sparc-*-netbsdelf*): Enable target.
13606         (sparc64-*-netbsd*): New target.
13607         * config/sparc/netbsd-elf.h: New file.
13608         * config/sparc/t-netbsd64: New file.
13609
13610 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
13611
13612         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
13613
13614 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
13615
13616         * doc/invoke.texi: explicitly list the style guidelines that
13617         -Weffc++ checks for.
13618
13619 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
13620
13621         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
13622
13623 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
13624
13625         PR other/5718
13626         * gcc.c (cpp_unique_options): Treat -o as indicating object file
13627         only if not -E.  If -E, pass -o through to the preprocessor.
13628
13629 2002-02-19  Kazu Hirata  <kazu@hxi.com>
13630
13631         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
13632         register number with an appropriate macro.
13633
13634 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
13635
13636         * doc/rtl.texi (Constants): Close @code tag.
13637
13638 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
13639
13640         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
13641         ("mmx_uavgv4hi3"): Same.
13642         ("pmulhrwv4hi3"): Same.
13643
13644         * tree-inline.c (walk_tree): Handle vectors.
13645
13646         * c-common.c (constant_expression_warning): Handle vectors.
13647         (overflow_warning): Same.
13648
13649         * sched-deps.c (sched_analyze_2): Handle vectors.
13650
13651         * rtlanal.c (rtx_unstable_p): Handle vectors.
13652         (rtx_varies_p): Same.
13653         (count_occurrences): Same.
13654         (regs_set_between_p): Same.
13655         (modified_between_p): Same.
13656         (modified_in_p): Same.
13657         (volatile_insn_p): Same.
13658         (volatile_refs_p): Same.
13659         (side_effects_p): Same.
13660         (may_trap_p): Same.
13661         (inequality_comparisons_p): Same.
13662         (replace_regs): Same.
13663         (computed_jump_p_1): Same.
13664
13665         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
13666         argument.
13667         (inner_mode_array): New.
13668         (copy_rtx): Handle vectors.
13669         (copy_most_rtx): Same.
13670         (rtx_equal_p): Same.
13671         (get_mode_alignment): Adjust for vectors.
13672
13673         * resource.c (mark_referenced_resources): Handle vectors.
13674         (mark_set_resources): Same.
13675
13676         * reload1.c (eliminate_regs): Handle vectors.
13677         (elimination_effects): Same.
13678         (scan_paradoxical_subregs): Same.
13679
13680         * reload.c (subst_reg_equivs): Handle vectors.
13681
13682         * regrename.c (scan_rtx): Handle vectors.
13683
13684         * regclass.c (reg_scan_mark_refs): Handle vectors.
13685
13686         * recog.c (find_single_use_1): Handle vectors.
13687
13688         * local-alloc.c (equiv_init_varies_p): Handle vectors.
13689         (contains_replace_regs): Same.
13690         (memref_referenced_p): Same.
13691
13692         * integrate.c (copy_rtx_and_substitute): Handle vectors.
13693         (subst_constants): Same.
13694
13695         * genattrtab.c (attr_copy_rtx): Handle vectors.
13696         (encode_units_mask): Same.
13697         (clear_struct_flag): Same.
13698         (count_sub_rtxs): Same.
13699
13700         * gcse.c (want_to_gcse_p): Handle vectors.
13701         (oprs_unchanged_p): Same.
13702         (hash_expr_1): Same.
13703         (oprs_not_set_p): Same.
13704         (expr_killed_p): Same.
13705         (compute_transp): Same.
13706         (store_ops_ok): Same.
13707
13708         * function.c (purge_addressof_1): Do not allow paradoxical subregs
13709         of vectors.
13710         (fixup_var_refs_1): Same.
13711         (instantiate_virtual_regs_1): Same.
13712
13713         * fold-const.c (operand_equal_p): Handle vectors.
13714         (fold): Same.
13715         (rtl_expr_nonnegative_p): Same.
13716
13717         * flow.c (mark_used_regs): Handle vectors.
13718
13719         * df.c (df_uses_record): Handle vectors.
13720
13721         * cselib.c (cselib_subst_to_values): Handle vectors.
13722         (cselib_mem_conflict_p): Same.
13723         (hash_rtx): Same.
13724
13725         * cse.c (canon_reg): Handle vectors.
13726         (fold_rt): Same.
13727         (cse_process_notes): Same.
13728         (count_reg_usage): Same.
13729         (canon_hash): Same.
13730
13731         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
13732
13733         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
13734
13735         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
13736         (gen_rtx): Handle CONST_VECTOR.
13737         (gen_const_vector_0): New.
13738         (copy_rtx_if_shared): CONST_VECTORs can be shared.
13739         (reset_used_flags): Same.
13740         (copy_insn_1): Same.
13741         (initializer_constant_valid_p): Handle VECTOR_CST.
13742
13743         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
13744
13745         * doc/rtl.texi (Constants): Document const_vector.
13746         (CONST0_RTX): Update for vectors.
13747         (RTL sharing): Same.
13748
13749         * print-tree.c (print_node): Add case for VECTOR_CST.
13750
13751         * tree.h (TREE_VECTOR_CST_ELTS): New.
13752         (struct tree_vector): New.
13753         (union tree_node): Add vector node.
13754         (build_vector): Add prototype.
13755
13756         * tree.def (VECTOR_CST): New.
13757
13758         * tree.c (build_vector): New.
13759
13760         * expmed.c (make_tree): Handle CONST_VECTOR.
13761
13762         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
13763         (CONST_VECTOR_ELT): New.
13764         (CONST_VECTOR_NUNITS): New.
13765
13766         * machmode.h (GET_MODE_INNER): New.
13767         (DEF_MACHMODE): Accept 8th arg.
13768
13769         * machmode.def: Add 8th argument for vector inner mode.
13770         Add inner vector modes for vectors.
13771
13772         * rtl.def (VEC_CONST): Remove.
13773         (CONST_VECTOR): New.
13774
13775         * expr.c (clear_storage): Allow vectors.
13776         (is_zeros_p): Handle VECTOR_CST.
13777
13778         * varasm.c (output_constant_pool): Handle vectors.
13779         (rtx_const): Add veclo and vechi fields.
13780         (kind): Add RTX_VECTOR.
13781         (decode_rtx_const): Add case for vector.
13782
13783         * config/rs6000/rs6000-protos.h: Add zero_constant.
13784
13785         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
13786         constants.  Force easy vector constants into memory.
13787         (easy_vector_constant): New.
13788         (emit_easy_vector_constant): New.
13789         (rs6000_legitimize_reload_address): Do not generate bad reloads on
13790         darwin.
13791
13792         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
13793         instruction does.
13794         ("altivec_lvxl"): Same.
13795         (altivec_lvebx): Same.
13796         (altivec_lvehx): Same.
13797         (altivec_lvewx): Same.
13798         ("*movv4si_const0"): New.
13799         ("*movv4sf_const0"): New.
13800         ("*movv8hi_const0"): New.
13801         ("*movv16qi_const0"): New.
13802
13803 2002-02-18  Kazu Hirata  <kazu@hxi.com>
13804
13805         * config/h8300/h8300.c (notice_update_cc): Use
13806         cc_status.value2.
13807
13808 2002-02-18  Kazu Hirata  <kazu@hxi.com>
13809
13810         * config/h8300/h8300.md (divmod patterns): Change the
13811         constraints for operands[1] to register_operand.
13812
13813 2002-02-18  Kazu Hirata  <kazu@hxi.com>
13814
13815         * config/h8300/h8300-protos.h: Remove the prototype for
13816         p_operand.
13817         * config/h8300/h8300.c (p_operand): Remove.
13818         * config/h8300/h8300.md: Replace p_operand with
13819         const_int_operand.
13820
13821 2002-02-18 Philip Blundell <pb@nexus.co.uk>
13822
13823         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
13824         comment.
13825         (output_return_instruction): Allow use of LDR to unstack
13826         return addresss even for interrupt handlers or when
13827         interworking.  If compiling for ARMv5, use interworking-safe
13828         return instructions by default.  Remove duplicated code and
13829         lengthy "strcat" sequences.
13830
13831 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
13832
13833         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
13834         (LINK_EH_SPEC): Define.
13835         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
13836
13837 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
13838
13839         * config/s390/s390.c (s390_emit_prologue): Do not set the
13840         frame_related flag for call-clobbered registers.
13841
13842 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
13843
13844         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
13845         (construct_container): Fix handling of SSE operands.
13846         (ix86_expand_builtin): Fix handling of 64bit pointers.
13847         (mmx_maskmovq_rex): New pattern.
13848
13849 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
13850
13851         * regrename.c (kill_set_value): Handle subregs properly.
13852
13853 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
13854
13855         * objc/objc-act.c (handle_impent): Remove leading '*'
13856         from objc_class_name.
13857
13858 2002-02-17  Richard Henderson  <rth@redhat.com>
13859
13860         * config/alpha/alpha.c (some_small_symbolic_operand,
13861         some_small_symbolic_operand_1, split_small_symbolic_operand,
13862         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
13863         Handle small SYMBOL_REFs anywhere, not just inside memories.
13864         * config/alpha/alpha-protos.h: Update.
13865         * config/alpha/alpha.h (PREDICATE_CODES): Update.
13866         * config/alpha/alpha.md (small symbolic operand splitter): Update.
13867
13868 2002-02-17  Roland McGrath  <roland@frob.com>
13869
13870         * config.gcc (powerpc-*-gnu-gnualtivec*,
13871         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
13872         * config/rs6000/gnu.h: New file.
13873         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
13874         Grok "gnu" in rs6000_abi_name.
13875         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
13876         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
13877         Grok -mcall-gnu analogous to -mcall-linux et al.
13878         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
13879         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
13880         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
13881
13882 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
13883
13884         PR c/3444:
13885         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
13886         shortening.
13887
13888 2002-02-17  Philipp Thomas  <pthomas@suse.de>
13889
13890         * config/cris/cris.h: Undefine STARTFILE_SPEC and
13891         ENDFILE_SPEC before (re)defining them.
13892
13893 2002-02-17  Kazu Hirata  <kazu@hxi.com>
13894
13895         * config/h8300/h8300.c: Fix formatting.
13896         * config/h8300/h8300.h: Likewise.
13897
13898 2002-02-17  Philipp Thomas  <pthomas@suse.de>
13899
13900         * doc/tm.texi: Explain why empty strings should not be
13901         marked for translation.
13902
13903 2002-02-17  Philipp Thomas  <pthomas@suse.de>
13904
13905         * final.c (output_operand_lossage): Changed to accept
13906         printf style arguments. Change calls where necessary.
13907         * output.h (output_operand_lossage): Change declaration
13908         accordingly. Update copyright.
13909         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
13910         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
13911         Update copyright date where necessary.
13912
13913         * config/i386/i386.c (print_operand): Likewise. Remove use of
13914         sprintf.
13915
13916         * config/cris/cris.c (cris_operand_lossage): Likewise.
13917         Rename parameter so that exgettext recognizes it as
13918         translatable message.
13919         (LOSE_AND_RETURN): Rename parameter to msgid.
13920
13921 2002-02-17  Kazu Hirata  <kazu@hxi.com>
13922
13923         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
13924         hard coded register number with an appropriate macro.
13925         (HARD_REGNO_MODE_OK): Likewise.
13926         (ARG_POINTER_REGNUM): Likewise.
13927         (STATIC_CHAIN_REGNUM): Likewise.
13928         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
13929         * config/h8300/h8300.md (define_constants): Define more
13930         register numbers.
13931
13932 2002-02-17  Philipp Thomas  <pthomas@suse.de>
13933
13934         * config/i386/i386.h: Don't mark empty strings for translation.
13935
13936 2002-02-16  H.J. Lu <hjl@gnu.org>
13937
13938         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
13939
13940 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
13941
13942         * cppinit.c (merge_include_chains): Check for brack being
13943         NULL before attempting to merge it with qtail.
13944
13945 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
13946
13947         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
13948         DBX_DEBUG.
13949
13950 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13951
13952         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
13953
13954 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13955
13956         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
13957         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
13958         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
13959
13960 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13961
13962         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
13963         now only if !TARGET_FIX.
13964         (*movsi_nt_vms_fix): New pattern.
13965
13966 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
13967
13968         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
13969         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
13970         (alpha_sa_mask, alpha_sa_size): Reflect above change.
13971         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
13972         (alpha_start_function, alpha_expand_epilogue): Likewise.
13973         (unicosmk_gen_dsib): Likewise.
13974
13975 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13976
13977         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
13978
13979 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
13980
13981         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
13982         check_and_change_labels, s390_final_chunkify): Delete.
13983         (s390_split_branches, s390_chunkify_pool): New functions.
13984         (s390_function_prologue): Call them.
13985
13986         * config/s390/s390.h (S390_REL_MAX): Delete.
13987         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
13988
13989         * config/s390/s390.md (cjump, icjump, jump): Fix length
13990         attribute calculation.
13991
13992
13993 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
13994
13995         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
13996         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
13997
13998 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13999
14000         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
14001         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
14002         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
14003
14004 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
14005
14006         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
14007
14008 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
14009
14010         * reload.c (find_dummy_reload): Check that an output register
14011         is valid for its mode.
14012
14013 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
14014
14015         * combine.c (known_cond): After replacing the REG of a SUBREG, try
14016         to simplify it.
14017
14018         * function.c (assign_parms): Demote promoted argument passed by
14019         transparent reference.
14020
14021 2001-02-14      Joel Sherrill <joel@OARcorp.com>
14022
14023         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
14024         -Acpu() and -Amachine() to eliminate warnings.
14025
14026 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
14027
14028         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
14029
14030 2002-02-14  Kazu Hirata  <kazu@hxi.com>
14031
14032         * config/h8300/h8300-protos.h: Update the prototype for
14033         const_costs.
14034         * config/h8300/h8300.c (const_costs): Treat SET as a little
14035         more expensive operation.
14036         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
14037         reference to const_costs.
14038
14039 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
14040
14041         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
14042
14043 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
14044
14045         PR c/5503:
14046         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
14047         use arguments from newtype.
14048
14049 2002-02-13  Eric Christopher  <echristo@redhat.com>
14050
14051         * config/mips/mips.c (override_options): Add check for march/mipsX
14052         on the same command line. Fix error message in cpu processing.
14053         Remove architecture and ISA checks.
14054
14055 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
14056
14057         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
14058
14059         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
14060
14061 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
14062
14063         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
14064         alternatives.
14065         ("*movv8hi_internal1"): Same.
14066         ("*movv16qi_internal1"): Same.
14067         ("*movv4sf_internal1"): Same.
14068
14069         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
14070         not push_reload for altivec modes.
14071
14072 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
14073
14074         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
14075         all RTEMS targets including removal of #includes from config/*/rtems*.h
14076         file and adding them to tm_file setting. Added xm_defines=POSIX to
14077         many targets.
14078         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
14079         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
14080         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
14081         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
14082         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
14083         config/m68k/rtemself.h: Ditto.
14084         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
14085         config/mips/rtems64.h: Ditto.
14086         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
14087         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
14088         Ditto.
14089         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
14090         config/sparc/rtemself.h: Ditto.
14091         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
14092         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
14093         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
14094         more like arm-elf.
14095         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
14096         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
14097         target made more similar to i386-elf.
14098         * config/i386/t-rtems-i386: Added soft float support and multilibs.
14099         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
14100         be similar to config/m68k/t-m68kelf.
14101         * gthr-rtems.h: Encapsulate with extern "C" for C++.
14102
14103 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
14104
14105         * regmove.c (kill_value): Handle subregs.
14106
14107 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
14108
14109         * i386.md (mul patterns): Allow memory operand to be first;
14110         add expanders where needed; fix constraints.
14111         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
14112         Allow memory operand to be the first.
14113
14114         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
14115         operands.
14116
14117 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
14118
14119         PR c/5681:
14120         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
14121         GET_MODE (x).
14122
14123 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
14124
14125         PR optimization/5547:
14126         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
14127         all valid IA-32 address modes involving non-scaled %ebx and
14128         GOT/GOTOFF as displacement.
14129
14130 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
14131
14132         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
14133         after emitting ltorg insns.
14134
14135         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
14136         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
14137         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
14138         *abssf2): Fix "op_type" attribute.
14139
14140 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
14141
14142         * mkconfig.sh: Avoid using a subshell redirect.
14143         ($output.T): Change to $(output)T.
14144         (ENABLE_NLS): Remove unneeded undef.
14145
14146         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
14147         * config/alpha/x-vms (libsubdir): Define.
14148
14149         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
14150         register frame procedures. Optimize retrieving context.
14151
14152         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
14153         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
14154         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
14155
14156 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14157
14158         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
14159         Make same change as for find_base_value.
14160
14161 2002-02-13  Kazu Hirata  <kazu@hxi.com>
14162
14163         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
14164         of QImode and SImode.
14165
14166 2002-02-13  Kazu Hirata  <kazu@hxi.com>
14167
14168         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
14169         length computation of movsi.
14170         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
14171
14172 2002-02-13  Kazu Hirata  <kazu@hxi.com>
14173
14174         * config/h8300/h8300.md (subqi3): Tighten the predicate for
14175         operands[2] to register_operand.
14176
14177 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
14178
14179         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
14180
14181 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
14182
14183         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
14184         for altivec_lvx* and altivec_stvx*.
14185         ("*movv4si_internal"): Add constraint for loading from GPRs.
14186         ("*movv8hi_internal1"): Same.
14187         ("*movv16qi_internal1"): Same.
14188         ("*movv4sf_internal1"): Same.
14189
14190         * config/rs6000/rs6000.c (altivec_register_operand): New.
14191
14192         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
14193         altivec_register_operand.
14194
14195 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
14196
14197         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
14198         handle SYMBOL_REF.
14199
14200 2002-02-13  Stan Shebs  <shebs@apple.com>
14201
14202         * c-typeck.c (digest_init): Handle vectors.
14203         (really_start_incremental_init): Same.
14204         (pop_init_level): Same.
14205         (process_init_element): Same.
14206
14207         * varasm.c (output_constant): Same.
14208
14209         * expr.c (clear_storage): Same.
14210         (store_constructor): Same.
14211
14212 2002-02-12  Eric Christopher  <echristo@redhat.com>
14213
14214         * explow.c (hard_function_value): Add comment explaining
14215         signed/unsigned comparison.
14216
14217 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
14218
14219         * jump.c (never_reached_warning): Add finish argument.
14220         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
14221         real insn after end.
14222         * rtl.h (never_reached_warning): Adjust prototype.
14223         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
14224         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
14225         never_reached_warning.
14226
14227 2002-02-12  Graham Stott  <grahams@redhat.com>
14228
14229         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
14230
14231 2002-02-12  Kazu Hirata  <kazu@hxi.com>
14232
14233         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
14234         logical shifts on H8/300.
14235         (shift_alg_si): Improve several shifts on H8/300.
14236         (get_shift_alg): Likewise.
14237
14238 2002-02-12  Graham Stott  <grahams@redhat.com>
14239
14240         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
14241
14242 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14243
14244         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
14245         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
14246
14247 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
14248
14249         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
14250         non-CONST_INT through default_assemble_integer.
14251         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
14252         <case 8>: Abort for CONST_DOUBLE.
14253
14254 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14255
14256         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
14257         is specified.
14258         * config/pa/pa-linux.h (LIB_SPEC): Delete.
14259         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
14260
14261 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
14262
14263         * config/stormy16/stormy16.md (zero_extendqihi2): New.
14264
14265 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
14266
14267         * regrename.c (regrename_optimize): Don't accept a
14268         part-clobbered register if the replaced register is not part
14269         clobbered.
14270
14271         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
14272         take padding into account when computing the argument value.
14273
14274         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
14275
14276         * combine.c (try_combine): Apply substitutions in
14277         CALL_INSN_FUNCTION_USAGE too.
14278
14279 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
14280
14281         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
14282         __builtin_altivec_abs*.
14283         (bdesc_abs): New.
14284
14285         * config/rs6000/rs6000.h (rs6000_builtins): Add
14286         ALTIVEC_BUILTIN_ABS*.
14287
14288         * config/rs6000/altivec.h: Use const char for builtins expecting
14289         literals.
14290         (vec_abs): New versions for C and C++.
14291         (vec_abss): Same.
14292
14293 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14294
14295         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
14296         using Pmode.
14297
14298 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14299
14300         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
14301         constant definition from h8300.md.
14302         (FRAME_POINTER_REGNUM): Likewise.
14303         * config/h8300/h8300.md (define_constants): Add FP_REG.
14304
14305 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14306
14307         * config/h8300/h8300.c (print_operand): Remove redundant code.
14308
14309 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14310
14311         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
14312         * config/h8300/h8300.c (byte_reg): Make it static.
14313
14314 2002-02-10  Richard Henderson  <rth@redhat.com>
14315
14316         PR c/5623
14317         * c-typeck.c (incomplete_type_error): Handle flexible array members.
14318
14319 2002-02-10  Richard Henderson  <rth@redhat.com>
14320
14321         PR c++/5624
14322         * tree.c (append_random_chars): Don't abort if main_input_filename
14323         does not exist.
14324
14325 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
14326
14327         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
14328
14329 2002-02-10  Kazu Hirata  <kazu@hxi.com>
14330
14331         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
14332         (pushhi1): Likewise.
14333
14334 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14335
14336         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
14337         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
14338
14339 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
14340
14341         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
14342         remove MASK_VIS.
14343         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
14344
14345 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14346
14347         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
14348         a half of an SImode register on H8/300.
14349
14350 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
14351
14352         * i386.md (movdi_2): Add missing '!'.
14353
14354 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14355
14356         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
14357         definitions.
14358
14359 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14360
14361         * config/h8300/h8300.md (length): Correct the distance valid
14362         for the short branch.
14363
14364 2002-02-09  Kazu Hirata  <kazu@hxi.com>
14365
14366         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
14367
14368 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
14369
14370         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
14371         registers in SImode.
14372         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
14373         part-clobbered.
14374
14375         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
14376         patch.
14377
14378         Contribute sh64-elf.
14379         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
14380         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
14381         (sh_cannot_modify_jumps_p): New function.
14382         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
14383         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
14384         (sh_ms_bitfield_layout_p): New function.
14385         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
14386                     Zack Weinberg  <zack@codesourcery.com>
14387         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
14388         expand_simple_binop instead of expand_binop.
14389         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
14390         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
14391         use of .quad and .uaquad.
14392         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
14393         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
14394         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14395         * config/sh/sh.md (movdi_const, movdi_const_32bit,
14396         movdi_const_16bit): Make sure all CONSTs have modes.
14397         (sym2PIC): Ditto, but by adjusting all callers.
14398         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
14399         if the prologue calls the SHmedia argument decoder or register
14400         saver.
14401         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14402         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
14403         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
14404         (sh_expand_epilogue): Don't emit USE of return target register.
14405         (prepare_move_operands): Legitimize DImode PIC addresses.
14406         (sh_media_register_for_return): Skip tr0, used to initialize the
14407         PIC register.
14408         (sh_expand_prologue): Remove explicit USE of return register.
14409         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
14410         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
14411         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
14412         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
14413         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
14414         EXTRA_CONSTRAINT_T.
14415         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
14416         (MOVI_SHORI_BASE_OPERAND_P): New.
14417         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
14418         (EXTRA_CONSTRAINT_T): Define in terms of them.
14419         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
14420         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
14421         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
14422         alternatives supporting TARGET_REGS.
14423         (UNSPEC_GOTPLT): New constant.
14424         (movdi split): Move incrementing of LABEL_NUSES...
14425         (movdi_const, movdi_const_32bit): Here.  Use
14426         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
14427         (movdi_const_16bit): New.
14428         (call, call_value) [flag_pic]: Use GOTPLT.
14429         (call_pop, call_value_pop): New expands.
14430         (call_pop_compact, call_pop_rettramp): New insns.
14431         (call_value_pop_compact, call_value_pop_rettramp): New insns.
14432         (sibcall) [flag_pic]: Use GOT.
14433         (builtint_setjmp_receiver): Remove bogus, unused expand.
14434         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
14435         (*pt, *ptb, ptrel): New insns.
14436         (sym2GOT): Handle DImode GOT.
14437         (sym2GOTPLT, symGOTPLT2reg): New expands.
14438         (sym2PIC): New expand.
14439         (shcompact_return_tramp): Use GOTPLT to return trampoline.
14440         (shcompact_return_tramp_i): Use return register explicitly.
14441         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
14442         disable flag_reorder_blocks.
14443         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
14444         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
14445         clobbers, for clarity.
14446         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
14447         restoring of r0 in macl as MAYBE_DEAD.
14448         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
14449         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
14450         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
14451         alter_subreg all over.
14452         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
14453         reload, instead of emitting instructions that would require
14454         reloading.
14455         (casesi_load_media): Add missing modes.
14456         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
14457         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
14458         as used if the argument decoder is called.
14459         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
14460         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
14461         Pmode, then extend it to DImode if necessary.
14462         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
14463         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
14464         constants in FPU-enabled SHmedia, let them be loaded from memory.
14465         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
14466         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
14467         Adjust whitespace in assembly output templates.
14468         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
14469         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
14470         mode of if_then_else.
14471         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
14472         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
14473         sh.h.
14474         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
14475                     Joern Rennecke <amylaar@redhat.com>
14476         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
14477         (SUBTARGET_CPP_PTR_SPEC): New.
14478         (SUBTARGET_CPP_SPEC): Remove.
14479         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
14480         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
14481         Fix typo in previous checkin.
14482         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
14483         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
14484         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
14485                     Alexandre Oliva  <aoliva@redhat.com>
14486         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
14487         what single FP register can hold for SHmedia target.
14488         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
14489                     Alexandre Oliva  <aoliva@redhat.com>
14490         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
14491         Do not split into SUBREG.
14492         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
14493         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
14494         and added new functions as specified in SH5 ABI r9.
14495         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
14496         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
14497         8-byte boundary.
14498         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
14499         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
14500         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
14501         and consttable_window_ends.
14502         2001-06-03  Graham Stott  <grahams@redhat,com>
14503         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
14504         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
14505         * config/sh/sh.c (print_operand): Handle floating-point pair,
14506         vector and matrix registers.
14507         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
14508         vector modes into account.
14509         * config/sh/sh.md (movv2sf): Split move between registers into
14510         movdf.
14511         (movv4sf, movv16sf): Introduce insns that get split only after
14512         reload.
14513         * config/sh/shmedia.h: Fix Copyright dates.
14514         * config/sh/ushmedia.h: Likewise.  Move loop counter
14515         declarations into conditionals that uses them.
14516         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
14517         loop boundary.
14518         * config/sh/sshmedia.h: Fix Copyright dates.
14519         (sh_media_PUTCFG): Fix constraints.
14520         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
14521         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
14522         ptrmemfunc_vbit_in_delta for SH5.
14523         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
14524         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
14525         * invoke.texi: Likewise.
14526         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
14527         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
14528         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
14529         GCC_pop_shmedia_regs_nofpu): New global symbols.
14530         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
14531         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
14532         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
14533         compact function with nonlocal labels.
14534         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
14535         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
14536         (initial_elimination_offset): Account for their stack space.
14537         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
14538         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
14539         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
14540         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
14541         least one of the operands to be a register.
14542         (movv2sf): Likewise.  Renamed to movv2sf_i.
14543         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
14544         prepare_move_operands() before emitting SHmedia insns.
14545         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
14546         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
14547         Don't save nor initialize r12.  Don't mis-align the stack.
14548         Pad the code with a nop.
14549         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
14550         stack.
14551         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
14552         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
14553         [__SHMEDIA__]: Implement.
14554         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
14555         * config/sh/sh.md: Set latency of `pt' closer to reality.
14556         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
14557         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
14558         Set move, load and store type attributes.
14559         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
14560         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
14561         profiling.
14562         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
14563         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
14564         * config/sh/sh.c (sh_media_register_for_return): New function.
14565         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
14566         branch-target register.
14567         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
14568         * config/sh/sh.md (return_media_i): Use any call-clobbered
14569         branch-target register.
14570         (return_media): If r18 wasn't copied in the prologue, copy it
14571         here.
14572         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
14573         Clear class FP0_REGS.
14574         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
14575         from elf.h.
14576         2001-03-08  DJ Delorie  <dj@redhat.com>
14577         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
14578         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
14579         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
14580         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
14581         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
14582         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
14583         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
14584         return value correctly for call_cookie.
14585         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
14586         * config/sh/crt1.asm (start): Modified so as to call
14587         ___setup_argv_and_call_main.
14588         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
14589         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
14590         SHmedia mode.
14591         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
14592         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
14593         (STRIP_NAME_ENCODING): Use it.
14594         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
14595         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
14596         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
14597         prepare_scc_operands().
14598         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
14599         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
14600         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
14601         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
14602         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
14603         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
14604         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
14605         used in shcompact_incoming_args.
14606         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
14607         change.
14608         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
14609         mode.
14610         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
14611         Adjust accordingly.
14612         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
14613         Simplify.  Adjust.  Add sanity check.
14614         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
14615         FPU_SINGLE_BIT.
14616         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
14617         TARGET_SHCOMPACT.
14618         (udivsi3, divsi3): Use them.
14619         (force_mode_for_call): New insn.
14620         (call, call_value, sibcall_value): Emit it before SHcompact
14621         calls.
14622         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
14623         * config/sh/sh.md (call, call_value, sibcall): Make sure the
14624         call cookie is non-NULL before taking its value.
14625         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
14626         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
14627         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
14628         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
14629         block.
14630         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
14631         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
14632         temporary for stack adjusts.  Use MACL and MACH to pass
14633         arguments to shcompact_incoming_args.
14634         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
14635         clobber r1.
14636         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
14637         (nested_trampoline): Load static chain address into r1.
14638         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
14639         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
14640         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
14641         fp_arith_reg_operand().
14642         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
14643         * config/sh/sh.md (casesi): Sign-extend the first two operands,
14644         and use signed compares for them.
14645         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
14646         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
14647         ones properly aligned.
14648         (find_barrier): Account for extra alignment needed for 8-byte wide
14649         constants.
14650         (machine_dependent_reorg): Require a label for the second 4-byte
14651         constant after an 8-byte one.
14652         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
14653         change.
14654         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
14655         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
14656         last_float when switching float modes.
14657         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
14658         auto-increment for general-purpose registers.
14659         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
14660         result.
14661         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
14662         for stack adjust.
14663         * config/sh/sh.c (sh_builtin_saveregs): Support using all
14664         registers for varargs.
14665         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
14666         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
14667         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
14668         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
14669         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
14670         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
14671         call_cookie accordingly.
14672         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
14673         (SHCOMPACT_BYREF): Likewise.
14674         (SHCOMPACT_FORCE_ON_STACK): New macro.
14675         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
14676         (sh_builtin_saveregs): Likewise.
14677         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
14678         shcompact_incoming_args): Use new shift values.  Support
14679         sequences of consecutive and non-consecutive pushes/pops.
14680         * config/sh/sh.md (return): Don't explicitly use PR_REG.
14681         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
14682         * config/sh/sh.h (TEXT_SECTION): Define.
14683         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
14684         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
14685         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
14686         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
14687         return values on FPU-enabled SHmedia.
14688         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
14689         FPU-enabled SHmedia.
14690         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
14691         value is returned in a non-FP reg and is not returned by
14692         reference.
14693         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
14694         jump_ind.
14695         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
14696         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
14697         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
14698         quad-aligned to be passed by callee-copy reference.
14699         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
14700         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
14701         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
14702         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
14703         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
14704         copying low-numbered FP regs to r7 and r8.
14705         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
14706         FP regs to general-purpose regs only if the copy was passed on the
14707         stack.
14708         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
14709         copying FP reg to r9.
14710         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
14711         copy FP regs to general-purpose regs only in outgoing calls.
14712         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
14713         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
14714         HOST_WIDE_INT.
14715         * config/sh/sh.h (struct sh_args): Document all fields.
14716         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
14717         passed partially on the stack should not consider making
14718         sibcalls.
14719         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
14720         stack_regs only for incoming calls.  When passing FP args,
14721         make sure there are FP regs available before modifying
14722         call_cookie.
14723         (SHCOMPACT_BYREF): Pass double args in general-purpose
14724         registers by reference.
14725         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
14726         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
14727         attempt to generate sibcalls if the caller got any arguments
14728         by reference.
14729         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
14730         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
14731         to 8-byte boundaries.
14732         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
14733         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
14734         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
14735         stored in the stack.
14736         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
14737         for the offsets to have the ISA bit set.
14738         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
14739         invocation.  Use beq instead of bgt to mark end of sequence of
14740         loads.
14741         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
14742         bgt to mark end of sequence of stores.
14743         * config/sh/sh.c (arith_operand): Don't check whether
14744         CONST_OK_FOR_J for now.
14745         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
14746         instead of long for conversion.
14747         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
14748         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
14749         before passing it to fprintf.
14750         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
14751         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
14752         Call set_fpscr before reading/writing SR.
14753         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
14754         Call set_fpscr.
14755         * config/sh/lib1funcs.asm: Add `.align 2' directives before
14756         SHmedia code.
14757         (FMOVD_WORKS): Define on SH5 with FPU.
14758         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
14759         setting.
14760         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
14761         _fpscr_values.
14762         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
14763         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
14764         address.
14765         (ia_main_table): Ditto.
14766         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
14767         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
14768         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
14769         the definitions from sh.h.
14770         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
14771         TARGET_SH5.
14772         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
14773         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
14774         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
14775         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
14776         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
14777         Increment LABEL_NUSES.
14778
14779         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
14780         TARGET_SH5.
14781         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
14782         defined.
14783         * config/sh/elf.h (SIZE_TYPE): Likewise.
14784         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
14785         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
14786         shcompact_incoming_args): Load switch table addresses using
14787         datalabel.
14788         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
14789         (NO_BUILTIN_SIZE_TYPE): Define.
14790         (SIZE_TYPE): Don't define.
14791         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
14792         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
14793         definition of __SH5__=32 for -m5-compact-nofpu.
14794         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
14795         ADDR_DIFF_VEC.
14796         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
14797         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
14798         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
14799         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
14800         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
14801         (INSN_LENGTH_ALIGNMENT): Likewise.
14802         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
14803         * config/sh/sh.md (call, call_value, sibcall): Simplify
14804         copying of non-branch-target register.
14805         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
14806         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
14807         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
14808         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
14809         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
14810         floating-point values as structs.
14811         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
14812         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
14813         general-purpose register.
14814         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
14815         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
14816         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
14817         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
14818         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
14819         (ENCODE_SECTION_INFO): Enclose variables and constants in
14820         DATALABEL unspecs.
14821         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
14822         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
14823         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
14824         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
14825         only for LABEL_REFs.  For SYMBOL_REFs, prepend
14826         SH_DATALABEL_ENCODING to the symbol name.
14827         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
14828         convert_mode().
14829         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
14830         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
14831         UNSPEC_DATALABEL.
14832         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
14833         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
14834         (DATALABEL_REF_P): Don't require CONST.
14835         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
14836         REL label.
14837         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
14838         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
14839         right.
14840         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
14841         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
14842         Use shallow_copy_rtx and PUT_MODE to change the mode of
14843         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
14844         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
14845         on SHmedia using GENERAL_REGs.
14846         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
14847         bltu_media_i): Fix reversion of conditions.
14848         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
14849         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
14850         * config/sh/sh.c (output_far_jump): Save r13 in macl.
14851         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
14852         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
14853         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
14854         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
14855         (GCC_nested_trampoline): Likewise.
14856         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
14857         * config/sh/sh.c (gen_datalabel_ref): Define.
14858         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
14859         (INITIALIZE_TRAMPOLINE): Likewise.
14860         (TRAMPOLINE_ADJUST_ADDRESS): Define.
14861         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
14862         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
14863         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
14864         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
14865         (ic_invalidate): Adjust for SH5.
14866         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
14867         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
14868         _nested_trampoline.
14869         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
14870         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
14871         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
14872         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
14873         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
14874         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
14875         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
14876         * config/sh/sh.c (target_reg_operand): Match only target-branch
14877         registers and pseudos that aren't virtual registers.
14878         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
14879         Copy operands that don't match target_reg_operand to pseudos.
14880         (call_media, call_value_media, sibcall_media): Use
14881         target_reg_operand instead of target_operand.
14882         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
14883         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
14884         * config/sh/sh.c (target_reg_operand): Match hardware registers
14885         other than branch-target registers.
14886         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
14887         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
14888         (fpscr_values) [SH5 == 32]: Define.
14889         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
14890         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
14891         Handle function addresses coming in SUBREGs.
14892         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
14893         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
14894         shcompact_return_trampoline): Use datalabel where appropriate.
14895         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
14896         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
14897         general-purpose register to copy one branch-target register to
14898         another.
14899         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
14900         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
14901         SYMBOL_REFs with VOIDmode.
14902         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
14903         bltu_media_i): New insns.
14904         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
14905         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
14906         (INIT_CUMULATIVE_ARGS): Likewise.
14907         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
14908         * machmode.def (V16SFmode): New mode.
14909         * c-common.c (type_for_mode): Support V2SF and V16SF.
14910         * tree.c (build_common_tree_nodes_2): Likewise.
14911         * tree.h (tree_index): Likewise.
14912         * calls.c (emit_call_1): Take args_so_far.  Adjust all
14913         callers.  Introduce CALL_POPS_ARGS.
14914         * tm.texi (CALL_POPS_ARGS): Document.
14915         * config/sh/crt1.asm: Implement in SHmedia mode.
14916         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
14917         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
14918         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
14919         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
14920         Implement divsi and udivsi in SHmedia mode.  Introduce
14921         SHcompact trampolines.
14922         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
14923         only in SHmedia64.
14924         (regno_reg_class): Rewrite.
14925         (fp_reg_names): Remove.
14926         (sh_register_names, sh_additional_register_names): New.
14927         (print_operand): Added `u'.  Support SUBREGs in addresses.
14928         Add parentheses around shifted CONSTs.
14929         (output_file_start): Output .mode and .abi directives.
14930         (shiftcosts, addsubcosts, multcosts): Adjust.
14931         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
14932         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
14933         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
14934         bytes, not registers.  Take into account the need for the
14935         SHcompact incoming args trampoline.  Adjust all callers.
14936         (sh_expand_prologue): Take stack_regs into account.  Call
14937         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
14938         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
14939         stack aligned as per SH5 ABI.
14940         (sh_builtin_saveregs): Support SH5 ABI.
14941         (sh_build_va_list, sh_va_start): Likewise.
14942         (initial_elimination_offset): Take alignment into account.
14943         Compute location of PR according to the SH5 stack frame.
14944         (arith_reg_operand): Reject branch-target registers.
14945         (shmedia_6bit_operand): New.
14946         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
14947         (target_reg_operand): Match DImode only.  Accept SUBREGs.
14948         (target_operand): New.
14949         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
14950         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
14951         SIBCALL_REGS for SHmedia.
14952         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
14953         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
14954         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
14955         (TARGET_SWITCHES): New SH5 flags.
14956         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
14957         VALID_REGISTER_P to disable unsupported registers.
14958         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
14959         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
14960         (FUNCTION_ARG_PADDING): Define.
14961         (FASTEST_ALIGNMENT): Adjust.
14962         (SH_REGISTER_NAMES_INITIALIZER): New.
14963         (sh_register_names): Declare.
14964         (DEBUG_REGISTER_NAMES): Define.
14965         (REGISTER_NAMES): Define based on sh_register_names.
14966         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
14967         (sh_additional_register_names): Declare.
14968         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
14969         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
14970         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
14971         (REGISTER_NATURAL_MODE): Define.
14972         (FIRST_PSEUDO_REGISTER): Adjust.
14973         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
14974         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
14975         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
14976         (VECTOR_MODE_SUPPORTED_P): Define.
14977         (REG_CLASS_CONTENTS): Adjust.
14978         (SMALL_REGISTER_CLASSES): Adjust.
14979         (REG_ALLOC_ORDER): Adjust.
14980         (INDEX_REG_CLASS): Adjust.
14981         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
14982         (CONST_OK_FOR_LETTER_P): Adjust.
14983         (PREFERRED_RELOAD_CLASS): Adjust.
14984         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
14985         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
14986         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
14987         (FIRST_FP_PARM_REG): Adjust.
14988         (CALL_POPS_ARGS): Define.
14989         (FUNCTION_ARG_REGNO_P): Adjust.
14990         (struct sh_args): New fields.
14991         (GET_SH_ARG_CLASS): Adjust.
14992         (INIT_CUMULATIVE_ARGS): Adjust.
14993         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
14994         (FUNCTION_ARG_ADVANCE): Adjust.
14995         (FUNCTION_ARG): Adjust.
14996         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
14997         (FUNCTION_ARG_CALLEE_COPIES): Define.
14998         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
14999         (STRICT_ARGUMENT_NAMING): Define.
15000         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
15001         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
15002         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
15003         (SETUP_INCOMING_VARARGS): Adjust.
15004         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
15005         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
15006         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
15007         (SUBREG_OK_FOR_INDEX_P): Adjust.
15008         (EXTRA_CONSTRAINT_S): Update.
15009         (EXTRA_CONSTRAINT_T): New.
15010         (EXTRA_CONSTRAINT): Adjust.
15011         (GO_IF_LEGITIMATE_INDEX): Adjust.
15012         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
15013         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
15014         (MOVE_MAX): Adjust.
15015         (MAX_MOVE_MAX): Define.
15016         (Pmode): Adjust.
15017         (CONST_COSTS): Adjust.
15018         (REGISTER_MOVE_COST): Adjust.
15019         (BRANCH_COST): Adjust.
15020         (TEXT_SECTION_ASM_OP): Adjust.
15021         (DBX_REGISTER_NUMBER): Adjust.
15022         (ASM_OUTPUT_DOUBLE_INT): New.
15023         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
15024         (PREDICATE_CODES): Adjust.
15025         (PROMOTE_MODE): Adjust.
15026         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
15027         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
15028         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
15029         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
15030         (DR0_REG, DR2_REG, DR4_REG): Renumber.
15031         (TR0_REG, TR1_REG, TR2_REG): New.
15032         (XD0_REG): Renumber.
15033         (UNSPEC_COMPACT_ARGS): New.
15034         (type): Added pt and ptabs.
15035         (length): Default to 4 on SHmedia.  Default pt length to 12
15036         and     20 on SHmedia32 and SHmedia64, respectively.
15037         (pt): New function unit.
15038         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
15039         Add whitespace between operands of SHmedia instructions.
15040         (movdicc): Fix.
15041         (adddi3_media, addsi3_media): Adjust constraints.
15042         (subsi3) [SHmedia]: Force operand 1 into a register.
15043         (udivsi3_i1_media, udivsi3_i4_media): New.
15044         (udivsi3): Support SHmedia.
15045         (divsi3_i1_media, divsi3_i4_media): New.
15046         (divsi3): Support SHmedia.
15047         (anddi3, iordi3, xordi3): Adjust constraints.
15048         (zero_extendhidi2, zero_extendqidi2): New.
15049         (extendsidi2, extendhidi2, extendqidi2): New.
15050         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
15051         (pop_e, pop_fpul, pop_4): Likewise.
15052         (movsi_media): Support FP and BT registers.
15053         (movsi_media_nofpu): New.  Adjust splits to DImode.
15054         (lduw, ldub): Renamed to zero_extend* above.
15055         (movqi_media): Fix typo.
15056         (movdi_media): Support FP and BT registers.
15057         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
15058         (movdi_const_32bit): New.
15059         (shori_media): Require immediate operand.  Use `u' for output.
15060         (movdf_media, movsf_media): Simplified.
15061         (movdf_media_nofpu, movsf_media_nofpu): New.
15062         (movdf, movsf): Adjust
15063         (movv2sf, movv2sf, movv16sf): New.
15064         (beq_media, beq_media_i): Adjust constraints.  Don't use
15065         scratch BT register.
15066         (bne_media, bne_media_i): Likewise.
15067         (bgt_media, bgt_media_i): Likewise.
15068         (bge_media, bge_media_i): Likewise.
15069         (bgtu_media, bgtu_media_i): Likewise.
15070         (bgeu_media, bgeu_media_i): Likewise.
15071         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
15072         bunordered): Emit jump insn.  Force operands to registers when
15073         needed.
15074         (jump_media, jump): Simplify.
15075         (call_compact, call_compact_rettramp): New.
15076         (call_value_compact, call_value_compact_rettramp): New.
15077         (call_media, call_value_media): Simplify.
15078         (sibcall_compact, sibcall_media): New.
15079         (call, call_value): Adjust for SHmedia and SHcompact.
15080         (sibcall, sibcall_value, untyped_call): Likewise.
15081         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
15082         (indirect_jump): Adjust for SHmedia.
15083         (casesi_jump_media): New.
15084         (nop): Re-enable for SHmedia.
15085         (call_site): Restrict to SH1.
15086         (casesi): Adjust for SHmedia.
15087         (casesi_shift_media, casesi_load_media): New.
15088         (return): Explicitly use PR register.  Call return trampoline
15089         on SHcompact.
15090         (return_i): Explicitly use PR register.
15091         (shcompact_return_tramp, shcompact_return_tramp_i): New.
15092         (return_media): Adjust.
15093         (shcompact_incoming_args): New.
15094         (epilogue): Adjust.
15095         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
15096         (movstrsi): Disable on SH5.
15097         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
15098         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
15099         (subsf3, subsf3_media): Likewise.
15100         (mulsf3, mulsf3_media, mac_media): Likewise.
15101         (divsf3, divsf3_media): Likewise.
15102         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
15103         (floatsisf2, fux_truncsfsi2): Likewise.
15104         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
15105         constraints.
15106         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
15107         (cmpunsf_media, cmpsf): Likewise.
15108         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
15109         (abssf2, abssf2_media): Likewise.
15110         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
15111         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
15112         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
15113         (floatsidf2, fix_truncdfsi2): Likewise.
15114         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
15115         constraints.
15116         (cmpeqdf_media, cmpgtdf_media): Likewise.
15117         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
15118         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
15119         (absdf2, absdf2_media): Likewise.
15120         (extendsfdf2, extendsfdf2_media): Likewise.
15121         (truncsfdf2, truncsfdf2_media): Likewise.
15122         * config/sh/sh64.h: New file.
15123         * config/sh/t-sh64: New file.
15124         * config/sh/shmedia.h: New file.
15125         * config/sh/ushmedia.h: New file.
15126         * config/sh/sshmedia.h: New file.
15127         * configure.in: Added sh64-*-elf.
15128         * configure: Rebuilt.
15129         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
15130         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
15131         (reg_class_from_letter): Use `b' for TARGET_REGS.
15132         (print_operand): Support `%M', `%m', `AND' and
15133         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
15134         (andcosts): Adjust for SHmedia.
15135         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
15136         Likewise.
15137         (target_reg_operand): New function.
15138         * config/sh/sh-protos.h (target_reg_operand): Declare.
15139         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
15140         FP registers on SH5.
15141         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
15142         on SH4.
15143         (TARGET_REGISTER_P): New macro.
15144         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
15145         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
15146         (EXTRA_CONSTRAINT_S): New macro.
15147         (EXTRA_CONSTRAINT): Adjust.
15148         (FLOAT_TYPE_SIZE): Define to 32.
15149         (Pmode): DImode on SHmedia.
15150         (CONST_COSTS): Adjust for SHmedia literals.
15151         (PREDICATE_CODES): Added target_reg_operand.
15152         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
15153         * config/sh/sh.md: Remove all attrs from SHmedia insns.
15154         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
15155         (cmpdi): Accept SHmedia.
15156         (movdicc_false, movdicc_true): New insns.
15157         (movdicc): New expand.
15158         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
15159         no_new_pseudos.
15160         (addsi3_media): Match `S' constraint.
15161         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
15162         (negdi2): Expand for SHmedia.
15163         (one_cmpldi2): New expand.
15164         (zero_extendsidi2): Change from expand to insn.
15165         (extendsidi2): Add constraints.
15166         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
15167         LD/ST address.  Fix SI immediate loading split.
15168         (movhi_media, movqi_media, lduw, ldub): New insns.
15169         (movhi, movqi): Accept SHmedia.
15170         (shori_media, movdi_media): Relax input constraints.  Split
15171         symbolic constants.
15172         (movdf_media, movsf_media): New insn.  New split to movdi.
15173         (movdf, movsf): Match on SHmedia.
15174         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
15175         bgeu_media): New insns and splits.  New insns with `_i' suffix.
15176         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
15177         (bunordered): New expand.
15178         (jump_compact): Renamed from `jump'.
15179         (jump_media): New insn.
15180         (jump): New expand.
15181         (call_media, call_value_media): New insns.
15182         (call, call_value): Adjust.
15183         (indirect_jump_compact): Renamed from `indirect_jump'.
15184         (indirect_jump_media): New insn.
15185         (indirect_jump): New expand.
15186         (untyped_call, return): Accept SHmedia.
15187         (return_media): New insn.
15188         (prologue, epilogue, blockage): Accept SHmedia.
15189         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
15190         (sunordered): New expand.
15191         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
15192         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
15193         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
15194         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
15195         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
15196         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
15197         abssf2_media): New insns.
15198         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
15199         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
15200         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
15201         floatdidf2, floatsidf2_media, fix_truncdfdi2,
15202         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
15203         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
15204         absdf2_media): New insns.
15205         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
15206         (extendsfdf2_media, truncdfsf2_media): New insns.
15207         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
15208         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
15209         * config/sh/sh.h (CONST_OK_FOR_J): Document.
15210         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
15211         * config/sh/sh.md (adddi3): New expand.
15212         (adddi3_media, adddi3z_media): New insns.
15213         (adddi3_compact): Renamed from adddi3.
15214         (addsi3_media): Use add.l r63 to add constant zero.
15215         (subdi3): New expand.
15216         (subdi3_media): New insn.
15217         (subdi3_compact): Renamed from subdi3.
15218         (mulsidi3): New expand.
15219         (mulsidi3_media): New insn.
15220         (mulsidi3_compact): Renamed from mulsidi3.
15221         (umulsidi3): New expand.
15222         (umulsidi3_media): New insn.
15223         (umulsidi3_compact): Renamed from umulsidi3.
15224         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
15225         (ashlsi3, ashrsi3, lshrsi3): Use them.
15226         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
15227         (ashldi3, ashrdi3, lshrdi3): Use them.
15228         (zero_extendsidi2): New expand.
15229         (extendsidi2): New insn.
15230         (movsi_media): New insn.  Split to movdi to load constants.
15231         (movsi): Enable for shmedia.
15232         (movdi_media): New insn.  Use shori_media to load wide constants.
15233         (short_media): New insn.
15234         (movdi): Enable for shmedia.
15235         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
15236         * config/sh/sh.h (CPP_SPEC): Added `m5'.
15237         (SUBTARGET_CPP_SPEC): Added `!m5'.
15238         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
15239         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
15240         to all other SH variants.
15241         (TARGET_DEFAULT): Set to SH1_BIT.
15242         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
15243         (BITS_PER_WORD): Raise to 64 on shmedia.
15244         (MAX_BITS_PER_WORD): Change to 64.
15245         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
15246         (INT_TYPE_SIZE): Keep as 32.
15247         (UNITS_PER_WORD): Raise to 8 on shmedia.
15248         (MIN_UNITS_PER_WORD): Keep as 4.
15249         (POINTER_SIZE): Raise to 64 on shmedia.
15250         (CONST_OK_FOR_J): New macro.
15251         (CONST_OK_FOR_LETTER_P): Use it.
15252         (processor_type): Add PROCESSOR_SH5.
15253         * config/sh/sh.md: Conditionalize all expands, insns and
15254         splits to TARGET_SH1.
15255         (cpu): Added sh5.
15256         (addsi3_compact): Renamed from...
15257         (addsi3): Now an expand.
15258         (addsi3_media, subsi3_media): New insns.
15259         (subsi3): Don't negate constants with SHmedia.
15260
15261         * hooks.c: New file.
15262         * hooks.h: New file.
15263         * Makefile.in (HOOKS_H): New.
15264         (TARGET_DEF_H): Added $(HOOKS_H).
15265         (OBJS): Added hooks.o.
15266         (cfgcleanup.o, bb-reorder.o): Added target.h.
15267         (hooks.o): Added dependencies.
15268         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
15269         (TARGET_INITIALIZER): this.
15270         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
15271         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
15272         * bb-reorder.c: Include target.h.
15273         (reorder_basic_blocks): Skip if cannot modify jumps.
15274         * cfgcleanup.c: Include target.h.
15275         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
15276
15277 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
15278
15279         * config/mips/mips.md (casesi_internal, casesi_internal_di):
15280         Protect jump delay slot instructions with .set noreorder and
15281         .set nomacro.
15282
15283 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
15284
15285         * config/mips/mips.md (casesi_internal_di): Calculate
15286         the index into the target offset table correctly.
15287
15288 2002-02-08  Richard Henderson  <rth@redhat.com>
15289
15290         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
15291         * final.c (output_addr_const): Accept and discard SUBREG.
15292         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
15293         mark them unknown instead.
15294         (simplify_subtraction): Handle RTX_UNKNOWN.
15295         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
15296
15297 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
15298
15299         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
15300
15301 2002-02-08  Richard Henderson  <rth@redhat.com>
15302
15303         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
15304
15305 2002-02-08  Andreas Jaeger  <aj@suse.de>
15306
15307         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
15308         * config/i386/t-linux64: New file.
15309
15310 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
15311
15312         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
15313         * c-parse.in (compstmt): Clear last_expr_type.
15314
15315 2002-02-07  Richard Henderson  <rth@redhat.com>
15316
15317         * loop.c (strength_reduce): Sink final_value when not
15318         eliminating a biv.
15319
15320 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
15321
15322         * config/sparc/freebsd.h: Fix mismatched spec {.
15323
15324 2002-02-07  Richard Henderson  <rth@redhat.com>
15325
15326         * cfgrtl.c: Include recog.h and insn-config.h.
15327         (keep_with_call_p): Fix general_operand invocation.
15328         * Makefile.in (cfgrtl.o): Update dependencies.
15329
15330 2002-02-07  Kazu Hirata  <kazu@hxi.com>
15331
15332         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
15333         comment.  Accept HImode only if TARGET_H8300.
15334
15335 2002-02-07  Eric Christopher  <echristo@redhat.com>
15336
15337         * config/mips/crtn.asm: Cleanup #ifdefs.
15338
15339 2002-02-07  Eric Christopher  <echristo@redhat.com>
15340
15341         * config/mips/crti.asm: Add changes for mips16. mips16 uses
15342         register 7 as RA instead of $31.
15343         * config/mips/crtn.asm: Ditto.
15344         * config/mips/mips.c (mips_move_2words): Add case for
15345         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
15346         (compute_frame_size): Fix typo.
15347         (save_restore_insns): Ditto.  Make documentation about using
15348         register $7 as return register more precise.
15349         (mips_expand_epilogue): Fix comment. Add code to work around not
15350         being able to add to the stack pointer directly.
15351         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
15352         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
15353         epilogue.
15354
15355 2002-02-07  Tom Rix  <trix@redhat.com>
15356
15357         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
15358         immediates in ldu and stdu DS opcode field.
15359         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
15360         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
15361         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
15362
15363 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
15364
15365         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
15366         offset for stack bias.
15367
15368 2002-02-07  H.J. Lu <hjl@gnu.org>
15369
15370         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
15371
15372 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
15373
15374         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
15375
15376 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
15377
15378         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
15379         * i386.c (x86_order_regs_for_local_alloc): New global function.
15380         * i386.h (REG_ALLOC_ORDER): CLeanup.
15381         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
15382
15383 2002-02-07  Richard Henderson  <rth@redhat.com>
15384
15385         PR optimization/2463
15386         * alias.c (find_base_value): Recall base values for fixed hard regs.
15387         * loop.c (loop_regs_update): Don't use single_set on non-insns.
15388
15389 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
15390
15391         * config/mips/mips.md (define_delay) [mips16]: Adjust required
15392         length.
15393
15394 2002-02-06  Richard Henderson  <rth@redhat.com>
15395
15396         PR c/5609
15397         * stmt.c (resolve_operand_name_1): Take more care with mixed
15398         named and unnamed operands.
15399
15400 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
15401             Jan Hubicka  <jh@suse.cz>
15402
15403         * loop.c (remove_constant_addition): Avoid clobbering a shared
15404         CONST expression.
15405
15406 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15407
15408         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
15409         * config/s390/t-linux64: New file.
15410         * config/s390/libgcc-glibc.ver: New file.
15411
15412 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
15413
15414         * config/s390/linux64.h: Delete file.
15415         * config/s390/s390x.h: New file.
15416         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
15417         as target header file.
15418         * config/s390/linux.h (TARGET_VERSION): Define depending on
15419         DEFAULT_TARGET_64BIT.
15420         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
15421         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
15422         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
15423         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
15424         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
15425         (EXTRA_SPEC): New define.
15426         * config/s390/s390.h (TARGET_VERSION): Define depending on
15427         DEFAULT_TARGET_64BIT.
15428         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
15429
15430 2002-02-06  Jason Merrill  <jason@redhat.com>
15431
15432         * c-decl.c (finish_function): Warn about a non-void function with
15433         no return statement and no abnormal exit.
15434         (current_function_returns_abnormally): New variable.
15435         (start_function): Clear it.
15436         (struct c_language_function): Add returns_abnormally.
15437         (push_c_function_context): Save it.
15438         (pop_c_function_context): Restore it.
15439         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
15440         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
15441         an explicit return type.
15442         * c-tree.h: Declare current_function_returns_abnormally.
15443         (C_FUNCTION_IMPLICIT_INT): New macro.
15444         * c-typeck.c (build_function_call): Set it.
15445         (c_expand_return): Set current_function_returns_value even if the
15446         value is erroneous.
15447
15448 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
15449
15450         PR c/5420:
15451         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
15452         unsafe for reevaluation.
15453
15454 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
15455
15456         PR c/5482:
15457         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
15458         EXPR_STMT, but COMPOUND_STMT, recurse into it.
15459
15460 2002-02-06  Richard Henderson  <rth@redhat.com>
15461
15462         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
15463         be a general_operand.  Dest for function value must be a pseudo.
15464
15465 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
15466
15467         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
15468         as SYMBOL_REFs from the constant pool.
15469
15470 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
15471
15472         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
15473         passed by invisible reference.
15474
15475 2002-02-05  Richard Henderson  <rth@redhat.com>
15476
15477         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
15478
15479 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
15480
15481         Implement using "base addresses" in insn operands as default.
15482         * config/mmix/mmix.c (mmix_conditional_register_usage): if
15483         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
15484         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
15485         used to read the rtx value.
15486         (mmix_target_asm_function_epilogue): Fix spacing.
15487         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
15488         (mmix_legitimate_address): Ditto.
15489         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
15490         should be loaded with a GETA insn.  Don't allocate needless extra
15491         char for nul termination and fix misleading comment.
15492         (mmix_print_operand_address): Handle constants if
15493         TARGET_BASE_ADDRESSES.
15494         (mmix_output_register_setting): Use base addressing if
15495         TARGET_BASE_ADDRESSES and the number of insns is 3.
15496         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
15497         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
15498         to use R as constraint, add LDA to match s.
15499         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
15500         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
15501         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
15502         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
15503         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
15504         order with other fixed registers.
15505         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
15506         other parameter/call-clobbered registers.
15507         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
15508         -mbase-addresses, -mno-base-addresses.
15509         (MMIX Options): Ditto.
15510
15511 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15512
15513         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
15514
15515 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
15516
15517         * config/rs6000/altivec.h: Change elem to _S_elem.
15518
15519 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
15520
15521         * config/netbsd.h (WCHAR_TYPE): Define.
15522         (WCHAR_TYPE_SIZE): Ditto.
15523         (WINT_TYPE): Ditto.
15524         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
15525         (WCHAR_UNSIGNED): Ditto.
15526         (WCHAR_TYPE_SIZE): Ditto.
15527         (WINT_TYPE): Ditto.
15528         * config/arm/netbsd.h: Likewise.
15529         * config/i386/netbsd-elf.h: Likewise.
15530         * config/i386/netbsd.h: Likewise.
15531         * config/m68k/netbsd-elf.h: Likewise.
15532         * config/m68k/netbsd.h: Likewise.
15533         * config/ns32k/netbsd.h: Likewise.
15534         * config/sparc/netbsd.h: Likewise.
15535         * config/vax/netbsd.: Likewise.
15536
15537 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
15538
15539         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
15540         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
15541         (TARGET_INITIALIZER): this.
15542         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
15543         (BITFIELD_NBYTES_LIMITED): Markup fix.
15544         * tree.h (default_ms_bitfield_layout_p): Declare.
15545         (record_layout_info): Added prev_field.
15546         * tree.c (default_ms_bitfield_layout_p): New fn.
15547         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
15548         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
15549         * stor-layout.c: Include target.h.
15550         (start_record_layout): Initialize prev_field.
15551         (place_field): Handle MS bit-field layout, and disregard
15552         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
15553         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
15554         * Makefile.in (stor-layout.o): Adjust dependencies.
15555
15556 2002-02-05  Jason Merrill  <jason@redhat.com>
15557
15558         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
15559
15560 2002-02-05  Andreas Jaeger  <aj@suse.de>
15561
15562         * crtstuff.c: Fix comments.
15563
15564 2002-02-05  Richard Henderson  <rth@redhat.com>
15565
15566         PR fortran/3393
15567         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
15568         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
15569
15570         PR fortran/3392
15571         * config/mips/mips.c (function_arg): Handle TImode.
15572         (function_arg_advance): Likewise.
15573
15574 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
15575
15576         * config/rs6000/altivec.h (vec_step_help): Rename to
15577         __vec_step_help.
15578
15579 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
15580
15581         * config/rs6000/altivec.h: Fix typos.
15582
15583 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
15584
15585         * config/arm/netbsd.h: Correct a comment.
15586
15587 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
15588
15589         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
15590         building void typed builtins.
15591
15592         * config/rs6000/altivec.h (vec_ld*): Fix typos.
15593         (vec_step): Implement for C++.
15594
15595 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15596
15597         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
15598
15599 2002-02-04  Richard Henderson  <rth@redhat.com>
15600
15601         * combine.c (nonzero_bits): Re-introduce special case for
15602         sp/fp/ap wrt REGNO_POINTER_ALIGN.
15603
15604 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
15605
15606         * doc/extend.texi: Warn about unsupported usage of altivec
15607         builtins.
15608
15609         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
15610         (altivec_predicate_*): New.
15611
15612         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
15613         Add C++ version of vec_*() functions.
15614
15615         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
15616         (bdesc_2arg): Remove altivec predicates.
15617         (altivec_expand_builtin): Handle predicates.
15618         (altivec_init_builtins): Handle predicates.
15619         (altivec_expand_predicate_builtin): New.
15620
15621 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15622
15623         * pa.c (DO_FRAME_NOTES): Move forward.
15624         (store_reg): Revise handling of frame notes.
15625         (load_reg): Likewise.
15626         (set_reg_plus_d): Likewise.
15627         (hppa_expand_prologue): Likewise.
15628         (hppa_expand_epilogue): Likewise.
15629
15630 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15631
15632         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
15633
15634 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
15635
15636         PR c/4475, c++/3780:
15637         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
15638         * c-common.h (SWITCH_TYPE): Define.
15639         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
15640         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
15641         Rename spareness variable to sparseness.
15642         (expand_end_case_type): Renamed from expand_end_case, use orig_type
15643         if non-NULL instead of TREE_TYPE (orig_index).
15644         * tree.h (expand_end_case_type): Renamed from expand_end_case.
15645         (expand_end_case): Define using expand_end_case_type.
15646         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
15647         to expand_end_case_type.
15648         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
15649
15650 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15651
15652         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
15653         (BIGGEST_ALIGNMENT): Change to 128.
15654
15655 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15656
15657         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
15658
15659 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15660
15661         * pa.md (call_internal_reg_64bit): Remove unused variable.
15662
15663 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
15664
15665         * config/arm/arm.h (machine_function): Add uses_anonymous_args
15666         field.
15667         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
15668         * config/arm/arm.c (current_function_anonymous_args): Delete,
15669         replace uses with cfun->machine->uses_anonymous_args.
15670         (arm_reorg): Do not reset uses_anonymous_args.
15671
15672         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
15673         any geenral register.
15674
15675 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
15676
15677         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
15678         the entry block.
15679
15680 2002-02-04  Richard Henderson  <rth@redhat.com>
15681
15682         * combine.c (force_to_mode): Remove STACK_BIAS code.
15683         (nonzero_bits): Likewise.  Replace sp/fp special case with
15684         REGNO_POINTER_ALIGN.
15685
15686         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
15687         (HARD_FRAME_POINTER_REGNUM): New.
15688         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
15689         (FIXED_REGS, CALL_USED_REGS): Update.
15690         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
15691         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
15692         (HARD_REGNO_NREGS): Update for SFP.
15693         (STACK_POINTER_OFFSET): Include bias here ...
15694         (FIRST_PARM_OFFSET): ... not here.
15695         (STACK_BIAS): Remove.
15696         (INIT_EXPANDERS): New.
15697         (STARTING_FRAME_OFFSET): Do not include bias.
15698         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
15699         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
15700         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
15701         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
15702         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
15703         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
15704         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
15705         (MUST_SAVE_REGISTER): Likewise.
15706         (sparc_flat_function_prologue): Likewise.
15707         (sparc_flat_function_epilogue): Likewise.
15708         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
15709         (sparc_init_modes): SFP is GENERAL_REGS.
15710         (sparc_builtin_saveregs): SFP does not have bias applied.
15711
15712 2002-02-04  Richard Henderson  <rth@redhat.com>
15713
15714         * config/alpha/alpha.c (current_function_is_thunk): Don't check
15715         current_function_is_thunk.
15716         (alpha_sa_mask): Distinguish between current_function_is_thunk
15717         called from ASM_OUTPUT_MI_THUNK and not.
15718         (alpha_does_function_need_gp): Thunks always need gp.
15719         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
15720         (alpha_output_mi_thunk_osf): New.
15721         * config/alpha/alpha-protos.h: Update.
15722         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
15723
15724 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
15725
15726         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
15727         function types, not when they're taken away.
15728
15729 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
15730
15731         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
15732         CODE_LABEL and jump table when replacing a table jump with a
15733         simple jump.
15734
15735 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
15736
15737         * config/s390/s390-protos.h (legitimize_la_operand,
15738         s390_secondary_input_reload_class, s390_plus_operand,
15739         s390_expand_plus_operand): Add prototypes.
15740
15741         config/s390/s390.c (s390_secondary_input_reload_class,
15742         s390_plus_operand, s390_expand_plus_operand): New functions.
15743
15744         (struct s390_address): New member 'pointer'.
15745         (s390_decompose_address): Compute it.
15746         (legitimate_la_operand_p): Use it.
15747         (legitimize_la_operand): New function.
15748         (movti, movdi, movdf splitters): Call it.
15749
15750         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
15751         (PREDICATE_CODES): Add s390_plus_operand.
15752
15753         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
15754         (la_ccclobber): Allow GENERAL_REGS as output operand.
15755
15756         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
15757         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
15758         (*la_64, *la_31, reload_indi, reload_insi): ... these.
15759
15760 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
15761
15762         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
15763         register names for regular asm () construct.
15764
15765 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
15766
15767         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
15768         registers.
15769
15770 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
15771
15772         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
15773         pat for recog.
15774
15775 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
15776
15777         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
15778         constant pool to be identical by string address and index.
15779
15780 2002-02-04  Anthony Green  <green@redhat.com>
15781
15782         * output.h (SECTION_OVERRIDE): Define.
15783         * varasm.c (named_section): Obey SECTION_OVERRIDE.
15784
15785 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
15786
15787         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
15788         by existing arm*-*-netbsd* (a.out) target.
15789         (ns32k-*-netbsdelf*): Likewise.
15790         (sparc-*-netbsdelf*): Likewise.
15791         (vax-*-netbsdelf*): Likewise.
15792
15793 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
15794
15795         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
15796         headers and libobjc headers.
15797
15798 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
15799
15800         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
15801         (_mingw.h): Remove duplicate include.
15802
15803 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
15804
15805         * config.gcc: Set cpu_type to m68k for 68010, as well.
15806         (m68010-*-netbsdelf*): New...
15807         (m68k*-*-netbsdelf*): ...targets.
15808         * config/m68k/netbsd-elf.h: New file.
15809
15810 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15811
15812         * config/h8300/h8300.c (hand_list): Move inside function_arg.
15813
15814 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15815
15816         * config/h8300/h8300.c (h8_push_ops): Move inside
15817         h8300_init_once.
15818         (h8_pop_ops): Likewise.
15819         (h8_move_ops): Likewise.
15820
15821 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15822
15823         * config/h8300/h8300.c (os_task): Make it static.
15824         (monitor): Likewise.
15825         (pragma_saveall): Likewise.
15826
15827 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
15828
15829         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
15830         constant is a valid sign-extension for Pmode.
15831
15832 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15833
15834         * config/h8300/h8300.c: Fix formatting.
15835
15836 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15837
15838         * config/h8300/h8300.md: Fix formatting.
15839
15840 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15841
15842         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
15843         predicates of operands[1].  Split the patterns for each
15844         processor variant.
15845
15846 2002-02-02  Kazu Hirata  <kazu@hxi.com>
15847
15848         * config/h8300/h8300.md (xor patterns): Tighten the predicates
15849         of operands[1] to register_operand.
15850
15851 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
15852
15853         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
15854         * cpphash.c (_cpp_init_hashtable): Similarly.
15855         * cppinit.c (cpp_create_reader): Default the signed_char flag.
15856         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
15857         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
15858         (cpp_handle_option): Handle the new options.
15859         * cpplex.c (cpp_interpret_charconst): Use new flag.
15860         * cpplib.h (struct cpp_options): New member signed_char.
15861         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
15862         (cpp_options): Handle -fsigned-char and -funsigned-char.
15863         (static_specs): Remove signed_char_spec.
15864         (do_spec1): Don't handle %c.
15865         * system.h: Poison SIGNED_CHAR_SPEC.
15866         * tradcif.y (yylex): Use flag_signed_char.
15867         * tradcpp.h (flag_signed_char): New.
15868         * tradcpp.c (flag_signed_char): New.
15869         (main): Handle new command-line options.
15870         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
15871 config:
15872         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
15873         * avr/avr.h: Remove old comments.
15874         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
15875         (CC1_SPEC): Pass -fsigned-char if -mic*.
15876         (SIGNED_CHAR_SPEC): Remove.
15877 doc:
15878         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
15879
15880 2002-02-01  Eric Christopher  <echristo@redhat.com>
15881
15882         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
15883         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
15884         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
15885         (ASM_OUTPUT_REG_POP): Ditto.
15886
15887 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
15888
15889         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
15890         patch.
15891
15892 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
15893
15894         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
15895
15896 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
15897
15898         PR c/5304:
15899         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
15900         unconditionally.
15901
15902 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
15903
15904         * cfganal.c: Include tm_p.h.
15905         (keep_with_call_p): Fix the test that determines if a register holds
15906         the return value of a call.
15907
15908 2002-02-01  DJ Delorie  <dj@redhat.com>
15909
15910         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
15911         we are given conflicting registers, switch to the other one we
15912         had allocated for us.
15913         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
15914         as TImode so we know when the "other" register is available.
15915
15916 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
15917
15918         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
15919         sparc/sparc_bi.h.
15920
15921 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
15922
15923         * cfganal.c (keep_with_call_p): New function.
15924         (flow_call_edges_add): Prevent splitting a block between a call and
15925         a single-set instruction that should be kept in the same block.
15926
15927 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15928
15929         * doc/install.texi (avr): Update outdated URL.
15930
15931 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
15932
15933         * config/stormy16/stormy16.md (pushqi): New.
15934         (popqi): New.
15935         (pushhi): New.
15936         (pophi): New.
15937         (movhi): Remove stack operands.
15938         (movqi): Likewise.
15939         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
15940         nonimmediate_nonstack_operand.
15941         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
15942         New.
15943         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
15944         New.
15945
15946 2002-01-31  Jason Merrill  <jason@redhat.com>
15947
15948         * Makefile.in (c-parse.c): Handle .output file.
15949         * objc/Make-lang.in (objc-parse.c): Likewise.
15950
15951 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
15952
15953         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
15954         the -me[lb] option is given.  Don't output the default flag
15955         twice.
15956
15957 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
15958
15959         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
15960         the primary source file; this has not been done yet.
15961         * c-decl.c (c_expand_body): Reset input_filename from
15962         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
15963
15964 2002-01-31  Kazu Hirata  <kazu@hxi.com>
15965
15966         * rtlanal.c (subreg_regno_offset): Do not use
15967         SUBREG_REGNO_OFFSET.
15968         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
15969         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
15970
15971 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
15972
15973         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
15974         version rather than GNATS version in --version output.
15975
15976 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
15977
15978         * ifcvt.c (noce_process_if_block): Make a copy of the destination
15979         when copying back from a temporary.
15980
15981 2002-01-30  Richard Henderson  <rth@redhat.com>
15982
15983         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
15984         and new_dest are the same.
15985
15986 2002-01-30  Richard Henderson  <rth@redhat.com>
15987
15988         PR opt/5076
15989         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
15990         * rtl.c (note_insn_name): Update.
15991         * emit-rtl.c (remove_unnecessary_notes): Kill it.
15992         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
15993         to perform loop rotation.
15994         (expand_exit_loop_top_cond): New.
15995         * tree.h (expand_exit_loop_top_cond): Declare it.
15996         * c-semantics.c (genrtl_while_stmt): Use it.
15997         (genrtl_for_stmt): Likewise.
15998
15999 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
16000
16001         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
16002         arguments to 64-bit boundaries on 64-bit ABIs.
16003
16004 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
16005
16006         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
16007
16008 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
16009
16010         * c-decl.c (grokdeclarator): Handle type being a typedef for an
16011         invalid type.
16012
16013 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
16014
16015         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
16016         * config/sparc/sparc_bi.h: Remove file.
16017         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
16018
16019 2002-01-30  Richard Henderson  <rth@redhat.com>
16020
16021         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
16022
16023 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
16024
16025         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
16026
16027 2002-01-30  Jason Merrill  <jason@redhat.com>
16028
16029         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
16030         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
16031         (reg_save): Use DW_CFA_offset_extended_sf instead.
16032
16033         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
16034
16035 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
16036
16037         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
16038         in cselib_lookup.
16039
16040 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
16041
16042         * rs6000.md ("*call_value_local32"): Remove constraints.
16043         ("*call_value_local64"): Same.
16044         ("*call_value_indirect_nonlocal_aix32"): Same.
16045         ("*call_value_nonlocal_aix32"): Same.
16046         ("*call_value_indirect_nonlocal_aix64"): Same.
16047         ("*call_value_nonlocal_aix64"): Same.
16048         ("*call_value_nonlocal_sysv"): Same.
16049
16050 2002-01-29  Richard Henderson  <rth@redhat.com>
16051
16052         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
16053
16054 2002-01-29  Richard Henderson  <rth@redhat.com>
16055
16056         * expr.c (force_operand): Ignore flag_pic for detecting pic
16057         address loads.
16058         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
16059         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
16060         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
16061         instead of open-coded loop.
16062         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
16063         be fixed when in use.
16064
16065 2002-01-29  Richard Henderson  <rth@redhat.com>
16066
16067         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
16068         * sched-rgn.c (propagate_deps): Update them.
16069         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
16070         clobbers list when either gets too long.
16071
16072 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
16073
16074         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
16075         and INDEX_REGS the same as GENERAL_REGS.
16076         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
16077
16078 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
16079
16080         * tree.c (build_nonstandard_integer_type): Correct prototype.
16081
16082 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
16083
16084         * config/s390/s390.md (movstrsico, movstrdix_64,
16085         movstrsix_31): Remove, replace by ...
16086         (movstrdi_short, movstrsi_short, movstrdi_long,
16087         movstrsi_long): ... these.  New.
16088         (movstrdi, movstrsi): Adapt.
16089
16090         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
16091         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
16092         Remove unnecessary CC clobber.
16093         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
16094         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
16095
16096         (divmoddi4): Don't partially initialize TImode register.
16097
16098 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
16099
16100         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
16101
16102 2002-01-29  Richard Henderson  <rth@redhat.com>
16103
16104         * flow.c (print_rtl_and_abort): Remove.
16105         (print_rtl_and_abort_fcn): Remove.
16106         (verify_local_live_at_start): Use dump_bb instead.
16107         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
16108         (verify_wide_reg_1): Return 2 on mode test failure.
16109
16110 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
16111
16112         PR c/3325, c/3326, c/2511, c/3347
16113         * c-decl.c (enum_decl_context): Remove BITFIELD.
16114         (grokdeclarator): Take bitfield width as an input.
16115         Ensure bitfields are given the correct type.  Perform
16116         bitfield width validation with build_bitfield_integer_type
16117         rather than waiting for finish_struct.
16118         (grok_typename, grok_typename_in_parm_context, start_decl,
16119         push_parmdecl, grokfield, start_function): Update calls to
16120         grokdeclarator.
16121         (build_bitfield_integer_type): New function.
16122         (finish_struct): Move bitfield validation to grokdeclarator
16123         and build_bitfield_integer_type.
16124         * tree.c (build_nonstandard_integer_type): New function.
16125         * tree.h (build_nonstandard_integer_type): New prototype.
16126 objc:
16127         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
16128
16129 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
16130
16131         PR other/1502:
16132         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
16133         don't ignore unrecognized -W* options.
16134         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
16135         * cpplib.h (cpp_handle_option): Adjust prototype.
16136         * c-decl.c (c_decode_options): Pass 0 as last argument to
16137         cpp_handle_option.
16138
16139         PR c/2896:
16140         * gcc.c (cpp_unique_options): Split from cpp_options.
16141         (cpp_options): Source cpp_unique_options.
16142         (default_compilers): Use cpp_unique_options instead of cpp_options
16143         when used together with cc1_options.
16144         (static_specs): Add cpp_unique_options.
16145         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
16146         when used together with cc1_options.
16147
16148 2002-01-29  Kazu Hirata  <kazu@hxi.com>
16149
16150         * config/h8300/h8300-protos.h: Update the prototype of
16151         output_a_shift.
16152         * config/h8300/h8300.c (output_a_shift): Remove an unused
16153         argument 'insn'.  Remove redundant code.
16154         * config/h8300/h8300.md: Adust to the new prototype of
16155         output_a_shift.
16156
16157 2002-01-29  Kazu Hirata  <kazu@hxi.com>
16158
16159         * config/h8300/h8300-protos.h: Update the prototypes of
16160         emit_a_rotate and expand_a_rotate.
16161         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
16162         first argument to 'enum rtx_code'.
16163         (expand_a_rotate): Likewise.
16164
16165 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16166
16167         * config/h8300/h8300-protos.h: Update the prototype of
16168         output_simode_bld.
16169         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
16170         'log2'.
16171         * config/h8300/h8300.md: Adjust to the new prototype.
16172
16173 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16174
16175         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
16176         redundant code.
16177
16178 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16179
16180         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
16181         is a fixed register before returning pic_offset_table_rtx.
16182         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
16183         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
16184
16185 2002-01-28  Jason Merrill  <jason@redhat.com>
16186
16187         * dwarf2.h: Sync with src version.
16188
16189 2002-01-28  Paul Koning  <pkoning@equallogic.com>
16190
16191         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
16192         BT_FN_VOID_PTR_VAR.
16193         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
16194         * doc/extend.texi (__builtin_prefetch): Update documentation:
16195         first argument is now const void ptr.
16196
16197 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16198
16199         * config/h8300/h8300-protos.h: Remove an unused prototype.
16200
16201 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
16202
16203         * toplev.c (lang_independent_init): Round up identifier size.
16204
16205 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
16206
16207         * config.gcc: Revert previous change.
16208
16209 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
16210
16211         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
16212
16213 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
16214
16215         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
16216         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
16217         other non-elf netbsd config frags.
16218         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
16219         collect2 will does that.
16220         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
16221         shared-lib frobbing will work.
16222
16223 2002-01-28  Kazu Hirata  <kazu@hxi.com>
16224
16225         * config/h8300/h8300.h: Fix formatting.
16226         * config/h8300/h8300.md: Likewise.
16227
16228 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
16229
16230         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
16231         the old, removed AAA_standards fix.
16232         * fixinc/fixincl.x: Rebuilt.
16233
16234 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
16235
16236         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
16237         atexit call in crtbegin, hooked in after call to frame_dummy;
16238         register EH before registering __fini__start.
16239
16240 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
16241
16242         * config/rs6000/altivec.h: Remove spurious semicolons.
16243
16244 2002-01-27  Kazu Hirata  <kazu@hxi.com>
16245
16246         * config/h8300/h8300.md: Replace dead bit extraction patterns
16247         with ones that work.
16248
16249 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16250
16251         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
16252         if not STRICT_ALIGNMENT.
16253         * rtl.h (MEM_ALIGN): Likewise.
16254
16255 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16256
16257         * doc/invoke.texi (-fdump-translation-unit): Revert this
16258         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16259
16260 2002-01-27  Kazu Hirata  <kazu@hxi.com>
16261
16262         * config/h8300/h8300.md (define_constants): New.
16263         (anonymous patterns) Use defined constants appropriately.
16264
16265 2002-01-27  Kazu Hirata  <kazu@hxi.com>
16266
16267         * config/h8300/h8300.c (function_arg): Remove redundant code.
16268
16269 2002-01-26  Richard Henderson  <rth@redhat.com>
16270
16271         * sched-deps.c (reg_pending_uses_head): New.
16272         (reg_pending_barrier): Rename from reg_pending_sets_all.
16273         (find_insn_list): Don't mark inline.
16274         (find_insn_mem_list): Remove.
16275         (add_dependence_list, add_dependence_list_and_free): New.
16276         (flush_pending_lists): Replace only_write param with separate
16277         for_read and for_write parameters.  Update all callers.  Use
16278         add_dependence_list_and_free.
16279         (sched_analyze_1): Do not add reg dependencies here; just set
16280         the pending bits.  Use add_dependence_list.
16281         (sched_analyze_2): Likewise.
16282         (sched_analyze_insn): Replace schedule_barrier_found with
16283         reg_pending_barrier.  Add all dependencies for pending reg
16284         uses, sets, and clobbers.
16285         (sched_analyze): Don't add reg dependencies for calls, just
16286         set pending bits.  Use regs_invalidated_by_call.  Treat
16287         sched_before_next_call as a normal list, not a fake insn.
16288         (init_deps): No funny init for sched_before_next_call.
16289         (free_deps): Free pending mems lists.  Don't zero reg_last.
16290         (init_deps_global): Init reg_pending_uses.
16291         (finish_deps_global): Free it.
16292         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
16293         (find_insn_mem_list): Remove.
16294         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
16295         (propagate_deps): Use them.  Zero temp mem lists.
16296
16297 2002-01-26  Richard Henderson  <rth@redhat.com>
16298
16299         * Makefile.in (CRTSTUFF_CFLAGS): New.
16300         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
16301         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
16302         crtstuff.c instead of alpha assembly version.
16303         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
16304         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
16305         not FORCE_{INIT,FINI}_SECTION_ALIGN.
16306         (__do_global_dtors_aux): Mark used.
16307         (frame_dummy, __do_global_ctors_aux): Mark used.
16308         (fini_dummy, init_dummy): Remove.
16309
16310         * config/alpha/crtbegin.asm: Remove file.
16311         * config/alpha/crtend.asm: Remove file.
16312         * config/alpha/t-crtbe: Remove file.
16313         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
16314         (LINK_EH_SPEC): New.
16315
16316         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
16317         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
16318         calling constructors.
16319         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
16320
16321         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
16322         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
16323         CRT_END_INIT_DUMMY hack.
16324         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
16325         FORCE_{INIT,FINI}_SECTION_ALIGN.
16326
16327         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
16328         FORCE_{INIT,FINI}_SECTION_ALIGN.
16329
16330         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
16331         invocation sequence.
16332         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
16333
16334         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
16335         (FORCE_CODE_SECTION_ALIGN): New.
16336
16337 2002-01-26  Richard Henderson  <rth@redhat.com>
16338
16339         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
16340
16341 2002-01-26  Richard Henderson  <rth@redhat.com>
16342
16343         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
16344         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
16345
16346 2002-01-26  Kazu Hirata  <kazu@hxi.com>
16347
16348         * config/h8300/h8300.md: Remove bit extraction patterns that
16349         cannot be triggered.
16350         Restrict each bit extraction pattern to a variant on which the
16351         pattern is tested.
16352
16353 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
16354
16355         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
16356
16357 2002-01-26  Kazu Hirata  <kazu@hxi.com>
16358
16359         * config/h8300/h8300.md: Remove bit test patterns that cannot
16360         be triggered.
16361         Restrict each bit test pattern to a variant on which the
16362         pattern is tested.
16363
16364 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16365
16366         * builtins.c (expand_builtin_strncat): Remove redundant check for
16367         INTEGER_CST.
16368
16369 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
16370
16371         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
16372         default setting.
16373         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
16374         existing setting.
16375
16376 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
16377
16378         * dbxout.c (dbxout_init): Use assemble_name rather than just
16379         stripping off the first character.
16380         (dbxout_source_file): Likewise.
16381
16382 2002-01-25  DJ Delorie  <dj@redhat.com>
16383
16384         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
16385         using rtx_equal_p, not by comparing pointers.
16386
16387 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
16388
16389         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
16390         for PIC_OFFSET_TABLE_REGNUM.
16391         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
16392
16393 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
16394
16395         * config.gcc (x86_64-*-freebsd*): New target.
16396         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
16397         value.
16398         (i[34567]86-*-freebsd*): Don't include svr4.h.
16399         * config/i386/freebsd64.h: New file.
16400
16401 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
16402
16403         * config/alpha/x-vms (version): Make static.
16404
16405         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
16406         in previous checkin.
16407
16408         * Makefile.in (install-headers-cp): New target.
16409         * config.gcc (alpha-dec-*vms*): Install headers with
16410         install-headers-cp
16411
16412 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
16413
16414         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
16415         avoid it's copies.
16416
16417 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16418
16419         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
16420         of compare_tree_int.
16421         (expand_builtin_strncat): Likewise.
16422         * c-decl.c (finish_struct): Use tree_low_cst.
16423         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
16424         * tree.c (compare_tree_int): Likewise.
16425
16426 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
16427
16428         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
16429         adjustments even if they are implemented by more than two insns.
16430
16431 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
16432
16433         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
16434         * df.h (struct ref): Kill B.
16435         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
16436
16437         * basic-block.h (PROP_EQUAL_NOTES): New flag.
16438         * flow.c (propagate_one_insn): Use it.
16439         (mark_used_regs): Handle NIL.
16440
16441 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
16442
16443         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
16444         to help folding.
16445
16446 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
16447
16448         * rs6000.md (prefetch): Make address V4SI mode so that the address
16449         is restricted to legitimate form for instruction.
16450
16451 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
16452
16453         * doc/install.texi (xtensa-*-elf): New target.
16454         (xtensa-*-linux*): New target.
16455         * doc/contrib.texi: Add myself.
16456
16457 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
16458
16459         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
16460         purpose register to hold an SImode (or smaller) value.
16461
16462 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
16463
16464         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
16465         registry only.
16466         * crtstuff.c: Likewise.
16467
16468 2002-01-25  Kazu Hirata  <kazu@hxi.com>
16469
16470         * config/h8300/h8300.md (negation patterns): Tighten
16471         predicates to register_operand.
16472
16473 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
16474
16475         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
16476         mode, not Pmode.
16477
16478         * builtins.c (expand_builtin_prefetch): Same.
16479
16480 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
16481
16482         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
16483         modes.
16484
16485 2002-01-24  Kazu Hirata  <kazu@hxi.com>
16486
16487         * config/h8300/h8300.c (print_operand): Remove support for
16488         operand character 'A'.
16489         * config/h8300/h8300.md (three anonymous patterns): Replace
16490         operand character 'A' with either 'T' or 'S'.
16491
16492 2002-01-24  Kazu Hirata  <kazu@hxi.com>
16493
16494         * config/h8300/h8300.c (print_operand): Remove support for
16495         operand character 'U'.
16496
16497 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
16498
16499         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
16500
16501 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
16502
16503         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
16504         values to be assigned to the stack pointer.
16505
16506 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
16507
16508         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
16509         to const_double needs to be done right for big-endian systems.
16510
16511 2002-01-24  Jason Merrill  <jason@redhat.com>
16512
16513         PR c++/2432
16514         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
16515         to can_throw_internal.
16516
16517 2002-01-23  Richard Henderson  <rth@redhat.com>
16518
16519         * fold-const.c (fold): Change UINT_MAX test to check vs precision
16520         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
16521
16522 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
16523
16524         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
16525         (symGOT2reg): Use them, then set as GOT value as unchanging.
16526         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
16527         as a temporary, if possible.
16528         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
16529         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
16530
16531 2002-01-23  Kazu Hirata  <kazu@hxi.com>
16532
16533         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
16534         accept to accept 0x80 as operands[2].
16535
16536 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
16537
16538         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
16539
16540 2002-01-23  Richard Henderson  <rth@redhat.com>
16541
16542         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
16543
16544 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
16545
16546         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
16547         (parmlist_or_identifiers_1): Verify that only a parmlist follows
16548         an attribute.
16549
16550 2002-01-23  Richard Henderson  <rth@redhat.com>
16551
16552         * expr.c (move_by_pieces_1): Extend size before negation.
16553
16554         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
16555         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
16556         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
16557         * config/m68k/t-m68kelf: Likewise.
16558
16559 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
16560
16561         * config/xtensa/elf.h: New file.
16562         * config/xtensa/lib1funcs.asm: New file.
16563         * config/xtensa/lib2funcs.S: New file.
16564         * config/xtensa/linux.h: New file.
16565         * config/xtensa/t-xtensa: New file.
16566         * config/xtensa/xtensa-config.h: New file.
16567         * config/xtensa/xtensa-protos.h: New file.
16568         * config/xtensa/xtensa.c: New file.
16569         * config/xtensa/xtensa.h: New file.
16570         * config/xtensa/xtensa.md: New file.
16571         * config.gcc (xtensa-*-elf*): New target.
16572         (xtensa-*-linux*): New target.
16573         * cse.c (canon_hash): Compare rtx pointers instead of register
16574         numbers.  This is required for the Xtensa port.
16575         * integrate.c (copy_insn_list): Handle case where the static
16576         chain is in memory and the memory address has to be copied to
16577         a register.
16578         * doc/invoke.texi (Option Summary): Add Xtensa options.
16579         (Xtensa Options): New node.
16580         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
16581
16582 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
16583
16584         * diagnostic.c (internal_error): Do ICE suppression only
16585         when ENABLE_CHECKING is not defined.
16586
16587         * c-typeck.c (require_complete_type): Return error_mark_node
16588         if type is error_mark_node.
16589
16590 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
16591
16592         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
16593         -Os and issue a warning.
16594
16595 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
16596
16597         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
16598         current (lack of) need for host configuration by hand.
16599
16600         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
16601         references.  Documentation of some target macros moved from
16602         hostconfig.texi to tm.texi.
16603
16604 2002-01-23  Will Cohen  <wcohen@redhat.com>
16605
16606         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
16607         defined.
16608
16609 2002-01-23  Kazu Hirata  <kazu@hxi.com>
16610
16611         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
16612         operand[3].
16613
16614 2002-01-23  Jason Merrill  <jason@redhat.com>
16615
16616         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
16617
16618         * function.c (assign_parms): Don't put args of inline functions
16619         into registers when not optimizing.
16620
16621 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
16622
16623         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
16624         (prologue_use): New pattern.
16625         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
16626         preference to gen_rtx_USE.
16627         (thumb_expand_prologue): Use gen_prologue_use in preference to
16628         gen_rtx_USE.
16629         (thumb_expand_epilogue): Use gen_prologue_use in preference to
16630         gen_rtx_USE.
16631
16632 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
16633
16634         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
16635
16636 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
16637
16638         PR c/3504
16639         * doc/extend.texi: Correct documentation of __alignof__.
16640
16641 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
16642
16643         * params.h: Rename arguments of DEFPARAM so that it will be
16644         recognized as a translation keyword.
16645
16646 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
16647
16648         * extend.texi: Document altivec functions.
16649         Fix N-bit adjectives in X86 builtin documentation.
16650
16651 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
16652
16653         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
16654         auto_inc_dec values.
16655
16656 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
16657
16658         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
16659         after backslash.
16660         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
16661
16662 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
16663
16664         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
16665
16666 2002-01-22  Richard Henderson  <rth@redhat.com>
16667
16668         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
16669         copy_insn not copy_rtx.
16670
16671 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
16672
16673         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
16674         "nonzero" as that might add "1" bits.  Ensure "constop" is
16675         properly sign extened.
16676         (force_to_mode): Tweak for sign extended constop.
16677
16678 2002-01-22  Richard Henderson  <rth@redhat.com>
16679
16680         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
16681         for_each_rtx instead of assuming we're already looking at the MEM.
16682         (split_small_symbolic_mem_operand): Likewise.
16683         * config/alpha/alpha.h (PREDICATE_CODES): Update.
16684         * config/alpha/alpha.md (small symbolic memory splitters): Update.
16685
16686 2002-01-22  Richard Henderson  <rth@redhat.com>
16687
16688         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
16689         sequence number for the literal.
16690         (divmoddi_internal_er): Likewise.
16691
16692 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16693
16694         PR java/4972
16695         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
16696         in LIBICONV variable.
16697         * configure: Regenerated.
16698
16699 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
16700
16701         * dependence.c (build_def_use): Remove array_idx.
16702
16703         * dwarfout.c (last_filename): Remove.
16704         (output_compile_unit_die): Remove last_filename.
16705
16706 2002-01-22  Roger Sayle  <roger@eyesopen.com>
16707             Richard Henderson  <rth@redhat.com>
16708
16709         PR opt/3640
16710         * fold-const.c (fold): Optimize unsigned comparisons against
16711         UINT_MAX (and similar unsigned constants).
16712
16713 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
16714
16715         * Makefile.in (loop.o): Depend on OPTABS_H.
16716         * loop.c (emit_prefetch_instructions): Check the prefetch operand
16717         against the predicate.
16718
16719         PR target/5379
16720         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
16721         for the address operand.
16722
16723 2002-01-22  Richard Henderson  <rth@redhat.com>
16724
16725         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
16726
16727 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16728
16729         PR other/5450
16730         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
16731         preprocessor flags.
16732
16733 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
16734
16735         * config.gcc (x86_64-*-netbsd*): New target.
16736         * config/i386/netbsd64.h: New file.
16737
16738 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
16739
16740         * regrename.c (kill_value): Fix typo.
16741
16742 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
16743
16744         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
16745
16746         * config/rs6000/rs6000.h: Same.
16747
16748         * function.c (instantiate_virtual_regs): Remove
16749         STARTING_FRAME_PHASE.
16750         (assign_stack_local_1): Same.
16751         Calculate frame phase.
16752
16753 2002-01-22  Nick Clifton  <nickc@redhat.com>
16754
16755         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
16756         variable declaration to outer scope in order to simplify
16757         future extensions.
16758         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
16759         arm_hard_regno_mode_ok.
16760         * config/arm/arm-protos.h: Add a prototype for
16761         arm_hard_regno_mode_ok.
16762         * config/arm/arm.c (soft_df_operand): Remove now redundant
16763         check for DImode values using IP_REGNUM.
16764         (nonimmediate_soft_df_operand): Remove now redundant check for
16765         DImode values using IP_REGNUM.
16766         (arm_hard_regno_mode_ok): New function. New check: make sure
16767         that DImode values are not stored in IP_REGNUM.
16768
16769         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
16770         note with a USE.
16771         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
16772
16773 2002-01-22  Jason Merrill  <jason@redhat.com>
16774
16775         * c-semantics.c (genrtl_compound_stmt): Only check nesting
16776         consistency if this COMPOUND_STMT is scoped.
16777
16778 2002-01-22  Kazu Hirata  <kazu@hxi.com>
16779
16780         * predict.c: Fix formatting.
16781         * print-tree.c: Likewise.
16782         * protoize.c: Likewise.
16783         * real.h: Likewise.
16784         * rtl.h: Likewise.
16785         * sbitmap.h: Likewise.
16786         * scan.c: Likewise.
16787         * sched-deps.c: Likewise.
16788         * sched-vis.c: Likewise.
16789         * sdbout.c: Likewise.
16790         * sibcall.c: Likewise.
16791         * ssa.c: Likewise.
16792         * ssa-ccp.c: Likewise.
16793         * ssa-dce.c: Likewise.
16794         * stmt.c: Likewise.
16795         * stor-layout.c: Likewise.
16796         * system.h: Likewise.
16797
16798 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16799
16800         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
16801         if fits in bounds of base type.
16802
16803         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
16804         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
16805         (add_bound_info, default): If can't find a context, make a
16806         SAVE_EXPR.
16807         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
16808
16809 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
16810
16811         * c-typeck.c (parser_build_binary_op): If result from
16812         build_binary_op is ERROR_MARK just return error_mark_node without
16813         further processing.
16814
16815 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
16816
16817         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
16818         Split a.out-specific bits into...
16819         * config/netbsd-aout.h: ...this.
16820         * config/netbsd-elf.h: New file.
16821         * config/alpha/netbsd-elf.h: Remove.
16822         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
16823         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
16824         (STARTFILE_SPEC): Remove redundant definition.
16825         (ENDFILE_SPEC): Likewise.
16826         (LINK_SPEC): Likewise.
16827         (CPP_SPEC): Likewise.
16828         (ASM_SPEC): Likewise.
16829         (LIB_SPEC): Likewise.
16830         (SWITCH_TAKES_ARG): Likewise.
16831         (TARGET_MEM_FUNCTIONS): Likewise.
16832         (CPP_PREDEFINES): Redefine.
16833         (ASM_FINAL_SPEC): Remove redefinition.
16834         (ASM_COMMENT_START): Redefine.
16835         (FUNCTION_PROFILER): Define.
16836         (TARGET_VERSION): Redefine.
16837         Comment and formatting cleanup.
16838         * config/i386/netbsd.h: Include <netbsd-aout.h>.
16839         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
16840         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
16841         big- or little-endian.
16842         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
16843         * config.gcc (*-*-netbsd*): Add definitions common to all
16844         NetBSD configs.
16845         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
16846         gnu_ld definitions.  Add netbsd-elf.h to and remove
16847         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
16848         tmake_file, and don't lose previous tmake_file contents.
16849         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
16850         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
16851         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
16852         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
16853         (mipsel-*-netbsd*): Rename this to...
16854         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
16855         mips/little.h to tm_file for mips*el-*.
16856         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
16857         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
16858         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
16859
16860 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16861
16862         * pa-protos.h (reg_before_reload_operand): New function prototype.
16863         * pa.c (reg_before_reload_operand): New function implementation.
16864         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
16865         contraints to "*m".
16866
16867 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16868
16869         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
16870
16871 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16872
16873         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
16874         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
16875         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
16876         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
16877         (ENDFILE_SPEC): Undefine.
16878         (STARTFILE_SPEC): Redefine for PA.
16879
16880 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16881
16882         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
16883
16884 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
16885
16886         * config.gcc: Add entries to supported PowerPC --with-cpu
16887         types.
16888
16889 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
16890
16891         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
16892         true for 64-bit mode only SSE registers in 32-bit mode.
16893
16894 2002-01-21  Kazu Hirata  <kazu@hxi.com>
16895
16896         * unwind-dw2.c: Fix formatting.
16897         * unwind-dw2-fde.c: Likewise.
16898         * unwind-dw2-fde.h: Likewise.
16899         * unwind-pe.h: Likewise.
16900         * varasm.c: Likewise.
16901         * varray.h: Likewise.
16902
16903 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
16904
16905         Remove workaround for register stack overwrite bug in mmix.
16906         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
16907         support for TARGET_REG_STACK_FILL_BUG.
16908         * config/mmix/mmix.h: Remove member has_call_without_parameters.
16909         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
16910         Delete.
16911         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
16912         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
16913         -mno-reg-stack-fill-bug-workaround.
16914         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
16915         machine member has_call_without_parameters.
16916         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
16917         -mreg-stack-fill-bug-workaround and
16918         -mno-reg-stack-fill-bug-workaround.
16919         (MMIX Options): Ditto.
16920
16921 2002-01-21  Kazu Hirata  <kazu@hxi.com>
16922
16923         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
16924         as appropriate.
16925         Remove redundant code.
16926
16927 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
16928
16929         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
16930         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
16931         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
16932         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
16933         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
16934         out target macro definitions and non-target-specific comments
16935         mostly taken from old versions of the manual.
16936
16937 2002-01-20  Kazu Hirata  <kazu@hxi.com>
16938
16939         * config/h8300/h8300.h: Fix comment formatting.
16940         * config/ia64/aix.h: Likewise.
16941         * config/ia64/ia64-protos.h: Likewise.
16942         * config/ia64/ia64.c: Likewise.
16943         * config/ia64/ia64.h: Likewise.
16944         * config/ia64/ia64intrin.h: Likewise.
16945         * config/ia64/linux.h: Likewise.
16946         * config/ia64/unwind-aix.c: Likewise.
16947         * config/ia64/unwind-ia64.c: Likewise.
16948
16949 2002-01-20  Kazu Hirata  <kazu@hxi.com>
16950
16951         * config/h8300/h8300.c: Revise comments about shift code.
16952
16953 2002-01-20  Kazu Hirata  <kazu@hxi.com>
16954
16955         * config/h8300/h8300.c (function_arg): Update a comment.
16956
16957 2002-01-20  Kazu Hirata  <kazu@hxi.com>
16958
16959         * config/h8300/h8300.md: Update the comments at the beginning
16960         of the file.
16961
16962 2002-01-20  Kazu Hirata  <kazu@hxi.com>
16963
16964         * config/i370/i370.c: Fix comment formatting.
16965         * config/i370/i370.h: Likewise.
16966         * config/i370/i370.md: Likewise.
16967         * config/i370/linux.h: Likewise.
16968
16969 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16970
16971         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
16972
16973         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
16974         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
16975         in incomplete case.
16976
16977 2002-01-20  Graham Stott  <grahams@redhat.com>
16978
16979         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
16980
16981 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16982
16983         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
16984
16985 2002-01-19  Tom Rix  <trix@redhat.com>
16986
16987         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
16988
16989 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
16990
16991         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
16992
16993         * function.c (assign_stack_local_1): Adjust x_frame_offset with
16994         STARTING_FRAME_PHASE.
16995         (STARTING_FRAME_PHASE): New.
16996         (instantiate_virtual_regs): Check saneness of
16997         STARTING_FRAME_PHASE.
16998
16999         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
17000
17001 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
17002
17003         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
17004
17005 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17006
17007         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
17008         be used for bootstrapping GCC 3.0.
17009
17010 2002-01-18  Kazu Hirata  <kazu@hxi.com>
17011
17012         * config/h8300/h8300.md: Fix an insn length.
17013
17014 2002-01-18  Kazu Hirata  <kazu@hxi.com>
17015
17016         * bitmap.h: Fix comment formatting.
17017         * combine.c: Likewise.
17018         * cppfiles.c: Likewise.
17019         * c-pragma.h: Likewise.
17020         * c-typeck.c: Likewise.
17021         * df.c: Likewise.
17022         * dwarf2out.c: Likewise.
17023         * function.c: Likewise.
17024         * gcc.c: Likewise.
17025         * genattrtab.c: Likewise.
17026         * gthr-win32.h: Likewise.
17027         * haifa-sched.c: Likewise.
17028         * predict.c: Likewise.
17029         * rtlanal.c: Likewise.
17030         * rtl.h: Likewise.
17031         * unwind-dw2-fde.h: Likewise.
17032         * unwind-pe.h: Likewise.
17033         * vmsdbgout.c: Likewise.
17034
17035 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17036
17037         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
17038         if type_required and passed decl.
17039
17040 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
17041
17042         * config.gcc (cpu_type): Include altivec.h in powerpc
17043         extra_headers.
17044         Same for darwin.
17045
17046         * config/rs6000/altivec.h: New.
17047
17048 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
17049
17050         * doc/install.texi (*-ibm-aix*): Update assembler and exception
17051         handling information.
17052         * doc/trouble.texi (Interoperation): Add libstdc++ information
17053         for AIX.
17054         (Misunderstandings): Add template instantiation and static template
17055         member information for AIX.
17056
17057 2002-01-17  Jason Merrill  <jason@redhat.com>
17058
17059         * dbxout.c (dbxout_type): Support const and volatile.
17060
17061         * except.c (add_partial_entry): Remove backwards compatibility code.
17062         (end_protect_partials): Likewise.
17063
17064 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
17065
17066         * config/ia64/ia64.md (prologue_use): New.
17067         * config/ia64/ia64.c (ia64_expand_prologue): Use
17068         gen_prologue_use instead of gen_rtx_USE.
17069         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
17070         as CODE_FOR_pred_rel_mutex.
17071         (ia64_sched_reorder2): Likewise.
17072
17073 2002-01-16  Eric Christopher  <echristo@redhat.com>
17074
17075         * config/mips/r3900.h: Reformat.
17076         (SUBTARGET_CPP_SIZE_SPEC): Remove.
17077         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
17078         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
17079         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
17080         * config/mips/t-elf: Remove mips3 multilib.
17081
17082 2002-01-16  H.J. Lu <hjl@gnu.org>
17083
17084         * config/mips/linux.h: Include "mips/abi64.h".
17085
17086 2002-01-16  H.J. Lu <hjl@gnu.org>
17087
17088         * config/mips/t-linux: New.
17089
17090         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
17091
17092         * config/mips/linux.h: Don't include "gofast.h".
17093         (INIT_SUBTARGET_OPTABS): Removed.
17094
17095 2002-01-16  Kazu Hirata  <kazu@hxi.com>
17096
17097         * config/h8300/h8300-protos.h: Replace emit_a_shift with
17098         output_a_shift.
17099         * config/h8300/h8300.c: Likewise.
17100         * config/h8300/h8300.md: Likewise.
17101
17102 2002-01-16  Kazu Hirata  <kazu@hxi.com>
17103
17104         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
17105         spaces after an opcode name.
17106         (pushqi1_h8300hs): Likewise.
17107         (pushhi1_h8300hs): Likewise.
17108
17109 2002-01-16  Kazu Hirata  <kazu@hxi.com>
17110
17111         * doc/extend.texi: Replace "option" with "attribute"
17112         appropriately.
17113
17114 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
17115
17116         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
17117         (and:DI () (const_int -8)).
17118         (split_small_symbolic_mem_operand): Split
17119         (mem (and:DI () (const_int -8)).
17120
17121 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
17122
17123         PR target/5309:
17124         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
17125         same way as TYPE_IMUL.
17126         (ultrasparc_sched_reorder): Likewise.
17127         * config/sparc/sparc.md (type): Add comment to update
17128         ultrasparc_sched_reorder when making changes.
17129
17130 2002-01-16  Kazu Hirata  <kazu@hxi.com>
17131
17132         * doc/invoke.texi: Change the dump file name of block
17133         reordering pass from 28.bbro to 29.bbro.
17134         Mention -dk option.
17135
17136 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
17137
17138         * i386.md (minsf splitter): Fix pasto.
17139
17140 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
17141
17142         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
17143         to frame pointer initialisation instruction.
17144         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
17145         initialisation instruction.
17146         (soft_df_operand): Do not accept the IP register.
17147         (nonimmediate_soft_df_operand): Do not accept the IP register.
17148
17149 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
17150
17151         PR target/5357:
17152         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
17153         MASK_V8 being both set.
17154
17155 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
17156
17157         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
17158         insn for GOT register; add REG_MAYBE_DEAD notes instead.
17159         config/s390/s390.md (call, call_value): Add GOT register to
17160         CALL_INSN_FUNCTION_USAGE where needed.
17161         (call_exp, call_value_exp): New.
17162
17163 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
17164
17165         * config/arm/arm.c: General formatting tidy up.
17166
17167 2002-01-16  Graham Stott  <grahams@redhat.com>
17168
17169         * calls.c (try_to_integrate): Use "(size_t)" intermediate
17170         cast and when casting an integer literal to "rtx" pointer.
17171         (expand_call): Likewise.
17172         * flow.c (try_pre_increment): Likewise.
17173         (find_use_as_address): Likewise.
17174         * integrate.c (expand_iline_function): Likewise.
17175         * regmove.c (try_auto_increment): Likewise.
17176
17177 2002-01-16  Graham Stott  <grahams@redhat.com>
17178
17179         * sched-rgn.c (passed): Use sbitmap_free.
17180         (header): Likewise.
17181         (inner): Likewise.
17182         (in_queue): Likewise.
17183         (in_stack): Likewise.
17184
17185 2002-01-15  Eric Christopher  <echristo@redhat.com>
17186
17187         * flow.c (propagate_one_insn): Change to use fatal_insn.
17188
17189 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17190
17191         * expmed.c (extract_fixed_bit_field): Remove unused code.
17192         * system.h: Poison SLOW_ZERO_EXTEND.
17193         * doc/tm.texi: Remove.
17194         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
17195         * config/arm/arm.h: Likewise.
17196         * config/avr/avr.h: Likewise.
17197         * config/clipper/clipper.h: Likewise.
17198         * config/convex/convex.h: Likewise.
17199         * config/d30v/d30v.h: Likewise.
17200         * config/dsp16xx/dsp16xx.h: Likewise.
17201         * config/elxsi/elxsi.h: Likewise.
17202         * config/fr30/fr30.h: Likewise.
17203         * config/h8300/h8300.h: Likewise.
17204         * config/i370/i370.h: Likewise.
17205         * config/i386/i386.h: Likewise.
17206         * config/m68k/m68k.h: Likewise.
17207         * config/mips/mips.h: Likewise.
17208         * config/ns32k/ns32k.h: Likewise.
17209         * config/pdp11/pdp11.h: Likewise.
17210         * config/pj/pj.h: Likewise.
17211         * config/s390/s390.h: Likewise.
17212         * config/sh/sh.h: Likewise.
17213         * config/stormy16/stormy16.h: Likewise.
17214         * config/v850/v850.h: Likewise.
17215         * config/vax/vax.h: Likewise.
17216         * config/we32k/we32k.h: Likewise.
17217
17218 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
17219
17220         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
17221         (altivec_lvsl): Change constraint to b.
17222         (altivec_lvsr): Same.
17223         (altivec_lvebx): Same.
17224         (altivec_lvehx): Same.
17225         (altivec_lvewx): Same.
17226         (altivec_lvxl): Same.
17227         (altivec_lvx): Same.
17228         (altivec_stvx): Add parallel.
17229         (altivec_stvxl): Same.
17230         (altivec_stvehx): Same.
17231         (altivec_stvebx): Same.
17232         (altivec_stvebx): Same.
17233
17234 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
17235
17236         * config.gcc: Change altivec.h to altivec-defs.h.
17237
17238         * config/rs6000/altivec.h: Delete.
17239
17240         * config/rs6000/altivec-defs.h: Add.
17241
17242 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17243
17244         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
17245         and UMOD modes.
17246
17247         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
17248         less than or equal to eight bytes.
17249
17250         * vax.md (andsi3): Remove constraints and change SET destination
17251         operand type to nonimmediate_operand.
17252         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
17253         when it is a CONST_INT.
17254
17255 2002-01-15  Jason Merrill  <jason@redhat.com>
17256
17257         * c-common.def (FILE_STMT): New code.
17258         * c-common.c (statement_code_p): It's a statement.
17259         * c-common.h (stmt_tree_s): Add x_last_filename.
17260         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
17261         (last_expr_filename): New macro.
17262         * c-semantics.c (begin_stmt_tree): Initialize it.
17263         (add_stmt): If the filename changed, also insert a
17264         FILE_STMT.
17265         (expand_stmt): Handle seeing one.
17266
17267 2002-01-15  Eric Christopher  <echristo@redhat.com>
17268
17269         * flow.c (propagate_one_insn): Add error message and print out
17270         insn for debugging.
17271
17272 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
17273
17274         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
17275         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
17276         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
17277         TRAMPOLINE_ALIGNMENT.
17278         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
17279         to be in bits.
17280         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
17281         PCC_BITFIELD_TYPE_MATTERS.
17282         * config/interix.h (STDC_VALUE): Remove.  Use
17283         STDC_0_IN_SYSTEM_HEADERS.
17284         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
17285         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
17286         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
17287
17288 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17289
17290         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
17291         not work on this platform currently.
17292
17293 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
17294
17295         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
17296         readonly_warning in _().
17297
17298 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
17299
17300         * gcc.c (delete_if_ordinary): Backout previous change.
17301
17302 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17303
17304         * config/h8300/h8300.c (print_operand): Remove support for
17305         unused operand characters.
17306
17307         * read-rtl.c: Fix formatting.
17308         * real.c: Likewise.
17309         * recog.c: Likewise.
17310         * regclass.c: Likewise.
17311         * regmove.c: Likewise.
17312         * reg-stack.c: Likewise.
17313         * reload1.c: Likewise.
17314         * rtlanal.c: Likewise.
17315
17316 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17317
17318         * config/i386/i386.c: Fix formatting.
17319
17320 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
17321
17322         * c-typeck.c (process_init_element): Don't save_expr
17323         COMPOUND_LITERAL_EXPR if just its initializer will be used.
17324
17325 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
17326
17327         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
17328         emit optional traceback table if optimize_size or TARGET_ELF.
17329         * config/rs6000/rs6000.md (prefetch): New.
17330
17331 2002-01-15  Andreas Jaeger  <aj@suse.de>
17332
17333         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
17334
17335 2002-01-15  Kazu Hirata  <kazu@hxi.com>
17336
17337         * mips-tfile.c: Fix formatting.
17338
17339 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
17340
17341         * unroll.c (final_reg_note_copy): Fix previous commit.
17342
17343 2002-01-14  Kazu Hirata  <kazu@hxi.com>
17344
17345         * config/h8300/h8300-protos.h: Remove the prototype for
17346         eq_operator.
17347         * config/h8300/h8300.c (eq_operator): Remove.
17348
17349 2002-01-14  Richard Henderson  <rth@redhat.com>
17350
17351         * config/i386/i386.md (prefetch): Tidy.
17352         (prefetch_3dnow): Fix locality operand.
17353
17354 2002-01-14  Richard Henderson  <rth@redhat.com>
17355
17356         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
17357         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
17358
17359 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
17360
17361         * reload1.c (reload_combine): Pass reg_sum replacement through
17362         copy_rtx in loop performing multiple changes.
17363
17364 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
17365
17366         * except.c (remove_unreachable_regions): New.
17367         (free_eh_status): Clear exception_handler_labels.
17368         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
17369         (find_exception_handler_labels): Don't add the same label more than
17370         once.
17371         (remove_exception_handler_label): Don't die if
17372         find_exception_handler_labels hasn't been called for the current
17373         function yet.
17374
17375 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
17376
17377         * toplev.c (rest_of_compilation): Rebuild jump labels after
17378         gcse.
17379
17380 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
17381
17382         * doc/extend.texi: Move documentation of X86 built-in functions
17383         here.
17384         * doc/invoke.texi: From here.
17385         * doc/sourcebuild.texi: Document location of documentation for
17386         machine built-in functions.
17387
17388 2002-01-13  Christopher Faylor  <cgf@redhat.com>
17389
17390         * cppfiles.c (TEST_THRESHOLD): New macro.
17391         (SHOULD_MMAP): Ditto.
17392         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
17393         be used.
17394
17395 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
17396
17397         * unroll.c (final_reg_note_copy): Properly handle
17398         REG_LABEL
17399         (unroll_loops): Fix LOOP_CONDITION heuristics.
17400
17401 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
17402
17403         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
17404         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
17405
17406 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
17407
17408         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
17409         threaded loop.
17410
17411 2002-01-14  Tom Rix  <trix@redhat.com>
17412
17413         * config/rs6000/rs6000.md: Fix typo with sradi.
17414
17415 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
17416
17417         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
17418         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
17419         (clrstrdi, clrstrsi): Adapt callers.
17420
17421         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
17422
17423         (movti splitter): Never use register 0 as base register.
17424
17425 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
17426
17427         * combine.c (simplify_shift_const): Always generate new rtx
17428         for shift expression instead of reusing given expression.
17429
17430 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17431
17432         * config/alpha/alpha.c (alpha_expand_mov): Don't call
17433         alpha_legitimize_address unless mode is Pmode.
17434
17435 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
17436
17437         * doc/md.texi (Modifiers): Document the '*' constraint for the
17438         user.
17439
17440         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
17441         * doc/extend.texi (Function Attributes): 'interrupt' is valid
17442         for xstormy16 too.
17443
17444 2002-01-13  Richard Henderson  <rth@redhat.com>
17445
17446         * reload.c (find_reloads): Use a hard reg destination as reload reg
17447         for an input reload of the source.
17448
17449 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
17450
17451         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
17452         more generic.
17453
17454 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
17455
17456         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
17457         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
17458
17459         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
17460
17461 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17462
17463         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
17464
17465 2002-01-12  Tom Rix  <trix@redhat.com>
17466
17467         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
17468         TARGET_POWERPC64.
17469
17470 2002-01-12  Richard Henderson  <rth@redhat.com>
17471
17472         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
17473
17474         * doc/invoke.texi: Update Alpha options.
17475
17476         * doc/invoke.texi: Update i386 built-in function lists.
17477
17478 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
17479
17480         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
17481         referencing outside.
17482
17483 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17484
17485         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
17486         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
17487         offsets, and change line folding.
17488         * optabs.c (expand_binop): Remove warnings.
17489         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
17490
17491 2002-01-12  Graham Stott <grahams@redhat.com>
17492
17493         * attribs.c (handle_deprecated_attribute): constify WHAT.
17494         * diagnostic.c (warn_deprecated_use): Add braces, fixes
17495         dangling else warning and constify WHAT.
17496         * except.h (struct function, struct inline_remap): Move
17497         struct tag forward defs before all prototypes.
17498         (duplicate_eh_regions): Whitespace.
17499
17500 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
17501
17502         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
17503         MODE_BASE_REG_CLASS.
17504         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
17505
17506 2002-01-12  Richard Henderson  <rth@redhat.com>
17507
17508         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
17509         (ix86_expand_vector_move): New.
17510         (bdesc_2arg): Remove andps, andnps, orps, xorps.
17511         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
17512         Remove old prefetch builtins.  Special case the logicals removed above.
17513         (ix86_expand_builtin): Likewise.
17514         (safe_vector_operand): Use V4SFmode, not TImode.
17515         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
17516         (ix86_expand_timode_binop_builtin): New.
17517         * config/i386/i386-protos.h: Update.
17518         * config/i386/i386.h (enum ix86_builtins): Update.
17519         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
17520         Use ix86_expand_vector_move in vector move expanders.
17521         (movti_internal, movti_rex64): Add xorps alternative.
17522         (sse_clrv4sf): Rename and adjust from sse_clrti.
17523         (prefetch): Don't work so hard.
17524         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
17525         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
17526         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
17527
17528 2002-01-11  Richard Henderson  <rth@redhat.com>
17529
17530         * config/i386/mmintrin.h: New file.
17531         * config/i386/xmmintrin.h: New file.
17532         * config.gcc (i?86-*-*): Add extra_headers.
17533         * simplify-rtx.c (simplify_unary_operation): Handle saturating
17534         truncation codes.
17535         (simplify_binary_operation): Handle saturating arithmetic codes.
17536         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
17537         not the lowpart subreg.
17538         (ix86_expand_builtin): Return a TImode dummy register instead of 0
17539         on error.
17540         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
17541
17542 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17543
17544         * conflict.c (conflict_graph_compute): Free regsets when finished.
17545         * ssa.c (compute_coalesced_reg_partition): Likewise.
17546
17547 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
17548
17549         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
17550         every where we allocate a register.
17551
17552 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17553
17554         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
17555         * lcm.c (compute_earliest, compute_farthest): Likewise.
17556
17557 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
17558
17559         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
17560
17561 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
17562
17563         * doc/rtl.texi (Insns): Fix 2 typos.
17564
17565 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
17566
17567         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
17568         options.  Use @table @gcctabopt for MMIX options.  Add index
17569         entries for MMIX options.  Start new paragraph with first
17570         heading of the machine-dependent options.
17571
17572 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
17573
17574         PR other/5299
17575         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
17576         * combine.c (force_to_mode): Same.
17577         * reload1.c (clear_reload_reg_in_use): Same.
17578
17579 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
17580
17581         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
17582         and 'subtargets'.
17583
17584 2002-01-11  Andreas Jaeger  <aj@suse.de>,
17585             Brad Lucier <lucier@math.purdue.edu>
17586
17587         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
17588         mcpu.
17589
17590 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
17591
17592         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
17593         Protect with IN_LIBGCC.
17594         (LINK_EH_SPEC): Add required trailing space.
17595
17596 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
17597
17598         * c-tree.h: Move function declarations so that they are listed
17599         under the filename which contains them.
17600         (check_identifier, finish_decl_top_level,
17601         lookup_name_current_level_global, shadow_record_fields): Remove.
17602
17603 2002-01-11  Andreas Jaeger  <aj@suse.de>
17604
17605         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
17606         march.
17607
17608 2002-01-10  Richard Henderson  <rth@redhat.com>
17609
17610         * config/alpha/alpha.c (print_operand): Add 'J'.
17611         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
17612         new operand with the sequence number for the lituse.  When splitting
17613         the insns, use gen_movdi_er_high_g and generate a sequence number.
17614         (gen_movdi_er_high_g): Print the sequence number if non-zero.
17615
17616 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
17617
17618         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
17619         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
17620         stvxl.
17621         (altivec_expand_builtin): Same.
17622         (altivec_expand_stv_builtin): New.
17623
17624         * config/rs6000/rs6000.h (rs6000_builtins): Same.
17625
17626         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
17627         ("altivec_lvehx"): New.
17628         ("altivec_lvewx"): New.
17629         ("altivec_lvxl"): New.
17630         ("altivec_lvx"): New.
17631         ("altivec_stvx"): New.
17632         ("altivec_stvebx"): New.
17633         ("altivec_stvehx"): New.
17634         ("altivec_stvewx"): New.
17635         ("altivec_stvxl"): New.
17636
17637 2002-01-10  Richard Henderson  <rth@redhat.com>
17638
17639         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
17640         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
17641         care not to delete instructions twice.
17642
17643 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
17644
17645         * toplev.c: Don't declare environ (it's not used anywhere).
17646         * configure.in: Don't check for declaration of environ.
17647         * config/i386/xm-mingw32.h: Don't #define environ.
17648         * config.in, configure: Regenerate.
17649
17650 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
17651
17652         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
17653         * configure: Regenerate.
17654
17655         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
17656         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
17657         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
17658         alpha/xm-vms.h.
17659         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
17660         LIMITS_H_TEST here, not in m68k/x-next.
17661         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
17662         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
17663
17664         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
17665         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
17666         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
17667
17668         * config/i386/x-djgpp: Renamed i386/t-djgpp.
17669         * config/m88k/x-dolph: Renamed m88k/t-dolph.
17670         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
17671         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
17672         replacement of quadlib.asm with quadlib.c.
17673
17674         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
17675         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
17676         config/rs6000/xm-beos.h: Delete file.
17677
17678         * config.gcc: Update to match above changes.
17679
17680 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17681
17682         * config/h8300/h8300.h: Fix comment typos.
17683         * config/h8300/h8300.md: Likewise.
17684         * config/h8300/lib1funcs.asm: Likewise.
17685
17686 2002-01-10  Dale Johannesen  <dalej@apple.com>
17687
17688         PR optimization/5269
17689         * unroll.c (precondition_loop_p): Make *increment be the correct
17690         sign when n_iterations known, to avoid confusing caller.
17691
17692 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17693
17694         * doc/extend.texi (deprecated): Fix a typo.
17695
17696 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
17697
17698         * basic-block.h (update_br_prob_note): Declare.
17699         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
17700         (try_forward_edges): Care negative frequencies and update note.
17701         (outgoing_edges_match): Tweek conditional merging heuristics.
17702         (try_crossjump_to_edge): use update_br_prob_note.
17703         * cfglayout.c (fixup_reorder_chain): Likewise.
17704         * cfrtl.c (update_br_prob_note): New.
17705         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
17706
17707         * i386.c (ix86_decompose_address): Return -1 if address contains
17708         shift.
17709         (legitimate_address_p): Require ix86_decompose_address to return 1.
17710
17711         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
17712         (cprop_insn): Likewise.
17713
17714 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17715
17716         * toplev.c: Fix formatting.
17717         * tree.c: Likewise.
17718         * tree-dump.c: Likewise.
17719         * unroll.c: Likewise.
17720         * unwind-dw2.c: Likewise.
17721         * unwind-dw2-fde.c: Likewise.
17722         * unwind-dw2-fde-glibc.c: Likewise.
17723         * unwind-sjlj.c: Likewise.
17724
17725 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
17726
17727         * doc/invoke.texi: Document PDP-11 options.
17728
17729 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17730
17731         * config/h8300/h8300.h: Fix formatting.
17732
17733 2002-01-10  Ira Ruben   <ira@apple.com>
17734
17735         Add __attribute__ ((deprecated)).
17736         * extend.texi: Document __attribute__ ((deprecated)).
17737         * invoke.texi: Document -Wno-deprecated-declarations.
17738         * testsuite/g++.dg/other/deprecated.C: New C++ test.
17739         * testsuite/gcc.dg/deprecated.c: New C test.
17740         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
17741         (c_common_attribute_table): Add "deprecated" entry.
17742         (handle_deprecated_attribute): New function.
17743         * c-decl.c (deprecated_states): New enum.
17744         deprecated_state: State of "deprecated" handling.
17745         (start_decl): Set deprecated_state based on attributes.
17746         (grokdeclarator): Test for deprecated uses, propagate attribute.
17747         * c-typeck.c (build_component_ref): Test for deprecated fields.
17748         (build_external_ref): Test for deprecated primaries.
17749         * diagnostic.c (warn_deprecated_use) New function to issue
17750         warnings about __attribute__ ((depricated)) references.
17751         * flags.h (warn_deprecated_decl): Extern declared for
17752         -W[no-]deprecated-declarations option.
17753         * print-tree.c (print_node): Show deprecated flag status.
17754         * toplev.c (warn_deprecated_decl): Defined.
17755         (W_options): Added "deprecated-declaration".
17756         * toplev.h (warn_deprecated_use): Extern declared.
17757         * tree.h (struct tree_common): Define deprecated_flag.
17758         (TREE_DEPRECATED): New macro to access flag.
17759         * cp/call.c (build_call): Test for deprecated calls.
17760         * cp/class.c (add_implicitly_declared_members): Set global
17761         flag to tell grokdeclarator to not issue deprecated warnings.
17762         * cp/cp-tree.h: Add extern for adding_implicit_members.
17763         * cp/decl.c (deprecated_states): New enum.
17764         (start_decl): Set deprecated_state based on attributes.
17765         (grokdeclarator): Test for deprecated uses, propagate attribute.
17766         * cp/lex.c (do_identifier): Test for deprecated primaries.
17767         * cp/typeck.c (build_component_ref): Test for deprecated fields.
17768
17769 2002-01-10  Ira Ruben   <ira@apple.com>
17770
17771         Fix to assign attributes to inline member functions.
17772         * cp/decl.c (start_method): Handle attrlist.
17773
17774 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17775
17776         * combine.c (expand_field_assignment): Use subreg_lsb().
17777
17778 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
17779
17780         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
17781         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
17782         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
17783         Recurse for any operand of AND as long as constant is non-zero.
17784
17785 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17786
17787         * config/h8300/h8300.md: Remove constraints from expanders.
17788
17789 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17790
17791         * varasm.c: Fix formatting.
17792         * varray.c: Likewise.
17793         * vmsdbgout.c: Likewise.
17794         * xcoffout.c: Likewise.
17795
17796 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
17797
17798         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
17799         update edge probabilities to match.
17800
17801 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
17802
17803         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
17804         dependencies.
17805         * doc/languages.texi, doc/sourcebuild.texi: New files.
17806         * doc/configfiles.texi: Make a subsubsection.  Update.
17807         * doc/configterms.texi: Add @node.  Remove warning that this isn't
17808         instructions for building GCC.
17809         * doc/makefile.texi: Make a subsection.
17810         * doc/gccint.texi: Update.
17811
17812 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
17813
17814         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
17815
17816 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
17817
17818         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
17819
17820 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
17821
17822         * optabs.c (expand_fix): Look for wider integer modes first.
17823
17824         * i386.md (mov?f): Avoid the fake const double trick for medium
17825         memory model.
17826         (min?f*/max?f*): Prohibit memory operands for i387 variant.
17827         (fop_df_4): Disable for SSE compilation.
17828
17829 2002-01-10  Graham Stott  <grahams@redhat.com>
17830
17831         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
17832         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
17833
17834 2002-01-10  Richard Henderson  <rth@redhat.com>
17835
17836         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
17837
17838 2002-01-10  Richard Henderson  <rth@redhat.com>
17839
17840         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
17841         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
17842
17843 2002-01-10  Kazu Hirata  <kazu@hxi.com>
17844
17845         * combine.c (can_combine_p): Fix a comment typo.
17846
17847 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
17848
17849         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
17850         empty list correctly.  Change loop index $t to $f for
17851         consistency with rest of Makefile.
17852
17853 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
17854
17855         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
17856         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
17857
17858         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
17859         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
17860         (altivec_init_builtins): Same.
17861         (altivec_expand_unop_builtin): Return NULL_RTX on error.
17862         (altivec_expand_binop_builtin): Same.
17863         (altivec_expand_ternop_builtin): Same.
17864         (bdesc_dst): New.
17865
17866         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
17867         ("altivec_vctuxs"): Fix typo.
17868         ("altivec_vnmsubfp"): Same.
17869         ("altivec_dssall"): New.
17870         ("altivec_mfvscr"): New.
17871         ("altivec_dss"): New.
17872         ("altivec_lvsl"): New.
17873         ("altivec_lvsr"): New.
17874         ("altivec_dstt"): New.
17875         ("altivec_dstst"): New.
17876         ("altivec_dststt"): New.
17877         ("altivec_dst"): New.
17878
17879         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
17880         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
17881
17882 2002-01-09  Richard Henderson  <rth@redhat.com>
17883
17884         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
17885
17886 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
17887
17888         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
17889         function.
17890         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
17891         prototype.
17892         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
17893
17894 2002-01-09  Kazu Hirata  <kazu@hxi.com>
17895
17896         * read-rtl.c: Fix formatting.
17897         * real.c: Likewise.
17898         * regclass.c: Likewise.
17899         * regrename.c: Likewise.
17900         * reg-stack.c: Likewise.
17901         * reload1.c: Likewise.
17902         * reload.c: Likewise.
17903         * rtl.c: Likewise.
17904
17905 2002-01-09  Kazu Hirata  <kazu@hxi.com>
17906
17907         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
17908         to extract items in the expr_list chain.
17909
17910 2002-01-09  Richard Henderson  <rth@redhat.com>
17911
17912         * config/vax/vax.c (vax_rtx_cost): Never abort.
17913
17914         * config/vax/vax.h (REAL_ARITHMETIC): Define.
17915
17916 2002-01-09  Jan Hubicka  <jh@suse.cz>
17917
17918         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
17919
17920 2002-01-09  Richard Henderson  <rth@redhat.com>
17921
17922         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
17923         Unify code from various alternatives.
17924
17925 2002-01-09  Richard Henderson  <rth@redhat.com>
17926
17927         * regrename.c (copy_value): Ignore the copy if the source register
17928         is present in the value chain with a narrower mode.
17929
17930 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
17931
17932         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
17933         for the c4x target. Also improve layout.
17934
17935 2002-01-09  Richard Henderson  <rth@redhat.com>
17936
17937         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
17938         * config/m32r/m32r.md (and ior xor splitters): Swap operands
17939         to match insn patterns.
17940
17941 2002-01-09  Richard Henderson  <rth@redhat.com>
17942
17943         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
17944         (copyprop_hardreg_forward_1): Likewise.
17945
17946 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
17947
17948         * pa.md (decrement_and_branch_until_zero): Change predicate for
17949         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
17950
17951 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
17952
17953         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
17954         gets undefined. For Darwin.
17955
17956 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
17957
17958         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
17959
17960 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
17961
17962         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
17963
17964 2002-01-08  Richard Henderson  <rth@redhat.com>
17965
17966         * regrename.c (copy_value): Ignore overlapping copies.
17967
17968 2002-01-08  Richard Henderson  <rth@redhat.com>
17969
17970         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
17971         as needed to avoid shared structure.
17972
17973 2002-01-08  Kazu Hirata  <kazu@hxi.com>
17974
17975         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
17976         H8/300H and H8/S.
17977
17978 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
17979
17980         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
17981         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
17982         documentation of obsolete macros.
17983         * system.h: Poison these macros.
17984         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
17985         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
17986         config/c4x/c4x.h, config/clipper/clipper.h,
17987         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
17988         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
17989         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
17990         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
17991         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
17992         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
17993         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
17994         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
17995         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
17996         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
17997         config/sparc/sparc.h, config/stormy16/stormy16.h,
17998         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
17999         definitions and commented out definitions of obsolete macros.
18000         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
18001         of MAX_INT_TYPE_SIZE.
18002
18003 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
18004
18005         * config/s390/s390.c (s390_preferred_reload_class): Never
18006         return ADDR_REGS if it isn't a subset of the given class.
18007         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
18008         FP_REGS, but all superclasses as well.
18009
18010         * config/s390/s390.c (s390_function_profiler): Fix thinko.
18011
18012         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
18013         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
18014         must not be a const_int.
18015
18016 2002-01-08  Richard Henderson  <rth@redhat.com>
18017
18018         * Makefile.in (toplev.o): Depend on options.h.
18019         (gcc.o): Depend on specs.h.
18020
18021 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
18022
18023         * expr.c (store_expr): Convert VOIDmode constants back to target's
18024         mode.
18025
18026 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
18027
18028         * doc/invoke.texi: Markup gcc as @command.  Refer to
18029         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
18030         of http://gcc.gnu.org/thanks.html.
18031
18032 2002-01-08  Dale Johannesen  <dalej@apple.com>
18033
18034         * config/rs6000/rs6000.md: Add missing int register
18035         target case to movdf_low.
18036
18037 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
18038
18039         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
18040         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
18041         (cppinit.o): Depend on except.h.
18042         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
18043         s-specs): New rules.
18044
18045         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
18046         Don't create specs.h/options.h/gencheck.h here.  Remove
18047         unnecessary variable settings from last argument of AC_OUTPUT.
18048         * config.in, configure: Regenerate.
18049         * intl.c: Hardcode package name as "gcc".
18050
18051         * cppinit.c: Include except.h.
18052         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
18053         appropriate.
18054         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
18055         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
18056         (!)USING_SJLJ_EXCEPTIONS.
18057         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
18058
18059 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
18060
18061         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
18062         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
18063         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
18064         documentation of obsolete macros.
18065         * system.h: Poison these macros.
18066         * config/d30v/d30v.h, config/ns32k/encore.h,
18067         config/stormy16/stormy16.h: Remove definitions and commented out
18068         definitions of obsolete macros.
18069
18070 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
18071
18072         * objc/objc-act.c (handle_class_ref): Mark the declaration of
18073         %sobjc_class_ref_%s as used - to prevent unwanted compiler
18074         warnings.
18075
18076 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
18077
18078         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
18079         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
18080         to insn adjusting stack/frame pointer.
18081         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
18082         accept operands that cause the insn to be non-splittable.
18083
18084 2002-01-08  Graham Stott  <grahams@redhat.com>
18085
18086         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
18087         (C_TYPE_FIELDS_VOLATILE): Likewise.
18088         (C_TYPE_BEING_DEFINED): Likewise.
18089         (C_IS_RESERVED_WORD): Likewise.
18090         (C_TYPE_VARIABLE_SIZE): Likewise.
18091         (C_DECL_VARIABLE_SIZE): Likewise.
18092         (C_MISSING_PROTOTYPE_WARNED): Likewise.
18093         (C_SET_EXP_ORIGINAL_CODE): Likewise.
18094         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
18095         parenthesis.
18096         (C_DECL_ANTICIPATED): Likewise.
18097         (c_build_type_variant): Add parenthesis.
18098
18099 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
18100
18101         * gcc.c (option_map): Remove --version.
18102         (process_command): Handle -fversion following the GNU Coding
18103         Standards.  Partially addresses PR other/704.
18104
18105 2002-01-08  Graham Stott  <grahams@redhat.com>
18106
18107         * combine.c (combine_instructions): Fix typo.
18108
18109 2002-01-08  Graham Stott  <grahams@redhat.com>
18110
18111         * debug.h: Use "tree" and "rtx" throughout.
18112
18113         * debug.c: Likewise.
18114
18115 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
18116
18117         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
18118         constant pool, use the pool's version of the symbol instead.
18119
18120 2002-01-07  Richard Henderson  <rth@redhat.com>
18121
18122         * regrename.c (find_oldest_value_reg): Ignore the value chain if
18123         the original register was copied in a mode with a fewer number of
18124         hard registers than the desired mode.
18125         (copyprop_hardreg_forward_1): Likewise.
18126         (debug_value_data): Fix loop test.
18127         * toplev.c (parse_options_and_default_flags): Reenable
18128         -fcprop-registers at -O1.
18129
18130 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
18131
18132         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
18133         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
18134
18135         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
18136         predicates.
18137
18138         * config/rs6000/rs6000.md: Add altivec predicate patterns.
18139
18140 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18141
18142         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
18143         (pa_output_function_prologue): Output local label at the beginning of
18144         the prologue when profiling.
18145         (hppa_profile_hook): Use the local label rather than the function label.
18146         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
18147
18148 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
18149
18150         * config/rs6000/rs6000.c (print_operand): Remove extra space.
18151         (altivec_expand_unop_builtin): Fix thinko.
18152         (altivec_expand_binop_builtin): Same.
18153         (altivec_expand_ternop_builtin): Same.
18154         (altivec_expand_builtin): Same.
18155
18156 2002-01-07  Richard Henderson  <rth@redhat.com>
18157
18158         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
18159
18160 2002-01-07  Jason Merrill  <jason@redhat.com>
18161
18162         * unwind-dw2.c (execute_cfa_program): Use < again.
18163
18164 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
18165
18166         * predict.c (combine_predictions_for_insn): Avoid division by zero.
18167
18168 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
18169
18170         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
18171         Don't allow -1 - x -> ~x simplifications in the first pass.
18172
18173 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
18174
18175         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
18176         arguments.
18177         (altivec_expand_binop_builtin): Same.
18178         (altivec_expand_unop_builtin): Same.
18179         (print_operand): Fix typo.
18180         (bdesc_1arg): Add vupk* variants.
18181
18182         * rs6000.h (rs6000_builtins): Add vupk* enums.
18183
18184         * rs6000.md: Add altivec_vupk* variants.
18185
18186 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
18187
18188         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
18189         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
18190         and last update dates.
18191
18192 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
18193
18194         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
18195
18196 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
18197
18198         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
18199         * config/avr/avr.h (CPP_SPEC): Likewise.
18200         (LINK_SPEC): Likewise.
18201         (CRT_BINUTILS_SPECS): Likewise.
18202         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
18203         * doc/invoke.texi (AVR Options): Document them.
18204
18205 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
18206
18207         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
18208         LABEL_NUSES.
18209
18210 2002-01-07  Graham Stott  <grahams@redhat.com>
18211
18212         * config/i386/i386.h: Update copyright date.
18213         (HALF_PIC_PTR): Add parenthesis.
18214         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
18215         (CONSTANT_ALIGNMENT): Add parenthesis.
18216         (DATA_ALIGNMENT): Likewise.
18217         (LOCAL_ALIGNMENT): Likewise.
18218         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
18219         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
18220         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
18221         (HARD_REGNO_NREGS): Add paranethesis.
18222         (VALID_SSE_REG_MODE): Whitespace.
18223         (VALID_MMX_REG_MODE): Whitespace.
18224         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
18225         (ix86_hard_regno_mode_ok): Add parenthesis.
18226         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
18227         (RETURN_IN_MEMORY): Whitespace.
18228         (N_REG_CLASSES): Add parenthesis.
18229         (INTEGER_CLASS_P): Add parenthesis and wrap.
18230         (FLOAT_CLASS_P): Likewise.
18231         (SSE_CLASS_P): Likewise.
18232         (MMX_CLASS_P): Likewise.
18233         (MAYBE_INTEGER_CLASS_P): Likewise.
18234         (MAYBE_FLOAT_CLASS_P): Likewise.
18235         (MAYBE_SSE_CLASS_P): Likewise.
18236         (MAYBE_MMX_CLASS_P): Likewise.
18237         (Q_CLASS_P): Likewise.
18238         (GENERAL_REGNO_P): Uppercase macro parameter.
18239         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
18240         (FP_REGNO_P): Likewise.
18241         (ANY_FP_REGNO_P): Uppercase macro parameter.
18242         (SSE_REGNO_P): Likewise.
18243         (SSE_REGNO): Likewise.
18244         (SSE_REG_P): Likewise.
18245         (SSE_FLOAT_MODE_P): Likewise.
18246         (MMX_REGNO_P): Likewise.
18247         (MMX_REG_P):Likewise.
18248         (STACK_REG_P): Likewise.
18249         (NON_STACK_REG_P): Likewise.
18250         (STACK_TOP_P): Likewise.
18251         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
18252         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
18253         (SECONDARY_MEMORY_NEEDED): Likewise.
18254         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
18255         (MD_ASM_CLOBBERS): Whitespace and wrap.
18256         (MUST_PASS_IN_STACK): Whitespace and wrap.
18257         (RETURN_POPS_ARGS): Add parenthesis.
18258         (INIT_CUMULATIVE_ARGS): Likewise.
18259         (FUNCTION_ARG): Likewise.
18260         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
18261         (SETUP_INCOMING_VARARGS): Likewise.
18262         (BUILD_VA_LIST_TYPE):  Add parenthesis.
18263         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
18264         parenthsis.
18265         (EXPAND_BUILTIN_VA_ARG): Likewise.
18266         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
18267         (INITIALIZE_TRAMPOLINE): Add parenthesis.
18268         (INITIAL_ELIMINATION_OFFSET): Likewise.
18269         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
18270         (REGNO_OK_FOR_BASE_P): Likewise.
18271         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
18272         (REGNO_OK_FOR_DIREG_P): Likewise.
18273         (REG_OK_FOR_INDEX_P): Whitespace.
18274         (REG_OK_FOR_BASE_P): Whitespace.
18275         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
18276         parenthesis.
18277         (FIND_BASE_TERM): Fix typo.
18278         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
18279         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
18280         (SYMBOLIC_CONST; Whitespace.
18281         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
18282         (ENCODE_SECTION_INFO): Whitespace.
18283         (FINALIZE_PIC): Remove do { ... } while (0).
18284         (PROMOTE_MODE): Wrap in do { ... } while (0).
18285         (CONST_COSTS): Whitespace.
18286         (RTX_COSTS): Add paramethesis, whitespace and wrap.
18287         (REGISTER_MOVE_COST): Add parenthesis.
18288         (MEMORY_MOVE_COST): Likewise.
18289         (EXTRA_CC_MODES): Whitespace.
18290         (SELECT_CC_MODE): Add parenthesis and whitespace.
18291         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
18292         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
18293         (ASM_OUTPUT_LABEL): Add paramethesis.
18294         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
18295         (ASM_OUTPUT_REG_POP): Likewise.
18296         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
18297         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
18298
18299         * config/i386/i386.c: Update copyright.
18300         (CHECK_STACK_LIMIT): Add parenthesis.
18301         (AT_BP): Uppercase macro parameter.
18302         (x86_64_int_parameter_registers): Constify.
18303         (x86_64_int_return_registers): Likewise.
18304         (ix86_compare_op0): Use rtx.
18305         (construct_container): Constify INTREG parameter.
18306         (function_arg): Use rtx.
18307
18308         * diagnostic.h: Update copyright date.
18309         (output_buffer_state): Add parenthesis.
18310         (output_buffer_format_args): Likewise.
18311
18312         * combine.c (combine_instructions): Replace XEXP (links, 0)
18313         with link.
18314
18315 2002-01-06  H.J. Lu <hjl@gnu.org>
18316
18317         * cfgcleanup.c (thread_jump): Fix 2 typos.
18318
18319 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
18320
18321         * config.gcc: Add support for --enable-altivec.
18322
18323 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18324
18325         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
18326
18327 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
18328
18329         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
18330         __objc_class_name_*.
18331
18332 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18333
18334         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
18335
18336 2002-01-06  Richard Henderson  <rth@redhat.com>
18337
18338         * reorg.c (emit_delay_sequence): Remove death notes, not merely
18339         nop them out.  Increment label reference count for REG_LABEL.
18340         (fill_slots_from_thread): Frob label reference count around
18341         delete_related_insns.
18342
18343 2002-01-05  Richard Henderson  <rth@redhat.com>
18344
18345         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
18346         jump threading.
18347
18348 2002-01-05  Richard Henderson  <rth@redhat.com>
18349
18350         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
18351         * integrate.c (output_inline_function): Likewise.
18352         * toplev.c (rest_of_compilation): Do it here instead.  Move call
18353         to remove_unnecessary_notes after emitting abstract instance.
18354         Force an emitted nested function to have its parent emited as well.
18355         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
18356         for null.
18357         (rtl_for_decl_location): Do not look at reload data structures
18358         before reload has run.
18359
18360 2002-01-05  Kazu Hirata  <kazu@hxi.com>
18361
18362         * cse.c: Fix formatting.
18363         * dwarf2asm.c: Likewise.
18364         * dwarf2out.c: Likewise.
18365         * explow.c: Likewise.
18366         * expmed.c: Likewise.
18367         * function.c: Likewise.
18368         * gcov.c: Likewise.
18369         * gencheck.c: Likewise.
18370         * genrecog.c: Likewise.
18371         * ggc-common.c: Likewise.
18372         * ggc-page.c: Likewise.
18373         * global.c: Likewise.
18374
18375 2002-01-05  Kazu Hirata  <kazu@hxi.com>
18376
18377         * combine.c: Fix formatting.
18378
18379 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
18380
18381         PR middle-end/1557
18382         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
18383
18384 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
18385
18386         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
18387         as 1 for __powerpc64__ as well.
18388
18389         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
18390
18391         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
18392         return it.
18393
18394 2002-01-05  Daniel Berlin  <dan@dberlin.org>
18395
18396         * lcm.c: Revert change, due to performance regression it causes on
18397         SPEC because it's slightly more conservative (sigh, I hate
18398         edge-based LCM).
18399
18400 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
18401
18402         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
18403
18404 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
18405
18406         * doc/cppinternals.texi: Update.
18407
18408 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
18409
18410         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
18411         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
18412         negatives.
18413         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
18414         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
18415         kludge for pre-october-14th mmix versions to handle new-found bug
18416         with PUSHJ/PUSHGO and the register stack.
18417         * config/mmix/mmix.h (struct machine_function): Rename member
18418         has_call_value_without_parameters to has_call_without_parameters.
18419         All referers changed.
18420         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
18421         TARGET_MASK_BRANCH_PREDICT): New macros.
18422         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
18423         -mno-reg-stack-fill-bug-workaround.
18424         * config/mmix/mmix.md ("call"): Set struct machine member
18425         has_call_without_parameters.
18426
18427 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
18428
18429         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
18430
18431 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
18432
18433         * cfgcleanup.c: Include tm_p.h
18434         (mark_effect): Fix handling of hard register; fix handling of SET
18435
18436 2002-01-04  Kazu Hirata  <kazu@hxi.com>
18437
18438         * config/h8300/h8300.md (anonymous patterns): Check that
18439         operands are registers before using REGNO on them.
18440
18441 2002-01-03  Roland McGrath  <roland@frob.com>
18442
18443         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
18444
18445 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
18446
18447         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
18448         * c-common.h (genrtl_expr_stmt_value): Likewise.
18449         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
18450         (expand_expr_stmt_value): Add maybe_last argument.
18451         Don't warn about statement with no effect if it is the last statement
18452         in expression statement.
18453         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
18454         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
18455         expand_expr_stmt_value.
18456         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
18457         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
18458         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
18459         as maybe_last to expand_expr_stmt_value.
18460
18461 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
18462
18463         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
18464         be passed in, do not build it.
18465         (c_begin_if_stmt): New function.
18466         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
18467         * c-common.h (c_expand_start_cond): Update prototype.
18468         (c_begin_if_stmt): Prototype new function.
18469         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
18470         * c-parse.in (if_prefix): Use c_begin_if_stmt,
18471         c_begin_while_stmt and c_finish_while_stmt_cond.
18472
18473 2002-01-04  William Cohen  <wcohen@redhat.com>
18474
18475         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
18476         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
18477         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
18478         * config/pa/som.h (ASM_FILE_START): Likewise.
18479
18480 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
18481
18482         * lcm.c: Include df.h.
18483         Add available_transfer_function prototype.
18484         (compute_available): Rework to use iterative dataflow framework.
18485         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
18486         with bb_info in df.h
18487         (available_transfer_function): New function.
18488
18489         * Makefile.in (lcm.o): add df.h to dependencies.
18490
18491 2002-01-04  Richard Henderson  <rth@redhat.com>
18492
18493         * config/alpha/alpha.c (some_operand): Accept HIGH.
18494         (input_operand): Likewise; accept simple references to globals.
18495         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
18496         (alpha_const_double_ok_for_letter_p): Likewise.
18497         (alpha_extra_constraint): Likewise.
18498         (alpha_preferred_reload_class): Likewise.  Do not force
18499         symbolic constants to memory.
18500         (alpha_legitimate_address_p): Accept simple references
18501         to small_symbolic_operand.
18502         (alpha_legitimize_address): New arg scratch.  Be prepared to be
18503         called when no_new_pseudos.  Emit simple symbolic references.
18504         Split integers into low, high, and rest.
18505         (alpha_expand_mov): Use alpha_legitimize_address.
18506         (some_small_symbolic_mem_operand): New.
18507         (split_small_symbolic_mem_operand): New.
18508         * config/alpha/alpha-protos.h: Update.
18509         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
18510         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
18511         (EXTRA_CONSTRAINT): Likewise.
18512         (PREFERRED_RELOAD_CLASS): Likewise.
18513         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
18514         (PREDICATE_CODES): Update.
18515         * config/alpha/alpha.md: New post-reload splitters to convert
18516         simplfied symbolic operands to the form that references $29.
18517         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
18518         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
18519
18520 2002-01-03  Richard Henderson  <rth@redhat.com>
18521
18522         * local-alloc.c (function_invariant_p): Update commentary.
18523
18524 2002-01-04  H.J. Lu <hjl@gnu.org>
18525
18526         * toplev.c (rest_of_compilation): Fix a typo when calling
18527         cleanup_cfg.
18528
18529 2002-01-03  Kazu Hirata  <kazu@hxi.com>
18530
18531         * c-common.c: Fix formatting.
18532         * diagnostic.c: Likewise.
18533         * doloop.c: Likewise.
18534         * dwarf2out.c: Likewise.
18535
18536 2002-01-03  Kazu Hirata  <kazu@hxi.com>
18537
18538         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
18539         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
18540
18541 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
18542
18543         * cpperror.c: Update comments and copyright.
18544         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
18545         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
18546
18547 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18548
18549         * collect2.c (main): Use strcmp when testing for "-shared".
18550
18551 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
18552
18553         * cppmacro.c: Don't include intl.h.  Update comments.
18554         (new_number_token): Allocate enough buffer for 64-bit unsigned
18555         integers; update prototype.
18556         * cppmain.c: Update comments.
18557
18558 2002-01-03  William Cohen  <wcohen@redhat.com>
18559
18560         * function.h (struct function): Add profile.
18561         (current_function_profile): New.
18562         doc/extend.texi: Update documentation.
18563         * final.c (final_start_function): Use current_function_profile
18564         instead of profile_flag.
18565         (profile_after_prologue): Likewise.
18566         * function.c (expand_function_start): Likewise.
18567         (expand_function_start): Likewise.
18568         * config/alpha/alpha.c (direct_call_operand):
18569         (alpha_does_function_need_gp): Likewise.
18570         (alpha_expand_prologue): Likewise.
18571         * config/arm/arm.c (arm_expand_prologue): Likewise.
18572         thumb_expand_prologue: Likewise.
18573         * config/d30v/d30v.c (d30v_stack_info): Likewise.
18574         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
18575         (fr30_expand_prologue): Likewise.
18576         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
18577         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
18578         * config/i386/i386.h (FINALIZE_PIC): Likewise.
18579         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
18580         * config/i960/i960.c (i960_output_function_prologue): Likewise.
18581         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
18582         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
18583         (m32r_expand_prologue): Likewise.
18584         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
18585         (m88k_expand_prologue): Likewise.
18586         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
18587         * config/mips/mips.c (compute_frame_size): Likewise.
18588         (mips_expand_prologue): Likewise.
18589         (mips_can_use_return_insn): Likewise.
18590         * config/pa/elf.h (ASM_FILE_START): Likewise.
18591         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
18592         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
18593         * config/pa/som.h (ASM_FILE_START): Likewise.
18594         * config/romp/romp.c (romp_using_r14): Likewise.
18595         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
18596         (rs6000_stack_info): Likewise.
18597         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18598         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
18599         * config/v850/v850.c (compute_register_save_size): Likewise.
18600
18601 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
18602
18603         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
18604         gen_lowpart_common fails, use gen_lowpart_SUBREG.
18605
18606 2002-01-03  Turly O'Connor  <turly@apple.com>
18607
18608         * darwin.c (machopic_output_possible_stub_label): Don't generate
18609         stub routines for pseudo-stubs which we've just defined.
18610
18611 2002-01-03  Kazu Hirata  <kazu@hxi.com>
18612
18613         * builtins.c: Fix formatting.
18614         * c-typeck.c: Likewise.
18615         * combine.c: Likewise.
18616         * expr.c: Likewise.
18617         * loop.c: Likewise.
18618
18619 2002-01-03  Andreas Schwab  <schwab@suse.de>
18620
18621         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
18622         and return true if _cpp_push_next_buffer pushed a new include
18623         file.
18624         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
18625         _cpp_pop_file_buffer did not push a new file.
18626         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
18627
18628 2002-01-02  Eric Christopher  <echristo@redhat.com>
18629
18630         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
18631         FIND_REG_INC_NOTE call. Update copyright.
18632         * loop.c (canonicalize_condition): Ditto.
18633         * reorg.c (delete_scheduled_jump): Ditto.
18634
18635 2002-01-03  Kazu Hirata  <kazu@hxi.com>
18636
18637         * gcse.c: Fix formatting.
18638
18639 2002-01-03  Graham Stott  <grahams@redhat.com>
18640
18641         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
18642         forward defs for struct tags rtx_def, union_tree, rtvec_def
18643         also output corresponding typedefs for rtx, tree, and rtvec.
18644
18645         * system.h: Move forward defs for struct tags rtx_def, union_tree,
18646         rtvec_def along with corresponding typedefs for rtx, tree, and
18647         rtvec to config.h, hconfig.h, tconfig.h.
18648
18649 2002-01-03  Graham Stott  <grahams@redhat.com>
18650
18651         * tree.h: Update copyright date.
18652         (IS_EXPR_CODE_CLASS): Add parenthesis.
18653         (TREE_SET_CODE): Add whitespace.
18654         (TREE_CHECK): Add parenthesis.
18655         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
18656         (CST_OR_CONSTRUCTOR_CHECK):
18657         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
18658         (TREE_SYMBOL_REFERENCED): Whitespace.
18659         (INT_CST_LT): Likewise.
18660         (INT_CST_LT_UNSIGNED): Likewise.
18661         (tree_real_cst): Unwrap comment.
18662         (tree_string): Likewise.
18663         (tree_complex): Likewise.
18664         (IDENTIFIER_POINTER): correct cast.
18665         (SAVE_EXPR_CONTEXT): Whitespace.
18666         (EXPR_WFL_FILENAME_NODE): Likewise.
18667         (EXPR_WFL_FILENAME): Remove parenthesis.
18668         (DECL_ORIGIN): Add parenthesis.
18669         (DECL_FROM_INLINE): Use NULL_TREE.
18670         (build_int_2): Whitespace.
18671         (build_type_variant): Add parenthesis.
18672
18673         * gcc/jcf-parse.c: Update copyright date.
18674         (yyparse): Constify resource_filename.
18675
18676 2002-01-03  Graham Stott  <grahams@redhat.com>
18677
18678         * rtl.h: Update copyright date.
18679         (RTL_CHECK1): Wrap long line.
18680         (RTL_CHECK2): Likewise.
18681         (RTL_CHECKC1): Wrap long line and whitespace.
18682         (RTL_CHECKC2): Likewise.
18683         (XWINT): Whitespace.
18684         (XINT): Likewise.
18685         (XSTR): Likewise.
18686         (XEXP): Likewise.
18687         (XVEC): Likewise.
18688         (XMODE): Likewise.
18689         (XBITMAP): Likewise.
18690         (XTREE): Likewise.
18691         (XBBDEF): Likewise.
18692         (XTMPL): Likewise.
18693         (X0WINT): Likewise.
18694         (X0INT):Likewise.
18695         (X0UINT): Likewise.
18696         (X0STR): Likewise.
18697         (X0EXP): Likewise.
18698         (X0VEC): Likewise.
18699         (X0MODE): Likewise.
18700         (X0BITMAP): Likewise.
18701         (X0TREE): Likewise.
18702         (X0BBDEF): Likewise.
18703         (X0ADVFLAGS): Likewise.
18704         (X0CSELIB): Likewise.
18705         (X0MEMATTR): Likewise.
18706         (XCWINT): Likewise.
18707         (XCINT): Likewise.
18708         (XCUINT): Likewise.
18709         (XCSTR): Likewise.
18710         (XCEXP): Likewise.
18711         (XCVEC): Likewise.
18712         (XCMODE): Likewise.
18713         (XCBITMAP): Likewise.
18714         (XCTREE): Likewise.
18715         (XCBBDEF): Likewise.
18716         (XCADVFLAGS): Likewise.
18717         (XCCSELIB): Likewise.
18718         (XC2EXP): Likewise.
18719         (INSN_UID): Likewise.
18720         (PREV_INSN): Likewise.
18721         (PATTERN): Likewise.
18722         (INSN_CODE): Likewise.
18723         (PUT_REG_NOTE_KIND): Likewise.
18724         (CODE_LABEL_NUMBER): Likewise.
18725         (NOTE_SOURCE_FILE): Likewise.
18726         (NOTE_BLOCK): Likewise.
18727         (NOTE_EH_HANDLER): Likewise.
18728         (NOTE_RANGE_INFO): Likewise.
18729         (NOTE_LIVE_INFO): Likewise.
18730         (NOTE_BASIC_BLOCK): Likewise.
18731         (NOTE_EXPECTED_VALUE): Likewise.
18732         (NOTE_LINE_NUMBER): Likewise.
18733         (LABEL_NAME): Likewise.
18734         (LABEL_NUSES): Likewise.
18735         (LABEL_ALTERNATE_NAME): Likewise.
18736         (ADDRESSOF_DECL): Likewise.
18737         (JUMP_LABEL): Likewise.
18738         (LABEL_NEXTREF): Likewise.
18739         (REGNO): Likewise.
18740         (ORIGINAL_REGNO: Likewise.
18741         (HARD_REGISTER_NUM_P): Add parenthesis.
18742         (SUBREG_REG): Whitespace.
18743         (SUBREG_BYTE): Likewise.
18744         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
18745         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
18746         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
18747         (ASM_OPERANDS_INPUT_VEC): Likewise.
18748         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
18749         (ASM_OPERANDS_INPUT): Likewise.
18750         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
18751         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
18752         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
18753         (ASM_OPERANDS_INPUT_MODE): Likewise.
18754         (ASM_OPERANDS_SOURCE_FILE): Likewise.
18755         (ASM_OPERANDS_SOURCE_LINE): Likewise.
18756         (MEM_SET_IN_STRUCT_P): Minor reformat.
18757         (TRAP_CONDITION): Whitespace.
18758         (TRAP_CODE): Likewise.
18759         (COND_EXEC_TEST): Likewise.
18760         (COND_EXEC_CODE): Likewise.
18761         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
18762         (PHI_NODE_P): Add parenthesis.
18763         (plus_constant): Whitespace and add parenthesis.
18764
18765 2002-01-03  Kazu Hirata  <kazu@hxi.com>
18766
18767         * config/avr/avr.c: Fix comment typos.
18768         * config/c4x/c4x.md: Likewise.
18769         * config/dsp16xx/dsp16xx.h: Likewise.
18770         * config/dsp16xx/dsp16xx.md: Likewise.
18771         * config/i386/i386.md: Likewise.
18772         * config/ia64/ia64.c: Likewise.
18773         * config/m32r/m32r.h: Likewise.
18774         * config/m68hc11/m68hc11.md: Likewise.
18775         * config/mmix/mmix.c: Likewise.
18776         * config/mn10200/mn10200.c: Likewise.
18777         * config/romp/romp.c: Likewise.
18778         * config/sh/sh.c: Likewise.
18779         * config/stormy16/stormy16.c: Likewise.
18780         * config/stormy16/stormy16.h: Likewise.
18781         * config/stormy16/stormy16.md: Likewise.
18782
18783 2002-01-03  Graham Stott  <grahams@redhat.com>
18784
18785         * loop.h: Update copyright date.
18786         (LOOP_MOVABLES): Fix typo.
18787         (LOOP_REGS): Likewise.
18788         (LOOP_IVS): Likewise.
18789
18790 2002-01-03  Graham Stott  <grahams@redhat.com>
18791
18792         * cppinit.c: Update copyright date.
18793         Don't include output.h
18794         * Makefile.in: Update copyright date.
18795         Update dependency.
18796
18797 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
18798
18799         PR c/5226
18800         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
18801         (-pthread) Add to RS/6000 options.
18802
18803 2002-01-02  Kazu Hirata  <kazu@hxi.com>
18804
18805         * except.c: Fix comment typos.
18806         * loop.c: Likewise.
18807         * varasm.c: Likewise.
18808         * doc/tm.texi: Fix a typo.
18809
18810 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
18811
18812         * c-typeck.c (output_init_element): Allow initializing static storage
18813         duration objects with compound literals.
18814
18815 2002-01-02  Richard Henderson  <rth@redhat.com>
18816
18817         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
18818         after abusing it.
18819
18820 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18821
18822         * gcc.c (default_compilers): Const-ify.
18823         * mips-tdump.c (stab_names): Likewise.
18824         * mips-tfile.c (map_coff_types, map_coff_storage,
18825         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
18826         pseudo_ops_t, pseudo_ops): Likewise.
18827         * protoize.c (default_include): Likewise
18828
18829         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
18830         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
18831         Add array size in declaration.
18832         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
18833         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
18834         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
18835         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
18836         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
18837         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
18838         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
18839         emtens, make_nan): Const-ify.
18840         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
18841         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
18842
18843 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
18844
18845         * config.gcc (ia64-*-*): Set extra_headers.
18846         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
18847         * config/alpha/t-osf: Remove.
18848         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
18849
18850 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
18851
18852         * config/rs6000/t-aix43: Revert previous change.
18853
18854 2002-01-02  Jason Merrill  <jason@redhat.com>
18855
18856         * c-decl.c (c_expand_body): Call outlining_inline_function when
18857         emitting an inline function out of line.
18858
18859 2002-01-02  Richard Henderson  <rth@redhat.com>
18860
18861         * dwarf2out.c (limbo_die_node): Add created_for member.
18862         (new_die): New argument created_for.  Update all callers.
18863         (mark_limbo_die_list): New.
18864         (dwarf2out_init): Register limbo_die_list as a root.
18865         (dwarf2out_finish): Force insert limbo dies into their function
18866         context.
18867
18868 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
18869
18870         PR c++/5089
18871         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
18872
18873 2002-01-02  Kazu Hirata  <kazu@hxi.com>
18874
18875         * config/h8300/fixunssfsi.c: Update copyright.
18876         Fix comment typos.
18877         Fix formatting.
18878         * config/h8300/h8300.c: Update copyright.
18879         Eliminate warnings.
18880
18881 2002-01-02  Kazu Hirata  <kazu@hxi.com>
18882
18883         * config/romp/romp.c: Fix comment formatting.
18884         * config/romp/romp.h: Likewise.
18885         * config/romp/romp.md: Likewise.
18886         * config/s390/s390.c: Likewise.
18887         * config/stormy16/stormy16.c: Likewise.
18888         * config/stormy16/stormy16.h: Likewise.
18889
18890 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
18891
18892         * c-common.h (genrtl_expr_stmt_value): Declare.
18893         * c-semantics.c (genrtl_goto_stmt): Redirect to...
18894         (genrtl_goto_stmt_value): ... this new function.  Pass new
18895         argument down to expand_expr_stmt_value, taking
18896         TREE_ADDRESSABLE into account.
18897         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
18898         STMT_EXPR as addressable, i.e., one whose result we want.
18899         * expr.c (expand_expr): Don't save expression statement value
18900         of labeled_blocks or loop_exprs.
18901         * stmt.c (expand_expr_stmt): Redirect to...
18902         (expand_expr_stmt_value): ... this new function.  Use new
18903         argument to tell whether to save expression value.
18904         (expand_end_stmt_expr): Reset last_expr_type and
18905         last_expr_value if we don't have either.
18906         * tree-inline.c (declare_return_variable): Mark its use
18907         statement as addressable.
18908         * tree.h: Document new use of TREE_ADDRESSABLE.
18909         (expand_expr_stmt_value): Declare.
18910
18911 2002-01-01  Tom Rix  <trix@redhat.com>
18912
18913         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
18914         rs6000_emit_allocate_stack.
18915
18916 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
18917
18918         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
18919         ${srcdir}/ginclude/ to every entry in extra_headers.
18920         * configure: Regenerate.
18921         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
18922         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
18923         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
18924         * ginclude/proto.h: Rename to config/convex/proto.h.
18925
18926 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18927
18928         * attribs.c (handle_vector_size_attribute): Use host_integerp
18929         and tree_int_cst; remove warnings.
18930         * caller-save.c (insert_restore): Add cast to get rid of warning.
18931         (insert_save): Likewise.
18932         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
18933         * regmove.c (find_matches): Add temporary var to kill a warning.
18934
18935 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
18936
18937         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
18938         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
18939         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
18940         (vms-dwarf2eh.o): Add Makefile rule.
18941         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
18942         * config/alpha/vms-dwarf2eh.asm: New file.
18943
18944         * gcc.c (delete_if_ordinary): Delete all versions.
18945
18946 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
18947
18948         * config/mmix/mmix.md: Update FIXME to not mention
18949         define_constants.
18950         (MMIX_rJ_REGNUM): New define_constants constant.
18951         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
18952         "*movdicc_real"): Adjust contraints formatting.
18953         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
18954         for branch prediction.
18955         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
18956         output template.
18957         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
18958         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
18959         number.  Delete related FIXMEs.
18960         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
18961         from number to MMIX_rJ_REGNUM.
18962         (TARGET_MASK_BRANCH_PREDICT): New.
18963         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
18964         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
18965         value.  Add -mbranch-predict and -mno-branch-predict.
18966         (TARGET_VERSION): Drop date.
18967         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
18968         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
18969         for finding out global symbols.
18970         (mmix_asm_output_labelref): Revert condition for global symbol.
18971         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
18972         (mmix_print_operand_punct_valid_p): A '+' is valid.
18973
18974 See ChangeLog.6 for earlier changes.