OSDN Git Service

* config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Fri May 31 12:38:43 2002  J"orn Rennecke <joern.rennecke@superh.com>
2
3         * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
4
5 Fri May 31 13:50:19 CEST 2002  Jan Hubicka  <jh@suse.cz>
6
7         * i386.c (classify_argument): Properly handle base types.
8
9         * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
10         Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
11         registers.
12
13 Fri May 31 13:37:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
14
15         * gcse.c (gcse_emit_move_after): New.
16         (pre_delete, hoist_store): Use it.
17
18         * reload1.c (emit_input_reload_insns): Use constrain_operands
19         instead of constraint_accepts_reg_p to verify optimization.
20         (constraint_accepts_reg_p): Kill
21
22         * reload1.c (reload_cse_delete_noop_set): Kill.
23         (reload_cse_simplify): use delte_insn_and_edges.
24
25 2002-05-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
26
27         * cfgloop.c (flow_loops_find): Initialize first and last fields
28         correctly.
29
30 2002-05-31  Neil Booth  <neil@daikokuya.demon.co.uk>
31
32         * c-common.c (builtin_define_std): Correct logic.
33
34 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
35
36         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
37         (output_call): Likewise.
38
39 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
40
41         * pa.c: Move output.h include after tree.h include.
42         (pa_asm_output_mi_thunk): Constify identifier lab.
43
44 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
45
46         * config/ns32k/ns32k.h: Define named constants for the
47         bits in target_flags and use them.
48         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
49
50 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
51
52         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
53         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
54         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
55         default scheduling model.
56         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
57         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
58         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
59         * doc/install.texi (hppa*-*-*): Document default scheduling.
60
61 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
62
63         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
64
65 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
66
67         * config.gcc (ns32k-*-netbsd*): Set tm_file to
68         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
69         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
70         netbsd.h, or netbsd-aout.h.
71
72 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
73
74         * longlong.h (count_trailing_zeros): Add missing \, and clean up
75         whitespace in __ns32000__ case.
76
77 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
78
79         * expr.c (expand_expr): Output partially zeroed out vectors with
80         output_constant_def.
81
82 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
83
84         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
85         (sh-*-netbsdelf*)
86         (shl*-*-netbsdelf*): New targets.
87         * config/sh/netbsd-elf.h: New file.
88
89 2002-05-30  Richard Henderson  <rth@redhat.com>
90             Eric Botcazou  <ebotcazou@multimania.com>
91
92         PR optimization/6822
93         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
94         to unsigned int for op1 comparisons.  Use gen_int_mode.
95
96 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
97
98         * expmed.c (const_mult_add_overflow_p): New.
99         * expr.h: Declare it.
100         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
101         Don't eliminate the biv if the giv has a constant multiplier and
102         the rhs argument of the comparison does satisfy the predicate.
103         Use expand_mult_add to compute the replacement constant.
104
105 2002-05-30  Osku Salerma  <osku@iki.fi>
106
107         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
108         (c_common_get_alias_set): Handle it.
109         * doc/extend.texi: Document it.
110
111 2002-05-30  Richard Henderson  <rth@redhat.com>
112
113         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
114         * toplev.c (process_options): Don't check it.
115         * doc/tm.texi: Don't document it.
116         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
117         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
118         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
119         frame pointer optimization if current_function_profile.
120
121 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
122
123         * langhooks.c: Fix formatting.
124         * langhooks.h: Likewise.
125         * lcm.c: Likewise.
126         * libgcc2.c: Likewise.
127         * lists.c: Likewise.
128         * local-alloc.c: Likewise.
129         * loop.c: Likewise.
130         * loop.h: Likewise.
131
132 2002-05-30  Marc Espie <espie@openbsd.org>
133
134         * config.gcc (sparc64-*-openbsd*): New.
135         * config/sparc/openbsd1-64.h: New.
136         * config/sparc/openbsd64.h: New.
137
138 2002-05-30  Jeff Law <law@redhat.com>
139
140         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
141         a dead insn with a REG_RETVAL note when the entire libcall is not
142         dead and remove the associated REG_LIBCALL note at the same time.
143
144 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
145
146         * lcm.c (output.h): #include.
147         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
148         as an ordinary block.
149         (optimize_mode_switching): Don't pretend that the exit block is
150         an ordinary block, or handle sucessors of entry block specially.
151         Instead, split edges from entry block and to exit block, and
152         put a computing definition on the thus gained post-entry-block,
153         and a need on the pre-exit-block.
154
155 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
156
157         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
158         * rtl.texi: Document 'B'
159
160 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
161
162         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
163         at run-time.
164         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
165
166 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
167
168         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
169         const0_rtx instead of NULL_RTX when in error.
170         (altivec_expand_abs_builtin): Same.
171         (rs6000_expand_binop_builtin): Same.
172         (altivec_expand_predicate_builtin): Same.
173         (altivec_expand_stv_builtin): Same.
174         (rs6000_expand_ternop_builtin): Same.
175         (altivec_expand_builtin): Same.
176
177 2002-05-29  David S. Miller  <davem@redhat.com>
178
179         * rtl.h (clear_emit_caches): Delete.
180         * integrate.c (output_inline_function): Don't call it.
181         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
182         (clear_emit_caches): Delete definition.
183         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
184
185 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
186
187         * config/mmix/mmix.c: Include real.h.
188         (mmix_constant_address_p): Remove redundant test before switch.
189
190 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
191
192         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
193         only if not already defined.
194
195 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
196
197         * config/h8300/h8300-protos.h: Remove prototypes for
198         ok_for_bclr and small_power_of_two.
199         * config/h8300/h8300.c (small_power_of_two): Remove.
200         (ok_for_blcr): Likewise.
201         (fix_bit_operand): Make WHAT deal with an integer instead of a
202         constraint character.
203         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
204         (CONST_OK_FOR_P): Likewise.
205         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
206         CONST_OK_FOR_P any more.
207         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
208         of fix_bit_operand.
209         (iorqi3): Likewise.
210         (xorqi3): Likewise.
211
212 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
213
214         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
215         (CPP_PREDEFINES): Make sure this is undefined.
216         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
217         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
218         or -U__MIPSEB__ before defining one or the other.  Instead,
219         use %(subtarget_endian_default) if neither -EB nor -EL are
220         specified.
221         (SUBTARGET_EXTRA_SPECS): Define.
222         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
223         %(netbsd_cpp_spec).
224
225 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
226
227         * doc/md.texi (Patterns): Note pattern condition pitfall
228         for unnamed insn.
229
230 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
231
232         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
233         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
234         ternary operations from here...
235         (rs6000_expand_builtin): ...to here.
236         New argument expandedp.
237         Change all instances of altivec_expand_binop_builtin to
238         rs6000_expand_binop_builtin.
239         (altivec_expand_unop_builtin): Rename to
240         rs6000_expand_unop_builtin.
241         (altivec_expand_binop_builtin): Rename to
242         rs6000_expand_binop_builtin.
243         (altivec_expand_ternop_builtin): Rename to
244         rs6000_expand_ternop_builtin.
245
246 2002-05-29  Richard Henderson  <rth@redhat.com>
247
248         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
249         (TARGET_BI_ARCH): Likewise.
250         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
251         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
252         (TARGET_64BIT_DEFAULT): Default to 0.
253         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
254
255 2002-05-29  Richard Henderson  <rth@redhat.com>
256
257         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
258         (get_pc_thunk_name): New.
259         (output_set_got): Use it.
260         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
261         into linkonce sections.
262
263 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
264
265         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
266         (CPP_PREDEFINES): Make sure this is undefined.
267         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
268         (CPP_SUBTARGET_SPEC): Don't provide different versions for
269         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
270         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
271         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
272         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
273         (CPP_PREDEFINES): Make sure this is undefined.
274         (SUBTARGET_EXTRA_SPECS): Define.
275         (CPP_SPEC): Use %(netbsd_cpp_spec).
276
277 2002-05-29  Jeff Law <law@redhat.com>
278
279         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
280
281         * flow.c (propagate_one_insn): Do not remove a dead insn if it
282         contains a REG_RETVAL note.
283
284         * haifa-sched (sched_analyze): Remove another useless clearing
285         of SCHED_GROUP_P I missed yesterday.
286
287         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
288         * pa.c (pa_asm_output_mi_thunk): New function.
289         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
290
291 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
292             Marek Michalkiewicz  <marekm@amelek.gda.pl>
293
294         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
295         (avr_asm_only_p): Make non-static.
296         (enum avr_arch): Remove.
297         (avr_arch_types): New.
298         (avr_mcu_types): Update.
299         (avr_override_options): Use avr_arch_types table instead of switch.
300         * avr.h (CPP_PREDEFINES): Die.
301         (avr_base_arch_macro, avr_extra_arch_macro): New.
302         (TARGET_CPU_CPP_BUILTINS): New.
303         (CPP_SPEC, EXTRA_SPECS): Simplify.
304         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
305         CPP_AVR5_SPEC): Die.
306
307 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
308
309         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
310         NETBSD_OS_CPP_BUILTINS_AOUT.
311         (SUBTARGET_EXTRA_SPECS): Define.
312         (CPP_SPEC): Use %(netbsd_cpp_spec).
313
314 2002-05-29  Richard Henderson  <rth@redhat.com>
315
316         * config/i386/i386.c (ix86_output_function_epilogue): New.
317         (TARGET_ASM_FUNCTION_EPILOGUE): New.
318         (pic_label_name): Remove.
319         (pic_labels_used): New.
320         (ix86_asm_file_end): Emit one pc load stub for each register used.
321         (output_set_got): Generate deep pc load to any register.
322         (ix86_select_alt_pic_regnum): New.
323         (ix86_save_reg): Don't save pic register if we can find a valid
324         call-clobbered replacement.
325         (ix86_expand_prologue): If we found a valid replacement, renumber
326         pic_offset_table_rtx.
327         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
328         pic_offset_table_rtx after reload.
329         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
330         * config/i386/i386.md (set_got): Make insn, not expander.
331         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
332
333 2002-05-29  Richard Henderson  <rth@redhat.com>
334
335         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
336         alignment for alloca.
337
338 2002-05-29  Richard Henderson  <rth@redhat.com>
339
340         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
341         (print_operand_address): Only add rip for symbolic addresses
342         for which we do not have another relocation type.
343
344 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
345
346         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
347         (EXTRA_SPECS): Add netbsd_cpp_spec.
348         (CPP_SPEC): Use %(netbsd_cpp_spec).
349         (CPP_PREDEFINES): Remove.
350         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
351         (EXTRA_SPECS): Define.
352         (CPP_SPEC): Use %(netbsd_cpp_spec).
353         (CPP_PREDEFINES): Remove.
354
355 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
356
357         PR preprocessor/6844
358         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
359         NUL.
360
361 2002-05-29  Eric Christopher  <echristo@redhat.com>
362
363         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
364         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
365
366 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
367
368         * config/fr30/fr30.md: Remove previous restriction on splits.
369         Enforce conformance through gen_lowpart and cont_int_operand.
370         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
371         as the assembler does not support ".bss".
372
373 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
374
375         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
376         (CPP_PREDEFINES): Remove.
377         (SUBTARGET_EXTRA_SPECS): Define.
378         (CPP_SPEC): Use %(netbsd_cpp_spec).
379         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
380         (CPP_PREDEFINES): Remove.
381         (SUBTARGET_EXTRA_SPECS): Define.
382         (CPP_SPEC): Use %(netbsd_cpp_spec).
383         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
384         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
385         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
386         Add netbsd_cpp_spec.
387         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
388
389 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
390             Zack Weinberg <zack@codesourcery.com>
391
392         * cppexp.c (cpp_num): Move to cpplib.h.
393         (CPP_ERROR): Remove.
394         (interpret_float_suffix, interpret_int_suffix): New.
395         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
396         (cpp_classify_number, cpp_interpret_integer): New.
397         (interpret_number): Remove.
398         (eval_token): Update to use new routines.
399         * cpphash.h (cpp_num_part): Move to cpplib.h.
400         * cppinit.c (cpp_post_options): Set warn_long_long.
401         * cpplib.h (struct cpp_options): Add warn_long_long.
402         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
403         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
404         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
405         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
406         cpp_interpret_integer): New.
407
408 2002-05-29  Joel Sherrill <joel@OARcorp.com>
409
410         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
411
412 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
413
414         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
415         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
416         (CPP_SUBTARGET_SPEC): Define.
417         (SUBTARGET_EXTRA_SPECS): Define.
418         (CPP_SPEC): Remove.
419
420 2002-05-29  Chris Lattner  <sabre@nondot.org>
421
422         * ssa.c (rename_insn_1): Rename uses of undefined registers to
423         prevent confusion if/when the register is defined.
424
425 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
426
427         PR target/6838
428         * config/cris/cris.md: Fix typos and thinkos in comments.
429         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
430         second alternative.
431         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
432         ("*mov_sideqi_mem"): Similar, but for operand 3.
433         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
434         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
435         Remove spurious mode specifier on operand 2.
436
437 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
438
439         * config/h8300/h8300-protos.h: Remove the prototype for
440         o_operand.
441         Add prototypes for single_one_operand and single_zero_operand.
442         * config/h8300/h8300.c (o_operand): Remove.
443         (single_one_operand): New.
444         (single_zero_operand): Likewise.
445         (print_operand): For 'V' operand, and the operand with 0xff.
446         For 'V' and 'W' operands, do not and the bit position with 7.
447         * config/h8300/h8300.md (various anonymous patterns): Replace
448         use of exact_log2 with single_one_operand/single_zero_operand.
449
450 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
451
452         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
453
454 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
455
456         * config/s390/s390.c (legitimate_pic_operand_p): Do not
457         accept symbolic LARL operands.
458         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
459         epilogue insns.
460
461 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
462
463         * config/s390/s390.md (cmpstr_64/31): Mark whole
464         input registers as used.
465
466 2002-05-28  Richard Henderson  <rth@redhat.com>
467
468         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
469         not current_function_uses_pic_offset_table and
470         current_function_uses_const_pool; examine current_function_profile.
471         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
472         input to blockage if needed.
473         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
474         (legitimize_pic_address): Likewise.  Set regs_ever_live for
475         pic_offset_table_rtx when invoked during reload.
476         * config/i386/i386.h (FINALIZE_PIC): Remove.
477         * config/i386/i386.md (tablejump): Reformat.  Do not set
478         current_function_uses_pic_offset_table.
479         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
480         (blockage): Accept anything as operand 0.
481
482 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
483
484         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
485         common CPP built-ins for all NetBSD a.out targets.
486         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
487         common CPP built-ins for all NetBSD ELF targets.
488         * config/netbsd.h: Add missing notice.
489         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
490         for all NetBSD targets.
491         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
492         for all NetBSD targets using an LP64 code model.
493         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
494         NetBSD targets.
495
496 2002-05-28  Richard Henderson  <rth@redhat.com>
497
498         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
499         update if UPDATE_LIFE_LOCAL.
500
501 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
502
503         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
504
505 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
506                           Jason R. Thorpe <thorpej@wasabisystems.com>
507
508         config/sh reorganization to factor out endianness and coff:
509
510         * config/sh/little.h: New file.
511         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
512         defined, define to 0 to select big-endian.
513         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
514         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
515         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
516         * config/sh/t-be: New file.
517         * config/sh/t-le: New file.
518
519         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
520         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
521         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
522         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
523         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
524         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
525         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
526         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
527         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
528         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
529         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
530         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
531         (LINK_SPEC): Define to SH_LINK_SPEC.
532         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
533         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
534         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
535         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
536         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
537         * config/sh/coff.h: New file.
538         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
539         (TARGET_OBJFMT_CPP_BUILTINS): Define.
540         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
541         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
542         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
543         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
544         (PTRDIFF_TYPE): Likewise.
545         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
546         (CPP_PREDEFINES): Don't define.
547         (TARGET_OBJFMT_CPP_BUILTINS): Define.
548         (LINK_SPEC): Define to SH_LINK_SPEC.
549         (LINK_EMUL_PREFIX): Redefine.
550         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
551         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
552         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
553         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
554         (TARGET_OS_CPP_BUILTINS): Define.
555         (TARGET_DEFAULT): Redefine.
556         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
557         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
558         (LINK_SPEC): Don't redefine.
559         (LINK_DEFAULT_CPU_EMUL): Redefine.
560         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
561         * sh.c (sh_asm_named_section): Don't declare / define.
562         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
563         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
564         (sh64-*-elf* tm_file): Likewise.
565         (sh-*-rtemself* tm_file): Likewise.
566         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
567         (sh-*-linux* tmake_file): Add sh/t-le.
568         (sh-*-rtems* tm_file): Add sh/coff.h
569         (sh-*-* tm_file): Likewise.
570
571 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
572
573         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
574         CONSTANT_POOL_ADDRESS_P.
575
576         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
577
578 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
579             Jeff Law <law@redhat.com>
580
581         * optabs.c (expand_binop): Fix nwords sign warnings.
582         generate pseudo for add_optab.
583
584         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
585         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
586
587 2002-05-28      Marc Espie <espie@openbsd.org>
588
589         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
590         inherited from gas.h.
591         (ASM_QUAD):  Undef.  OpenBSD does not support it.
592
593 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
594
595         * doc/install.texi (binaries): Change mingw binaries
596         link to www.mingw.org.
597
598 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
599
600         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
601
602 2002-05-28  Richard Henderson  <rth@redhat.com>
603
604         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
605         bottom alignment for leaf functions.
606
607 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
608
609         * config/pa/milli32.S, config/pa/lib1funcs.asm,
610         config/sparc/sol2-g1.asm: Delete unused files.
611
612 2002-05-28  Richard Henderson  <rth@redhat.com>
613
614         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
615
616         * flow.c (calculate_global_regs_live): Rename call_used to
617         invalidated_by_call.  Initialize from regs_invalidated_by_call
618         instead of call_used_regs.
619
620         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
621         DECL_EXTERNAL.
622
623 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
624
625         * tree.h: Don't include real.h.
626         Forward-declare struct realvaluetype.
627         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
628         contain it.
629         (TREE_REAL_CST_PTR): New accessor.
630         (TREE_REAL_CST): Update.
631         * real.h: Include machmode.h.
632         (realvaluetype): Make it struct realvaluetype, not a typedef.
633         (build_real): Prototype here.
634
635         * tree.c: Include real.h.
636         (build_real): Allocate the REAL_VALUE_TYPE as a separate
637         object in GC memory, set TREE_REAL_CST_PTR to point to it.
638         (build_real_from_int_cst): Use build_real.
639         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
640         REAL_CST.
641
642         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
643         fold-const.c, print-tree.c, real.c: Include real.h.
644         * Makefile.in: Update dependency lists.
645
646 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
647
648         * basic-block.h (last_basic_block): Declare.
649         (expunge_block_nocompact): Declaration removed.
650         (compact_blocks): Declare.
651         * cfg.c (last_basic_block): New variable.
652         (expunge_block_nocompact): Removed.
653         (expunge_block): Do not compact basic blocks.
654         (compact_blocks): New.
655         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
656         longer change.
657         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
658         last_basic_block.
659         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
660         real positions of blocks.
661         (delete_unreachable_blocks): Simplified -- quadratic behavior now
662         cannot occur.
663         (cleanup_cfg): Compact blocks.
664         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
665         basic_block_info varray.
666         (flow_delete_block): Comment update.
667         (back_edge_of_syntactic_loop_p): Modify position check code.
668         (verify_flow_info): Update checking.
669         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
670         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
671         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
672         indices no longer change.
673         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
674         last_basic_block.
675         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
676         * profile.c (branch_prob): Compact blocks.
677         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
678         last_basic_block.
679
680 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
681
682         * config/h8300/h8300.md (two anonymous patterns): New.
683
684 2002-05-28  David S. Miller  <davem@redhat.com>
685
686         * config/sparc/sparc.md (cpu): Tidy.
687         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
688         'trap'.
689         (in_call_delay): Delete reference to 'return' type.
690         (eligible_for_return_delay, in_return_delay, define_delay
691         referencing those): Delete.
692         (rest of file): Use new type attributes as appropriate.
693         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
694         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
695         * config/sparc/ultra1_2.md (us1_single): New reservation.
696         (us1_ialuX): Likewise.
697         * config/sparc/ultra3.md (us3_single): Likewise.
698         (us3_ialuX): Likewise.
699         (us3_imul, us3_idiv): Tweak.
700
701 2002-05-28  Richard Henderson  <rth@redhat.com>
702
703         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
704         STRING_CST.
705
706 2002-05-28  Richard Henderson  <rth@redhat.com>
707
708         * config.gcc: Obsolete mn10200.
709
710 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
711
712         * cppexp.c (interpret_number): Optimize for single-digit
713         and less-than-half-precision cases.
714         (num_trim, num_positive, num_div_op): Cast constants.
715
716 2002-05-27  Bo Thorsen  <bo@suse.de>
717
718         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
719         3.1 branch. The file was made by Jakub Jelinek.
720         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
721         support so multilib doesn't break. And don't define this at all
722         when -Dinhibit_libc is used.
723         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
724         * config/i386/t-linux64: Implement full multilib support. Patch
725         originally done by Andreas Jaeger and Jakub Jelinek.
726
727 2002-05-27  Roger Sayle  <roger@eyesopen.com>
728
729         * c-common.c: Add support for __attribute__((nothrow)) to specify
730         that a function cannot throw an exception (using TREE_NOTHROW).
731         (handle_nothrow_attribute): New function to process this attribute.
732
733         * doc/extend.texi: Document the new nothrow function attribute.
734
735 2002-05-27  H.J. Lu  (hjl@gnu.org)
736
737         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
738         (num_positive): Likewise.
739         (num_div_op): Likewise.
740
741 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
742
743         * c-common.c (c_common_init): Always use intmax_t.
744
745 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
746
747         * c-common.c (c_common_init): Use intmax_t for now.
748
749 2002-05-24  Andrew Haley  <aph@redhat.com>
750
751         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
752         if T is a boolean type.
753
754 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
755
756         * basic-block.h (last_basic_block): Defined as synonym for
757         n_basic_blocks.
758         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
759         flow_depth_first_order_compute, flow_preorder_transversal_compute,
760         flow_dfs_compute_reverse_init): Replaced relevant occurences of
761         n_basic_blocks with last_basic_block.
762         * cfgbuild.c (make_edges): Likewise.
763         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
764         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
765         * combine.c (combine_instructions): Likewise.
766         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
767         iterative_dataflow_bitmap): Likewise.
768         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
769         calc_idoms, idoms_to_doms): Likewise.
770         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
771         Likewise.
772         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
773         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
774         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
775         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
776         delete_null_pointer_checks, compute_code_hoist_vbeinout,
777         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
778         compute_store_table, build_store_vectors): Likewise.
779         * haifa-sched.c (sched_init): Likewise.
780         * ifcvt.c (if_convert): Likewise.
781         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
782         pre_edge_lcm, compute_available, compute_nearerout,
783         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
784         Likewise.
785         * predict.c (estimate_probability, process_note_prediction,
786         note_prediction_to_br_prob): Likewise.
787         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
788         * recog.c (split_all_insns, peephole2_optimize): Likewise.
789         * regrename.c (copyprop_hardreg_forward): Likewise.
790         * resource.c (init_resource_info): Likewise.
791         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
792         init_regions, schedule_insns): Likewise.
793         * ssa-ccp.c (ssa_const_prop): Likewise.
794         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
795         * ssa.c (compute_dominance_frontiers,
796         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
797
798         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
799         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
800         sizes consistently.
801
802 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
803
804         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
805         new.
806         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
807         hoist_insn_after, hoist_insn_to_edge): New.
808
809 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
810
811         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
812         (PROP_FINAL): Include.
813         * flow.c (life_analysis, update_life_info,
814         init_propagate_block_info, mark_set_1, mark_used_rgs):
815         Support SCAN_DEAD_STORE.
816
817 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
818
819         * c-common.c (c_common_init): Set CPP arithmetic precision.
820         * cppexp.c (cpp_num_part): Move typedef ...
821         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
822         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
823         (sanity_checks): Update.
824
825 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
826
827         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
828         (mkheaders): New rule.
829         (install-mkheaders): New rule.
830         * configure.in (all_outputs): Add mkheaders.
831         * configure: Regenerate.
832         * mkheaders.in: New file.
833
834 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
835
836         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
837
838 2002-05-26  Andreas Jaeger  <aj@suse.de>
839
840         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
841
842 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
843
844         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
845         right_shift): Remove.
846         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
847         HIGH_PART): New.
848         (struct op): Use cpp_num.
849         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
850         num_part_mul, num_unary_op, num_binary_op, num_negate,
851         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
852         num_div_op, num_lshift, num_rshift, append_digit): New.
853         (interpret_number, parse_defined, eval_token, reduce): Update
854         for two-integer arithmetic.
855         (binary_handler): New typedef.
856         (optab): Update.
857         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
858         (_cpp_parse_expr, reduce): Update to handle two-integers.
859         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
860
861 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
862
863         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
864         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
865         branch insn into account, do not assume 1.
866         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
867         over single word insn.  Handle upper half of I/O space too.
868         * config/avr/avr.md (*sbrx_branch): Use it.
869         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
870         (*sbix_branch, *sbix_branch_bit7): Likewise.
871         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
872         Use RTL peepholes to optimize register operand sign tests.
873
874 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
875
876         * config/avr/avr.c (avr_asm_only_p): New variable.
877         (avr_override_options): Set it here if AVR1.
878         (asm_file_start): Test it here, report an error if set.
879
880 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
881
882         * alias.c: Fix formatting.
883         * attribs.c: Likewise.
884         * bb-reorder.c: Likewise.
885         * bitmap.c: Likewise.
886         * bitmap.h: Likewise.
887         * builtins.c: Likewise.
888
889 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
890
891         * reload.c (find_valid_class): Accept new argument DEST,
892         choose class accordingly.
893         (push_reload): Update callers.
894
895 2002-05-26  Andreas Jaeger  <aj@suse.de>
896
897         * combine.c (combine_instructions): Do not indent #if for
898         traditional C.
899
900 2002-05-25  Richard Henderson  <rth@redhat.com>
901
902         * c-pragma.c (apply_pragma_weak): Convert value identifier to
903         string for decl_attributes.
904         (handle_pragma_weak): Call assemble_alias if we're modifying
905         an existing decl.
906
907 2002-05-25  Richard Henderson  <rth@redhat.com>
908
909         PR target/6788
910         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
911         using rtl instead of fprintf.
912         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
913         * config/sparc/sparc-protos.h: Update.
914
915 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
916
917         * Makefile.in (C_COMMON_H): Fix.
918         Update other targets.
919         * c-common.c: Don't include c-lex.h.
920         (builtin_define_with_value): Make static and prototype.
921         (builtin_define_std): Move from c-lex.h.
922         * c-common.h (init_c_lex): Move from c-lex.h.
923         * c-decl.c: Don't include c-lex.h.
924         (make_pointer_declarator): Move from c-parse.in.
925         * c-lex.c: Don't include c-lex.h.
926         * c-lex.h: Remove.
927         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
928         (make_pointer_declarator): Move to c-decl.c.
929         * c-pragma.c: Don't include c-lex.h.
930         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
931         * c-tree.h (make_pointer_declarator): New.
932 doc:
933         * passes.texi, tm.texi: Update.
934 objc:
935         * Make-lang.in: Update and correct.
936         * objc-act.c: Don't include c-lex.h or cpplib.h.
937 treelang:
938         * treetree.c: Don't include c-lex.h.
939 config:
940         * darwin-c.c: Don't include c-lex.h.
941         * c4x/c4x-c.c: Don't include c-lex.h.
942         * c4x/t-c4x: Update.
943         * i370/i370-c.c: Don't include c-lex.h.
944         * i370/t-i370: Update.
945         * i960/i960-c.c: Don't include c-lex.h.
946         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
947         * i960/t-960bare: Update.
948         * i960/t-vxworks: Update.
949         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
950         * rs6000/t-darwin: Update.
951         * rs6000/t-rs6000-c-rule: Update.
952         * v850/v850-c.c: Don't include c-lex.h.
953         * v850/v850.c: Don't include c-lex.h or cpplib.h.
954
955
956 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
957
958         * tree.def: Fix typos.
959         * doc/install.texi: Likewise.
960
961 2002-05-25  Richard Henderson  <rth@redhat.com>
962
963         * configure.in (HAVE_AS_TLS): Add ia64 test.
964         * configure: Rebuild.
965         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
966         (override_options): Set it.
967         (TARGET_HAVE_TLS): New.
968         (sdata_symbolic_operand): Look for 's'.
969         (tls_symbolic_operand): New.
970         (ia64_expand_load_address): Abort for tls symbols.
971         (gen_tls_get_addr): New.
972         (gen_thread_pointer): New.
973         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
974         (rtx_needs_barrier): Add new unspecs.
975         (ia64_encode_section_info): Handle tls symbols.
976         (ia64_strip_name_encoding): Strip two encoding chars.
977         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
978         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
979         (TARGET_OPTIONS): Add tls-size.
980         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
981         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
982         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
983         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
984         (movsf, movdf): Likewise.
985         (movdi_symbolic): Use match_scratch.  Don't split if we won't
986         have a scratch availiable.
987         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
988         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
989         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
990         * config/ia64/ia64-protos.h: Update.
991         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
992         sdata_symbolic_operand.
993         (ASM_OUTPUT_LABELREF): Strip two characters.
994
995 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
996
997         * combine.c (simplify_set): Remove an unnecessary subreg.
998
999 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1000
1001         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
1002
1003         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
1004
1005 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
1006
1007         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
1008
1009 2002-05-25  Roger Sayle  <roger@eyesopen.com>
1010
1011         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
1012         (cond (compare x y) 0) into the equivalent (cond x y).
1013
1014 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
1015
1016         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
1017
1018 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
1019
1020         * config.gcc: Remove all stanzas for previously obsoleted
1021         systems.  Where necessary, add explicit error stanzas to
1022         prevent removed systems from being misidentified as something
1023         else.  Begin a fresh obsoletions list, with the systems that
1024         were reprieved last round.
1025         * doc/install.texi: Remove all mention of dead targets.
1026         * fixinc/mkfixinc.sh: Likewise.
1027
1028         * config/arm/arm.h: Bit 31 of target_flags is no longer
1029         reserved.
1030
1031         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
1032         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
1033         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
1034         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
1035         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
1036         config/alpha/osf12.h, config/alpha/osf2or3.h,
1037         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
1038         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
1039         config/clipper/clipper-protos.h, config/clipper/clipper.c,
1040         config/clipper/clipper.h, config/clipper/clipper.md,
1041         config/clipper/clix.h, config/convex/convex-protos.h,
1042         config/convex/convex.c, config/convex/convex.h,
1043         config/convex/convex.md, config/convex/fixinc.convex,
1044         config/convex/proto.h, config/elxsi/elxsi-protos.h,
1045         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
1046         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
1047         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
1048         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
1049         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
1050         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
1051         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
1052         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
1053         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
1054         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
1055         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
1056         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
1057         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
1058         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
1059         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
1060         config/m68k/altos3068.h, config/m68k/apollo68.h,
1061         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
1062         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
1063         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
1064         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
1065         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
1066         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
1067         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
1068         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
1069         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
1070         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
1071         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
1072         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
1073         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
1074         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
1075         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
1076         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
1077         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
1078         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
1079         config/mips/dec-osf1.h, config/mips/elflorion.h,
1080         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
1081         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
1082         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
1083         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
1084         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
1085         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
1086         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
1087         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
1088         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
1089         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
1090         config/ns32k/sequent.h, config/ns32k/tek6000.h,
1091         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
1092         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
1093         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
1094         config/sparc/rtems.h, config/we32k/we32k-protos.h,
1095         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
1096         Delete file.
1097
1098 2002-05-24  Richard Henderson  <rth@redhat.com>
1099
1100         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
1101         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
1102         * config/i386/i386.c (tls_model_chars): Add leading space.
1103         (tls_symbolic_operand): Don't bias by 1.
1104         (legitimize_address): Don't unbias by 1.
1105
1106 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
1107
1108         * lcm.c (optimize_mode_switching): Change bb used as indices
1109         to bb->index.
1110
1111 2002-05-24  Richard Henderson  <rth@redhat.com>
1112
1113         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
1114         of update_life_info_in_dirty_blocks.
1115
1116 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
1117
1118         PR other/6782
1119         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
1120
1121 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1122
1123         PR preprocessor/6780
1124         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
1125
1126 2002-05-24  Jim Blandy  <jimb@redhat.com>
1127
1128         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
1129         entry with a type code of zero, marking the end of the compilation
1130         unit's macro info.
1131
1132 2002-05-24  Richard Henderson  <rth@redhat.com>
1133
1134         * varasm.c (asm_output_bss): Always output one byte.
1135         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
1136
1137 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1138
1139         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
1140         namespace.
1141
1142 2002-05-24  Andreas Jaeger  <aj@suse.de>
1143
1144         * ggc-page.c (alloc_page): Cast variables of type size_t to
1145         unsigned long, adjust printf format string.
1146         (ggc_alloc): Likewise.
1147         (ggc_print_statistics): Likewise.
1148         (ggc_print_statistics): Correct printf format string for SCALE to
1149         use unsigned long.
1150
1151 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
1152
1153         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
1154
1155 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
1156             Zack Weinberg     <zack@codesourcery.com>
1157
1158         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
1159         quoted strings.
1160         * dwarf2out.c (lookup_filename): Properly quote filename in .file
1161         directive in assembly file.
1162         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
1163         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
1164         * config/pj/pj.h (ASM_FILE_START): Likewise.
1165         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
1166         * config/avr/avr.c (asm_file_end): Likewise.
1167         * toplev.c (output_quoted_string): Handle possibly signed plain
1168         char.
1169         * toplev.h (output_clean_symbol_name): Declare
1170         * toplev.c (output_clean_symbol_name): Define.
1171         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
1172         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
1173
1174 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
1175
1176         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
1177
1178 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
1179
1180         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
1181         of size of unsigned.
1182
1183 2002-05-23  Richard Henderson  <rth@redhat.com>
1184
1185         * configure.in (HAVE_AS_TLS): New test.
1186         * config.in, configure: Rebuild.
1187         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
1188         (ix86_tls_dialect_string, ix86_tls_dialect): New.
1189         (override_options): Set it.
1190         (tls_model_chars, tls_symbolic_operand): New.
1191         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
1192         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
1193         (local_exec_symbolic_operand): New.
1194         (get_pic_label_name): Merge into output_set_got.
1195         (ix86_asm_file_end): Emit pic_label_name if defined.
1196         (legitimate_constant_p, constant_address_p): New.
1197         (legitimate_pic_operand_p): New.
1198         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
1199         (legitimate_address_p): Likewise.
1200         (ix86_encode_section_info): Rename from i386_; handle tls decls.
1201         (ix86_strip_name_encoding): New.
1202         (get_thread_pointer): New.
1203         (legitimize_address): Handle tls symbols.
1204         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
1205         Remove UNSPEC_PLT.
1206         (struct machine_function): Add some_ld_name.
1207         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
1208         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
1209         (output_addr_const_extra): New.
1210         (maybe_get_pool_constant): New.
1211         (ix86_split_to_parts): Use it.
1212         (ix86_expand_move): Handle tls symbols.
1213         (ix86_tls_get_addr): New.
1214         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
1215         (TARGET_OPTIONS): Add tls-dialect.
1216         (CONSTANT_ADDRESS_P): Use new out-of-line function.
1217         (LEGITIMATE_CONSTANT_P): Likewise.
1218         (LEGITIMATE_PIC_OPERAND_P): Likewise.
1219         (TARGET_STRIP_NAME_ENCODING): New.
1220         (ASM_OUTPUT_LABELREF): New.
1221         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
1222         (OUTPUT_ADDR_CONST_EXTRA): New.
1223         (PREDICATE_CODES): Update.
1224         (ix86_tls_dialect, ix86_tls_dialect_string): New.
1225         * config/i386/i386.md: Regroup and renumber unspec constants.
1226         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
1227         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
1228         (tls_global_dynamic, tls_local_dynamic_base): New.
1229         (tls_local_dynamic_once): New.
1230         * config/i386/i386-protos.h: Update.
1231
1232 2002-05-23  Richard Henderson  <rth@redhat.com>
1233
1234         * genemit.c (gen_insn): Print file:lineno comment before function.
1235         (main): likewise.
1236         * gensupport.c (struct queue_elem): Add filename member.
1237         (queue_pattern): Initialize it; update all callers.
1238         (process_include): Don't free filename.
1239         (read_md_rtx): Set read_rtx_filename.
1240
1241 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
1242
1243         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
1244
1245 2002-05-23  Richard Henderson  <rth@redhat.com>
1246
1247         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
1248
1249 2002-05-23  Richard Henderson  <rth@redhat.com>
1250
1251         * doc/extend.texi (C++98 Thread-Local Edits): Update with
1252         commentary from Mark.
1253
1254 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1255
1256         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
1257         Use FOR_EACH_BB macros to iterate over basic block chain.
1258         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
1259         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
1260         Likewise.
1261         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
1262         find_unreachable_blocks, create_edge_list, verify_edge_list,
1263         remove_fake_edges, add_noreturn_fake_exit_edges,
1264         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
1265         Likewise.
1266         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
1267         find_sub_basic_blocks): Likewise.
1268         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
1269         Likewise.
1270         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
1271         Likewise.
1272         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
1273         Likewise.
1274         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
1275         commit_edge_insertions, commit_edge_insertions_watch_calls,
1276         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
1277         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
1278         * conflict.c (conflict_graph_compute): Likewise.
1279         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
1280         df_modified_p, df_refs_unlink, df_dump): Likewise.
1281         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
1282         * final.c (compute_alignments): Likewise.
1283         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
1284         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
1285         count_or_remove_death_notes): Likewise.
1286         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
1287         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
1288         classic_gcse, compute_transp, cprop, compute_pre_data,
1289         compute_transpout, invalidate_nonnull_info,
1290         delete_null_pointer_checks_1, delete_null_pointer_checks,
1291         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
1292         compute_store_table, build_store_vectors, store_motion): Likewise.
1293         * global.c (global_conflicts, mark_elimination): Likewise.
1294         * graph.c (print_rtl_graph_with_bb): Likewise.
1295         * haifa-sched.c (sched_init): Likewise.
1296         * ifcvt.c (if_convert): Likewise.
1297         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
1298         compute_available, compute_nearerout, compute_rev_insert_delete,
1299         optimize_mode_switching): Likewise.
1300         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
1301         * predict.c (estimate_probability, note_prediction_to_br_prob,
1302         propagate_freq, counts_to_freqs, expensive_function_p,
1303         estimate_bb_frequencies): Likewise.
1304         * profile.c (instrument_edges, get_exec_counts,
1305         compute_branch_probabilities, compute_checksum, branch_prob,
1306         find_spanning_tree): Likewise.
1307         * recog.c (split_all_insns, peephole2_optimize): Likewise.
1308         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
1309         Likewise.
1310         * regclass.c (scan_one_insn, regclass): Likewise.
1311         * regmove.c (mark_flags_life_zones, regmove_optimize,
1312         record_stack_memrefs): Likewise.
1313         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
1314         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
1315         * resource.c (find_basic_block): Likewise.
1316         * sched-ebb.c (schedule_ebbs): Likewise.
1317         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
1318         find_single_block_region, find_rgns, schedule_insns)
1319         * sibcall.c (optimize_sibling_and_tail_recursive_call)
1320         * ssa-ccp.c (optimize_unexecutable_edges,
1321         ssa_ccp_df_delete_unreachable_insns): Likewise.
1322         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
1323         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
1324         rename_block, convert_to_ssa, compute_conservative_reg_partition,
1325         compute_coalesced_reg_partition, rename_equivalent_regs,
1326         convert_from_ssa): Likewise.
1327         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
1328         process_for_unwind_directive): Likewise.
1329
1330         * df.c (FOR_ALL_BBS): Removed.
1331         * gcse.c (struct null_pointer_info): Type of current_block field
1332         changed.
1333         (struct reg_avail_info): Type of last_bb field changed.
1334         * config/ia64/ia64.c (block_num): Removed.
1335         (need_copy_state): Type changed.
1336         (last_block): New.
1337
1338 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
1339
1340         * cppinit.c (mark_named_operators): Split out from init_builtins.
1341         (cpp_finish_options): Call it from here instead.
1342
1343 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
1344
1345         * builtin-attrs.def: Update copyright years.
1346         (ATTR_NONNULL): New attribute identifier.
1347         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
1348         attribute tree lists.
1349         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
1350         format operand.
1351         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
1352         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
1353         attribute lists.  Chain the appropriate nonnull attribute.
1354         * c-format.c (check_format_arg): Remove null format string
1355         warning.
1356         * testsuite/gcc.dg/format/null-1.c: New test.
1357
1358 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1359
1360         * Makefile.in (ADAC): Define.
1361         (SYSLIBS): Define.
1362         (.SUFFIXES): Move before language makefile fragments.
1363         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
1364
1365 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
1366
1367         * varasm.c (make_decl_rtl): Don't allow weak variables to be
1368         placed in common.
1369
1370 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
1371
1372         * cfg.c (dump_flow_info): Print results of
1373         maybe_hot/probably_never_executed predicates.
1374         * toplev.c (open_dump_file): Print function frequency.
1375
1376 2002-05-23  David S. Miller  <davem@redhat.com>
1377
1378         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
1379         regsets.
1380
1381 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
1382
1383         * c-common.c (warn_nonnull): Declare.
1384         (c_common_attribute_table): Add "nonnull" attribute.
1385         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
1386         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
1387         check_function_arguments_recurse): New functions.
1388         * c-common.h (warn_nonnull): Declare extern.
1389         (check_function_arguments, check_function_arguments_recurse): New
1390         prototypes.
1391         * c-decl.c (c_decode_option): Add -Wnonnull option.
1392         * c-format.c (set_Wformat): Set warn_nonnull if enabling
1393         format checking.
1394         (format_check_context): New structure.
1395         (check_format_info_recurse): Remove recursion and rename to...
1396         (check_format_arg): ...this.  Update comment.
1397         (check_format_info): Use check_function_arguments_recurse.
1398         * c-typeck.c (build_function_call): Call check_function_arguments
1399         instead of check_function_format.
1400         * doc/extend.texi: Document "nonnull" attribute.
1401         * doc/invoke.texi: Docuemnt -Wnonnull option.
1402         * testsuite/gcc.dg/nonnull-1.c: New test.
1403         * testsuite/gcc.dg/nonnull-2.c: New test.
1404
1405 2002-05-23  David S. Miller  <davem@redhat.com>
1406
1407         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
1408         * cfgcleanup.c (cleanup_cfg): If it is set do not
1409         attempt to delete trivially dead insns.
1410         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
1411         * toplev.c (rest_of_compilation): Document non-trivial aspect
1412         the RTL before optimize_save_area_alloca is run.
1413
1414 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
1415
1416         * c-lex.c (indent_level): Remove.
1417         (cb_file_change, c_lex): Remove indent level handling.
1418         * c-lex.h (indent_level): Remove.
1419         * input.h (struct file_stack): Remove indent_level.
1420         * toplev.c (push_srcloc): Remove indent_level handling.
1421
1422 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
1423
1424         PR target/6753
1425         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
1426         of x in constraints for clarity.
1427         (sse_mov?fcc split): abort if op2 == op3.
1428         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
1429         sse_movsfcc_const0_4): Add earlyclobber.
1430         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
1431         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
1432         Use Y instead of x in constraints.
1433
1434 2002-05-23  Richard Henderson  <rth@redhat.com>
1435
1436         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
1437         (C++98 Thread-Local Edits): New subsection.
1438
1439         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
1440         (ix86_arch): Set type to enum processor_type.
1441
1442         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
1443         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
1444
1445 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
1446
1447         * configure.in: Fix as version test for binutils 2.12.1 releases
1448         (without dates).
1449         * configure: Rebuilt.
1450
1451 2002-05-23  Richard Henderson  <rth@redhat.com>
1452
1453         * config/i386/i386.c (get_pic_label_name): New.
1454         (load_pic_register): Remove.
1455         (output_set_got): New.
1456         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
1457         * config/i386/i386.md (UNSPEC_SET_GOT): New.
1458         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
1459         (prologue_set_got, prologue_get_pc): Remove.
1460         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
1461         (builtin_setjmp_receiver): Use gen_set_got.
1462         * config/i386/i386-protos.h: Update.
1463
1464 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
1465
1466         * gcse.c (hash_expr): Do not use alias set for hashing.
1467
1468 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
1469
1470         * dbxout.c (dbxout_class_name_qualifiers): New function.
1471         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
1472
1473 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
1474
1475         * cpperror.c (_cpp_begin_message): No special casing
1476         of CPP_FATAL_LIMIT.
1477         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
1478         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
1479         * cpplib.c (do_include_common): Use DL_ERROR.
1480         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
1481         (DL_ICE): Renumber.
1482         * fix-header.c (read_scan_file): Update.
1483
1484 2002-05-22  Richard Henderson  <rth@redhat.com>
1485
1486         * config/i386/i386.c (ix86_expand_call): New function, extracted
1487         from md call patterns.  Add pic_offset_table_rtx to
1488         CALL_INSN_FUNCTION_USAGE when needed.
1489         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
1490         (call_value_pop, call_value, untyped_call): Likewise.
1491         (call_exp, call_value_exp): Remove.
1492         * config/i386/i386-protos.h: Update.
1493
1494 2002-05-22  Richard Henderson  <rth@redhat.com>
1495
1496         * varasm.c (default_section_type_flags): Check for VAR_DECL
1497         before using DECL_THREAD_LOCAL.
1498
1499 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
1500
1501         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
1502         (STARTFILE_SPEC): Delete PE crt0.o.
1503         * config/rs6000/aix51.h: Same.
1504         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
1505         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
1506         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
1507         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
1508         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
1509
1510 2002-05-22  Richard Henderson  <rth@redhat.com>
1511
1512         * varasm.c (default_section_type_flags): Handle tls data and
1513         default sections.
1514         (default_unique_section): Handle tls sections.
1515
1516 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
1517
1518         * configure.in (CROSS): Define NATIVE_CROSS.
1519         * configure: Regenerate.
1520         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
1521         (startfile_prefix_spec): New var.
1522         (static_specs): Add startfile_prefix_spec.
1523         (do_spec_2): Split out from..
1524         (do_spec): ..here.
1525         (main): Process startfile_prefix_spec.
1526         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
1527         dynamic linker.
1528         (STARTFILE_PREFIX_SPEC): Define.
1529         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
1530         absolute paths.
1531
1532 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
1533
1534         * cpperror.c: Fix formatting.
1535         * cppexp.c: Likewise.
1536         * cppfiles.c: Likewise.
1537         * cpphash.c: Likewise.
1538         * cpphash.h: Likewise.
1539         * cppinit.c: Likewise.
1540         * cpplex.c: Likewise.
1541         * cpplib.c: Likewise.
1542         * cppmacro.c: Likewise.
1543         * cppmain.c: Likewise.
1544         * cppspec.c: Likewise.
1545
1546 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
1547
1548         * combine.c (force_to_mode): Use gen_int_mode.
1549         Don't clear CONST_INT bits outside of mode.
1550
1551 2002-05-22  Richard Henderson  <rth@redhat.com>
1552
1553         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
1554         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
1555
1556 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
1557
1558         PR c/6643
1559         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
1560         if DECL_SIZE_UNIT is INTEGER_CST.
1561
1562 2002-05-22  Richard Henderson  <rth@redhat.com>
1563
1564         * flow.c (life_analysis): Delete broken reg_label check.
1565
1566 2002-05-22  Richard Henderson  <rth@redhat.com>
1567
1568         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
1569         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
1570
1571 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
1572
1573         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
1574         (embed-bb.c): New rule.
1575         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
1576         * config/sh/embed_bb.c: Delete.
1577
1578 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
1579
1580         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
1581
1582 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
1583
1584         * config/h8300/h8300.md (*andorqi3): New.
1585
1586 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1587
1588         PR preprocessor/6517
1589         * Makefile.in: Update.
1590         * c-common.c (c_common_post_options): Add preprocessor
1591         errors to the error count.
1592         * c-lang.c (c_post_options): Kill.
1593         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
1594         * hooks.h: Add header guards.
1595         * langhooks-def.h: Include hooks.h.
1596         (LANG_HOOKS_POST_OPTIONS): Update.
1597         * langhooks.h (struct lang_hooks): Update post_options.
1598         * toplev.c (parse_options_and_default_flags): Update.
1599 objc:
1600         * objc-lang.c (objc_post_options): Kill.
1601         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
1602
1603 2002-05-21  Bruce Korb  <bkorb@gnu.org>
1604
1605         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
1606         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
1607         * fixinc/fixincl.x: regen.
1608
1609 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
1610
1611         * cfgbuild.c: Fix formatting.
1612         * cfg.c: Likewise.
1613         * cfgcleanup.c: Likewise.
1614         * cfglayout.c: Likewise.
1615         * cfgloop.c: Likewise.
1616         * cfgrtl.c: Likewise.
1617
1618 2002-05-21  Richard Henderson  <rth@redhat.com>
1619
1620         * c-common.h (enum rid): Add RID_THREAD.
1621         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
1622         (grokdeclarator): Grok __thread.
1623         * c-parse.in (reswords): Add __thread.
1624         (rid_to_yy): Add RID_THREAD.
1625
1626         * tree.h (DECL_THREAD_LOCAL): New.
1627         (struct tree_decl): Add thread_local_flag.
1628         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
1629         * tree.c (staticp): TLS variables are not static.
1630
1631         * target-def.h (TARGET_HAVE_TLS): New.
1632         * target.h (have_tls): New.
1633         * output.h (SECTION_TLS): New.
1634         * varasm.c (assemble_variable): TLS variables can't be common for now.
1635         (default_section_type_flags): Handle .tdata and .tbss.
1636         (default_elf_asm_named_section): Handle SECTION_TLS.
1637         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
1638
1639         * flags.h (flag_tls_default): Declare.
1640         * toplev.c (flag_tls_default): Define.
1641         (display_help): Display help for it.
1642         (decode_f_option): Set it.
1643
1644         * doc/extend.texi (Thread-Local): New node describing language-level
1645         thread-local storage.
1646         * doc/invoke.texi (-ftls-model): Document.
1647
1648         * fixinc/inclhack.def (thread_keyword): New.
1649         * fixinc/fixincl.x: Rebuild.
1650
1651 2002-05-21  Jeffrey A Law  <law@redhat.com>
1652
1653         * optabs.c (expand_binop): For double-word integer multiplies,
1654         do not compute intermediate results into something that is
1655         not a register (such as a SUBREG or MEM).
1656
1657         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
1658         (ix86_sched_reorder): Make sure to initialize scheduling
1659         data even when there's only one insn in the ready queue.
1660
1661 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
1662
1663         * genautomata.c (reserv_sets_hash_value): Fix a typo.
1664
1665 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
1666
1667         * genautomata.c (reserv_sets_hash_value): Define hash_value as
1668         set_el_t.  Transform the hash value into unsigned.
1669         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
1670         (transform_3): Add code to process `(A,B)+(D,E)'.
1671
1672 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
1673
1674         * reload1.c (do_output_reload): Run delete_output_reload
1675         only if optimizing.
1676
1677 2002-05-21  Roger Sayle  <roger@eyesopen.com>
1678
1679         PR middle-end/6600
1680         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
1681         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
1682         (can_store_by_pieces): ... and here to limit the largest mode used.
1683         Add a comment to document this function.
1684
1685 2002-05-21  Richard Henderson  <rth@redhat.com>
1686
1687         * flow.c (life_analysis): Fix test for deleted label.
1688
1689 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1690
1691         * doc/tm.texi: Fix typo.
1692
1693 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
1694
1695         * c-common.c (c_common_init): Set options->unsigned_char from
1696         flag_signed_char.
1697         (cb_register_builtins): Define __STRICT_ANSI__ and
1698         __CHAR_UNSIGNED__ here...
1699         * cppinit.c (init_builtins): Not here.
1700         (cpp_create_reader): unsigned_char option defaults to 0, not
1701         !DEFAULT_SIGNED_CHAR.
1702         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
1703         and -funsigned-char.
1704
1705         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
1706         * cpphash.c (_cpp_init_hashtable): Don't set it.
1707         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
1708         directly.  Clarify comment.
1709
1710 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1711
1712         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
1713         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
1714         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
1715         BASIC_BLOCK (n_basic_blocks - 1).
1716         * cfganal.c (can_fallthru, flow_call_edges_add,
1717         flow_preorder_transversal_compute): Too.
1718         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
1719         find_sub_basic_blocks): Too.
1720         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
1721         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
1722         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
1723         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
1724         * combine.c (this_basic_block): Type changed to basic_block.
1725         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
1726         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
1727         get_last_value, distribute_notes, distribute_links): Too.
1728         * final.c (compute_alignments): Too.
1729         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
1730         * function.c (thread_prologue_and_epilogue_insns): Too.
1731         * gcse.c (compute_code_hoist_vbeinout): Too.
1732         * global.c (build_insn_chain): Too.
1733         * ifcvt.c (find_if_block, find_cond_trap): Too.
1734         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
1735         * regmove.c (regmove_optimize): Too.
1736         * resource.c (find_basic_block): Too.
1737         * sched-ebb.c (schedule_ebbs): Too.
1738         * ssa-dce.c (find_control_dependence, find_pdom): Too.
1739
1740 2002-05-21  Andreas Jaeger  <aj@suse.de>
1741
1742         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
1743
1744 2002-05-21  Richard Henderson  <rth@redhat.com>
1745
1746         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
1747         unspec names, not numbers.
1748
1749 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
1750
1751         * doc/sourcebuild.texi: Mention snapshot-README and
1752         snapshot-index.html as needing updating for new front ends.
1753
1754 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1755
1756         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
1757         disabling checking, and avoid multiple evaluation of RTX.
1758
1759 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
1760
1761         * bitmap.c (bitmap_find_bit): Return early if we have the correct
1762         element cached.
1763
1764 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
1765
1766         * profile.c (gen_edge_profiler):  Set alias set before the memory is
1767         used.
1768
1769 2002-05-20  David S. Miller  <davem@redhat.com>
1770
1771         * cselib.c (max_value_regs): New.
1772         (cselib_lookup, cselib_invalidate_regno): Initialize it when
1773         adding new entries to the REG_VALUES table and we are dealing with
1774         a hard register.
1775         (clear_table): Initialize it.
1776         (cselib_invalidate_regno): Use it to determine which hard
1777         registers to scan when mode is not VOIDmode.
1778
1779 2002-05-20  Duraid Madina   <duraid@fl.net.au>
1780
1781         * tradcpp.c (fixup_newlines): Use old-style function header.
1782
1783 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
1784
1785         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
1786
1787 2002-05-20  H.J. Lu  (hjl@gnu.org)
1788
1789         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
1790
1791         * config/mips/mips.h (DFMODE_NAN): Defined.
1792         (SFMODE_NAN): Likewise.
1793
1794 2002-05-20  Dale Johannesen  <dalej@apple.com>
1795
1796         * combine.c (cant_combine_insn_p):  Back out my
1797         previous patch.
1798
1799 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
1800
1801         * params.c: Fix formatting.
1802         * params.h: Likewise.
1803         * predict.c: Likewise.
1804         * prefix.c: Likewise.
1805         * print-rtl.c: Likewise.
1806         * print-tree.c: Likewise.
1807         * profile.c: Likewise.
1808
1809 2002-05-20  H.J. Lu  (hjl@gnu.org)
1810
1811         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
1812
1813 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
1814
1815         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
1816         switches straight on to the assembler, do not abbreviate them.
1817         * config/arm/elf.h (ASM_SPEC): As above.
1818         * config/arm/semi.h (ASM_SPEC): As above.
1819         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
1820         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
1821         -mcpu=xscale on to the assembler by default.
1822         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
1823
1824 2002-05-20  Richard Henderson  <rth@redhat.com>
1825
1826         * cse.c (canon_hash): Reorder do_not_record test.  Always
1827         allow pic_offset_table_rtx.
1828
1829 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
1830
1831         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
1832         (expand_binop): Ditto (3 times).
1833
1834 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
1835
1836         * Makefile.in (distclean): Remove QMTest stuff.
1837         (QMTEST_PATH): New variable.
1838         (QMTESTFLAGS): Likewise.
1839         (QMTESTRUNFLAGS): Likewise.
1840         (QMTEST): Likewise.
1841         (QMTEST_GPP_TESTS): Likewise.
1842         (QMTEST_DIR): Likewise.
1843         (QMTEST_DIR/context): New target.
1844         (qmtest-g++): Likeise.
1845         (qmtest-gui): Likewise.
1846         (QMTEST_DIR/gpp-expected.qmr): Likewise.
1847
1848 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
1849
1850         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
1851         an altivec register if TARGET_ALTIVEC.
1852
1853         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
1854         to ALTIVEC_VECTOR_MODE.
1855         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
1856         (rs6000_va_arg): Vectors may go in registers if they are not
1857         altivec vectors.
1858
1859 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
1860
1861         * protoize.c: Fix formatting.
1862
1863 2002-05-19  Richard Henderson  <rth@redhat.com>
1864
1865         * gensupport.c (init_include_reader): Merge into ...
1866         (process_include): ... here.  Simplify composite path creation.
1867         Plug memory leaks.  Fix file/line number tracking.  Do not
1868         process_define_cond_exec.  Return void.
1869         (process_rtx): Don't check process_include return value.
1870
1871 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1872
1873         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
1874         fields.
1875         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
1876         traversing basic block chain.
1877         (create_basic_block_structure, create_basic_block): Declaration changed.
1878         (link_block, unlink_block): Declare.
1879         * cfg.c (entry_exit_blocks): Initialize new fields.
1880         (link_block, unlink_block): New.
1881         (expunge_block_nocompact): Unlink basic block.
1882         (dump_flow_info): Print prev_bb/next_bb fields.
1883         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
1884         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
1885         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
1886         * cfgrtl.c (create_basic_block_structure, create_basic_block,
1887         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
1888         (verify_flow_info): Check that list agrees with numbering.
1889
1890 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1891
1892         * c-common.c (preprocessing_asm): New macro.
1893         * c-lex.h (builtin_define, builtin_assert): Use pfile.
1894 doc:
1895         * tm.texi: Update.
1896 config/alpha:
1897         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
1898         (CPP_SPEC): Simplify.
1899         (TARGET_CPU_CPP_BUILTINS): Update.
1900         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
1901         (CPP_SPEC): Simplify.
1902         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
1903         (TARGET_OS_CPP_BUILTINS): Update.
1904         * osf.h (CPP_XFLOAT_SPEC): Kill.
1905         (TARGET_OS_CPP_BUILTINS): Update.
1906         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
1907         * osf5.h (CPP_XFLOAT_SPEC): Kill.
1908         * vms.h (CPP_SUBTARGET_SPEC): Kill.
1909         (TARGET_OS_CPP_BUILTINS): Update.
1910
1911 2002-05-19  Richard Henderson  <rth@redhat.com>
1912
1913         * varasm.c (default_binds_local_p): Fix typo.
1914
1915 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1916
1917         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
1918         CONST_INT operand to the correct mode after adding 1 to it.
1919
1920 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
1921
1922         * config.gcc (powerpc-wrs-windiss*): New target.
1923
1924 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1925
1926         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
1927         (ashrdi3): Use it.
1928
1929 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
1930
1931         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
1932         alphasort.
1933         * config.in: Regenerated.
1934         * configure: Regenerated.
1935
1936 2002-05-19  Richard Henderson  <rth@redhat.com>
1937
1938         * target-def.h (TARGET_BINDS_LOCAL_P): New.
1939         * target.h (struct gcc_target): Move boolean fields to the end.
1940         Add binds_local_p.
1941         * varasm.c (default_binds_local_p): New.
1942         * output.h: Declare it.
1943
1944         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
1945         * config/cris/cris.c (cris_encode_section_info): Likewise.
1946         * config/i386/i386.c (i386_encode_section_info): Likewise.
1947         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
1948         * config/sh/sh.c (sh_encode_section_info): Likewise.
1949
1950         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
1951         (TARGET_BINDS_LOCAL_P): New.
1952
1953 2002-05-19  Richard Henderson  <rth@redhat.com>
1954
1955         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
1956         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
1957         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
1958
1959         * toplev.c (display_help): Kill -a -ax help.
1960
1961         * config/1750a/1750a.h, config/alpha/alpha.h,
1962         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
1963         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
1964         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
1965         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
1966
1967         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
1968         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
1969
1970         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
1971         (ix86_output_function_block_profiler): Kill.
1972         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
1973         (m68hc11_function_block_profiler): Kill.
1974         * config/m68hc11/m68hc11-protos.h: Update.
1975         * config/m88k/m88k.c (output_block_profiler): Kill.
1976         (output_function_block_profiler): Kill.
1977         * config/m88k/m88k-protos.h: Update.
1978
1979 2002-05-19  Richard Henderson  <rth@redhat.com>
1980
1981         * system.h (STRIP_NAME_ENCODING): Poison it.
1982         * output.h (STRIP_NAME_ENCODING): Remove.
1983         (default_strip_name_encoding): Declare.
1984         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
1985         * target.h (strip_name_encoding): New.
1986         * varasm.c (default_strip_name_encoding): New.
1987
1988         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
1989         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
1990         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
1991         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
1992         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
1993         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
1994         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
1995         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
1996         config/v850/v850.h: Use the hook, not the macro.
1997
1998         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
1999         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
2000         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
2001         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
2002         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
2003         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
2004         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
2005         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
2006         config/v850/v850.c, config/v850/v850.h:
2007         Move STRIP_NAME_ENCODING to out-of-line function and add
2008         TARGET_STRIP_NAME_ENCODING.
2009
2010         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
2011         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
2012         with TARGET_STRIP_NAME_ENCODING referencing existing function;
2013         make function static.
2014
2015         * xcoffout.c: Include target.h
2016         * Makefile.in (xcoffout.o): Update.
2017
2018         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
2019         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
2020         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
2021         reloc argument unused.
2022         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
2023
2024         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
2025         STRIP_NAME_ENCODING docs.
2026
2027 2002-05-19  Andreas Jaeger  <aj@suse.de>
2028
2029         * gengenrtl.c: Add prototype for excluded_rtx.
2030
2031         * real.h: Add prototype for exact_real_truncate.
2032
2033 2002-05-18  Richard Henderson  <rth@redhat.com>
2034
2035         * system.h (ENCODE_SECTION_INFO): Poison it.
2036         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
2037         * target.h (encode_section_info): New.
2038         * varasm.c (make_decl_rtl, output_constant_def): Use it.
2039         * hooks.c (hook_tree_int_void): New.
2040         * hooks.h: Declare it.
2041
2042         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
2043         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
2044         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
2045         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
2046         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
2047         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
2048         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
2049         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
2050         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
2051         config/mcore/mcore-protos.h, config/mcore/mcore.c,
2052         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
2053         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
2054         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
2055         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
2056         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
2057         referencing existing function.  Make function static.
2058
2059         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
2060         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
2061         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
2062         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
2063         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
2064         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
2065         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
2066         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
2067         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
2068         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
2069         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
2070         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
2071         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
2072         Move ENCODE_SECTION_INFO to out-of-line function and add
2073         TARGET_ENCODE_SECTION_INFO.
2074
2075         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
2076         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
2077
2078         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
2079         from SUBTARGET_*
2080         (switch_to_section): Replace in_rdata case with in_readonly_data.
2081
2082         * config/h8300/h8300.c (h8300_encode_label): Make static.
2083         * config/h8300/h8300-protos.h: Update.
2084
2085         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
2086         from rs6000_encode_section_info; make static.
2087         (rs6000_xcoff_encode_section_info): New.
2088
2089         * config/v850/v850.c (v850_encode_data_area): Make static.
2090         * config/v850/v850-protos.h: Update.
2091
2092         * config/vax/vax.c: Include flags.h.
2093         (vms_select_section): Fix typo.
2094
2095         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
2096         ENCODE_SECTION_INFO docs.
2097
2098 2002-05-18  Richard Henderson  <rth@redhat.com>
2099
2100         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
2101         REGISTER_TARGET_PRAGMAS.
2102         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
2103
2104         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
2105
2106 2002-05-18  Richard Henderson  <rth@redhat.com>
2107
2108         * system.h (SELECT_RTX_SECTION): Poison.
2109         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
2110         * target.h (select_rtx_section): New.
2111         * varasm.c (output_constant_pool): Use it.
2112         (default_select_rtx_section, default_elf_select_rtx_section): New.
2113         * output.h: Declare them.
2114
2115         * config/darwin.h (SELECT_RTX_SECTION): Move ...
2116         * config/darwin.c (machopic_select_rtx_section): ... here.
2117         * config/darwin-protos.h: Update.
2118
2119         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
2120         * config/nextstep.c (machopic_select_rtx_section): ... here.
2121         (nextstep_select_section): Rename variable to avoid macro clash.
2122         * config/nextstep-protos.h: Update.
2123
2124         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
2125         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
2126         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
2127         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
2128         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
2129         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
2130         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
2131         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
2132         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
2133         (SELECT_RTX_SECTION): Remove.
2134
2135         * config/darwin.h, config/elfos.h, config/nextstep.h,
2136         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
2137         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
2138         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
2139         config/sparc/lynx.h, config/xtensa/xtensa.c
2140         (TARGET_ASM_SELECT_RTX_SECTION): New.
2141
2142         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
2143         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
2144         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
2145         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
2146         (ia64_aix_select_rtx_section): New.
2147         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
2148         redefining.
2149         * config/mips/mips.c (mips_select_rtx_section): Make static.
2150         Support ELF SHF_MERGE features.
2151         * config/mips/mips-protos.h: Update.
2152         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
2153         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
2154         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
2155         make static, fall back to default_elf_select_rtx_section.
2156         * config/rs6000/rs6000-protos.h: Update.
2157         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
2158         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
2159         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
2160         * config/romp/romp.c (romp_select_rtx_section): New.
2161         * config/s390/s390.c (s390_select_rtx_section): New.
2162         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
2163         declarations before target macro definition.
2164         (xtensa_emit_call): Use static buffer.
2165         (xtensa_select_rtx_section): New.
2166         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
2167         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
2168         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
2169
2170         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
2171         SELECT_RTX_SECTION docs.
2172
2173 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
2174
2175         * i386.md (movsi/movdi): Fix template.
2176         (sse2 patterns): Set attributes consistently.
2177
2178         * i386.md (pushqi2, ashrqi_*): Fix constraint.
2179
2180 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
2181
2182         * optabs.c (complex_part_zero_p): New.
2183         * (expand_cmplxdiv_straight): Use it.
2184         * (expand_cmplxdiv_wide): Ditto.
2185         * (expand_binop): Ditto.
2186
2187 2002-05-18  Richard Henderson  <rth@redhat.com>
2188
2189         * final.c (HAVE_READONLY_DATA_SECTION): New.
2190         (shorten_branches): Use it instead of ifdefs.
2191         * varasm.c (enum in_section): Add in_readonly_data.
2192         (text_section, data_section): Tidy.
2193         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
2194
2195         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
2196         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
2197         (READONLY_DATA_SECTION): Don't undef.
2198
2199         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
2200         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
2201         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
2202
2203         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
2204         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
2205         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
2206         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
2207
2208         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
2209         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
2210         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
2211         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
2212         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
2213         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
2214         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
2215         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
2216         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
2217
2218         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
2219         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
2220         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
2221         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
2222         config/pa/pa64-hpux.h, config/sparc/litecoff.h
2223         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
2224
2225         * config/elfos.h, config/netware.h, config/svr3.h,
2226         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
2227         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
2228         config/h8300/h8300.h, config/i386/i386-interix.h,
2229         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
2230         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
2231
2232         * config/elfos.h, config/netware.h, config/svr3.h,
2233         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
2234         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
2235         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
2236         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
2237
2238         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
2239         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
2240         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
2241         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
2242         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
2243         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
2244         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
2245         config/rs6000/sysv4.h, config/v850/v850.h
2246         (EXTRA_SECTIONS): Remove in_const/in_rdata.
2247         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
2248
2249         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
2250         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
2251         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
2252         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
2253         * config/alpha/alpha.c (alpha_start_function): Likewise.
2254         (alpha_write_linkage): Likewise.
2255         * config/m32r/m32r.c (m32r_select_section): Likewise.
2256         * config/m88k/m88k.c (m88k_select_section): Likewise.
2257         * config/mips/mips.c (mips_select_rtx_section): Likewise.
2258         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
2259         (rs6000_elf_select_section): Likewise.
2260         * config/v850/v850.c (v850_select_section): Likewise.
2261
2262         * config/1750a/1750a.h, config/i860/sysv3.h
2263         (READONLY_DATA_SECTION_ASM_OP): New.
2264         READONLY_DATA_SECTION_ASM_OP.
2265         * config/i386/interix.c, config/i386/winnt.c
2266         (i386_pe_unique_section): Always use .rdata prefix.
2267         * config/pa/som.h (readonly_data): Always switch to read-only section.
2268         (READONLY_DATA_SECTION): Predicate on flag_pic.
2269         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
2270         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
2271         (READONLY_DATA_SECTION): Update.
2272
2273 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
2274
2275         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
2276         is used without -Wformat.
2277         * c-common.h (warn_format_zero_length): Declare extern.
2278         * c-decl.c (warn_options): Add "format-zero-length".
2279         * c-format.c (warn_format_zero_length): Declare.
2280         (set_Wformat): Set warn_format_zero_length for -Wformat.
2281         (check_format_info): Only warn about zero-length formats if
2282         warn_format_zero_length is true.  Include the format type
2283         name in the warning message.
2284         * doc/invoke.texi: Document -Wformat-zero-length.
2285         * testsuite/gcc.dg/format/zero-length-1.c: New test.
2286
2287 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
2288
2289         * timevar.c: Fix formatting.
2290         * tlink.c: Likewise.
2291         * toplev.c: Likewise.
2292         * tree-dump.c: Likewise.
2293         * tree-inline.c: Likewise.
2294
2295 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
2296
2297         * cppinit.c (cpp_post_options): If preprocessed, turn off
2298         traditional.  If traditional, turn off column numbers.
2299         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
2300         * cpptrad.c (handle_newline): Update line_base.
2301         (skip_comment): Handle -Wcomment.
2302
2303 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
2304
2305         * cppinit.c (struct builtin): Remove unused fields.
2306         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
2307         (operator_array): New - was second half of builtin_array.
2308         (init_builtins): Simplify loop over builtin_array/operator_array.
2309
2310 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
2311
2312         * defaults.h (UNIQUE_SECTION): Remove.
2313         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
2314
2315 2002-05-17  Richard Henderson  <rth@redhat.com>
2316
2317         * expr.c (init_expr_once): Don't use start/end_sequence.
2318         Use rtx_alloc instead of emit_insn.
2319         * toplev.c (lang_dependent_init): Run init_expr_once here ...
2320         (lang_independent_init): ... not here.
2321
2322 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
2323
2324         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
2325
2326 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2327
2328         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
2329         for fixed registers, possibly used for global register variables.
2330         (initial_elimination_offset, avr_output_function_prologue,
2331         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
2332
2333 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
2334
2335         * Makefile.in: Update for cpptrad.c.
2336         * cpphash.h (struct cpp_buffer): New members for buffer
2337         overlays.
2338         (struct cpp_reader): New members for traditional output.
2339         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
2340         * cppinit.c (cpp_create_reader): Set trad_line.
2341         (cpp_destroy): Free trad_out_base if used.
2342         (cpp_read_main_file): Overlay an empty buffer if traditional.
2343         (cpp_finish_options): Don't do builtins.
2344         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
2345         (cpp_handle_option): Handle it.
2346         * cpplex.c (continue_after_nul): New.
2347         (_cpp_lex_direct): Use handle_nul.
2348         * cpplib.h (struct cpp_options): New traditional option.
2349         * cpptrad.c: New file.
2350
2351 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
2352
2353         * c-common.c (c_common_init_options): Use C89 for Objective-C,
2354         and set the options flag.
2355         * cppinit.c (lang_flags): Remove objc.
2356         (lang_defaults): Remove OBJC and OBJCXX.
2357         (set_lang): Update.
2358         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
2359         (cpp_handle_option): Remove -+ and -lang-objc++.
2360         For ObjC, just set a flag.
2361         (print_help): Update.
2362         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
2363
2364 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2365
2366         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
2367         bootstrap with -mips3.
2368
2369 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
2370
2371         * final.c: Fix formatting.
2372         * fix-header.c: Likewise.
2373         * flow.c: Likewise.
2374         * fold-const.c: Likewise.
2375         * function.c: Likewise.
2376
2377 2002-05-17  David S. Miller  <davem@redhat.com>
2378
2379         PR c/6689, PR optimization/6615
2380         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
2381         and make it a pointer to rtx.  Update comments.
2382         (update_equiv_regs): When scanning for equivalences, record
2383         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
2384         it while making the equiv replacements.
2385
2386 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2387
2388         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
2389
2390 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
2391
2392         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
2393         when encoding visibility into SYMBOL_REF_FLAG.
2394
2395 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
2396
2397         * expr.c (force_operand): Fix reversed move.
2398
2399 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
2400
2401         * doc/install.texi (Testing): Mention two common DejaGnu warnings
2402         that can be ignored.
2403
2404 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2405
2406         * doc/install.texi (Final install): Recommend to install into a
2407         "clean" target directory.
2408
2409 2002-05-17  Richard Henderson  <rth@redhat.com>
2410
2411         * config/ia64/ia64.md: Use braced strings instead of quoted strings
2412         for code blocks.  Tidy whitespace.
2413
2414 2002-05-17  Richard Henderson  <rth@redhat.com>
2415
2416         * hooks.c (hook_tree_bool_false): New.
2417         * hooks.h: Declare it.
2418         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
2419         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
2420         * target.h (select_section, unique_section): New.
2421         (in_small_data_p): New.
2422         * varasm.c (resolve_unique_section): Use hooks instead of macros.
2423         (variable_section, output_constant_def_contents): Likewise.
2424         (default_select_section, default_unique_section): New.
2425         (categorize_decl_for_section, default_elf_select_section): New.
2426         * output.h: Declare them.
2427
2428         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
2429         (TARGET_ASM_SELECT_SECTION): New.
2430         (SELECT_SECTION): Move ...
2431         * config/darwin.c (machopic_select_section): ... here.
2432         * config/darwin-protos.h: Update.
2433
2434         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
2435         (SELECT_SECTION): Move ...
2436         * config/nextstep.c (nextstep_select_section): ... here.
2437         * config/nextstep-protos.h: Update.
2438
2439         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
2440         (TARGET_ASM_SELECT_SECTION): New.
2441         * config/svr3.h (SELECT_SECTION): Remove.
2442
2443         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
2444         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
2445         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
2446         (alpha_encode_section_info): Use it.
2447         * config/alpha/alpha-protos.h: Update.
2448         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
2449         (SELECT_SECTION, UNIQUE_SECTION): Remove.
2450         (TARGET_ASM_SELECT_SECTION): New.
2451         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
2452
2453         * config/arm/pe.h (UNIQUE_SECTION): Remove.
2454         (TARGET_ASM_UNIQUE_SECTION): New.
2455
2456         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
2457         (avr_unique_section): Rename from unique_section; make static.
2458         * config/avr/avr-protos.h: Update.
2459         * config/avr/avr.h (UNIQUE_SECTION): Remove.
2460
2461         * config/c4x/c4x.h (SELECT_SECTION): Remove.
2462
2463         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
2464         (TARGET_ASM_UNIQUE_SECTION): New.
2465         * config/i386/i386-interix.h: Likewise.
2466         * config/i386/win32.h: Likewise.
2467         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
2468         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
2469         * config/i386/sco5.h (SELECT_SECTION): Remove.
2470         (TARGET_ASM_SELECT_SECTION): New.
2471         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
2472
2473         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
2474         instead of SELECT_SECTION.
2475         * config/m68k/dpx2.h: Likewise.
2476         * config/rs6000/lynx.h: Likewise.
2477
2478         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
2479         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
2480         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
2481         (ia64_in_small_data_p): New.
2482         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
2483         (ia64_aix_select_section, ia64_aix_unique_section): New.
2484         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
2485         (SELECT_SECTION, UNIQUE_SECTION): Remove.
2486
2487         * config/m32r/m32r.h (SELECT_SECTION): Remove.
2488         (TARGET_ASM_SELECT_SECTION): New.
2489         * config/m32r/m32r.c (m32r_select_section): Take align argument.
2490         * config/m32r/m32r-protos.h: Update.
2491
2492         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
2493         (SELECT_SECTION): Move ...
2494         * config/m88k/m88k.c (m88k_select_section): ... here.
2495
2496         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
2497         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
2498         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
2499         (mcore_unique_section): Make static.
2500         * config/mcore/mcore-protos.h: Update.
2501
2502         * config/mips/elf.h (UNIQUE_SECTION): Remove.
2503         (TARGET_ASM_UNIQUE_SECTION): New.
2504         * config/mips/elf64.h: Likewise.
2505         * config/mips/iris6gld.h: Likewise.
2506         * config/mips/linux.h: Likewise.
2507         * config/mips/mips-protos.h: Update.
2508         * config/mips/mips.c (mips_select_section): Add align argument.
2509         * config/mips/mips.h (SELECT_SECTION): Remove.
2510         (TARGET_ASM_SELECT_SECTION): New.
2511
2512         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
2513         * config/mmix/mmix.c (mmix_select_section): Remove.
2514         (mmix_unique_section): Remove.
2515         * config/mmix/mmix-protos.h: Update.
2516
2517         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
2518         (SELECT_SECTION): Move ...
2519         * config/pa/pa.c (pa_select_section): ... here.
2520         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
2521
2522         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
2523         from rs6000_select_section and make static.
2524         (rs6000_elf_unique_section): Similarly.
2525         (rs6000_xcoff_select_section): From xcoff.h.
2526         (rs6000_xcoff_unique_section): Likewise.
2527         * config/rs6000/rs6000-protos.h: Update.
2528         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
2529         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
2530         * config/rs6000/xcoff.h: Likewise.
2531
2532         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
2533         (SELECT_SECTION): Move ...
2534         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
2535
2536         * config/v850/v850.h (SELECT_SECTION): Move ...
2537         * config/v850/v850.c (v850_select_section): ... here.
2538         (TARGET_ASM_SELECT_SECTION): New.
2539
2540         * config/vax/vms.h (SELECT_SECTION): Move ...
2541         * config/vax/vax.c (vms_select_section): ... here.
2542         (TARGET_ASM_SELECT_SECTION): New.
2543
2544         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
2545         for the target hooks.
2546
2547 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
2548
2549         * config/arm/arm.c (emit_multi_reg_push): Do not set
2550         RTX_FRAME_RELATED_P on the SEQUENCE.
2551
2552 2002-05-16  Richard Henderson  <rth@redhat.com>
2553
2554         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
2555         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
2556
2557 2002-05-16  Richard Henderson  <rth@redhat.com>
2558
2559         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
2560
2561         * config/ia64/ia64.c (saveable_obstack): Do not declare.
2562
2563 2002-05-16  Richard Henderson  <rth@redhat.com>
2564
2565         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
2566         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
2567         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
2568         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
2569         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
2570         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
2571         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
2572         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
2573         Revert "Basic block renumbering removal", and two followup patches.
2574
2575 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
2576
2577         * lcm.c (optimize_mode_switching): Revert previous change.
2578
2579 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2580
2581         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
2582         with only extant block numbers.
2583
2584 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
2585
2586         * lcm.c (optimize_mode_switching): Fix typo.
2587
2588 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2589
2590         * flow.c (calculate_global_regs_live): Queue blocks in program order.
2591
2592 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2593
2594         * doc/install.texi (Configuration): Document PWDCMD.
2595
2596 2002-05-16  Dale Johannesen  <dalej@apple.com>
2597
2598         * combine.c (cant_combine_insn_p):  Reenable combinations
2599         involving hard regs unless CLASS_LIKELY_SPILLED_P.
2600
2601 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2602
2603         * c-common.c (cb_register_builtins): Handle more built-ins
2604         here rather than in gcc.c specs.
2605         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
2606         (cpp_options): Pass -O flags even when only preprocessing.
2607         * toplev.c (set_fast_math_flags): New prototype.
2608         (fast_math_flags_set_p): New.
2609         (set_no_fast_math_flags): Remove.
2610         (decode_f_option): Update.
2611         * toplev.h (set_fast_math_flags): Update.
2612         (fast_math_flags_set_p): New.
2613         (set_no_fast_math_flags): Remove.
2614 config:
2615         * c4x/c4x.c (c4x_override_options): Update.
2616
2617 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
2618
2619         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
2620         Default-define here.
2621         (builtin_define_with_value): Can now wrap the expansion in
2622         quotation marks if such is wanted.
2623         (cb_register_builtins): Update calls to builtin_define_with_value.
2624         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
2625         here.
2626         (c_common_init): Set options->stdc_0_in_system_headers.
2627         * c-lex.h: Update prototype of builtin_define_with_value.
2628         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
2629         and REGISTER_PREFIX.
2630
2631         * cppinit.c (VERS, ULP, C, X): Kill.
2632         (builtin_array): Remove entries for __VERSION__,
2633         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
2634         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
2635         a constant.
2636         (init_builtins): Kill off a bunch of now-dead code.
2637         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
2638         -fno-leading-underscore.
2639         (cpp_handle_option): Remove code to set user_label_prefix.
2640         (cpp_post_options): Likewise.
2641
2642         * cpplib.h (struct cpp_options): Remove user_label_prefix.
2643         (stdc_0_in_system_headers): New.
2644         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
2645         stdc_0_in_system_headers) too to decide the value of __STDC__.
2646
2647         * tradcpp.c (user_label_prefix): Kill.
2648         (main): Remove code handling -f(no-)leading-underscore.
2649         (initialize_builtins): Don't define __REGISTER_PREFIX__
2650         or __USER_LABEL_PREFIX__.
2651         (install_value): Wrap compound statement in dummy loop so the
2652         macro works properly in an if statement.
2653
2654
2655 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
2656
2657         * loop.h (struct loop_info): Add member has_prefetch.
2658         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
2659         (prescan_loop): Initialize has_prefetch.
2660         (struct prefetch_info): Change prefetch_in_loop and
2661         prefetch_before_loop from bit fields to ints.
2662         (emit_prefetch_instructions): Several small fixes.
2663         (check_dbra_loop): Don't reverse loop that uses prefetch.
2664
2665 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2666
2667         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
2668         * configure.in: Likewise.
2669         * fixinc/check.tpl: Likewise.
2670         * fixinc/fixinc.dgux: Likewise.
2671         * fixinc/fixinc.svr4: Likewise.
2672         * fixinc/fixinc.winnt: Likewise.
2673         * fixinc/fixincl.sh: Likewise.
2674         * fixproto: Likewise.
2675         * configure: Regenerate.
2676
2677 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2678
2679         Basic block renumbering removal:
2680         * basic_block.h (struct basic_block_def): Renamed index to sindex,
2681         added prev_bb and next_bb fields.
2682         (n_basic_blocks): Renamed to num_basic_blocks.
2683         (last_basic_block): New, index of last basic block.
2684         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
2685         traversing basic block chain.
2686         (BLOCK_NUM): index -> sindex.
2687         (create_basic_block_structure, create_basic_block): Declaration changed.
2688         (debug_num2bb): Declare.
2689         (expunge_block_nocompact): Declaration removed.
2690         (link_block, unlink_block, compact_blocks): Declare.
2691         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
2692         * cfg.c (entry_exit_blocks): Initialize new fields.
2693         (clear_edges, alloc_block, expunge_block, cached_make_edge,
2694         redirect_edge_pred, dump_flow_info, dump_edge_info,
2695         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
2696         free_aux_for_edges): Modified.
2697         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
2698         (expunge_block_nocompact): Removed.
2699         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
2700         find_unreachable_blocks, create_edge_list, print_edge_list,
2701         verify_edge_list, flow_edge_list_print, remove_fake_successors,
2702         remove_fake_edges, flow_reverse_top_sort_order_compute,
2703         flow_depth_first_order_compute, flow_preorder_transversal_compute,
2704         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
2705         flow_dfs_compute_reverse_execute): Modified.
2706         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
2707         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
2708         Modified.
2709         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2710         merge_blocks_move_predecessor_nojumps,
2711         merge_blocks_move_successor_nojumps, merge_blocks,
2712         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
2713         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
2714         * cfglayout.c (skip_insns_after_block, label_for_bb,
2715         record_effective_endpoints, scope_to_insns_finalize,
2716         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
2717         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
2718         cfg_layout_duplicate_bb): Modified.
2719         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
2720         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
2721         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
2722         flow_loops_find, flow_loop_outside_edge_p): Modified.
2723         * cfgrtl.c (create_basic_block_structure, create_basic_block,
2724         flow_delete_block, compute_bb_for_insn, split_block,
2725         try_redirect_by_replacing_jump, redirect_edge_and_branch,
2726         force_nonfallthru_and_redirect, tidy_fallthru_edge,
2727         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
2728         commit_edge_insertions, commit_edge_insertions_watch_calls,
2729         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
2730         purge_all_dead_edges): Modified.
2731         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
2732         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
2733         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
2734         Modified.
2735         * conflict.c (conflict_graph_compute): Modified.
2736         * df.c (FOR_ALL_BBS): Removed.
2737         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
2738         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
2739         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
2740         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
2741         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
2742         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
2743         * final.c (compute_alignments, final_scan_insn): Modified.
2744         * flow.c (verify_local_live_at_start, update_life_info,
2745         update_life_info_in_dirty_blocks, free_basic_block_vars,
2746         delete_noop_moves, calculate_global_regs_live,
2747         initialize_uninitialized_subregs, allocate_bb_life_data,
2748         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
2749         mark_used_reg, count_or_remove_death_notes): Modified.
2750         * function.c (thread_prologue_and_epilogue_insns): Modified.
2751         * gcse.c (struct null_pointer_info): Change typo of current_block
2752         to basic_block.
2753         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
2754         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
2755         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
2756         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
2757         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
2758         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
2759         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
2760         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
2761         pre_delete, one_pre_gcse_pass, compute_transpout,
2762         invalidate_nonnull_info, delete_null_pointer_checks_1,
2763         free_code_hoist_mem, compute_code_hoist_vbeinout,
2764         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
2765         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
2766         compute_store_table, build_store_vectors, insert_insn_start_bb,
2767         insert_store, replace_store_insn, free_store_memory, store_motion):
2768         Modified.
2769         * global.c (global_alloc, global_conflicts, mark_elimination,
2770         build_insn_chain): Modified.
2771         * graph.c (print_rtl_graph_with_bb): Modified.
2772         * haifa-sched.c (sched_init): Modified.
2773         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
2774         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
2775         if_convert): Modified.
2776         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
2777         compute_insert_delete, pre_edge_lcm, compute_available,
2778         compute_farthest, compute_nearerout, compute_rev_insert_delete,
2779         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
2780         Modified.
2781         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
2782         * loop.c (loop_dump_aux): Modified.
2783         * predict.c (combine_predictions_for_insn, estimate_probability,
2784         last_basic_block_p, process_note_prediction, process_note_predictions,
2785         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
2786         expensive_function_p, estimate_bb_frequencies,
2787         compute_function_frequency): Modified.
2788         * print-rtl.c (print_rtx): Modified.
2789         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
2790         get_exec_counts, compute_branch_probabilities, compute_checksum,
2791         branch_prob, find_spanning_tree): Modified.
2792         * recog.c (split_all_insns, peephole2_optimize): Modified.
2793         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
2794         convert_regs_1, convert_regs_2, convert_regs): Modified.
2795         * regclass.c (scan_one_insn, regclass): Modified.
2796         * regmove.c (mark_flags_life_zones, regmove_optimize,
2797         combine_stack_adjustments): Modified.
2798         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
2799         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
2800         * reorg.c (dbr_schedule): Modified.
2801         * resource.c (find_basic_block, init_resource_info): Modified.
2802         * sbitmap.c (sbitmap_intersection_of_succs,
2803         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
2804         sbitmap_union_of_preds): Modified.
2805         * sched-deps.c (init_dependency_caches): Modified.
2806         * sched-ebb.c (schedule_ebbs): Modified.
2807         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
2808         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
2809         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
2810         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
2811         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
2812         ssa_const_prop): Modified.
2813         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
2814         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
2815         * ssa.c (remove_phi_alternative, find_evaluations,
2816         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
2817         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
2818         make_regs_equivalent_over_bad_edges,
2819         make_equivalent_phi_alternatives_equival,
2820         compute_conservative_reg_partition,
2821         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
2822         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
2823         Modified.
2824
2825 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
2826
2827         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
2828
2829 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
2830
2831         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
2832         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
2833         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
2834         calling CONSTANT_POOL_ADDRESS_P.
2835         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
2836         to decide whether to define __arm__ or __thumb.
2837         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
2838         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
2839
2840 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2841
2842         * config/arc/arc.h (CPP_PREDEFINES): Remove.
2843         (CPP_SPEC): Update.
2844         (TARGET_CPU_CPP_BUILTINS): New.
2845
2846 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2847
2848         * cpphash.h (cpp_macro): Move here, and make expansion a union.
2849         * cppmacro.c (cpp_macro): Remove.
2850         (enter_macro_context, replace_args, warn_of_redefinition,
2851         _cpp_create_definition, cpp_macro_definition): Update.
2852
2853 2002-05-16  Jason Merrill  <jason@redhat.com>
2854
2855         * config/mips/mips.c (mips_output_external): Don't do sdata
2856         optimization for a variable with DECL_COMDAT set.
2857
2858 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
2859
2860         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
2861         Cleanups for accepting modifiers on pointers.
2862         Fix predicate typos.
2863         Allow long pointers as well as int pointers.
2864
2865 2002-05-15  Richard Henderson  <rth@redhat.com>
2866
2867         * varasm.c (merge_weak): Remove special case for extern and common.
2868
2869 2002-05-15  Matt Hiller  <hiller@redhat.com>
2870
2871         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
2872         XFAILing.
2873         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
2874         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
2875         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
2876         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
2877         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
2878         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
2879
2880 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
2881
2882         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
2883
2884 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
2885
2886         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
2887         ("altivec_mfvscr"): Read from VSCR.
2888
2889         Add vscr sets for the following insns: altivec_vctuxs,
2890         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
2891         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
2892         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
2893         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
2894         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
2895         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
2896         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
2897         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
2898         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
2899         altivec_vsum2sws, altivec_vsumsws.
2900
2901         * config/rs6000/rs6000.h: Add VSCR fixed register.
2902         (CALL_REALLY_USED_REGISTERS): Add vscr.
2903         (CALL_USED_REGISTERS): Same.
2904         (FIXED_REGISTERS): Same.
2905         (REG_ALLOC_ORDER): Same.
2906         (reg_class): Add VSCR_REGS.
2907         (REG_CLASS_NAMES): Same.
2908         (REG_CLASS_CONTENTS): Same.
2909         (VSCR_REGNO): New.
2910         (REGISTER_NAMES): Add vscr.
2911         (DEBUG_REGISTER_NAMES): Same.
2912         (ADDITIONAL_REGISTER_NAMES): Same.
2913         (FIRST_PSEUDO_REGISTER): Increment.
2914         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
2915
2916 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
2917
2918         * fold-const.c (fold): Fix a typo.
2919
2920 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
2921
2922         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
2923         comparison against the highest or lowest integer value before
2924         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
2925         transformation and that of an unsigned comparison against 0
2926         right after.
2927
2928 2002-05-15  Richard Henderson  <rth@redhat.com>
2929
2930         * varasm.c (merge_weak): Error for any weakening after definition.
2931         Adjust weakening after use warning to catch more cases.
2932         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
2933         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
2934
2935 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
2936
2937         * invoke.texi (-malign-double): Re-add lost warning.
2938
2939         * i386-protos.h (x86_output_mi_thunk): Declare.
2940         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
2941         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
2942
2943         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
2944         when flag_asynchronous_unwind_tables is set.
2945
2946         * flags.h (flag_reorder_functions): Declare.
2947         * function.c (prepare_function_start): Initialize frequnecy.
2948         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
2949         * Makefile.in (predict.o): Add dependency on target.h and params.h
2950         * defaults.h (HOT_TEXT_SECTION_NAME,
2951         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
2952         * predict.c (choose_function_section): New function.
2953         (estimate_bb_frequencies): Use it.
2954         * toplev.c (flag_reorder_functions): New global variable.
2955         (lang_independent_options): New.
2956         (parse_options_and_default_flags): Set.
2957         * varasm.c (assemble_start_function): Bypass functdion alignment
2958         for never executed functions.
2959         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
2960         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
2961         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
2962         Document.
2963
2964         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
2965
2966         * predict.c: Inlude profile.h
2967         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
2968         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
2969         Use the information about maximal counter in the program.
2970
2971         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
2972
2973         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
2974         probably_never_executed_bb_p): New functions.
2975         * cfgcleanup.c (outgoing_edges_match): Use them.
2976         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
2977         (maybe_hot_bb_p, probably_cold_bb_p,
2978         probably_never_executed_bb_p): New functions.
2979
2980         * function.h (function): Add new field function_frequency.
2981         * predict.c (compute_function_frequency): New function.
2982         (estimate_probability): Call it.
2983
2984 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
2985
2986         PR optimization/5172, optimization/5200
2987         * gcse.c (gcse_main): Disable store_motion.
2988
2989 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
2990
2991         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
2992         (c_common_nodes_and_builtins): Use it.
2993         (builtin_define_with_value): New function.
2994         (cb_register_builtins): Define __SIZE_TYPE__,
2995         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
2996         using builtin_define_with_value.  Use consistent notation when
2997         defining __GXX_WEAK__.
2998         (WCHAR_TYPE_SIZE): Don't redefine.
2999         (combine_strings): Don't use WCHAR_TYPE_SIZE.
3000
3001         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
3002         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
3003         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
3004         * tradcpp.c (initialize_builtins): Likewise.
3005         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
3006
3007         * c-lex.h (builtin_define_with_value): Prototype.
3008         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
3009         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
3010         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
3011
3012         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
3013         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
3014         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
3015         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
3016         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
3017         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
3018         config/sparc/sol2-bi.h, config/sparc/sparc.h:
3019         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
3020         to __SIZE_TYPE__ etc from all spec strings. When this makes
3021         extra specs empty, delete them.
3022
3023 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3024
3025         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
3026         for PA8000 or generating dwarf2 call frame information.
3027         (output_call): Remove DO_FRAME_NOTES check from return pointer
3028         optimization.
3029         (following_call): Return 0 when scheduling for PA8000 or generating
3030         dwarf2 call frame information.  Revise comment.
3031
3032 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
3033
3034 config/alpha:
3035         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
3036         and __IEEE_FP_INEXACT as appropriate.
3037         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
3038         (CPP_SPEC): Remove ieee defines.
3039         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
3040
3041 2002-05-14  Richard Henderson  <rth@redhat.com>
3042
3043         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
3044         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
3045
3046 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
3047
3048         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
3049         (CPP_SPEC): Update.
3050         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
3051         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
3052         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
3053         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
3054         (EXTRA_SPECS): Update.
3055         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
3056         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
3057         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
3058         define TARGET_OS_CPP_BUILTINS if necessary.
3059
3060 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
3061
3062         * gcc.c (cpp_options): Must pass -m* and -f* options
3063         to the front end even when only preprocessing.
3064         (cc1_options): Remove redundant -lang-c.
3065         * tradcpp.c (main): Ignore -m options.
3066 objc:
3067         * lang-specs.h: Similarly.
3068
3069 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
3070
3071         * genautomata.c (transform_3): Add code for transformation
3072         `(A,B,...)+C -> A+C,B,...'.
3073
3074 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
3075
3076         * final.c (end_final): Do not output profile_arcs constructor, when
3077         no functions are instrumented.
3078
3079 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
3080
3081         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
3082
3083 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3084
3085         * doc/install.texi: Remove special markup originally required for
3086         HTML generation with texi2html.
3087
3088 2002-05-14  Andreas Schwab  <schwab@suse.de>
3089
3090         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
3091         SELECT_SECTION.
3092         (UNIQUE_SECTION): Define to get small data correctly.
3093
3094         * varasm.c (resolve_unique_section): Add third parameter
3095         flag_function_or_data_sections and use it instead of
3096         flag_function_sections.
3097         (assemble_start_function): Pass flag_function_sections.
3098         (asm_emit_uninitialised): Pass flag_data_sections.
3099         (assemble_variable): Likewise.
3100
3101 2002-05-14  Richard Henderson  <rth@redhat.com>
3102
3103         * config/i386/i386.md: Use define_constants for unspec numbers.
3104         * config/i386/i386.c: Likewise.
3105
3106 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
3107
3108         * doc/contrib.texi: Update my entry.
3109
3110 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
3111
3112         * fixinc/inclhack.def (winidss_valist): Limit applicability.
3113         * fixinc/fixincl.x: Regenerated.
3114         * fixinc/tests/base/math.h: Update.
3115         * fixinc/tests/base/testing.h: Likewise.
3116
3117 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
3118
3119         * genattr.c (gen_attr): Don't emit a comma after the last
3120         enumerator.
3121
3122 2002-05-13  Richard Henderson  <rth@redhat.com>
3123
3124         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
3125         by non-local gotos.
3126         * recog.c (peephole2_optimize): Likewise.
3127
3128 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
3129
3130         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
3131         input to O_BINARY.
3132
3133 2002-05-13  Jeffrey A Law  (law@redhat.com)
3134
3135         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
3136         Update prototype and callers.
3137         (propagate_one_insn): Stack pointer adjustments kill MEMs on
3138         the mem_set_list which reference the stack pointer, as do
3139         calls to constant functions as they may clobber outgoing
3140         argument space.
3141
3142         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
3143
3144         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
3145         (ia32_multipass_dfa_lookahead): New function.
3146
3147 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
3148
3149         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
3150         (translate_options): Remove 'V'.
3151         (process_command): Similarly.
3152 doc:
3153         * invoke.texi: Remove documentation of 'V'.
3154
3155 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
3156
3157         * config/s390/linux.h: Revert 2002-04-22 changes.
3158
3159 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
3160
3161         * config/fr30/fr30.md: Only allow splits of immediate loads
3162         if the destination is a register.
3163
3164 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
3165
3166         * Makefile.in (c-common.o, cppinit.o): Update.
3167         * c-common.c: Include except.h.
3168         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
3169         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
3170         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
3171         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
3172         CPP_PREDEFINES): Handle here.
3173 config:
3174         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
3175         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
3176         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
3177         TARGET_OS_CPP_BUILTINS.
3178         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
3179         (CPP_SPEC, EXTRA_SPECS): Update.
3180         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
3181         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
3182         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
3183         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
3184         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
3185 doc:
3186         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
3187         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
3188
3189 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
3190
3191         * emit-rtl.c (global_rtl): Update comment.
3192         (const_double_htab, const_double_htab_hash,
3193         const_double_htab_hash, lookup_const_double): New.
3194         (const_int_htab_hash, const_int_htab_eq): Remove const
3195         qualifiers, which cause tons of warnings with RTL checking on.
3196         (gen_rtx_CONST_DOUBLE): Deleted.
3197         (const_double_from_real_value): New function - bears some
3198         resemblance to the former immed_real_const_1.
3199         (immed_double_const): Moved here from varasm.c and
3200         simplified.
3201         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
3202         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
3203         (gen_rtx): Use immed_double_const.
3204         (init_emit_once): Initialize the const_double_htab.  Use
3205         REAL_VALUE_FROM_INT where possible.  Can now use
3206         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
3207         * varasm.c (struct varasm_status): Remove x_const_double_chain.
3208         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
3209         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
3210         (init_varasm_status, mark_varasm_status): Don't touch
3211         x_const_double_chain.
3212
3213         * output.h: Delete prototype for clear_const_double_mem.
3214         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
3215         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
3216         const_double_from_real_value, not immed_real_const_1, and use
3217         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
3218         CONST_DOUBLE_ATOF.
3219         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
3220         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
3221         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
3222         (gen_rtx_REG): Second arg is unsigned.
3223
3224         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
3225         (excluded_rtx): New, return true for CONST_DOUBLE.
3226         (genmacro): Write nothing for excluded codes.
3227         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
3228         * expr.c (expand_expr): Likewise.
3229         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
3230         CONST_DOUBLE_CHAIN.
3231         * toplev.c (rest_of_compilation): Don't call
3232         clear_const_double_mem.
3233
3234         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
3235         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
3236         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
3237         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
3238         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
3239         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
3240         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
3241         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
3242
3243 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3244
3245         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
3246
3247 2002-05-12  Tom Tromey  <tromey@redhat.com>
3248
3249         * tree.h (copy_node): Don't mention TREE_PERMANENT.
3250
3251 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
3252
3253         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
3254         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
3255         * gensupport.h: Prototype new routines.
3256         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
3257         use of printf.
3258         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
3259         (next_comma_elt): Use scan_comma_elt.
3260
3261         * config/i386/i386.md: Use new attribute notation to break up
3262         long lines in define_attr forms.
3263
3264 2002-05-12  Richard Henderson  <rth@redhat.com>
3265
3266         * expr.c (compress_float_constant): New.
3267         (emit_move_insn): Use it.
3268         (float_extend_from_mem): New.
3269         (init_expr_once): Initialize it.
3270         * real.c (exact_real_truncate): New.
3271
3272         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
3273         dropped into memory; penalize for size.
3274         (RTX_COSTS): FLOAT_EXTEND is free.
3275         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
3276         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
3277
3278 2002-05-12  Richard Henderson  <rth@redhat.com>
3279
3280         * profile.h (profile_info): Add missing extern to declaration.
3281         * profile.c (profile_info): Define it.
3282
3283 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3284
3285         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
3286         used for DImode and TImode.
3287
3288 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3289
3290         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
3291         fake a newline.
3292
3293 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
3294
3295         * config/rs6000/rs6000.c (rs6000_default_long_calls,
3296         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
3297         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
3298         (rs6000_override_options): Handle -m(no-)longcall.
3299         (init_cumulative_args, output_mi_thunk): Check for both
3300         longcall and shortcall attributes on the function.
3301         (rs6000_attribute_table): Add "shortcall".
3302         (rs6000_handle_longcall_attribute): Update comment.
3303         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
3304         altivec_expand_ternop_builtin): Add default clauses to switches
3305         to silence warnings.
3306
3307         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
3308         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
3309         (TARGET_OPTIONS): Add longcall and no-longcall.
3310
3311         * config/rs6000/rs6000.md (call_nonlocal_sysv,
3312         call_value_nonlocal_sysv): Split by alternatives.  One pair
3313         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
3314         the call cookie.  The other pair accepts only LR/CTR and has
3315         no restriction.
3316
3317         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
3318         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
3319         tmake_file.
3320         * config/rs6000/rs6000-c.c: New file.
3321         * config/rs6000/t-rs6000-c-rule: New file.
3322         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
3323         Prototype rs6000_pragma_longcall.
3324
3325         * doc/extend.texi: Document shortcall attribute.
3326         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
3327
3328 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3329
3330         * reorg.c (dbr_schedule): Remove unnecessary test.
3331
3332 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
3333
3334         * i386.md (testsi to testqi spliters): New.
3335
3336         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
3337
3338         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
3339
3340         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
3341
3342         * basic-block.h: New flag EDGE_CAN_FALLTHRU
3343         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
3344         that can be made fallthru.
3345
3346         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
3347
3348         * cfglayout.c (cleanup_unconditional_jumps): New static function.
3349         (cfg_layout_initialize): Use it.
3350
3351 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3352
3353         * config/avr/avr.c (avr_mcu_types): Update supported devices.
3354         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
3355         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3356
3357 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
3358
3359         * dbxout.c: Fix formatting.
3360         * dependence.c: Likewise.
3361         * df.c: Likewise.
3362         * diagnostic.c: Likewise.
3363         * doloop.c: Likewise.
3364         * dominance.c: Likewise.
3365         * doschk.c: Likewise.
3366         * dwarf2asm.c: Likewise.
3367         * dwarf2out.c: Likewise.
3368         * dwarfout.c: Likewise.
3369
3370 2002-05-10  Richard Henderson  <rth@redhat.com>
3371
3372         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
3373         Convert integers constants as needed.  Replace "nwords" field with
3374         "sizeof_bb".
3375         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
3376         * function.h: Fix typo in comment.
3377         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
3378
3379 2002-05-10  Roger Sayle  <roger@eyesopen.com>
3380
3381         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
3382         into the equivalent (signed char)c > 0.
3383
3384 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
3385
3386         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
3387         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
3388         (struct prefetch_info): Fix spelling of member bytes_accessed.
3389         (emit_prefetch_instructions): Make dump messages more regular;
3390         restructure code to add more dump messages; use new macros for
3391         heuristics. (There are no code generation changes in any of this).
3392
3393 2002-05-10  David S. Miller  <davem@redhat.com>
3394
3395         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
3396         (struct rtx_def): Update unchanging flag comment.
3397         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
3398         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
3399         to be handled to INSN too.
3400         (dbr_schedule): Likewise.
3401         * resource.c (next_insn_no_annul): Likewise.
3402
3403         * cse.c (rtx_cost): Remove multiplication by power of 2 special
3404         casing.
3405
3406 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3407
3408         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
3409         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
3410         (possibly) work around broken /bin/sh.
3411
3412 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3413
3414         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
3415         . as N64/N32 libgcc_s.so subdirs.
3416
3417 2002-05-10  David S. Miller  <davem@redhat.com>
3418
3419         * config/sparc/sparc.md: Use define_constants for unspec numbers.
3420
3421         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
3422         more accurately.
3423         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
3424         comment.
3425         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
3426         * doc/rtl.texi: Document these macros more accurately.
3427         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
3428         JUMP_INSNs and CALL_INSNs.
3429         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
3430         or INSN_FROM_TARGET_P if the code is appropriate.
3431
3432 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3433
3434         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
3435         before using SYMBOL_REF_FLAG (addr).
3436
3437         * config/avr/avr-protos.h (avr_io_address_p): Declare.
3438         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
3439         Make non-static.  Update all callers.
3440         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
3441         New insns to clear/set/test a single bit in I/O address space.
3442
3443 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3444
3445         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
3446
3447 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
3448
3449         * Makefile.in: Update.
3450         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
3451         builtin_define_std): New.
3452         (c_common_init): Register CPP builtins callback.
3453         * c-common.h (flag_iso, flag_undef): New.
3454         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
3455         * c-lex.c: Don't include target.h.
3456         (cb_register_builtins): Move to c-common.c.
3457         (init_c_lex): Don't register hook here.
3458         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
3459         (cpp_define, cpp_assert): Remove.
3460         * gcc.c (cc1_options): Pass -undef to front end.
3461         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
3462         (TARGET_INITIALIZER): Update.
3463         * target.h (struct cpp_reader): Don't predeclare.
3464         (struct gcc_target): Remove cpp builtin hook.
3465         * tree.c (default_register_cpp_builtins): Remove.
3466 doc:
3467         * tm.texi: Update.
3468
3469 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
3470
3471         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
3472
3473 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3474
3475         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
3476         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
3477
3478 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
3479
3480         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
3481         * config/sparc/libgcc-sparc-glibc.ver: New file.
3482         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
3483         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
3484
3485 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
3486
3487         PR target/6429
3488         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
3489         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
3490         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
3491         base multilibs.
3492         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
3493         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
3494         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
3495         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
3496
3497 2002-05-09  Richard Henderson  <rth@redhat.com>
3498
3499         * config/ia64/ia64.md: Use define_constants for unspec numbers.
3500         * config/ia64/ia64.c: Likewise.
3501
3502 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
3503
3504         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
3505         (save_restore_insns): Likewise.
3506         (mips_expand_prologue, mips_expand_epilogue): Update callers.
3507         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
3508
3509 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)
3510
3511         * athlon.md, k6.md, pentium.md, ppro.md): New files.
3512         * i386.md: Move scheduling information into new files.
3513
3514         * i386.md (type attribute): Add "rotate" for rotate insns.
3515         (rotate insns): Set type to "rotate".
3516         (various attributes and function units): Treat rotate like shift.
3517         (pent_pair attribute): Only rotates by one bit position are
3518         pairable.
3519         (sbb insns): Explicitly set pent_pair attribute on a couple
3520         that were missing it.
3521
3522 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
3523
3524         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
3525         make sure that buffer starts on odd word address.
3526         (sh_va_arg): Skip odd fp registers when reading a double precision
3527         value.
3528
3529 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
3530
3531         * tree.h (preserve_data, object_permanent_p, type_precision):
3532         Remove.
3533
3534 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
3535
3536         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
3537         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
3538 doc:
3539         * cpp.texi: Update for removal of obsolete features.
3540
3541 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
3542                           Jeffrey A Law  (law@redhat.com)
3543
3544         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
3545         the DFA interface for Pentium processors.
3546         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
3547         (attr_pent_pair, ix86_pent_find_pair): Remove.
3548         (ix86_sched_reorder_pentium): Remove.
3549         (ix86_sched_reorder): Remove reordering for Pentium.
3550         * i386.md (Pentium scheduling): Rewrite using DFA description.
3551
3552 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
3553
3554         * cfganal.c (can_fallthru): Fix fast path.
3555         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
3556         with edges to the next block.
3557
3558 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
3559                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
3560
3561         * final.c (end_final): Use C trees to output data structures for profiling.
3562
3563         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
3564         (profile.o): New dependency profile.h
3565         (final.o): New dependency profile.h
3566         * profile.h: New file. New global structure profile_info.
3567         * final.h (count_edges_instrumented_now): Declare.
3568         (current_function_cfg_checksum): Declare.
3569         (function_list): New structure.
3570         (functions_head, functions_tail): New static variables.
3571         (end_final): Emits more data, removed some -ax stuff.
3572         (final): Stores function names and chcksums.
3573         * gcov-io.h (__write_gcov_string): New function.
3574         (__read_gcov_string): New function.
3575         * gcov.c (read_profile): New function.
3576         (create_program_flow_graph): Uses read_profile instead of reading
3577         da_file.
3578         (read_files): Removed da_file checking, it's done by read_profile now.
3579         * libgcc2.c (bb_function_info): New structure.
3580         (bb): New field in structure, removed some -ax stuff.
3581         (__bb_exit_func): Changed structure of da_file.
3582         * profile.c (count_edges_instrumented_now): New global variable.
3583         (current_function_cfg_checksum): New global variable.
3584         (max_counter_in_program): New global variable.
3585         (get_exec_counts): New function.
3586         (compute_checksum): New function.
3587         (instrument_edges): Sets count_edges_instrumented_now.
3588         (compute_branch_probabilities): Uses get_exec_counts instead of
3589         reading da_file.
3590         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
3591         (init_branch_prob): Removed da_file checking, done in get_exec_counts
3592         now.
3593         (end_branch_prob): Removed da_file checking, done in get_exec_counts
3594         now.
3595         * gcov.texi: Updated information about gcov file format.
3596
3597 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
3598
3599         * sbitmap.c: Fix formatting.
3600         * scan.c: Likewise.
3601         * scan-decls.c: Likewise.
3602         * sched-deps.c: Likewise.
3603         * sched-ebb.c: Likewise.
3604         * sched-rgn.c: Likewise.
3605         * sched-vis.c: Likewise.
3606         * sdbout.c: Likewise.
3607         * sibcall.c: Likewise.
3608         * simplify-rtx.c: Likewise.
3609         * ssa.c: Likewise.
3610         * ssa-ccp.c: Likewise.
3611         * ssa-dce.c: Likewise.
3612         * stmt.c: Likewise.
3613         * stor-layout.c: Likewise.
3614         * stringpool.c: Likewise.
3615
3616 2002-05-09  David S. Miller  <davem@redhat.com>
3617
3618         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
3619
3620 2002-05-07  David S. Miller  <davem@redhat.com>
3621
3622         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
3623         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
3624         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
3625         library implementation clobbers the output before the inputs
3626         are fully consumed, use stack temporary for the output.
3627
3628 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
3629
3630         * config/netbsd.h (CPP_SPEC): Remove.
3631         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
3632         * config/i386/netbsd.h (CPP_SPEC): Define.
3633         * config/ns32k/netbsd.h (CPP_SPEC): Define.
3634         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
3635         * config/sparc/netbsd.h (CPP_SPEC): Define.
3636         * config/vax/netbsd.h (CPP_SPEC): Define.
3637
3638 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
3639
3640         * read-rtl.c: Fix formatting.
3641         * real.c: Likewise.
3642         * recog.c: Likewise.
3643         * regclass.c: Likewise.
3644         * regmove.c: Likewise.
3645         * reg-stack.c: Likewise.
3646         * reload1.c: Likewise.
3647         * reload.c: Likewise.
3648         * resource.c: Likewise.
3649         * rtlanal.c: Likewise.
3650         * rtl.c: Likewise.
3651         * rtl-error.c: Likewise.
3652
3653 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3654
3655         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
3656         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
3657
3658 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
3659
3660         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
3661         use __SSE2__ macro instead.
3662         * config/i386/xmmintrin.h: Likewise.
3663
3664 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
3665
3666         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
3667         and use it in all invocations of these macros.  Clean up comments.
3668         * rtl.c (rtl_check_failed_flag): Add an argument for the name
3669         of the flag access macro whose check failed.
3670         * doc/rtl.texi (Flags): Document additional flag uses.
3671
3672 2002-05-08  Robert Spier <rspier@pobox.com>
3673             Neil Booth  <neil@daikokuya.demon.co.uk>
3674
3675         PR preprocessor/6521
3676         * cppfiles.c (handle_missing_header): Don't do anything
3677         different for <> includes.
3678 doc:
3679         * cppopts.texi: Update documentation for -MG.
3680
3681 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
3682
3683         * cpplex.c (cpp_interpret_charconst): Truncate as well as
3684         sign-extend.
3685 doc:
3686         * cpp.texi: Clarify multichar charconst valuation.
3687
3688 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
3689
3690         * doc/invoke.texi: Document -mwindiss option.
3691
3692 2002-05-08  Jason Merrill  <jason@redhat.com>
3693
3694         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
3695
3696         * dwarf2out.c (gen_type_die): Abort on broken recursion.
3697
3698         PR c++/6381
3699         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
3700         REAL_CST.
3701
3702 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
3703
3704         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
3705         little-endian multilibs to override arm/thumb multilibs.
3706         Do not build hardware floating point multilibs, nor apcs-26
3707         multilibs for the Thumb.
3708
3709 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
3710
3711         PR c/6569.
3712         * varasm.c (mark_weak): New function.
3713         (merge_weak): Use it.  Do not call declare_weak.
3714         (declare_weak): Use merge_weak.
3715
3716 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
3717
3718         * cse.c (dead_libcall_p): Update counts.
3719         (delete_trivially_dead_insns): Update call of dead_libcall_p.
3720
3721 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
3722
3723         * cfglayout.c (function_tail_eff_head): Rename to ...
3724         (function_footer): ... this one.
3725         (unlink_insn_chain): New functions.
3726         (label_for_bb): Only call block_label and emit debug message.
3727         (record_effective_endpoints): Actually unlink the headers and footers.
3728         (fixup_reorder_cahin): Re-insert the unlinked sequences.
3729         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
3730         * cfglayout.h (struct reorder_block_def): New fields footer/header;
3731         remove eff_head/eff_end.
3732         * rtl.h (set_first_insn): Declare.
3733         * emit-rtl.c (set_first_insn): New function.
3734
3735         * cfglayout.c (fixup_reorder_chain): Dump duplicated
3736         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
3737         cfg_layout_duplicate_bb): New global function.
3738         (duplicate_insn_chain): New static function.
3739         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
3740         cfg_layout_duplicate_bb): Declare.
3741         (struct reorder_block_def): Add "original" field.
3742         * emit-rtl.c (emit_copy_of_insn_after): New function.
3743         * rtl.h (emit_copy_of_insn_after): Declare.
3744
3745         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
3746         (fixup_reorder_chain): properly handle edges to exit block.
3747
3748 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3749                                Jan Hubicka  <jh@suse.cz>
3750
3751         * basic-block.h (note_prediction_to_br_prob): declare.
3752         * c-semantics.c: Inlucde predit.h
3753         (expand_stmt): predict GOTO_STMT as not taken.
3754         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
3755         (cleanup_cfg): Do not free tail_recursion_list.
3756         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
3757         (flow_delete_block): Kill predictions past end of basic block.
3758         * output.h (delete_unreachable_blocks): Declare.
3759         * predict.c (predicted_by_p, process_note_predictions,
3760         process_note_prediction, last_block_p): New function.
3761         (estimate_probability): Bypass loop on PRED_CONTINUE;
3762         do not handle noreturn heuristics; kill PRED_RETURN; add
3763         PRED_EARLY_RETURN.
3764         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
3765         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
3766         * predict.h (IS_TAKEN): New constant.
3767         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
3768         * rtl.c (NOTE_INSN_PREDICTION): New.
3769         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
3770         New macro.
3771         (insn_note): add NOTE_INSN_PREDICTION.
3772         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
3773         CFG; free tail_recursion_label_list.
3774         * stmt.c: Include predict.h;
3775         (return_prediction): New.
3776         (expand_value_return): Use it.
3777         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
3778
3779 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
3780
3781         * config/mips/mips.md: Name the unspecs with define_constant.
3782         (*HILO_delay): Rename to 'hilo_delay' (no star).
3783         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
3784         (reload_outdi, reload_outsi): Likewise.
3785
3786 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
3787
3788         * toplev.c: Fix formatting.
3789
3790 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
3791
3792         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
3793         * configure.in (ac_rtlflag_checking): New.
3794         * doc/install.texi (--enable-checking): Document RTL flag checking.
3795
3796 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3797
3798         * c-common.c (c_common_init): Set options->unsigned_wchar.
3799         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
3800         group target dependencies.
3801         (init_builtins, cpp_handle_option): Update.
3802         * cpplex.c (cpp_interpret_charconst): Update.
3803         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
3804         signed_char to unsigned_char, group target dependencies.
3805         * defaults.h (WCHAR_UNSIGNED): Remove.
3806         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
3807 config:
3808         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
3809         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
3810         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
3811         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
3812         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
3813 doc:
3814         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
3815
3816 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
3817
3818         * fixinc/inclhack.def (windiss_math1): New fix.
3819         (windiss_math2): Likewise.
3820         (windiss_valist): Likewise.
3821         * fixinc/fixincl.x: Regenerated.
3822
3823 2002-05-07  Andreas Jaeger  <aj@suse.de>
3824
3825         * genautomata.c (output_internal_min_issue_delay_func): Add
3826         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
3827         (output_internal_trans_func): Likewise.
3828
3829 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
3830
3831         * pa.c (hppa_profile_hook): Use force_reg to get the address
3832         of the profile hook into an appropriate pseudo register.
3833
3834 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
3835
3836         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
3837         (LINK_START_SPEC): Handle it.
3838         (LINK_OS_SPEC): Likewise.
3839         (CPP_SPEC): Likewise.
3840         (STARTFILE_SPEC): Likewise.
3841         (LIB_SPEC): Likewise.
3842         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
3843         all platforms.
3844         (CRTSAVRES_DEFAULT_SPEC): New macro.
3845         (LIB_WINDISS_SPEC): New macro.
3846         (CPP_OS_WINDISS_SPEC): Likewise.
3847         (STARTFILE_WINDISS_SPEC): Likewise.
3848         (ENDFILE_WINDISS_SPEC): Likewise.
3849         (LINK_START_WINDISS_SPEC): Likewise.
3850         (LINK_OS_WINDISS_SPEC): Likewise.
3851         * config/rs6000/windiss.h: New file.
3852
3853 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
3854
3855         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
3856
3857 2002-05-06  David S. Miller  <davem@redhat.com>
3858
3859         * config/sparc/sparc.md (shift insns): Do not mask off
3860         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
3861         take care of it.
3862
3863 2002-05-06  Richard Henderson  <rth@redhat.com>
3864
3865         PR c++/6212
3866         * expr.c (highest_pow2_factor_for_type): New.
3867         (expand_assignment): Use it.
3868
3869 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
3870
3871         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
3872         unspec_volatile.
3873         ("altivec_mfvscr"): Same.
3874
3875 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
3876
3877         * rtl.h (struct rtx_def): Update comments.
3878         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
3879         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
3880         RTL_FLAG_CHECK macros with list of expected RTL codes.
3881         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
3882         (rtl_check_failed_flag): New.
3883         * reload1.c (reload): Use REG macro before changing rtx to MEM.
3884         (reload_cse_noop_set_p): Check rtx code before using access macro.
3885         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
3886         before using access macro.
3887
3888 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
3889
3890         * doc/rtl.texi (Flags): Update to reflect current usage.
3891
3892 2002-05-06  Roger Sayle  <roger@eyesopen.com>
3893
3894         PR opt/3995
3895         * fold-const.c (sign_bit_p): New function.
3896         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
3897         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
3898         Reapply fold when converting (A & C) == C into (A & C) != 0.
3899         (fold_binary_op_with_conditional_arg): Fix typo in comment.
3900
3901 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3902
3903         * c-common.c (warn_multichar): New.
3904         (c_common_init): Set CPP's warn_multichar.
3905         * c-common.h (warn_multichar): New.
3906         * c-decl.c (warn_multichar): Remove.
3907         * c-lex.c (lex_charconst): Update.
3908         * c-tree.h (warn_multichar): Remove.
3909         * cppexp.c (eval_token): Sign-extend charconst value.
3910         * cppinit.c (cpp_create_reader): Set warn_multichar.
3911         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
3912         each character.  Update prototype.  Sign-extend the result.
3913         * cpplib.h: Fix conditions.
3914         (struct cpp_options): Add new warning flag.
3915         (cpp_interpret_charconst): Update prototype.
3916 doc:
3917         * cpp.texi: Update documentation.
3918
3919 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
3920
3921         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
3922         Fix typo in usage of allof instead of unit.
3923
3924 2002-05-06  Richard Henderson  <rth@redhat.com>
3925
3926         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
3927         and any jump or call for IN.
3928
3929 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
3930
3931         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
3932         -msse2.
3933         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
3934
3935 2002-05-06  Roger Sayle  <roger@eyesopen.com>
3936
3937         * fold-const.c (lshift-double): Cast the high word to an unsigned
3938         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
3939         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
3940         avoid compiler warning.  (fold): Remove redundant code from
3941         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
3942
3943 2002-05-06  Jeff Law  <law@redhat.com>
3944
3945         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
3946         * pa.c (pa_adjust_cost): Remove all true dependency cost
3947         adjustments.  Also remove support for non-DFA scheduling.
3948         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
3949         to adjust true dependency costs.  Update various comments.
3950         (7100lc, 7200, 7300 scheduling): Simplify by combining the
3951         FP ALU & MPY units into a single unit.
3952
3953 2002-05-06  Catherine Moore  <clm@redhat.com>
3954
3955         * config/v850/v850.c (compute_register_save_size): Make sure
3956         to count all of the registers that will be saved.
3957
3958 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
3959
3960         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
3961
3962 2002-05-06  David S. Miller  <davem@redhat.com>
3963
3964         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
3965         allow result to overlap input operands in memory.
3966
3967 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3968
3969 doc:
3970         * cpp.texi: Update multichar charconst docs.
3971
3972 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3973
3974         * cpplex.c (cpp_interpret_charconst): Sign-extend each
3975         character.  Don't ignore excess characters.  Treat
3976         multicharacter character constants as signed.
3977         (cpp_parse_escape): Clarify diagnostic.
3978
3979 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
3980
3981         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
3982         use add instead of shift.
3983         (ashldi3_sp64): Likewise.
3984         (ashlsi3_const1, ashldi3_const1): Remove.
3985         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
3986         * config/sparc/sparc.c (const1_operand): New.
3987
3988 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
3989
3990         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
3991
3992 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
3993
3994         PR target/6561
3995         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
3996
3997 2002-05-05  Richard Henderson  <rth@redhat.com>
3998
3999         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
4000         memory latency adjustments.
4001         (alpha_variable_issue): Remove.
4002         (alpha_use_dfa_pipeline_interface): New.
4003         (alpha_multipass_dfa_lookahead): New.
4004         * config/alpha/alpha.md: Remove define_function_unit scheduling;
4005         include new dfa scheduling.
4006         (attr type): Add none.
4007         (blockage): Use it.
4008         * config/alpha/ev4.md: New.
4009         * config/alpha/ev5.md: New.
4010         * config/alpha/ev6.md: New.
4011
4012 2002-05-05  David S. Miller  <davem@redhat.com>
4013
4014         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
4015
4016 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
4017
4018         * cse.c: Fix formatting.
4019         * emit-rtl.c: Likewise.
4020
4021 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
4022
4023         * genautomata.c (initiate_states): Add additional guard to
4024         initialize `units_array'.
4025
4026 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
4027
4028         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
4029         process_unit_to_form_the_same_automaton_unit_lists,
4030         form_the_same_automaton_unit_lists
4031         check_unit_distributions_to_automata): New prototypes and
4032         functions.
4033         (check_automata): Rename it into `check_automata_insn_issues'.
4034         (unit_decl): New fields `the_same_automaton_unit' and
4035         `the_same_automaton_message_reported_p'.
4036         (unit_decl_t): New typedef.
4037         (the_same_automaton_lists): New gloval variable.
4038         (unit_regexp, unit_set_el, units_array, units_cmp,
4039         output_get_cpu_unit_code_func): Use the typedef.
4040         (evaluate_max_reserv_cycles): Increment
4041         `description->max_insn_reserv_cycles'.
4042         (initiate_states): Don't increment `max_cycles_num'.
4043         (transform_insn_regexps): Move code around transformation of
4044         regexps from `generate'.
4045         (generate): Remove call of `transform_insn_regexps'.
4046         (expand_automata): Call `transform_insn_regexps' and
4047         `check_unit_distributions_to_automata'.  Check errors before
4048         `generate'.
4049
4050         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
4051         automaton `ultrasparc3_1'.
4052
4053 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
4054
4055         * c-common.c (c_common_init): Set up CPP arithmetic.
4056         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
4057         something reasonable for the host.
4058         (sanity_checks): Add checks.
4059         (cpp_read_main_file): Call sanity_checks() from here...
4060         (cpp_post_options): ... not here.
4061         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
4062         * cpplib.h (struct cpp_options): New member int_precision.
4063
4064 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4065
4066         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
4067
4068 2002-05-04  David S. Miller  <davem@redhat.com>
4069
4070         * config/sparc/linux.h, config/sparc/linux64.h
4071         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
4072
4073         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
4074         more RTX codes.
4075         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
4076
4077         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
4078         of SETs.
4079
4080 2002-05-05  Tim Josling  <tej@melbpc.org.au>
4081
4082         * treelang; New directory for new sample language treelang.
4083
4084 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
4085
4086         * Makefile.in (c-lex.o): Update.
4087         * c-lex.c: Include target.h.
4088         (cb_register_builtins): New.
4089         (init_c_lex): Set builtins callback.
4090         * c-lex.h (cpp_define, cpp_assert): New prototypes.
4091         * cppinit.c (init_builtins): Use callback, including for
4092         GXX_WEAK.
4093         * cpplib.h (struct cpp_callbacks): New member.
4094         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
4095         (TARGET_INITIALIZER): Update.
4096         * target.h (struct gcc_target): New hook.
4097         * tree.c (default_register_cpp_builtins): New.
4098         * tree.h (default_register_cpp_builtins): New.
4099 doc:
4100         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
4101
4102 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
4103
4104         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
4105         (cpp_post_options): Move sanity checks to...
4106         (sanity_checks): New.
4107         * cpplex.c (maybe_read_ucs): Fix prototype.
4108         (parse_string, cpp_parse_escape): Cast for %c format specifier.
4109         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
4110         if necessary.
4111
4112 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
4113
4114         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
4115         builtins.  Use V2DI patterns instead of TI for logical operations.
4116         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
4117         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
4118         (ix86_expand_builtins): Change the pattern used for movntdq.
4119         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
4120         sse2_nandv2di3): New patterns.
4121         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
4122         on operands.
4123         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
4124         (cvtdq2pd): Correct mode on operand 1.
4125         (sse2_umulsidi3): Describe without unspec.
4126         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
4127         machine modes.
4128         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
4129         (ashlv2di3): Likewise, from sse2_ashlv2di3.
4130         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
4131         ashlv4si3, ashlv2di3): Use SImode for shift count.
4132         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
4133         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
4134         New patterns.
4135         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
4136         New typedefs.
4137         (__m128i, __m128d): New macros.
4138         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
4139         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
4140         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
4141         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
4142         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
4143         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
4144         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
4145         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
4146         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
4147         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
4148         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
4149         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
4150         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
4151         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
4152         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
4153         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
4154         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
4155         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
4156         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
4157         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
4158         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
4159         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
4160         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
4161         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
4162         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
4163         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
4164         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
4165         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
4166         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
4167         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
4168         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
4169         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
4170         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
4171         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
4172         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
4173         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
4174         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
4175         functions.
4176         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
4177         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
4178
4179 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
4180
4181         * dwarf2out.c: Fix formatting.
4182         * varasm.c: Likewise.
4183
4184 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
4185
4186         PR c/6543
4187         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
4188         clobber and use result as temporary value.
4189
4190 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
4191
4192         * expr.c (force_operand): Use expand_simple_* to handle more
4193         cases.
4194
4195 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
4196
4197         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
4198         and sign-extension.
4199         (lex_charconst): Update for change in prototype of
4200         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
4201         appropriately.
4202         * cpphash.h (BITS_PER_CPPCHAR_T): New.
4203         * cppinit.c (cpp_create_reader): Initialize them for no
4204         change in semantics.
4205         (cpp_post_options): Add sanity checks.
4206         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
4207         and truncation issues.  Calculate in type cppchar_t.
4208         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
4209         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
4210         run-time dependent precision correctly.  Return whether the
4211         result is signed or not.
4212         * cpplib.c (dequote_string): Use cppchar_t; update.
4213         * cpplib.h (cppchar_signed_t): New.
4214         struct cpp_options): New precision members.
4215         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
4216         * cppexp.c (eval_token): Update.
4217
4218 2002-05-03  David S. Miller  <davem@redhat.com>
4219
4220         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
4221         * config/sparc/sparc.c (sparc_rtx_costs): New function
4222         implementing RTX_COSTS and CONST_COSTS.
4223         * config/sparc/sparc.h (CONST_COSTS): Delete.
4224         (RTX_COSTS_CASES): Define.
4225         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
4226         the work.
4227
4228         * config/sparc/sparc.md (DFA schedulers): Split out...
4229         * config/sparc/cypress.md, config/sparc/hypersparc.md,
4230         config/sparc/sparclet.md, config/sparc/supersparc.md,
4231         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
4232
4233         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
4234         checks on it, always defined for Sparc.
4235
4236         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
4237         Tweak, and add more detailed comments.
4238
4239 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
4240
4241         * Re-apply patch accidentally reverted with
4242         DFA scheduler merge: remove all rules and variables to slurp
4243         source files out of libiberty and rebuild them with HOST_CC.
4244         ($(HOST_PREFIX_1)varray.o): New rule.
4245         (genattrtab rule): Word wrap.
4246
4247 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
4248
4249         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
4250         (CPP_SUBTARGET_SPEC): Define.
4251         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
4252         cpp_subtarget specs.
4253         (CPP_SPEC): Redefine to include %(cpp_subtarget).
4254
4255 2002-05-03  David S. Miller  <davem@redhat.com>
4256
4257         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
4258         * target.h (struct gcc_target): Delete cycle_display member.
4259
4260         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
4261         (rtx_needs_barrier): Delete reference to cycle_display unspec.
4262         (ia64_sched_reorder2): Mention need for cycle display handling
4263         once such notes exist.
4264
4265 2002-05-03  Richard Henderson  <rth@redhat.com>
4266
4267         * real.c (etoasc): Strip most trailing zeros for clarity.
4268         * sched-vis.c: Include real.h.
4269         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
4270         * Makefile.in (sched-vis.o): Add real.h.
4271
4272 2002-05-03  David S. Miller  <davem@redhat.com>
4273
4274         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
4275         no longer needed.
4276
4277 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
4278
4279         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
4280         when we get an out of range literal.
4281         (altivec_expand_ternop_builtin): Same.
4282         (altivec_expand_unop_builtin): Same.
4283         (altivec_expand_builtin): Same, for dss.
4284         (altivec_expand_builtin): Use trees instead of rtl when
4285         determining literal argument validity.
4286
4287 2002-05-03  David S. Miller  <davem@redhat.com>
4288
4289         Delete cycle display scheduling hook.
4290         * config/ia64/ia64.c (ia64_cycle_display,
4291         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
4292         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
4293         and use emit_insn_before instead of ia64_emit_insn_before.
4294         * config/ia64/ia64.md (unspec usage): Delete cycle display.
4295         (cycle_display): Delete insn pattern.
4296         * config/sparc/sparc.md (unspec usage): Delete cycle display.
4297         (cycle_display): Delete insn pattern.
4298         * config/sparc/sparc.c (sparc_cycle_display,
4299         TARGET_SCHED_CYCLE_DISPLAY): Delete.
4300         * doc/md.texi (cycle_display): Don't mention.
4301         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
4302
4303 2002-05-03  Richard Henderson  <rth@redhat.com>
4304
4305         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
4306         * recog.h: Declare them.
4307
4308         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
4309         * config/sparc/sparc.md: Use store_data_bypass_p instead.
4310         * config/sparc/sparc-protos.h: Update.
4311
4312 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
4313
4314         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
4315         -D__arch64__.  Add -D_LP64.
4316         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
4317         from sparc.h.
4318         (CPP_ARCH64_SPEC): Likewise.
4319         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
4320         (NO_BUILTIN_SIZE_TYPE): Undef.
4321
4322 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
4323
4324         * genautomata.c (min_issue_delay_pass_states): Change return type
4325         in the prototype.
4326         (min_issue_delay_pass_states): Change the algorithm.
4327         (min_issue_delay): Set up min_insn_issue_delay for the state.
4328         (output_min_issue_delay_table): Interchange the nested loops and
4329         and initiate min_insn_issue_delay for states.
4330
4331 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
4332
4333         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
4334         jump is simplejump.
4335
4336 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
4337
4338         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
4339         sequence.
4340
4341 2002-05-03  Richard Henderson  <rth@redhat.com>
4342
4343         PR opt/6534
4344         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
4345         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
4346         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
4347         code before JUMP, not EARLIEST.
4348
4349 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
4350
4351         * c-format.c (check_format_info_main): Don't check for presence of
4352         parameter for * width until after operand number has been read,
4353         and only check for it if format parameters are available.
4354         Fixes PR c/6547.
4355
4356 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
4357
4358         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
4359         (LINK_SPEC): Undef before defining.
4360
4361 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
4362
4363         PR preprocessor/6489
4364         * tradcpp.c (fixup_newlines): New.
4365         (main, finclude): Use it.
4366
4367 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
4368
4369         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
4370         * config/mips/mips.c (mips_unique_section): Strip encoding from
4371         decl name.
4372
4373 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
4374
4375         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
4376         mode.
4377
4378 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4379
4380         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
4381         (Specific): Removed buildstats references.
4382         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
4383         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
4384         Accomodate Solaris versions beyond 8.
4385         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
4386         (Specific, *-*-solaris2.8): Removed, obsolete.
4387
4388 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
4389
4390         PR target/6542
4391         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
4392         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
4393         fill leaf_reg_remap with identity.
4394         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
4395
4396 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
4397
4398         * config/h8300/crti.asm: Remove trailing spaces.
4399         * config/h8300/h8300.c: Likewise.
4400         * config/h8300/lib1funcs.asm: Likewise.
4401
4402 2002-05-02  Jason Merrill  <jason@redhat.com>
4403
4404         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
4405         * c-decl.c (c_init_decl_processing): Use it.
4406         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
4407         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
4408         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
4409
4410 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
4411
4412         * regrename.c: Fix formatting.
4413         * tree.c: Likewise.
4414
4415 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
4416
4417         * i386.md (attribute memory): Handle compares properly.
4418
4419 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
4420
4421         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
4422         to none.
4423
4424 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
4425
4426         * function.c: Fix formatting.
4427
4428 2002-05-02  Jan Hubicka  <jh@suse.cz>
4429
4430         * haifa-sched.c (schedule_insn): Print table of instructions and
4431         reservations.
4432         (sched_block): Do not print ready list at verbosity level 1.
4433         * sched-vis.c (print_insn): Make global.
4434         * sched-ebb.c (ebb_print_insn): Rename from...
4435         (print_insn): ... this one.
4436         * sched-int.h (print_insn): Declare
4437
4438 2002-05-02  Richard Henderson  <rth@redhat.com>
4439
4440         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
4441         emitted by cycle_display.
4442
4443 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
4444
4445         * doc/install.texi (*-*-freebsd*): Update to latest status.
4446
4447 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
4448
4449         PR target/6540
4450         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
4451         * config/float-sparc.h: Assume 128-bit long double if
4452         __LONG_DOUBLE_128__ is defined.
4453
4454 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
4455
4456         * genattrtab.c (write_function_unit_info): Add a dummy element
4457         when num_units == 0.
4458
4459 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4460
4461         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
4462         TYPE_MODE (double_type_node) instead of DFmode.
4463
4464 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
4465
4466         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
4467         jumps post reload.
4468         * toplev.c (rest_of_compilation): Revert Richard's patch.
4469
4470 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4471
4472         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
4473
4474 2002-05-02  Catherine Moore  <clm@redhat.com>
4475
4476         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
4477
4478 2002-05-02  Kazu Hirata  <kazu@hxi.com>
4479
4480         * combine.c: Fix comment typos.
4481         * expr.c: Likewise.
4482         * genautomata.c: Likewise.
4483         * stmt.c: Likewise.
4484         * tree.h: Likewise.
4485
4486 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
4487
4488         * doc/install.texi: State GNAT version requirements.
4489
4490 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
4491
4492         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
4493         of the frame pointer or arg pointer register which strict register
4494         checking is not enabled.
4495
4496 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
4497
4498         * gcc.dg/altivec-8.c: New.
4499
4500         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
4501         PRE_INC and PRE_DEC for altivec modes.
4502
4503 2002-05-01  Bruce Korb  <bkorb@gnu.org>
4504
4505         * fixinc/check.tpl(set-writable): make sure the function exists first
4506         * fixinc/inclhack.def(alpha_assert): fix test_text
4507         * fixinc/tests/base/assert.h: add in missing result
4508
4509 2002-05-01  Jeff Law  <law@redhat.com>
4510
4511         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
4512         'T' constraint.
4513
4514 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
4515
4516         * dbxout.c (dbxout_type): Emit size information for range types,
4517         as well, but only when using GDB extensions.
4518
4519 2002-05-01  Richard Henderson  <rth@redhat.com>
4520
4521         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
4522         target-independent gnu binutils date test.
4523
4524 2002-05-01  Richard Henderson  <rth@redhat.com>
4525
4526         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
4527         info before expunging the block.
4528
4529 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
4530
4531         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
4532         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
4533         -M -or -MM is in effect.
4534
4535 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
4536
4537         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
4538         A29k configurations.
4539         * doc/install.texi: Update to match.
4540
4541 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4542
4543         PR bootstrap/6514
4544         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
4545         for duplicates. Always loop over whole list.
4546
4547 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4548
4549         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
4550
4551 2002-05-01      Joel Sherrill <joel@OARcorp.com>
4552
4553         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
4554         support routines.
4555
4556 2002-05-01      Joel Sherrill <joel@OARcorp.com>
4557
4558         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
4559
4560 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
4561
4562         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
4563         (nabs_nopower): Same.
4564         (floatdisf2): New pattern.
4565         (absdi2): Convert to define_insn_and_split.
4566         (nabsdi2): Same.
4567         (trunctfsf2): Same.
4568         (floatditf2): Same.
4569         (floatsitf2): Same.
4570         (fix_trunctfdi2): Same.
4571         (fix_trunctfsi2): Same.
4572
4573 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
4574
4575         * doc/install.texi: Update Texinfo version requirement
4576         documentation.
4577
4578 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
4579
4580         PR target/6512, PR target/5628
4581         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
4582         when memory is not aligned.
4583         (movdf_insn_v9only_vis): Likewise.
4584         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
4585         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
4586         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
4587
4588 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
4589
4590         * gcc.dg/altivec-7.c: New.
4591
4592         * config/rs6000/altivec.h: Cleanup.
4593
4594 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
4595
4596         * doc/invoke.texi (Option Summary): Add -mvrsave=.
4597         (RS/6000 and PowerPC Options): Document -mvrsave=.
4598
4599         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
4600         (rs6000_altivec_vrsave_string): Same.
4601         (rs6000_override_options): Call rs6000_parse_vrsave_option.
4602         (rs6000_parse_vrsave_option): New.
4603         (rs6000_stack_info): Only generate vrsave instructions when
4604         TARGET_ALTIVEC_VRSAVE.
4605
4606         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
4607         (rs6000_altivec_vrsave_string): Define extern.
4608         (rs6000_altivec_vrsave): Same.
4609         (TARGET_ALTIVEC_VRSAVE): New.
4610
4611 2002-04-30  Richard Henderson  <rth@redhat.com>
4612
4613         PR opt/6516
4614         * toplev.c (rest_of_compilation): Don't run cross-jump before
4615         bb-reorder.
4616
4617 2002-04-30  Tom Rix  <trix@redhat.com>
4618
4619         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
4620         check which_alternative.
4621
4622 2002-04-30  Kazu Hirata  <kazu@hxi.com>
4623
4624         * cpplex.c: Fix comment formatting.
4625         * function.c: Likewise.
4626         * integrate.c: Likewise.
4627         * regrename.c: Likewise.
4628         * sibcall.c: Likewise.
4629         * simplify-rtx.c: Likewise.
4630         * tree-inline.c: Likewise.
4631
4632 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4633
4634         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
4635         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
4636         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
4637         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
4638         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
4639         * pa/x-ada: New file.  Define ADA_CFLAGS.
4640
4641 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
4642
4643         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
4644         from MMIX_LAST_REGISTER_FILE_REGNUM.
4645         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
4646         (struct machine_function): New member highest_saved_stack_register
4647         previously static variable in mmix.c.
4648         (MACHINE_DEPENDENT_REORG): Define.
4649         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
4650         (MMIX_OUTPUT_REGNO): New.
4651         (mmix_target_asm_function_prologue): Move calculation of last used
4652         saved-stack-register into...
4653         (mmix_machine_dependent_reorg): New function.  Update to also handle
4654         !TARGET_ABI_GNU.
4655         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
4656         register names, simplify somewhat by new variable regno.
4657         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
4658         register.
4659         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
4660         emitting register names.
4661         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
4662         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
4663         Remove fixed FIXME.
4664         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
4665         Declare.
4666
4667         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
4668
4669 2002-04-30  Richard Henderson  <rth@redhat.com>
4670
4671         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
4672         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
4673         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
4674         emit_tfmode_cvt): New.
4675         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
4676         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
4677         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
4678         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
4679         * config/sparc/sparc-protos.h: Update.
4680
4681 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
4682
4683         * install.texi (Final install): Add to the list of info to include
4684         in a report of a successful bootstrap, and add link to 3.1 list.
4685
4686 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
4687
4688         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
4689         (mode): Add vector modes
4690         (i387): Kill attribute.
4691         (unit): New attribute.
4692         (length_immediate): Grok new types.
4693         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
4694         (modrm): Use "unit".
4695         (memory): Handle MMX/SSE properly.
4696         (scheduling descriptions): Kill uses of fop1.
4697         (sse, mmx, fp patterns): Set type and mode properly.
4698
4699 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)
4700
4701         * pa.c (override_options): Default to PA8000 scheduling.
4702         * doc/invoke.texi (HP-PA options): Mention newly added 7300
4703         scheduling parameter.
4704
4705         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
4706         handling of double precision multiplies.
4707
4708         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
4709         fpdiv and fpsqrt instructions.
4710         (7200 & 7300 scheduling): Fix typo in handling of
4711         store-load and store-store penalties.
4712
4713 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4714
4715         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
4716         mips.  Add two missing commas.
4717
4718 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
4719
4720         * doc/contrib.texi (Contributors): Update Paolo Carlini's
4721         and Benjamin Kosnik's entries.
4722
4723 2002-04-29  David S. Miller  <davem@redhat.com>
4724
4725         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
4726         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
4727         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
4728         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
4729
4730 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4731
4732         * combine.c (find_split_point): Use gen_int_mode.
4733
4734 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
4735
4736         Merging code from dfa-branch:
4737
4738         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
4739
4740         * genautomata.c (output_reserv_sets): Fix typo.
4741
4742         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
4743
4744         * genautomata.c (output_reserv_sets): Remove
4745         next_cycle_output_flag.
4746
4747         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
4748
4749         * sched-rgn.c (init_ready_list): Make the DFA code handle
4750         USE/CLOBBER insns in the same way as the traditional
4751         scheduler.
4752         (new_ready): Similarly..
4753
4754         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
4755
4756         * haifa-sched.c (schedule_block): Change the DFA state only after
4757         issuing insn.
4758
4759         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
4760
4761         * pa.c (hppa_use_dfa_pipeline_interface): New function.
4762         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
4763         (override_options): Add PA7300 scheduling support.
4764         (pa_adjust_cost): Update various comments.  Properly
4765         handle anti and output dependencies when using the
4766         DFA scheduler.
4767         (pa_issue_rate): Add PA7300 scheduling support.
4768         (pa_can_combine_p): Call extract_insn before calling
4769         constrain_operands (taken from mainline tree).
4770         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
4771         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
4772         descriptions using DFA descriptions.  Add PA7300
4773         scheduling support.
4774
4775         2002-03-30  David S. Miller  <davem@redhat.com>
4776
4777         Add UltraSPARC-III DFA scheduling support.
4778         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
4779         Update FP conditional move on register insn patterns to use it, as
4780         appropriate.
4781         (define_attr cpu): Add ultrasparc3.
4782         (define_attr us3load_type): New, update integer load patterns to
4783         set it, as appropriate.
4784         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
4785         (rest): Add UltraSPARC3 scheduling description.
4786         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
4787         (PROCESSOR_ULTRASPARC3): New.
4788         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
4789         ({ASM,CPP}_CPU_SPEC): Likewise.
4790         (REGISTER_MOVE_COST): Likewise.
4791         (RTX_COSTS): Likewise.
4792         * config/sparc/sparc.c (sparc_override_options,
4793         sparc_initialize_trampoline, sparc64_initialize_trampoline,
4794         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
4795         sparc_issue_rate): Likewise.
4796         * config/sparc/sol2.h: Likewise.
4797         * config/sparc/sol2-sld-64.h: Likewise.
4798         * config/sparc/linux64.h: Likewise.
4799
4800         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
4801
4802         * doc/md.texi: Add comments about usage the latency time for the
4803         different dependencies and about case when two or more conditions
4804         in different define_insn_reservations returns TRUE for an insn.
4805
4806         * doc/md.texi: Add reference for automaton based pipeline
4807         description.
4808
4809         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
4810
4811         * doc/passes.texi: Add missed information about genattrtab.
4812
4813         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
4814
4815         * genautomata.c (output_automata_list_transition_code): Check
4816         automata_list on NULL.
4817
4818         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
4819
4820         * genautomata.c (output_insn_code_cases,
4821         output_automata_list_min_issue_delay_code,
4822         output_automata_list_transition_code,
4823         output_automata_list_state_alts_code): Comment the functions.
4824
4825         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
4826
4827         * genautomata.c (automata_list_el_t): New typedef.
4828         (get_free_automata_list_el,free_automata_list_el,
4829         free_automata_list, automata_list_hash, automata_list_eq_p,
4830         initiate_automata_lists, automata_list_start, automata_list_add,
4831         automata_list_finish, finish_automata_lists,
4832         output_insn_code_cases, output_automata_list_min_issue_delay_code,
4833         output_automata_list_transition_code,
4834         output_automata_list_state_alts_code, add_automaton_state,
4835         form_important_insn_automata_lists): New functions and prototypes.
4836         (insn_reserv_decl): Add members important_automata_list and
4837         processed_p.
4838         (ainsn): Add members important_p.
4839         (automata_list_el): New structure.
4840         (first_free_automata_list_el, current_automata_list,
4841         automata_list_table): New global variables.
4842         (create_ainsns): Initiate member important_p.
4843         (output_internal_min_issue_delay_func): Generate the switch and
4844         call output_insn_code_cases.
4845         (output_internal_trans_func, output_internal_state_alts_func):
4846         Ditto.
4847         (generate): Call initiate_automata_lists.
4848         (automaton_states): New global variable.
4849         (expand_automata): Call form_important_insn_automata_lists.
4850         (write_automata): Call finish_automata_lists.
4851
4852         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
4853
4854         * genautomata.c (add_excls, add_presence_absence): Check that
4855         cpu units in the sets belong the same automaton.
4856
4857         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
4858         about that cpu units in the sets belong the same automaton.
4859
4860         * doc/md.texi: Ditto.
4861
4862         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
4863                     Nitin Gupta  <niting@noida.hcltech.com>
4864
4865         * config/sh/sh.c (sh_use_dfa_interface): New function.
4866
4867         (sh_issue_rate): New Function.
4868         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
4869         TARGET_SCHED_ISSUE_RATE: define.
4870
4871         * config/sh/sh.md: Add DFA based pipeline description for SH4.
4872
4873         (define_attr insn_class): New attribute used for DFA
4874          scheduling.
4875         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
4876         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
4877          cmpeqdi_t): Likewise.
4878
4879         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
4880          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
4881          ex_group.
4882         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
4883
4884         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
4885
4886         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
4887         break.
4888
4889         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
4890
4891         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
4892         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
4893         necessary.
4894         (output_dfa_start_func): Initiate new variable insn_codes_length,
4895         (write_automata): Output definition of the new variable.
4896
4897         2001-10-02  David S. Miller  <davem@redhat.com>
4898
4899         * haifa-sched.c (advance_one_cycle): New function.
4900         (schedule_block): Use it.
4901         (queue_to_ready): Use it, and also make sure to advance the DFA
4902         state on all stall cycles, not just those where insn_queue links
4903         are found.
4904
4905         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
4906
4907         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
4908         non-zero if the highest-priority instruction could be scheduled.
4909         (choose_ready): Remove last argument from max_issue call.
4910
4911         2001-09-28  David S. Miller  <davem@redhat.com>
4912
4913         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
4914         ultrasparc and 3 for other multi-issue sparcs.
4915
4916         2001-09-27  David S. Miller  <davem@redhat.com>
4917
4918         * config/sparc/sparc.md (cycle_display): New pattern.
4919         * config/sparc/sparc.c (sparc_cycle_display): New.
4920         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
4921
4922         2001-09-25  David S. Miller  <davem@redhat.com>
4923
4924         Convert all of Sparc scheduling to DFA
4925         * config/sparc/sparc.md: Kill all define_function_unit
4926         directives and replace with DFA equivalent.
4927         * config/sparc/sparc.c (ultrasparc_adjust_cost,
4928         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
4929         ultra_fpmode_conflict_exists, ultra_find_type,
4930         ultra_build_types_avail, ultra_flush_pipeline,
4931         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
4932         ultrasparc_variable_issue, ultrasparc_sched_init,
4933         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
4934         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
4935         ultra_cur_hist, ultra_cycles_elapsed): Kill.
4936         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
4937         ultrasparc_store_bypass_p): New.
4938         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
4939         Declare.
4940
4941         2001-09-24  David S. Miller  <davem@redhat.com>
4942
4943         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
4944         ready->vec[foo] not ready[foo].
4945
4946         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
4947
4948         * doc/md.texi: Correct examples for define_insn_reservations
4949         `mult' and `div'.
4950
4951         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
4952
4953         * genautomata.c (create_automata): Print message about creation of
4954         each automaton.
4955         (generate): Remove printing meease about creation of
4956         automata.
4957
4958         2001-09-05  David S. Miller  <davem@redhat.com>
4959
4960         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
4961         * config/sparc/linux64.h: Likewise.
4962
4963         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
4964
4965         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
4966         schedule_block, sched_init, sched_finish): Add missed calls of
4967         use_dfa_pipeline_interface.
4968
4969         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
4970         Ditto.
4971
4972         * sched-vis.c (get_visual_tbl_length): Ditto.
4973
4974         2001-08-27  Richard Henderson  <rth@redhat.com>
4975
4976         * genattr.c (main): Emit state_t even when not doing scheduling.
4977
4978         2001-08-27  Richard Henderson  <rth@redhat.com>
4979
4980         * genautomata.c (expand_automata): Always create a description.
4981
4982         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
4983
4984         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
4985         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
4986         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
4987         RTL constructions.
4988
4989         * genattr.c (main): New variable num_insn_reservations.  Increase
4990         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
4991         pipeline hazard recognizer interface.
4992
4993         * genattrtab.h: New file.
4994
4995         * genattrtab.c: Include genattrtab.h.
4996         (attr_printf, check_attr_test, make_internal_attr,
4997         make_numeric_value): Move protypes into genattrtab.h.  Define them
4998         as external.
4999         (num_dfa_decls): New global variable.
5000         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
5001         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
5002         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
5003         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
5004
5005         * genautomata.c: New file.
5006
5007         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
5008
5009         * sched-int.h: (curr_state): Add the external definition for
5010         automaton pipeline interface.
5011         (haifa_insn_data): Add comments for members blockage and units.
5012
5013         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
5014         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
5015         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
5016         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
5017         TARGET_SCHED_DFA_POST_CYCLE_INSN,
5018         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
5019         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
5020         macros.
5021         (TARGET_SCHED): Use the new macros.
5022
5023         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
5024         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
5025         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
5026         dfa_bubble): New members in gcc_target.sched.
5027
5028         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
5029         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
5030         (insn_queue): Redefine it as pointer to array.
5031         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
5032         INSN_QUEUE_SIZE.
5033         (max_insn_queue_index_macro_value): New variable.
5034         (curr_state, dfa_state_size, ready_try): New varaibles for
5035         automaton interface.
5036         (ready_element, ready_remove, max_issue): New function prototypes
5037         for automaton interface.
5038         (choose_ready): New function prototype.
5039         (insn_unit, blockage_range): Add comments.
5040         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
5041         FUNCTION_UNITS_SIZE == 0.
5042         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
5043         actual_hazard, potential_hazard): Add comments.
5044         (insn_cost): Use cost -1 as undefined value.  Remove
5045         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
5046         pipeline interface.
5047         (ready_element, ready_remove): New functions for automaton
5048         interface.
5049         (schedule_insn): Add new code for automaton pipeline interface.
5050         (queue_to_ready): Add new code for automaton pipeline interface.
5051         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
5052         (debug_ready_list): Print newline when the queue is empty.
5053         (max_issue): New function for automaton pipeline interface.
5054         (choose_ready): New function.
5055         (schedule_block): Add new code for automaton pipeline interface.
5056         Print ready list before scheduling each insn.
5057         (sched_init): Add new code for automaton pipeline interface.
5058         Initiate insn cost by -1.
5059         (sched_finish): Free the current automaton state and finalize
5060         automaton pipeline interface.
5061
5062         * sched-rgn.c: Include target.h.
5063         (init_ready_list, new_ready, debug_dependencies): Add new code for
5064         automaton pipeline interface.
5065
5066         * sched-vis.c: Include target.h.
5067         (get_visual_tbl_length): Add code for automaton interface.
5068         (target_units, print_block_visualization):  Add comments.
5069
5070         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
5071         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
5072         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
5073         (getruntime.o, genautomata.o): New entries.
5074         (genattrtab.o): Add new dependency file genattrtab.h.
5075         (genattrtab): Add new dependencies.  Link it with `libm.a'.
5076         (getruntime.o, hashtab.o): New entries for canadian cross.
5077
5078         * doc/md.texi: Description of automaton based model.
5079
5080         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
5081         Add comments.
5082         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
5083         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
5084         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
5085         TARGET_SCHED_DFA_POST_CYCLE_INSN,
5086         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
5087         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
5088         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
5089         hook descriptions.
5090         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
5091         MAX_DFA_ISSUE_RATE): New macro descriptions.
5092
5093         * doc/contrib.texi: Add dfa based scheduler contribution.
5094
5095         * doc/gcc.texi: Add more information about genattrtab.
5096
5097 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5098
5099         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
5100         adjust_address_nv call.
5101
5102 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
5103
5104         * doc/install.texi (Testing): Provide additional information, and
5105         a stronger encouragement, for running the testsuites.
5106
5107 2002-04-29  DJ Delorie  <dj@redhat.com>
5108
5109         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
5110         given in upper case.
5111
5112 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5113
5114         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
5115         Solaris 2 <widec.h> if missing.
5116         * fixinc/fixincl.x: Regenerate.
5117         * fixinc/tests/base/widec.h: New file.
5118
5119 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
5120
5121         * toplev.c (f_options): Add "profile" switch so that
5122         -fno-profile can be used to disable -p.
5123
5124 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
5125
5126         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
5127         UV2DImode.
5128         * tree.c (build_common_tree_nodes_2): Likewise.
5129         * tree.h (enum tree_index): Likewise.
5130         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
5131
5132         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
5133         entries.
5134         (init_mmx_sse_builtins): Initialize SSE2 builtins.
5135         (ix86_expand_builtin): Add support for SSE2 builtins.
5136         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
5137         (VALID_SSE_REG_MODE): Use it.
5138         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
5139         (enum ix86_builtins): Add SSE2 builtins.
5140         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
5141         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
5142         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
5143         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
5144         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
5145         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
5146         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
5147         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
5148         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
5149         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
5150         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
5151         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
5152         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
5153         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
5154         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
5155         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
5156         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
5157         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
5158         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
5159         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
5160         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
5161         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
5162         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
5163         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
5164         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
5165         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
5166         lfence_insn): New patterns.
5167         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
5168         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
5169
5170 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
5171
5172         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
5173
5174 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5175
5176         * doc/contrib.texi (Contributors): Add Paolo Carlini and
5177         Janis Johnson.
5178         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
5179         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
5180         and CPU instead of cpu.
5181
5182 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
5183
5184         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
5185         variables.
5186         (lang_independent_options): Add -fif-conversion, -fif-conversion2
5187         (rest_of_compilation): Do if conversion only when asked for.
5188         (parse_options_and_default_flags): Set new variables to 1 for -O1
5189         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
5190
5191 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
5192
5193         * i386.c (dbx64_register_map): Fix typo.
5194
5195 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
5196
5197         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
5198         real_one_half, real_bb_freq_max): New static variables.
5199         (debug_profile_bbauxs): Kill.
5200         (process_note_predictions): Kill unused variable.
5201         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
5202         volatile double.
5203         (propagate_freq): Use REAL_ARITHMETICS.
5204         (estimate_bb_frequencies): Likevise; init new static variables.
5205         * Makefile.in (predict.o): Add dependency on real.h
5206
5207 2002-04-28  David S. Miller  <davem@redhat.com>
5208
5209         PR target/6500
5210         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
5211         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
5212         several {reads,writes} instead.
5213         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
5214         Define.
5215
5216 2002-04-27  David S. Miller  <davem@redhat.com>
5217
5218         PR target/6494
5219         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
5220         of the stack bias.
5221
5222         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
5223         including signal.h and sys/ucontext.h, not needed.
5224
5225 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
5226
5227         * varasm.c (output_constant_def): Correct test for not calling
5228         ENCODE_SECTION_INFO for INTEGER_CST.
5229
5230 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
5231
5232         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
5233         keep most cases as function eval_token.
5234         (eval_token): New function.
5235         (_cpp_parse_expr): Read token here for improved diagnostics.
5236         Don't use op_as_text.  Detect bad ':' here.
5237         (reduce): Don't detect bad ':' here.
5238         (op_as_text): Remove.
5239         * cpphash.h (_cpp_test_assertion): Change prototype.
5240         * cpplib.c (_cpp_test_assertion): Change prototype.
5241
5242 2002-04-28  Richard Henderson  <rth@redhat.com>
5243
5244         PR c/5154
5245         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
5246         (ggc_mark_rtx_children): New.
5247
5248 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
5249
5250         PR target/6496
5251         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
5252         after call peepholes for UltraSPARC.
5253         (call + jump 64-bit peepholes): Remove.
5254
5255 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5256
5257         PR c/6497
5258         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
5259         result as temporary value.
5260
5261 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
5262
5263         PR c++/6396
5264         * toplev.c (rest_of_compilation): Only run regrename and copy
5265         propagation if optimizing.
5266
5267 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
5268
5269         PR optimization/6475
5270         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
5271         register of REGNO_DECL (i).
5272         * Makefile.in (reload1.o): Add $(TREE_H).
5273
5274 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
5275
5276         * cppexp.c (lex): Update to use state.skip_eval.
5277         (struct op): Remove prio and flags members.
5278         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
5279         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
5280         (LEFT_ASSOC): New macro.
5281         (optab): New table of operator priorities and flags.
5282         (SHIFT): Update.
5283         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
5284         malloc-ed parser stack.
5285         (reduce): New; reduce the operator stack.
5286         (_cpp_expand_op_stack): Expand the operator stack as necessary.
5287         * cpphash.h (struct op): Predeclare.
5288         (struct cpp_reader): New members op_stack, op_limit.
5289         (struct lexer_state): New member skip_eval.
5290         (_cpp_parse_expr): Update.
5291         (_cpp_expand_op_stack): New.
5292         * cpplib.c (do_if): Update.
5293         * cppinit.c (cpp_create_reader): Create op stack.
5294         (cpp_destroy): And destroy it.
5295         * cpplib.h (CPP_LAST_CPP_OP): Correct.
5296         (TTYPE_TABLE): Correct.
5297
5298 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5299
5300         PR c/6343
5301         * c-decl.c (duplicate_decls): Call merge_weak.
5302         * c-pragma.c (apply_pragma_weak): Warn about misuse.
5303         * output.h (merge_weak): Prototype merge_weak.
5304         * varasm.c (merge_weak): New function.
5305         (declare_weak): Make sure we don't give an error on VAR_DECLs.
5306         Mark RTL with SYMBOL_REF_WEAK.
5307
5308 2002-04-27  Kurt Garloff <garloff@suse.de>
5309
5310         * tree-inline.c (inlinable_function_p): Improve heuristics
5311         by using a smoother function to cut down allowable inlinable size.
5312         * param.def: Add parameters max-inline-insns-single,
5313         max-inline-slope, min-inline-insns that determine the exact
5314         shape of the above function.
5315         * param.h: Likewise.
5316
5317 2002-04-26  Richard Henderson  <rth@redhat.com>
5318
5319         * c-parse.in (malloced_yyss, malloced_yyvs): New.
5320         (yyoverflow): Re-add.  Set them.
5321         (free_parser_stacks): New.
5322         * c-common.h: Declare it.
5323         * c-lex.c (c_common_parse_file): Call it.
5324
5325 2002-04-26  Richard Henderson  <rth@redhat.com>
5326
5327         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
5328         for fallthru search.
5329
5330 2002-04-26  Eric Christopher  <echristo@redhat.com>
5331
5332         PR optimization/3700
5333         * config/mips/mips.c (mips_issue_rate): Define.  New function.
5334         (TARGET_SCHED_ISSUE_RATE): Use.
5335
5336 2002-04-25  David S. Miller  <davem@redhat.com>
5337
5338         PR target/6422
5339         * reorg.c (optimize_skip): Do not allow exception causing
5340         instructions to be considered for delay slots.
5341         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
5342         (relax_delay_slots): Do not try to consider exception causing
5343         instructions as redundant.
5344
5345 2002-04-26  Richard Henderson  <rth@redhat.com>
5346
5347         PR c/5225
5348         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
5349
5350 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
5351
5352         PR bootstrap/6445
5353         * config/i386/i386.md (untyped_call): Return the value in a float
5354         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
5355         TARGET_80387.
5356
5357 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
5358
5359         * tree.c (tree_int_cst_lt): Compare constants whose types differ
5360         in unsigned-ness correctly.
5361
5362 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5363
5364         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
5365         portable runtime model.
5366
5367 2002-04-26  Richard Henderson  <rth@redhat.com>
5368
5369         * c-parse.in (yyoverflow): Revert.
5370
5371 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
5372             Richard Henderson  <rth@redhat.com>
5373
5374         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
5375         result as temporary value.
5376
5377 2002-04-26  Richard Henderson  <rth@redhat.com>
5378
5379         PR c/3581
5380         * c-common.c (fix_string_type): Split out of ...
5381         (combine_strings): ... here.  Take a varray, not a tree list.
5382         (c_expand_builtin_printf): Use fix_string_type.
5383         * c-common.h: Update decls.
5384         * c-parse.in (string): Remove.  Update all uses to use STRING
5385         instead, and not call combine_strings.
5386         (yylexstring): New.
5387         (_yylex): Use it.
5388         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
5389         (build_asm_stmt): Likewise.
5390         * objc/objc-act.c (my_build_string): Use fix_string_type.
5391         (build_objc_string_object): Build varray for combine_strings.
5392
5393 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
5394
5395         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
5396         x86-64.
5397
5398 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
5399
5400         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
5401         (HAVE_NO_R_OPERAND): Remove.
5402         (HAVE_VALUE): Remove.
5403         (op_to_prio): Update.
5404         (UNARY): Don't alter flags.
5405         (_cpp_parse_expr): want_value used to indicate whether
5406         a number or unary operator is expected next.  Distinguish
5407         unary and binary +/-.
5408         (op_as_text): Update for unary operators.
5409
5410 2002-04-25  Richard Henderson  <rth@redhat.com>
5411
5412         PR c/2161
5413         * c-parse.in (yyoverflow): New.
5414
5415 2002-04-25  Richard Henderson  <rth@redhat.com>
5416
5417         PR c/2098
5418         * c-common.c (shorten_compare): Simplfy conditions leading to
5419         the generation of a warning.
5420
5421 2002-04-25  Richard Henderson  <rth@redhat.com>
5422
5423         PR c/2035
5424         * expmed.c (extract_bit_field): Fall through to generic code rather
5425         than aborting on subreg special case.
5426
5427 2002-04-25  David S. Miller  <davem@redhat.com>
5428
5429         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
5430         for DECL being NULL.
5431
5432 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
5433
5434         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
5435
5436 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
5437
5438         * c-decl.c (grokdeclarator): Remove outdated ??? note
5439         on invalid declaration of flexible array members.
5440
5441 2002-04-25  Richard Henderson  <rth@redhat.com>
5442
5443         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
5444
5445 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
5446
5447         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
5448         needed by the compiler, even if they are used as global regs.
5449
5450 2002-04-25  Matt Hiller  <hiller@redhat.com>
5451
5452         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
5453         functions.
5454         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
5455         of the corresponding functions.
5456         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
5457         New prototypes.
5458
5459 2002-04-25  Matt Hiller  <hiller@redhat.com>
5460
5461         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
5462
5463         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
5464         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
5465         registers, adjust comment accordingly.
5466         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
5467         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
5468         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
5469         for coprocessor registers.
5470         (ADDITIONAL_REGISTER_NAMES): Include
5471         ALL_COP_ADDITIONAL_REGISTER_NAMES.
5472
5473         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
5474         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
5475         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
5476         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
5477         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
5478
5479         (mips_char_to_class): Adjust comment to include coprocessor
5480         constraint letters.
5481
5482         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
5483         New functions.
5484         (mips_reg_names, mips_regno_to_class): Include coprocessor
5485         information.
5486         (mips_sw_reg_names): Ditto, make non-static.
5487         (mips_move_1word): Handle moves to and from coprocessor registers.
5488         (mips_move_2words): Handle moves to and from coprocessor
5489         registers.
5490         (mips_class_max_nregs, mips_register_move_cost): Handle
5491         coprocessor register classes.
5492         (override_options): Initialize mips_char_to_class and
5493         mips_hard_regno_mode_ok properly for coprocessor registers.
5494
5495         * config/mips/mips.md (movdi_internal, movdi_internal2,
5496         movsi_internal1, movsi_internal2): Add constraint-sets for
5497         coprocessor registers.
5498         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
5499         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
5500         isn't mips.
5501         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
5502         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
5503         isn't mips.
5504         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
5505         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
5506         isn't mips.
5507         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
5508         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
5509         isn't mips.
5510
5511         * doc/tm.texi: Document feature.
5512
5513 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
5514
5515         * integrate.c (function_attribute_inlinable_p): Simplify.
5516         Check the table pointer is not NULL.
5517
5518 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
5519
5520         * doc/c-tree.texi: Fix typo in introduction.
5521
5522 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
5523
5524         * c-common.h (c_common_parse_file): Update.
5525         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
5526         * c-lex.c (YYDEBUG): Get from c-lex.h.
5527         (c_common_parse_file): Update.
5528         * c-lex.h (YYDEBUG, yydebug): New.
5529         * c-parse.in (YYDEBUG): Get from c-lex.h.
5530         (c_set_yydebug): Remove.
5531         * c-tree.h (c_set_yydebug): Remove.
5532         * langhooks-def.h (lhd_do_nothing_i): New.
5533         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
5534         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
5535         * langhooks.c  (lhd_do_nothing_i): New.
5536         (lhd_set_yydebug): Remove.
5537         * langhooks.h (struct lang_hooks): Update.
5538         * toplev.c (set_yydebug): New.
5539         (compile_file): Update call to parse_file hook.
5540         (decode_d_option): Update.
5541 objc:
5542         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
5543
5544 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
5545
5546         * loop.c (load_mems): Don't change the interface of called functions.
5547
5548         * calls.c (expand_call): Take current_function_pretend_args_size
5549         into account when setting argblock for sibcalls.
5550
5551 2002-04-24  Matt Hiller  <hiller@redhat.com>
5552
5553         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
5554         * c-lex.c: Ditto.
5555
5556         * cpplex.c (skip_line_comment): Process comment one multibyte
5557         character at a time rather than one char at a time, if
5558         appropriate.
5559         (parse_string): Process string one multibyte character at a time
5560         rather than one char at a time, if appropriate.
5561         * c-lex.c (lex_string): Lex and copy multibyte strings
5562         appropriately.
5563         * cpplib.h (cppchar_t): Change to unsigned.
5564
5565 2002-04-24  Richard Henderson  <rth@redhat.com>
5566
5567         PR c/3467
5568         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
5569         for c99.
5570
5571 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
5572
5573         * sh.c (sh_va_arg): If argument was passed by reference,
5574         dereference the pointer.
5575
5576         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
5577
5578         * sh.md (divsi3_i4_media): Use match_operand for input values
5579         rather than hard registers.
5580         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
5581         unnecessarily through hard registers.  Keep copies of pseudo
5582         registers outside of the libcall sequence.
5583
5584         * sh.md (casesi_shift_media): Add modes.
5585
5586         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
5587         values in memory.
5588
5589 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
5590
5591         * attribs.c (c_common_attribute_table): Move table and handlers
5592         to c-common.c.
5593         (format_attribute_table, lang_attribute_table,
5594         lang_attribute_common): Remove.
5595         (init_attributes): Replace NULL pointers with pointers to the
5596         empty table.
5597         (handle_packed_attribute, handle_nocommon_attribute,
5598         handle_common_attribute, handle_noreturn_attribute,
5599         handle_noinline_attribute, handle_always_inline_attribute,
5600         handle_used_attribute, handle_unused_attribute,
5601         handle_const_attribute, handle_transparent_union_attribute,
5602         handle_constructor_attribute, handle_destructor_attribute,
5603         handle_mode_attribute, handle_section_attribute,
5604         handle_aligned_attribute, handle_weak_attribute,
5605         handle_alias_attribute, handle_visibility_attribute,
5606         handle_no_instrument_function_attribute, handle_malloc_attribute,
5607         handle_no_limit_stack_attribute, handle_pure_attribute,
5608         handle_deprecated_attribute, handle_vector_size_attribute,
5609         vector_size_helper): Move to c-common.c.
5610         * c-common.c (c_common_attribute_table,
5611         handle_packed_attribute, handle_nocommon_attribute,
5612         handle_common_attribute, handle_noreturn_attribute,
5613         handle_noinline_attribute, handle_always_inline_attribute,
5614         handle_used_attribute, handle_unused_attribute,
5615         handle_const_attribute, handle_transparent_union_attribute,
5616         handle_constructor_attribute, handle_destructor_attribute,
5617         handle_mode_attribute, handle_section_attribute,
5618         handle_aligned_attribute, handle_weak_attribute,
5619         handle_alias_attribute, handle_visibility_attribute,
5620         handle_no_instrument_function_attribute, handle_malloc_attribute,
5621         handle_no_limit_stack_attribute, handle_pure_attribute,
5622         handle_deprecated_attribute, handle_vector_size_attribute,
5623         vector_size_helper): Move from attribs.c.
5624         * c-common.h (c_common_attribute_table,
5625         c_common_format_attribute_table): New.
5626         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
5627         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
5628         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
5629         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
5630         (LANG_HOOKS_INITIALIZER): Update.
5631         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
5632         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
5633         * target.h: Update comment.
5634         * tree.c (default_target_attribute_table): Remove.
5635         * tree.h (default_target_attribute_table, format_attribute_table,
5636         lang_attribute_table, lang_attribute_common): Remove.
5637 objc:
5638         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
5639         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
5640
5641 2002-04-24  Jason Merrill  <jason@redhat.com>
5642
5643         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
5644         * dwarf2out.c (dwarf_attr_name): Support it.
5645         (gen_array_type_die): Emit it.
5646         (lookup_type_die): No special handling for VECTOR_TYPE.
5647         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
5648
5649 2002-04-24  Richard Henderson  <rth@redhat.com>
5650
5651         * config/mips/mips.md (movdi_usd): Renumber.
5652
5653 2002-04-24  David S. Miller  <davem@redhat.com>
5654
5655         PR target/6420
5656         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
5657         32-bit Sparc and current_function_returns_struct is true.
5658
5659 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
5660
5661         * loop.c (canonicalize_condition): Use gen_int_mode.
5662
5663 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
5664
5665         * config/rs6000/altivec.h: Cleanup file.  Add non individual
5666         variants.
5667         (vec_vaddubm): New.
5668         (vec_vadduhm): New.
5669         (vec_vadduwm): New.
5670         (vec_vaddfp): New.
5671         (vec_vaddcuw): New.
5672         (vec_vaddubs): New.
5673         (vec_vaddsbs): New.
5674         (vec_vadduhs): New.
5675         (vec_vadduws): New.
5676         (vec_vaddsws): New.
5677         (vec_vand): New.
5678         (vec_vandc): New.
5679         (vec_vavgub): New.
5680         (vec_vavgsb): New.
5681         (vec_vavguh): New.
5682         (vec_vavgsh): New.
5683         (vec_vavguw): New.
5684         (vec_vavgsw): New.
5685         (vec_vrfip): New.
5686         (vec_vcmpbfp): New.
5687         (vec_vcmpequb): New.
5688         (vec_vcmpequh): New.
5689         (vec_vcmpequw): New.
5690         (vec_vcmpeqfp): New.
5691         (vec_vcmpgefp): New.
5692         (vec_vcmpgtub): New.
5693         (vec_vcmpgtsb): New.
5694         (vec_vcmpgtuh): New.
5695         (vec_vcmpgtsh): New.
5696         (vec_vcmpgtuw): New.
5697         (vec_vcmpgtsw): New.
5698         (vec_vcmpgtfp): New.
5699         (vec_vcmpgefp): New.
5700         (vec_vcfux): New.
5701         (vec_vcfsx): New.
5702         (vec_vctsxs): New.
5703         (vec_vctuxs): New.
5704         (vec_vexptefp): New.
5705         (vec_vrfim): New.
5706         (vec_lvx): New.
5707         (vec_lvebx): New.
5708         (vec_lvehx): New.
5709         (vec_lde): Add vector float variant.
5710         (vec_lvewx): New.
5711         (vec_lvxl): New.
5712         (vec_vlogefp): New.
5713         (vec_vmaddfp): New.
5714         (vec_vmhaddshs): New.
5715         (vec_vmaxub): New.
5716         (vec_vmaxsb): New.
5717         (vec_vmaxuh): New.
5718         (vec_vmaxsh): New.
5719         (vec_vmaxuw): New.
5720         (vec_vmaxsw): New.
5721         (vec_vmaxsw): New.
5722         (vec_vmaxfp): New.
5723         (vec_vmrghb): New.
5724         (vec_vmrghh): New.
5725         (vec_vmrghw): New.
5726         (vec_vmrglb): New.
5727         (vec_vmrglh): New.
5728         (vec_vmrglw): New.
5729         (vec_vminub): New.
5730         (vec_vminsb): New.
5731         (vec_vminuh): New.
5732         (vec_vminsh): New.
5733         (vec_vminuw): New.
5734         (vec_vminsw): New.
5735         (vec_vminfp): New.
5736         (vec_vmladduhm): New.
5737         (vec_vmhraddshs): New.
5738         (vec_msumubm): New.
5739         (vec_vmsummbm): New.
5740         (vec_vmsumuhm): New.
5741         (vec_vmsumshm): New.
5742         (vec_vmsumuhs): New.
5743         (vec_vmsumshs): New.
5744         (vec_vmuleub): New.
5745         (vec_vmulesb): New.
5746         (vec_vmuleuh): New.
5747         (vec_vmulesh): New.
5748         (vec_vmuloub): New.
5749         (vec_mulosb): New.
5750         (vec_vmulouh): New.
5751         (vec_vmulosh): New.
5752         (vec_vnmsubfp): New.
5753         (vec_vnor): New.
5754         (vec_vor): New.
5755         (vec_vpkuhum): New.
5756         (vec_vpkuwum): New.
5757         (vec_vpkpx): New.
5758         (vec_vpkuhus): New.
5759         (vec_vpkshss): New.
5760         (vec_vpkuwus): New.
5761         (vec_vpkswss): New.
5762         (vec_vpkshus): New.
5763         (vec_vpkswus): New.
5764         (vec_vperm): New.
5765         (vec_vrefp): New.
5766         (vec_vrlb): New.
5767         (vec_vrlh): New.
5768         (vec_vrlw): New.
5769         (vec_vrfin): New.
5770         (vec_vrsqrtefp): New.
5771         (vec_vsel): New.
5772         (vec_vslb): New.
5773         (vec_vslh): New.
5774         (vec_vslw): New.
5775         (vec_vsldoi): New.
5776         (vec_vsl): New.
5777         (vec_vslo): New.
5778         (vec_vspltb): New.
5779         (vec_vsplth): New.
5780         (vec_vspltw): New.
5781         (vec_vspltisb): New.
5782         (vec_vspltish): New.
5783         (vec_vspltisw): New.
5784         (vec_vsrb): New.
5785         (vec_vsrh): New.
5786         (vec_vsrw): New.
5787         (vec_vsrab): New.
5788         (vec_vsrah): New.
5789         (vec_vsraw): New.
5790         (vec_vsr): New.
5791         (vec_vsro): New.
5792         (vec_stvx): New.
5793         (vec_stvebx): New.
5794         (vec_stvehx): New.
5795         (vec_stvewx): New.
5796         (vec_stvxl): New.
5797         (vec_vsububm): New.
5798         (vec_vsubuhm): New.
5799         (vec_vsubuwm): New.
5800         (vec_vsubfp): New.
5801         (vec_vsubcuw): New.
5802         (vec_vsububs): New.
5803         (vec_vsubsbs): New.
5804         (vec_vsubuhs): New.
5805         (vec_vsubshs): New.
5806         (vec_vsubuws): New.
5807         (vec_vsubsws): New.
5808         (vec_vsum4ubs): New.
5809         (vec_vsum4sbs): New.
5810         (vec_vsum4shs): New.
5811         (vec_vsum2sws): New.
5812         (vec_vsumsws): New.
5813         (vec_vrfiz): New.
5814         (vec_vupkhsb): New.
5815         (vec_vupkhpx): New.
5816         (vec_vupkhsh): New.
5817         (vec_vupklsb): New.
5818         (vec_vupklpx): New.
5819         (vec_vupklsh): New.
5820         (vec_vxor): New.
5821
5822 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
5823
5824         PR c/5430
5825         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
5826         added literals from substracted literals.
5827         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
5828         (fold) [associate]: Preserve MINUS_EXPR if needed.
5829
5830 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
5831
5832         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
5833         are obsoleted.
5834
5835 2002-04-23  Tom Tromey  <tromey@redhat.com>
5836
5837         * gcc.c: Added --resource.  For PR java/6314.
5838
5839 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
5840
5841         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
5842         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
5843         these libraries.
5844
5845 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
5846
5847         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
5848
5849 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
5850
5851         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
5852         workaround.
5853         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
5854         (ix86_expand_clrstr): Fix typo.
5855         * loop.c (gen_load_of_final_value): New.
5856         (loop_givs_rescan, strength_reduce, check_dbra_loop):
5857         Use it.
5858
5859 2002-04-23  Roger Sayle  <roger@eyesopen.com>
5860
5861         * builtins.c (builtin_memset_gen_str): New function.
5862         (expand_builtin_memset): Optimize the case of constant length, but
5863         unknown value.
5864
5865 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
5866
5867         * config/rs6000/altivec.h (vec_step): Remove extraneous
5868         parentheses.
5869         (vec_ctu): Cast return.
5870
5871 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
5872
5873         PR target/6413
5874         * function.h: (struct function): Add profile_label_no field.
5875         (current_function_profile_label_no): Define.
5876         * function.c: (profile_label_no): New static var.
5877         (expand_function_start): Increment it, and copy to
5878         current_function_profile_label_no.
5879         * output.h (profile_label_no): Delete.
5880         * final.c (profile_label_no): Delete.
5881         (profile_function): Use current_function_profile_label_no.
5882         (final_end_function): Don't increment profile_label_no here.
5883         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
5884         profile_label_no with current_function_profile_label_no.
5885         * config/pa/pa.c (current_function_number): Delete.
5886         (pa_output_function_prologue): Don't output profile label here.
5887         (hppa_profile_hook): Use label_no param rather than
5888         current_function_number.
5889         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
5890         * config/pa/pa.h: .. here.
5891         (FUNCTION_PROFILER): Output profile label here.
5892
5893 2002-04-22  Eric Christopher  <echristo@redhat.com>
5894
5895         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
5896         patch of 2002-04-09 due to binutils issues.
5897         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
5898
5899 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
5900
5901         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
5902         constraint to 'o' for m=r and r=m alternatives.
5903         ("*movv8hi_internal1"): Same.
5904         ("*movv16qi_internal1"): Same.
5905         ("*movv4sf_internal1"): Same.
5906
5907 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
5908
5909         * rtl.h (RTX_FLAG): New macro.
5910         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
5911         * final.c (alter_subreg): Use macro to access rtx flag.
5912         * integrate.c (copy_rtx_and_substitute): Use new access macro.
5913         * print-rtl.c (print_rtx): Use new access macro.
5914
5915         * cse.c (insert): Check rtx code before accessing flag.
5916
5917         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
5918         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
5919         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
5920         convert_const_symbol_ref, make_canonical, make_alternative_compare,
5921         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
5922         simplify_test_exp, optimize_attrs, simplify_by_exploding,
5923         find_and_mark_used_attributes, unmark_used_attributes,
5924         add_values_to_cover, simplify_with_current_value,
5925         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
5926         copy_rtx_unchanging, main): Use new access macros.
5927
5928 2002-04-22  Tom Rix  <trix@redhat.com>
5929
5930         * expmed.c (init_expmed): Generate shifted constant once.
5931
5932 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
5933
5934         * c-lex.c (lex_charconst): Call convert to get constant in
5935         proper type; don't just smash the type field.
5936         Fixes PR c/6300.
5937
5938         * config.gcc: Add list of obsolete configurations.  Disallow
5939         building these without --enable-obsolete.
5940         * doc/install.texi: Document --enable-obsolete and obsoletion
5941         policy.  Mention obsoletion of individual targets in
5942         appropriate places.
5943
5944 2002-04-22  Richard Henderson  <rth@redhat.com>
5945
5946         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
5947
5948 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
5949
5950         PR f/6138.
5951         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
5952         (walk_fixup_memory_subreg): Likewise.
5953         (fixup_var_refs_insn): Adjust accordingly.
5954         (fixup_var_refs_1): Likewise.
5955
5956 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
5957
5958         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
5959         LIBPATH_ARCH64_SPEC): Define.
5960         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
5961         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
5962         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
5963         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
5964
5965 2002-04-22      Joel Sherrill <joel@OARcorp.com>
5966
5967         * gthr-rtems.h: Correct prototypes to remove warnings.
5968
5969 2002-04-22  Richard Henderson  <rth@redhat.com>
5970
5971         PR c/6344
5972         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
5973
5974         * gcse.c (free_insn_expr_list_list): New.
5975         (clear_modify_mem_tables): Use it.  Fix bit set usage.
5976         (canon_list_insert): Use EXPR_LISTs for expressions.
5977         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
5978
5979 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
5980
5981         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
5982         file change and include code to _cpp_pop_buffer.
5983         * cpphash.h (struct pending_option): Predeclare.
5984         (struct cpp_reader): New member next_include_file.
5985         (_cpp_pop_file_buffer): Update.
5986         (_cpp_push_next_buffer): Update, rename.
5987         * cppinit.c (cpp_destroy): Free include chain and pending here.
5988         (cpp_finish_options): Simplify.
5989         (_cpp_push_next_buffer): Rename and clean up.
5990         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
5991         Clarify.
5992         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
5993
5994 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
5995
5996         * config/rs6000/altivec.h (vec_xor): Add variant for both args
5997         being vector signed int.
5998         (vec_andc): Same.
5999         (vec_xor): Add variant for both args being vector signed char.
6000         Remove redundant variant.
6001         (vec_andc): Same.
6002
6003 2002-04-21  David S. Miller  <davem@redhat.com>
6004
6005         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
6006         compare mode in output RTL.
6007
6008 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
6009
6010         * config/rs6000/rs6000.c (rs6000_override_options): Correct
6011         style and formatting of previous patch.
6012
6013 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
6014
6015         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
6016         flag_pic for ABI_AIX.
6017
6018 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
6019
6020         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
6021         * cppfiles.c (read_include_file): Similarly.
6022         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
6023         uxstrdup ustrchr, ufputs): Similarly.
6024         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
6025         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
6026         cpp_ideq, parse_identifier, parse_number): Similarly.
6027         * cpplib.c (struct directive, dequote_string, D, run_directive,
6028         cpp_push_buffer): Similarly.
6029         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
6030         _cpp_create_definition, check_trad_stringification,
6031         cpp_macro_definition): Similarly.
6032
6033 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
6034
6035         * cppmacro.c (funlike_invocation_p): Don't step back
6036         over CPP_EOF.
6037
6038 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
6039
6040         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
6041         labelno.
6042
6043 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
6044
6045         * doc/invoke.texi: Remove Chill references.
6046         * doc/gcc.texi: Update last modified date.
6047
6048 2002-04-20  Kazu Hirata  <kazu@hxi.com>
6049
6050         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
6051         push and pop.  Replace add.l with add.w.
6052
6053 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
6054
6055         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
6056         multiply instructions for H8/300H case.
6057
6058 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
6059
6060         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
6061         Bum three instructions from each routine.
6062
6063 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
6064
6065         * Makefile.in: Update.
6066         * decl.c (push_c_function_context, pop_c_function_context,
6067         mark_c_function_context): Rename for consistency.
6068         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
6069         * c-tree.h (push_c_function_context, pop_c_function_context,
6070         mark_c_function_context): Rename for consistency.
6071         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6072         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
6073         * function.c (init_lang_status, save_lang_status,
6074         restore_lang_status, mark_lang_status, free_lang_status):
6075         Move to langhooks.h.
6076         (push_function_context_to, pop_function_context_from,
6077         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
6078         Update.
6079         * function.h (init_lang_status, save_lang_status,
6080         restore_lang_status, mark_lang_status, free_lang_status):
6081         Move to langhooks.h.
6082         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
6083         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
6084         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
6085         LANG_HOOKS_FUNCTION_INITIALIZER): New.
6086         (LANG_HOOKS_INITIALIZER): Update.
6087         (lhd_do_nothing_f): New.
6088         * langhooks.h (struct lang_hooks_for_functions): New.
6089         (struct lang_hooks): New hooks.
6090         * langhooks.c (lhd_do_nothing_f): New.
6091 objc:
6092         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6093         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
6094
6095 2002-04-19  David S. Miller  <davem@redhat.com>
6096
6097         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
6098         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
6099
6100 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
6101
6102         PR optimization/3756
6103         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
6104         x = ((int) y < 0) ? cst1 : cst2.
6105
6106 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
6107
6108         PR c/6358
6109         * function.c: Reapply patch for c/6358.
6110         (expand_function_end): Copy decl_rtl's mode, not
6111         current_function_return_rtx mode.
6112
6113 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
6114
6115         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
6116         targets.
6117
6118 2002-04-19  Tom Tromey  <tromey@redhat.com>
6119
6120         * doc/install.texi (Specific): Update status of Solaris 2.8.
6121         For PR libgcj/6158.
6122
6123 2002-04-19  Andreas Schwab  <schwab@suse.de>
6124
6125         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
6126         (PUT_REAL): Restore old definition.
6127
6128 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
6129             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6130
6131         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
6132         binutils 2.11.2 and higher generate smaller binaries than Sun's
6133         native tools.
6134
6135 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
6136
6137         PR c++/6352
6138         * toplev.c (rest_of_compilation): Do not defer functions for which
6139         TREE_SYMBOL_REFERENCED has already been set.
6140
6141 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
6142
6143         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
6144         alternative.
6145
6146 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
6147
6148         * builtins.c: Include langhooks.h.
6149         (lang_type_promotes_to): Remove.
6150         (expand_builtin_va_arg): Use new hook.
6151         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
6152         (simple_type_promotes_to): Move to c-typeck.c.
6153         * c-common.h (simple_type_promotes_to): Remove.
6154         * c-decl.c (duplicate_decls, grokdeclarator): Update.
6155         * c-format.c: Include langhooks.h.
6156         (check_format_types): Update.
6157         * c-tree.h (c_type_promotes_to): New.
6158         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
6159         (type_lists_compatible_p): Update.
6160         * langhooks-def.h (lhd_type_promotes_to): New.
6161         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
6162         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
6163         * langhooks.c (lhd_type_promotes_to): New.
6164         * langhooks.h (struct lang_hooks_for_types): New hook.
6165         * tree.h (lang_type_promotes_to): Remove.
6166 objc:
6167         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
6168
6169 2002-04-18  Richard Henderson  <rth@redhat.com>
6170
6171         * function.c: Revert patch for c/6358.
6172
6173 2002-04-18  Richard Henderson  <rth@redhat.com>
6174
6175         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
6176         blocks.  Handle multiple references to the TRAP block.  Handle
6177         non-adjacent THEN and OTHER blocks.
6178
6179 2002-04-18  Richard Henderson  <rth@redhat.com>
6180
6181         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
6182         crash with no type for by-mode libcalls.
6183
6184         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
6185
6186 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
6187
6188         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
6189         __xtensa_nonlocal_goto): Use a syscall instructions to flush
6190         the register windows.
6191
6192 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
6193
6194         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
6195         appropriate.  Document need for extended precision even when
6196         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
6197         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
6198         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
6199         instead of relying on later syntax error when REAL_WIDTH > 5.
6200         * real.c: Define NE based only on whether or not we have a
6201         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
6202         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
6203         define GET_REAL and PUT_REAL as simple memcpy operations; no
6204         need to byteswap or round.
6205         Use #error instead of #ifdef-ing out the entire file, for
6206         prompt error detection.
6207
6208         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
6209
6210 2002-04-18  David S. Miller  <davem@redhat.com>
6211
6212         * config/sparc/sparc.h (BRANCH_COST): Define.
6213
6214         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
6215         does it.
6216
6217 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
6218
6219         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
6220         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
6221         propagate_block calls after relaxation loop using new variable
6222         stabilized_prop_flags.
6223
6224 2002-04-18  Richard Henderson  <rth@redhat.com>
6225
6226         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
6227         (ia64_va_arg): Expect variable sized types by reference.
6228         * config/ia64/ia64-protos.h: Update.
6229         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
6230         ia64_function_arg_pass_by_reference.
6231
6232 2002-04-18  Richard Henderson  <rth@redhat.com>
6233
6234         * ifcvt.c: Include except.h.
6235         (block_has_only_trap): Break out from find_cond_trap.
6236         (find_cond_trap): Use it.  Always delete the trap block.
6237         (merge_if_block): Allow then block null.  Be less simplistic about
6238         what insns can end a block.
6239         * Makefile.in (ifcvt.o): Depend on except.h.
6240
6241         * config/ia64/ia64.md (trap, conditional_trap): New.
6242
6243 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
6244
6245         PR c/6358
6246         * function.c (assign_parms): Assign hard current_function_return_rtx
6247         register here...
6248         (expand_function_end): ...not here.
6249
6250 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
6251
6252         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
6253         * c-tree.h (c_incomplete_type_error): New.
6254         * c-typeck.c (require_complete_type, build_component_ref): Update.
6255         (incomplete_type_error): Rename.
6256         * langhooks-def.h (lhd_incomplete_type_error): New.
6257         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
6258         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
6259         * langhooks.c (lhd_incomplete_type_error): New.
6260         * langhooks.h (struct lang_hooks_for_types): New hook.
6261         * tree.c (size_in_bytes): Use new hook.
6262         * tree.h (incomplete_type_error): Remove.
6263 objc:
6264         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
6265
6266 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
6267
6268         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
6269         TARGET_FLOAT_FORMAT blocks.
6270
6271 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6272
6273         * doc/install.texi (Downloading the source): Do not mention Chill
6274         any longer, but mention Ada.
6275         (Configuration): Do not mention Chill any longer.
6276
6277 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
6278
6279         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
6280
6281 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
6282
6283         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
6284         in last patch.
6285
6286 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
6287
6288         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
6289         instead of unsigned_type.
6290
6291 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
6292
6293         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
6294         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
6295         later.
6296
6297 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
6298
6299         * attribs.c (vector_type_node_list): New static variable.
6300         (handle_vector_size_attribute): Use it to avoid generating a
6301         new type node each time we are called.
6302
6303         * combine.c (subst): Avoid trying to make a vector mode subreg of
6304         an integer constant.
6305         (gen_lowpart_for_combine): Likewise.
6306
6307 2002-04-18  Roger Sayle  <roger@eyesopen.com>
6308             Jakub Jelinek  <jakub@redhat.com>
6309
6310         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
6311         for integer constant c (if x has unsigned type or sign bit is not
6312         set in c).  This folds the zero/sign extension into the bit-wise and
6313         operation.
6314
6315 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
6316
6317         PR middle-end/6205
6318         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
6319         otherwise xorps.
6320
6321 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
6322
6323         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
6324
6325 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
6326
6327         * gcc.c (read_specs): Detect and fail if an attempt is made to
6328         rename a spec string to an already existing string.
6329
6330 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
6331
6332         * config/s390/s390.c (legitimize_pic_address): Do not generate
6333         illegal address constant without CONST.
6334
6335 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6336
6337         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
6338         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
6339
6340 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
6341
6342         PR optimization/6305
6343         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
6344         to make sure previous reloads are taken into account.  Generate
6345         better code if one operand is an in-range immediate constant.
6346
6347 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
6348
6349         * doc/install.texi (Building): libgcj requires GNU make.
6350
6351 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
6352
6353         PR bootstrap/6315
6354         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
6355         even if hard quad and register is not floating.
6356         (movtf reg<-mem split): Disallow splitting if hard quad and
6357         register is floating.
6358         (movtf mem<-reg split): Likewise.
6359         * config/sparc/sparc.c (fp_register_operand): New predicate.
6360         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
6361
6362 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
6363
6364         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
6365         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
6366         (unprotoize.o): Ditto.  Build from protoize.c.  Define
6367         UNPROTOIZE on command line.
6368         * protoize.c: Include cppdefault.h.  Delete include_defaults.
6369         (in_system_include_dir): Use cpp_include_defaults (defined in
6370         cppdefault.o).
6371         * unprotoize.c: Delete file.
6372
6373 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
6374
6375         * config/rs6000/altivec.h (vec_ld): Add array variants.
6376         (vec_lde): Same.
6377         (vec_ldl): Same.
6378
6379 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
6380             Aldy Hernandez <aldyh@redhat.com>
6381
6382         * config/rs6000/altivec.h: Define __ALTIVEC__.
6383         (bool): New.
6384         (__pixel): New.
6385         (pixel): New.
6386         (vec_cfux): New.
6387         (vec_vmaddfp): New.
6388         (vec_vsldoi): New.
6389         Add parentheses to all macro arguments.
6390
6391 2002-04-16  Richard Henderson  <rth@redhat.com>
6392
6393         PR c++/6320
6394         * except.c (remove_eh_handler): Insert inner regions at beginning
6395         of sibling chain.  Refactor expressions.
6396
6397 2002-04-16  Richard Henderson  <rth@redhat.com>
6398
6399         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
6400         * config/sparc/sol2-gas-bi.h: New file.
6401         * config.gcc (sparc*-solaris): Add it as needed.
6402         * configure.in (AS_SPARC64_FLAG): Remove check.
6403         * config.in, configure: Regenerate.
6404
6405         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
6406
6407 2002-04-16  Richard Henderson  <rth@redhat.com>
6408
6409         * config/mips/mips.c (override_options): Don't override N32 for
6410         a 64-bit ISA.
6411
6412         PR 6202
6413         * config/mips/mips.md (can_delay): Split out of existing define_delays.
6414         (HILO_delay): Set can_delay false.
6415
6416 2002-04-16  Dale Johannesen <dalej@apple.com>
6417
6418         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
6419         instruction addresses.
6420         (rs6000_output_function_epilogue): Likewise.
6421
6422 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
6423
6424         * c-parse.in (poplevel, compstmt_start,
6425         compstmt_primary_start): Add ending ';', in accordance
6426         with POSIX.
6427
6428 2002-04-16  Richard Henderson  <rth@redhat.com>
6429
6430         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
6431         Adjust tm_file order to get TARGET_DEFAULT set properly.
6432         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
6433         * doc/install.texi (sparc-solaris): Update.
6434
6435 2002-04-16  Dale Johannesen <dalej@apple.com>
6436
6437         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
6438         comparison operands do not match each other or if modes of
6439         conditions do not match result.
6440
6441 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
6442
6443         PR target/6305
6444         * config/s390/s390.md (mulsidi3): Set both subregs of the
6445         multiword register.
6446
6447 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
6448
6449         * config/rs6000/altivec.h (vec_addc): Type check.
6450
6451 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
6452
6453         PR middle-end/6279
6454         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
6455
6456         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
6457
6458 2002-04-15  Richard Henderson  <rth@redhat.com>
6459
6460         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
6461         call_really_used_regs too.
6462
6463 2002-04-15  Richard Henderson  <rth@redhat.com>
6464
6465         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
6466
6467 2002-04-15  David S. Miller  <davem@redhat.com>
6468
6469         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
6470         as being CLOBBERed.
6471
6472 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
6473
6474         PR c/6290
6475         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
6476         CONST_VECTOR is { 0, ... 0 }.
6477
6478 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
6479
6480         * doc/install.texi (Installing GCC: Configuration): Clarify
6481         the only supported ways to configure gcc.
6482
6483 2002-04-15  Roland McGrath  <roland@frob.com>
6484
6485         * config.gcc (alpha*-*-gnu*): New target configuration.
6486         * config/alpha/gnu.h: New file for it.
6487         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
6488
6489 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
6490
6491         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
6492         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
6493         * tree.h (expand_start_stmt_expr): Update prototype.
6494         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
6495         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
6496         on the STMT_EXPR created for the inline function.
6497
6498 2002-04-15  Richard Henderson  <rth@redhat.com>
6499
6500         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
6501         config/i386/linux-aout.h, config/i386/linux-oldld.h,
6502         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
6503         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
6504         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
6505         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
6506         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
6507         Define __gnu_linux__, not gnu_linux.
6508         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
6509
6510 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
6511
6512         Remove Chill front end.
6513         * gcc.c (default_compilers): Remove Chill entries.
6514         * ch: Remove directory.
6515         * doc/frontends.texi: Remove information about Chill.
6516         * doc/sourcebuild.texi: Likewise.
6517         * doc/standards.texi: Likewise.
6518
6519 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
6520
6521         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
6522         (LONGLONG_STANDALONE): Define.
6523
6524 2002-04-15  David S. Miller  <davem@redhat.com>
6525
6526         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
6527         Call emit_library_call with LCT_NORMAL.
6528         (sparc_initialize_trampoline): Use LCT_foo instead of
6529         magic constant in emit_library_call invocations.
6530         (sparc64_initialize_trampoline): Likewise.
6531         (sparc_profile_hook): Likewise.
6532         * config/sparc/sparc.md: Likewise.
6533
6534         * config/sparc/sparc.c (sparc_extra_constraint_check):
6535         Fix type of argument 'c'.
6536         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
6537         Likewise.
6538
6539 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
6540
6541         * diagnostic.h (output_buffer_state): Redefine.
6542         (output_format_decoder): New macro.
6543         (output_prefixing_rule): Likewise.
6544         (output_line_cutoff): Likewise.
6545         (diagnostic_format_decoder): Adjust.
6546         (diagnostic_prefixing_rule): Likewise.
6547         (diagnostic_line_cutoff): Likewise.
6548         (diagnostic_state): Likewise.
6549         (diagnostic_kind_count): Likewise.
6550         (diagnostic_buffer): Now a macro.
6551
6552         * diagnostic.c (diagnostic_buffer): Remove definition.
6553         (output_is_line_wrapping): Adjust.
6554         (set_real_maximum_length): Likewise.
6555         (output_set_maximum_length): Likewise.
6556         (init_output_buffer): Likewise.
6557         (lhd_print_error_function): Likewise.
6558         (output_do_verbatim): Likewise.
6559
6560 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
6561
6562         * cpperror.c (print_location): Don't print include chain
6563         if line == 0.
6564         (cpp_begin_message): Update to use DL_ macros.
6565         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
6566         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
6567         cpp_notice, cpp_notice_from_errno): Remove.
6568         (cpp_error, cpp_error_with_line): Update to take a diagnostic
6569         level.
6570         (cpp_errno): New.
6571         * cppexp.c (CPP_ICE): Remove.
6572         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
6573         lex, integer_overflow, _cpp_parse_expr): Update.
6574         * cppfiles.c (read_include_file, find_include_file,
6575         handle_missing_header, _cpp_read_file, remap_filename): Update.
6576         * cpphash.h (enum error_type): Remove.
6577         (_cpp_begin_message): Update.
6578         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
6579         cpp_handle_option, cpp_post_options): Update.
6580         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
6581         skip_whitespace, parse_identifier, parse_slow, parse_string,
6582         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
6583         cpp_interpret_charconst): Update.
6584         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
6585         lex_macro_node, do_undef, glue_header_name, parse_include,
6586         do_include_common, read_flag, do_line, do_linemarker, do_ident,
6587         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
6588         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
6589         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
6590         _cpp_pop_buffer, do_diagnostic): Update.
6591         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
6592         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
6593         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
6594         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
6595         cpp_notice, cpp_notice_from_errno): Remove.
6596         (cpp_error, cpp_error_with_line): Update to take a diagnostic
6597         level.
6598         (cpp_errno): New.
6599         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
6600         collect_args, enter_macro_context, save_parameter, parse_params,
6601         _cpp_create_definition, check_trad_stringification,
6602         cpp_macro_definition): Update.
6603         * cppmain.c (cpp_preprocess_file): Update.
6604         * fix-header.c (read_scan_file): Update.
6605
6606 2002-04-14  Andreas Schwab  <schwab@suse.de>
6607
6608         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
6609
6610 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
6611
6612         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
6613
6614 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
6615
6616         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
6617         not gnu_hurd.
6618
6619 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
6620
6621         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
6622
6623 2002-04-13      Joel Sherrill <joel@OARcorp.com>
6624
6625         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
6626         sparc-elf and sparc-rtems targets.
6627
6628 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
6629
6630         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
6631         defined, and __gnu_hurd__ wherever __GNU__ is defined.
6632         * arm/linux-elf.h: Likewise.
6633         * cris/aout.h: Likewise.
6634         * cris/linux.h: Likewise.
6635         * i370/linux.h: Likewise.
6636         * i386/gnu.h: Likewise.
6637         * i386/linux-aout.h: Likewise.
6638         * i386/linux-oldld.h: Likewise.
6639         * i386/linux.h: Likewise.
6640         * i386/linux64.h: Likewise.
6641         * ia64/linux.h: Likewise.
6642         * m68k/linux-aout.h: Likewise.
6643         * m68k/linux.h: Likewise.
6644         * mips/linux.h: Likewise.
6645         * pa/pa-linux.h: Likewise.
6646         * pj/linux.h: Likewise.
6647         * rs6000/sysv4.h: Likewise.
6648         * s390/linux.h: Likewise.
6649         * sh/linux.h: Likewise.
6650         * sparc/linux-aout.h: Likewise.
6651         * sparc/linux.h: Likewise.
6652         * sparc/linux64.h: Likewise.
6653         * xtensa/linux.h: Likewise.
6654
6655 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
6656
6657         * stmt.c (check_unique_operand_names): Expect operand names to
6658         be strings rather than identifiers.  Use simple_cst_equal to
6659         compare them.
6660         (resolve_operand_name_1): Make same identifier to string change here.
6661         * c-parse.in (asm_operand): Convert a named operand into a string.
6662         * cp/parse.y (asm_operand): Likewise.
6663
6664 2002-04-13  Andreas Schwab  <schwab@suse.de>
6665
6666         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
6667
6668 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
6669
6670         Revert these changes:
6671
6672         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
6673
6674         PR c++/5571
6675         * stor-layout.c (layout_decl): Reset the RTL for the decl.
6676
6677 2002-04-12  Richard Henderson  <rth@redhat.com>
6678
6679         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
6680         (sparc*-*-solaris): Clean up header files.
6681         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
6682         and plan on generating 64-bit code.
6683         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
6684         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
6685         * config/sparc/sol2-sld-64.h: Rename ...
6686         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
6687         for AS_SPARC64_FLAG not defined.
6688         * config/sparc/sol2-gld-bi.h: New.
6689         * config/sparc/sol2-sld.h: Remove.
6690         * config/sparc/sol26-sld.h: New.
6691         * config/sparc/sol2.h: Tidy comments.
6692         * doc/install.texi: Document sparc-solaris configury changes.
6693
6694 2002-04-12  Richard Henderson  <rth@redhat.com>
6695
6696         * recog.c (offsettable_address_p): Match the logic in adjust_address.
6697
6698         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
6699         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
6700
6701 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6702
6703         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
6704
6705 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
6706
6707         * pa.c (pa_can_combine_p): Call extract_insn before calling
6708         constrain_operands.
6709
6710 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
6711
6712         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
6713         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
6714         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
6715         (CPP_PREDEFINES): Handle __declspec.
6716         * config/i386/t-interix (USER_H): Remove.
6717
6718 2002-04-12  DJ Delorie  <dj@redhat.com>
6719
6720         * integrate.c (compare_blocks): Make comparisons safe for when
6721         sizeof(int) < sizeof(char *).
6722         (find_block): Likewise.
6723
6724 2002-04-12  Jan Hubicka  <jh@suse.cz>
6725             David Edelsohn  <edelsohn@gnu.org>
6726
6727         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
6728         registers.
6729         (symbol_ref_operand): New.
6730         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
6731         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
6732
6733 2002-04-12  Andreas Schwab  <schwab@suse.de>
6734
6735         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
6736         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
6737         overrides the definition in config/svr4.h.
6738
6739 2002-04-12      Eric Norum <eric.norum@usask.ca>
6740
6741         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
6742         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
6743         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
6744         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
6745         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
6746         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
6747         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
6748         definitions to config/rtems.h and make the targets more similar.
6749
6750 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6751
6752         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
6753         POINTERS_EXTEND_UNSIGNED.
6754         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
6755         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
6756
6757         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
6758         not specified.
6759
6760 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
6761
6762         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
6763         depends on TARGET_SHMEDIA, not TARGET_SH5.
6764
6765 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
6766
6767         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
6768         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
6769
6770 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
6771
6772         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
6773         no r0 clobber.
6774
6775 2002-04-12  Andreas Schwab  <schwab@suse.de>
6776
6777         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
6778
6779 2002-04-12  Richard Henderson  <rth@redhat.com>
6780
6781         PR bootstrap/4191
6782         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
6783
6784         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
6785         modes spanning multiple hard regs.
6786
6787         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
6788
6789 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6790
6791         * pa.c (pa_output_function_prologue): Don't accumulate the total
6792         number of code bytes when using TARGET_64BIT, or gas, SOM and not
6793         the portable runtime.
6794         (output_deferred_plabels): Handle 64bit plabels.
6795         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
6796         generating pic code using the GAS assembler for object formats that
6797         are not SOM (ie., ELF32 and ELF64).
6798         (output_millicode_call): Check attribute type if attribute length is 28.
6799         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
6800         dbr_sequence_length once.
6801         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
6802         dbr_sequence_length once.
6803         * pa.h (TARGET_SOM): Define if not defined.
6804         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
6805         with GAS and not SOM.
6806         (jump, call_internal_reg, call_value_internal_reg): Likewise.
6807         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
6808
6809 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6810
6811         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
6812         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
6813         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
6814         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
6815         elfos.h and dbxelf.h values are fine now.
6816         * config/i386/freebsd.h, config/alpha/freebsd.h
6817         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
6818
6819 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6820
6821         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
6822         or set Acpu or Amachine.  Reformat.
6823         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
6824         define.
6825         (LINK_SPEC): Do not need to undef.
6826         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
6827         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
6828         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
6829         define.
6830         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
6831         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
6832         (LINK_SPEC): Do not need to undef.
6833         (DONT_USE_BUILTIN_SETJMP): Do not define.
6834         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
6835         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
6836         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
6837         Remove trailing spaces.
6838         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
6839         __ELF__, or set Acpu or Amachine.  Reformat.
6840         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
6841         define.
6842
6843 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6844
6845         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
6846         all other *-*-freebsd* targets.
6847
6848 2002-04-11  Richard Henderson  <rth@redhat.com>
6849
6850         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
6851
6852 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6853
6854         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
6855         Include {cpu}/{cpu}.h thru tm_file.
6856         (alpha*-*-linux*ecoff): Remove target.
6857         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
6858         (LINK_SPEC): Remove, is not OS independent.
6859         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
6860         (LINK_SPEC): Do not need to #undef any longer.
6861         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
6862         any longer.
6863         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
6864         __ELF__.
6865         (LINK_SPEC): Moved here from alpha/elf.h.
6866         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
6867         SUB_CPP_PREDEFINES.
6868         * config/alpha/linux-ecoff.h: Remove.
6869         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
6870         (CPP_SPEC): Define _POSIX_SOURCE as needed.
6871         (CPP_SUBTARGET_SPEC): Do not define.
6872         (LINK_SPEC): Do not need to #undef any longer.
6873         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
6874         * config/alpha/vms.h: Likewise.
6875
6876 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
6877
6878         * doc/extend.texi: Remove old claim that typedefs cannot have
6879         an alignment attribute.
6880
6881 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
6882
6883         PR optimization/6177
6884         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
6885         bitpos is 0 and bitsize CONCAT size.
6886
6887 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
6888
6889         PR c/6223
6890         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
6891
6892 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
6893
6894         * config/alpha/freebsd.h: Minor reformatting.
6895         (CPP_SPEC): Define ELF and add cpp_subtarget.
6896         (ASM_SPEC): No longer needed.
6897
6898 2002-04-11  Richard Henderson  <rth@redhat.com>
6899
6900         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
6901         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
6902         (dimode mem/zero splitter): New.
6903
6904 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
6905
6906         * config/cris/cris.c (cris_override_options): Tweak error message
6907         for PIC not implemented.
6908
6909         * config/cris/cris.h: Tweak comments related to parameter-passing.
6910
6911         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
6912
6913 2002-04-10  Richard Henderson  <rth@redhat.com>
6914
6915         * except.c (add_ehl_entry): Allow duplicates after landing pad
6916         creation.
6917
6918 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
6919
6920         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
6921
6922 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
6923
6924         * c-decl.c (c_init_decl_processing): Move generation of
6925         decls for g77_integer_type_node and friends from here ...
6926         * c-common.c (c_common_nodes_and_builtins): ... to here.
6927
6928 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
6929
6930         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
6931         is only used as frame pointer when frame_pointer_needed is true.
6932
6933 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
6934
6935         PR target/817
6936         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
6937         for the fact that the pool entry uses two words.
6938         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
6939         1k bytes.
6940         (movdf_soft_insn): Similarly.
6941         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
6942         for the fact that the pool entry uses three words.
6943
6944 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
6945
6946         * config/mips/mips.c (mips_va_arg): When using the struct version
6947         of the EABI va_list, allow arguments in the register save area to
6948         take up less room than a stack argument.
6949
6950 2002-04-10  Richard Henderson  <rth@redhat.com>
6951
6952         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
6953         if EXPAND_INITIALIZER.
6954
6955 2002-04-09  Richard Henderson  <rth@redhat.com>
6956
6957         * config/alpha/alpha.md (movdi_er_maybe_g): New.
6958         * config/alpha/alpha.c (alpha_expand_mov): Use it.
6959
6960 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
6961
6962         PR optimization/6233
6963         * rtlanal.c (pure_call_p): New function.
6964         * rtl.h (pure_call_p): Declare.
6965         * loop.c (prescan_loop): Use it to set has_nonconst_call.
6966         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
6967
6968 2002-04-09  Eric Christopher  <echristo@redhat.com>
6969
6970         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
6971         information to .comm directive.
6972
6973 2002-04-09  Richard Henderson  <rth@redhat.com>
6974
6975         PR c/5078
6976         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
6977
6978 2002-04-09  Richard Henderson  <rth@redhat.com>
6979
6980         * basic-block.h (flow_delete_block_noexpunge): Declare.
6981         (expunge_block_nocompact): Declare.
6982         * cfg.c (expunge_block_nocompact): Split out from ...
6983         (expunge_block): ... here.
6984         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
6985         (flow_delete_block_noexpunge): Split out from ...
6986         (flow_delete_block): ... here.
6987         * cfgcleanup.c (delete_unreachable_blocks): Compact while
6988         removing dead blocks.
6989         * except.c (exception_handler_labels): Remove.
6990         (exception_handler_label_map): New.
6991         (struct eh_region): Add aka member.
6992         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
6993         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
6994         (for_each_eh_label, for_each_eh_label_1): New.
6995         (init_eh): Register exception_handler_label_map.
6996         (free_eh_status): Use free_region.
6997         (find_exception_handler_labels): Use the map, not the list.
6998         (remove_exception_handler_label): Likewise.
6999         (maybe_remove_eh_handler): Likewise.
7000         (remove_eh_handler): Use the region aka bitmap.
7001         * except.h (exception_handler_labels): Remove.
7002         (for_each_eh_label): Declare.
7003         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
7004         * loop.c (invalidate_loops_containing_label): New.
7005         (find_and_verify_loops): Use it.  Use for_each_eh_label.
7006         * sched-rgn.c (is_cfg_nonregular): Use
7007         current_function_has_exception_handlers.
7008
7009 2002-04-09  Richard Henderson  <rth@redhat.com>
7010
7011         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
7012         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
7013         Do not return changed status.
7014         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
7015         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
7016         New functions that do return changed status.
7017         * sbitmap.h: Update decls.
7018         * gcse.c, lcm.c: Use _cg functions as needed.
7019
7020 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
7021
7022         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
7023         (sh64-*-elf*, sh-*-rtemself*): Likewise.
7024         * config/sh/embed_bb.c: New file.
7025         * config/sh/embed-elf.h: New file.
7026         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
7027         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
7028         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
7029         __PTRDIFF_TYPE__ .
7030         (SUBTARGET_CPP_PTR_SPEC): Don't define.
7031         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
7032         Add subtarget_asm_endian_spec.
7033         (ASM_SPEC): Use subtarget_asm_endian_spec.
7034         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
7035         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
7036         (WCHAR_UNSIGNED): Define.
7037         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
7038         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
7039         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
7040         Fix value.
7041         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
7042         (sh_adjust_cost): Likewise.
7043         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
7044         __PTRDIFF_TYPE__ .
7045         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
7046         (WCHAR_TYPE_SIZE): Likewise.
7047         (ASM_SPEC): Use subtarget_asm_endian_spec.
7048         (SH_ELF_WCHAR_TYPE): #undef/ #define.
7049         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
7050         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
7051         (MAX_WCHAR_TYPE_SIZE): Don't #define .
7052         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
7053         (USER_LABEL_PREFIX): Don't #undef /#define .
7054         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
7055         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
7056         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
7057         (ASM_SPEC): Likewise.
7058         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
7059         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
7060         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
7061         (LIB2FUNCS_EXTRA): Define.
7062         * t-sh64 (LIB2FUNCS_EXTRA): Define.
7063         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
7064         (LIB1ASMFUNCS_CACHE): Define.
7065         (LIB2FUNCS_EXTRA): Redefine empty.
7066
7067 2002-04-08  Richard Henderson  <rth@redhat.com>
7068
7069         * reorg.c (get_branch_condition): Use reversed_comparison_code.
7070
7071 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7072
7073         * config/m68hc11/larith.asm (__map_data_section): Fix condition
7074         and optimize for size.
7075         (__do_global_ctors): Fix pointer comparison.
7076         (__do_global_dtors): Likewise.
7077
7078 2002-04-09  David S. Miller  <davem@redhat.com>
7079
7080         * config/sparc/sparc.c (sparc_extra_constraint_check): New
7081         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
7082         allow reloading pseudos.
7083         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
7084         * config/sparc/sparc-protos.h: Declare it.
7085
7086         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
7087         unsigned comparison warning.
7088         (output_restore_regs): Mark leaf_function as unused.
7089
7090 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7091
7092         * expr.c (is_aligning_offset): New function.
7093         (expand_expr, case COMPONENT_EXPR): Call it.
7094
7095 2002-04-08  David S. Miller  <davem@redhat.com>
7096
7097         PR target/6082
7098         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
7099
7100         Make init_priority work on Sparc when using GNU ld.
7101         * config/sparc/linux.h, config/sparc/linux64.h,
7102         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
7103         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
7104         * config/sparc/sol2-gld.h: New file to do the same.
7105         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
7106         sparc/sol2-gld.h to tm_file.
7107
7108         PR optimization/4328
7109         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
7110         * doc/md.texi: Document it.
7111         * config/sparc/sparc.md (movdi_insn_sp64_novis,
7112         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
7113         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
7114         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
7115         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
7116
7117 2002-04-08  Andreas Jaeger  <aj@suse.de>
7118
7119         * stmt.c (expand_asm_operands): Revert last patch from Richard
7120         Henderson.
7121
7122 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7123
7124         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
7125         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
7126
7127 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7128
7129         * doc/contrib.texi (Contributors): Add David O'Brien.
7130
7131 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
7132
7133         * configure.in (auto-build.h): Use target_alias and build_alias
7134         when running configure.
7135         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
7136         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
7137         * configure: Regenerate.
7138
7139 2002-04-07  David S. Miller  <davem@redhat.com>
7140
7141         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
7142
7143 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7144
7145         PR 5933
7146         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
7147         generating 32-bit pic code.
7148
7149 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
7150
7151         * cppinit.c (cpp_create_reader): Initialize
7152         discard_comments_in_macro_exp.
7153         (COMMAND_LINE_OPTIONS): Add "-CC" option.
7154         (cpp_handle_option): Handle "-CC" option.
7155         * cpplex.c (save_comment): If saving a C++ comment in
7156         a directive, convert it to a C comment.
7157         (_cpp_lex_direct): Pass second comment start character to
7158         save_comment to indicate comment type.
7159         * cpplib.c (_cpp_handle_directive): If processing
7160         a "#define" directive and discard_comments_in_macro_exp
7161         is false,  re-enable saving of comments.
7162         (lex_macro_node): If discard_comments_in_macro_exp is false,
7163         discard any comments before the macro identifier.
7164         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
7165         member.
7166         * cppmacro.c (cpp_get_token): If expanding a macro while
7167         processing a directive, discard any comments we might encounter.
7168         (parse_params): If discard_comments_in_macro_exp is false,
7169         ignore comments in the macro parameter list.
7170         * gcc.c (cpp_unique_options): Add "-CC" option.
7171         (option_map): Map "--comments-in-macros" to "-CC".
7172         * doc/cppopts.texi: Document "-CC" option.
7173         * f/lang-specs.h: Add "-CC" option.
7174         * testsuite/gcc.dg/cpp/maccom1.c: New test.
7175         * testsuite/gcc.dg/cpp/maccom2.c: New test.
7176         * testsuite/gcc.dg/cpp/maccom3.c: New test.
7177         * testsuite/gcc.dg/cpp/maccom4.c: New test.
7178         * testsuite/gcc.dg/cpp/maccom5.c: New test.
7179         * testsuite/gcc.dg/cpp/maccom6.c: New test.
7180
7181 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7182
7183         PR middle-end/6180
7184         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
7185
7186 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
7187
7188         PR c++/5571
7189         * stor-layout.c (layout_decl): Reset the RTL for the decl.
7190
7191         PR opt/5120
7192         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
7193         RTX_UNCHANGING_P for the functions arguments when a tail call
7194         is made.
7195
7196 2002-04-06  Jason Merrill  <jason@redhat.com>
7197
7198         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
7199         (parse_options_and_default_flags): Set them appropriately.
7200         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
7201
7202 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
7203
7204         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
7205         here.
7206
7207         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
7208         semicolon.
7209
7210         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
7211         types come in by-reference.  Fix typo in comment.
7212
7213 2002-04-05  David S. Miller  <davem@redhat.com>
7214
7215         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
7216         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
7217         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
7218         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
7219
7220 2002-04-05  David S. Miller  <davem@redhat.com>
7221
7222         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
7223         are not going to emit return instructions, emit at least a nop
7224         for the sake of sane backtraces.
7225
7226 2002-04-05  Richard Henderson  <rth@redhat.com>
7227
7228         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
7229
7230 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
7231
7232         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
7233
7234 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
7235
7236         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
7237         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
7238         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
7239
7240 2002-04-05  Andreas Schwab  <schwab@suse.de>
7241
7242         * c-convert.c: Include c-common.h.
7243         * Makefile.in (c-convert.o): Updated.
7244
7245 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
7246
7247         * mklibgcc.in: Use separate libgcc.map for each multilib.
7248         * Makefile.in (distclean): Don't remove libgcc.map here.
7249
7250 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
7251
7252         * Makefile.in (s-mlib): Handle --disable-multilib by separate
7253         genmultilib invocation.
7254
7255 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
7256
7257         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
7258         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
7259         to num_gprs for symmetry.
7260         * config/mips/mips.c: Adjust accordingly.
7261
7262 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
7263
7264         * c-common.c (truthvalue_conversion): Rename, update.
7265         * c-common.h (c_common_truthvalue_conversion): New.
7266         * c-convert.c (convert): Update.
7267         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
7268         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
7269         * c-typeck.c (build_binary_op, build_unary_op,
7270         build_conditional_expr): Update.
7271         * fold-const.c (constant_boolean_node, fold): Use langhook.
7272         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
7273         * langhooks.h (struct lang_hooks): New hook.
7274         * stmt.c (expand_decl_cleanup): Use langhook.
7275         * tree.h (truthvalue_conversion): Remove.
7276 objc:
7277         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
7278
7279 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
7280
7281         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
7282         Add rules to make null object file.
7283
7284 2002-04-04  Jim Blandy  <jimb@redhat.com>
7285
7286         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
7287         macro formal parameter names.
7288
7289 2002-04-04  David S. Miller  <davem@redhat.com>
7290
7291         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
7292
7293 2002-04-04  Richard Henderson  <rth@redhat.com>
7294
7295         PR middle-end/5099
7296         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
7297         Support copies into and out of memory.  Don't accept allows_reg
7298         and allows_mem as gospel.
7299
7300 2002-04-04  Richard Henderson  <rth@redhat.com>
7301
7302         PR opt/6165
7303         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
7304         (write_dependence_p): Likewise.
7305
7306 2002-04-04  Richard Henderson  <rth@redhat.com>
7307
7308         * predict.c (estimate_bb_frequencies): Do frequency calculation
7309         with a volatile temporary.
7310
7311 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
7312
7313         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
7314
7315 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
7316
7317         PR c++/6119
7318         * final.c (final_start_function): Don't bump profile_label_no here...
7319         (final_end_function): ...but here.
7320
7321 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
7322
7323         * config/sparc/sparc.md (pic): New attribute.
7324         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
7325         into stack slots.
7326         (split after do_builtin_setjmp_setup): New.
7327
7328 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
7329
7330         PR fortran/6106
7331         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
7332         change.
7333
7334 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
7335
7336         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
7337         UNITS_PER_WORD for zero sized aggregates.
7338
7339 2002-04-03  David S. Miller  <davem@redhat.com>
7340
7341         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
7342         one-character spec for this, just use %(link_gcc_c_sequence).
7343
7344 2002-04-03  David S. Miller  <davem@redhat.com>
7345
7346         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
7347         handling.
7348
7349 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7350
7351         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
7352         (DWARF_FRAME_RETURN_COLUMN): Move.
7353         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
7354         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
7355         * pa.c (except.h, predict.h): Include.
7356         (FRP): Delete.
7357         (store_reg_modify, set_reg_plus_d): Revise prototypes.
7358         (output_ascii): Add cast.
7359         (store_reg_modify): Revise to add frame notes.
7360         (set_reg_plus_d): Likewise.
7361         (compute_frame_size): Include space for eh data registers in frame if
7362         the current function calls eh_return.
7363         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
7364         function calls eh_return.  Save eh data registers if the current
7365         function calls eh_return.  Fix code to add frame notes.  Emit
7366         blockage to prevent insns with frame notes being scheduled in the
7367         delay slot of calls.
7368         (hppa_expand_epilogue): Restore eh data registers and do final stack
7369         adjustment if the current function calls eh_return.  Don't add frame
7370         notes.
7371         (output_call): Revise for change in length of call insn.  Don't do
7372         return pointer adjustment for an unconditional jump in the delay slot
7373         of a call when using frame notes.
7374         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
7375         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
7376         (ARG_POINTER_CFA_OFFSET): Define.
7377         * pa.md (return_external_pic): New pattern.
7378         (prologue): Correct formatting.  Use return_external_pic if current
7379         function calls eh_return.
7380         (call_internal_symref, call_value_internal_symref,
7381         sibcall_internal_symref, sibcall_value_internal_symref): Change default
7382         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
7383         respectively.
7384         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
7385
7386         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
7387         list of targets to check using "nop" insn.
7388         * configure: Rebuilt.
7389
7390 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
7391
7392         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
7393
7394 2002-04-03  David S. Miller  <davem@redhat.com>
7395
7396         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
7397         library sequence passed to the linker.
7398         (LINK_COMMAND_SPEC): Use it.
7399         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
7400         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
7401         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
7402
7403 2002-04-03  Jason Merrill  <jason@redhat.com>
7404
7405         * except.c (struct eh_status): Remove protect_list.
7406         (begin_protect_partials, end_protect_partials): Remove.
7407         (add_partial_entry): Remove.
7408         * except.h: Remove prototypes.
7409
7410         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
7411         expand_decl_cleanup_eh.
7412
7413         PR c++/5636
7414         * tree.h (CLEANUP_EH_ONLY): New macro.
7415         * stmt.c (expand_decl_cleanup_eh): New fn.
7416         (expand_cleanups): Check CLEANUP_EH_ONLY.
7417         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
7418         Use expand_decl_cleanup_eh.
7419         (expand_stmt): Adjust.
7420         * c-common.h: Adjust prototype.
7421
7422 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
7423
7424         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
7425         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
7426         (cris_target_asm_function_epilogue): Ditto.
7427         (cris_initial_frame_pointer_offset): Ditto.
7428         (cris_simple_epilogue): Ditto.
7429         (cris_expand_builtin_va_arg): Variable-size types come in
7430         by-reference.
7431
7432 2002-04-03  David S. Miller  <davem@redhat.com>
7433
7434         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
7435         little-endian.
7436         (set_fast_math): Correct 'fsr' type.
7437
7438 2002-04-03  Richard Henderson  <rth@redhat.com>
7439
7440         PR opt/3569
7441         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
7442         * toplev.c (check_global_declarations): Use it.
7443         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
7444         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
7445         (LANG_HOOKS_DECLS): Add it.
7446         * langhooks.c (lhd_warn_unused_global_decl): New.
7447         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
7448         * c-objc-common.c (c_warn_unused_global_decl): New.
7449         * c-tree.h (c_warn_unused_global_decl): Declare.
7450         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
7451
7452 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
7453
7454         * langhooks-def.h (lhd_set_decl_assembler_name,
7455         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
7456         (LANG_HOOKS_INITIALIZER): Update.
7457         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
7458         * langhooks.h (struct lang_hooks): New hook.
7459         * tree.c (set_decl_assembler_name): Move to langhooks.c.
7460         (lang_set_decl_assembler_name): Remove.
7461         (init_obstacks): Don't set hook.
7462         (decl_assembler_name): New function.
7463         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
7464         (decl_assembler_name): New.
7465         (lang_set_decl_assembler_name): Remove.
7466
7467 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
7468
7469         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
7470         works properly with .hidden symbols.
7471         * configure: Rebuilt.
7472         * config.in: Rebuilt.
7473         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
7474         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
7475         properly with .hidden symbols.
7476
7477 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
7478
7479         PR middle-end/6102
7480         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
7481         USE argument.
7482
7483 2002-04-03  Richard Henderson  <rth@redhat.com>
7484
7485         PR opt/4120
7486         * sched-rgn.c (sets_likely_spilled): New.
7487         (sets_likely_spilled_1): New.
7488         (add_branch_dependences): Use it.
7489
7490 2002-04-02  Richard Henderson  <rth@redhat.com>
7491
7492         PR opt/4311
7493         * loop.h (LOOP_FIRST_PASS): New.
7494         * loop.c (strength_reduce): Mind it when deciding to unroll.
7495         * toplev.c (rest_of_compilation): Set it.
7496
7497 2002-04-02  David S. Miller  <davem@redhat.com>
7498
7499         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
7500         mems_ok_for_ldd_peep when the order of the loads being examined
7501         is reversed.
7502         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
7503         existing comment to increase comprehension of this situation.
7504
7505 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
7506
7507         * config/sh/sh.md: Don't use union real_extract.
7508
7509 2002-04-02  Richard Henderson  <rth@redhat.com>
7510
7511         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
7512
7513 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
7514
7515         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
7516         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
7517         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
7518         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
7519         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
7520         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
7521         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
7522         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
7523         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
7524         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
7525         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
7526         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
7527         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
7528         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
7529         Include as many configury headers via tm_file as possible.  This
7530         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
7531         * config/openbsd-oldgas.h: New file.
7532         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
7533         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
7534         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
7535         config/i386/i386-coff.h, config/i386/i386-interix.h,
7536         config/i386/iscdbx.h, config/i386/linux-aout.h,
7537         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
7538         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
7539         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
7540         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
7541         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
7542         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
7543         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
7544         config/i386/vxi386.h: Do not directly include configury headers.
7545         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
7546         Directly include configury headers that are no longer automatically
7547         included by the above headers.
7548         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
7549         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
7550         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
7551         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
7552         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
7553         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
7554         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
7555         (TARGET_VERSION): Define.
7556         * config/i386/beos-elf.h, config/i386/freebsd.h,
7557         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
7558         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
7559         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
7560         config/i386/sco5.h, config/i386/sysv4.h
7561         (TARGET_VERSION): Do not need to protect.
7562         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
7563         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
7564         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
7565         config/i386/i386-interix.h, config/i386/linux-aout.h,
7566         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
7567         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
7568         (YES_UNDERSCORES): Do not define - not needed.
7569         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
7570         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
7571         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
7572         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
7573         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
7574         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
7575         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
7576         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
7577
7578 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
7579             Richard Henderson  <rth@redhat.com>
7580
7581         PR c/5484
7582         * function.c (assign_temp): Accept either type or decl argument.
7583         Detect variables whose size is too large to fit into an integer.
7584         * stmt.c (expand_decl): Pass the decl, not the type.
7585
7586 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
7587
7588         * protoize.c: Match include directory usage with cppdefault.c.
7589
7590 2002-04-03  Jeffrey A Law  (law@redhat.com)
7591             Hans-Peter Nilsson  <hp@bitrange.com>
7592
7593         * combine.c (simplify_comparison): Avoid narrowing a comparison
7594         with a paradoxical subreg when doing so would drop signficant bits.
7595
7596 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
7597
7598         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
7599         if POINTERS_EXTEND_UNSIGNED is defined.
7600
7601 2002-04-02  Richard Henderson  <rth@redhat.com>
7602
7603         PR opt/3967
7604         * local-alloc.c (contains_replace_regs): LO_SUM may contain
7605         replace regs.
7606
7607 2002-04-02  Richard Henderson  <rth@redhat.com>
7608
7609         * doc/standards.texi: Document required freestanding libc entry points.
7610
7611 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
7612
7613         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
7614         associated splitter.  Remove MQ constraint.
7615         (ctrdi_internal4): Correct CCmode clobber.
7616
7617 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7618
7619         * milli64.S ($$dyncall): New function.
7620         * t-linux (LIB1ASMFUNCS): Revise module list.
7621         (LIB1ASMSRC): Use pa/milli64.S.
7622
7623 2002-04-02  Richard Henderson  <rth@redhat.com>
7624
7625         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
7626         rename solaris_sys_varargs_h.
7627
7628 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7629
7630         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
7631         the same mode as its component.
7632
7633 2002-04-02  Richard Henderson  <rth@redhat.com>
7634
7635         PR opt/190
7636         * final.c (this_is_asm_operands): Export.
7637         * output.h (this_is_asm_operands): Declare.
7638         * config/i386/i386.c (print_operand): Error odd asm operands.
7639
7640 2002-04-02  Richard Henderson  <rth@redhat.com>
7641
7642         PR opt/420
7643         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
7644
7645 2002-04-01  Richard Henderson  <rth@redhat.com>
7646
7647         PR target/1538
7648         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
7649         * fixinc/fixincl.x: Rebuild.
7650
7651 2002-04-01  Richard Henderson  <rth@redhat.com>
7652
7653         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
7654         (atomic_alloc, atomic_free): New.
7655         (SIZE, MASK_FOR, PTR_IN): New.
7656         (emergency_reg_state, emergency_reg_state_free): New.
7657         (emergency_labeled_state, emergency_labeled_state_free): New.
7658         (reg_state_alloced, labeled_state_alloced): New.
7659         (alloc_reg_state, free_reg_state): New.
7660         (alloc_label_state, free_label_state, free_label_states): New.
7661         (push, pop, dup_state_stack, free_state_stack): Use them.
7662         (desc_label_state): Likewise.
7663         (uw_frame_state_for): Free label states and state stack.
7664         (uw_update_reg_address): Eliminate warnings.
7665
7666 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
7667
7668         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
7669         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
7670
7671 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
7672
7673         * c-decl.c (grokdeclarator): Update.
7674         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
7675         * c-tree.h (c_mark_addressable): New.
7676         * c-typeck.c (default_function_array_conversion, build_unary_op,
7677         build_array_ref, convert_for_assignment): Update.
7678         (mark_addressable): Rename.
7679         * calls.c (try_to_integrate, expand_call): Use langhook.
7680         * expr.c (expand_expr): Use langhook.
7681         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
7682         * langhooks.h (struct lang_hooks): New hook.
7683         * stmt.c (expand_asm_operands): Use langhook.
7684         * tree.h (mark_addressable): Remove.
7685 objc:
7686         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
7687
7688 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
7689
7690         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
7691         in previous change.
7692
7693 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
7694
7695         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
7696         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
7697
7698 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
7699
7700         * c-common.c (unsigned_conversion_warning, convert_and_check,
7701         unsigned_type, signed_type, shorten_compare,
7702         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
7703         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
7704         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
7705         New.
7706         * c-decl.c (grokdeclarator): Update.
7707         * c-format.c (check_format_types): Update.
7708         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
7709         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
7710         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
7711         * convert.c (convert_to_integer): Use new hooks.
7712         * expmed.c (make_tree): Use new hooks.
7713         * expr.c (store_expr): Use new hooks.
7714         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
7715         all_ones_mask_p, unextend, fold): Use new hooks.
7716         * langhooks.h (struct lang_hooks_for_types): New hooks.
7717         * tree.h (signed_or_unsigned_type, signed_type,
7718         unsigned_type): Remove.
7719 objc:
7720         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
7721         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
7722
7723 2002-03-31  Richard Henderson  <rth@redhat.com>
7724
7725         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
7726         (desc_frgr_mem): Fix reference to f16-f31.
7727
7728 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7729
7730         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
7731         RTVEC_ELT): Const-ify.
7732         * varray.h (VARRAY_CHECK): Const-ify.
7733         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
7734         ggc_mark_rtvec, ggc_mark): Const-ify.
7735
7736 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
7737
7738         * diagnostic.c: Include langhooks-def.h.
7739         * Makefile.in (diagnostic.o): Update.
7740
7741 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
7742
7743         * c-common.c (c_unsafe_for_reeval): Rename.
7744         * c-common.h (c_unsafe_for_reeval): Rename.
7745         * c-decl.c (finish_incomplete_decl): Rename.
7746         (c_init_decl_processing): Don't set langhook.
7747         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
7748         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
7749         * c-objc-common.c (c_objc_common_init): Don't set langhook.
7750         * c-tree.h (finish_incomplete_decl): Rename.
7751         * langhooks-def.h (lhd_unsafe_for_reeval): New.
7752         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
7753         (LANG_HOOKS_INITIALIZER): Update.
7754         * langhooks.c (lhd_unsafe_For_reeval): New.
7755         * langhooks.h (struct langhooks): New hooks.
7756         * toplev.c (incomplete_decl_finalize_hook): Remove.
7757         (wrapup_global_declarations): Update.
7758         * tree.c (lang_unsafe_for_reeval): Remove.
7759         (unsafe_for_reeval): Update.
7760         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
7761         Remove.
7762 objc:
7763         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
7764         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
7765
7766 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
7767
7768         * diagnostic.c (print_error_function): Remove.
7769         (default_print_error_function): Rename.
7770         (report_error_function): Update.
7771         * diagnostic.h (print_error_function): Remove.
7772         (default_print_error_function): Remove.
7773         * langhooks-def.h (struct diagnostic_context): Predeclare.
7774         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
7775         (LANG_HOOKS_INITIALIZER): Update.
7776         * langhooks.h (struct diagnostic context): Predeclare.
7777         (struct lang_hooks): New hook.
7778
7779 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7780
7781         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
7782         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
7783         !flag_pic.
7784         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
7785         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
7786         of PIC_OFFSET_TABLE_REGNUM thruout.
7787         * config/rs6000/rs6000.md: Likewise.
7788         * config/rs6000/darwin.h: Likewise.
7789
7790 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7791
7792         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
7793         unsigned HOST_WIDE_INT, not unsigned int.
7794
7795 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
7796
7797         PR middle-end/6096, middle-end/6098, middle-end/6099
7798         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
7799         CODE_LABELs.
7800         (fill_slots_from_thread): Likewise.
7801
7802 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
7803
7804         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
7805         floating fields in float regs.
7806         (function_arg_record_value_2): Likewise.
7807
7808 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
7809
7810         * config/mmix/mmix.md (define_constants): Remove misleading
7811         FIXME.  Add MMIX_fp_rO_OFFSET.
7812         ("nonlocal_goto_receiver"): Don't have stack-frame address of
7813         saved rO as part of the pattern.  Remove FIXME.
7814         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
7815         here, at output-time.
7816
7817 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
7818
7819         PR middle-end/6100
7820         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
7821         REG_BR_PRED.
7822         (output_v9branch): Likewise.
7823
7824 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
7825
7826         * gcc.c: Revert previous patch for now.
7827         * config/i386/djgpp.h: Likewise.
7828
7829 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
7830
7831         * config/mmix/crti.asm (_init): Register _fini with atexit.
7832         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
7833
7834 2002-03-31  Richard Henderson  <rth@redhat.com>
7835
7836         PR target/3997
7837         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
7838         (ASM_OUTPUT_DEF_FROM_DECLS): New.
7839
7840 2002-03-31  Richard Henderson  <rth@redhat.com>
7841
7842         * libgcc2.c (__bb_exit_func): Make static.
7843
7844         * config/alpha/alpha.md (trap): New.
7845
7846 2002-03-31  Richard Henderson  <rth@redhat.com>
7847
7848         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
7849         promoted argument types; build trap.
7850         (expand_builtin_trap): New.
7851         (expand_builtin): Use it.
7852         * stmt.c (expand_nl_goto_receivers): Likewise.
7853         * expr.h (expand_builtin_trap): Declare.
7854         * libfuncs.h (LTI_abort, abort_libfunc): New.
7855         * optabs.c (init_optabs): Init abort_libfunc.
7856
7857 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
7858
7859         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
7860         (LINK_COMMAND_SPEC): ... from here.
7861         (init_gcc_specs): Duplicate it here too, omitting
7862         shared_name in the second copy.
7863         (init_spec): Test for duplicate
7864         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
7865
7866 2002-03-30  David S. Miller  <davem@redhat.com>
7867
7868         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
7869         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
7870
7871 2002-03-30  Roger Sayle <roger@eyesopen.com>
7872             Richard Henderson  <rth@redhat.com>
7873
7874         * regmove.c (combine_stack_adjustments_for_block): Avoid
7875         emitting a stack adjustment of zero bytes.  Let delete_insn
7876         update bb->head.
7877
7878 2002-03-30  Richard Henderson  <rth@redhat.com>
7879
7880         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
7881         (sparc_emitting_epilogue): New.
7882         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
7883         * config/sparc/sparc-protos.h: Update.
7884         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
7885         (TARGET_SWITCHES): Update.
7886         * config/sparc/sparc.md (return): Remove.
7887         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
7888         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
7889         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
7890         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
7891         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
7892         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
7893         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
7894         Remove MASK_EPILOGUE.
7895         * doc/invoke.texi: Update.
7896
7897 2002-03-30  Daniel Berlin  <dan@dberlin.org>
7898
7899         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
7900         CPP will start the file for us.
7901
7902 2002-03-30  Richard Henderson  <rth@redhat.com>
7903
7904         PR target/5446
7905         * config/ia64/ia64.c (group_barrier_needed_p): Special case
7906         prologue_allocate_stack.
7907         (ia64_single_set): Use insn codes for recognition of special
7908         cases, not rtl matching.
7909         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
7910
7911 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
7912
7913         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
7914
7915 2002-03-30  Richard Henderson  <rth@redhat.com>
7916
7917         PR target/6032
7918         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
7919         or -fomit-frame-pointer with profiling.
7920         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7921         (FUNCTION_PROFILER): Do nothing.
7922         (PROFILE_HOOK): New.
7923         * config/sparc/sparc.c (sparc_override_options): Don't check
7924         code models for profiling.
7925         (sparc_function_profiler): Remove.
7926         (sparc_profile_hook): New.
7927         * config/sparc/sparc-protos.h: Update.
7928
7929 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
7930
7931         PR optimization/6086
7932         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
7933         of SUBREG of volatile MEM or because the MEM was mode dependent,
7934         return CLOBBER instead of unmodified SUBREG.
7935
7936 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
7937
7938         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
7939         when not optimizing.
7940
7941         * toplev.c (rest_of_compilation): Cann mark_constant_function
7942         only when optimizing.
7943
7944         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
7945         are NULL.
7946
7947         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
7948         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
7949         (try_optimize_cfg): clear all AUX fields.
7950
7951         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
7952         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
7953         (ix86_address_cost): Be prepared for SUBREGed registers.
7954         (legitimate_address_p): Accept SUBREGed registers.
7955
7956 2002-03-29  Richard Henderson  <rth@redhat.com>
7957
7958         PR target/5672
7959         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
7960
7961 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7962
7963         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
7964         for aggregate and TFmode types.
7965
7966 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
7967
7968         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
7969
7970 2002-03-29  Richard Henderson  <rth@redhat.com>
7971
7972         PR target/5886
7973         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
7974         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
7975
7976 2002-03-29  Richard Henderson  <rth@redhat.com>
7977
7978         PR target/6041
7979         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
7980         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
7981         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
7982         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
7983         conditional.
7984         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
7985
7986 2002-03-29  Dale Johannesen <dalej@apple.com>
7987
7988         * loop.c (combine_movables): Do allow combination of pseudos.
7989
7990 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
7991
7992         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
7993         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
7994         No functional change except ...
7995         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
7996         * doc/install.texi (*-*-freebsd*): Document port configuration.
7997
7998 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7999
8000         * Makefile.in (convert.o, calls.o, expmed.o): Update.
8001         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
8002         Use new hooks.
8003         * builtin-types.def (BT_PTRMODE): Update.
8004         * c-common.c (type_for_size): Rename c_common_type_for_size.
8005         (type_for_mode): Similarly.
8006         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
8007         Use new hook.
8008         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
8009         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
8010         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
8011         Redefine.
8012         * c-typeck.c (common_type, comptypes, default_conversion):
8013         Use new hooks.
8014         * calls.c: Include langhooks.h.
8015         (emit_library_call_value_1): Use new hooks.  Avoid redundant
8016         calls.
8017         * convert.c: Include langhooks.h
8018         (convert_to_pointer, convert_to_integer): Use new hooks.
8019         * except.c (init_eh): Similarly.
8020         * expmed.c: Include langhooks.h.
8021         (expand_mult_add): Use new hooks.
8022         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
8023         try_casesi): Similarly.
8024         * fold-const.c (optimize_bit_field_compare, make_range,
8025         decode_field_reference, fold_truthop, fold): Similarly.
8026         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
8027         put_var_into_stack): Similarly.
8028         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
8029         LANG_HOOKS_TYPE_FOR_SIZE): New.
8030         (LANG_HOOKS_TYPES_INITIALIZER): Update.
8031         * langhooks.h (lang_hooks_for_types): New hooks.
8032         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
8033         * tree.c (get_unwidened, get_narrower): Similarly.
8034         * tree.h (type_for_mode, type_for_size): Remove.
8035         * varasm.c (force_const_mem): Use new hooks.
8036         * utils2.c (nonbinary_modular_operation): Update.
8037 objc:
8038         * objc-act.c (handle_impent): Update.
8039         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
8040         Redefine.
8041
8042 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
8043
8044         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
8045         * config/ia64/ia64.c (basereg_operand): New.
8046         * config/ia64/ia64-protos.h (basereg_operand): Declare.
8047         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
8048
8049 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
8050
8051         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
8052         unwind information when frame_pointer_needed.
8053         (mmix_assemble_integer): Tweak wording in comment.
8054
8055 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
8056
8057         * Makefile.in (except.o): Update.
8058         * except.c: Include langhooks.h.
8059         (init_eh): Use langhook.
8060         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
8061         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
8062         (LANG_HOOKS_INITIALIZER): Update.
8063         * langhooks.h (lang_hooks_for_types): New.
8064         (struct lang_hooks): Add it.
8065         * tree.c (make_lang_type_fn, make_lang_type): Remove.
8066         * tree.h (make_lang_type_fn, make_lang_type): Remove.
8067 config:
8068         * alpha/alpha.c: Include langhooks.h.
8069         (alpha_build_va_list): Use langhook.
8070         * d30v/d30v.c: Include langhooks.h.
8071         (d30v_build_va_list): Use langhook.
8072         * i386/i386.c: Include langhooks.h.
8073         (ix86_build_va_list): Use langhook.
8074         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
8075         * s390/s390.c: Include langhooks.h.
8076         (s390_build_va_list): Use langhook.
8077         * stormy16/stormy16.c: Include langhooks.h.
8078         (stormy16_build_va_list): Use langhook.
8079
8080 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
8081
8082         PR c++/5964
8083         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
8084         attributes.
8085         (length): Compute variable length for branches/calls/jumps here.
8086         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
8087         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
8088         define branch_type attribute.
8089         (divsi3_sp32): Maximum length is 6 not 7.
8090         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
8091         call_address_untyped_struct_value_sp32,
8092         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
8093         * config/sparc/sparc.c (empty_delay_slot): New function.
8094         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
8095         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
8096
8097 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
8098
8099         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
8100         nonzero_bits if not needed.
8101         (nonzero_bits) [XOR]: Likewise.
8102         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
8103         reg_last_set_mode and mode are both MODE_INT, but not equal.
8104         (record_value_for_reg): Compute reg_last_set_nonzero_bits
8105         in nonzero_bits_mode for MODE_INT modes.
8106
8107 2002-03-28  Richard Henderson  <rth@redhat.com>
8108
8109         PR target/5715
8110         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
8111         to GAS.  Correct drift between alternatives.
8112
8113 2002-03-28  Richard Henderson  <rth@redhat.com>
8114
8115         PR target/6087
8116         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
8117
8118 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
8119
8120         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
8121         emulation to the linker.
8122
8123 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
8124
8125         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
8126         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
8127
8128 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
8129
8130         * combine.c (simplify_and_const_int): Make sure to apply mask
8131         when force_to_mode returns a constant integer.  PR3311.
8132
8133 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8134
8135         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
8136
8137 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8138
8139         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
8140         and Objective-C Dialect Options.
8141
8142 2002-03-28  Richard Henderson  <rth@redhat.com>
8143
8144         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
8145         comparison should be done vs !=0 not >0 return code.  Tidy cases.
8146
8147 2002-03-28  Richard Henderson  <rth@redhat.com>
8148
8149         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
8150         on to c_expand_body.
8151         * c-tree.h (finish_function): Update decl.
8152         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
8153
8154 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
8155
8156         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
8157
8158 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
8159
8160         * rtlanal.c: Include flags.h
8161         (may_trap_p): Do not mark FP operations if trapping
8162         if !flag_trapping_math
8163         * Makefile.in (rtlanal.o): Add dependency on flag.h
8164         * ifcvt.c (noce_operand_ok): Avoid the lameness.
8165
8166 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
8167
8168         * mips.md: Use dconst1, not 1.0, as first argument of
8169         REAL_VALUE_LDEXP.  Don't use union real_extract.
8170
8171 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
8172
8173         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
8174         rather than $target.  Heed program_prefix and
8175         program_transform_name.  Search for gas in cross-compiler case too.
8176         "test -x" rather than "test -f".
8177         (gcc_cv_ld): Likewise.
8178         (gcc_cv_nm): Heed program_prefix and program_transform_name.
8179         (gcc_cv_objdump): Likewise.
8180         * configure: Regenerate.
8181
8182 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
8183
8184         * Makefile.in (attribs.o): Update.
8185         * attribs.c: Include langhooks.h.
8186         (decl_attributes): Use langhook.
8187         * c-decl.c (insert_default_attributes): Rename.
8188         * c-tree.h (c_insert_default_attributes): New.
8189         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
8190         (LANG_HOOKS_INITIALIZER): Update.
8191         * langhooks.h (struct lang_hooks): New hook.
8192         * tree.h (insert_default_attributes): Remove.
8193 objc:
8194         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
8195
8196 2002-03-27  Andreas Schwab  <schwab@suse.de>
8197
8198         * config/i386/i386.c (classify_argument): Also check for
8199         QUAL_UNION_TYPE.
8200
8201 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8202
8203         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
8204         any more.
8205
8206 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
8207
8208         * i960.md (ret): Set PC.
8209         (nonlocal_goto): Fix expander.
8210         * builtins.c (epxand_builin_longjmp): Check that we've emitted
8211         some jump or call.
8212
8213 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
8214
8215         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
8216         of libcall regions.
8217
8218 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
8219
8220         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
8221         assigning to BLOCK_FOR_INSN directly.
8222
8223 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
8224
8225         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
8226
8227 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
8228
8229         * c-common.c (c_expand_expr): Fix prototype.
8230         * c-common.h (c_expand_expr): Always declare, update.
8231         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
8232         * c-objc-common.c (c_objc_common_init): No global hook.
8233         * expr.c (expand_expr): Use langhook.
8234         * expr.h (enum expand_modifier): Conditionally declare.
8235         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
8236         (LANG_HOOKS_INITIALIZER): Update.
8237         * langhooks.c (lhd_expand_expr): New.
8238         * langhooks.h (struct lang_hooks): New hook.
8239         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
8240         (lang_independent_init): Don't default hook.
8241 objc:
8242         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
8243
8244 2002-03-27  Richard Henderson  <rth@redhat.com>
8245
8246         PR target/6054
8247         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
8248         TARGET_CONST_GP.  Simplify conditions.
8249
8250 2002-03-27  Richard Henderson  <rth@redhat.com>
8251
8252         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
8253         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
8254         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
8255
8256 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
8257
8258         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
8259         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
8260         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
8261         Remove unnecessary masks.
8262         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
8263         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
8264         -mwindows, -mdll switches and their negations.
8265
8266 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
8267
8268         * gcc-common.c (lang_mark_false_label_stack): Remove.
8269         * ggc.h (lang_mark_false_label_stack): Similarly.
8270
8271 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
8272
8273         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
8274
8275         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
8276         or __rtems_ is defined.
8277
8278 2002-03-26  Richard Henderson  <rth@redhat.com>
8279
8280         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
8281         if a non-trivial load was emitted.
8282         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
8283         in high+extra+low case.
8284
8285 2002-03-26  Richard Henderson  <rth@redhat.com>
8286
8287         * config.gcc (sparc*-solaris): Use float_format=sparc.
8288
8289 2002-03-26  Richard Henderson  <rth@redhat.com>
8290
8291         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
8292         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
8293         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
8294         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
8295         (WINT_TYPE_SIZE): Fix at 32.
8296
8297 2002-03-26  Richard Henderson  <rth@redhat.com>
8298
8299         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
8300         until after eh landing pad generation.
8301         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
8302         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
8303
8304 2002-03-26  Richard Henderson  <rth@redhat.com>
8305
8306         * expr.h (ADD_PARM_SIZE): One more convert for INC.
8307
8308 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
8309
8310         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
8311         and warning switches.
8312         (cc1_options):  Likewise.
8313
8314 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
8315
8316         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
8317         Restore more of the signal context.  Set no_reg_stack_frame.
8318         * config/ia64/unwind-ia64.c (unw_state_record):
8319         Add no_reg_stack_frame, comments.
8320         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
8321         (uw_update_context): Adjust bsp when unwinding from leaf,
8322         but not signal frame.
8323
8324 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
8325
8326         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
8327
8328 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
8329
8330         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
8331
8332 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
8333
8334         PR target/5621
8335         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
8336         "Add a pool_range attribute", which was lost during the ARM/Thumb
8337         merge.
8338
8339 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
8340
8341         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
8342         a register into the MAC16 accumulator.
8343
8344 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
8345
8346         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
8347         (Warning Options): Document -Wswitch-enum.
8348         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
8349         -Wswitch.
8350         (warn_switch_enum): Define variables.
8351         * flags.h (warn_switch_enum): Declare variables.
8352         * stmt.c (expand_end_case_type): When warn_switch_enum /
8353         -Wswitch-enum, perform switch checks.
8354         Fix PR c/5044.
8355
8356 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
8357
8358         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
8359         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
8360         (reload_muladdsi_compare0_scratch): Delete.
8361
8362 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
8363
8364         * doc/install.texi (*-*-freebsd*): Update.
8365
8366 2002-03-26  Richard Henderson  <rth@redhat.com>
8367
8368         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
8369         (SUB_PARM_SIZE): Cast DEC to ssizetype.
8370
8371         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
8372         types from the normal argument frame.
8373
8374         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
8375         variable sized objects by reference.
8376         (sparc_va_arg): Receive them by reference too.
8377
8378 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
8379
8380         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
8381         code to not restoring global registers.
8382
8383 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
8384
8385         * Makefile.in (ggc-common.o): Update.
8386         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
8387         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
8388         * c-tree.h (c_mark_tree): New.
8389         * ggc-common.c: Include langhooks.h.
8390         (gcc_mark_trees): Use new langhook.
8391         * ggc-callbacks.c: Delete file.
8392         * ggc.h (lang_mark_tree): Remove.
8393         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
8394         (LANG_HOOKS_INITIALIZER): Update.
8395         * langhooks.h (struct lang_hooks): New hook.
8396 objc:
8397         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
8398
8399 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
8400
8401         * doc/cpp.texi: Exclude entire Top node from printed manual.
8402         Move option index after directive index.  Insert page breaks
8403         before GFDL and concept index.  Index environment variables
8404         with command line options.
8405         * doc/cppenv.texi: Use @vtable for environment variable list.
8406         Add paragraph explaining semantics of empty elements in path
8407         variables.  Exclude a cross-reference to Fishkill from the
8408         manpage.  Remove an unnecessary cross-reference of the entry
8409         right above the referer.  Don't use @anchor in text that goes
8410         into manpage.
8411         * doc/cppopts.texi: Cross-reference the environment variables
8412         section, not the specific environment variable, for consistency.
8413
8414 2002-03-25  Richard Henderson  <rth@redhat.com>
8415
8416         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
8417         anywhere in the block.  Don't refer to insns that have been
8418         removed from the chain.  Iterate backward through the new insns.
8419         Don't refer to edges that have been removed.
8420
8421 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
8422
8423         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
8424         test for overflow of constant.
8425
8426 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
8427
8428         PR target/2623
8429         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
8430         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
8431         these patterns on arm_archv4.
8432
8433 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
8434
8435         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
8436         int".
8437
8438 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
8439
8440         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
8441         float_handled, float_handler, float_signal, set_float_handler,
8442         and do_float_handler.  Set handler for SIGFPE to crash_signal.
8443         * toplev.h: Don't prototype do_float_handler.
8444
8445         * c-lex.c: Fold parse_float into lex_number.  Make warning
8446         about portability of hex float constants more informative, and
8447         don't issue it on top of a syntax error.
8448         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
8449         their callers.
8450         * real.h: Define REAL_VALUE_ABS here...
8451         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
8452         simplify_unary_real, simplify_binary_real, and
8453         simplify_binary_is2orm1 into their callers.
8454         * tree.c: Fold build_real_from_int_cst_1 into caller.
8455
8456         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
8457
8458         * tsystem.h: Include float.h here...
8459         * libgcc2.c: ... not here.
8460
8461 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
8462
8463         Fixes for: PR bootstrap/3591, target/5676
8464         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
8465         defined.  Do not disable exceptions or rtti.
8466         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
8467         mcore.h.  Disable exceptions and rtti, since they are not
8468         supported by EPOC.
8469
8470 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
8471
8472         * c-decl.c (maybe_build_cleanup): Remove.
8473         * expr.c (expand_expr): Use langhook.
8474         * langhooks-def.h (lhd_return_null_tree,
8475         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
8476         (LANGHOOKS_INITIALIZER): Update.
8477         * langhooks.c (lhd_return_null_tree): New.
8478         * langhooks.h (struct lang_hooks): New hook.
8479         * tree-inline.c (initialize_inlined_parameters): Use langhook.
8480         * tree.h (maybe_build_cleanup): Remove.
8481
8482 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
8483
8484         * regrename.c (build_def_use): Move recog_memoized
8485         before extract_insn.
8486
8487 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
8488
8489         PR target/6043
8490         * expr.c (emit_group_store): Handle storing into CONCAT.
8491
8492 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
8493
8494         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
8495         corresponding MATCH_DUP.
8496
8497 2002-03-24  Richard Henderson  <rth@redhat.com>
8498
8499         * unroll.c (unroll_loop): Zero label_map.
8500
8501         * gcse.c: Include except.h.
8502         * Makefile.in (gcse.o): Update.
8503
8504 2002-03-24  Richard Henderson  <rth@redhat.com>
8505
8506         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
8507         Do resolve_unique_section before shared data clause.
8508
8509 2002-03-24  Richard Henderson  <rth@redhat.com>
8510
8511         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
8512
8513 2002-03-24  Richard Henderson  <rth@redhat.com>
8514
8515         * recog.c (peephole2_optimize): Split blocks when EH insns are
8516         generated in the middle of a block.  Do global life update if
8517         zapped EH edges.
8518
8519 2002-03-24  Richard Henderson  <rth@redhat.com>
8520
8521         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
8522
8523 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
8524
8525         preprocessor/3951
8526         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
8527         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
8528         (init_dependency_output): Don't make no_output decision here.
8529
8530 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
8531
8532         * stmt.c (check_for_full_enumeration_handling): Remove tests of
8533         warn_switch.  Update description.
8534         (expand_end_case_type): Call check_for_full_enumeration_handling
8535         when warn_switch.
8536
8537 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8538
8539         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
8540         (m68hc11_split_move): Call it to see if the source and destination
8541         operands use the same direction auto inc/dec mode, otherwise make the
8542         source an offsetable memory operand and generate an add.
8543
8544 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8545
8546         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
8547         register for operand 2.
8548         ("*subsi3_zero_extendqi"): Likewise.
8549         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
8550         bits so that it is compatible with a pop.
8551         ("*andhi3_gen"): Likewise.
8552         ("xorhi3"): Likewise.
8553
8554 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
8555
8556         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
8557         -pedantic here...
8558         (cpp_post_options): ... not here.
8559
8560 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
8561             Aldy Hernandez  <aldyh@redhat.com>
8562
8563         Removal of separate preprocessor cpp0.
8564
8565         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
8566         cpp0, install-common): Update.
8567         * c-common.c (flag_preprocess_only): New.
8568         (c_common_init): Preprocess for -E.
8569         * c-common.h (flag_preprocess_only): New.
8570         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
8571         * c-objc-common.c (c_init_decl_processing): Exit quickly
8572         for NULL return from c_common_init.
8573         * cpplib.h (cpp_preprocess_file): New.
8574         * cppmain.c (main, general_init, pfile, progname): Remove.
8575         (do_preprocessing): Rename cpp_preprocess_file, don't call
8576         cpp_finish.  Don't close stdout here.
8577         (setup_callbacks): Update prototype.
8578         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
8579         Update.
8580         * tradcpp.c (main): Ignore -quiet.
8581 objc:
8582         * lang-specs.h (default_compilers): Preprocess with cc1obj.
8583
8584 2002-03-24  Richard Henderson  <rth@redhat.com>
8585
8586         PR optimization/5742
8587         * machmode.def: Add inner mode field to complex modes.
8588         * config/mips/mips.c (mips_function_value): Always define.  Add
8589         new argument to handle libcalls.
8590         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
8591         (FUNCTION_VALUE): Likewise.
8592         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
8593         * config/mips/mips-protos.h: Update.
8594
8595 2002-03-23  Richard Henderson  <rth@redhat.com>
8596
8597         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
8598         * config/sparc/sparc-protos.h: Update.
8599         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
8600
8601 2002-03-23  Richard Henderson  <rth@redhat.com>
8602
8603         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
8604         _start or _init begins the text segment.
8605
8606 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
8607
8608         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
8609         not HOST_WIDEST_INT.
8610         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
8611
8612 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
8613
8614         PR java/5489
8615         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
8616         operand argument to output_return_instruction.
8617         * arm.c (arm_print_operand, case 'd'): If the operand is
8618         const_true_rtx then just return.
8619         (arm_print_operand, case 'D'): If the operand is const_true_rtx
8620         then abort.
8621
8622 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
8623
8624         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
8625         (Warning Options): Document -Wswitch-default.
8626         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
8627         -Wswitch.
8628         (warn_switch_default): Define variable.
8629         (warn_switch): Update comment.
8630         * flags.h (warn_switch_default): Declare variable.
8631         (warn_switch): Update comment.
8632         * stmt.c (expand_end_case): Check for and, when
8633         warn_switch_no_default, warn of a missing default case.
8634
8635 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
8636
8637         * real.h (N): Special case 128 bit doubles.
8638
8639         * combine.c (simplify_comparison): When widening modes, ignore
8640         sign extension on CONST_INTs.
8641
8642 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
8643
8644         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
8645         passed to adjust_address.  Fix comment formatting.
8646
8647
8648 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
8649
8650         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
8651         Always make REAL_VALUE_TYPE a struct containing an array of
8652         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
8653         big it is.  Don't declare or use union real_extract.
8654
8655         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
8656         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
8657         (print_operand), config/arm/arm.c (output_move_double),
8658         config/arm/arm.md (consttable_4, consttable_8),
8659         config/romp/romp.c (output_fpops), config/s390/s390.h
8660         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
8661         (xtensa_output_literal): Don't use union real_extract.
8662
8663         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
8664         (sfmode_constant_to_ulong), config/ns32k/merlin.h
8665         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
8666         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
8667         (PRINT_OPERAND): Don't use local version of union
8668         real_extract.
8669
8670         * config/convex/convex.c (check_float_value), config/vax/vax.c
8671         (vax_float_literal), config/m88k/m88k.md (divdf3),
8672         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
8673         config/pdp11/pdp11.c (output_move_quad): Don't do host
8674         arithmetic on target floating point quantities.
8675
8676         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
8677         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
8678
8679         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
8680         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
8681
8682         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
8683         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
8684         INFINITY.
8685         * print-rtl.c (print_rtx): Disable code which needs
8686         floating-point emulator.
8687         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
8688         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
8689         depending on HOST_FLOAT_FORMAT to be defined properly.
8690
8691         * config/1750a/1750a.c (get_double, float_label): Delete.
8692         (print_operand): Delete huge commented-out chunk.  Use
8693         REAL_VALUE_TO_DECIMAL.
8694         * config/1750a/1750a-protos.h: Delete prototypes of deleted
8695         functions.
8696         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
8697         IEEE_FLOAT_FORMAT.
8698         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
8699         Use REAL_VALUE_TO_DECIMAL as ELF version does.
8700         * config/m88k/m88k.c (real_power_of_2_operand,
8701         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
8702         real_extract out of the union; run the input through
8703         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
8704         from that into the union.
8705         * config/pdp11/pdp11.c (output_move_double): Rearrange
8706         parentheses to make automatic indenter happy.
8707
8708         * doc/tm.texi (Cross-compilation): Rename node to "Floating
8709         Point" and rewrite to describe current situation.  Also adjust
8710         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
8711         match code.
8712         * doc/rtl.texi: Adjust cross reference.
8713
8714 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
8715
8716         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
8717         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
8718         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
8719         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
8720         prevent use of sp as a reload register.
8721         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
8722         non_acc_reg_operand.
8723         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
8724         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
8725         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
8726         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
8727
8728 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8729
8730         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
8731         * cpplex.c (unterminated): Delete.
8732         (parse_string): No string literal may extend over multiple
8733         lines.  Suppress the error when preprocessing assembly.
8734         * cppmain.c (scan_translation_unit): Strings are single-line.
8735
8736         * doc/cpp.texi: Update to match.
8737
8738 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
8739
8740         PR optimization/5854
8741         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
8742         Shut up warnings.
8743         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
8744         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
8745         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
8746         const0 if scratch register was not allocated.
8747         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
8748         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
8749         with GEN_INT (...).
8750         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
8751         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
8752         with GEN_INT (...) everywhere.  Remove constraints in define_split
8753         patterns.
8754         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
8755         require scratch register for setting 0 into regs/non-pushable memory.
8756
8757 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
8758
8759         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
8760         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
8761
8762 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
8763
8764         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
8765         * cppinit.c (cpp_create_reader):  On by default.
8766         (cpp_handle_option):  Handle -W[no-]endif-labels.
8767         (cpp_post_options):  Also enable if -pedantic.
8768         * cpplib.c (do_else):  Use it.
8769         (do_endif):  Likewise.
8770         * doc/cppopts.texi:  Document new option.
8771         * doc/invoke.texi:  Document new option.
8772
8773 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
8774
8775         * config/i386/i386.c, config/i386/i386.md: Change all occurences
8776         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
8777
8778 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
8779
8780         * flow.c (calculate_global_regs_live): Clear aux fields of
8781         ENTRY and EXIT.
8782
8783 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
8784
8785         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
8786         REG or MEM subregs, pass rtx * instead of rtx to it.
8787         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
8788         rtx * instead of rtx to alter_subreg.
8789         * config/m32r/m32r.c (gen_split_move_double): Likewise.
8790         * config/pj/pj.c (pj_output_rval): Likewise.
8791
8792 2002-03-22  Richard Henderson  <rth@redhat.com>
8793
8794         PR target/3177
8795         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
8796         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
8797         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
8798         (ia64_expand_prologue): Look at int_regs, not words, for number
8799         of incomming int regs.
8800
8801 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
8802
8803         * expr.c (expand_expr): A RESULT_DECL is part of a call.
8804
8805 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
8806
8807         * toplev.c (flag_loop_optimize, flag_crossjumping):
8808         New static variables.
8809         (rest_of_compilation): Conditionalize crossjumping and
8810         loop optimizer.
8811         (parse_options_and_default_flags): Default loop_optimize and
8812         crossjumping.
8813         (lang_independent_options): Add -fcrossjumping and -floop-optimize
8814         * invoke.texi (crossjumping, loop-optimize): Document.
8815
8816 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
8817
8818         * real.c (eiisneg): Move outside #ifdef NANS.
8819
8820 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
8821
8822         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
8823         frequencies match; avoid match on different loop depths.
8824         (try_crossjump_to_bb): Kill tests that no longer brings time
8825         savings.
8826         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
8827         updating code.
8828         (split_edge): Likewise.
8829
8830         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
8831         variable.
8832
8833         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
8834         * cfgrtl.c: Include insn-config.h
8835         (split_block) Dirtify block in presence of conditional execution
8836
8837 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
8838
8839         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
8840         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
8841         (function_arg): Constify CUMULATIVE_ARGS.
8842         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
8843         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
8844         (UNITS_PER_DOUBLE): New macro.
8845         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
8846         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
8847         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
8848         fp_regs and stack_words.
8849         (EABI_FLOAT_VARARGS_P): New macro.
8850         * config/mips/mips.c (struct mips_arg_info): New.
8851         (mips_arg_info): New function.
8852         (function_arg_advance): Use it.  Add adjustment instructions here
8853         rather than in function_arg.
8854         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
8855         for VOIDmode at the beginning of the function.
8856         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
8857         (function_arg_pass_by_reference): Likewise.
8858         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
8859         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
8860         (mips_va_start): Likewise.  Use the new stack_words field of
8861         CUMULATIVE_ARGS to set up overflow area.  Reformat.
8862         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
8863         doubles and other types, aligning the overflow pointer for non-doubles
8864         too.  Remove some code duplication.  Replace hard-coded constants.
8865
8866 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
8867
8868         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
8869         (CLASS_UNITS): Undefine.
8870         (CLASS_MAX_NREGS): Use FP_INC.
8871         * config/mips/mips.c (compute_frame_size): Likewise.
8872         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
8873
8874 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8875
8876         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
8877         prototype, and handle lexing numbers and identifiers.
8878         (parse_identifier): Update to new form of parse_slow.
8879         (parse_number): Fast path only, use parse_slow otherwise.
8880         (_cpp_lex_direct): Update calls to parse_number.
8881
8882 2002-03-21  DJ Delorie  <dj@redhat.com>
8883
8884         * bb-reorder.c (make_reorder_chain_1): Protect against
8885         when redundant edges are omitted.
8886         * predict.c (dump_prediction): Likewise.
8887
8888 2002-03-21  Richard Henderson  <rth@redhat.com>
8889
8890         PR target/5996
8891         * fixinc/inclhack.def (solaris_stdio_tag): New.
8892         * fixinc/fixincl.x: Regenerate.
8893
8894 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
8895
8896         PR c/5597
8897         * c-typeck.c (process_init_element): Flag non-static
8898         initialization of a flexible array member as illegal.
8899
8900 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
8901
8902         * config/rs6000/t-linux64: New.
8903         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
8904         t-ppccomm.  Use t-rs6000 and t-linux64.
8905         (powerpc64-*-gnu* <tmake_file>): Likewise.
8906         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
8907         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
8908         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
8909
8910 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
8911
8912         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
8913         flag_really_no_inline instead of optimize == 0.
8914
8915         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
8916
8917         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
8918
8919         * flags.h (flag_really_no_inline): New.
8920
8921         * c-common.c (c_common_post_options): Initialize
8922         flag_really_no_inline.
8923
8924         * toplev.c (flag_really_no_inline): New.
8925
8926 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
8927
8928         * config/avr/avr.md (length): Fix length computation for
8929         conditional branches.
8930
8931 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8932
8933         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
8934         sdbout.o, profile.o): Update.
8935         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
8936         langhook.
8937         * c-common.h (gettags): Move here from tree.h.
8938         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
8939         insert_block, getdecls, kept_level_p, global_bindings_p): New.
8940         * dbxout.c (dbxout_init): Use getdecls langhook.
8941         * expr.c (expand_expr): Use insert_block langhook.
8942         * fold-const.c: Include langhooks.h.
8943         (fold_range_test, fold_binary_op_with_conditional_arg,
8944         fold): Use global_bindings_p langhook.
8945         * integrate.c (expand_inline_function): Use insert_block langhook.
8946         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
8947         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
8948         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
8949         LANG_HOOKS_GETDECLS): New.
8950         (LANG_HOOKS_INITIALIZER): Update.
8951         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
8952         langhook.
8953         * langhooks.h (struct lang_hooks_for_decls): New.
8954         (struct lang_hooks): Update.
8955         * profile.c: Include langhooks.h.
8956         (output_func_start_profiler): Use new langhooks.
8957         * sdbout.c: Include langhooks.h.
8958         (sdbout_init, sdbout_finish): Use getdecls langhook.
8959         * stmt.c: Include langhooks.h.
8960         (expand_fixup, fixup_gotos): Use new langhooks.
8961         * stor-layout.c: Include langhooks.h.
8962         (variable_size): Use global_bindings_p langhook.
8963         * toplev.c (compile_file): Use getdecls langhook.
8964         * tree-inline.c (remap_block): Use insert_block langhook.
8965         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
8966         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
8967
8968 2002-03-21  Richard Henderson  <rth@redhat.com>
8969
8970         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
8971         constants in .data when -fpic.
8972
8973 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8974
8975         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
8976         where appropriate.
8977
8978 2002-03-21  Tom Tromey  <tromey@redhat.com>
8979
8980         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
8981
8982 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8983
8984         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
8985
8986         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
8987
8988 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
8989             Richard Henderson  <rth@redhat.com>
8990
8991         PR c/5354
8992         * c-common.c (c_expand_expr): Preserve result of a statement
8993         expression if needed.
8994
8995 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
8996
8997         PR bootstrap/4195
8998         * genrecog.c (maybe_both_true_mode): Remove.
8999         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
9000         * machmode.def (Pmode): Likewise.
9001
9002 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
9003
9004         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
9005         (nonlocal_mentioned_p_1): New function.
9006         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
9007         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
9008         (mark_constant_function): Recognize pure functions.
9009         * rtl.h (global_reg_mentioned_p): New prototype.
9010         * rtlanal.c (global_reg_mentioned_p,
9011         global_reg_mentioned_p_1): New function.
9012
9013 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9014
9015         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
9016         UNIX assert.h.
9017         * fixinc/fixincl.x: Regenerate.
9018
9019 2002-03-20  Jason Merrill  <jason@redhat.com>
9020
9021         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
9022
9023 2002-03-20  Michael Meissner  <meissner@redhat.com>
9024
9025         * doc/invoke.texi (Optimize Options): Document that -O2 sets
9026         -fstrict-aliasing.
9027
9028 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
9029
9030         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
9031         ".literal_position" directive before the constant pool.
9032
9033 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9034
9035         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
9036         Add Craig Rodrigues.
9037         Add Brad Lucier to testers.
9038
9039 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
9040
9041         PR target/4792
9042         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
9043         to if_then_else.
9044         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
9045         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
9046         instead of insn_extract.
9047
9048 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
9049
9050         PR bootstrap/4192
9051         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
9052
9053         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
9054         stmt if some case has been output.
9055
9056 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
9057
9058         PR c/5972
9059         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
9060         movsfcc_1, movdfcc_1): Add %O2.
9061         * config/i386/i386.c (print_operand): Handle %ON.
9062         Print . before float condition codes in Sun as cmov syntax.
9063         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
9064         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
9065         no longer true.
9066
9067 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
9068
9069         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
9070         return instruction if PC was popped.
9071
9072 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
9073
9074         * config/xtensa/xtensa.md: Remove unused type attributes.
9075         (adddi_carry, subddi_carry): Change type attribute to "multi".
9076
9077 2002-03-19  Dale Johannesen  <dalej@apple.com>
9078
9079         PR optimization/5999, middle-end/5731
9080         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
9081         multiplications by reciprocals.
9082
9083 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
9084
9085         * Makefile.in: Update.
9086         * c-common.c: Include langhooks.h.
9087         (inline_forbidden_p): Use new hook.
9088         * diagnostic.c: Include langhooks.h.
9089         (format_with_decl, announce_function,
9090         default_print_error_function): Use new hook.
9091         * dwarf2out.c (dwarf2_name): Use new hook.
9092         * function.c: Include langhooks.h.
9093         (init_function_start): Use new hook.
9094         * langhooks-def.h (lhd_decl_printable_name): New.
9095         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
9096         (LANGHOOKS_INITIALIZER): Update.
9097         * langhooks.c (lhd_decl_printable_name): New.
9098         * langhooks.h (struct lang_hooks): New hook.
9099         * toplev.c (decl_name, decl_printable_name): Remove.
9100         (open_dump_file): Use new hook.
9101         (process_options): Remove old hook.
9102         * tree.h (decl_printable_name): Remove.
9103 objc:
9104         * objc-act.c (objc_init): Remove old hook.
9105         (objc_printable_name): Export.
9106         * objc-act.h (objc_printable_name): New.
9107         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
9108
9109 2002-03-19  Jim Blandy  <jimb@redhat.com>
9110
9111         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
9112         the start_source_file debug hook, not the current line number.
9113
9114 2002-03-19  Richard Henderson  <rth@redhat.com>
9115
9116         * flow.c (EH_USES): Provide default.
9117         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
9118         * doc/tm.texi (EH_USES): New.
9119
9120         * config/ia64/ia64.c (ia64_eh_uses): New.
9121         * config/ia64/ia64-protos.h: Update.
9122         * config/ia64/ia64.h (EH_USES): New.
9123
9124 2002-03-19  Richard Henderson  <rth@redhat.com>
9125
9126         * varasm.c (output_constant_def): Fix stupid typo.
9127
9128 2002-03-19  Richard Henderson  <rth@redhat.com>
9129
9130         PR 5879
9131         * except.c (current_function_has_exception_handlers): New.
9132         * except.h: Declare it.
9133         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
9134         Combine tests that disable all sibcalls for the function.
9135
9136 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
9137
9138         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
9139         for INTEGER_CST.
9140
9141 2002-03-19  Richard Henderson  <rth@redhat.com>
9142
9143         PR 5977, 5991
9144         * config/ia64/ia64.c: Revert 2002-03-01 patch.
9145         * config/ia64/ia64.h (INIT_EXPANDERS): New.
9146
9147 2002-03-19  Jim Blandy  <jimb@redhat.com>
9148
9149         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
9150         name, even if the replacement list contains no tokens, as required
9151         by Dwarf.
9152
9153 2002-03-19  Jason Merrill  <jason@redhat.com>
9154
9155         * varasm.c (globalize_decl): Get the name from the RTL, not
9156         DECL_ASSEMBLER_NAME.
9157
9158         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
9159
9160 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
9161
9162         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
9163         subdi_carry): Define.
9164
9165 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
9166
9167         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
9168         about -fpic/-fPIC if extra_warnings set.
9169
9170 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
9171
9172         * expr.c (expand_expr): Sign-extend CONST_INT generated from
9173         TREE_STRING_POINTER.
9174         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
9175
9176 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9177
9178         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
9179         in favor of SP if FRAME_POINTER_REQUIRED is false.
9180
9181 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
9182
9183         * emit-rtl.c (gen_int_mode): New function.
9184         * rtl.h: Prototype for it.
9185         * combine.c (make_extraction, simplify_comparison), expmed.c
9186         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
9187         (convert_modes, store_field), optabs.c (expand_fix),
9188         simplify-rtx.c (neg_const_int, simplify_unary_real),
9189
9190         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
9191         Use it instead of GEN_INT (trunc_int_for_mode (...)).
9192
9193 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
9194
9195         PR c/5656
9196         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
9197         convert_parm_for_inlining.
9198         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
9199         Define.
9200         * langhooks-def.h: Likewise.
9201         * objc/objc-lang.c: Likewise.
9202         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
9203         function.
9204         * tree-inline.c (initialize_inlined_parameters):
9205         Call convert_parm_for_inlining lang hook if needed.
9206         * c-typeck.c (c_convert_parm_for_inlining): New function.
9207         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
9208
9209 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
9210
9211         * calls.c (precompute_arguments): Do not assume that temporaries
9212         can be destroyed after expanding the argument.
9213         (expand_call): Likewise.
9214
9215 2002-03-15  Eric Christopher  <echristo@redhat.com>
9216
9217         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
9218         Fix register preference on last change.
9219         * config/mips/mips.c (mips_return_in_memory): New function.
9220         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
9221         * config/mips/mips-protos.h: Declare.
9222         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
9223         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
9224
9225 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
9226
9227         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
9228         a register too.
9229         (anddi3, iorsi3): Likewise.
9230
9231         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
9232         use %gprel for symbols that are going to be placed in linkonce
9233         sections.
9234
9235         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
9236         RETURN_ADDRESS_POINTER_REGNUM to $ra.
9237         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
9238         not needed.  Disregard leaf_function_p().
9239         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
9240         mips16 frame pointer.
9241         * config/mips/mips.md (store ra): Only to small SP offsets.
9242         2001-08-22  Graham Stott  <grahams@redhat.com>
9243         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
9244         return a REG rtx for the return address register.
9245
9246 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
9247
9248         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
9249         constant-pool addresses as "mode-dependent".
9250         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
9251
9252 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
9253
9254         PR target/5740
9255         * expr.c (emit_group_load): Use extract_bit_field if
9256         needed for CONCAT arguments.
9257
9258 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
9259
9260         PR target/4863
9261         * arm.md (tablejump): Make this a define_expand.  For PIC add the
9262         offset to the base of the table.
9263         (thumb_tablejump): Matcher for Thumb tablejump insn.
9264         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
9265         as the difference of two labels.
9266         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9267         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
9268         tables in the code.
9269         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
9270         * arm.c (get_jump_table_size): If the table is not in the text
9271         section, return zero.
9272
9273 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
9274
9275         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
9276         of gen_rtx_SUBREG.
9277         (arm_reload_out_hi): Use gen_lowpart instead of
9278         gen_rtx_SUBREG to access QImode components.
9279         * config/arm/arm.md: Disable zero_extend split for QImode
9280         subregs in BIG_ENDIAN mode.
9281         (storehi_bigend): Match use of least significant byte.
9282         (storeinthi): Remove extraneous SUBREG.
9283         Add missing construction of operands[2].
9284         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
9285         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
9286         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
9287
9288 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
9289
9290         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
9291         any_operand.
9292
9293 2002-03-17  Richard Henderson  <rth@redhat.com>
9294
9295         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
9296         explicitly.
9297
9298 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
9299
9300         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
9301         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
9302
9303 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9304
9305         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
9306
9307         * predict.c (estimate_bb_frequencies): Delete unused variables.
9308
9309 2002-03-17  Richard Henderson  <rth@redhat.com>
9310
9311         * config/ia64/ia64.c (ia64_attribute_table): Move before
9312         targetm definition.  Make static.
9313
9314 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
9315
9316         * c-common.h (yyparse, c_common_parse_file): New.
9317         * c-lang.c: Include c-common.h.
9318         (LANG_HOOKS_PARSE_FILE): Redefine.
9319         * c-lex.c: Include c-common.h.
9320         (yyparse): Rename c_common_parse_file.  Call yyparse.
9321         * c-parse.in (yyparse): Remove macro.
9322         * c-tree.h (yyparse_1): Remove.
9323         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
9324         (LANG_HOOKS_INITIALIZER): Update.
9325         * langhooks.h (struct lang_hoooks): New hook parse_file.
9326         * toplev.c (compile_file): Use parse_file hook.
9327         * tree.h (yyparse): Remove.
9328         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
9329
9330 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
9331
9332         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
9333         float_truncate, not fix.
9334         ("*truncdfsf2_real"): Ditto.
9335         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
9336
9337         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
9338
9339 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
9340
9341         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
9342         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
9343         where appropriate.  Make the second reference to
9344         leaf_function_p a function call, as intended.  Reindented.
9345
9346         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
9347         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
9348
9349         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
9350         add register to non-constant into sp.
9351
9352         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
9353         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
9354         (mips16_gp_pseudo_rtx): Lose.
9355         (INIT_EXPANDERS): Deleted.
9356         * config/mips/mips.c (mips_init_machine_status): New.
9357         (mips_free_machine_status): New.
9358         (mips_mark_machine_status): New.
9359         (override_options): Set them.
9360         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
9361         (struct machine_function): ... new.  Replaced all references.
9362         (mips_add_gc_roots): Don't mark them.
9363         (embedded_pic_fnaddr_reg): New, extracted from...
9364         (embedded_pic_offset): ... here.
9365         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
9366         (movsi): Likewise.
9367
9368 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
9369
9370         * cppinit.c: Revert -MD removal.
9371
9372 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9373
9374         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
9375         soft registers by default for 68HC12.
9376         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
9377         when compiling with -fomit-frame-pointer.
9378         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
9379         (expand_epilogue): Likewise.
9380         (m68hc11_gen_rotate): Use exg when rotating by 8.
9381
9382 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9383
9384         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
9385         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
9386         (splits): Remove unused add splits.
9387         ("*addhi3_68hc12"): Tune constraints.
9388         ("addhi_sp"): Try to use X instead of Y in all cases and if the
9389         constant fits in 8-bits and D is dead use abx/aby instructions.
9390         ("*addhi3"): Remove extern declaration of ix_reg.
9391         ("*subsi3"): Optimize and provide new split.
9392         ("subhi3"): Cleanup.
9393         ("*subhi3_sp"): Avoid saving X if we know it is dead.
9394         (arith splits): For 68hc12 save the address register on the stack
9395         and do the arithmetic operation with a pop.
9396
9397 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9398
9399         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
9400         allocating QImode in address registers.
9401         ("*movqi_m68hc11"): Likewise.
9402
9403 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
9404
9405         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
9406
9407 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
9408
9409         * cppinit.c (print_help): Display -MD and -MMD.
9410         Don't display usage string.  Update assertion syntax and
9411         typo.
9412         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
9413         (cpp_handle_option): Update.
9414
9415 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
9416
9417         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
9418         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
9419         and define it so that regardless of target CPU size,
9420         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
9421         of "int" rather than "long."
9422
9423 2002-03-15  Richard Henderson  <rth@redhat.com>
9424
9425         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
9426         size as a tree.
9427
9428 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9429
9430         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
9431         ("tstqi" split): Avoid using memory for tstqi on address register.
9432         (splits): Remove constraints.
9433         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
9434         ("cmpdf", "cmpsf"): Remove since not used.
9435         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
9436         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
9437
9438 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9439
9440         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
9441         ("neghi2"): Tighten constraints.
9442         ("one_cmplsi2"): Optimize and simplify split.
9443         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
9444
9445 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9446
9447         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
9448         and split of AND operation to clear the upper bits.
9449         ("*logicalsi3_zextqi"): Likewise.
9450         ("*logicallhi3_zexthi_ashift8"): Likewise.
9451         ("*logicalsi3_silshr16"): Likewise.
9452         ("logicalsi3_silshl16"): Likewise.
9453         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
9454
9455 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9456
9457         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
9458         (m68hc11_indirect_p): New function.
9459         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
9460         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
9461         TARGET_M6812.
9462         (asm_print_register): Likewise.
9463         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
9464         (m68hc11_indirect_p): Declare.
9465         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
9466         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
9467         (TARGET_SWITCHES): New option -mrelax.
9468         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
9469         destination.
9470         ("iorsi3", "xorsi3"): Likewise.
9471         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
9472         ("*andhi3_mem"): New to handle destination in memory with bclr
9473         and a scratch register.
9474         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
9475         ("*andhi3_const"): New when operand2 is constant.
9476         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
9477         ("*andhi3_gen"): Cleanup of the old "andhi3".
9478         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
9479         ("xorqi3"): Update constraints.
9480
9481 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9482
9483         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
9484         for reg_equiv_memory_loc when the operand is a register that does
9485         not get a hard register (stack location).
9486         (tst_operand): After reload, accept all memory operand.
9487         (symbolic_memory_operand): Fix detection of symbolic references.
9488         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
9489         accept symbols and any constant.
9490
9491 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9492
9493         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
9494         note on the insn that sets the soft frame register.
9495         (must_parenthesize): ix and iy are also reserved names.
9496         (print_operand_address): One more place where parenthesis are required
9497         to avoid confusion with register names.
9498         (m68hc11_gen_movhi): Allow push of stack pointer.
9499         (m68hc11_check_z_replacement): Fix handling of parallel with a
9500         clobber.
9501         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
9502         the replacement register is.
9503         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
9504         and D8_REGS classes.
9505         (MODES_TIEABLE_P): All modes are tieable except QImode.
9506
9507 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9508
9509         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
9510         (___subdi3): Likewise.
9511         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
9512         (__map_data_section): Optimize 68hc11 case.
9513
9514 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9515
9516         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
9517         than a shift to avoid adding a register with itself.
9518         (m68hc11_memory_move_cost): Take into account NO_REGS.
9519         (m68hc11_register_move_cost): Update and use memory move cost
9520         for soft registers.
9521         (m68hc11_address_cost): Make cost of valid offset not 0 so that
9522         it gives more opportunities to cse to optimize.
9523         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
9524         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
9525
9526 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
9527
9528         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
9529         * c-common.def (CLEANUP_STMT): New tree node.
9530         * c-common.h (CLEANUP_DECL): New macro.
9531         (CLEANUP_EXPR): Likewise.
9532         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
9533         * expr.c (expand_expr): Tidy.
9534         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
9535         * tree-inline.c (initialize_inlined_parameters): Clean up
9536         new local variables.
9537
9538 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
9539
9540         PR bootstrap/4128
9541         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
9542         before movrXX only, use reg_overlap_mentioned_p.
9543         Only special case NE if just one insn can be generated.
9544
9545 2002-03-15  Jason Merrill  <jason@redhat.com>
9546
9547         * varasm.c (assemble_variable): Call resolve_unique_section before
9548         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
9549         of error_mark_node.
9550
9551 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
9552
9553         PR target/5170
9554         * arm.md (split pattern for thumb shiftable immediates): Add comment
9555         explaining non-obvious test.
9556
9557 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
9558
9559         PR target/5712
9560         * arm.md (movaddr, movaddr_insn): Delete.
9561
9562 2002-03-15  Jason Merrill  <jason@redhat.com>
9563
9564         * toplev.c (wrapup_global_declarations): Clarify variable handling.
9565         -fkeep-static-consts doesn't apply to comdats.
9566
9567 2002-03-14  Richard Henderson  <rth@redhat.com>
9568
9569         * c-decl.c: Include c-pragma.h.
9570         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
9571         (finish_function): Tidy.
9572         * c-pragma.c: Include c-common.h.
9573         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
9574         (handle_pragma_weak): Use them.
9575         (init_pragma): Register pending_weaks.
9576         * c-pragma.h (maybe_apply_pragma_weak): Declare.
9577         * print-tree.c (print_node): Print DECL_WEAK.
9578         * varasm.c (mark_weak_decls): Remove.
9579         (remove_from_pending_weak_list): Remove.
9580         (add_weak): Remove.
9581         (asm_emit_uninitialised): Call globalize_decl for weak commons.
9582         (weak_decls): Make a tree_list.
9583         (declare_weak): Cons weak_decls directly.
9584         (globalize_decl): Remove weak_decls elements directly.
9585         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
9586         symbols.  Don't pretend to handle aliases.
9587         (init_varasm_once): Update weak_decls registry.
9588         * Makefile.in: Update dependencies.
9589
9590 2002-03-14  Richard Henderson  <rth@redhat.com>
9591
9592         PR target/5312
9593         * config/ia64/ia64.c: Include tm_p.h last.
9594         (gen_nop_type): Remove duplicate definition.
9595         (cycle_end_fill_slots): Set sched_data for second L slot.
9596         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
9597         (nop_cycles_until): Fix typos.
9598
9599 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
9600
9601         PR optimization/5891
9602         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
9603
9604 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
9605
9606         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
9607           descriptors correctly.
9608
9609 2002-03-14  Michael Meissner  <meissner@redhat.com>
9610
9611         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
9612         100, allowing MAX_UNROLLED_INSNS to be overridden.
9613
9614         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
9615         --param.
9616
9617         * unroll.c (params.h): Include.
9618         (MAX_UNROLLED_INSNS): Delete, now in params.h.
9619
9620         * doc/invoke.texi (--param max-unroll-insns): Document.
9621
9622         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
9623
9624 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
9625
9626         * arm.md: Fix warnings about constraints in peepholes and splits.
9627
9628 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
9629
9630         * cpphash.h (struct lexer_state): Remove line_extension member.
9631         * cpplib.c (dequote_string, do_linemarker): New functions.
9632         (linemarker_dir): New data object.
9633         (DIRECTIVE_TABLE): No longer need to interpret #line in
9634         preprocessed source.  Delete obsolete comment about return
9635         values of handlers.
9636         (end_directive, directive_diagnostics, _cpp_handle_directive):
9637         Don't muck with line_extension.
9638         (directive_diagnostics): No need to issue warnings for
9639         linemarkers here.
9640         (_cpp_handle_directive): Issue warnings for linemarkers here,
9641         when appropriate.  Dispatch linemarkers to do_linemarker, not
9642         do_line.
9643         (do_line): Code to handle linemarkers split out to do_linemarker.
9644         Convert escape sequences in filename argument, both places.
9645
9646         * cppmacro.c (quote_string): Rename cpp_quote_string and
9647         export.  All callers changed.
9648         * cpplib.h (cpp_quote_string): Prototype.
9649         * cppmain.c (print_line): Call cpp_quote_string on to_file
9650         before printing it.
9651
9652         * doc/cpp.texi: Document that escapes are now interpreted in
9653         #line and in linemarkers, and that non-printing characters are
9654         converted to octal escapes when linemarkers are generated.
9655
9656 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
9657
9658         * emit-rtl.c (try_split): Use delete_insns.
9659         * recog.c (split_all_insns): Fix terminating condition.
9660
9661 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
9662             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
9663
9664         PR target/5828
9665         * arm.c (arm_output_epilogue): Fix floating-point register save
9666         adjustment when using a frame pointer.
9667
9668 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
9669
9670         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
9671         * config/mips/mips.c (compute_frame_size): Retrofit them here.
9672         (save_restore_insns, mips_expand_epilogue): And here.
9673         (build_mips16_call_stub): And here.
9674         (mips_function_value): Use the new macros to decide whether a single
9675         or complex float can be returned in floating-point registers.  Return
9676         a parallel rtx in the complex case.
9677
9678 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
9679
9680         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
9681         call after liveness analysis.
9682
9683         * recog.c (split_insn): Use delete_insn_and_edges.
9684
9685         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
9686         instructions to have branch prediction notes.
9687         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
9688
9689 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
9690
9691         * configure.in: Don't pass -Wno-long-long to a ADA compiler
9692         that doesn't support it.
9693         * configure: Regenerate.
9694
9695 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9696
9697         PR target/5626
9698         * config/sparc/sparc.md (normal_branch, inverted_branch,
9699         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
9700         inverted_fp_branch): Adjust calls to output_cbranch.
9701         Set length attribute.
9702         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
9703         output_v9branch.  Set length attribute.
9704         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
9705         predicates.
9706         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
9707         (output_cbranch): Likewise.  Handle far branches.
9708         (output_v9branch): Handle far branches.
9709         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
9710         Adjust prototypes.
9711         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
9712         noov_compare64_op predicates.
9713
9714 2002-03-13  Jason Merrill  <jason@redhat.com>
9715
9716         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
9717         into the function and constify it.
9718         * gthr-dce.h, gthr-solaris.h: Likewise.
9719
9720 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
9721
9722         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
9723         * config/rs6000/rs6000.c (rs6000_va_arg): Use
9724         std_expand_builtin_va_arg if not ABI_V4.
9725
9726 2002-03-13  Jason Merrill  <jason@redhat.com>
9727
9728         * varasm.c (globalize_decl): New fn.
9729         (assemble_start_function): Use it.
9730         (asm_emit_uninitialized): Use it.
9731         (assemble_alias): Use it.
9732         (assemble_variable): Use it.
9733
9734 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
9735
9736         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
9737         2002-03-12 internal visibility change.
9738         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
9739         visibility into SYMBOL_REF_FLAG.
9740
9741 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
9742
9743         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
9744         VOIDmode operand.  Add compile-time optimization for constant results.
9745
9746 2002-03-12  Jason Merrill  <jason@redhat.com>
9747
9748         * c-typeck.c (convert_for_assignment): Don't allow conversions
9749         between pointers and references.  Only allow lvalues to convert to
9750         reference.
9751
9752 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
9753
9754         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
9755         before prologue, to avoid scheduling problems.
9756
9757 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9758
9759         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
9760         (ELIMINABLE_REGS): Add sfp->sp.
9761         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
9762
9763 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9764
9765         PR optimization/5892
9766         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
9767
9768 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9769
9770         * loop.c (basic_induction_var): Don't call convert_modes if mode
9771         classes are different.
9772
9773 2002-03-12  Richard Henderson  <rth@redhat.com>
9774
9775         PR optimization/5901
9776         * function.c (reposition_prologue_and_epilogue_notes): Position
9777         the markers after/before the last/first insn not deleted.
9778
9779 2002-03-12  Richard Henderson  <rth@redhat.com>
9780
9781         PR optimization/5878
9782         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
9783         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
9784         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
9785
9786         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
9787         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
9788         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
9789
9790         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
9791         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
9792         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
9793         also.  Don't set it if not flag_pic.
9794         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
9795         to be INVALID_REGNUM when not used.
9796
9797 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
9798
9799         * expmed.c (store_bit_field): Reset alias set for memory.
9800         (extract_bit_field): Same.
9801
9802 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9803
9804         * c-common.c (c_tree_code_type, c_tree_code_length,
9805         c_tree_code_name, add_c_tree_codes): Delete.
9806         * c-common.h (add_c_tree_codes): Delete.
9807         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
9808         Define.
9809         * c-objc-common.c (c_objc_common_init): Don't call
9810         add_c_tree_codes, instead set lang_unsafe_for_reeval.
9811         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
9812         objc_tree_code_name, add_objc_tree_codes): Delete.
9813         (objc_init): Don't call add_objc_tree_codes.
9814         * objc/objc-lang.c (tree_code_type, tree_code_length,
9815         tree_code_name): Define.
9816         * toplev.c (lang_independent_init): Don't set
9817         tree_code_length[IDENTIFIER_NODE].
9818         * tree.c (tree_code_type, tree_code_length, tree_code_name):
9819         Delete definitions, moved to language front-ends.
9820         * tree.def (IDENTIFIER_NODE): Hardwire the length.
9821         * tree.h (tree_code_type, tree_code_length, tree_code_name):
9822         Const-ify.
9823         (tree_code_length): Change type to unsigned char.
9824
9825 2002-03-12  Richard Henderson  <rth@redhat.com>
9826
9827         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
9828         internal visibility change.
9829
9830 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9831
9832         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
9833         validize_mem() instead of change_address to avoid clobbering
9834         memory attributes.
9835
9836 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
9837
9838         * c-lex.h (position_after_whitespace): Remove.
9839
9840 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
9841
9842         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
9843         (lex_string): Use unsigned char pointers.
9844
9845 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
9846
9847         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
9848         is not a valid memory_operand.
9849
9850 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9851
9852         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
9853         * config/xtensa/lib1funcs.asm: Fix copyright to include
9854         special case for libgcc files.
9855         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
9856         (__divsi3): Likewise.
9857         (__umodsi3): Likewise.
9858         (__modsi3): Likewise.
9859         * config/xtensa/lib2funcs.S: Fix copyright to include
9860         special case for libgcc files.
9861
9862 2002-03-12  Tom Rix  <trix@redhat.com>
9863
9864         * collect2.c (resolve_lib_name): Move outside of
9865         OBJECT_FORMAT_COFF ifdef.
9866         (ignore_library): Same.
9867
9868 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9869
9870         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
9871
9872 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9873
9874         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
9875         to function_section before writing out the constant pool.
9876
9877 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
9878
9879         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
9880         zero_constant.
9881         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
9882
9883 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
9884
9885         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
9886         (adddi3): Likewise.
9887         (movdf): Likewise.
9888         (movdi): Likewise.
9889         (cmpsi splitter): Likewise.
9890         (modsi3): Fail if <= 0.
9891         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
9892         redundant test when HOST_BITS_PER_WIDE_INT != 32.
9893         (reg_or_sub_cint64_operand): Likewise.
9894         (num_insns_constant_wide): Optimize sign extension.
9895         (rs6000_legitimize_address): Likewise.
9896
9897 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
9898
9899         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
9900         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
9901
9902 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
9903
9904         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
9905         address calculation.
9906
9907 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
9908
9909         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
9910         scratch register to DImode / TImode.
9911         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
9912         register used does not overlap the target.
9913
9914 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9915
9916         * Makefile.in (debug.o): Depend on debug.h.
9917         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
9918         * debug.c (do_nothing_debug_hooks): Likewise.
9919         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
9920         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
9921         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
9922         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
9923         * dwarfout.c (dwarf_debug_hooks): Likewise.
9924         * integrate.c (output_inline_function): Likewise.
9925         * objc/objc-act.c (synth_module_prologue): Likewise.
9926         * sdbout.c (sdb_debug_hooks): Likewise.
9927         * toplev.c (debug_hooks): Likewise.
9928         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9929
9930 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9931
9932         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
9933         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
9934         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
9935         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
9936         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
9937         * defaults.h (POINTER_SIZE): Define.
9938         * doc/tm.texi (POINTER_SIZE): Document default.
9939
9940 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9941
9942         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
9943
9944 2002-03-11  Richard Henderson  <rth@redhat.com>
9945
9946         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
9947         if rebuild_label_notes_after_reload.
9948
9949 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
9950
9951         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
9952         emit pic register load if "internal" visibility.
9953         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
9954         (cris_expand_builtin_va_arg): Do all computations on trees.
9955
9956 2002-03-11  Richard Henderson  <rth@redhat.com>
9957
9958         * rtlanal.c: Include recog.h.
9959         (keep_with_call_p): Fix thinko.
9960         * Makefile.in (rtlanal.o): Update dependencies.
9961
9962 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
9963
9964         * genflags.c (gen_insn): Use IS_VSPACE.
9965         * genoutput.c (output_insn_data): Likewise.
9966         (process_template): Likewise.
9967
9968 2002-03-11  Richard Henderson  <rth@redhat.com>
9969
9970         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
9971
9972 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9973
9974         * Makefile.in: Update.
9975         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
9976         Update documentation.
9977         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
9978         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
9979
9980 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
9981
9982         * Makefile.in: Give texi2pod its input file as a command line
9983         argument, not on stdin.
9984
9985 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
9986             Daniel Berlin  <dan@dberlin.org>
9987
9988         C++ alias analysis improvement.
9989         * alias.c (record_component_aliases): Record aliases for base
9990         classes too.
9991
9992 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9993
9994         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
9995
9996 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
9997
9998         * toplev.c (vms_fopen): Remove, not needed.
9999
10000         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
10001
10002         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
10003
10004         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
10005         for FP, already done later.
10006
10007         * toplev.c (debug_args): Add entry for VMS_DEBUG.
10008         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
10009
10010 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
10011
10012         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
10013         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
10014         LARGEST_EXPONENT_IS_NORMAL for the given mode.
10015         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
10016         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
10017         (ediv, emul, eldexp, esqrt): Likewise.
10018         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
10019         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
10020         (saturate): New function.
10021         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
10022         (make_nan): Use a saturation value instead of a NaN if
10023         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
10024         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
10025         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
10026         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
10027         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
10028         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
10029         !ROUND_TOWARDS_ZERO.
10030         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
10031         (ROUND_TOWARDS_ZERO): Document.
10032
10033 2002-03-11  Andreas Jaeger  <aj@suse.de>
10034
10035         * cfg.c (dump_flow_info): Remove unused variable.
10036
10037 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
10038
10039         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
10040         computations on trees.
10041
10042 2002-03-10  Richard Henderson  <rth@redhat.com>
10043
10044         PR 5693:
10045         * reload.c (copy_replacements_1): New.
10046         (copy_replacements): Use it to recurse through the rtx.
10047
10048 2002-03-10  Richard Henderson  <rth@redhat.com>
10049
10050         * loop.c (strength_reduce): Compute number of iterations as
10051         unsigned HOST_WIDE_INT.
10052
10053 2002-03-10  Richard Henderson  <rth@redhat.com>
10054
10055         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
10056         to move away from the end of the block.
10057
10058 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
10059
10060         PR preprocessor/5899
10061         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
10062
10063 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10064
10065         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
10066
10067         * attribs.c (decl_attributes): Fix signed/unsigned warning.
10068
10069 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
10070
10071         * config/mmix/mmix.c: Improve comments.
10072         (mmix_target_asm_function_prologue): Drop variable
10073         empty_stack_frame.  Don't allocate unused slot above fp.
10074         (mmix_target_asm_function_epilogue): Mirror prologue changes.
10075         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
10076         brace in first column.
10077         (enum reg_class): Ditto.
10078         (FIRST_PARM_OFFSET): Now 0.
10079         (USER_LABEL_PREFIX): Remove #if 0:d definition.
10080
10081 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10082
10083         * combine.c (make_extraction): Fix error in last change.
10084
10085 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10086
10087         * c4x.c (c4x_fp_reglist): Const-ify.
10088         * cris.c (cris_print_operand): Likewise.
10089         * i386.c (ix86_va_arg): Likewise.
10090         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
10091         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
10092         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
10093         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
10094         * mcore.h (regno_reg_class): Likewise.
10095         * mips.c (gen_int_relational): Likewise.
10096         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
10097         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
10098         * pdp11.c (move_costs): Likewise.
10099         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
10100         * s390.c (s390_branch_condition_mnemonic, regclass_map):
10101         Likewise.
10102         * s390.h (regclass_map): Likewise.
10103         * sh.c (shift_amounts): Likewise.
10104         * sh.md (rotlsi3): Likewise.
10105
10106 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
10107
10108         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
10109         (ne0+5): Use new clobber to generate proper shift pattern.
10110         Patch by Michael Matz <matz@kde.org>.
10111
10112 2002-03-09  Andreas Schwab  <schwab@suse.de>
10113
10114         * gcc.c (validate_all_switches): Also handle `%W{...}'.
10115
10116 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
10117
10118         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
10119
10120 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
10121
10122         PR middle-end/5877
10123         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
10124         even for non-representable constants.
10125
10126 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10127
10128         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
10129         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
10130         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
10131         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
10132         (pop_function_context): Compute MAY_SHARE parameter for
10133         fixup_var_refs.
10134         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
10135         (gen_mem_addressof): Call fixup_var_refs with new parm.
10136
10137         * combine.c (make_extraction): Don't make extension of CONST_INT.
10138
10139 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
10140
10141         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
10142         in o32 and o64 ABIs.
10143         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
10144         but getting fixed-size structs passed in registers regardless of
10145         padding in o32 and o64 ABIs.
10146
10147         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
10148         offset before loading address of argument passed by transparent
10149         reference.
10150
10151 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10152
10153         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
10154
10155 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
10156
10157         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
10158         marker such that registers after it are saved.
10159
10160 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10161
10162         * sparc.c (arith_4096_operand): Fix error in last change.
10163
10164 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
10165
10166         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
10167         defaults for MEABI.
10168
10169 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
10170
10171         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
10172         vectors.
10173
10174 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
10175
10176         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
10177
10178 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
10179
10180         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
10181         removed; fix return value.
10182         * combine.c (combine_instructions): Dirtify blocks where we failed to
10183         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
10184         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
10185
10186 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10187
10188         * gcse.c (insert_insn_end_bb): Fix typo in last change.
10189
10190 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
10191
10192         * recog.c (peephole2_optimize): Re-distribute EH edges.
10193
10194 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
10195
10196         * expr.c (expand_expr): Use unsave lang hook.
10197         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
10198         (LANG_HOOKS_INITIALIZER): Update.
10199         * langhooks.h (struct lang_hooks): New hook unsave.
10200         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
10201         (unsave_expr_1): Remove unused lang_unsave_expr_now.
10202         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
10203         (unsave_expr_now): Remove.
10204         * tree.h (unsave_expr_now, lang_unsave,
10205         lang_unsave_expr_now): Remove.
10206         (lhd_unsave): New.
10207
10208 2002-03-08  Andreas Jaeger  <aj@suse.de>
10209
10210         * flow.c (propagate_block_delete_insn): Remove unused variable.
10211
10212 2002-03-08  Kazu Hirata  <kazu@hxi.com>
10213
10214         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
10215         insn length for memory load/store.
10216
10217 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10218
10219         * doc/install.texi (--with-libiconv-prefix): Document.
10220
10221 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
10222
10223         * doc/sourcebuild.texi: Fix typo.
10224
10225 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
10226
10227         PR c/3711
10228         * builtins.c (std_expand_builtin_va_arg): Do all computations on
10229         trees.
10230
10231 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10232
10233         * rtl.c (copy_most_rtx): Move from here ...
10234         * emit-rtl.c (copy_most_rtx): ... to here.
10235
10236 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
10237
10238         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
10239         SUBTARGET_CPP_SIZE_SPEC.
10240         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
10241
10242         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
10243
10244 2002-03-07  Matt Hiller  <hiller@redhat.com>
10245
10246         * gensupport.c (first_dir_md_include): Renamed from include;
10247         change all references.
10248         (last_dir_md_include): Renamed from last_include; change all
10249         references.
10250         (init_md_reader): Unconditionally initialize base_dir whether or
10251         not filename is a relative path.
10252
10253 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
10254
10255         * config/fp-bit.c (_unord_f2): Compile it in even if
10256         US_SOFTWARE_GOFAST is enabled.
10257
10258         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
10259         NULL_RTX.  Set all HFmode operations as NULL_RTX.
10260         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
10261         NULL_RTX, try reversing the comparison and the operands.
10262
10263 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
10264
10265         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
10266         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
10267         and MATCH_OP_DUP.
10268
10269 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
10270
10271         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
10272
10273 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
10274
10275         * basic-block.h (fixup_abnormal_edges): Declare.
10276         * reload1.c (fixup_abnormal_edges): New function.
10277         * reg-stack.c (convert_regs): Use it.
10278
10279         * gcse.c (insert_insn_end_bb): Handle trapping insns.
10280
10281         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
10282
10283 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
10284
10285         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
10286         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
10287         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
10288         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
10289         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
10290         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
10291         unless x and y could be infinite.
10292         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
10293         Check that the common type of both arguments is a real, even for
10294         targets without unordered comparisons.  Allow an integer argument
10295         to be compared against a real.
10296         (expand_tree_builtin): Use expand_unordered_cmp.
10297         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
10298         * cse.c (fold_rtx): Likewise.  Fix indentation.
10299         * fold-const.c (fold_real_zero_addition_p): New.
10300         (fold): Use it, and the new HONOR_... macros.
10301         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
10302         * jump.c (reversed_comparison_code_parts): After searching for
10303         the true comparison mode, use HONOR_NANS to decide whether it
10304         can be safely reversed.
10305         (reverse_condition_maybe_unordered): Remove IEEE check.
10306         * simplify-rtx.c (simplify_binary_operation): Use the new macros
10307         to decide which simplifications are valid.  Allow the following
10308         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
10309         and (a - -b) to (a + b).
10310         (simplify_relational_operation): Use HONOR_NANS.
10311         * doc/tm.texi: Document the MODE_HAS_... macros.
10312
10313 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
10314
10315         * combine.c (simplify_comparison): If simplifying a logical shift
10316         right and compare with constant, force the comparison to unsigned.
10317
10318 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
10319
10320         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
10321
10322         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
10323         -mabi=no-altivec
10324         (alt_reg_names): Remove % for vrsave.
10325
10326 2002-03-06  Richard Henderson  <rth@redhat.com>
10327
10328         PR optimization/5844
10329         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
10330         if used indicates we've already emitted one copy of an operand.
10331         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
10332         (gen_split): Supply a non-null used.
10333
10334 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
10335
10336         * reload1.c (reload): Unshare all rtl after reload is done.
10337
10338         * simplify-rtx.c (simplify_plus_minus): Do not abort,
10339         but simply fail if the expression is too complex to simplify.
10340         (simplify_gen_binary): Handle simplify_plus_minus failures.
10341
10342 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
10343
10344         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
10345         consistently call delete_trivially_dead_insns after CSE and GCSE;
10346         fix DFI_life dumping; do jump threading after liveness; do crossjumping
10347         after liveness2; update comment in last crossjumping.
10348         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
10349
10350 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
10351
10352         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
10353         after completing fast dead code elimination.
10354
10355         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
10356         COMPARE operator.
10357
10358 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
10359
10360         * version.c:  Fix misplaced leading blanks on first line.
10361
10362 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
10363
10364         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
10365
10366 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
10367
10368         * cfgcleanup.c (mentions_nonequal_regs): New function.
10369         (thread_jump): Use it.
10370         * toplev.c (rest_of_compilation): Run jump threading after
10371         liveness.
10372
10373 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
10374
10375         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
10376         patch.
10377
10378 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
10379
10380         * predict.c (estimate_bb_frequencies): Do not reload the
10381         frequencies from notes.
10382
10383 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
10384
10385         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
10386         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
10387
10388         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
10389         delete_noop_moves): Return indeger.
10390         * flow.c (ndead): New variable.
10391         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
10392         BB argument; update callers.
10393         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
10394         (life_analysis): Do not call purge_all_dead_edges.
10395         (update_life_info): Return number of deleted insns; print statistics.
10396         (update_life_info_in_dirty_blocks): likewise.
10397         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
10398         return number of insns deleted.
10399
10400         * cse.c: Include timevar.h
10401         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
10402         iterate until stabilizes; print statistics; return number of killed
10403         insns.
10404         * Makefile.in: (cse.o): Add timevar.h dependency
10405         * rtl.h (delete_trivially_dead_insns): New.
10406         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
10407         * toplev.c (rest_of_compilation): Update callers.
10408
10409         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
10410         (try_optimize_cfg): Do not update liveness.
10411         (cleanup-cfg): Loop until try_optimize_cfg and dead code
10412         removal stabilizes; use delete_trivially_dead_insns.
10413
10414         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
10415
10416 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
10417
10418         * cppmain.c (setup_callbacks): Disable #pragma and #ident
10419         callbacks when processing assembly language.
10420
10421 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10422
10423         * pa.h (ASM_FILE_END): Define.
10424         * som.h (ASM_FILE_END): Delete.
10425
10426         * pa.c (function_arg): Don't pass floats in general registers in
10427         indirect calls if TARGET_ELF32.
10428
10429 2002-03-05  Richard Henderson  <rth@redhat.com>
10430
10431         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
10432
10433 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
10434
10435         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
10436
10437 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
10438
10439         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
10440         -r command line.  Don't hide any symbols if not building
10441         shared libgcc.
10442
10443 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
10444
10445         * cfg.c (dump_flow_info): Warn about profile mismatches.
10446         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
10447         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
10448
10449 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
10450
10451         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
10452         wide volatile memory by parts.
10453
10454 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
10455
10456         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
10457         is NULL.
10458
10459 2002-03-05  Richard Henderson  <rth@redhat.com>
10460
10461         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
10462
10463 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
10464
10465         * toplev.c (documented_lang_options): Document more
10466         language-specific options.
10467         * doc/invoke.texi (Warning Options): Correct documentation for
10468         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
10469         * c-decl.c (c_decode_option): Use a table to handle warning options.
10470
10471 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
10472
10473         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
10474         parameter to mmix_encode_section_info.
10475         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
10476         relocatably.  Always produce ELF, not mmo if linking relocatably.
10477         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
10478         first is non-zero, don't add symbol prefix.
10479         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
10480         prototype accordingly.
10481
10482 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
10483
10484         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
10485
10486 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
10487
10488         * configure.in: Increase required makeinfo version to 4.1.
10489         * configure: Regenerate.
10490
10491 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
10492
10493         * .cvsignore: Remove *.info* and genrtl*; these files are generated
10494         elsewhere now.
10495
10496 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
10497
10498         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
10499         * doc/invoke.texi: Fix @math uses.
10500
10501 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
10502
10503         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
10504         removal
10505
10506 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
10507
10508         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
10509         (powerpc-*-eabisimaltivec*): Same.
10510
10511         * config/rs6000/t-ppcendian: New.
10512
10513 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10514
10515         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
10516         nonimmediate_src_operand and nonimmediate_lsrc_operand to
10517         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
10518
10519 2002-03-03  Richard Henderson  <rth@redhat.com>
10520
10521         * toplev.c (rest_of_decl_compilation): Revert last two changes.
10522
10523 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
10524
10525         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
10526         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
10527         tree.c, config/m68k/m68k.c:
10528         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
10529         REAL_ARITHMETIC blocks unconditional.  Delete some further
10530         #ifdef blocks predicated on REAL_ARITHMETIC.
10531         * flags.h, toplev.c: Delete remaining references to
10532         flag_pretend_float.
10533
10534         * doc/invoke.texi: Remove documentation of -fpretend-float.
10535         * doc/tm.texi: Describe the various REAL_* macros as provided by
10536         real.h, not by the target configuration files.
10537
10538         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
10539         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
10540         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
10541         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
10542         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
10543         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
10544         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
10545         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
10546         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
10547         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
10548         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
10549         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
10550         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
10551         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
10552         config/xtensa/xtensa.h:
10553         Do not define, undefine, or mention in comments any of
10554         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
10555         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
10556         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
10557         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
10558         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
10559         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
10560         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
10561         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
10562         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
10563
10564 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10565
10566         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
10567         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
10568         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
10569         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
10570         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
10571         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
10572         Delete.
10573         * defaults.h (BITS_PER_WORD): Define.
10574         * doc/tm.texi (BITS_PER_WORD): Document default value.
10575
10576         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
10577         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
10578         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
10579
10580 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10581
10582         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
10583         lieu of explicit sizeof/sizeof.
10584         * i386.c (override_options, ix86_init_mmx_sse_builtins,
10585         ix86_expand_builtin): Likewise.
10586         * mips.c (mips_add_gc_roots): Likewise.
10587         * mmix.c (mmix_output_condition): Likewise.
10588         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
10589         altivec_init_builtins): Likewise.
10590         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
10591         * cppexp.c (Nsuff, parse_number): Likewise.
10592         * cppinit.c (builtin_array_end): Likewise.
10593         * gcc.c (n_default_compilers, process_command): Likewise.
10594         * genpreds.c (output_predicate_decls): Likewise.
10595         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
10596         * lcm.c (N_ENTITIES): Likewise.
10597         * stor-layout.c (set_sizetype): Likewise.
10598
10599 2002-03-03  Richard Henderson  <rth@redhat.com>
10600
10601         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
10602         for types or labels.
10603
10604 2002-03-03  Richard Henderson  <rth@redhat.com>
10605
10606         * c-decl.c (start_decl): Initialized variables are not common.
10607
10608 2002-03-02  Per Bothner  <per@bothner.com>
10609
10610         * gcc.c (option_map):  Suport new --bootclasspath option.
10611         --CLASSPATH is now just an alias for --classpath.
10612
10613 2002-03-02  Richard Henderson  <rth@redhat.com>
10614
10615         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
10616         load if "internal" visibility.
10617         * doc/extend.texi: Document visibility meanings.
10618
10619 2002-03-02  Richard Henderson  <rth@redhat.com>
10620
10621         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
10622         to functions as well.
10623
10624 2002-03-02  Richard Henderson  <rth@redhat.com>
10625
10626         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
10627         (handle_visibility_attribute): Don't call assemble_visibility.
10628         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
10629         without asmspec.  Invoke assemble_alias when needed.
10630         * varasm.c (maybe_assemble_visibility): New.
10631         (assemble_start_function, assemble_variable, assemble_alias): Use it.
10632
10633 2002-03-02  Richard Henderson  <rth@redhat.com>
10634
10635         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
10636         invoke ENCODE_SECTION_INFO with first call flag.
10637
10638         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
10639         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
10640         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
10641         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
10642         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
10643         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
10644         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
10645         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
10646         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
10647         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
10648         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
10649         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
10650         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
10651         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
10652         config/mcore/mcore-protos.h, config/mcore/mcore.c,
10653         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
10654         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
10655         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
10656         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
10657         config/sh/sh.h, config/sparc/sparc.h,
10658         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
10659         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
10660         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
10661         FIRST argument.  As needed, examine it and do nothing.
10662
10663         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
10664         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
10665         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
10666
10667         * config/arm/t-pe (pe.o): Add dependencies.
10668
10669 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10670
10671         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
10672         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
10673         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
10674         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
10675         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
10676         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
10677         * defaults.h (BITS_PER_UNIT): Define.
10678         * doc/tm.texi (BITS_PER_UNIT): Document default value.
10679
10680 2002-03-02  Kazu Hirata  <kazu@hxi.com>
10681
10682         * config/h8300/h8300-protos.h: Add a prototype for
10683         compute_a_shift_length.
10684         * config/h8300/h8300.c (h8300_asm_insn_count): New.
10685         (compute_a_shift_length): Likewise.
10686         (h8300_adjust_insn_length): Do not adjust insn length of shift
10687         insns.
10688         * config/h8300/h8300.md (anonymous shift patterns): Use
10689         compute_a_shift_length.
10690
10691 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10692
10693         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
10694         trunc_int_for_mode.
10695
10696         * emit-rtl.c (offset_address): Call update_temp_slot_address.
10697
10698 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10699
10700         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
10701         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
10702         * flags.h (flag_zero_initialized_in_bss): Declare.
10703         * toplev.c (flag_zero_initialized_in_bss): New flag.
10704         (lang_independent_options): Add flag_zero_initialized_in_bss.
10705         * tree.c (initializer_zerop): New function.
10706         * tree.h (initializer_zerop): Declare.
10707         * varasm.c (assemble_variable): If we can emit bss, put zero
10708         initializers in the bss section.
10709
10710 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
10711
10712         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
10713         like more than one symbol per .weak directive.
10714
10715 2002-03-01  Richard Henderson  <rth@redhat.com>
10716
10717         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
10718         adjust argument_pointer by pretend_args_size.
10719         (ia64_va_start): Adjust va_start address by -pretend_args_size.
10720
10721 2002-03-01  Kazu Hirata  <kazu@hxi.com>
10722
10723         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
10724
10725 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
10726
10727         * toplev.c (rest_of_compilation): Delete dead jumptables before
10728         loop.
10729         * flow.c (delete_dead_jumptables): Make global.
10730         * rtl.h (delete_dead_jumptables): Declare.
10731
10732 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
10733
10734         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
10735         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
10736         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
10737
10738 2002-03-01  Kazu Hirata  <kazu@hxi.com>
10739
10740         * config/h8300/h8300-protos.h: Fix formatting.
10741         * config/h8300/h8300.c: Likewise.
10742         * config/h8300/h8300.h: Likewise.
10743
10744 2002-03-01  Kazu Hirata  <kazu@hxi.com>
10745
10746         * config/h8300/h8300.c (print_operand): Support 16-bit
10747         constant addresses.
10748         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
10749
10750 2002-02-28  Richard Henderson  <rth@redhat.com>
10751
10752         * expmed.c (store_bit_field): Prevent generation of CONCATs;
10753         pun complex values as integers; use gen_lowpart instead of
10754         gen_rtx_SUBREG.
10755         (extract_bit_field): Likewise.
10756
10757 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
10758             David Edelsohn  <edelsohn@gnu.org>
10759
10760         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
10761         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
10762         (SUPPORTS_WEAK): Likewise.
10763         * output.h (add_weak): Add tree param.
10764         * varasm.c (add_weak): Likewise.  Save decl.
10765         (struct weak_syms): Add decl field.
10766         (mark_weak_decls): New function.
10767         (init_varasm_once): ggc_add_root mark_weak_decls.
10768         (assemble_start_function): Use ASM_WEAKEN_DECL.
10769         (assemble_variable): Likewise.
10770         (assemble_alias): Likewise.
10771         (declare_weak): Pass decl to add_weak.
10772         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
10773         (remove_from_pending_weak_list): Declare and define for
10774         ASM_WEAKEN_DECL.
10775         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
10776         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
10777         * defaults.h (SUPPORTS_WEAK): Likewise.
10778         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
10779         .weak for code sym.  Do emit .size for descriptor sym.
10780         (ASM_DECLARE_FUNCTION_SIZE): Define.
10781         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
10782         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
10783         .lglobl unless TARGET_XCOFF.  Formatting fixes.
10784         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
10785         .weak for code sym.
10786         (HANDLE_PRAGMA_WEAK): Remove.
10787         (ASM_WEAKEN_LABEL): Remove.
10788         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
10789
10790 2002-03-01  Jason Merrill  <jason@redhat.com>
10791
10792         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
10793         (TARGET_EXPR_CLEANUP): New macro.
10794
10795 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
10796
10797         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
10798         to take ptr_extend into account as third type of extension.
10799         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
10800         fields used by SUBREG_PROMOTED_UNSIGNED_P.
10801         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
10802         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
10803         * calls.c (precompute_arguments): Use new macro.
10804         (expand_call): Ditto.
10805         * combine.c (nonzero_bits): Ditto.
10806         (record_promoted_value): Ditto.
10807         * expr.c (store_expr): Ditto.
10808         (expand_expr): Ditto.
10809         * function.c (assign_parms): Ditto.
10810
10811 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
10812
10813         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
10814         override -shared and -shared-libgcc.
10815
10816 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
10817
10818         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
10819         of "ultrasparc".
10820         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
10821         to be broken.
10822
10823 2002-02-28  Richard Henderson  <rth@redhat.com>
10824
10825         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
10826         4 cycle latency from MM producers.
10827         (ia64_internal_sched_reorder): Likewise with pipeline flush.
10828
10829 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
10830
10831         * mklibgcc.in: Don't use GNU make extension.
10832
10833 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
10834
10835         * c-parse.in (STATIC): New terminal.
10836         (scspec): New non-terminal.  Update productions accordingly.
10837         (program): Remove bogus ifc / end ifc.
10838         (array_declarator): Simplify production using STATIC.
10839
10840 2002-02-28  Jim Meyering  <meyering@lucent.com>
10841
10842         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
10843         \a still means TARGET_BELL.
10844
10845 2002-02-28  Richard Henderson  <rth@redhat.com>
10846
10847         * haifa-sched.c (sched_emit_insn): New.
10848         (schedule_block): Use last_scheduled_insn to track last insn.
10849         * sched-int.h (sched_emit_insn): Prototype.
10850         * config/ia64/ia64.c (last_issued): Remove.
10851         (ia64_variable_issue): Don't set it.
10852         (nop_cycles_until): Use sched_emit_insn.
10853
10854 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
10855
10856         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
10857         extended constants.
10858
10859 2002-02-28  Kazu Hirata  <kazu@hxi.com>
10860
10861         * config/h8300/h8300.c: Fix formatting.
10862         * config/h8300/h8300.h: Likewise.
10863
10864 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
10865
10866         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
10867         which may overwrite the high byte of the frame pointer.
10868
10869 2002-02-28  Bo Thorsen  <bo@suse.de>
10870
10871         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
10872         (STARTFILE_SPEC): Add 64 bit files.
10873         (ENDFILE_SPEC): Likewise.
10874
10875 2002-02-28  Jason Merrill  <jason@redhat.com>
10876
10877         * c-decl.c (finish_function): Only warn about missing return
10878         statement with -Wreturn-type.
10879
10880 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
10881
10882         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
10883
10884         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
10885         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
10886
10887 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
10888
10889         * basic-block.h (BB_REACHABLE): Renumber.
10890         (BB_DIRTY, BB_NEW): New flags.
10891         (clear_bb_flags): Declare.
10892         (update_life_info_in_dirty_blocks): Declare.
10893         * cfg.c (clear_bb_flags): New function.
10894         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
10895         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
10896         reorder_insns, emit_insn_after): Mark block as dirty.
10897         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
10898         (update_life_info_in_dirty_blocks): New function.
10899         * recog.c (apply_change_group): Dirtify block.
10900
10901         * cse.c (cse_insn): Reorder emitting of jump insn to keep
10902         cfg consistent.
10903         * gcse.c (delete_null_pointer_checks): Likewise.
10904
10905         * toplev.c (dump_file_index): Move cse2 after bp,
10906         add DFI_null
10907         (dump_file_info): Similary.
10908         (rest_of_compilation): Avoid most of CFG rebuilds;
10909         do first if converision after null pointer checks, do cse2
10910         after branch prediction; avoid full liveness rebuild after
10911         initializing subregs.
10912         * invoke.texi (-d options): Document -du, renumber.
10913
10914         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
10915         (notice_new_block): Do not set BB_UPDATE_LIFE.
10916         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
10917          merge_blocks_move_successor_nojumps, merge_blocks,
10918          try_crossjump_to_edge): Likewise.
10919         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
10920         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
10921         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
10922         (merge_of_block): Do not use life_data_ok.
10923         (find_if_case_1): Do not use SET_UPDATE_LIFE.
10924         (if_convert): Use BB_DIRTY mechanizm to update life.
10925         * lcm.c (optimize_mode_switching): Update
10926         update_life_info_in_dirty_blocks
10927
10928 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
10929
10930         * Makefile.in (integrate.o): Update.
10931         * c-decl.c (copy_lang_decl): Rename.
10932         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
10933         * integrate.c: Include langhooks.h.
10934         (copy_decl_for_inlining): Update to use langhook.
10935         * langhooks-def.h (lhd_do_nothing_t,
10936         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
10937         (LANG_HOOKS_INITIALIZER): Update.
10938         * langhooks.c (lhd_do_nothing_t): New.
10939         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
10940         * tree.h (copy_lang_decl): Remove.
10941 objc:
10942         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
10943
10944 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
10945
10946         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
10947         POST_DEC, and POST_MODIFY.
10948
10949 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
10950
10951         * c-typeck.c (digest_init): Remove unused parameter; all
10952         callers changed.
10953
10954 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
10955
10956         * expmed.c (expand_shift): Correctly test for low part of a
10957         subreg.
10958
10959 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
10960
10961         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
10962         insn UIDs with insn addresses.
10963
10964 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
10965
10966         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
10967         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
10968         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
10969         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
10970         gcc.c, toplev.c: Delete code implementing -traditional mode.
10971
10972         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
10973         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
10974         Document removal of -traditional mode for compilation, and
10975         remove documentation only relevant to that mode.
10976
10977         * config/nextstep.h, config/ptx4.h, config/svr4.h,
10978         config/convex/convex.h, config/d30v/d30v.h,
10979         config/i386/dgux.h, config/i386/osf1elf.h,
10980         config/i386/osfelf.h, config/i386/osfrose.h,
10981         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
10982         config/m68k/hp310.h, config/m88k/dgux.h,
10983         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
10984         config/m88k/m88k.h, config/m88k/openbsd.h,
10985         config/mips/abi64.h, config/mips/osfrose.h,
10986         config/mips/svr4-5.h, config/mips/svr4-t.h,
10987         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
10988         config/stormy16/stormy16.h: Remove all references to
10989         -traditional from target specs.  Delete all mention of the
10990         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
10991         delete a couple of commented-out definitions of
10992         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
10993         to -traditional.
10994
10995         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
10996         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
10997
10998 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
10999
11000         * mklibgcc.in: Don't use \n in a line subject to
11001         interpretation by echo.
11002
11003 2002-02-27  Graham Stott  <grahams@redhat.com>
11004
11005         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
11006         Constify NAME.
11007
11008         * loop.c (prescan_loop): Handle PARALLEL.
11009
11010         * unroll.c (loop_iterations): Return 0 if the add_val for
11011         a BIV is REG.
11012
11013         * final.c (output_operand_lossage): Constify PFX_STR.
11014
11015         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
11016
11017 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
11018
11019         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
11020         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
11021
11022 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
11023
11024         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
11025
11026 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
11027
11028         * cpplex.c (_cpp_lex_token): Handle directives in macro
11029         arguments.
11030         * cpplib.c (_cpp_handle_directive): Save and restore state
11031         if parsing macro args when entering a directive.
11032         * cppmacro.c (collect_args): No need to handle directives
11033         in macro arguments.
11034         (enter_macro_context, replace_args): Use the original macro
11035         definition in case it was redefined whilst collecting arguments.
11036 doc:
11037         * cpp.texi: Update.
11038
11039 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
11040
11041         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
11042         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
11043         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
11044         method on AIX.
11045         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
11046         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
11047         (load_toc_v4_PIC_2): Same.
11048
11049 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
11050
11051         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
11052
11053 2002-02-26  Richard Henderson  <rth@redhat.com>
11054
11055         * config/alpha/alpha.md (ashldi_se): Re-enable.
11056
11057 2002-02-26  Richard Henderson  <rth@redhat.com>
11058
11059         * config/alpha/alpha.c (alpha_encode_section_info): Examine
11060         MODULE_LOCAL_P; improve commentary.
11061
11062 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
11063
11064         * doc/cpp.texi: Clarify documentation of relationship between
11065         #line and #include.
11066
11067 2002-02-26  Kazu Hirata  <kazu@hxi.com>
11068
11069         * config/h8300/h8300-protos.h: Update the prototype for
11070         compute_logical_op_length.  Add the prototype for
11071         compute_logical_op_cc.
11072         * config/h8300/h8300.c (compute_logical_op_length): Figure out
11073         code from operands.
11074         (compute_logical_op_cc): New.
11075         * config/h8300/h8300.md: Combine all the logical op patterns
11076         in HImode and SImode.  Use compute_logical_op_cc.
11077
11078 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
11079
11080         * config/i386/i386.c (print_operand): Don't append ATT-style
11081         length suffixs to x87 opcodes when in Intel mode.
11082
11083 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
11084
11085         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
11086         (init_emit_once): Update calls.
11087         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
11088         (init_syntax_once): Prototype.
11089
11090 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11091
11092         * pa-linux.h (LIB_SPEC): Update definition.
11093         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
11094
11095 2002-02-26  Richard Henderson  <rth@redhat.com>
11096
11097         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
11098         if we emitted a stop bit.
11099
11100 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
11101
11102         * configure.in (libgcc_visibility): Substitute.
11103         * configure: Rebuilt.
11104         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
11105         defined symbols .hidden.
11106
11107 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
11108
11109         * attribs.c (c_common_attribute_table): Add visibility.
11110         (handle_visibility_attribute): New function.
11111         * varasm.c (assemble_visibility): New function.
11112         * output.h (assemble_visibility): Add prototype.
11113         * tree.h (MODULE_LOCAL_P): Define.
11114         * crtstuff.c (__dso_handle): Use visibility attribute.
11115         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
11116         for MODULE_LOCAL_P symbols too.
11117         * config/ia64/ia64.c (ia64_encode_section_info): Handle
11118         MODULE_LOCAL_P symbols the same way as local symbols.
11119         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
11120         into .sdata/.sbss by the user.
11121         * doc/extend.texi (Function Attributes): Document visibility
11122         attribute.
11123
11124 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
11125
11126         PR debug/5770
11127         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
11128         STRING_CST initializer spanning the whole variable without
11129         embedded zeros.
11130         If expand_expr returned MEM, don't use it.
11131
11132 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
11133
11134         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
11135         generate a die for the lexical block.
11136
11137 2002-02-26  Kazu Hirata  <kazu@hxi.com>
11138
11139         * config/h8300/h8300-protos.h: Add a prototype for
11140         compute_logical_op_length.
11141         * config/h8300/h8300.c (compute_logical_op_length): New.
11142         * config/h8300/h8300.md (anonymous logical patterns): Use
11143         compute_logical_op_length for length.
11144
11145 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
11146
11147         * dwarf2out.c (modified_type_die): Do not call type_main_variant
11148         for vectors.
11149         (gen_type_die): Same.
11150
11151         * attribs.c (handle_vector_size_attribute): Set debug information.
11152
11153 2002-02-26  Daniel Egger  <degger@fhm.edu>
11154
11155         * config/rs6000/rs6000.md: Swap define_insn attributes to
11156         fix incorrect generation of merge high instructions instead
11157         of merge low.
11158
11159 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
11160
11161         * c-typeck.c (really_start_incremental_init): Use
11162         bitsize_zero_node for vectors.
11163
11164 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
11165
11166         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
11167         ("*set_vrsave_internal"): Same.
11168
11169 2002-02-25  Richard Henderson  <rth@redhat.com>
11170
11171         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
11172         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
11173
11174 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
11175
11176         PR target/5755
11177         * config/i386/i386.c (ix86_return_pops_args): Only pop
11178         fake structure return argument if it was passed on the stack.
11179
11180 2002-02-25  Jason Merrill  <jason@redhat.com>
11181
11182         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
11183         RESULT_DECL.
11184
11185 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
11186
11187         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
11188         link with shared_name only.
11189         * doc/invoke.texi (Link Options): Document new behavior.
11190
11191 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
11192
11193         * c-typeck.c (push_init_level): Handle vectors.
11194
11195 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
11196
11197         * config/sparc/sparc.c (const64_high_operand): Zero-extend
11198         operands of SPARC_SETHI_P.
11199         (input_operand): Likewise.
11200         (sparc_emit_set_const32): Likewise.
11201         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
11202         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
11203         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
11204         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
11205         (movdi_insn_sp64_vis): Likewise.
11206         (movdi split, movdf split): Use SETHI32.
11207         * doc/md.texi: Document SPARC constraints L, M and N.
11208
11209 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
11210
11211         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
11212         ("*set_vrsave_internal"): use mfspr for Darwin.
11213
11214         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
11215         gen_get_vrsave_internal.
11216
11217 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11218
11219         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
11220
11221 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
11222
11223         * cpplex.c (cpp_interpret_charconst): Get signedness or
11224         otherwise of wide character constants correct.
11225         * cppexp.c (lex): Get signedness of wide charconsts correct.
11226
11227 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11228
11229         * optabs.c (widen_operand): Only call convert_modes for
11230         promoted SUBREG if signedness matches.
11231         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
11232
11233 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
11234
11235         * cpplib.c (glue_header_name): Use local buffer to build up
11236         header name.
11237
11238 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
11239
11240         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
11241
11242 2002-02-23  Kazu Hirata  <kazu@hxi.com>
11243
11244         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
11245         H8/300[HS] separately.
11246         * config/h8300/h8300.md: Remove the early clobber constraint
11247         from bit field patterns.
11248
11249 2002-02-23  Kazu Hirata  <kazu@hxi.com>
11250
11251         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
11252         register_operand.
11253         (mulhisi3): Likewise.
11254         (umulqisi3): Likewise.
11255         (umulhisi3): Likewise.
11256
11257 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
11258
11259         * cppinit.c (output_deps): Correct test for stdout output.
11260         (init_dependency_output): Cure warning.
11261
11262 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11263
11264         * expr.c (store_expr): When converting expression to promoted
11265         equivalent type, allow using SUBREG_REG of TARGET as the target
11266         of the expansion of EXP.
11267         * loop.c (basic_induction_var, case SUBREG): Always look inside.
11268         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
11269         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
11270         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
11271         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
11272
11273 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
11274
11275         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
11276         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
11277         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
11278
11279 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
11280
11281         PR optimization/5747
11282         * loop.c (scan_loop): Update reg info if move_movables created new
11283         pseudos.
11284
11285 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
11286
11287         * gcc.c (init_gcc_spec): Revert last change.
11288
11289 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
11290
11291         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
11292         gpc_reg_operand constraint.
11293
11294 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
11295
11296         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
11297         Simplify comparison of `low'.
11298         (add_operand): Fix formatting.
11299         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
11300         (mask_operand): Disallow mask to wrap in 64-bit mode.
11301         (rs6000_stack_info): Remove redundant test setting push_p.
11302         (output_toc): Fix formatting.
11303         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
11304         cc_reg_not_cr0_operand constraint.
11305         (booldi3, boolcdi3 splitters): Same.
11306
11307 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
11308
11309         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
11310
11311 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
11312
11313         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
11314         gcc invoked with -shared-libgcc.
11315
11316 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
11317
11318         PR c++/5748
11319         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
11320         decl if any of elements was TREE_USED.
11321
11322 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
11323
11324         * config/sparc/sol2.h: Don't include sys/mman.h.
11325         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
11326         (arith_4096_operand): Don't throw high bits away.
11327         (const64_operand): Take sign extension of CONST_INTs into account.
11328         (const64_high_operand, sparc_emit_set_const32): Likewise.
11329         (GEN_HIGHINT64): Likewise.
11330         (sparc_emit_set_const64_quick1): Likewise.
11331         (const64_is_2insns): Likewise.
11332         (print_operand): Use trunc_int_for_mode for sign extension.
11333         * config/sparc/sparc.h (SMALL_INT32): Likewise.
11334         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
11335         chars.  Assume CONST_INT is already properly sign-extended.
11336         (movdi split): Sign-extend each SImode part.
11337         (andsi3 split): Don't mask high bits off, so that result
11338         remains properly sign-extend.
11339         (iorsi3 split): Likewise.
11340         (xorsi3 split): Likewise.
11341
11342 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
11343
11344         * fold-const.c (fold): Fix typo in comments.
11345
11346 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
11347
11348         * Makefile.in (langhooks.o): Update dependencies.
11349
11350 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
11351
11352         * langhooks.c: Include flags.h.
11353
11354 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
11355
11356         * testsuite/gcc.dg/attr-alwaysinline.c: New.
11357
11358         * c-common.c (c_common_post_options): Set inline trees by
11359         default.
11360
11361         * doc/extend.texi (Function Attributes): Document always_inline
11362         attribute.
11363         Update documentation about inlining when not optimizing.
11364
11365         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
11366
11367         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
11368         unless DECL_ALWAYS_INLINE.
11369
11370         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
11371         unless DECL_ALWAYS_INLINE.
11372         (c_disregard_inline_limits): Disregard if always_inline set.
11373
11374         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
11375         Disregard if always_inline set.
11376         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
11377         unless DECL_ALWAYS_INLINE.
11378
11379         * attribs.c (handle_always_inline_attribute): New.
11380         (c_common_attribute_table): Add always_inline.
11381
11382         * config/rs6000/altivec.h: Add prototypes for builtins
11383         requiring the always_inline attribute.
11384
11385 2002-02-21  Eric Christopher  <echristo@redhat.com>
11386
11387         * expmed.c (store_bit_field): Try to simplify the subreg
11388         before generating a new one when when the mode size of
11389         value is less than maxmode.
11390
11391 2002-02-21  Richard Henderson  <rth@redhat.com>
11392
11393         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
11394         than gen_rtx_PLUS to form the sum.
11395         * explow.c (force_reg): Rearrange to not allocate new pseudo
11396         when force_operand returns a register.
11397         * expr.c (expand_assignment): Allow offset_rtx expansion to
11398         return a sum.  Do not force addresses into registers.
11399         (expand_expr): Likewise.
11400         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
11401         to canonicalize arithmetic that didn't simpify.
11402         (simplify_plus_minus): New argument force; update
11403         all callers.  Don't split CONST unless we can do something with it,
11404         and wouldn't lose the constness of the operands.
11405
11406         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
11407         that we generated earlier.
11408
11409 2002-02-21  Tom Tromey  <tromey@redhat.com>
11410
11411         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
11412         (output_line_info): Use constant `1', with a long explanatory
11413         comment.
11414         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
11415
11416 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
11417
11418         * jump.c (redirect_jump): If old label has no UID, don't try to
11419         delete it.
11420
11421 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
11422
11423         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
11424         If input is constant, do shifts at compile time.
11425
11426 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
11427
11428         * doc/extend.texi: Fix some more overfull hboxes.
11429
11430 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
11431
11432         PR optimization/4994
11433         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
11434         register moves.
11435
11436 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
11437
11438         PR c++/4574
11439         * expr.h (expand_and): Add mode argument.
11440         * expmed.c (expand_and): Add mode argument.
11441         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
11442         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
11443         * except.c (expand_builtin_extract_return_addr): Likewise.
11444         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
11445         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
11446         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
11447         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
11448         * config/c4x/c4x.md: Use GEN_INT (x) instead of
11449         gen_rtx (CONST_INT, VOIDmode, x).
11450
11451 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
11452
11453         PR c/4697:
11454         * stmt.c (warn_if_unused_value): Move side effects test once more.
11455
11456 2002-02-20  Torbjorn Granlund  <tege@swox.com>
11457
11458         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
11459         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
11460
11461 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
11462
11463         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
11464         SUBREG or ZERO_EXTEND.
11465
11466 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
11467
11468         * sh.h (current_function_anonymous_args): Remove.
11469         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
11470         of current_function_varargs and current_function_stdarg is set.
11471         * sh.c (sh_expand_prologue): Check current_function_varargs /
11472         current_function_stdarg / TARGET_SH5 instead of
11473         current_function_anonymous_args.
11474
11475         * sh64.h (TARGET_VERSION): Define.
11476
11477 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
11478
11479         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
11480         VRSAVE_REGNO on TARGET_ALTIVEC.
11481
11482 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
11483
11484         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
11485         bits of SImode const_int.
11486         (includes_rshift_p): Likewise.
11487         (print_operand): Call mask_operand and mask64_operand with correct
11488         mode.
11489         (rs6000_output_function_epilogue): Pad traceback table to word.
11490         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
11491         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
11492         mask64_operand with correct mode.
11493         (FUNCTION_ARG_REGNO_P): Correct parentheses.
11494
11495 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
11496
11497         PR debug/4461
11498         * varasm.c (get_pool_constant_mark): New.
11499         * rtl.h (get_pool_constant_mark): Add prototype.
11500         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
11501         be represented if it has not been output.
11502
11503 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
11504
11505         * combine.c (do_SUBST): Sanity check substitutions of
11506         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
11507         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
11508         CONST_INT into its operand.
11509         (known_cond): Likewise, for ZERO_EXTEND.
11510         * simplify-rtx.c (simplify_unary_operation): Fix condition to
11511         allow for simplification of wide modes.  Reject CONST_INTs in
11512         ZERO_EXTEND when their actual mode is not given.
11513
11514 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
11515
11516         * c-decl.c (pushdecl): If no global declaration is found for an
11517         extern declaration in block scope, try a limbo one.
11518
11519 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
11520
11521         PR c++/4401
11522         * c-common.c (pointer_int_sum): Moved from...
11523         * c-typeck.c (pointer_int_sum): ...here.
11524         * c-common.h (pointer_int_sum): Add prototype.
11525
11526 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
11527
11528         PR c++/5713
11529         * c-decl.c (duplicate_decls): Return 0 if issued error about
11530         redeclaration.
11531
11532 2002-02-20  Roger Sayle  <roger@eyesopen.com>
11533             Jakub Jelinek  <jakub@redhat.com>
11534
11535         PR c/4389
11536         * tree.c (host_integerp): Ensure that the constant integer is
11537         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
11538         when pos is zero or non-zero respectively.  Clarify comment.
11539         * c-format.c (check_format_info_recurse): Fix host_integerp
11540         usage; the pos argument should be zero when assigning to a
11541         signed HOST_WIDE_INT.
11542
11543 2002-02-20  Richard Henderson  <rth@redhat.com>
11544
11545         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
11546         of the operand, rather than assuming TImode.
11547         (ix86_expand_binop_builtin): Cope with commutative patterns
11548         using nonimmediate_operand for both operands.
11549         (ix86_expand_timode_binop_builtin): Likewise.
11550         (ix86_expand_store_builtin): Validate operand 1.
11551         (ix86_expand_unop1_builtin): Likewise.
11552
11553 2002-02-20  Philip Blundell  <philb@gnu.org>
11554
11555         PR 5705
11556         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
11557
11558 2002-02-20  Richard Henderson  <rth@redhat.com>
11559
11560         PR c/5615
11561         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
11562
11563 2002-02-20  Tom Tromey  <tromey@redhat.com>
11564
11565         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
11566         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
11567         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
11568         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
11569         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
11570         unconditionally.
11571
11572 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
11573
11574         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
11575           for (const_int 0) in X not just INTVAL.
11576
11577 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
11578
11579         * doc/extend.texi: Avoid or reduce overfull hboxes.
11580
11581 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
11582
11583         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
11584         operations if the field does not start at a mode boundary.
11585
11586 2001-02-20      Joel Sherrill <joel@OARcorp.com>
11587
11588         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
11589         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
11590         Also done for -Acpu and -Amachine.
11591
11592 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
11593
11594         * cppinit.c (init_dependency_output): Take deps output file
11595         from -o if none given with -MF.  Suppress normal output.
11596         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
11597         * doc/cpp.texi, doc/invoke.texi: Update.
11598
11599 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
11600
11601         * toplev.c (output_quoted_string): Write unprintable
11602         characters with octal escapes.
11603
11604 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
11605
11606         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
11607         really_call_used[VRSAVE_REGNO] if not Altivec.
11608
11609 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
11610
11611         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
11612         MODE_MASK.
11613         (constant_pool_expr_1): Fix formatting.
11614         (rs6000_legitimize_reload_address): Likewise.
11615
11616 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11617
11618         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
11619         now that we have one.
11620
11621 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
11622
11623         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
11624         end of first block of bitfields (which was only seven bits);
11625         rename dummy to unused_1; remove comment which is no longer true.
11626
11627 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
11628
11629         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
11630
11631 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
11632
11633         PR 5399
11634         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
11635         if generating PIC.
11636
11637         PR 5054
11638         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
11639         arm_is_longcall_p rather than inspecting call-type cookie
11640         directly.
11641         (call_value_insn) [TARGET_THUMB]: Likewise.
11642
11643 2002-02-19  Graham Stott  <grahams@redhat.com>
11644
11645         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
11646
11647 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
11648
11649         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
11650         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
11651         (FP_SAVE_INLINE): Delete.
11652
11653         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
11654         * config/rs6000/eabi.asm: Remove ABI save restore routines.
11655         * config/rs6000/t-ppccomm: Build crtsavres.o.
11656         * config/rs6000/crtsavres.asm: New file.
11657
11658 2002-02-19  Philip Blundell  <philb@gnu.org>
11659
11660         * config/arm/arm.c (use_return_insn): Don't reject interrupt
11661         functions.
11662         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
11663         (output_return_instruction): Allow interrupt functions to return with
11664         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
11665         (arm_expand_prologue): Subtract 4 before stacking LR in an
11666         interrupt function.
11667
11668 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
11669
11670         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
11671         decl, not just FUNCTION_DECL.
11672         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
11673         (arm_assemble_integer): Likewise.
11674         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
11675         marked local.
11676
11677 2002-02-19  matthew green  <mrg@eterna.com.au>
11678
11679         * config.gcc (sparc-*-netbsdelf*): Enable target.
11680         (sparc64-*-netbsd*): New target.
11681         * config/sparc/netbsd-elf.h: New file.
11682         * config/sparc/t-netbsd64: New file.
11683
11684 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
11685
11686         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
11687
11688 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
11689
11690         * doc/invoke.texi: explicitly list the style guidelines that
11691         -Weffc++ checks for.
11692
11693 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
11694
11695         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
11696
11697 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
11698
11699         PR other/5718
11700         * gcc.c (cpp_unique_options): Treat -o as indicating object file
11701         only if not -E.  If -E, pass -o through to the preprocessor.
11702
11703 2002-02-19  Kazu Hirata  <kazu@hxi.com>
11704
11705         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
11706         register number with an appropriate macro.
11707
11708 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
11709
11710         * doc/rtl.texi (Constants): Close @code tag.
11711
11712 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
11713
11714         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
11715         ("mmx_uavgv4hi3"): Same.
11716         ("pmulhrwv4hi3"): Same.
11717
11718         * tree-inline.c (walk_tree): Handle vectors.
11719
11720         * c-common.c (constant_expression_warning): Handle vectors.
11721         (overflow_warning): Same.
11722
11723         * sched-deps.c (sched_analyze_2): Handle vectors.
11724
11725         * rtlanal.c (rtx_unstable_p): Handle vectors.
11726         (rtx_varies_p): Same.
11727         (count_occurrences): Same.
11728         (regs_set_between_p): Same.
11729         (modified_between_p): Same.
11730         (modified_in_p): Same.
11731         (volatile_insn_p): Same.
11732         (volatile_refs_p): Same.
11733         (side_effects_p): Same.
11734         (may_trap_p): Same.
11735         (inequality_comparisons_p): Same.
11736         (replace_regs): Same.
11737         (computed_jump_p_1): Same.
11738
11739         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
11740         argument.
11741         (inner_mode_array): New.
11742         (copy_rtx): Handle vectors.
11743         (copy_most_rtx): Same.
11744         (rtx_equal_p): Same.
11745         (get_mode_alignment): Adjust for vectors.
11746
11747         * resource.c (mark_referenced_resources): Handle vectors.
11748         (mark_set_resources): Same.
11749
11750         * reload1.c (eliminate_regs): Handle vectors.
11751         (elimination_effects): Same.
11752         (scan_paradoxical_subregs): Same.
11753
11754         * reload.c (subst_reg_equivs): Handle vectors.
11755
11756         * regrename.c (scan_rtx): Handle vectors.
11757
11758         * regclass.c (reg_scan_mark_refs): Handle vectors.
11759
11760         * recog.c (find_single_use_1): Handle vectors.
11761
11762         * local-alloc.c (equiv_init_varies_p): Handle vectors.
11763         (contains_replace_regs): Same.
11764         (memref_referenced_p): Same.
11765
11766         * integrate.c (copy_rtx_and_substitute): Handle vectors.
11767         (subst_constants): Same.
11768
11769         * genattrtab.c (attr_copy_rtx): Handle vectors.
11770         (encode_units_mask): Same.
11771         (clear_struct_flag): Same.
11772         (count_sub_rtxs): Same.
11773
11774         * gcse.c (want_to_gcse_p): Handle vectors.
11775         (oprs_unchanged_p): Same.
11776         (hash_expr_1): Same.
11777         (oprs_not_set_p): Same.
11778         (expr_killed_p): Same.
11779         (compute_transp): Same.
11780         (store_ops_ok): Same.
11781
11782         * function.c (purge_addressof_1): Do not allow paradoxical subregs
11783         of vectors.
11784         (fixup_var_refs_1): Same.
11785         (instantiate_virtual_regs_1): Same.
11786
11787         * fold-const.c (operand_equal_p): Handle vectors.
11788         (fold): Same.
11789         (rtl_expr_nonnegative_p): Same.
11790
11791         * flow.c (mark_used_regs): Handle vectors.
11792
11793         * df.c (df_uses_record): Handle vectors.
11794
11795         * cselib.c (cselib_subst_to_values): Handle vectors.
11796         (cselib_mem_conflict_p): Same.
11797         (hash_rtx): Same.
11798
11799         * cse.c (canon_reg): Handle vectors.
11800         (fold_rt): Same.
11801         (cse_process_notes): Same.
11802         (count_reg_usage): Same.
11803         (canon_hash): Same.
11804
11805         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
11806
11807         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
11808
11809         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
11810         (gen_rtx): Handle CONST_VECTOR.
11811         (gen_const_vector_0): New.
11812         (copy_rtx_if_shared): CONST_VECTORs can be shared.
11813         (reset_used_flags): Same.
11814         (copy_insn_1): Same.
11815         (initializer_constant_valid_p): Handle VECTOR_CST.
11816
11817         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
11818
11819         * doc/rtl.texi (Constants): Document const_vector.
11820         (CONST0_RTX): Update for vectors.
11821         (RTL sharing): Same.
11822
11823         * print-tree.c (print_node): Add case for VECTOR_CST.
11824
11825         * tree.h (TREE_VECTOR_CST_ELTS): New.
11826         (struct tree_vector): New.
11827         (union tree_node): Add vector node.
11828         (build_vector): Add prototype.
11829
11830         * tree.def (VECTOR_CST): New.
11831
11832         * tree.c (build_vector): New.
11833
11834         * expmed.c (make_tree): Handle CONST_VECTOR.
11835
11836         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
11837         (CONST_VECTOR_ELT): New.
11838         (CONST_VECTOR_NUNITS): New.
11839
11840         * machmode.h (GET_MODE_INNER): New.
11841         (DEF_MACHMODE): Accept 8th arg.
11842
11843         * machmode.def: Add 8th argument for vector inner mode.
11844         Add inner vector modes for vectors.
11845
11846         * rtl.def (VEC_CONST): Remove.
11847         (CONST_VECTOR): New.
11848
11849         * expr.c (clear_storage): Allow vectors.
11850         (is_zeros_p): Handle VECTOR_CST.
11851
11852         * varasm.c (output_constant_pool): Handle vectors.
11853         (rtx_const): Add veclo and vechi fields.
11854         (kind): Add RTX_VECTOR.
11855         (decode_rtx_const): Add case for vector.
11856
11857         * config/rs6000/rs6000-protos.h: Add zero_constant.
11858
11859         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
11860         constants.  Force easy vector constants into memory.
11861         (easy_vector_constant): New.
11862         (emit_easy_vector_constant): New.
11863         (rs6000_legitimize_reload_address): Do not generate bad reloads on
11864         darwin.
11865
11866         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
11867         instruction does.
11868         ("altivec_lvxl"): Same.
11869         (altivec_lvebx): Same.
11870         (altivec_lvehx): Same.
11871         (altivec_lvewx): Same.
11872         ("*movv4si_const0"): New.
11873         ("*movv4sf_const0"): New.
11874         ("*movv8hi_const0"): New.
11875         ("*movv16qi_const0"): New.
11876
11877 2002-02-18  Kazu Hirata  <kazu@hxi.com>
11878
11879         * config/h8300/h8300.c (notice_update_cc): Use
11880         cc_status.value2.
11881
11882 2002-02-18  Kazu Hirata  <kazu@hxi.com>
11883
11884         * config/h8300/h8300.md (divmod patterns): Change the
11885         constraints for operands[1] to register_operand.
11886
11887 2002-02-18  Kazu Hirata  <kazu@hxi.com>
11888
11889         * config/h8300/h8300-protos.h: Remove the prototype for
11890         p_operand.
11891         * config/h8300/h8300.c (p_operand): Remove.
11892         * config/h8300/h8300.md: Replace p_operand with
11893         const_int_operand.
11894
11895 2002-02-18 Philip Blundell <pb@nexus.co.uk>
11896
11897         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
11898         comment.
11899         (output_return_instruction): Allow use of LDR to unstack
11900         return addresss even for interrupt handlers or when
11901         interworking.  If compiling for ARMv5, use interworking-safe
11902         return instructions by default.  Remove duplicated code and
11903         lengthy "strcat" sequences.
11904
11905 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11906
11907         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
11908         (LINK_EH_SPEC): Define.
11909         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
11910
11911 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11912
11913         * config/s390/s390.c (s390_emit_prologue): Do not set the
11914         frame_related flag for call-clobbered registers.
11915
11916 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
11917
11918         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
11919         (construct_container): Fix handling of SSE operands.
11920         (ix86_expand_builtin): Fix handling of 64bit pointers.
11921         (mmx_maskmovq_rex): New pattern.
11922
11923 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
11924
11925         * regrename.c (kill_set_value): Handle subregs properly.
11926
11927 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
11928
11929         * objc/objc-act.c (handle_impent): Remove leading '*'
11930         from objc_class_name.
11931
11932 2002-02-17  Richard Henderson  <rth@redhat.com>
11933
11934         * config/alpha/alpha.c (some_small_symbolic_operand,
11935         some_small_symbolic_operand_1, split_small_symbolic_operand,
11936         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
11937         Handle small SYMBOL_REFs anywhere, not just inside memories.
11938         * config/alpha/alpha-protos.h: Update.
11939         * config/alpha/alpha.h (PREDICATE_CODES): Update.
11940         * config/alpha/alpha.md (small symbolic operand splitter): Update.
11941
11942 2002-02-17  Roland McGrath  <roland@frob.com>
11943
11944         * config.gcc (powerpc-*-gnu-gnualtivec*,
11945         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
11946         * config/rs6000/gnu.h: New file.
11947         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
11948         Grok "gnu" in rs6000_abi_name.
11949         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
11950         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
11951         Grok -mcall-gnu analogous to -mcall-linux et al.
11952         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
11953         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
11954         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
11955
11956 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
11957
11958         PR c/3444:
11959         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
11960         shortening.
11961
11962 2002-02-17  Philipp Thomas  <pthomas@suse.de>
11963
11964         * config/cris/cris.h: Undefine STARTFILE_SPEC and
11965         ENDFILE_SPEC before (re)defining them.
11966
11967 2002-02-17  Kazu Hirata  <kazu@hxi.com>
11968
11969         * config/h8300/h8300.c: Fix formatting.
11970         * config/h8300/h8300.h: Likewise.
11971
11972 2002-02-17  Philipp Thomas  <pthomas@suse.de>
11973
11974         * doc/tm.texi: Explain why empty strings should not be
11975         marked for translation.
11976
11977 2002-02-17  Philipp Thomas  <pthomas@suse.de>
11978
11979         * final.c (output_operand_lossage): Changed to accept
11980         printf style arguments. Change calls where necessary.
11981         * output.h (output_operand_lossage): Change declaration
11982         accordingly. Update copyright.
11983         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
11984         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
11985         Update copyright date where necessary.
11986
11987         * config/i386/i386.c (print_operand): Likewise. Remove use of
11988         sprintf.
11989
11990         * config/cris/cris.c (cris_operand_lossage): Likewise.
11991         Rename parameter so that exgettext recognizes it as
11992         translatable message.
11993         (LOSE_AND_RETURN): Rename parameter to msgid.
11994
11995 2002-02-17  Kazu Hirata  <kazu@hxi.com>
11996
11997         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
11998         hard coded register number with an appropriate macro.
11999         (HARD_REGNO_MODE_OK): Likewise.
12000         (ARG_POINTER_REGNUM): Likewise.
12001         (STATIC_CHAIN_REGNUM): Likewise.
12002         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
12003         * config/h8300/h8300.md (define_constants): Define more
12004         register numbers.
12005
12006 2002-02-17  Philipp Thomas  <pthomas@suse.de>
12007
12008         * config/i386/i386.h: Don't mark empty strings for translation.
12009
12010 2002-02-16  H.J. Lu <hjl@gnu.org>
12011
12012         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
12013
12014 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
12015
12016         * cppinit.c (merge_include_chains): Check for brack being
12017         NULL before attempting to merge it with qtail.
12018
12019 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
12020
12021         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
12022         DBX_DEBUG.
12023
12024 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12025
12026         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
12027
12028 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12029
12030         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
12031         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
12032         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
12033
12034 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12035
12036         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
12037         now only if !TARGET_FIX.
12038         (*movsi_nt_vms_fix): New pattern.
12039
12040 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
12041
12042         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
12043         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
12044         (alpha_sa_mask, alpha_sa_size): Reflect above change.
12045         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
12046         (alpha_start_function, alpha_expand_epilogue): Likewise.
12047         (unicosmk_gen_dsib): Likewise.
12048
12049 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12050
12051         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
12052
12053 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
12054
12055         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
12056         check_and_change_labels, s390_final_chunkify): Delete.
12057         (s390_split_branches, s390_chunkify_pool): New functions.
12058         (s390_function_prologue): Call them.
12059
12060         * config/s390/s390.h (S390_REL_MAX): Delete.
12061         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
12062
12063         * config/s390/s390.md (cjump, icjump, jump): Fix length
12064         attribute calculation.
12065
12066
12067 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
12068
12069         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
12070         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
12071
12072 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12073
12074         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
12075         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
12076         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
12077
12078 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
12079
12080         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
12081
12082 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
12083
12084         * reload.c (find_dummy_reload): Check that an output register
12085         is valid for its mode.
12086
12087 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
12088
12089         * combine.c (known_cond): After replacing the REG of a SUBREG, try
12090         to simplify it.
12091
12092         * function.c (assign_parms): Demote promoted argument passed by
12093         transparent reference.
12094
12095 2001-02-14      Joel Sherrill <joel@OARcorp.com>
12096
12097         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
12098         -Acpu() and -Amachine() to eliminate warnings.
12099
12100 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
12101
12102         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
12103
12104 2002-02-14  Kazu Hirata  <kazu@hxi.com>
12105
12106         * config/h8300/h8300-protos.h: Update the prototype for
12107         const_costs.
12108         * config/h8300/h8300.c (const_costs): Treat SET as a little
12109         more expensive operation.
12110         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
12111         reference to const_costs.
12112
12113 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
12114
12115         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
12116
12117 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
12118
12119         PR c/5503:
12120         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
12121         use arguments from newtype.
12122
12123 2002-02-13  Eric Christopher  <echristo@redhat.com>
12124
12125         * config/mips/mips.c (override_options): Add check for march/mipsX
12126         on the same command line. Fix error message in cpu processing.
12127         Remove architecture and ISA checks.
12128
12129 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
12130
12131         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
12132
12133         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
12134
12135 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
12136
12137         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
12138         alternatives.
12139         ("*movv8hi_internal1"): Same.
12140         ("*movv16qi_internal1"): Same.
12141         ("*movv4sf_internal1"): Same.
12142
12143         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
12144         not push_reload for altivec modes.
12145
12146 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
12147
12148         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
12149         all RTEMS targets including removal of #includes from config/*/rtems*.h
12150         file and adding them to tm_file setting. Added xm_defines=POSIX to
12151         many targets.
12152         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
12153         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
12154         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
12155         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
12156         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
12157         config/m68k/rtemself.h: Ditto.
12158         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
12159         config/mips/rtems64.h: Ditto.
12160         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
12161         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
12162         Ditto.
12163         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
12164         config/sparc/rtemself.h: Ditto.
12165         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
12166         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
12167         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
12168         more like arm-elf.
12169         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
12170         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
12171         target made more similar to i386-elf.
12172         * config/i386/t-rtems-i386: Added soft float support and multilibs.
12173         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
12174         be similar to config/m68k/t-m68kelf.
12175         * gthr-rtems.h: Encapsulate with extern "C" for C++.
12176
12177 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
12178
12179         * regmove.c (kill_value): Handle subregs.
12180
12181 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
12182
12183         * i386.md (mul patterns): Allow memory operand to be first;
12184         add expanders where needed; fix constraints.
12185         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
12186         Allow memory operand to be the first.
12187
12188         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
12189         operands.
12190
12191 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
12192
12193         PR c/5681:
12194         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
12195         GET_MODE (x).
12196
12197 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
12198
12199         PR optimization/5547:
12200         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
12201         all valid IA-32 address modes involving non-scaled %ebx and
12202         GOT/GOTOFF as displacement.
12203
12204 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
12205
12206         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
12207         after emitting ltorg insns.
12208
12209         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
12210         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
12211         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
12212         *abssf2): Fix "op_type" attribute.
12213
12214 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
12215
12216         * mkconfig.sh: Avoid using a subshell redirect.
12217         ($output.T): Change to $(output)T.
12218         (ENABLE_NLS): Remove unneeded undef.
12219
12220         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
12221         * config/alpha/x-vms (libsubdir): Define.
12222
12223         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
12224         register frame procedures. Optimize retrieving context.
12225
12226         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
12227         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
12228         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
12229
12230 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12231
12232         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
12233         Make same change as for find_base_value.
12234
12235 2002-02-13  Kazu Hirata  <kazu@hxi.com>
12236
12237         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
12238         of QImode and SImode.
12239
12240 2002-02-13  Kazu Hirata  <kazu@hxi.com>
12241
12242         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
12243         length computation of movsi.
12244         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
12245
12246 2002-02-13  Kazu Hirata  <kazu@hxi.com>
12247
12248         * config/h8300/h8300.md (subqi3): Tighten the predicate for
12249         operands[2] to register_operand.
12250
12251 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
12252
12253         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
12254
12255 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
12256
12257         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
12258         for altivec_lvx* and altivec_stvx*.
12259         ("*movv4si_internal"): Add constraint for loading from GPRs.
12260         ("*movv8hi_internal1"): Same.
12261         ("*movv16qi_internal1"): Same.
12262         ("*movv4sf_internal1"): Same.
12263
12264         * config/rs6000/rs6000.c (altivec_register_operand): New.
12265
12266         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
12267         altivec_register_operand.
12268
12269 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
12270
12271         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
12272         handle SYMBOL_REF.
12273
12274 2002-02-13  Stan Shebs  <shebs@apple.com>
12275
12276         * c-typeck.c (digest_init): Handle vectors.
12277         (really_start_incremental_init): Same.
12278         (pop_init_level): Same.
12279         (process_init_element): Same.
12280
12281         * varasm.c (output_constant): Same.
12282
12283         * expr.c (clear_storage): Same.
12284         (store_constructor): Same.
12285
12286 2002-02-12  Eric Christopher  <echristo@redhat.com>
12287
12288         * explow.c (hard_function_value): Add comment explaining
12289         signed/unsigned comparison.
12290
12291 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
12292
12293         * jump.c (never_reached_warning): Add finish argument.
12294         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
12295         real insn after end.
12296         * rtl.h (never_reached_warning): Adjust prototype.
12297         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
12298         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
12299         never_reached_warning.
12300
12301 2002-02-12  Graham Stott  <grahams@redhat.com>
12302
12303         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
12304
12305 2002-02-12  Kazu Hirata  <kazu@hxi.com>
12306
12307         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
12308         logical shifts on H8/300.
12309         (shift_alg_si): Improve several shifts on H8/300.
12310         (get_shift_alg): Likewise.
12311
12312 2002-02-12  Graham Stott  <grahams@redhat.com>
12313
12314         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
12315
12316 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12317
12318         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
12319         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
12320
12321 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
12322
12323         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
12324         non-CONST_INT through default_assemble_integer.
12325         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
12326         <case 8>: Abort for CONST_DOUBLE.
12327
12328 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12329
12330         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
12331         is specified.
12332         * config/pa/pa-linux.h (LIB_SPEC): Delete.
12333         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
12334
12335 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
12336
12337         * config/stormy16/stormy16.md (zero_extendqihi2): New.
12338
12339 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
12340
12341         * regrename.c (regrename_optimize): Don't accept a
12342         part-clobbered register if the replaced register is not part
12343         clobbered.
12344
12345         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
12346         take padding into account when computing the argument value.
12347
12348         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
12349
12350         * combine.c (try_combine): Apply substitutions in
12351         CALL_INSN_FUNCTION_USAGE too.
12352
12353 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
12354
12355         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
12356         __builtin_altivec_abs*.
12357         (bdesc_abs): New.
12358
12359         * config/rs6000/rs6000.h (rs6000_builtins): Add
12360         ALTIVEC_BUILTIN_ABS*.
12361
12362         * config/rs6000/altivec.h: Use const char for builtins expecting
12363         literals.
12364         (vec_abs): New versions for C and C++.
12365         (vec_abss): Same.
12366
12367 2002-02-10  Kazu Hirata  <kazu@hxi.com>
12368
12369         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
12370         using Pmode.
12371
12372 2002-02-10  Kazu Hirata  <kazu@hxi.com>
12373
12374         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
12375         constant definition from h8300.md.
12376         (FRAME_POINTER_REGNUM): Likewise.
12377         * config/h8300/h8300.md (define_constants): Add FP_REG.
12378
12379 2002-02-10  Kazu Hirata  <kazu@hxi.com>
12380
12381         * config/h8300/h8300.c (print_operand): Remove redundant code.
12382
12383 2002-02-10  Kazu Hirata  <kazu@hxi.com>
12384
12385         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
12386         * config/h8300/h8300.c (byte_reg): Make it static.
12387
12388 2002-02-10  Richard Henderson  <rth@redhat.com>
12389
12390         PR c/5623
12391         * c-typeck.c (incomplete_type_error): Handle flexible array members.
12392
12393 2002-02-10  Richard Henderson  <rth@redhat.com>
12394
12395         PR c++/5624
12396         * tree.c (append_random_chars): Don't abort if main_input_filename
12397         does not exist.
12398
12399 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
12400
12401         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
12402
12403 2002-02-10  Kazu Hirata  <kazu@hxi.com>
12404
12405         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
12406         (pushhi1): Likewise.
12407
12408 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12409
12410         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
12411         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
12412
12413 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
12414
12415         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
12416         remove MASK_VIS.
12417         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
12418
12419 2002-02-09  Kazu Hirata  <kazu@hxi.com>
12420
12421         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
12422         a half of an SImode register on H8/300.
12423
12424 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
12425
12426         * i386.md (movdi_2): Add missing '!'.
12427
12428 2002-02-09  Kazu Hirata  <kazu@hxi.com>
12429
12430         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
12431         definitions.
12432
12433 2002-02-09  Kazu Hirata  <kazu@hxi.com>
12434
12435         * config/h8300/h8300.md (length): Correct the distance valid
12436         for the short branch.
12437
12438 2002-02-09  Kazu Hirata  <kazu@hxi.com>
12439
12440         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
12441
12442 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
12443
12444         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
12445         registers in SImode.
12446         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
12447         part-clobbered.
12448
12449         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
12450         patch.
12451
12452         Contribute sh64-elf.
12453         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
12454         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
12455         (sh_cannot_modify_jumps_p): New function.
12456         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
12457         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
12458         (sh_ms_bitfield_layout_p): New function.
12459         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
12460                     Zack Weinberg  <zack@codesourcery.com>
12461         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
12462         expand_simple_binop instead of expand_binop.
12463         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
12464         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
12465         use of .quad and .uaquad.
12466         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
12467         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
12468         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
12469         * config/sh/sh.md (movdi_const, movdi_const_32bit,
12470         movdi_const_16bit): Make sure all CONSTs have modes.
12471         (sym2PIC): Ditto, but by adjusting all callers.
12472         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
12473         if the prologue calls the SHmedia argument decoder or register
12474         saver.
12475         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
12476         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
12477         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
12478         (sh_expand_epilogue): Don't emit USE of return target register.
12479         (prepare_move_operands): Legitimize DImode PIC addresses.
12480         (sh_media_register_for_return): Skip tr0, used to initialize the
12481         PIC register.
12482         (sh_expand_prologue): Remove explicit USE of return register.
12483         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
12484         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
12485         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
12486         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
12487         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
12488         EXTRA_CONSTRAINT_T.
12489         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
12490         (MOVI_SHORI_BASE_OPERAND_P): New.
12491         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
12492         (EXTRA_CONSTRAINT_T): Define in terms of them.
12493         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
12494         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
12495         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
12496         alternatives supporting TARGET_REGS.
12497         (UNSPEC_GOTPLT): New constant.
12498         (movdi split): Move incrementing of LABEL_NUSES...
12499         (movdi_const, movdi_const_32bit): Here.  Use
12500         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
12501         (movdi_const_16bit): New.
12502         (call, call_value) [flag_pic]: Use GOTPLT.
12503         (call_pop, call_value_pop): New expands.
12504         (call_pop_compact, call_pop_rettramp): New insns.
12505         (call_value_pop_compact, call_value_pop_rettramp): New insns.
12506         (sibcall) [flag_pic]: Use GOT.
12507         (builtint_setjmp_receiver): Remove bogus, unused expand.
12508         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
12509         (*pt, *ptb, ptrel): New insns.
12510         (sym2GOT): Handle DImode GOT.
12511         (sym2GOTPLT, symGOTPLT2reg): New expands.
12512         (sym2PIC): New expand.
12513         (shcompact_return_tramp): Use GOTPLT to return trampoline.
12514         (shcompact_return_tramp_i): Use return register explicitly.
12515         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
12516         disable flag_reorder_blocks.
12517         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
12518         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
12519         clobbers, for clarity.
12520         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
12521         restoring of r0 in macl as MAYBE_DEAD.
12522         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
12523         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
12524         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
12525         alter_subreg all over.
12526         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
12527         reload, instead of emitting instructions that would require
12528         reloading.
12529         (casesi_load_media): Add missing modes.
12530         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
12531         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
12532         as used if the argument decoder is called.
12533         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
12534         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
12535         Pmode, then extend it to DImode if necessary.
12536         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
12537         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
12538         constants in FPU-enabled SHmedia, let them be loaded from memory.
12539         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
12540         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
12541         Adjust whitespace in assembly output templates.
12542         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
12543         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
12544         mode of if_then_else.
12545         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
12546         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
12547         sh.h.
12548         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
12549                     Joern Rennecke <amylaar@redhat.com>
12550         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
12551         (SUBTARGET_CPP_PTR_SPEC): New.
12552         (SUBTARGET_CPP_SPEC): Remove.
12553         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
12554         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
12555         Fix typo in previous checkin.
12556         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
12557         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
12558         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
12559                     Alexandre Oliva  <aoliva@redhat.com>
12560         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
12561         what single FP register can hold for SHmedia target.
12562         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
12563                     Alexandre Oliva  <aoliva@redhat.com>
12564         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
12565         Do not split into SUBREG.
12566         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
12567         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
12568         and added new functions as specified in SH5 ABI r9.
12569         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
12570         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
12571         8-byte boundary.
12572         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
12573         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
12574         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
12575         and consttable_window_ends.
12576         2001-06-03  Graham Stott  <grahams@redhat,com>
12577         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
12578         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
12579         * config/sh/sh.c (print_operand): Handle floating-point pair,
12580         vector and matrix registers.
12581         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
12582         vector modes into account.
12583         * config/sh/sh.md (movv2sf): Split move between registers into
12584         movdf.
12585         (movv4sf, movv16sf): Introduce insns that get split only after
12586         reload.
12587         * config/sh/shmedia.h: Fix Copyright dates.
12588         * config/sh/ushmedia.h: Likewise.  Move loop counter
12589         declarations into conditionals that uses them.
12590         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
12591         loop boundary.
12592         * config/sh/sshmedia.h: Fix Copyright dates.
12593         (sh_media_PUTCFG): Fix constraints.
12594         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
12595         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
12596         ptrmemfunc_vbit_in_delta for SH5.
12597         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
12598         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
12599         * invoke.texi: Likewise.
12600         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
12601         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
12602         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
12603         GCC_pop_shmedia_regs_nofpu): New global symbols.
12604         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
12605         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
12606         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
12607         compact function with nonlocal labels.
12608         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
12609         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
12610         (initial_elimination_offset): Account for their stack space.
12611         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
12612         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
12613         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
12614         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
12615         least one of the operands to be a register.
12616         (movv2sf): Likewise.  Renamed to movv2sf_i.
12617         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
12618         prepare_move_operands() before emitting SHmedia insns.
12619         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
12620         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
12621         Don't save nor initialize r12.  Don't mis-align the stack.
12622         Pad the code with a nop.
12623         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
12624         stack.
12625         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
12626         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
12627         [__SHMEDIA__]: Implement.
12628         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
12629         * config/sh/sh.md: Set latency of `pt' closer to reality.
12630         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
12631         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
12632         Set move, load and store type attributes.
12633         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
12634         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
12635         profiling.
12636         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
12637         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
12638         * config/sh/sh.c (sh_media_register_for_return): New function.
12639         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
12640         branch-target register.
12641         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
12642         * config/sh/sh.md (return_media_i): Use any call-clobbered
12643         branch-target register.
12644         (return_media): If r18 wasn't copied in the prologue, copy it
12645         here.
12646         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
12647         Clear class FP0_REGS.
12648         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
12649         from elf.h.
12650         2001-03-08  DJ Delorie  <dj@redhat.com>
12651         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
12652         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
12653         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
12654         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
12655         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
12656         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
12657         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
12658         return value correctly for call_cookie.
12659         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
12660         * config/sh/crt1.asm (start): Modified so as to call
12661         ___setup_argv_and_call_main.
12662         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
12663         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
12664         SHmedia mode.
12665         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
12666         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
12667         (STRIP_NAME_ENCODING): Use it.
12668         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
12669         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
12670         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
12671         prepare_scc_operands().
12672         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
12673         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
12674         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
12675         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
12676         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
12677         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
12678         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
12679         used in shcompact_incoming_args.
12680         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
12681         change.
12682         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
12683         mode.
12684         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
12685         Adjust accordingly.
12686         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
12687         Simplify.  Adjust.  Add sanity check.
12688         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
12689         FPU_SINGLE_BIT.
12690         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
12691         TARGET_SHCOMPACT.
12692         (udivsi3, divsi3): Use them.
12693         (force_mode_for_call): New insn.
12694         (call, call_value, sibcall_value): Emit it before SHcompact
12695         calls.
12696         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
12697         * config/sh/sh.md (call, call_value, sibcall): Make sure the
12698         call cookie is non-NULL before taking its value.
12699         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
12700         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
12701         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
12702         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
12703         block.
12704         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
12705         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
12706         temporary for stack adjusts.  Use MACL and MACH to pass
12707         arguments to shcompact_incoming_args.
12708         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
12709         clobber r1.
12710         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
12711         (nested_trampoline): Load static chain address into r1.
12712         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
12713         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
12714         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
12715         fp_arith_reg_operand().
12716         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
12717         * config/sh/sh.md (casesi): Sign-extend the first two operands,
12718         and use signed compares for them.
12719         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
12720         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
12721         ones properly aligned.
12722         (find_barrier): Account for extra alignment needed for 8-byte wide
12723         constants.
12724         (machine_dependent_reorg): Require a label for the second 4-byte
12725         constant after an 8-byte one.
12726         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
12727         change.
12728         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
12729         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
12730         last_float when switching float modes.
12731         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
12732         auto-increment for general-purpose registers.
12733         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
12734         result.
12735         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
12736         for stack adjust.
12737         * config/sh/sh.c (sh_builtin_saveregs): Support using all
12738         registers for varargs.
12739         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
12740         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
12741         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
12742         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
12743         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
12744         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
12745         call_cookie accordingly.
12746         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
12747         (SHCOMPACT_BYREF): Likewise.
12748         (SHCOMPACT_FORCE_ON_STACK): New macro.
12749         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
12750         (sh_builtin_saveregs): Likewise.
12751         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
12752         shcompact_incoming_args): Use new shift values.  Support
12753         sequences of consecutive and non-consecutive pushes/pops.
12754         * config/sh/sh.md (return): Don't explicitly use PR_REG.
12755         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
12756         * config/sh/sh.h (TEXT_SECTION): Define.
12757         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
12758         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
12759         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
12760         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
12761         return values on FPU-enabled SHmedia.
12762         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
12763         FPU-enabled SHmedia.
12764         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
12765         value is returned in a non-FP reg and is not returned by
12766         reference.
12767         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
12768         jump_ind.
12769         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
12770         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
12771         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
12772         quad-aligned to be passed by callee-copy reference.
12773         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
12774         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
12775         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
12776         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
12777         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
12778         copying low-numbered FP regs to r7 and r8.
12779         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
12780         FP regs to general-purpose regs only if the copy was passed on the
12781         stack.
12782         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
12783         copying FP reg to r9.
12784         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
12785         copy FP regs to general-purpose regs only in outgoing calls.
12786         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
12787         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
12788         HOST_WIDE_INT.
12789         * config/sh/sh.h (struct sh_args): Document all fields.
12790         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
12791         passed partially on the stack should not consider making
12792         sibcalls.
12793         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
12794         stack_regs only for incoming calls.  When passing FP args,
12795         make sure there are FP regs available before modifying
12796         call_cookie.
12797         (SHCOMPACT_BYREF): Pass double args in general-purpose
12798         registers by reference.
12799         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
12800         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
12801         attempt to generate sibcalls if the caller got any arguments
12802         by reference.
12803         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
12804         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
12805         to 8-byte boundaries.
12806         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
12807         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
12808         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
12809         stored in the stack.
12810         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
12811         for the offsets to have the ISA bit set.
12812         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
12813         invocation.  Use beq instead of bgt to mark end of sequence of
12814         loads.
12815         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
12816         bgt to mark end of sequence of stores.
12817         * config/sh/sh.c (arith_operand): Don't check whether
12818         CONST_OK_FOR_J for now.
12819         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
12820         instead of long for conversion.
12821         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
12822         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
12823         before passing it to fprintf.
12824         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
12825         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
12826         Call set_fpscr before reading/writing SR.
12827         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
12828         Call set_fpscr.
12829         * config/sh/lib1funcs.asm: Add `.align 2' directives before
12830         SHmedia code.
12831         (FMOVD_WORKS): Define on SH5 with FPU.
12832         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
12833         setting.
12834         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
12835         _fpscr_values.
12836         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
12837         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
12838         address.
12839         (ia_main_table): Ditto.
12840         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
12841         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
12842         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
12843         the definitions from sh.h.
12844         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
12845         TARGET_SH5.
12846         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
12847         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
12848         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
12849         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
12850         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
12851         Increment LABEL_NUSES.
12852
12853         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
12854         TARGET_SH5.
12855         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
12856         defined.
12857         * config/sh/elf.h (SIZE_TYPE): Likewise.
12858         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
12859         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
12860         shcompact_incoming_args): Load switch table addresses using
12861         datalabel.
12862         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
12863         (NO_BUILTIN_SIZE_TYPE): Define.
12864         (SIZE_TYPE): Don't define.
12865         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
12866         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
12867         definition of __SH5__=32 for -m5-compact-nofpu.
12868         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
12869         ADDR_DIFF_VEC.
12870         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
12871         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
12872         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
12873         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
12874         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
12875         (INSN_LENGTH_ALIGNMENT): Likewise.
12876         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
12877         * config/sh/sh.md (call, call_value, sibcall): Simplify
12878         copying of non-branch-target register.
12879         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
12880         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
12881         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
12882         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
12883         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
12884         floating-point values as structs.
12885         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
12886         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
12887         general-purpose register.
12888         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
12889         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
12890         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
12891         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
12892         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
12893         (ENCODE_SECTION_INFO): Enclose variables and constants in
12894         DATALABEL unspecs.
12895         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
12896         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
12897         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
12898         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
12899         only for LABEL_REFs.  For SYMBOL_REFs, prepend
12900         SH_DATALABEL_ENCODING to the symbol name.
12901         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
12902         convert_mode().
12903         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
12904         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
12905         UNSPEC_DATALABEL.
12906         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
12907         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
12908         (DATALABEL_REF_P): Don't require CONST.
12909         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
12910         REL label.
12911         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
12912         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
12913         right.
12914         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
12915         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
12916         Use shallow_copy_rtx and PUT_MODE to change the mode of
12917         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
12918         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
12919         on SHmedia using GENERAL_REGs.
12920         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
12921         bltu_media_i): Fix reversion of conditions.
12922         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
12923         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
12924         * config/sh/sh.c (output_far_jump): Save r13 in macl.
12925         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
12926         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
12927         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
12928         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
12929         (GCC_nested_trampoline): Likewise.
12930         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
12931         * config/sh/sh.c (gen_datalabel_ref): Define.
12932         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
12933         (INITIALIZE_TRAMPOLINE): Likewise.
12934         (TRAMPOLINE_ADJUST_ADDRESS): Define.
12935         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
12936         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
12937         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
12938         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
12939         (ic_invalidate): Adjust for SH5.
12940         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
12941         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
12942         _nested_trampoline.
12943         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
12944         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
12945         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
12946         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
12947         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
12948         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
12949         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
12950         * config/sh/sh.c (target_reg_operand): Match only target-branch
12951         registers and pseudos that aren't virtual registers.
12952         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
12953         Copy operands that don't match target_reg_operand to pseudos.
12954         (call_media, call_value_media, sibcall_media): Use
12955         target_reg_operand instead of target_operand.
12956         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
12957         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
12958         * config/sh/sh.c (target_reg_operand): Match hardware registers
12959         other than branch-target registers.
12960         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
12961         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
12962         (fpscr_values) [SH5 == 32]: Define.
12963         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
12964         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
12965         Handle function addresses coming in SUBREGs.
12966         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
12967         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
12968         shcompact_return_trampoline): Use datalabel where appropriate.
12969         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
12970         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
12971         general-purpose register to copy one branch-target register to
12972         another.
12973         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
12974         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
12975         SYMBOL_REFs with VOIDmode.
12976         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
12977         bltu_media_i): New insns.
12978         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
12979         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
12980         (INIT_CUMULATIVE_ARGS): Likewise.
12981         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
12982         * machmode.def (V16SFmode): New mode.
12983         * c-common.c (type_for_mode): Support V2SF and V16SF.
12984         * tree.c (build_common_tree_nodes_2): Likewise.
12985         * tree.h (tree_index): Likewise.
12986         * calls.c (emit_call_1): Take args_so_far.  Adjust all
12987         callers.  Introduce CALL_POPS_ARGS.
12988         * tm.texi (CALL_POPS_ARGS): Document.
12989         * config/sh/crt1.asm: Implement in SHmedia mode.
12990         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
12991         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
12992         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
12993         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
12994         Implement divsi and udivsi in SHmedia mode.  Introduce
12995         SHcompact trampolines.
12996         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
12997         only in SHmedia64.
12998         (regno_reg_class): Rewrite.
12999         (fp_reg_names): Remove.
13000         (sh_register_names, sh_additional_register_names): New.
13001         (print_operand): Added `u'.  Support SUBREGs in addresses.
13002         Add parentheses around shifted CONSTs.
13003         (output_file_start): Output .mode and .abi directives.
13004         (shiftcosts, addsubcosts, multcosts): Adjust.
13005         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
13006         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
13007         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
13008         bytes, not registers.  Take into account the need for the
13009         SHcompact incoming args trampoline.  Adjust all callers.
13010         (sh_expand_prologue): Take stack_regs into account.  Call
13011         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
13012         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
13013         stack aligned as per SH5 ABI.
13014         (sh_builtin_saveregs): Support SH5 ABI.
13015         (sh_build_va_list, sh_va_start): Likewise.
13016         (initial_elimination_offset): Take alignment into account.
13017         Compute location of PR according to the SH5 stack frame.
13018         (arith_reg_operand): Reject branch-target registers.
13019         (shmedia_6bit_operand): New.
13020         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
13021         (target_reg_operand): Match DImode only.  Accept SUBREGs.
13022         (target_operand): New.
13023         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
13024         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
13025         SIBCALL_REGS for SHmedia.
13026         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
13027         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
13028         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
13029         (TARGET_SWITCHES): New SH5 flags.
13030         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
13031         VALID_REGISTER_P to disable unsupported registers.
13032         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
13033         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
13034         (FUNCTION_ARG_PADDING): Define.
13035         (FASTEST_ALIGNMENT): Adjust.
13036         (SH_REGISTER_NAMES_INITIALIZER): New.
13037         (sh_register_names): Declare.
13038         (DEBUG_REGISTER_NAMES): Define.
13039         (REGISTER_NAMES): Define based on sh_register_names.
13040         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
13041         (sh_additional_register_names): Declare.
13042         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
13043         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
13044         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
13045         (REGISTER_NATURAL_MODE): Define.
13046         (FIRST_PSEUDO_REGISTER): Adjust.
13047         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
13048         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
13049         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
13050         (VECTOR_MODE_SUPPORTED_P): Define.
13051         (REG_CLASS_CONTENTS): Adjust.
13052         (SMALL_REGISTER_CLASSES): Adjust.
13053         (REG_ALLOC_ORDER): Adjust.
13054         (INDEX_REG_CLASS): Adjust.
13055         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
13056         (CONST_OK_FOR_LETTER_P): Adjust.
13057         (PREFERRED_RELOAD_CLASS): Adjust.
13058         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
13059         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
13060         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
13061         (FIRST_FP_PARM_REG): Adjust.
13062         (CALL_POPS_ARGS): Define.
13063         (FUNCTION_ARG_REGNO_P): Adjust.
13064         (struct sh_args): New fields.
13065         (GET_SH_ARG_CLASS): Adjust.
13066         (INIT_CUMULATIVE_ARGS): Adjust.
13067         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
13068         (FUNCTION_ARG_ADVANCE): Adjust.
13069         (FUNCTION_ARG): Adjust.
13070         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
13071         (FUNCTION_ARG_CALLEE_COPIES): Define.
13072         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
13073         (STRICT_ARGUMENT_NAMING): Define.
13074         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
13075         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
13076         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
13077         (SETUP_INCOMING_VARARGS): Adjust.
13078         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
13079         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
13080         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
13081         (SUBREG_OK_FOR_INDEX_P): Adjust.
13082         (EXTRA_CONSTRAINT_S): Update.
13083         (EXTRA_CONSTRAINT_T): New.
13084         (EXTRA_CONSTRAINT): Adjust.
13085         (GO_IF_LEGITIMATE_INDEX): Adjust.
13086         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
13087         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
13088         (MOVE_MAX): Adjust.
13089         (MAX_MOVE_MAX): Define.
13090         (Pmode): Adjust.
13091         (CONST_COSTS): Adjust.
13092         (REGISTER_MOVE_COST): Adjust.
13093         (BRANCH_COST): Adjust.
13094         (TEXT_SECTION_ASM_OP): Adjust.
13095         (DBX_REGISTER_NUMBER): Adjust.
13096         (ASM_OUTPUT_DOUBLE_INT): New.
13097         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
13098         (PREDICATE_CODES): Adjust.
13099         (PROMOTE_MODE): Adjust.
13100         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
13101         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
13102         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
13103         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
13104         (DR0_REG, DR2_REG, DR4_REG): Renumber.
13105         (TR0_REG, TR1_REG, TR2_REG): New.
13106         (XD0_REG): Renumber.
13107         (UNSPEC_COMPACT_ARGS): New.
13108         (type): Added pt and ptabs.
13109         (length): Default to 4 on SHmedia.  Default pt length to 12
13110         and     20 on SHmedia32 and SHmedia64, respectively.
13111         (pt): New function unit.
13112         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
13113         Add whitespace between operands of SHmedia instructions.
13114         (movdicc): Fix.
13115         (adddi3_media, addsi3_media): Adjust constraints.
13116         (subsi3) [SHmedia]: Force operand 1 into a register.
13117         (udivsi3_i1_media, udivsi3_i4_media): New.
13118         (udivsi3): Support SHmedia.
13119         (divsi3_i1_media, divsi3_i4_media): New.
13120         (divsi3): Support SHmedia.
13121         (anddi3, iordi3, xordi3): Adjust constraints.
13122         (zero_extendhidi2, zero_extendqidi2): New.
13123         (extendsidi2, extendhidi2, extendqidi2): New.
13124         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
13125         (pop_e, pop_fpul, pop_4): Likewise.
13126         (movsi_media): Support FP and BT registers.
13127         (movsi_media_nofpu): New.  Adjust splits to DImode.
13128         (lduw, ldub): Renamed to zero_extend* above.
13129         (movqi_media): Fix typo.
13130         (movdi_media): Support FP and BT registers.
13131         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
13132         (movdi_const_32bit): New.
13133         (shori_media): Require immediate operand.  Use `u' for output.
13134         (movdf_media, movsf_media): Simplified.
13135         (movdf_media_nofpu, movsf_media_nofpu): New.
13136         (movdf, movsf): Adjust
13137         (movv2sf, movv2sf, movv16sf): New.
13138         (beq_media, beq_media_i): Adjust constraints.  Don't use
13139         scratch BT register.
13140         (bne_media, bne_media_i): Likewise.
13141         (bgt_media, bgt_media_i): Likewise.
13142         (bge_media, bge_media_i): Likewise.
13143         (bgtu_media, bgtu_media_i): Likewise.
13144         (bgeu_media, bgeu_media_i): Likewise.
13145         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
13146         bunordered): Emit jump insn.  Force operands to registers when
13147         needed.
13148         (jump_media, jump): Simplify.
13149         (call_compact, call_compact_rettramp): New.
13150         (call_value_compact, call_value_compact_rettramp): New.
13151         (call_media, call_value_media): Simplify.
13152         (sibcall_compact, sibcall_media): New.
13153         (call, call_value): Adjust for SHmedia and SHcompact.
13154         (sibcall, sibcall_value, untyped_call): Likewise.
13155         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
13156         (indirect_jump): Adjust for SHmedia.
13157         (casesi_jump_media): New.
13158         (nop): Re-enable for SHmedia.
13159         (call_site): Restrict to SH1.
13160         (casesi): Adjust for SHmedia.
13161         (casesi_shift_media, casesi_load_media): New.
13162         (return): Explicitly use PR register.  Call return trampoline
13163         on SHcompact.
13164         (return_i): Explicitly use PR register.
13165         (shcompact_return_tramp, shcompact_return_tramp_i): New.
13166         (return_media): Adjust.
13167         (shcompact_incoming_args): New.
13168         (epilogue): Adjust.
13169         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
13170         (movstrsi): Disable on SH5.
13171         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
13172         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
13173         (subsf3, subsf3_media): Likewise.
13174         (mulsf3, mulsf3_media, mac_media): Likewise.
13175         (divsf3, divsf3_media): Likewise.
13176         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
13177         (floatsisf2, fux_truncsfsi2): Likewise.
13178         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
13179         constraints.
13180         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
13181         (cmpunsf_media, cmpsf): Likewise.
13182         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
13183         (abssf2, abssf2_media): Likewise.
13184         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
13185         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
13186         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
13187         (floatsidf2, fix_truncdfsi2): Likewise.
13188         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
13189         constraints.
13190         (cmpeqdf_media, cmpgtdf_media): Likewise.
13191         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
13192         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
13193         (absdf2, absdf2_media): Likewise.
13194         (extendsfdf2, extendsfdf2_media): Likewise.
13195         (truncsfdf2, truncsfdf2_media): Likewise.
13196         * config/sh/sh64.h: New file.
13197         * config/sh/t-sh64: New file.
13198         * config/sh/shmedia.h: New file.
13199         * config/sh/ushmedia.h: New file.
13200         * config/sh/sshmedia.h: New file.
13201         * configure.in: Added sh64-*-elf.
13202         * configure: Rebuilt.
13203         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
13204         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
13205         (reg_class_from_letter): Use `b' for TARGET_REGS.
13206         (print_operand): Support `%M', `%m', `AND' and
13207         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
13208         (andcosts): Adjust for SHmedia.
13209         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
13210         Likewise.
13211         (target_reg_operand): New function.
13212         * config/sh/sh-protos.h (target_reg_operand): Declare.
13213         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
13214         FP registers on SH5.
13215         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
13216         on SH4.
13217         (TARGET_REGISTER_P): New macro.
13218         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
13219         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
13220         (EXTRA_CONSTRAINT_S): New macro.
13221         (EXTRA_CONSTRAINT): Adjust.
13222         (FLOAT_TYPE_SIZE): Define to 32.
13223         (Pmode): DImode on SHmedia.
13224         (CONST_COSTS): Adjust for SHmedia literals.
13225         (PREDICATE_CODES): Added target_reg_operand.
13226         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
13227         * config/sh/sh.md: Remove all attrs from SHmedia insns.
13228         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
13229         (cmpdi): Accept SHmedia.
13230         (movdicc_false, movdicc_true): New insns.
13231         (movdicc): New expand.
13232         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
13233         no_new_pseudos.
13234         (addsi3_media): Match `S' constraint.
13235         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
13236         (negdi2): Expand for SHmedia.
13237         (one_cmpldi2): New expand.
13238         (zero_extendsidi2): Change from expand to insn.
13239         (extendsidi2): Add constraints.
13240         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
13241         LD/ST address.  Fix SI immediate loading split.
13242         (movhi_media, movqi_media, lduw, ldub): New insns.
13243         (movhi, movqi): Accept SHmedia.
13244         (shori_media, movdi_media): Relax input constraints.  Split
13245         symbolic constants.
13246         (movdf_media, movsf_media): New insn.  New split to movdi.
13247         (movdf, movsf): Match on SHmedia.
13248         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
13249         bgeu_media): New insns and splits.  New insns with `_i' suffix.
13250         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
13251         (bunordered): New expand.
13252         (jump_compact): Renamed from `jump'.
13253         (jump_media): New insn.
13254         (jump): New expand.
13255         (call_media, call_value_media): New insns.
13256         (call, call_value): Adjust.
13257         (indirect_jump_compact): Renamed from `indirect_jump'.
13258         (indirect_jump_media): New insn.
13259         (indirect_jump): New expand.
13260         (untyped_call, return): Accept SHmedia.
13261         (return_media): New insn.
13262         (prologue, epilogue, blockage): Accept SHmedia.
13263         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
13264         (sunordered): New expand.
13265         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
13266         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
13267         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
13268         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
13269         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
13270         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
13271         abssf2_media): New insns.
13272         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
13273         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
13274         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
13275         floatdidf2, floatsidf2_media, fix_truncdfdi2,
13276         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
13277         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
13278         absdf2_media): New insns.
13279         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
13280         (extendsfdf2_media, truncdfsf2_media): New insns.
13281         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
13282         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
13283         * config/sh/sh.h (CONST_OK_FOR_J): Document.
13284         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
13285         * config/sh/sh.md (adddi3): New expand.
13286         (adddi3_media, adddi3z_media): New insns.
13287         (adddi3_compact): Renamed from adddi3.
13288         (addsi3_media): Use add.l r63 to add constant zero.
13289         (subdi3): New expand.
13290         (subdi3_media): New insn.
13291         (subdi3_compact): Renamed from subdi3.
13292         (mulsidi3): New expand.
13293         (mulsidi3_media): New insn.
13294         (mulsidi3_compact): Renamed from mulsidi3.
13295         (umulsidi3): New expand.
13296         (umulsidi3_media): New insn.
13297         (umulsidi3_compact): Renamed from umulsidi3.
13298         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
13299         (ashlsi3, ashrsi3, lshrsi3): Use them.
13300         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
13301         (ashldi3, ashrdi3, lshrdi3): Use them.
13302         (zero_extendsidi2): New expand.
13303         (extendsidi2): New insn.
13304         (movsi_media): New insn.  Split to movdi to load constants.
13305         (movsi): Enable for shmedia.
13306         (movdi_media): New insn.  Use shori_media to load wide constants.
13307         (short_media): New insn.
13308         (movdi): Enable for shmedia.
13309         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
13310         * config/sh/sh.h (CPP_SPEC): Added `m5'.
13311         (SUBTARGET_CPP_SPEC): Added `!m5'.
13312         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
13313         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
13314         to all other SH variants.
13315         (TARGET_DEFAULT): Set to SH1_BIT.
13316         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
13317         (BITS_PER_WORD): Raise to 64 on shmedia.
13318         (MAX_BITS_PER_WORD): Change to 64.
13319         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
13320         (INT_TYPE_SIZE): Keep as 32.
13321         (UNITS_PER_WORD): Raise to 8 on shmedia.
13322         (MIN_UNITS_PER_WORD): Keep as 4.
13323         (POINTER_SIZE): Raise to 64 on shmedia.
13324         (CONST_OK_FOR_J): New macro.
13325         (CONST_OK_FOR_LETTER_P): Use it.
13326         (processor_type): Add PROCESSOR_SH5.
13327         * config/sh/sh.md: Conditionalize all expands, insns and
13328         splits to TARGET_SH1.
13329         (cpu): Added sh5.
13330         (addsi3_compact): Renamed from...
13331         (addsi3): Now an expand.
13332         (addsi3_media, subsi3_media): New insns.
13333         (subsi3): Don't negate constants with SHmedia.
13334
13335         * hooks.c: New file.
13336         * hooks.h: New file.
13337         * Makefile.in (HOOKS_H): New.
13338         (TARGET_DEF_H): Added $(HOOKS_H).
13339         (OBJS): Added hooks.o.
13340         (cfgcleanup.o, bb-reorder.o): Added target.h.
13341         (hooks.o): Added dependencies.
13342         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
13343         (TARGET_INITIALIZER): this.
13344         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
13345         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
13346         * bb-reorder.c: Include target.h.
13347         (reorder_basic_blocks): Skip if cannot modify jumps.
13348         * cfgcleanup.c: Include target.h.
13349         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
13350
13351 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
13352
13353         * config/mips/mips.md (casesi_internal, casesi_internal_di):
13354         Protect jump delay slot instructions with .set noreorder and
13355         .set nomacro.
13356
13357 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
13358
13359         * config/mips/mips.md (casesi_internal_di): Calculate
13360         the index into the target offset table correctly.
13361
13362 2002-02-08  Richard Henderson  <rth@redhat.com>
13363
13364         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
13365         * final.c (output_addr_const): Accept and discard SUBREG.
13366         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
13367         mark them unknown instead.
13368         (simplify_subtraction): Handle RTX_UNKNOWN.
13369         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
13370
13371 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
13372
13373         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
13374
13375 2002-02-08  Richard Henderson  <rth@redhat.com>
13376
13377         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
13378
13379 2002-02-08  Andreas Jaeger  <aj@suse.de>
13380
13381         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
13382         * config/i386/t-linux64: New file.
13383
13384 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
13385
13386         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
13387         * c-parse.in (compstmt): Clear last_expr_type.
13388
13389 2002-02-07  Richard Henderson  <rth@redhat.com>
13390
13391         * loop.c (strength_reduce): Sink final_value when not
13392         eliminating a biv.
13393
13394 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
13395
13396         * config/sparc/freebsd.h: Fix mismatched spec {.
13397
13398 2002-02-07  Richard Henderson  <rth@redhat.com>
13399
13400         * cfgrtl.c: Include recog.h and insn-config.h.
13401         (keep_with_call_p): Fix general_operand invocation.
13402         * Makefile.in (cfgrtl.o): Update dependencies.
13403
13404 2002-02-07  Kazu Hirata  <kazu@hxi.com>
13405
13406         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
13407         comment.  Accept HImode only if TARGET_H8300.
13408
13409 2002-02-07  Eric Christopher  <echristo@redhat.com>
13410
13411         * config/mips/crtn.asm: Cleanup #ifdefs.
13412
13413 2002-02-07  Eric Christopher  <echristo@redhat.com>
13414
13415         * config/mips/crti.asm: Add changes for mips16. mips16 uses
13416         register 7 as RA instead of $31.
13417         * config/mips/crtn.asm: Ditto.
13418         * config/mips/mips.c (mips_move_2words): Add case for
13419         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
13420         (compute_frame_size): Fix typo.
13421         (save_restore_insns): Ditto.  Make documentation about using
13422         register $7 as return register more precise.
13423         (mips_expand_epilogue): Fix comment. Add code to work around not
13424         being able to add to the stack pointer directly.
13425         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
13426         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
13427         epilogue.
13428
13429 2002-02-07  Tom Rix  <trix@redhat.com>
13430
13431         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
13432         immediates in ldu and stdu DS opcode field.
13433         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
13434         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
13435         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
13436
13437 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
13438
13439         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
13440         offset for stack bias.
13441
13442 2002-02-07  H.J. Lu <hjl@gnu.org>
13443
13444         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
13445
13446 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
13447
13448         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
13449
13450 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
13451
13452         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
13453         * i386.c (x86_order_regs_for_local_alloc): New global function.
13454         * i386.h (REG_ALLOC_ORDER): CLeanup.
13455         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
13456
13457 2002-02-07  Richard Henderson  <rth@redhat.com>
13458
13459         PR optimization/2463
13460         * alias.c (find_base_value): Recall base values for fixed hard regs.
13461         * loop.c (loop_regs_update): Don't use single_set on non-insns.
13462
13463 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
13464
13465         * config/mips/mips.md (define_delay) [mips16]: Adjust required
13466         length.
13467
13468 2002-02-06  Richard Henderson  <rth@redhat.com>
13469
13470         PR c/5609
13471         * stmt.c (resolve_operand_name_1): Take more care with mixed
13472         named and unnamed operands.
13473
13474 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
13475             Jan Hubicka  <jh@suse.cz>
13476
13477         * loop.c (remove_constant_addition): Avoid clobbering a shared
13478         CONST expression.
13479
13480 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13481
13482         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
13483         * config/s390/t-linux64: New file.
13484         * config/s390/libgcc-glibc.ver: New file.
13485
13486 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13487
13488         * config/s390/linux64.h: Delete file.
13489         * config/s390/s390x.h: New file.
13490         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
13491         as target header file.
13492         * config/s390/linux.h (TARGET_VERSION): Define depending on
13493         DEFAULT_TARGET_64BIT.
13494         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
13495         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
13496         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
13497         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
13498         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
13499         (EXTRA_SPEC): New define.
13500         * config/s390/s390.h (TARGET_VERSION): Define depending on
13501         DEFAULT_TARGET_64BIT.
13502         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
13503
13504 2002-02-06  Jason Merrill  <jason@redhat.com>
13505
13506         * c-decl.c (finish_function): Warn about a non-void function with
13507         no return statement and no abnormal exit.
13508         (current_function_returns_abnormally): New variable.
13509         (start_function): Clear it.
13510         (struct c_language_function): Add returns_abnormally.
13511         (push_c_function_context): Save it.
13512         (pop_c_function_context): Restore it.
13513         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
13514         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
13515         an explicit return type.
13516         * c-tree.h: Declare current_function_returns_abnormally.
13517         (C_FUNCTION_IMPLICIT_INT): New macro.
13518         * c-typeck.c (build_function_call): Set it.
13519         (c_expand_return): Set current_function_returns_value even if the
13520         value is erroneous.
13521
13522 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
13523
13524         PR c/5420:
13525         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
13526         unsafe for reevaluation.
13527
13528 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
13529
13530         PR c/5482:
13531         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
13532         EXPR_STMT, but COMPOUND_STMT, recurse into it.
13533
13534 2002-02-06  Richard Henderson  <rth@redhat.com>
13535
13536         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
13537         be a general_operand.  Dest for function value must be a pseudo.
13538
13539 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
13540
13541         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
13542         as SYMBOL_REFs from the constant pool.
13543
13544 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
13545
13546         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
13547         passed by invisible reference.
13548
13549 2002-02-05  Richard Henderson  <rth@redhat.com>
13550
13551         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
13552
13553 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
13554
13555         Implement using "base addresses" in insn operands as default.
13556         * config/mmix/mmix.c (mmix_conditional_register_usage): if
13557         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
13558         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
13559         used to read the rtx value.
13560         (mmix_target_asm_function_epilogue): Fix spacing.
13561         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
13562         (mmix_legitimate_address): Ditto.
13563         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
13564         should be loaded with a GETA insn.  Don't allocate needless extra
13565         char for nul termination and fix misleading comment.
13566         (mmix_print_operand_address): Handle constants if
13567         TARGET_BASE_ADDRESSES.
13568         (mmix_output_register_setting): Use base addressing if
13569         TARGET_BASE_ADDRESSES and the number of insns is 3.
13570         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
13571         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
13572         to use R as constraint, add LDA to match s.
13573         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
13574         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
13575         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
13576         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
13577         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
13578         order with other fixed registers.
13579         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
13580         other parameter/call-clobbered registers.
13581         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
13582         -mbase-addresses, -mno-base-addresses.
13583         (MMIX Options): Ditto.
13584
13585 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13586
13587         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
13588
13589 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
13590
13591         * config/rs6000/altivec.h: Change elem to _S_elem.
13592
13593 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
13594
13595         * config/netbsd.h (WCHAR_TYPE): Define.
13596         (WCHAR_TYPE_SIZE): Ditto.
13597         (WINT_TYPE): Ditto.
13598         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
13599         (WCHAR_UNSIGNED): Ditto.
13600         (WCHAR_TYPE_SIZE): Ditto.
13601         (WINT_TYPE): Ditto.
13602         * config/arm/netbsd.h: Likewise.
13603         * config/i386/netbsd-elf.h: Likewise.
13604         * config/i386/netbsd.h: Likewise.
13605         * config/m68k/netbsd-elf.h: Likewise.
13606         * config/m68k/netbsd.h: Likewise.
13607         * config/ns32k/netbsd.h: Likewise.
13608         * config/sparc/netbsd.h: Likewise.
13609         * config/vax/netbsd.: Likewise.
13610
13611 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
13612
13613         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
13614         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
13615         (TARGET_INITIALIZER): this.
13616         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
13617         (BITFIELD_NBYTES_LIMITED): Markup fix.
13618         * tree.h (default_ms_bitfield_layout_p): Declare.
13619         (record_layout_info): Added prev_field.
13620         * tree.c (default_ms_bitfield_layout_p): New fn.
13621         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
13622         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
13623         * stor-layout.c: Include target.h.
13624         (start_record_layout): Initialize prev_field.
13625         (place_field): Handle MS bit-field layout, and disregard
13626         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
13627         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
13628         * Makefile.in (stor-layout.o): Adjust dependencies.
13629
13630 2002-02-05  Jason Merrill  <jason@redhat.com>
13631
13632         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
13633
13634 2002-02-05  Andreas Jaeger  <aj@suse.de>
13635
13636         * crtstuff.c: Fix comments.
13637
13638 2002-02-05  Richard Henderson  <rth@redhat.com>
13639
13640         PR fortran/3393
13641         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
13642         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
13643
13644         PR fortran/3392
13645         * config/mips/mips.c (function_arg): Handle TImode.
13646         (function_arg_advance): Likewise.
13647
13648 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
13649
13650         * config/rs6000/altivec.h (vec_step_help): Rename to
13651         __vec_step_help.
13652
13653 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
13654
13655         * config/rs6000/altivec.h: Fix typos.
13656
13657 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
13658
13659         * config/arm/netbsd.h: Correct a comment.
13660
13661 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
13662
13663         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
13664         building void typed builtins.
13665
13666         * config/rs6000/altivec.h (vec_ld*): Fix typos.
13667         (vec_step): Implement for C++.
13668
13669 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13670
13671         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
13672
13673 2002-02-04  Richard Henderson  <rth@redhat.com>
13674
13675         * combine.c (nonzero_bits): Re-introduce special case for
13676         sp/fp/ap wrt REGNO_POINTER_ALIGN.
13677
13678 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
13679
13680         * doc/extend.texi: Warn about unsupported usage of altivec
13681         builtins.
13682
13683         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
13684         (altivec_predicate_*): New.
13685
13686         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
13687         Add C++ version of vec_*() functions.
13688
13689         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
13690         (bdesc_2arg): Remove altivec predicates.
13691         (altivec_expand_builtin): Handle predicates.
13692         (altivec_init_builtins): Handle predicates.
13693         (altivec_expand_predicate_builtin): New.
13694
13695 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13696
13697         * pa.c (DO_FRAME_NOTES): Move forward.
13698         (store_reg): Revise handling of frame notes.
13699         (load_reg): Likewise.
13700         (set_reg_plus_d): Likewise.
13701         (hppa_expand_prologue): Likewise.
13702         (hppa_expand_epilogue): Likewise.
13703
13704 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13705
13706         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
13707
13708 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
13709
13710         PR c/4475, c++/3780:
13711         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
13712         * c-common.h (SWITCH_TYPE): Define.
13713         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
13714         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
13715         Rename spareness variable to sparseness.
13716         (expand_end_case_type): Renamed from expand_end_case, use orig_type
13717         if non-NULL instead of TREE_TYPE (orig_index).
13718         * tree.h (expand_end_case_type): Renamed from expand_end_case.
13719         (expand_end_case): Define using expand_end_case_type.
13720         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
13721         to expand_end_case_type.
13722         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
13723
13724 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13725
13726         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
13727         (BIGGEST_ALIGNMENT): Change to 128.
13728
13729 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13730
13731         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
13732
13733 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13734
13735         * pa.md (call_internal_reg_64bit): Remove unused variable.
13736
13737 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
13738
13739         * config/arm/arm.h (machine_function): Add uses_anonymous_args
13740         field.
13741         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
13742         * config/arm/arm.c (current_function_anonymous_args): Delete,
13743         replace uses with cfun->machine->uses_anonymous_args.
13744         (arm_reorg): Do not reset uses_anonymous_args.
13745
13746         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
13747         any geenral register.
13748
13749 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
13750
13751         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
13752         the entry block.
13753
13754 2002-02-04  Richard Henderson  <rth@redhat.com>
13755
13756         * combine.c (force_to_mode): Remove STACK_BIAS code.
13757         (nonzero_bits): Likewise.  Replace sp/fp special case with
13758         REGNO_POINTER_ALIGN.
13759
13760         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
13761         (HARD_FRAME_POINTER_REGNUM): New.
13762         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
13763         (FIXED_REGS, CALL_USED_REGS): Update.
13764         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
13765         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
13766         (HARD_REGNO_NREGS): Update for SFP.
13767         (STACK_POINTER_OFFSET): Include bias here ...
13768         (FIRST_PARM_OFFSET): ... not here.
13769         (STACK_BIAS): Remove.
13770         (INIT_EXPANDERS): New.
13771         (STARTING_FRAME_OFFSET): Do not include bias.
13772         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
13773         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
13774         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
13775         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
13776         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
13777         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
13778         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
13779         (MUST_SAVE_REGISTER): Likewise.
13780         (sparc_flat_function_prologue): Likewise.
13781         (sparc_flat_function_epilogue): Likewise.
13782         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
13783         (sparc_init_modes): SFP is GENERAL_REGS.
13784         (sparc_builtin_saveregs): SFP does not have bias applied.
13785
13786 2002-02-04  Richard Henderson  <rth@redhat.com>
13787
13788         * config/alpha/alpha.c (current_function_is_thunk): Don't check
13789         current_function_is_thunk.
13790         (alpha_sa_mask): Distinguish between current_function_is_thunk
13791         called from ASM_OUTPUT_MI_THUNK and not.
13792         (alpha_does_function_need_gp): Thunks always need gp.
13793         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
13794         (alpha_output_mi_thunk_osf): New.
13795         * config/alpha/alpha-protos.h: Update.
13796         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
13797
13798 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
13799
13800         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
13801         function types, not when they're taken away.
13802
13803 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
13804
13805         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
13806         CODE_LABEL and jump table when replacing a table jump with a
13807         simple jump.
13808
13809 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13810
13811         * config/s390/s390-protos.h (legitimize_la_operand,
13812         s390_secondary_input_reload_class, s390_plus_operand,
13813         s390_expand_plus_operand): Add prototypes.
13814
13815         config/s390/s390.c (s390_secondary_input_reload_class,
13816         s390_plus_operand, s390_expand_plus_operand): New functions.
13817
13818         (struct s390_address): New member 'pointer'.
13819         (s390_decompose_address): Compute it.
13820         (legitimate_la_operand_p): Use it.
13821         (legitimize_la_operand): New function.
13822         (movti, movdi, movdf splitters): Call it.
13823
13824         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
13825         (PREDICATE_CODES): Add s390_plus_operand.
13826
13827         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
13828         (la_ccclobber): Allow GENERAL_REGS as output operand.
13829
13830         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
13831         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
13832         (*la_64, *la_31, reload_indi, reload_insi): ... these.
13833
13834 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13835
13836         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
13837         register names for regular asm () construct.
13838
13839 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
13840
13841         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
13842         registers.
13843
13844 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
13845
13846         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
13847         pat for recog.
13848
13849 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
13850
13851         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
13852         constant pool to be identical by string address and index.
13853
13854 2002-02-04  Anthony Green  <green@redhat.com>
13855
13856         * output.h (SECTION_OVERRIDE): Define.
13857         * varasm.c (named_section): Obey SECTION_OVERRIDE.
13858
13859 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
13860
13861         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
13862         by existing arm*-*-netbsd* (a.out) target.
13863         (ns32k-*-netbsdelf*): Likewise.
13864         (sparc-*-netbsdelf*): Likewise.
13865         (vax-*-netbsdelf*): Likewise.
13866
13867 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
13868
13869         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
13870         headers and libobjc headers.
13871
13872 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
13873
13874         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
13875         (_mingw.h): Remove duplicate include.
13876
13877 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
13878
13879         * config.gcc: Set cpu_type to m68k for 68010, as well.
13880         (m68010-*-netbsdelf*): New...
13881         (m68k*-*-netbsdelf*): ...targets.
13882         * config/m68k/netbsd-elf.h: New file.
13883
13884 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13885
13886         * config/h8300/h8300.c (hand_list): Move inside function_arg.
13887
13888 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13889
13890         * config/h8300/h8300.c (h8_push_ops): Move inside
13891         h8300_init_once.
13892         (h8_pop_ops): Likewise.
13893         (h8_move_ops): Likewise.
13894
13895 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13896
13897         * config/h8300/h8300.c (os_task): Make it static.
13898         (monitor): Likewise.
13899         (pragma_saveall): Likewise.
13900
13901 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
13902
13903         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
13904         constant is a valid sign-extension for Pmode.
13905
13906 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13907
13908         * config/h8300/h8300.c: Fix formatting.
13909
13910 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13911
13912         * config/h8300/h8300.md: Fix formatting.
13913
13914 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13915
13916         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
13917         predicates of operands[1].  Split the patterns for each
13918         processor variant.
13919
13920 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13921
13922         * config/h8300/h8300.md (xor patterns): Tighten the predicates
13923         of operands[1] to register_operand.
13924
13925 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
13926
13927         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
13928         * cpphash.c (_cpp_init_hashtable): Similarly.
13929         * cppinit.c (cpp_create_reader): Default the signed_char flag.
13930         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
13931         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
13932         (cpp_handle_option): Handle the new options.
13933         * cpplex.c (cpp_interpret_charconst): Use new flag.
13934         * cpplib.h (struct cpp_options): New member signed_char.
13935         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
13936         (cpp_options): Handle -fsigned-char and -funsigned-char.
13937         (static_specs): Remove signed_char_spec.
13938         (do_spec1): Don't handle %c.
13939         * system.h: Poison SIGNED_CHAR_SPEC.
13940         * tradcif.y (yylex): Use flag_signed_char.
13941         * tradcpp.h (flag_signed_char): New.
13942         * tradcpp.c (flag_signed_char): New.
13943         (main): Handle new command-line options.
13944         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
13945 config:
13946         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
13947         * avr/avr.h: Remove old comments.
13948         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
13949         (CC1_SPEC): Pass -fsigned-char if -mic*.
13950         (SIGNED_CHAR_SPEC): Remove.
13951 doc:
13952         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
13953
13954 2002-02-01  Eric Christopher  <echristo@redhat.com>
13955
13956         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
13957         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
13958         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
13959         (ASM_OUTPUT_REG_POP): Ditto.
13960
13961 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
13962
13963         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
13964         patch.
13965
13966 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
13967
13968         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
13969
13970 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
13971
13972         PR c/5304:
13973         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
13974         unconditionally.
13975
13976 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
13977
13978         * cfganal.c: Include tm_p.h.
13979         (keep_with_call_p): Fix the test that determines if a register holds
13980         the return value of a call.
13981
13982 2002-02-01  DJ Delorie  <dj@redhat.com>
13983
13984         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
13985         we are given conflicting registers, switch to the other one we
13986         had allocated for us.
13987         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
13988         as TImode so we know when the "other" register is available.
13989
13990 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
13991
13992         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
13993         sparc/sparc_bi.h.
13994
13995 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
13996
13997         * cfganal.c (keep_with_call_p): New function.
13998         (flow_call_edges_add): Prevent splitting a block between a call and
13999         a single-set instruction that should be kept in the same block.
14000
14001 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14002
14003         * doc/install.texi (avr): Update outdated URL.
14004
14005 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
14006
14007         * config/stormy16/stormy16.md (pushqi): New.
14008         (popqi): New.
14009         (pushhi): New.
14010         (pophi): New.
14011         (movhi): Remove stack operands.
14012         (movqi): Likewise.
14013         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
14014         nonimmediate_nonstack_operand.
14015         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
14016         New.
14017         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
14018         New.
14019
14020 2002-01-31  Jason Merrill  <jason@redhat.com>
14021
14022         * Makefile.in (c-parse.c): Handle .output file.
14023         * objc/Make-lang.in (objc-parse.c): Likewise.
14024
14025 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
14026
14027         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
14028         the -me[lb] option is given.  Don't output the default flag
14029         twice.
14030
14031 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
14032
14033         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
14034         the primary source file; this has not been done yet.
14035         * c-decl.c (c_expand_body): Reset input_filename from
14036         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
14037
14038 2002-01-31  Kazu Hirata  <kazu@hxi.com>
14039
14040         * rtlanal.c (subreg_regno_offset): Do not use
14041         SUBREG_REGNO_OFFSET.
14042         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
14043         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
14044
14045 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
14046
14047         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
14048         version rather than GNATS version in --version output.
14049
14050 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
14051
14052         * ifcvt.c (noce_process_if_block): Make a copy of the destination
14053         when copying back from a temporary.
14054
14055 2002-01-30  Richard Henderson  <rth@redhat.com>
14056
14057         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
14058         and new_dest are the same.
14059
14060 2002-01-30  Richard Henderson  <rth@redhat.com>
14061
14062         PR opt/5076
14063         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
14064         * rtl.c (note_insn_name): Update.
14065         * emit-rtl.c (remove_unnecessary_notes): Kill it.
14066         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
14067         to perform loop rotation.
14068         (expand_exit_loop_top_cond): New.
14069         * tree.h (expand_exit_loop_top_cond): Declare it.
14070         * c-semantics.c (genrtl_while_stmt): Use it.
14071         (genrtl_for_stmt): Likewise.
14072
14073 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
14074
14075         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
14076         arguments to 64-bit boundaries on 64-bit ABIs.
14077
14078 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
14079
14080         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
14081
14082 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
14083
14084         * c-decl.c (grokdeclarator): Handle type being a typedef for an
14085         invalid type.
14086
14087 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
14088
14089         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
14090         * config/sparc/sparc_bi.h: Remove file.
14091         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
14092
14093 2002-01-30  Richard Henderson  <rth@redhat.com>
14094
14095         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
14096
14097 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
14098
14099         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
14100
14101 2002-01-30  Jason Merrill  <jason@redhat.com>
14102
14103         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
14104         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
14105         (reg_save): Use DW_CFA_offset_extended_sf instead.
14106
14107         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
14108
14109 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
14110
14111         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
14112         in cselib_lookup.
14113
14114 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
14115
14116         * rs6000.md ("*call_value_local32"): Remove constraints.
14117         ("*call_value_local64"): Same.
14118         ("*call_value_indirect_nonlocal_aix32"): Same.
14119         ("*call_value_nonlocal_aix32"): Same.
14120         ("*call_value_indirect_nonlocal_aix64"): Same.
14121         ("*call_value_nonlocal_aix64"): Same.
14122         ("*call_value_nonlocal_sysv"): Same.
14123
14124 2002-01-29  Richard Henderson  <rth@redhat.com>
14125
14126         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
14127
14128 2002-01-29  Richard Henderson  <rth@redhat.com>
14129
14130         * expr.c (force_operand): Ignore flag_pic for detecting pic
14131         address loads.
14132         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
14133         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
14134         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
14135         instead of open-coded loop.
14136         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
14137         be fixed when in use.
14138
14139 2002-01-29  Richard Henderson  <rth@redhat.com>
14140
14141         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
14142         * sched-rgn.c (propagate_deps): Update them.
14143         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
14144         clobbers list when either gets too long.
14145
14146 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
14147
14148         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
14149         and INDEX_REGS the same as GENERAL_REGS.
14150         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
14151
14152 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
14153
14154         * tree.c (build_nonstandard_integer_type): Correct prototype.
14155
14156 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
14157
14158         * config/s390/s390.md (movstrsico, movstrdix_64,
14159         movstrsix_31): Remove, replace by ...
14160         (movstrdi_short, movstrsi_short, movstrdi_long,
14161         movstrsi_long): ... these.  New.
14162         (movstrdi, movstrsi): Adapt.
14163
14164         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
14165         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
14166         Remove unnecessary CC clobber.
14167         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
14168         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
14169
14170         (divmoddi4): Don't partially initialize TImode register.
14171
14172 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
14173
14174         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
14175
14176 2002-01-29  Richard Henderson  <rth@redhat.com>
14177
14178         * flow.c (print_rtl_and_abort): Remove.
14179         (print_rtl_and_abort_fcn): Remove.
14180         (verify_local_live_at_start): Use dump_bb instead.
14181         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
14182         (verify_wide_reg_1): Return 2 on mode test failure.
14183
14184 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
14185
14186         PR c/3325, c/3326, c/2511, c/3347
14187         * c-decl.c (enum_decl_context): Remove BITFIELD.
14188         (grokdeclarator): Take bitfield width as an input.
14189         Ensure bitfields are given the correct type.  Perform
14190         bitfield width validation with build_bitfield_integer_type
14191         rather than waiting for finish_struct.
14192         (grok_typename, grok_typename_in_parm_context, start_decl,
14193         push_parmdecl, grokfield, start_function): Update calls to
14194         grokdeclarator.
14195         (build_bitfield_integer_type): New function.
14196         (finish_struct): Move bitfield validation to grokdeclarator
14197         and build_bitfield_integer_type.
14198         * tree.c (build_nonstandard_integer_type): New function.
14199         * tree.h (build_nonstandard_integer_type): New prototype.
14200 objc:
14201         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
14202
14203 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
14204
14205         PR other/1502:
14206         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
14207         don't ignore unrecognized -W* options.
14208         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
14209         * cpplib.h (cpp_handle_option): Adjust prototype.
14210         * c-decl.c (c_decode_options): Pass 0 as last argument to
14211         cpp_handle_option.
14212
14213         PR c/2896:
14214         * gcc.c (cpp_unique_options): Split from cpp_options.
14215         (cpp_options): Source cpp_unique_options.
14216         (default_compilers): Use cpp_unique_options instead of cpp_options
14217         when used together with cc1_options.
14218         (static_specs): Add cpp_unique_options.
14219         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
14220         when used together with cc1_options.
14221
14222 2002-01-29  Kazu Hirata  <kazu@hxi.com>
14223
14224         * config/h8300/h8300-protos.h: Update the prototype of
14225         output_a_shift.
14226         * config/h8300/h8300.c (output_a_shift): Remove an unused
14227         argument 'insn'.  Remove redundant code.
14228         * config/h8300/h8300.md: Adust to the new prototype of
14229         output_a_shift.
14230
14231 2002-01-29  Kazu Hirata  <kazu@hxi.com>
14232
14233         * config/h8300/h8300-protos.h: Update the prototypes of
14234         emit_a_rotate and expand_a_rotate.
14235         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
14236         first argument to 'enum rtx_code'.
14237         (expand_a_rotate): Likewise.
14238
14239 2002-01-28  Kazu Hirata  <kazu@hxi.com>
14240
14241         * config/h8300/h8300-protos.h: Update the prototype of
14242         output_simode_bld.
14243         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
14244         'log2'.
14245         * config/h8300/h8300.md: Adjust to the new prototype.
14246
14247 2002-01-28  Kazu Hirata  <kazu@hxi.com>
14248
14249         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
14250         redundant code.
14251
14252 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14253
14254         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
14255         is a fixed register before returning pic_offset_table_rtx.
14256         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
14257         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
14258
14259 2002-01-28  Jason Merrill  <jason@redhat.com>
14260
14261         * dwarf2.h: Sync with src version.
14262
14263 2002-01-28  Paul Koning  <pkoning@equallogic.com>
14264
14265         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
14266         BT_FN_VOID_PTR_VAR.
14267         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
14268         * doc/extend.texi (__builtin_prefetch): Update documentation:
14269         first argument is now const void ptr.
14270
14271 2002-01-28  Kazu Hirata  <kazu@hxi.com>
14272
14273         * config/h8300/h8300-protos.h: Remove an unused prototype.
14274
14275 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
14276
14277         * toplev.c (lang_independent_init): Round up identifier size.
14278
14279 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
14280
14281         * config.gcc: Revert previous change.
14282
14283 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
14284
14285         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
14286
14287 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
14288
14289         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
14290         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
14291         other non-elf netbsd config frags.
14292         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
14293         collect2 will does that.
14294         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
14295         shared-lib frobbing will work.
14296
14297 2002-01-28  Kazu Hirata  <kazu@hxi.com>
14298
14299         * config/h8300/h8300.h: Fix formatting.
14300         * config/h8300/h8300.md: Likewise.
14301
14302 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
14303
14304         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
14305         the old, removed AAA_standards fix.
14306         * fixinc/fixincl.x: Rebuilt.
14307
14308 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
14309
14310         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
14311         atexit call in crtbegin, hooked in after call to frame_dummy;
14312         register EH before registering __fini__start.
14313
14314 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
14315
14316         * config/rs6000/altivec.h: Remove spurious semicolons.
14317
14318 2002-01-27  Kazu Hirata  <kazu@hxi.com>
14319
14320         * config/h8300/h8300.md: Replace dead bit extraction patterns
14321         with ones that work.
14322
14323 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14324
14325         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
14326         if not STRICT_ALIGNMENT.
14327         * rtl.h (MEM_ALIGN): Likewise.
14328
14329 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14330
14331         * doc/invoke.texi (-fdump-translation-unit): Revert this
14332         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14333
14334 2002-01-27  Kazu Hirata  <kazu@hxi.com>
14335
14336         * config/h8300/h8300.md (define_constants): New.
14337         (anonymous patterns) Use defined constants appropriately.
14338
14339 2002-01-27  Kazu Hirata  <kazu@hxi.com>
14340
14341         * config/h8300/h8300.c (function_arg): Remove redundant code.
14342
14343 2002-01-26  Richard Henderson  <rth@redhat.com>
14344
14345         * sched-deps.c (reg_pending_uses_head): New.
14346         (reg_pending_barrier): Rename from reg_pending_sets_all.
14347         (find_insn_list): Don't mark inline.
14348         (find_insn_mem_list): Remove.
14349         (add_dependence_list, add_dependence_list_and_free): New.
14350         (flush_pending_lists): Replace only_write param with separate
14351         for_read and for_write parameters.  Update all callers.  Use
14352         add_dependence_list_and_free.
14353         (sched_analyze_1): Do not add reg dependencies here; just set
14354         the pending bits.  Use add_dependence_list.
14355         (sched_analyze_2): Likewise.
14356         (sched_analyze_insn): Replace schedule_barrier_found with
14357         reg_pending_barrier.  Add all dependencies for pending reg
14358         uses, sets, and clobbers.
14359         (sched_analyze): Don't add reg dependencies for calls, just
14360         set pending bits.  Use regs_invalidated_by_call.  Treat
14361         sched_before_next_call as a normal list, not a fake insn.
14362         (init_deps): No funny init for sched_before_next_call.
14363         (free_deps): Free pending mems lists.  Don't zero reg_last.
14364         (init_deps_global): Init reg_pending_uses.
14365         (finish_deps_global): Free it.
14366         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
14367         (find_insn_mem_list): Remove.
14368         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
14369         (propagate_deps): Use them.  Zero temp mem lists.
14370
14371 2002-01-26  Richard Henderson  <rth@redhat.com>
14372
14373         * Makefile.in (CRTSTUFF_CFLAGS): New.
14374         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
14375         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
14376         crtstuff.c instead of alpha assembly version.
14377         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
14378         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
14379         not FORCE_{INIT,FINI}_SECTION_ALIGN.
14380         (__do_global_dtors_aux): Mark used.
14381         (frame_dummy, __do_global_ctors_aux): Mark used.
14382         (fini_dummy, init_dummy): Remove.
14383
14384         * config/alpha/crtbegin.asm: Remove file.
14385         * config/alpha/crtend.asm: Remove file.
14386         * config/alpha/t-crtbe: Remove file.
14387         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
14388         (LINK_EH_SPEC): New.
14389
14390         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
14391         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
14392         calling constructors.
14393         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
14394
14395         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
14396         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
14397         CRT_END_INIT_DUMMY hack.
14398         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
14399         FORCE_{INIT,FINI}_SECTION_ALIGN.
14400
14401         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
14402         FORCE_{INIT,FINI}_SECTION_ALIGN.
14403
14404         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
14405         invocation sequence.
14406         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
14407
14408         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
14409         (FORCE_CODE_SECTION_ALIGN): New.
14410
14411 2002-01-26  Richard Henderson  <rth@redhat.com>
14412
14413         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
14414
14415 2002-01-26  Richard Henderson  <rth@redhat.com>
14416
14417         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
14418         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
14419
14420 2002-01-26  Kazu Hirata  <kazu@hxi.com>
14421
14422         * config/h8300/h8300.md: Remove bit extraction patterns that
14423         cannot be triggered.
14424         Restrict each bit extraction pattern to a variant on which the
14425         pattern is tested.
14426
14427 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
14428
14429         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
14430
14431 2002-01-26  Kazu Hirata  <kazu@hxi.com>
14432
14433         * config/h8300/h8300.md: Remove bit test patterns that cannot
14434         be triggered.
14435         Restrict each bit test pattern to a variant on which the
14436         pattern is tested.
14437
14438 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14439
14440         * builtins.c (expand_builtin_strncat): Remove redundant check for
14441         INTEGER_CST.
14442
14443 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
14444
14445         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
14446         default setting.
14447         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
14448         existing setting.
14449
14450 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
14451
14452         * dbxout.c (dbxout_init): Use assemble_name rather than just
14453         stripping off the first character.
14454         (dbxout_source_file): Likewise.
14455
14456 2002-01-25  DJ Delorie  <dj@redhat.com>
14457
14458         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
14459         using rtx_equal_p, not by comparing pointers.
14460
14461 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
14462
14463         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
14464         for PIC_OFFSET_TABLE_REGNUM.
14465         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
14466
14467 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
14468
14469         * config.gcc (x86_64-*-freebsd*): New target.
14470         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
14471         value.
14472         (i[34567]86-*-freebsd*): Don't include svr4.h.
14473         * config/i386/freebsd64.h: New file.
14474
14475 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
14476
14477         * config/alpha/x-vms (version): Make static.
14478
14479         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
14480         in previous checkin.
14481
14482         * Makefile.in (install-headers-cp): New target.
14483         * config.gcc (alpha-dec-*vms*): Install headers with
14484         install-headers-cp
14485
14486 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
14487
14488         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
14489         avoid it's copies.
14490
14491 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14492
14493         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
14494         of compare_tree_int.
14495         (expand_builtin_strncat): Likewise.
14496         * c-decl.c (finish_struct): Use tree_low_cst.
14497         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
14498         * tree.c (compare_tree_int): Likewise.
14499
14500 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
14501
14502         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
14503         adjustments even if they are implemented by more than two insns.
14504
14505 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
14506
14507         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
14508         * df.h (struct ref): Kill B.
14509         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
14510
14511         * basic-block.h (PROP_EQUAL_NOTES): New flag.
14512         * flow.c (propagate_one_insn): Use it.
14513         (mark_used_regs): Handle NIL.
14514
14515 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
14516
14517         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
14518         to help folding.
14519
14520 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
14521
14522         * rs6000.md (prefetch): Make address V4SI mode so that the address
14523         is restricted to legitimate form for instruction.
14524
14525 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
14526
14527         * doc/install.texi (xtensa-*-elf): New target.
14528         (xtensa-*-linux*): New target.
14529         * doc/contrib.texi: Add myself.
14530
14531 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
14532
14533         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
14534         purpose register to hold an SImode (or smaller) value.
14535
14536 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
14537
14538         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
14539         registry only.
14540         * crtstuff.c: Likewise.
14541
14542 2002-01-25  Kazu Hirata  <kazu@hxi.com>
14543
14544         * config/h8300/h8300.md (negation patterns): Tighten
14545         predicates to register_operand.
14546
14547 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
14548
14549         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
14550         mode, not Pmode.
14551
14552         * builtins.c (expand_builtin_prefetch): Same.
14553
14554 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14555
14556         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
14557         modes.
14558
14559 2002-01-24  Kazu Hirata  <kazu@hxi.com>
14560
14561         * config/h8300/h8300.c (print_operand): Remove support for
14562         operand character 'A'.
14563         * config/h8300/h8300.md (three anonymous patterns): Replace
14564         operand character 'A' with either 'T' or 'S'.
14565
14566 2002-01-24  Kazu Hirata  <kazu@hxi.com>
14567
14568         * config/h8300/h8300.c (print_operand): Remove support for
14569         operand character 'U'.
14570
14571 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
14572
14573         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
14574
14575 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
14576
14577         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
14578         values to be assigned to the stack pointer.
14579
14580 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
14581
14582         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
14583         to const_double needs to be done right for big-endian systems.
14584
14585 2002-01-24  Jason Merrill  <jason@redhat.com>
14586
14587         PR c++/2432
14588         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
14589         to can_throw_internal.
14590
14591 2002-01-23  Richard Henderson  <rth@redhat.com>
14592
14593         * fold-const.c (fold): Change UINT_MAX test to check vs precision
14594         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
14595
14596 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14597
14598         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
14599         (symGOT2reg): Use them, then set as GOT value as unchanging.
14600         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
14601         as a temporary, if possible.
14602         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
14603         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
14604
14605 2002-01-23  Kazu Hirata  <kazu@hxi.com>
14606
14607         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
14608         accept to accept 0x80 as operands[2].
14609
14610 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14611
14612         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
14613
14614 2002-01-23  Richard Henderson  <rth@redhat.com>
14615
14616         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
14617
14618 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
14619
14620         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
14621         (parmlist_or_identifiers_1): Verify that only a parmlist follows
14622         an attribute.
14623
14624 2002-01-23  Richard Henderson  <rth@redhat.com>
14625
14626         * expr.c (move_by_pieces_1): Extend size before negation.
14627
14628         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
14629         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
14630         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
14631         * config/m68k/t-m68kelf: Likewise.
14632
14633 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
14634
14635         * config/xtensa/elf.h: New file.
14636         * config/xtensa/lib1funcs.asm: New file.
14637         * config/xtensa/lib2funcs.S: New file.
14638         * config/xtensa/linux.h: New file.
14639         * config/xtensa/t-xtensa: New file.
14640         * config/xtensa/xtensa-config.h: New file.
14641         * config/xtensa/xtensa-protos.h: New file.
14642         * config/xtensa/xtensa.c: New file.
14643         * config/xtensa/xtensa.h: New file.
14644         * config/xtensa/xtensa.md: New file.
14645         * config.gcc (xtensa-*-elf*): New target.
14646         (xtensa-*-linux*): New target.
14647         * cse.c (canon_hash): Compare rtx pointers instead of register
14648         numbers.  This is required for the Xtensa port.
14649         * integrate.c (copy_insn_list): Handle case where the static
14650         chain is in memory and the memory address has to be copied to
14651         a register.
14652         * doc/invoke.texi (Option Summary): Add Xtensa options.
14653         (Xtensa Options): New node.
14654         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
14655
14656 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
14657
14658         * diagnostic.c (internal_error): Do ICE suppression only
14659         when ENABLE_CHECKING is not defined.
14660
14661         * c-typeck.c (require_complete_type): Return error_mark_node
14662         if type is error_mark_node.
14663
14664 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
14665
14666         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
14667         -Os and issue a warning.
14668
14669 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
14670
14671         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
14672         current (lack of) need for host configuration by hand.
14673
14674         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
14675         references.  Documentation of some target macros moved from
14676         hostconfig.texi to tm.texi.
14677
14678 2002-01-23  Will Cohen  <wcohen@redhat.com>
14679
14680         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
14681         defined.
14682
14683 2002-01-23  Kazu Hirata  <kazu@hxi.com>
14684
14685         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
14686         operand[3].
14687
14688 2002-01-23  Jason Merrill  <jason@redhat.com>
14689
14690         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
14691
14692         * function.c (assign_parms): Don't put args of inline functions
14693         into registers when not optimizing.
14694
14695 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
14696
14697         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
14698         (prologue_use): New pattern.
14699         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
14700         preference to gen_rtx_USE.
14701         (thumb_expand_prologue): Use gen_prologue_use in preference to
14702         gen_rtx_USE.
14703         (thumb_expand_epilogue): Use gen_prologue_use in preference to
14704         gen_rtx_USE.
14705
14706 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
14707
14708         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
14709
14710 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
14711
14712         PR c/3504
14713         * doc/extend.texi: Correct documentation of __alignof__.
14714
14715 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
14716
14717         * params.h: Rename arguments of DEFPARAM so that it will be
14718         recognized as a translation keyword.
14719
14720 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
14721
14722         * extend.texi: Document altivec functions.
14723         Fix N-bit adjectives in X86 builtin documentation.
14724
14725 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
14726
14727         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
14728         auto_inc_dec values.
14729
14730 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
14731
14732         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
14733         after backslash.
14734         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
14735
14736 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
14737
14738         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
14739
14740 2002-01-22  Richard Henderson  <rth@redhat.com>
14741
14742         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
14743         copy_insn not copy_rtx.
14744
14745 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
14746
14747         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
14748         "nonzero" as that might add "1" bits.  Ensure "constop" is
14749         properly sign extened.
14750         (force_to_mode): Tweak for sign extended constop.
14751
14752 2002-01-22  Richard Henderson  <rth@redhat.com>
14753
14754         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
14755         for_each_rtx instead of assuming we're already looking at the MEM.
14756         (split_small_symbolic_mem_operand): Likewise.
14757         * config/alpha/alpha.h (PREDICATE_CODES): Update.
14758         * config/alpha/alpha.md (small symbolic memory splitters): Update.
14759
14760 2002-01-22  Richard Henderson  <rth@redhat.com>
14761
14762         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
14763         sequence number for the literal.
14764         (divmoddi_internal_er): Likewise.
14765
14766 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14767
14768         PR java/4972
14769         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
14770         in LIBICONV variable.
14771         * configure: Regenerated.
14772
14773 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
14774
14775         * dependence.c (build_def_use): Remove array_idx.
14776
14777         * dwarfout.c (last_filename): Remove.
14778         (output_compile_unit_die): Remove last_filename.
14779
14780 2002-01-22  Roger Sayle  <roger@eyesopen.com>
14781             Richard Henderson  <rth@redhat.com>
14782
14783         PR opt/3640
14784         * fold-const.c (fold): Optimize unsigned comparisons against
14785         UINT_MAX (and similar unsigned constants).
14786
14787 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
14788
14789         * Makefile.in (loop.o): Depend on OPTABS_H.
14790         * loop.c (emit_prefetch_instructions): Check the prefetch operand
14791         against the predicate.
14792
14793         PR target/5379
14794         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
14795         for the address operand.
14796
14797 2002-01-22  Richard Henderson  <rth@redhat.com>
14798
14799         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
14800
14801 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14802
14803         PR other/5450
14804         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
14805         preprocessor flags.
14806
14807 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
14808
14809         * config.gcc (x86_64-*-netbsd*): New target.
14810         * config/i386/netbsd64.h: New file.
14811
14812 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
14813
14814         * regrename.c (kill_value): Fix typo.
14815
14816 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
14817
14818         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
14819
14820         * config/rs6000/rs6000.h: Same.
14821
14822         * function.c (instantiate_virtual_regs): Remove
14823         STARTING_FRAME_PHASE.
14824         (assign_stack_local_1): Same.
14825         Calculate frame phase.
14826
14827 2002-01-22  Nick Clifton  <nickc@redhat.com>
14828
14829         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
14830         variable declaration to outer scope in order to simplify
14831         future extensions.
14832         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
14833         arm_hard_regno_mode_ok.
14834         * config/arm/arm-protos.h: Add a prototype for
14835         arm_hard_regno_mode_ok.
14836         * config/arm/arm.c (soft_df_operand): Remove now redundant
14837         check for DImode values using IP_REGNUM.
14838         (nonimmediate_soft_df_operand): Remove now redundant check for
14839         DImode values using IP_REGNUM.
14840         (arm_hard_regno_mode_ok): New function. New check: make sure
14841         that DImode values are not stored in IP_REGNUM.
14842
14843         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
14844         note with a USE.
14845         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
14846
14847 2002-01-22  Jason Merrill  <jason@redhat.com>
14848
14849         * c-semantics.c (genrtl_compound_stmt): Only check nesting
14850         consistency if this COMPOUND_STMT is scoped.
14851
14852 2002-01-22  Kazu Hirata  <kazu@hxi.com>
14853
14854         * predict.c: Fix formatting.
14855         * print-tree.c: Likewise.
14856         * protoize.c: Likewise.
14857         * real.h: Likewise.
14858         * rtl.h: Likewise.
14859         * sbitmap.h: Likewise.
14860         * scan.c: Likewise.
14861         * sched-deps.c: Likewise.
14862         * sched-vis.c: Likewise.
14863         * sdbout.c: Likewise.
14864         * sibcall.c: Likewise.
14865         * ssa.c: Likewise.
14866         * ssa-ccp.c: Likewise.
14867         * ssa-dce.c: Likewise.
14868         * stmt.c: Likewise.
14869         * stor-layout.c: Likewise.
14870         * system.h: Likewise.
14871
14872 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14873
14874         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
14875         if fits in bounds of base type.
14876
14877         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
14878         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
14879         (add_bound_info, default): If can't find a context, make a
14880         SAVE_EXPR.
14881         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
14882
14883 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
14884
14885         * c-typeck.c (parser_build_binary_op): If result from
14886         build_binary_op is ERROR_MARK just return error_mark_node without
14887         further processing.
14888
14889 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
14890
14891         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
14892         Split a.out-specific bits into...
14893         * config/netbsd-aout.h: ...this.
14894         * config/netbsd-elf.h: New file.
14895         * config/alpha/netbsd-elf.h: Remove.
14896         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
14897         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
14898         (STARTFILE_SPEC): Remove redundant definition.
14899         (ENDFILE_SPEC): Likewise.
14900         (LINK_SPEC): Likewise.
14901         (CPP_SPEC): Likewise.
14902         (ASM_SPEC): Likewise.
14903         (LIB_SPEC): Likewise.
14904         (SWITCH_TAKES_ARG): Likewise.
14905         (TARGET_MEM_FUNCTIONS): Likewise.
14906         (CPP_PREDEFINES): Redefine.
14907         (ASM_FINAL_SPEC): Remove redefinition.
14908         (ASM_COMMENT_START): Redefine.
14909         (FUNCTION_PROFILER): Define.
14910         (TARGET_VERSION): Redefine.
14911         Comment and formatting cleanup.
14912         * config/i386/netbsd.h: Include <netbsd-aout.h>.
14913         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
14914         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
14915         big- or little-endian.
14916         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
14917         * config.gcc (*-*-netbsd*): Add definitions common to all
14918         NetBSD configs.
14919         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
14920         gnu_ld definitions.  Add netbsd-elf.h to and remove
14921         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
14922         tmake_file, and don't lose previous tmake_file contents.
14923         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
14924         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
14925         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
14926         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
14927         (mipsel-*-netbsd*): Rename this to...
14928         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
14929         mips/little.h to tm_file for mips*el-*.
14930         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
14931         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
14932         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
14933
14934 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14935
14936         * pa-protos.h (reg_before_reload_operand): New function prototype.
14937         * pa.c (reg_before_reload_operand): New function implementation.
14938         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
14939         contraints to "*m".
14940
14941 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14942
14943         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
14944
14945 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14946
14947         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
14948         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
14949         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
14950         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
14951         (ENDFILE_SPEC): Undefine.
14952         (STARTFILE_SPEC): Redefine for PA.
14953
14954 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14955
14956         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
14957
14958 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
14959
14960         * config.gcc: Add entries to supported PowerPC --with-cpu
14961         types.
14962
14963 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
14964
14965         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
14966         true for 64-bit mode only SSE registers in 32-bit mode.
14967
14968 2002-01-21  Kazu Hirata  <kazu@hxi.com>
14969
14970         * unwind-dw2.c: Fix formatting.
14971         * unwind-dw2-fde.c: Likewise.
14972         * unwind-dw2-fde.h: Likewise.
14973         * unwind-pe.h: Likewise.
14974         * varasm.c: Likewise.
14975         * varray.h: Likewise.
14976
14977 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
14978
14979         Remove workaround for register stack overwrite bug in mmix.
14980         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
14981         support for TARGET_REG_STACK_FILL_BUG.
14982         * config/mmix/mmix.h: Remove member has_call_without_parameters.
14983         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
14984         Delete.
14985         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
14986         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
14987         -mno-reg-stack-fill-bug-workaround.
14988         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
14989         machine member has_call_without_parameters.
14990         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
14991         -mreg-stack-fill-bug-workaround and
14992         -mno-reg-stack-fill-bug-workaround.
14993         (MMIX Options): Ditto.
14994
14995 2002-01-21  Kazu Hirata  <kazu@hxi.com>
14996
14997         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
14998         as appropriate.
14999         Remove redundant code.
15000
15001 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
15002
15003         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
15004         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
15005         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
15006         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
15007         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
15008         out target macro definitions and non-target-specific comments
15009         mostly taken from old versions of the manual.
15010
15011 2002-01-20  Kazu Hirata  <kazu@hxi.com>
15012
15013         * config/h8300/h8300.h: Fix comment formatting.
15014         * config/ia64/aix.h: Likewise.
15015         * config/ia64/ia64-protos.h: Likewise.
15016         * config/ia64/ia64.c: Likewise.
15017         * config/ia64/ia64.h: Likewise.
15018         * config/ia64/ia64intrin.h: Likewise.
15019         * config/ia64/linux.h: Likewise.
15020         * config/ia64/unwind-aix.c: Likewise.
15021         * config/ia64/unwind-ia64.c: Likewise.
15022
15023 2002-01-20  Kazu Hirata  <kazu@hxi.com>
15024
15025         * config/h8300/h8300.c: Revise comments about shift code.
15026
15027 2002-01-20  Kazu Hirata  <kazu@hxi.com>
15028
15029         * config/h8300/h8300.c (function_arg): Update a comment.
15030
15031 2002-01-20  Kazu Hirata  <kazu@hxi.com>
15032
15033         * config/h8300/h8300.md: Update the comments at the beginning
15034         of the file.
15035
15036 2002-01-20  Kazu Hirata  <kazu@hxi.com>
15037
15038         * config/i370/i370.c: Fix comment formatting.
15039         * config/i370/i370.h: Likewise.
15040         * config/i370/i370.md: Likewise.
15041         * config/i370/linux.h: Likewise.
15042
15043 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15044
15045         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
15046
15047         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
15048         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
15049         in incomplete case.
15050
15051 2002-01-20  Graham Stott  <grahams@redhat.com>
15052
15053         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
15054
15055 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15056
15057         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
15058
15059 2002-01-19  Tom Rix  <trix@redhat.com>
15060
15061         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
15062
15063 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
15064
15065         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
15066
15067         * function.c (assign_stack_local_1): Adjust x_frame_offset with
15068         STARTING_FRAME_PHASE.
15069         (STARTING_FRAME_PHASE): New.
15070         (instantiate_virtual_regs): Check saneness of
15071         STARTING_FRAME_PHASE.
15072
15073         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
15074
15075 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
15076
15077         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
15078
15079 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15080
15081         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
15082         be used for bootstrapping GCC 3.0.
15083
15084 2002-01-18  Kazu Hirata  <kazu@hxi.com>
15085
15086         * config/h8300/h8300.md: Fix an insn length.
15087
15088 2002-01-18  Kazu Hirata  <kazu@hxi.com>
15089
15090         * bitmap.h: Fix comment formatting.
15091         * combine.c: Likewise.
15092         * cppfiles.c: Likewise.
15093         * c-pragma.h: Likewise.
15094         * c-typeck.c: Likewise.
15095         * df.c: Likewise.
15096         * dwarf2out.c: Likewise.
15097         * function.c: Likewise.
15098         * gcc.c: Likewise.
15099         * genattrtab.c: Likewise.
15100         * gthr-win32.h: Likewise.
15101         * haifa-sched.c: Likewise.
15102         * predict.c: Likewise.
15103         * rtlanal.c: Likewise.
15104         * rtl.h: Likewise.
15105         * unwind-dw2-fde.h: Likewise.
15106         * unwind-pe.h: Likewise.
15107         * vmsdbgout.c: Likewise.
15108
15109 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15110
15111         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
15112         if type_required and passed decl.
15113
15114 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
15115
15116         * config.gcc (cpu_type): Include altivec.h in powerpc
15117         extra_headers.
15118         Same for darwin.
15119
15120         * config/rs6000/altivec.h: New.
15121
15122 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
15123
15124         * doc/install.texi (*-ibm-aix*): Update assembler and exception
15125         handling information.
15126         * doc/trouble.texi (Interoperation): Add libstdc++ information
15127         for AIX.
15128         (Misunderstandings): Add template instantiation and static template
15129         member information for AIX.
15130
15131 2002-01-17  Jason Merrill  <jason@redhat.com>
15132
15133         * dbxout.c (dbxout_type): Support const and volatile.
15134
15135         * except.c (add_partial_entry): Remove backwards compatibility code.
15136         (end_protect_partials): Likewise.
15137
15138 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
15139
15140         * config/ia64/ia64.md (prologue_use): New.
15141         * config/ia64/ia64.c (ia64_expand_prologue): Use
15142         gen_prologue_use instead of gen_rtx_USE.
15143         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
15144         as CODE_FOR_pred_rel_mutex.
15145         (ia64_sched_reorder2): Likewise.
15146
15147 2002-01-16  Eric Christopher  <echristo@redhat.com>
15148
15149         * config/mips/r3900.h: Reformat.
15150         (SUBTARGET_CPP_SIZE_SPEC): Remove.
15151         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
15152         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
15153         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
15154         * config/mips/t-elf: Remove mips3 multilib.
15155
15156 2002-01-16  H.J. Lu <hjl@gnu.org>
15157
15158         * config/mips/linux.h: Include "mips/abi64.h".
15159
15160 2002-01-16  H.J. Lu <hjl@gnu.org>
15161
15162         * config/mips/t-linux: New.
15163
15164         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
15165
15166         * config/mips/linux.h: Don't include "gofast.h".
15167         (INIT_SUBTARGET_OPTABS): Removed.
15168
15169 2002-01-16  Kazu Hirata  <kazu@hxi.com>
15170
15171         * config/h8300/h8300-protos.h: Replace emit_a_shift with
15172         output_a_shift.
15173         * config/h8300/h8300.c: Likewise.
15174         * config/h8300/h8300.md: Likewise.
15175
15176 2002-01-16  Kazu Hirata  <kazu@hxi.com>
15177
15178         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
15179         spaces after an opcode name.
15180         (pushqi1_h8300hs): Likewise.
15181         (pushhi1_h8300hs): Likewise.
15182
15183 2002-01-16  Kazu Hirata  <kazu@hxi.com>
15184
15185         * doc/extend.texi: Replace "option" with "attribute"
15186         appropriately.
15187
15188 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
15189
15190         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
15191         (and:DI () (const_int -8)).
15192         (split_small_symbolic_mem_operand): Split
15193         (mem (and:DI () (const_int -8)).
15194
15195 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
15196
15197         PR target/5309:
15198         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
15199         same way as TYPE_IMUL.
15200         (ultrasparc_sched_reorder): Likewise.
15201         * config/sparc/sparc.md (type): Add comment to update
15202         ultrasparc_sched_reorder when making changes.
15203
15204 2002-01-16  Kazu Hirata  <kazu@hxi.com>
15205
15206         * doc/invoke.texi: Change the dump file name of block
15207         reordering pass from 28.bbro to 29.bbro.
15208         Mention -dk option.
15209
15210 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
15211
15212         * i386.md (minsf splitter): Fix pasto.
15213
15214 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
15215
15216         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
15217         to frame pointer initialisation instruction.
15218         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
15219         initialisation instruction.
15220         (soft_df_operand): Do not accept the IP register.
15221         (nonimmediate_soft_df_operand): Do not accept the IP register.
15222
15223 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
15224
15225         PR target/5357:
15226         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
15227         MASK_V8 being both set.
15228
15229 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
15230
15231         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
15232         insn for GOT register; add REG_MAYBE_DEAD notes instead.
15233         config/s390/s390.md (call, call_value): Add GOT register to
15234         CALL_INSN_FUNCTION_USAGE where needed.
15235         (call_exp, call_value_exp): New.
15236
15237 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
15238
15239         * config/arm/arm.c: General formatting tidy up.
15240
15241 2002-01-16  Graham Stott  <grahams@redhat.com>
15242
15243         * calls.c (try_to_integrate): Use "(size_t)" intermediate
15244         cast and when casting an integer literal to "rtx" pointer.
15245         (expand_call): Likewise.
15246         * flow.c (try_pre_increment): Likewise.
15247         (find_use_as_address): Likewise.
15248         * integrate.c (expand_iline_function): Likewise.
15249         * regmove.c (try_auto_increment): Likewise.
15250
15251 2002-01-16  Graham Stott  <grahams@redhat.com>
15252
15253         * sched-rgn.c (passed): Use sbitmap_free.
15254         (header): Likewise.
15255         (inner): Likewise.
15256         (in_queue): Likewise.
15257         (in_stack): Likewise.
15258
15259 2002-01-15  Eric Christopher  <echristo@redhat.com>
15260
15261         * flow.c (propagate_one_insn): Change to use fatal_insn.
15262
15263 2002-01-15  Kazu Hirata  <kazu@hxi.com>
15264
15265         * expmed.c (extract_fixed_bit_field): Remove unused code.
15266         * system.h: Poison SLOW_ZERO_EXTEND.
15267         * doc/tm.texi: Remove.
15268         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
15269         * config/arm/arm.h: Likewise.
15270         * config/avr/avr.h: Likewise.
15271         * config/clipper/clipper.h: Likewise.
15272         * config/convex/convex.h: Likewise.
15273         * config/d30v/d30v.h: Likewise.
15274         * config/dsp16xx/dsp16xx.h: Likewise.
15275         * config/elxsi/elxsi.h: Likewise.
15276         * config/fr30/fr30.h: Likewise.
15277         * config/h8300/h8300.h: Likewise.
15278         * config/i370/i370.h: Likewise.
15279         * config/i386/i386.h: Likewise.
15280         * config/m68k/m68k.h: Likewise.
15281         * config/mips/mips.h: Likewise.
15282         * config/ns32k/ns32k.h: Likewise.
15283         * config/pdp11/pdp11.h: Likewise.
15284         * config/pj/pj.h: Likewise.
15285         * config/s390/s390.h: Likewise.
15286         * config/sh/sh.h: Likewise.
15287         * config/stormy16/stormy16.h: Likewise.
15288         * config/v850/v850.h: Likewise.
15289         * config/vax/vax.h: Likewise.
15290         * config/we32k/we32k.h: Likewise.
15291
15292 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
15293
15294         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
15295         (altivec_lvsl): Change constraint to b.
15296         (altivec_lvsr): Same.
15297         (altivec_lvebx): Same.
15298         (altivec_lvehx): Same.
15299         (altivec_lvewx): Same.
15300         (altivec_lvxl): Same.
15301         (altivec_lvx): Same.
15302         (altivec_stvx): Add parallel.
15303         (altivec_stvxl): Same.
15304         (altivec_stvehx): Same.
15305         (altivec_stvebx): Same.
15306         (altivec_stvebx): Same.
15307
15308 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
15309
15310         * config.gcc: Change altivec.h to altivec-defs.h.
15311
15312         * config/rs6000/altivec.h: Delete.
15313
15314         * config/rs6000/altivec-defs.h: Add.
15315
15316 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15317
15318         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
15319         and UMOD modes.
15320
15321         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
15322         less than or equal to eight bytes.
15323
15324         * vax.md (andsi3): Remove constraints and change SET destination
15325         operand type to nonimmediate_operand.
15326         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
15327         when it is a CONST_INT.
15328
15329 2002-01-15  Jason Merrill  <jason@redhat.com>
15330
15331         * c-common.def (FILE_STMT): New code.
15332         * c-common.c (statement_code_p): It's a statement.
15333         * c-common.h (stmt_tree_s): Add x_last_filename.
15334         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
15335         (last_expr_filename): New macro.
15336         * c-semantics.c (begin_stmt_tree): Initialize it.
15337         (add_stmt): If the filename changed, also insert a
15338         FILE_STMT.
15339         (expand_stmt): Handle seeing one.
15340
15341 2002-01-15  Eric Christopher  <echristo@redhat.com>
15342
15343         * flow.c (propagate_one_insn): Add error message and print out
15344         insn for debugging.
15345
15346 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
15347
15348         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
15349         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
15350         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
15351         TRAMPOLINE_ALIGNMENT.
15352         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
15353         to be in bits.
15354         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
15355         PCC_BITFIELD_TYPE_MATTERS.
15356         * config/interix.h (STDC_VALUE): Remove.  Use
15357         STDC_0_IN_SYSTEM_HEADERS.
15358         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
15359         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
15360         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
15361
15362 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15363
15364         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
15365         not work on this platform currently.
15366
15367 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
15368
15369         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
15370         readonly_warning in _().
15371
15372 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
15373
15374         * gcc.c (delete_if_ordinary): Backout previous change.
15375
15376 2002-01-15  Kazu Hirata  <kazu@hxi.com>
15377
15378         * config/h8300/h8300.c (print_operand): Remove support for
15379         unused operand characters.
15380
15381         * read-rtl.c: Fix formatting.
15382         * real.c: Likewise.
15383         * recog.c: Likewise.
15384         * regclass.c: Likewise.
15385         * regmove.c: Likewise.
15386         * reg-stack.c: Likewise.
15387         * reload1.c: Likewise.
15388         * rtlanal.c: Likewise.
15389
15390 2002-01-15  Kazu Hirata  <kazu@hxi.com>
15391
15392         * config/i386/i386.c: Fix formatting.
15393
15394 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
15395
15396         * c-typeck.c (process_init_element): Don't save_expr
15397         COMPOUND_LITERAL_EXPR if just its initializer will be used.
15398
15399 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
15400
15401         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
15402         emit optional traceback table if optimize_size or TARGET_ELF.
15403         * config/rs6000/rs6000.md (prefetch): New.
15404
15405 2002-01-15  Andreas Jaeger  <aj@suse.de>
15406
15407         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
15408
15409 2002-01-15  Kazu Hirata  <kazu@hxi.com>
15410
15411         * mips-tfile.c: Fix formatting.
15412
15413 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
15414
15415         * unroll.c (final_reg_note_copy): Fix previous commit.
15416
15417 2002-01-14  Kazu Hirata  <kazu@hxi.com>
15418
15419         * config/h8300/h8300-protos.h: Remove the prototype for
15420         eq_operator.
15421         * config/h8300/h8300.c (eq_operator): Remove.
15422
15423 2002-01-14  Richard Henderson  <rth@redhat.com>
15424
15425         * config/i386/i386.md (prefetch): Tidy.
15426         (prefetch_3dnow): Fix locality operand.
15427
15428 2002-01-14  Richard Henderson  <rth@redhat.com>
15429
15430         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
15431         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
15432
15433 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
15434
15435         * reload1.c (reload_combine): Pass reg_sum replacement through
15436         copy_rtx in loop performing multiple changes.
15437
15438 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
15439
15440         * except.c (remove_unreachable_regions): New.
15441         (free_eh_status): Clear exception_handler_labels.
15442         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
15443         (find_exception_handler_labels): Don't add the same label more than
15444         once.
15445         (remove_exception_handler_label): Don't die if
15446         find_exception_handler_labels hasn't been called for the current
15447         function yet.
15448
15449 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
15450
15451         * toplev.c (rest_of_compilation): Rebuild jump labels after
15452         gcse.
15453
15454 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
15455
15456         * doc/extend.texi: Move documentation of X86 built-in functions
15457         here.
15458         * doc/invoke.texi: From here.
15459         * doc/sourcebuild.texi: Document location of documentation for
15460         machine built-in functions.
15461
15462 2002-01-13  Christopher Faylor  <cgf@redhat.com>
15463
15464         * cppfiles.c (TEST_THRESHOLD): New macro.
15465         (SHOULD_MMAP): Ditto.
15466         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
15467         be used.
15468
15469 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
15470
15471         * unroll.c (final_reg_note_copy): Properly handle
15472         REG_LABEL
15473         (unroll_loops): Fix LOOP_CONDITION heuristics.
15474
15475 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
15476
15477         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
15478         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
15479
15480 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
15481
15482         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
15483         threaded loop.
15484
15485 2002-01-14  Tom Rix  <trix@redhat.com>
15486
15487         * config/rs6000/rs6000.md: Fix typo with sradi.
15488
15489 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
15490
15491         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
15492         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
15493         (clrstrdi, clrstrsi): Adapt callers.
15494
15495         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
15496
15497         (movti splitter): Never use register 0 as base register.
15498
15499 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
15500
15501         * combine.c (simplify_shift_const): Always generate new rtx
15502         for shift expression instead of reusing given expression.
15503
15504 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15505
15506         * config/alpha/alpha.c (alpha_expand_mov): Don't call
15507         alpha_legitimize_address unless mode is Pmode.
15508
15509 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
15510
15511         * doc/md.texi (Modifiers): Document the '*' constraint for the
15512         user.
15513
15514         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
15515         * doc/extend.texi (Function Attributes): 'interrupt' is valid
15516         for xstormy16 too.
15517
15518 2002-01-13  Richard Henderson  <rth@redhat.com>
15519
15520         * reload.c (find_reloads): Use a hard reg destination as reload reg
15521         for an input reload of the source.
15522
15523 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15524
15525         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
15526         more generic.
15527
15528 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
15529
15530         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
15531         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
15532
15533         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
15534
15535 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15536
15537         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
15538
15539 2002-01-12  Tom Rix  <trix@redhat.com>
15540
15541         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
15542         TARGET_POWERPC64.
15543
15544 2002-01-12  Richard Henderson  <rth@redhat.com>
15545
15546         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
15547
15548         * doc/invoke.texi: Update Alpha options.
15549
15550         * doc/invoke.texi: Update i386 built-in function lists.
15551
15552 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
15553
15554         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
15555         referencing outside.
15556
15557 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15558
15559         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
15560         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
15561         offsets, and change line folding.
15562         * optabs.c (expand_binop): Remove warnings.
15563         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
15564
15565 2002-01-12  Graham Stott <grahams@redhat.com>
15566
15567         * attribs.c (handle_deprecated_attribute): constify WHAT.
15568         * diagnostic.c (warn_deprecated_use): Add braces, fixes
15569         dangling else warning and constify WHAT.
15570         * except.h (struct function, struct inline_remap): Move
15571         struct tag forward defs before all prototypes.
15572         (duplicate_eh_regions): Whitespace.
15573
15574 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
15575
15576         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
15577         MODE_BASE_REG_CLASS.
15578         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
15579
15580 2002-01-12  Richard Henderson  <rth@redhat.com>
15581
15582         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
15583         (ix86_expand_vector_move): New.
15584         (bdesc_2arg): Remove andps, andnps, orps, xorps.
15585         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
15586         Remove old prefetch builtins.  Special case the logicals removed above.
15587         (ix86_expand_builtin): Likewise.
15588         (safe_vector_operand): Use V4SFmode, not TImode.
15589         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
15590         (ix86_expand_timode_binop_builtin): New.
15591         * config/i386/i386-protos.h: Update.
15592         * config/i386/i386.h (enum ix86_builtins): Update.
15593         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
15594         Use ix86_expand_vector_move in vector move expanders.
15595         (movti_internal, movti_rex64): Add xorps alternative.
15596         (sse_clrv4sf): Rename and adjust from sse_clrti.
15597         (prefetch): Don't work so hard.
15598         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
15599         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
15600         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
15601
15602 2002-01-11  Richard Henderson  <rth@redhat.com>
15603
15604         * config/i386/mmintrin.h: New file.
15605         * config/i386/xmmintrin.h: New file.
15606         * config.gcc (i?86-*-*): Add extra_headers.
15607         * simplify-rtx.c (simplify_unary_operation): Handle saturating
15608         truncation codes.
15609         (simplify_binary_operation): Handle saturating arithmetic codes.
15610         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
15611         not the lowpart subreg.
15612         (ix86_expand_builtin): Return a TImode dummy register instead of 0
15613         on error.
15614         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
15615
15616 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15617
15618         * conflict.c (conflict_graph_compute): Free regsets when finished.
15619         * ssa.c (compute_coalesced_reg_partition): Likewise.
15620
15621 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15622
15623         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
15624         every where we allocate a register.
15625
15626 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15627
15628         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
15629         * lcm.c (compute_earliest, compute_farthest): Likewise.
15630
15631 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
15632
15633         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
15634
15635 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
15636
15637         * doc/rtl.texi (Insns): Fix 2 typos.
15638
15639 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
15640
15641         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
15642         options.  Use @table @gcctabopt for MMIX options.  Add index
15643         entries for MMIX options.  Start new paragraph with first
15644         heading of the machine-dependent options.
15645
15646 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15647
15648         PR other/5299
15649         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
15650         * combine.c (force_to_mode): Same.
15651         * reload1.c (clear_reload_reg_in_use): Same.
15652
15653 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
15654
15655         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
15656         and 'subtargets'.
15657
15658 2002-01-11  Andreas Jaeger  <aj@suse.de>,
15659             Brad Lucier <lucier@math.purdue.edu>
15660
15661         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
15662         mcpu.
15663
15664 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
15665
15666         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
15667         Protect with IN_LIBGCC.
15668         (LINK_EH_SPEC): Add required trailing space.
15669
15670 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
15671
15672         * c-tree.h: Move function declarations so that they are listed
15673         under the filename which contains them.
15674         (check_identifier, finish_decl_top_level,
15675         lookup_name_current_level_global, shadow_record_fields): Remove.
15676
15677 2002-01-11  Andreas Jaeger  <aj@suse.de>
15678
15679         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
15680         march.
15681
15682 2002-01-10  Richard Henderson  <rth@redhat.com>
15683
15684         * config/alpha/alpha.c (print_operand): Add 'J'.
15685         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
15686         new operand with the sequence number for the lituse.  When splitting
15687         the insns, use gen_movdi_er_high_g and generate a sequence number.
15688         (gen_movdi_er_high_g): Print the sequence number if non-zero.
15689
15690 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
15691
15692         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
15693         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
15694         stvxl.
15695         (altivec_expand_builtin): Same.
15696         (altivec_expand_stv_builtin): New.
15697
15698         * config/rs6000/rs6000.h (rs6000_builtins): Same.
15699
15700         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
15701         ("altivec_lvehx"): New.
15702         ("altivec_lvewx"): New.
15703         ("altivec_lvxl"): New.
15704         ("altivec_lvx"): New.
15705         ("altivec_stvx"): New.
15706         ("altivec_stvebx"): New.
15707         ("altivec_stvehx"): New.
15708         ("altivec_stvewx"): New.
15709         ("altivec_stvxl"): New.
15710
15711 2002-01-10  Richard Henderson  <rth@redhat.com>
15712
15713         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
15714         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
15715         care not to delete instructions twice.
15716
15717 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
15718
15719         * toplev.c: Don't declare environ (it's not used anywhere).
15720         * configure.in: Don't check for declaration of environ.
15721         * config/i386/xm-mingw32.h: Don't #define environ.
15722         * config.in, configure: Regenerate.
15723
15724 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
15725
15726         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
15727         * configure: Regenerate.
15728
15729         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
15730         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
15731         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
15732         alpha/xm-vms.h.
15733         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
15734         LIMITS_H_TEST here, not in m68k/x-next.
15735         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
15736         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
15737
15738         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
15739         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
15740         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
15741
15742         * config/i386/x-djgpp: Renamed i386/t-djgpp.
15743         * config/m88k/x-dolph: Renamed m88k/t-dolph.
15744         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
15745         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
15746         replacement of quadlib.asm with quadlib.c.
15747
15748         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
15749         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
15750         config/rs6000/xm-beos.h: Delete file.
15751
15752         * config.gcc: Update to match above changes.
15753
15754 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15755
15756         * config/h8300/h8300.h: Fix comment typos.
15757         * config/h8300/h8300.md: Likewise.
15758         * config/h8300/lib1funcs.asm: Likewise.
15759
15760 2002-01-10  Dale Johannesen  <dalej@apple.com>
15761
15762         PR optimization/5269
15763         * unroll.c (precondition_loop_p): Make *increment be the correct
15764         sign when n_iterations known, to avoid confusing caller.
15765
15766 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15767
15768         * doc/extend.texi (deprecated): Fix a typo.
15769
15770 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
15771
15772         * basic-block.h (update_br_prob_note): Declare.
15773         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
15774         (try_forward_edges): Care negative frequencies and update note.
15775         (outgoing_edges_match): Tweek conditional merging heuristics.
15776         (try_crossjump_to_edge): use update_br_prob_note.
15777         * cfglayout.c (fixup_reorder_chain): Likewise.
15778         * cfrtl.c (update_br_prob_note): New.
15779         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
15780
15781         * i386.c (ix86_decompose_address): Return -1 if address contains
15782         shift.
15783         (legitimate_address_p): Require ix86_decompose_address to return 1.
15784
15785         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
15786         (cprop_insn): Likewise.
15787
15788 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15789
15790         * toplev.c: Fix formatting.
15791         * tree.c: Likewise.
15792         * tree-dump.c: Likewise.
15793         * unroll.c: Likewise.
15794         * unwind-dw2.c: Likewise.
15795         * unwind-dw2-fde.c: Likewise.
15796         * unwind-dw2-fde-glibc.c: Likewise.
15797         * unwind-sjlj.c: Likewise.
15798
15799 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
15800
15801         * doc/invoke.texi: Document PDP-11 options.
15802
15803 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15804
15805         * config/h8300/h8300.h: Fix formatting.
15806
15807 2002-01-10  Ira Ruben   <ira@apple.com>
15808
15809         Add __attribute__ ((deprecated)).
15810         * extend.texi: Document __attribute__ ((deprecated)).
15811         * invoke.texi: Document -Wno-deprecated-declarations.
15812         * testsuite/g++.dg/other/deprecated.C: New C++ test.
15813         * testsuite/gcc.dg/deprecated.c: New C test.
15814         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
15815         (c_common_attribute_table): Add "deprecated" entry.
15816         (handle_deprecated_attribute): New function.
15817         * c-decl.c (deprecated_states): New enum.
15818         deprecated_state: State of "deprecated" handling.
15819         (start_decl): Set deprecated_state based on attributes.
15820         (grokdeclarator): Test for deprecated uses, propagate attribute.
15821         * c-typeck.c (build_component_ref): Test for deprecated fields.
15822         (build_external_ref): Test for deprecated primaries.
15823         * diagnostic.c (warn_deprecated_use) New function to issue
15824         warnings about __attribute__ ((depricated)) references.
15825         * flags.h (warn_deprecated_decl): Extern declared for
15826         -W[no-]deprecated-declarations option.
15827         * print-tree.c (print_node): Show deprecated flag status.
15828         * toplev.c (warn_deprecated_decl): Defined.
15829         (W_options): Added "deprecated-declaration".
15830         * toplev.h (warn_deprecated_use): Extern declared.
15831         * tree.h (struct tree_common): Define deprecated_flag.
15832         (TREE_DEPRECATED): New macro to access flag.
15833         * cp/call.c (build_call): Test for deprecated calls.
15834         * cp/class.c (add_implicitly_declared_members): Set global
15835         flag to tell grokdeclarator to not issue deprecated warnings.
15836         * cp/cp-tree.h: Add extern for adding_implicit_members.
15837         * cp/decl.c (deprecated_states): New enum.
15838         (start_decl): Set deprecated_state based on attributes.
15839         (grokdeclarator): Test for deprecated uses, propagate attribute.
15840         * cp/lex.c (do_identifier): Test for deprecated primaries.
15841         * cp/typeck.c (build_component_ref): Test for deprecated fields.
15842
15843 2002-01-10  Ira Ruben   <ira@apple.com>
15844
15845         Fix to assign attributes to inline member functions.
15846         * cp/decl.c (start_method): Handle attrlist.
15847
15848 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15849
15850         * combine.c (expand_field_assignment): Use subreg_lsb().
15851
15852 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
15853
15854         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
15855         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
15856         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
15857         Recurse for any operand of AND as long as constant is non-zero.
15858
15859 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15860
15861         * config/h8300/h8300.md: Remove constraints from expanders.
15862
15863 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15864
15865         * varasm.c: Fix formatting.
15866         * varray.c: Likewise.
15867         * vmsdbgout.c: Likewise.
15868         * xcoffout.c: Likewise.
15869
15870 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
15871
15872         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
15873         update edge probabilities to match.
15874
15875 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
15876
15877         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
15878         dependencies.
15879         * doc/languages.texi, doc/sourcebuild.texi: New files.
15880         * doc/configfiles.texi: Make a subsubsection.  Update.
15881         * doc/configterms.texi: Add @node.  Remove warning that this isn't
15882         instructions for building GCC.
15883         * doc/makefile.texi: Make a subsection.
15884         * doc/gccint.texi: Update.
15885
15886 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
15887
15888         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
15889
15890 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
15891
15892         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
15893
15894 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
15895
15896         * optabs.c (expand_fix): Look for wider integer modes first.
15897
15898         * i386.md (mov?f): Avoid the fake const double trick for medium
15899         memory model.
15900         (min?f*/max?f*): Prohibit memory operands for i387 variant.
15901         (fop_df_4): Disable for SSE compilation.
15902
15903 2002-01-10  Graham Stott  <grahams@redhat.com>
15904
15905         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
15906         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
15907
15908 2002-01-10  Richard Henderson  <rth@redhat.com>
15909
15910         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
15911
15912 2002-01-10  Richard Henderson  <rth@redhat.com>
15913
15914         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
15915         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
15916
15917 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15918
15919         * combine.c (can_combine_p): Fix a comment typo.
15920
15921 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
15922
15923         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
15924         empty list correctly.  Change loop index $t to $f for
15925         consistency with rest of Makefile.
15926
15927 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
15928
15929         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
15930         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
15931
15932         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
15933         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
15934         (altivec_init_builtins): Same.
15935         (altivec_expand_unop_builtin): Return NULL_RTX on error.
15936         (altivec_expand_binop_builtin): Same.
15937         (altivec_expand_ternop_builtin): Same.
15938         (bdesc_dst): New.
15939
15940         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
15941         ("altivec_vctuxs"): Fix typo.
15942         ("altivec_vnmsubfp"): Same.
15943         ("altivec_dssall"): New.
15944         ("altivec_mfvscr"): New.
15945         ("altivec_dss"): New.
15946         ("altivec_lvsl"): New.
15947         ("altivec_lvsr"): New.
15948         ("altivec_dstt"): New.
15949         ("altivec_dstst"): New.
15950         ("altivec_dststt"): New.
15951         ("altivec_dst"): New.
15952
15953         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
15954         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
15955
15956 2002-01-09  Richard Henderson  <rth@redhat.com>
15957
15958         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
15959
15960 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
15961
15962         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
15963         function.
15964         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
15965         prototype.
15966         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
15967
15968 2002-01-09  Kazu Hirata  <kazu@hxi.com>
15969
15970         * read-rtl.c: Fix formatting.
15971         * real.c: Likewise.
15972         * regclass.c: Likewise.
15973         * regrename.c: Likewise.
15974         * reg-stack.c: Likewise.
15975         * reload1.c: Likewise.
15976         * reload.c: Likewise.
15977         * rtl.c: Likewise.
15978
15979 2002-01-09  Kazu Hirata  <kazu@hxi.com>
15980
15981         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
15982         to extract items in the expr_list chain.
15983
15984 2002-01-09  Richard Henderson  <rth@redhat.com>
15985
15986         * config/vax/vax.c (vax_rtx_cost): Never abort.
15987
15988         * config/vax/vax.h (REAL_ARITHMETIC): Define.
15989
15990 2002-01-09  Jan Hubicka  <jh@suse.cz>
15991
15992         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
15993
15994 2002-01-09  Richard Henderson  <rth@redhat.com>
15995
15996         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
15997         Unify code from various alternatives.
15998
15999 2002-01-09  Richard Henderson  <rth@redhat.com>
16000
16001         * regrename.c (copy_value): Ignore the copy if the source register
16002         is present in the value chain with a narrower mode.
16003
16004 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
16005
16006         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
16007         for the c4x target. Also improve layout.
16008
16009 2002-01-09  Richard Henderson  <rth@redhat.com>
16010
16011         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
16012         * config/m32r/m32r.md (and ior xor splitters): Swap operands
16013         to match insn patterns.
16014
16015 2002-01-09  Richard Henderson  <rth@redhat.com>
16016
16017         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
16018         (copyprop_hardreg_forward_1): Likewise.
16019
16020 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16021
16022         * pa.md (decrement_and_branch_until_zero): Change predicate for
16023         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
16024
16025 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
16026
16027         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
16028         gets undefined. For Darwin.
16029
16030 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16031
16032         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
16033
16034 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16035
16036         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
16037
16038 2002-01-08  Richard Henderson  <rth@redhat.com>
16039
16040         * regrename.c (copy_value): Ignore overlapping copies.
16041
16042 2002-01-08  Richard Henderson  <rth@redhat.com>
16043
16044         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
16045         as needed to avoid shared structure.
16046
16047 2002-01-08  Kazu Hirata  <kazu@hxi.com>
16048
16049         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
16050         H8/300H and H8/S.
16051
16052 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
16053
16054         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
16055         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
16056         documentation of obsolete macros.
16057         * system.h: Poison these macros.
16058         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
16059         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
16060         config/c4x/c4x.h, config/clipper/clipper.h,
16061         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
16062         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
16063         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
16064         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
16065         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
16066         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
16067         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
16068         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
16069         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
16070         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
16071         config/sparc/sparc.h, config/stormy16/stormy16.h,
16072         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
16073         definitions and commented out definitions of obsolete macros.
16074         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
16075         of MAX_INT_TYPE_SIZE.
16076
16077 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
16078
16079         * config/s390/s390.c (s390_preferred_reload_class): Never
16080         return ADDR_REGS if it isn't a subset of the given class.
16081         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
16082         FP_REGS, but all superclasses as well.
16083
16084         * config/s390/s390.c (s390_function_profiler): Fix thinko.
16085
16086         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
16087         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
16088         must not be a const_int.
16089
16090 2002-01-08  Richard Henderson  <rth@redhat.com>
16091
16092         * Makefile.in (toplev.o): Depend on options.h.
16093         (gcc.o): Depend on specs.h.
16094
16095 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
16096
16097         * expr.c (store_expr): Convert VOIDmode constants back to target's
16098         mode.
16099
16100 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
16101
16102         * doc/invoke.texi: Markup gcc as @command.  Refer to
16103         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
16104         of http://gcc.gnu.org/thanks.html.
16105
16106 2002-01-08  Dale Johannesen  <dalej@apple.com>
16107
16108         * config/rs6000/rs6000.md: Add missing int register
16109         target case to movdf_low.
16110
16111 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
16112
16113         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
16114         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
16115         (cppinit.o): Depend on except.h.
16116         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
16117         s-specs): New rules.
16118
16119         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
16120         Don't create specs.h/options.h/gencheck.h here.  Remove
16121         unnecessary variable settings from last argument of AC_OUTPUT.
16122         * config.in, configure: Regenerate.
16123         * intl.c: Hardcode package name as "gcc".
16124
16125         * cppinit.c: Include except.h.
16126         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
16127         appropriate.
16128         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
16129         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
16130         (!)USING_SJLJ_EXCEPTIONS.
16131         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
16132
16133 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
16134
16135         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
16136         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
16137         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
16138         documentation of obsolete macros.
16139         * system.h: Poison these macros.
16140         * config/d30v/d30v.h, config/ns32k/encore.h,
16141         config/stormy16/stormy16.h: Remove definitions and commented out
16142         definitions of obsolete macros.
16143
16144 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
16145
16146         * objc/objc-act.c (handle_class_ref): Mark the declaration of
16147         %sobjc_class_ref_%s as used - to prevent unwanted compiler
16148         warnings.
16149
16150 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
16151
16152         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
16153         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
16154         to insn adjusting stack/frame pointer.
16155         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
16156         accept operands that cause the insn to be non-splittable.
16157
16158 2002-01-08  Graham Stott  <grahams@redhat.com>
16159
16160         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
16161         (C_TYPE_FIELDS_VOLATILE): Likewise.
16162         (C_TYPE_BEING_DEFINED): Likewise.
16163         (C_IS_RESERVED_WORD): Likewise.
16164         (C_TYPE_VARIABLE_SIZE): Likewise.
16165         (C_DECL_VARIABLE_SIZE): Likewise.
16166         (C_MISSING_PROTOTYPE_WARNED): Likewise.
16167         (C_SET_EXP_ORIGINAL_CODE): Likewise.
16168         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
16169         parenthesis.
16170         (C_DECL_ANTICIPATED): Likewise.
16171         (c_build_type_variant): Add parenthesis.
16172
16173 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
16174
16175         * gcc.c (option_map): Remove --version.
16176         (process_command): Handle -fversion following the GNU Coding
16177         Standards.  Partially addresses PR other/704.
16178
16179 2002-01-08  Graham Stott  <grahams@redhat.com>
16180
16181         * combine.c (combine_instructions): Fix typo.
16182
16183 2002-01-08  Graham Stott  <grahams@redhat.com>
16184
16185         * debug.h: Use "tree" and "rtx" throughout.
16186
16187         * debug.c: Likewise.
16188
16189 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
16190
16191         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
16192         constant pool, use the pool's version of the symbol instead.
16193
16194 2002-01-07  Richard Henderson  <rth@redhat.com>
16195
16196         * regrename.c (find_oldest_value_reg): Ignore the value chain if
16197         the original register was copied in a mode with a fewer number of
16198         hard registers than the desired mode.
16199         (copyprop_hardreg_forward_1): Likewise.
16200         (debug_value_data): Fix loop test.
16201         * toplev.c (parse_options_and_default_flags): Reenable
16202         -fcprop-registers at -O1.
16203
16204 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
16205
16206         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
16207         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
16208
16209         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
16210         predicates.
16211
16212         * config/rs6000/rs6000.md: Add altivec predicate patterns.
16213
16214 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16215
16216         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
16217         (pa_output_function_prologue): Output local label at the beginning of
16218         the prologue when profiling.
16219         (hppa_profile_hook): Use the local label rather than the function label.
16220         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
16221
16222 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
16223
16224         * config/rs6000/rs6000.c (print_operand): Remove extra space.
16225         (altivec_expand_unop_builtin): Fix thinko.
16226         (altivec_expand_binop_builtin): Same.
16227         (altivec_expand_ternop_builtin): Same.
16228         (altivec_expand_builtin): Same.
16229
16230 2002-01-07  Richard Henderson  <rth@redhat.com>
16231
16232         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
16233
16234 2002-01-07  Jason Merrill  <jason@redhat.com>
16235
16236         * unwind-dw2.c (execute_cfa_program): Use < again.
16237
16238 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
16239
16240         * predict.c (combine_predictions_for_insn): Avoid division by zero.
16241
16242 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
16243
16244         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
16245         Don't allow -1 - x -> ~x simplifications in the first pass.
16246
16247 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
16248
16249         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
16250         arguments.
16251         (altivec_expand_binop_builtin): Same.
16252         (altivec_expand_unop_builtin): Same.
16253         (print_operand): Fix typo.
16254         (bdesc_1arg): Add vupk* variants.
16255
16256         * rs6000.h (rs6000_builtins): Add vupk* enums.
16257
16258         * rs6000.md: Add altivec_vupk* variants.
16259
16260 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
16261
16262         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
16263         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
16264         and last update dates.
16265
16266 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
16267
16268         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
16269
16270 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
16271
16272         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
16273         * config/avr/avr.h (CPP_SPEC): Likewise.
16274         (LINK_SPEC): Likewise.
16275         (CRT_BINUTILS_SPECS): Likewise.
16276         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16277         * doc/invoke.texi (AVR Options): Document them.
16278
16279 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
16280
16281         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
16282         LABEL_NUSES.
16283
16284 2002-01-07  Graham Stott  <grahams@redhat.com>
16285
16286         * config/i386/i386.h: Update copyright date.
16287         (HALF_PIC_PTR): Add parenthesis.
16288         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
16289         (CONSTANT_ALIGNMENT): Add parenthesis.
16290         (DATA_ALIGNMENT): Likewise.
16291         (LOCAL_ALIGNMENT): Likewise.
16292         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
16293         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
16294         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
16295         (HARD_REGNO_NREGS): Add paranethesis.
16296         (VALID_SSE_REG_MODE): Whitespace.
16297         (VALID_MMX_REG_MODE): Whitespace.
16298         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
16299         (ix86_hard_regno_mode_ok): Add parenthesis.
16300         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
16301         (RETURN_IN_MEMORY): Whitespace.
16302         (N_REG_CLASSES): Add parenthesis.
16303         (INTEGER_CLASS_P): Add parenthesis and wrap.
16304         (FLOAT_CLASS_P): Likewise.
16305         (SSE_CLASS_P): Likewise.
16306         (MMX_CLASS_P): Likewise.
16307         (MAYBE_INTEGER_CLASS_P): Likewise.
16308         (MAYBE_FLOAT_CLASS_P): Likewise.
16309         (MAYBE_SSE_CLASS_P): Likewise.
16310         (MAYBE_MMX_CLASS_P): Likewise.
16311         (Q_CLASS_P): Likewise.
16312         (GENERAL_REGNO_P): Uppercase macro parameter.
16313         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
16314         (FP_REGNO_P): Likewise.
16315         (ANY_FP_REGNO_P): Uppercase macro parameter.
16316         (SSE_REGNO_P): Likewise.
16317         (SSE_REGNO): Likewise.
16318         (SSE_REG_P): Likewise.
16319         (SSE_FLOAT_MODE_P): Likewise.
16320         (MMX_REGNO_P): Likewise.
16321         (MMX_REG_P):Likewise.
16322         (STACK_REG_P): Likewise.
16323         (NON_STACK_REG_P): Likewise.
16324         (STACK_TOP_P): Likewise.
16325         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
16326         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
16327         (SECONDARY_MEMORY_NEEDED): Likewise.
16328         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
16329         (MD_ASM_CLOBBERS): Whitespace and wrap.
16330         (MUST_PASS_IN_STACK): Whitespace and wrap.
16331         (RETURN_POPS_ARGS): Add parenthesis.
16332         (INIT_CUMULATIVE_ARGS): Likewise.
16333         (FUNCTION_ARG): Likewise.
16334         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
16335         (SETUP_INCOMING_VARARGS): Likewise.
16336         (BUILD_VA_LIST_TYPE):  Add parenthesis.
16337         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
16338         parenthsis.
16339         (EXPAND_BUILTIN_VA_ARG): Likewise.
16340         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
16341         (INITIALIZE_TRAMPOLINE): Add parenthesis.
16342         (INITIAL_ELIMINATION_OFFSET): Likewise.
16343         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
16344         (REGNO_OK_FOR_BASE_P): Likewise.
16345         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
16346         (REGNO_OK_FOR_DIREG_P): Likewise.
16347         (REG_OK_FOR_INDEX_P): Whitespace.
16348         (REG_OK_FOR_BASE_P): Whitespace.
16349         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
16350         parenthesis.
16351         (FIND_BASE_TERM): Fix typo.
16352         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
16353         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
16354         (SYMBOLIC_CONST; Whitespace.
16355         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
16356         (ENCODE_SECTION_INFO): Whitespace.
16357         (FINALIZE_PIC): Remove do { ... } while (0).
16358         (PROMOTE_MODE): Wrap in do { ... } while (0).
16359         (CONST_COSTS): Whitespace.
16360         (RTX_COSTS): Add paramethesis, whitespace and wrap.
16361         (REGISTER_MOVE_COST): Add parenthesis.
16362         (MEMORY_MOVE_COST): Likewise.
16363         (EXTRA_CC_MODES): Whitespace.
16364         (SELECT_CC_MODE): Add parenthesis and whitespace.
16365         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
16366         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
16367         (ASM_OUTPUT_LABEL): Add paramethesis.
16368         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
16369         (ASM_OUTPUT_REG_POP): Likewise.
16370         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
16371         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
16372
16373         * config/i386/i386.c: Update copyright.
16374         (CHECK_STACK_LIMIT): Add parenthesis.
16375         (AT_BP): Uppercase macro parameter.
16376         (x86_64_int_parameter_registers): Constify.
16377         (x86_64_int_return_registers): Likewise.
16378         (ix86_compare_op0): Use rtx.
16379         (construct_container): Constify INTREG parameter.
16380         (function_arg): Use rtx.
16381
16382         * diagnostic.h: Update copyright date.
16383         (output_buffer_state): Add parenthesis.
16384         (output_buffer_format_args): Likewise.
16385
16386         * combine.c (combine_instructions): Replace XEXP (links, 0)
16387         with link.
16388
16389 2002-01-06  H.J. Lu <hjl@gnu.org>
16390
16391         * cfgcleanup.c (thread_jump): Fix 2 typos.
16392
16393 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
16394
16395         * config.gcc: Add support for --enable-altivec.
16396
16397 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16398
16399         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
16400
16401 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
16402
16403         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
16404         __objc_class_name_*.
16405
16406 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16407
16408         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
16409
16410 2002-01-06  Richard Henderson  <rth@redhat.com>
16411
16412         * reorg.c (emit_delay_sequence): Remove death notes, not merely
16413         nop them out.  Increment label reference count for REG_LABEL.
16414         (fill_slots_from_thread): Frob label reference count around
16415         delete_related_insns.
16416
16417 2002-01-05  Richard Henderson  <rth@redhat.com>
16418
16419         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
16420         jump threading.
16421
16422 2002-01-05  Richard Henderson  <rth@redhat.com>
16423
16424         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
16425         * integrate.c (output_inline_function): Likewise.
16426         * toplev.c (rest_of_compilation): Do it here instead.  Move call
16427         to remove_unnecessary_notes after emitting abstract instance.
16428         Force an emitted nested function to have its parent emited as well.
16429         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
16430         for null.
16431         (rtl_for_decl_location): Do not look at reload data structures
16432         before reload has run.
16433
16434 2002-01-05  Kazu Hirata  <kazu@hxi.com>
16435
16436         * cse.c: Fix formatting.
16437         * dwarf2asm.c: Likewise.
16438         * dwarf2out.c: Likewise.
16439         * explow.c: Likewise.
16440         * expmed.c: Likewise.
16441         * function.c: Likewise.
16442         * gcov.c: Likewise.
16443         * gencheck.c: Likewise.
16444         * genrecog.c: Likewise.
16445         * ggc-common.c: Likewise.
16446         * ggc-page.c: Likewise.
16447         * global.c: Likewise.
16448
16449 2002-01-05  Kazu Hirata  <kazu@hxi.com>
16450
16451         * combine.c: Fix formatting.
16452
16453 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
16454
16455         PR middle-end/1557
16456         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
16457
16458 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
16459
16460         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
16461         as 1 for __powerpc64__ as well.
16462
16463         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
16464
16465         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
16466         return it.
16467
16468 2002-01-05  Daniel Berlin  <dan@dberlin.org>
16469
16470         * lcm.c: Revert change, due to performance regression it causes on
16471         SPEC because it's slightly more conservative (sigh, I hate
16472         edge-based LCM).
16473
16474 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
16475
16476         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
16477
16478 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
16479
16480         * doc/cppinternals.texi: Update.
16481
16482 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
16483
16484         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
16485         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
16486         negatives.
16487         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
16488         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
16489         kludge for pre-october-14th mmix versions to handle new-found bug
16490         with PUSHJ/PUSHGO and the register stack.
16491         * config/mmix/mmix.h (struct machine_function): Rename member
16492         has_call_value_without_parameters to has_call_without_parameters.
16493         All referers changed.
16494         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
16495         TARGET_MASK_BRANCH_PREDICT): New macros.
16496         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
16497         -mno-reg-stack-fill-bug-workaround.
16498         * config/mmix/mmix.md ("call"): Set struct machine member
16499         has_call_without_parameters.
16500
16501 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
16502
16503         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
16504
16505 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
16506
16507         * cfgcleanup.c: Include tm_p.h
16508         (mark_effect): Fix handling of hard register; fix handling of SET
16509
16510 2002-01-04  Kazu Hirata  <kazu@hxi.com>
16511
16512         * config/h8300/h8300.md (anonymous patterns): Check that
16513         operands are registers before using REGNO on them.
16514
16515 2002-01-03  Roland McGrath  <roland@frob.com>
16516
16517         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
16518
16519 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
16520
16521         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
16522         * c-common.h (genrtl_expr_stmt_value): Likewise.
16523         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
16524         (expand_expr_stmt_value): Add maybe_last argument.
16525         Don't warn about statement with no effect if it is the last statement
16526         in expression statement.
16527         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
16528         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
16529         expand_expr_stmt_value.
16530         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
16531         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
16532         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
16533         as maybe_last to expand_expr_stmt_value.
16534
16535 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
16536
16537         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
16538         be passed in, do not build it.
16539         (c_begin_if_stmt): New function.
16540         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
16541         * c-common.h (c_expand_start_cond): Update prototype.
16542         (c_begin_if_stmt): Prototype new function.
16543         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
16544         * c-parse.in (if_prefix): Use c_begin_if_stmt,
16545         c_begin_while_stmt and c_finish_while_stmt_cond.
16546
16547 2002-01-04  William Cohen  <wcohen@redhat.com>
16548
16549         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
16550         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
16551         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
16552         * config/pa/som.h (ASM_FILE_START): Likewise.
16553
16554 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
16555
16556         * lcm.c: Include df.h.
16557         Add available_transfer_function prototype.
16558         (compute_available): Rework to use iterative dataflow framework.
16559         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
16560         with bb_info in df.h
16561         (available_transfer_function): New function.
16562
16563         * Makefile.in (lcm.o): add df.h to dependencies.
16564
16565 2002-01-04  Richard Henderson  <rth@redhat.com>
16566
16567         * config/alpha/alpha.c (some_operand): Accept HIGH.
16568         (input_operand): Likewise; accept simple references to globals.
16569         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
16570         (alpha_const_double_ok_for_letter_p): Likewise.
16571         (alpha_extra_constraint): Likewise.
16572         (alpha_preferred_reload_class): Likewise.  Do not force
16573         symbolic constants to memory.
16574         (alpha_legitimate_address_p): Accept simple references
16575         to small_symbolic_operand.
16576         (alpha_legitimize_address): New arg scratch.  Be prepared to be
16577         called when no_new_pseudos.  Emit simple symbolic references.
16578         Split integers into low, high, and rest.
16579         (alpha_expand_mov): Use alpha_legitimize_address.
16580         (some_small_symbolic_mem_operand): New.
16581         (split_small_symbolic_mem_operand): New.
16582         * config/alpha/alpha-protos.h: Update.
16583         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
16584         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
16585         (EXTRA_CONSTRAINT): Likewise.
16586         (PREFERRED_RELOAD_CLASS): Likewise.
16587         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
16588         (PREDICATE_CODES): Update.
16589         * config/alpha/alpha.md: New post-reload splitters to convert
16590         simplfied symbolic operands to the form that references $29.
16591         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
16592         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
16593
16594 2002-01-03  Richard Henderson  <rth@redhat.com>
16595
16596         * local-alloc.c (function_invariant_p): Update commentary.
16597
16598 2002-01-04  H.J. Lu <hjl@gnu.org>
16599
16600         * toplev.c (rest_of_compilation): Fix a typo when calling
16601         cleanup_cfg.
16602
16603 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16604
16605         * c-common.c: Fix formatting.
16606         * diagnostic.c: Likewise.
16607         * doloop.c: Likewise.
16608         * dwarf2out.c: Likewise.
16609
16610 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16611
16612         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
16613         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
16614
16615 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
16616
16617         * cpperror.c: Update comments and copyright.
16618         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
16619         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
16620
16621 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16622
16623         * collect2.c (main): Use strcmp when testing for "-shared".
16624
16625 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
16626
16627         * cppmacro.c: Don't include intl.h.  Update comments.
16628         (new_number_token): Allocate enough buffer for 64-bit unsigned
16629         integers; update prototype.
16630         * cppmain.c: Update comments.
16631
16632 2002-01-03  William Cohen  <wcohen@redhat.com>
16633
16634         * function.h (struct function): Add profile.
16635         (current_function_profile): New.
16636         doc/extend.texi: Update documentation.
16637         * final.c (final_start_function): Use current_function_profile
16638         instead of profile_flag.
16639         (profile_after_prologue): Likewise.
16640         * function.c (expand_function_start): Likewise.
16641         (expand_function_start): Likewise.
16642         * config/alpha/alpha.c (direct_call_operand):
16643         (alpha_does_function_need_gp): Likewise.
16644         (alpha_expand_prologue): Likewise.
16645         * config/arm/arm.c (arm_expand_prologue): Likewise.
16646         thumb_expand_prologue: Likewise.
16647         * config/d30v/d30v.c (d30v_stack_info): Likewise.
16648         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
16649         (fr30_expand_prologue): Likewise.
16650         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
16651         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
16652         * config/i386/i386.h (FINALIZE_PIC): Likewise.
16653         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
16654         * config/i960/i960.c (i960_output_function_prologue): Likewise.
16655         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
16656         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
16657         (m32r_expand_prologue): Likewise.
16658         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
16659         (m88k_expand_prologue): Likewise.
16660         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
16661         * config/mips/mips.c (compute_frame_size): Likewise.
16662         (mips_expand_prologue): Likewise.
16663         (mips_can_use_return_insn): Likewise.
16664         * config/pa/elf.h (ASM_FILE_START): Likewise.
16665         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
16666         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
16667         * config/pa/som.h (ASM_FILE_START): Likewise.
16668         * config/romp/romp.c (romp_using_r14): Likewise.
16669         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
16670         (rs6000_stack_info): Likewise.
16671         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16672         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
16673         * config/v850/v850.c (compute_register_save_size): Likewise.
16674
16675 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
16676
16677         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
16678         gen_lowpart_common fails, use gen_lowpart_SUBREG.
16679
16680 2002-01-03  Turly O'Connor  <turly@apple.com>
16681
16682         * darwin.c (machopic_output_possible_stub_label): Don't generate
16683         stub routines for pseudo-stubs which we've just defined.
16684
16685 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16686
16687         * builtins.c: Fix formatting.
16688         * c-typeck.c: Likewise.
16689         * combine.c: Likewise.
16690         * expr.c: Likewise.
16691         * loop.c: Likewise.
16692
16693 2002-01-03  Andreas Schwab  <schwab@suse.de>
16694
16695         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
16696         and return true if _cpp_push_next_buffer pushed a new include
16697         file.
16698         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
16699         _cpp_pop_file_buffer did not push a new file.
16700         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
16701
16702 2002-01-02  Eric Christopher  <echristo@redhat.com>
16703
16704         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
16705         FIND_REG_INC_NOTE call. Update copyright.
16706         * loop.c (canonicalize_condition): Ditto.
16707         * reorg.c (delete_scheduled_jump): Ditto.
16708
16709 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16710
16711         * gcse.c: Fix formatting.
16712
16713 2002-01-03  Graham Stott  <grahams@redhat.com>
16714
16715         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
16716         forward defs for struct tags rtx_def, union_tree, rtvec_def
16717         also output corresponding typedefs for rtx, tree, and rtvec.
16718
16719         * system.h: Move forward defs for struct tags rtx_def, union_tree,
16720         rtvec_def along with corresponding typedefs for rtx, tree, and
16721         rtvec to config.h, hconfig.h, tconfig.h.
16722
16723 2002-01-03  Graham Stott  <grahams@redhat.com>
16724
16725         * tree.h: Update copyright date.
16726         (IS_EXPR_CODE_CLASS): Add parenthesis.
16727         (TREE_SET_CODE): Add whitespace.
16728         (TREE_CHECK): Add parenthesis.
16729         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
16730         (CST_OR_CONSTRUCTOR_CHECK):
16731         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
16732         (TREE_SYMBOL_REFERENCED): Whitespace.
16733         (INT_CST_LT): Likewise.
16734         (INT_CST_LT_UNSIGNED): Likewise.
16735         (tree_real_cst): Unwrap comment.
16736         (tree_string): Likewise.
16737         (tree_complex): Likewise.
16738         (IDENTIFIER_POINTER): correct cast.
16739         (SAVE_EXPR_CONTEXT): Whitespace.
16740         (EXPR_WFL_FILENAME_NODE): Likewise.
16741         (EXPR_WFL_FILENAME): Remove parenthesis.
16742         (DECL_ORIGIN): Add parenthesis.
16743         (DECL_FROM_INLINE): Use NULL_TREE.
16744         (build_int_2): Whitespace.
16745         (build_type_variant): Add parenthesis.
16746
16747         * gcc/jcf-parse.c: Update copyright date.
16748         (yyparse): Constify resource_filename.
16749
16750 2002-01-03  Graham Stott  <grahams@redhat.com>
16751
16752         * rtl.h: Update copyright date.
16753         (RTL_CHECK1): Wrap long line.
16754         (RTL_CHECK2): Likewise.
16755         (RTL_CHECKC1): Wrap long line and whitespace.
16756         (RTL_CHECKC2): Likewise.
16757         (XWINT): Whitespace.
16758         (XINT): Likewise.
16759         (XSTR): Likewise.
16760         (XEXP): Likewise.
16761         (XVEC): Likewise.
16762         (XMODE): Likewise.
16763         (XBITMAP): Likewise.
16764         (XTREE): Likewise.
16765         (XBBDEF): Likewise.
16766         (XTMPL): Likewise.
16767         (X0WINT): Likewise.
16768         (X0INT):Likewise.
16769         (X0UINT): Likewise.
16770         (X0STR): Likewise.
16771         (X0EXP): Likewise.
16772         (X0VEC): Likewise.
16773         (X0MODE): Likewise.
16774         (X0BITMAP): Likewise.
16775         (X0TREE): Likewise.
16776         (X0BBDEF): Likewise.
16777         (X0ADVFLAGS): Likewise.
16778         (X0CSELIB): Likewise.
16779         (X0MEMATTR): Likewise.
16780         (XCWINT): Likewise.
16781         (XCINT): Likewise.
16782         (XCUINT): Likewise.
16783         (XCSTR): Likewise.
16784         (XCEXP): Likewise.
16785         (XCVEC): Likewise.
16786         (XCMODE): Likewise.
16787         (XCBITMAP): Likewise.
16788         (XCTREE): Likewise.
16789         (XCBBDEF): Likewise.
16790         (XCADVFLAGS): Likewise.
16791         (XCCSELIB): Likewise.
16792         (XC2EXP): Likewise.
16793         (INSN_UID): Likewise.
16794         (PREV_INSN): Likewise.
16795         (PATTERN): Likewise.
16796         (INSN_CODE): Likewise.
16797         (PUT_REG_NOTE_KIND): Likewise.
16798         (CODE_LABEL_NUMBER): Likewise.
16799         (NOTE_SOURCE_FILE): Likewise.
16800         (NOTE_BLOCK): Likewise.
16801         (NOTE_EH_HANDLER): Likewise.
16802         (NOTE_RANGE_INFO): Likewise.
16803         (NOTE_LIVE_INFO): Likewise.
16804         (NOTE_BASIC_BLOCK): Likewise.
16805         (NOTE_EXPECTED_VALUE): Likewise.
16806         (NOTE_LINE_NUMBER): Likewise.
16807         (LABEL_NAME): Likewise.
16808         (LABEL_NUSES): Likewise.
16809         (LABEL_ALTERNATE_NAME): Likewise.
16810         (ADDRESSOF_DECL): Likewise.
16811         (JUMP_LABEL): Likewise.
16812         (LABEL_NEXTREF): Likewise.
16813         (REGNO): Likewise.
16814         (ORIGINAL_REGNO: Likewise.
16815         (HARD_REGISTER_NUM_P): Add parenthesis.
16816         (SUBREG_REG): Whitespace.
16817         (SUBREG_BYTE): Likewise.
16818         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
16819         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
16820         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
16821         (ASM_OPERANDS_INPUT_VEC): Likewise.
16822         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
16823         (ASM_OPERANDS_INPUT): Likewise.
16824         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
16825         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
16826         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
16827         (ASM_OPERANDS_INPUT_MODE): Likewise.
16828         (ASM_OPERANDS_SOURCE_FILE): Likewise.
16829         (ASM_OPERANDS_SOURCE_LINE): Likewise.
16830         (MEM_SET_IN_STRUCT_P): Minor reformat.
16831         (TRAP_CONDITION): Whitespace.
16832         (TRAP_CODE): Likewise.
16833         (COND_EXEC_TEST): Likewise.
16834         (COND_EXEC_CODE): Likewise.
16835         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
16836         (PHI_NODE_P): Add parenthesis.
16837         (plus_constant): Whitespace and add parenthesis.
16838
16839 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16840
16841         * config/avr/avr.c: Fix comment typos.
16842         * config/c4x/c4x.md: Likewise.
16843         * config/dsp16xx/dsp16xx.h: Likewise.
16844         * config/dsp16xx/dsp16xx.md: Likewise.
16845         * config/i386/i386.md: Likewise.
16846         * config/ia64/ia64.c: Likewise.
16847         * config/m32r/m32r.h: Likewise.
16848         * config/m68hc11/m68hc11.md: Likewise.
16849         * config/mmix/mmix.c: Likewise.
16850         * config/mn10200/mn10200.c: Likewise.
16851         * config/romp/romp.c: Likewise.
16852         * config/sh/sh.c: Likewise.
16853         * config/stormy16/stormy16.c: Likewise.
16854         * config/stormy16/stormy16.h: Likewise.
16855         * config/stormy16/stormy16.md: Likewise.
16856
16857 2002-01-03  Graham Stott  <grahams@redhat.com>
16858
16859         * loop.h: Update copyright date.
16860         (LOOP_MOVABLES): Fix typo.
16861         (LOOP_REGS): Likewise.
16862         (LOOP_IVS): Likewise.
16863
16864 2002-01-03  Graham Stott  <grahams@redhat.com>
16865
16866         * cppinit.c: Update copyright date.
16867         Don't include output.h
16868         * Makefile.in: Update copyright date.
16869         Update dependency.
16870
16871 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16872
16873         PR c/5226
16874         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
16875         (-pthread) Add to RS/6000 options.
16876
16877 2002-01-02  Kazu Hirata  <kazu@hxi.com>
16878
16879         * except.c: Fix comment typos.
16880         * loop.c: Likewise.
16881         * varasm.c: Likewise.
16882         * doc/tm.texi: Fix a typo.
16883
16884 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
16885
16886         * c-typeck.c (output_init_element): Allow initializing static storage
16887         duration objects with compound literals.
16888
16889 2002-01-02  Richard Henderson  <rth@redhat.com>
16890
16891         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
16892         after abusing it.
16893
16894 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16895
16896         * gcc.c (default_compilers): Const-ify.
16897         * mips-tdump.c (stab_names): Likewise.
16898         * mips-tfile.c (map_coff_types, map_coff_storage,
16899         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
16900         pseudo_ops_t, pseudo_ops): Likewise.
16901         * protoize.c (default_include): Likewise
16902
16903         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
16904         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
16905         Add array size in declaration.
16906         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
16907         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
16908         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
16909         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
16910         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
16911         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
16912         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
16913         emtens, make_nan): Const-ify.
16914         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
16915         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
16916
16917 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
16918
16919         * config.gcc (ia64-*-*): Set extra_headers.
16920         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
16921         * config/alpha/t-osf: Remove.
16922         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
16923
16924 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
16925
16926         * config/rs6000/t-aix43: Revert previous change.
16927
16928 2002-01-02  Jason Merrill  <jason@redhat.com>
16929
16930         * c-decl.c (c_expand_body): Call outlining_inline_function when
16931         emitting an inline function out of line.
16932
16933 2002-01-02  Richard Henderson  <rth@redhat.com>
16934
16935         * dwarf2out.c (limbo_die_node): Add created_for member.
16936         (new_die): New argument created_for.  Update all callers.
16937         (mark_limbo_die_list): New.
16938         (dwarf2out_init): Register limbo_die_list as a root.
16939         (dwarf2out_finish): Force insert limbo dies into their function
16940         context.
16941
16942 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
16943
16944         PR c++/5089
16945         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
16946
16947 2002-01-02  Kazu Hirata  <kazu@hxi.com>
16948
16949         * config/h8300/fixunssfsi.c: Update copyright.
16950         Fix comment typos.
16951         Fix formatting.
16952         * config/h8300/h8300.c: Update copyright.
16953         Eliminate warnings.
16954
16955 2002-01-02  Kazu Hirata  <kazu@hxi.com>
16956
16957         * config/romp/romp.c: Fix comment formatting.
16958         * config/romp/romp.h: Likewise.
16959         * config/romp/romp.md: Likewise.
16960         * config/s390/s390.c: Likewise.
16961         * config/stormy16/stormy16.c: Likewise.
16962         * config/stormy16/stormy16.h: Likewise.
16963
16964 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
16965
16966         * c-common.h (genrtl_expr_stmt_value): Declare.
16967         * c-semantics.c (genrtl_goto_stmt): Redirect to...
16968         (genrtl_goto_stmt_value): ... this new function.  Pass new
16969         argument down to expand_expr_stmt_value, taking
16970         TREE_ADDRESSABLE into account.
16971         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
16972         STMT_EXPR as addressable, i.e., one whose result we want.
16973         * expr.c (expand_expr): Don't save expression statement value
16974         of labeled_blocks or loop_exprs.
16975         * stmt.c (expand_expr_stmt): Redirect to...
16976         (expand_expr_stmt_value): ... this new function.  Use new
16977         argument to tell whether to save expression value.
16978         (expand_end_stmt_expr): Reset last_expr_type and
16979         last_expr_value if we don't have either.
16980         * tree-inline.c (declare_return_variable): Mark its use
16981         statement as addressable.
16982         * tree.h: Document new use of TREE_ADDRESSABLE.
16983         (expand_expr_stmt_value): Declare.
16984
16985 2002-01-01  Tom Rix  <trix@redhat.com>
16986
16987         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
16988         rs6000_emit_allocate_stack.
16989
16990 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
16991
16992         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
16993         ${srcdir}/ginclude/ to every entry in extra_headers.
16994         * configure: Regenerate.
16995         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
16996         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
16997         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
16998         * ginclude/proto.h: Rename to config/convex/proto.h.
16999
17000 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17001
17002         * attribs.c (handle_vector_size_attribute): Use host_integerp
17003         and tree_int_cst; remove warnings.
17004         * caller-save.c (insert_restore): Add cast to get rid of warning.
17005         (insert_save): Likewise.
17006         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
17007         * regmove.c (find_matches): Add temporary var to kill a warning.
17008
17009 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
17010
17011         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
17012         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
17013         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
17014         (vms-dwarf2eh.o): Add Makefile rule.
17015         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
17016         * config/alpha/vms-dwarf2eh.asm: New file.
17017
17018         * gcc.c (delete_if_ordinary): Delete all versions.
17019
17020 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
17021
17022         * config/mmix/mmix.md: Update FIXME to not mention
17023         define_constants.
17024         (MMIX_rJ_REGNUM): New define_constants constant.
17025         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
17026         "*movdicc_real"): Adjust contraints formatting.
17027         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
17028         for branch prediction.
17029         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
17030         output template.
17031         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
17032         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
17033         number.  Delete related FIXMEs.
17034         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
17035         from number to MMIX_rJ_REGNUM.
17036         (TARGET_MASK_BRANCH_PREDICT): New.
17037         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
17038         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
17039         value.  Add -mbranch-predict and -mno-branch-predict.
17040         (TARGET_VERSION): Drop date.
17041         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
17042         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
17043         for finding out global symbols.
17044         (mmix_asm_output_labelref): Revert condition for global symbol.
17045         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
17046         (mmix_print_operand_punct_valid_p): A '+' is valid.
17047
17048 See ChangeLog.6 for earlier changes.