OSDN Git Service

* pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2
3         * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
4         (output_call): Likewise.
5
6 2002-05-31  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7
8         * pa.c: Move output.h include after tree.h include.
9         (pa_asm_output_mi_thunk): Constify identifier lab.
10
11 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
12
13         * config/ns32k/ns32k.h: Define named constants for the
14         bits in target_flags and use them.
15         * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
16
17 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
18
19         * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
20         architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
21         * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
22         default scheduling model.
23         * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
24         * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
25         * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
26         * doc/install.texi (hppa*-*-*): Document default scheduling.
27
28 2002-05-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
29
30         * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
31
32 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
33
34         * config.gcc (ns32k-*-netbsd*): Set tm_file to
35         "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
36         * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
37         netbsd.h, or netbsd-aout.h.
38
39 2002-05-31  Jason Thorpe  <thorpej@wasabisystems.com>
40
41         * longlong.h (count_trailing_zeros): Add missing \, and clean up
42         whitespace in __ns32000__ case.
43
44 2002-05-31  Aldy Hernandez  <aldyh@redhat.com>
45
46         * expr.c (expand_expr): Output partially zeroed out vectors with
47         output_constant_def.
48
49 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
50
51         * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
52         (sh-*-netbsdelf*)
53         (shl*-*-netbsdelf*): New targets.
54         * config/sh/netbsd-elf.h: New file.
55
56 2002-05-30  Richard Henderson  <rth@redhat.com>
57             Eric Botcazou  <ebotcazou@multimania.com>
58
59         PR optimization/6822
60         * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
61         to unsigned int for op1 comparisons.  Use gen_int_mode.
62
63 2002-05-30  Eric Botcazou  <ebotcazou@multimania.com>
64
65         * expmed.c (const_mult_add_overflow_p): New.
66         * expr.h: Declare it.
67         * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
68         Don't eliminate the biv if the giv has a constant multiplier and
69         the rhs argument of the comparison does satisfy the predicate.
70         Use expand_mult_add to compute the replacement constant.
71
72 2002-05-30  Osku Salerma  <osku@iki.fi>
73
74         * c-common.c (c_common_attribute_table): Add "may_alias" entry.
75         (c_common_get_alias_set): Handle it.
76         * doc/extend.texi: Document it.
77
78 2002-05-30  Richard Henderson  <rth@redhat.com>
79
80         * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
81         * toplev.c (process_options): Don't check it.
82         * doc/tm.texi: Don't document it.
83         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
84         (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
85         * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
86         frame pointer optimization if current_function_profile.
87
88 2002-05-30  Kazu Hirata  <kazu@cs.umass.edu>
89
90         * langhooks.c: Fix formatting.
91         * langhooks.h: Likewise.
92         * lcm.c: Likewise.
93         * libgcc2.c: Likewise.
94         * lists.c: Likewise.
95         * local-alloc.c: Likewise.
96         * loop.c: Likewise.
97         * loop.h: Likewise.
98
99 2002-05-30  Marc Espie <espie@openbsd.org>
100
101         * config.gcc (sparc64-*-openbsd*): New.
102         * config/sparc/openbsd1-64.h: New.
103         * config/sparc/openbsd64.h: New.
104
105 2002-05-30  Jeff Law <law@redhat.com>
106
107         * flow.c (propagate_one_insn): Revise yesterday's patch.  Delete
108         a dead insn with a REG_RETVAL note when the entire libcall is not
109         dead and remove the associated REG_LIBCALL note at the same time.
110
111 Thu May 30 19:54:30 2002  J"orn Rennecke <joern.rennecke@superh.com>
112
113         * lcm.c (output.h): #include.
114         (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
115         as an ordinary block.
116         (optimize_mode_switching): Don't pretend that the exit block is
117         an ordinary block, or handle sucessors of entry block specially.
118         Instead, split edges from entry block and to exit block, and
119         put a computing definition on the thus gained post-entry-block,
120         and a need on the pre-exit-block.
121
122 Thu May 30 20:28:01 CEST 2002  Jan Hubicka  <jh@suse.cz>
123
124         * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
125         * rtl.texi: Document 'B'
126
127 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
128
129         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
130         at run-time.
131         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
132
133 2002-05-30  Aldy Hernandez  <aldyh@redhat.com>
134
135         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
136         const0_rtx instead of NULL_RTX when in error.
137         (altivec_expand_abs_builtin): Same.
138         (rs6000_expand_binop_builtin): Same.
139         (altivec_expand_predicate_builtin): Same.
140         (altivec_expand_stv_builtin): Same.
141         (rs6000_expand_ternop_builtin): Same.
142         (altivec_expand_builtin): Same.
143
144 2002-05-29  David S. Miller  <davem@redhat.com>
145
146         * rtl.h (clear_emit_caches): Delete.
147         * integrate.c (output_inline_function): Don't call it.
148         * emit-rtl.c (restore_emit_status, init_emit): Likewise.
149         (clear_emit_caches): Delete definition.
150         (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
151
152 2002-05-30  Hans-Peter Nilsson  <hp@bitrange.com>
153
154         * config/mmix/mmix.c: Include real.h.
155         (mmix_constant_address_p): Remove redundant test before switch.
156
157 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
158
159         * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
160         only if not already defined.
161
162 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
163
164         * config/h8300/h8300-protos.h: Remove prototypes for
165         ok_for_bclr and small_power_of_two.
166         * config/h8300/h8300.c (small_power_of_two): Remove.
167         (ok_for_blcr): Likewise.
168         (fix_bit_operand): Make WHAT deal with an integer instead of a
169         constraint character.
170         * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
171         (CONST_OK_FOR_P): Likewise.
172         (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
173         CONST_OK_FOR_P any more.
174         * config/h8300/h8300.md (andqi3): Adjust to the new prototype
175         of fix_bit_operand.
176         (iorqi3): Likewise.
177         (xorqi3): Likewise.
178
179 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
180
181         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
182         (CPP_PREDEFINES): Make sure this is undefined.
183         (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
184         since it is no longer in CPP_PREDEFINES.  Don't -U__MIPSEL__
185         or -U__MIPSEB__ before defining one or the other.  Instead,
186         use %(subtarget_endian_default) if neither -EB nor -EL are
187         specified.
188         (SUBTARGET_EXTRA_SPECS): Define.
189         (SUBTARGET_CPP_SPEC): Remove __LONG64 handling.  Use
190         %(netbsd_cpp_spec).
191
192 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
193
194         * doc/md.texi (Patterns): Note pattern condition pitfall
195         for unnamed insn.
196
197 2002-05-29  Aldy Hernandez  <aldyh@redhat.com>
198
199         * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
200         when TARGET_ALTIVEC.  Move handling of generic unary, binary, and
201         ternary operations from here...
202         (rs6000_expand_builtin): ...to here.
203         New argument expandedp.
204         Change all instances of altivec_expand_binop_builtin to
205         rs6000_expand_binop_builtin.
206         (altivec_expand_unop_builtin): Rename to
207         rs6000_expand_unop_builtin.
208         (altivec_expand_binop_builtin): Rename to
209         rs6000_expand_binop_builtin.
210         (altivec_expand_ternop_builtin): Rename to
211         rs6000_expand_ternop_builtin.
212
213 2002-05-29  Richard Henderson  <rth@redhat.com>
214
215         * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
216         (TARGET_BI_ARCH): Likewise.
217         * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
218         (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
219         (TARGET_64BIT_DEFAULT): Default to 0.
220         (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
221
222 2002-05-29  Richard Henderson  <rth@redhat.com>
223
224         * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
225         (get_pc_thunk_name): New.
226         (output_set_got): Use it.
227         (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
228         into linkonce sections.
229
230 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
231
232         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
233         (CPP_PREDEFINES): Make sure this is undefined.
234         (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
235         (CPP_SUBTARGET_SPEC): Don't provide different versions for
236         default-32 and default-64.  Just always use %(netbsd_cpp_spec).
237         (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
238         cpp_subtarget_spec64.  Add netbsd_cpp_spec.
239         * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
240         (CPP_PREDEFINES): Make sure this is undefined.
241         (SUBTARGET_EXTRA_SPECS): Define.
242         (CPP_SPEC): Use %(netbsd_cpp_spec).
243
244 2002-05-29  Jeff Law <law@redhat.com>
245
246         * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
247
248         * flow.c (propagate_one_insn): Do not remove a dead insn if it
249         contains a REG_RETVAL note.
250
251         * haifa-sched (sched_analyze): Remove another useless clearing
252         of SCHED_GROUP_P I missed yesterday.
253
254         * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
255         * pa.c (pa_asm_output_mi_thunk): New function.
256         * pa-protos.h (pa_asm_output_mi_thunk): Declare.
257
258 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
259             Marek Michalkiewicz  <marekm@amelek.gda.pl>
260
261         * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
262         (avr_asm_only_p): Make non-static.
263         (enum avr_arch): Remove.
264         (avr_arch_types): New.
265         (avr_mcu_types): Update.
266         (avr_override_options): Use avr_arch_types table instead of switch.
267         * avr.h (CPP_PREDEFINES): Die.
268         (avr_base_arch_macro, avr_extra_arch_macro): New.
269         (TARGET_CPU_CPP_BUILTINS): New.
270         (CPP_SPEC, EXTRA_SPECS): Simplify.
271         (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
272         CPP_AVR5_SPEC): Die.
273
274 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
275
276         * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
277         NETBSD_OS_CPP_BUILTINS_AOUT.
278         (SUBTARGET_EXTRA_SPECS): Define.
279         (CPP_SPEC): Use %(netbsd_cpp_spec).
280
281 2002-05-29  Richard Henderson  <rth@redhat.com>
282
283         * config/i386/i386.c (ix86_output_function_epilogue): New.
284         (TARGET_ASM_FUNCTION_EPILOGUE): New.
285         (pic_label_name): Remove.
286         (pic_labels_used): New.
287         (ix86_asm_file_end): Emit one pc load stub for each register used.
288         (output_set_got): Generate deep pc load to any register.
289         (ix86_select_alt_pic_regnum): New.
290         (ix86_save_reg): Don't save pic register if we can find a valid
291         call-clobbered replacement.
292         (ix86_expand_prologue): If we found a valid replacement, renumber
293         pic_offset_table_rtx.
294         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
295         pic_offset_table_rtx after reload.
296         (REAL_PIC_OFFSET_TABLE_REGNUM): New.
297         * config/i386/i386.md (set_got): Make insn, not expander.
298         (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
299
300 2002-05-29  Richard Henderson  <rth@redhat.com>
301
302         * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
303         alignment for alloca.
304
305 2002-05-29  Richard Henderson  <rth@redhat.com>
306
307         * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
308         (print_operand_address): Only add rip for symbolic addresses
309         for which we do not have another relocation type.
310
311 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
312
313         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
314         (EXTRA_SPECS): Add netbsd_cpp_spec.
315         (CPP_SPEC): Use %(netbsd_cpp_spec).
316         (CPP_PREDEFINES): Remove.
317         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
318         (EXTRA_SPECS): Define.
319         (CPP_SPEC): Use %(netbsd_cpp_spec).
320         (CPP_PREDEFINES): Remove.
321
322 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
323
324         PR preprocessor/6844
325         * cppmacro.c (cpp_macro_definition): Reserve space for terminating
326         NUL.
327
328 2002-05-29  Eric Christopher  <echristo@redhat.com>
329
330         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
331         mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
332
333 2002-05-29  Nick Clifton  <nickc@cambridge.redhat.com>
334
335         * config/fr30/fr30.md: Remove previous restriction on splits.
336         Enforce conformance through gen_lowpart and cont_int_operand.
337         * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
338         as the assembler does not support ".bss".
339
340 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
341
342         * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
343         (CPP_PREDEFINES): Remove.
344         (SUBTARGET_EXTRA_SPECS): Define.
345         (CPP_SPEC): Use %(netbsd_cpp_spec).
346         * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
347         (CPP_PREDEFINES): Remove.
348         (SUBTARGET_EXTRA_SPECS): Define.
349         (CPP_SPEC): Use %(netbsd_cpp_spec).
350         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
351         (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
352         (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
353         Add netbsd_cpp_spec.
354         (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
355
356 2002-05-29  Neil Booth  <neil@daikokuya.demon.co.uk>
357             Zack Weinberg <zack@codesourcery.com>
358
359         * cppexp.c (cpp_num): Move to cpplib.h.
360         (CPP_ERROR): Remove.
361         (interpret_float_suffix, interpret_int_suffix): New.
362         (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
363         (cpp_classify_number, cpp_interpret_integer): New.
364         (interpret_number): Remove.
365         (eval_token): Update to use new routines.
366         * cpphash.h (cpp_num_part): Move to cpplib.h.
367         * cppinit.c (cpp_post_options): Set warn_long_long.
368         * cpplib.h (struct cpp_options): Add warn_long_long.
369         (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
370         CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
371         CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
372         CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
373         cpp_interpret_integer): New.
374
375 2002-05-29  Joel Sherrill <joel@OARcorp.com>
376
377         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
378
379 2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
380
381         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
382         NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
383         (CPP_SUBTARGET_SPEC): Define.
384         (SUBTARGET_EXTRA_SPECS): Define.
385         (CPP_SPEC): Remove.
386
387 2002-05-29  Chris Lattner  <sabre@nondot.org>
388
389         * ssa.c (rename_insn_1): Rename uses of undefined registers to
390         prevent confusion if/when the register is defined.
391
392 2002-05-29  Hans-Peter Nilsson  <hp@axis.com>
393
394         PR target/6838
395         * config/cris/cris.md: Fix typos and thinkos in comments.
396         ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
397         second alternative.
398         ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
399         ("*mov_sideqi_mem"): Similar, but for operand 3.
400         ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
401         (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
402         Remove spurious mode specifier on operand 2.
403
404 2002-05-29  Kazu Hirata  <kazu@cs.umass.edu>
405
406         * config/h8300/h8300-protos.h: Remove the prototype for
407         o_operand.
408         Add prototypes for single_one_operand and single_zero_operand.
409         * config/h8300/h8300.c (o_operand): Remove.
410         (single_one_operand): New.
411         (single_zero_operand): Likewise.
412         (print_operand): For 'V' operand, and the operand with 0xff.
413         For 'V' and 'W' operands, do not and the bit position with 7.
414         * config/h8300/h8300.md (various anonymous patterns): Replace
415         use of exact_log2 with single_one_operand/single_zero_operand.
416
417 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
418
419         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
420
421 2002-05-29  Ulrich Weigand  <uweigand@de.ibm.com>
422
423         * config/s390/s390.c (legitimate_pic_operand_p): Do not
424         accept symbolic LARL operands.
425         (s390_emit_epilogue): Do not set FRAME_RELATED_P on
426         epilogue insns.
427
428 2002-05-29  Hartmut Penner  <hpenner@de.ibm.com>
429
430         * config/s390/s390.md (cmpstr_64/31): Mark whole
431         input registers as used.
432
433 2002-05-28  Richard Henderson  <rth@redhat.com>
434
435         * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
436         not current_function_uses_pic_offset_table and
437         current_function_uses_const_pool; examine current_function_profile.
438         (ix86_expand_prologue): Likewise.  Add pic_offset_table_rtx as
439         input to blockage if needed.
440         (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
441         (legitimize_pic_address): Likewise.  Set regs_ever_live for
442         pic_offset_table_rtx when invoked during reload.
443         * config/i386/i386.h (FINALIZE_PIC): Remove.
444         * config/i386/i386.md (tablejump): Reformat.  Do not set
445         current_function_uses_pic_offset_table.
446         (tls_global_dynamic, tls_local_dynamic_base): Likewise.
447         (blockage): Accept anything as operand 0.
448
449 2002-05-28  Jason Thorpe  <thorpej@wasabisystems.com>
450
451         * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
452         common CPP built-ins for all NetBSD a.out targets.
453         * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
454         common CPP built-ins for all NetBSD ELF targets.
455         * config/netbsd.h: Add missing notice.
456         (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
457         for all NetBSD targets.
458         (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
459         for all NetBSD targets using an LP64 code model.
460         (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
461         NetBSD targets.
462
463 2002-05-28  Richard Henderson  <rth@redhat.com>
464
465         * flow.c (update_life_info_in_dirty_blocks): Only do a partial
466         update if UPDATE_LIFE_LOCAL.
467
468 2002-05-28  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
469
470         * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
471
472 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
473                           Jason R. Thorpe <thorpej@wasabisystems.com>
474
475         config/sh reorganization to factor out endianness and coff:
476
477         * config/sh/little.h: New file.
478         * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
479         defined, define to 0 to select big-endian.
480         (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
481         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
482         * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
483         * config/sh/t-be: New file.
484         * config/sh/t-le: New file.
485
486         * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
487         (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
488         (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
489         (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
490         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
491         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
492         (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
493         (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
494         (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
495         (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
496         CPP_DEFAULT_CPU_SPEC.  Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
497         SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
498         (LINK_SPEC): Define to SH_LINK_SPEC.
499         (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
500         (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
501         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
502         (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
503         (TARGET_ENDIAN_DEFAULT): Define if not already defined.
504         * config/sh/coff.h: New file.
505         (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
506         (TARGET_OBJFMT_CPP_BUILTINS): Define.
507         * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
508         (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
509         (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
510         (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
511         (PTRDIFF_TYPE): Likewise.
512         ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
513         (CPP_PREDEFINES): Don't define.
514         (TARGET_OBJFMT_CPP_BUILTINS): Define.
515         (LINK_SPEC): Define to SH_LINK_SPEC.
516         (LINK_EMUL_PREFIX): Redefine.
517         * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
518         (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
519         (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
520         (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
521         (TARGET_OS_CPP_BUILTINS): Define.
522         (TARGET_DEFAULT): Redefine.
523         (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
524         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
525         (LINK_SPEC): Don't redefine.
526         (LINK_DEFAULT_CPU_EMUL): Redefine.
527         (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
528         * sh.c (sh_asm_named_section): Don't declare / define.
529         * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
530         * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
531         (sh64-*-elf* tm_file): Likewise.
532         (sh-*-rtemself* tm_file): Likewise.
533         (sh-*-linux* tm_file): Likewise.  Add sh/little.h.
534         (sh-*-linux* tmake_file): Add sh/t-le.
535         (sh-*-rtems* tm_file): Add sh/coff.h
536         (sh-*-* tm_file): Likewise.
537
538 Tue May 28 21:16:18 2002  J"orn Rennecke <joern.rennecke@superh.com>
539
540         * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
541         CONSTANT_POOL_ADDRESS_P.
542
543         * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
544
545 2002-05-28  David Edelsohn  <edelsohn@gnu.org>
546             Jeff Law <law@redhat.com>
547
548         * optabs.c (expand_binop): Fix nwords sign warnings.
549         generate pseudo for add_optab.
550
551         * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
552         * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
553
554 2002-05-28      Marc Espie <espie@openbsd.org>
555
556         * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN):  Remove,
557         inherited from gas.h.
558         (ASM_QUAD):  Undef.  OpenBSD does not support it.
559
560 2002-05-28  Danny Smith  <dannysmith@users.sourceforge.net>
561
562         * doc/install.texi (binaries): Change mingw binaries
563         link to www.mingw.org.
564
565 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
566
567         * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
568
569 2002-05-28  Richard Henderson  <rth@redhat.com>
570
571         * config/i386/i386.c (ix86_compute_frame_layout): Do not add
572         bottom alignment for leaf functions.
573
574 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
575
576         * config/pa/milli32.S, config/pa/lib1funcs.asm,
577         config/sparc/sol2-g1.asm: Delete unused files.
578
579 2002-05-28  Richard Henderson  <rth@redhat.com>
580
581         * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
582
583         * flow.c (calculate_global_regs_live): Rename call_used to
584         invalidated_by_call.  Initialize from regs_invalidated_by_call
585         instead of call_used_regs.
586
587         * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
588         DECL_EXTERNAL.
589
590 2002-05-28  Zack Weinberg  <zack@codesourcery.com>
591
592         * tree.h: Don't include real.h.
593         Forward-declare struct realvaluetype.
594         (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
595         contain it.
596         (TREE_REAL_CST_PTR): New accessor.
597         (TREE_REAL_CST): Update.
598         * real.h: Include machmode.h.
599         (realvaluetype): Make it struct realvaluetype, not a typedef.
600         (build_real): Prototype here.
601
602         * tree.c: Include real.h.
603         (build_real): Allocate the REAL_VALUE_TYPE as a separate
604         object in GC memory, set TREE_REAL_CST_PTR to point to it.
605         (build_real_from_int_cst): Use build_real.
606         * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
607         REAL_CST.
608
609         * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
610         fold-const.c, print-tree.c, real.c: Include real.h.
611         * Makefile.in: Update dependency lists.
612
613 2002-05-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
614
615         * basic-block.h (last_basic_block): Declare.
616         (expunge_block_nocompact): Declaration removed.
617         (compact_blocks): Declare.
618         * cfg.c (last_basic_block): New variable.
619         (expunge_block_nocompact): Removed.
620         (expunge_block): Do not compact basic blocks.
621         (compact_blocks): New.
622         * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
623         longer change.
624         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
625         last_basic_block.
626         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
627         real positions of blocks.
628         (delete_unreachable_blocks): Simplified -- quadratic behavior now
629         cannot occur.
630         (cleanup_cfg): Compact blocks.
631         * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
632         basic_block_info varray.
633         (flow_delete_block): Comment update.
634         (back_edge_of_syntactic_loop_p): Modify position check code.
635         (verify_flow_info): Update checking.
636         * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
637         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
638         (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
639         indices no longer change.
640         * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
641         last_basic_block.
642         * predict.c (estimate_bb_frequencies): Remove unneccessary code.
643         * profile.c (branch_prob): Compact blocks.
644         * sched-rgn.c (find_rgns): Replace n_basic_blocks with
645         last_basic_block.
646
647 2002-05-28  Kazu Hirata  <kazu@cs.umass.edu>
648
649         * config/h8300/h8300.md (two anonymous patterns): New.
650
651 2002-05-28  David S. Miller  <davem@redhat.com>
652
653         * config/sparc/sparc.md (cpu): Tidy.
654         (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
655         'trap'.
656         (in_call_delay): Delete reference to 'return' type.
657         (eligible_for_return_delay, in_return_delay, define_delay
658         referencing those): Delete.
659         (rest of file): Use new type attributes as appropriate.
660         * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
661         * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
662         * config/sparc/ultra1_2.md (us1_single): New reservation.
663         (us1_ialuX): Likewise.
664         * config/sparc/ultra3.md (us3_single): Likewise.
665         (us3_ialuX): Likewise.
666         (us3_imul, us3_idiv): Tweak.
667
668 2002-05-28  Richard Henderson  <rth@redhat.com>
669
670         * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
671         STRING_CST.
672
673 2002-05-28  Richard Henderson  <rth@redhat.com>
674
675         * config.gcc: Obsolete mn10200.
676
677 2002-05-28  Neil Booth  <neil@daikokuya.demon.co.uk>
678
679         * cppexp.c (interpret_number): Optimize for single-digit
680         and less-than-half-precision cases.
681         (num_trim, num_positive, num_div_op): Cast constants.
682
683 2002-05-27  Bo Thorsen  <bo@suse.de>
684
685         * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
686         3.1 branch. The file was made by Jakub Jelinek.
687         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
688         support so multilib doesn't break. And don't define this at all
689         when -Dinhibit_libc is used.
690         (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
691         * config/i386/t-linux64: Implement full multilib support. Patch
692         originally done by Andreas Jaeger and Jakub Jelinek.
693
694 2002-05-27  Roger Sayle  <roger@eyesopen.com>
695
696         * c-common.c: Add support for __attribute__((nothrow)) to specify
697         that a function cannot throw an exception (using TREE_NOTHROW).
698         (handle_nothrow_attribute): New function to process this attribute.
699
700         * doc/extend.texi: Document the new nothrow function attribute.
701
702 2002-05-27  H.J. Lu  (hjl@gnu.org)
703
704         * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
705         (num_positive): Likewise.
706         (num_div_op): Likewise.
707
708 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
709
710         * c-common.c (c_common_init): Always use intmax_t.
711
712 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
713
714         * c-common.c (c_common_init): Use intmax_t for now.
715
716 2002-05-24  Andrew Haley  <aph@redhat.com>
717
718         * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
719         if T is a boolean type.
720
721 2002-05-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
722
723         * basic-block.h (last_basic_block): Defined as synonym for
724         n_basic_blocks.
725         * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
726         flow_depth_first_order_compute, flow_preorder_transversal_compute,
727         flow_dfs_compute_reverse_init): Replaced relevant occurences of
728         n_basic_blocks with last_basic_block.
729         * cfgbuild.c (make_edges): Likewise.
730         * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
731         * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
732         * combine.c (combine_instructions): Likewise.
733         * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
734         iterative_dataflow_bitmap): Likewise.
735         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
736         calc_idoms, idoms_to_doms): Likewise.
737         * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
738         Likewise.
739         * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
740         compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
741         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
742         one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
743         delete_null_pointer_checks, compute_code_hoist_vbeinout,
744         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
745         compute_store_table, build_store_vectors): Likewise.
746         * haifa-sched.c (sched_init): Likewise.
747         * ifcvt.c (if_convert): Likewise.
748         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
749         pre_edge_lcm, compute_available, compute_nearerout,
750         compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
751         Likewise.
752         * predict.c (estimate_probability, process_note_prediction,
753         note_prediction_to_br_prob): Likewise.
754         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
755         * recog.c (split_all_insns, peephole2_optimize): Likewise.
756         * regrename.c (copyprop_hardreg_forward): Likewise.
757         * resource.c (init_resource_info): Likewise.
758         * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
759         init_regions, schedule_insns): Likewise.
760         * ssa-ccp.c (ssa_const_prop): Likewise.
761         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
762         * ssa.c (compute_dominance_frontiers,
763         compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
764
765         * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
766         * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
767         sizes consistently.
768
769 Mon May 27 14:28:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
770
771         * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
772         new.
773         * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
774         hoist_insn_after, hoist_insn_to_edge): New.
775
776 Mon May 27 12:14:02 CEST 2002  Jan Hubicka  <jh@suse.cz>
777
778         * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
779         (PROP_FINAL): Include.
780         * flow.c (life_analysis, update_life_info,
781         init_propagate_block_info, mark_set_1, mark_used_rgs):
782         Support SCAN_DEAD_STORE.
783
784 2002-05-27  Neil Booth  <neil@daikokuya.demon.co.uk>
785
786         * c-common.c (c_common_init): Set CPP arithmetic precision.
787         * cppexp.c (cpp_num_part): Move typedef ...
788         * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
789         * cppinit.c (cpp_create_reader): Default to host long arithmetic.
790         (sanity_checks): Update.
791
792 2002-05-26  Geoffrey Keating  <geoffk@redhat.com>
793
794         * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
795         (mkheaders): New rule.
796         (install-mkheaders): New rule.
797         * configure.in (all_outputs): Add mkheaders.
798         * configure: Regenerate.
799         * mkheaders.in: New file.
800
801 2002-05-26  Jakub Jelinek  <jakub@redhat.com>
802
803         * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
804
805 2002-05-26  Andreas Jaeger  <aj@suse.de>
806
807         * cfg.c (dump_flow_info): Remove extra argument to fprintf.
808
809 2002-05-26  Neil Booth  <neil@daikokuya.demon.co.uk>
810
811         * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
812         right_shift): Remove.
813         (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
814         HIGH_PART): New.
815         (struct op): Use cpp_num.
816         (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
817         num_part_mul, num_unary_op, num_binary_op, num_negate,
818         num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
819         num_div_op, num_lshift, num_rshift, append_digit): New.
820         (interpret_number, parse_defined, eval_token, reduce): Update
821         for two-integer arithmetic.
822         (binary_handler): New typedef.
823         (optab): Update.
824         (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
825         (_cpp_parse_expr, reduce): Update to handle two-integers.
826         * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
827
828 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
829
830         * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
831         * config/avr/avr.c (jump_over_one_insn_p): Take length of the
832         branch insn into account, do not assume 1.
833         (avr_out_sbxx_branch): New function.  Optimize cases of skipping
834         over single word insn.  Handle upper half of I/O space too.
835         * config/avr/avr.md (*sbrx_branch): Use it.
836         (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
837         (*sbix_branch, *sbix_branch_bit7): Likewise.
838         (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
839         Use RTL peepholes to optimize register operand sign tests.
840
841 2002-05-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
842
843         * config/avr/avr.c (avr_asm_only_p): New variable.
844         (avr_override_options): Set it here if AVR1.
845         (asm_file_start): Test it here, report an error if set.
846
847 2002-05-26  Kazu Hirata  <kazu@cs.umass.edu>
848
849         * alias.c: Fix formatting.
850         * attribs.c: Likewise.
851         * bb-reorder.c: Likewise.
852         * bitmap.c: Likewise.
853         * bitmap.h: Likewise.
854         * builtins.c: Likewise.
855
856 Sun May 26 14:00:44 CEST 2002  Jan Hubicka  <jh@suse.cz>
857
858         * reload.c (find_valid_class): Accept new argument DEST,
859         choose class accordingly.
860         (push_reload): Update callers.
861
862 2002-05-26  Andreas Jaeger  <aj@suse.de>
863
864         * combine.c (combine_instructions): Do not indent #if for
865         traditional C.
866
867 2002-05-25  Richard Henderson  <rth@redhat.com>
868
869         * c-pragma.c (apply_pragma_weak): Convert value identifier to
870         string for decl_attributes.
871         (handle_pragma_weak): Call assemble_alias if we're modifying
872         an existing decl.
873
874 2002-05-25  Richard Henderson  <rth@redhat.com>
875
876         PR target/6788
877         * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
878         using rtl instead of fprintf.
879         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
880         * config/sparc/sparc-protos.h: Update.
881
882 2002-05-25  Neil Booth  <neil@daikokuya.demon.co.uk>
883
884         * Makefile.in (C_COMMON_H): Fix.
885         Update other targets.
886         * c-common.c: Don't include c-lex.h.
887         (builtin_define_with_value): Make static and prototype.
888         (builtin_define_std): Move from c-lex.h.
889         * c-common.h (init_c_lex): Move from c-lex.h.
890         * c-decl.c: Don't include c-lex.h.
891         (make_pointer_declarator): Move from c-parse.in.
892         * c-lex.c: Don't include c-lex.h.
893         * c-lex.h: Remove.
894         * c-parse.in: Don't include c-lex.h; include c-pragma.h.
895         (make_pointer_declarator): Move to c-decl.c.
896         * c-pragma.c: Don't include c-lex.h.
897         * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
898         * c-tree.h (make_pointer_declarator): New.
899 doc:
900         * passes.texi, tm.texi: Update.
901 objc:
902         * Make-lang.in: Update and correct.
903         * objc-act.c: Don't include c-lex.h or cpplib.h.
904 treelang:
905         * treetree.c: Don't include c-lex.h.
906 config:
907         * darwin-c.c: Don't include c-lex.h.
908         * c4x/c4x-c.c: Don't include c-lex.h.
909         * c4x/t-c4x: Update.
910         * i370/i370-c.c: Don't include c-lex.h.
911         * i370/t-i370: Update.
912         * i960/i960-c.c: Don't include c-lex.h.
913         * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
914         * i960/t-960bare: Update.
915         * i960/t-vxworks: Update.
916         * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
917         * rs6000/t-darwin: Update.
918         * rs6000/t-rs6000-c-rule: Update.
919         * v850/v850-c.c: Don't include c-lex.h.
920         * v850/v850.c: Don't include c-lex.h or cpplib.h.
921
922
923 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
924
925         * tree.def: Fix typos.
926         * doc/install.texi: Likewise.
927
928 2002-05-25  Richard Henderson  <rth@redhat.com>
929
930         * configure.in (HAVE_AS_TLS): Add ia64 test.
931         * configure: Rebuild.
932         * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
933         (override_options): Set it.
934         (TARGET_HAVE_TLS): New.
935         (sdata_symbolic_operand): Look for 's'.
936         (tls_symbolic_operand): New.
937         (ia64_expand_load_address): Abort for tls symbols.
938         (gen_tls_get_addr): New.
939         (gen_thread_pointer): New.
940         (ia64_expand_move): Split out from movdi.  Handle tls symbols.
941         (rtx_needs_barrier): Add new unspecs.
942         (ia64_encode_section_info): Handle tls symbols.
943         (ia64_strip_name_encoding): Strip two encoding chars.
944         * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
945         (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
946         (TARGET_OPTIONS): Add tls-size.
947         (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
948         * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
949         UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
950         (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
951         (movsf, movdf): Likewise.
952         (movdi_symbolic): Use match_scratch.  Don't split if we won't
953         have a scratch availiable.
954         (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
955         add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
956         load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
957         * config/ia64/ia64-protos.h: Update.
958         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
959         sdata_symbolic_operand.
960         (ASM_OUTPUT_LABELREF): Strip two characters.
961
962 2002-05-25  Kazu Hirata  <kazu@cs.umass.edu>
963
964         * combine.c (simplify_set): Remove an unnecessary subreg.
965
966 2002-05-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
967
968         * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
969
970         * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
971
972 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
973
974         * toplev.c (output_clean_symbol_name): Fix another thinko.  Gosh.
975
976 2002-05-25  Roger Sayle  <roger@eyesopen.com>
977
978         * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
979         (cond (compare x y) 0) into the equivalent (cond x y).
980
981 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
982
983         * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
984
985 2002-05-24  Zack Weinberg  <zack@codesourcery.com>
986
987         * config.gcc: Remove all stanzas for previously obsoleted
988         systems.  Where necessary, add explicit error stanzas to
989         prevent removed systems from being misidentified as something
990         else.  Begin a fresh obsoletions list, with the systems that
991         were reprieved last round.
992         * doc/install.texi: Remove all mention of dead targets.
993         * fixinc/mkfixinc.sh: Likewise.
994
995         * config/arm/arm.h: Bit 31 of target_flags is no longer
996         reserved.
997
998         * config/1750a/1750a-protos.h, config/1750a/1750a.c,
999         config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
1000         config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
1001         config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
1002         config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
1003         config/alpha/osf12.h, config/alpha/osf2or3.h,
1004         config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
1005         config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
1006         config/clipper/clipper-protos.h, config/clipper/clipper.c,
1007         config/clipper/clipper.h, config/clipper/clipper.md,
1008         config/clipper/clix.h, config/convex/convex-protos.h,
1009         config/convex/convex.c, config/convex/convex.h,
1010         config/convex/convex.md, config/convex/fixinc.convex,
1011         config/convex/proto.h, config/elxsi/elxsi-protos.h,
1012         config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
1013         config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
1014         config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
1015         config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
1016         config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
1017         config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
1018         config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
1019         config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
1020         config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
1021         config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
1022         config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
1023         config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
1024         config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
1025         config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
1026         config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
1027         config/m68k/altos3068.h, config/m68k/apollo68.h,
1028         config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
1029         config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
1030         config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
1031         config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
1032         config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
1033         config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
1034         config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
1035         config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
1036         config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
1037         config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
1038         config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
1039         config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
1040         config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
1041         config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
1042         config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
1043         config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
1044         config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
1045         config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
1046         config/mips/dec-osf1.h, config/mips/elflorion.h,
1047         config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
1048         config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
1049         config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
1050         config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
1051         config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
1052         config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
1053         config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
1054         config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
1055         config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
1056         config/ns32k/pc532-min.h, config/ns32k/pc532.h,
1057         config/ns32k/sequent.h, config/ns32k/tek6000.h,
1058         config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
1059         config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
1060         config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
1061         config/sparc/rtems.h, config/we32k/we32k-protos.h,
1062         config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
1063         Delete file.
1064
1065 2002-05-24  Richard Henderson  <rth@redhat.com>
1066
1067         * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
1068         * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
1069         * config/i386/i386.c (tls_model_chars): Add leading space.
1070         (tls_symbolic_operand): Don't bias by 1.
1071         (legitimize_address): Don't unbias by 1.
1072
1073 2002-05-24  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
1074
1075         * lcm.c (optimize_mode_switching): Change bb used as indices
1076         to bb->index.
1077
1078 2002-05-24  Richard Henderson  <rth@redhat.com>
1079
1080         * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
1081         of update_life_info_in_dirty_blocks.
1082
1083 2002-05-24  Jakub Jelinek  <jakub@redhat.com>
1084
1085         PR other/6782
1086         * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
1087
1088 2002-05-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1089
1090         PR preprocessor/6780
1091         * cppmacro.c (enter_macro_context): Clear state.angled_headers.
1092
1093 2002-05-24  Jim Blandy  <jimb@redhat.com>
1094
1095         * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
1096         entry with a type code of zero, marking the end of the compilation
1097         unit's macro info.
1098
1099 2002-05-24  Richard Henderson  <rth@redhat.com>
1100
1101         * varasm.c (asm_output_bss): Always output one byte.
1102         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
1103
1104 2002-05-24  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1105
1106         * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
1107         namespace.
1108
1109 2002-05-24  Andreas Jaeger  <aj@suse.de>
1110
1111         * ggc-page.c (alloc_page): Cast variables of type size_t to
1112         unsigned long, adjust printf format string.
1113         (ggc_alloc): Likewise.
1114         (ggc_print_statistics): Likewise.
1115         (ggc_print_statistics): Correct printf format string for SCALE to
1116         use unsigned long.
1117
1118 2002-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
1119
1120         * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
1121
1122 2002-05-23  Gabriel Dos Reis  <gdr@codesourcery.com>
1123             Zack Weinberg     <zack@codesourcery.com>
1124
1125         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
1126         quoted strings.
1127         * dwarf2out.c (lookup_filename): Properly quote filename in .file
1128         directive in assembly file.
1129         * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
1130         * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
1131         * config/pj/pj.h (ASM_FILE_START): Likewise.
1132         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
1133         * config/avr/avr.c (asm_file_end): Likewise.
1134         * toplev.c (output_quoted_string): Handle possibly signed plain
1135         char.
1136         * toplev.h (output_clean_symbol_name): Declare
1137         * toplev.c (output_clean_symbol_name): Define.
1138         * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
1139         * config/1750a/1750a.h (ASM_FILE_START): Likewise.
1140
1141 2002-05-24  Alan Modra  <amodra@bigpond.net.au>
1142
1143         * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
1144
1145 2002-05-23  Vladimir Makarov  <vmakarov@redhat.com>
1146
1147         * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
1148         of size of unsigned.
1149
1150 2002-05-23  Richard Henderson  <rth@redhat.com>
1151
1152         * configure.in (HAVE_AS_TLS): New test.
1153         * config.in, configure: Rebuild.
1154         * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
1155         (ix86_tls_dialect_string, ix86_tls_dialect): New.
1156         (override_options): Set it.
1157         (tls_model_chars, tls_symbolic_operand): New.
1158         (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
1159         (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
1160         (local_exec_symbolic_operand): New.
1161         (get_pic_label_name): Merge into output_set_got.
1162         (ix86_asm_file_end): Emit pic_label_name if defined.
1163         (legitimate_constant_p, constant_address_p): New.
1164         (legitimate_pic_operand_p): New.
1165         (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
1166         (legitimate_address_p): Likewise.
1167         (ix86_encode_section_info): Rename from i386_; handle tls decls.
1168         (ix86_strip_name_encoding): New.
1169         (get_thread_pointer): New.
1170         (legitimize_address): Handle tls symbols.
1171         (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
1172         Remove UNSPEC_PLT.
1173         (struct machine_function): Add some_ld_name.
1174         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
1175         (print_operand) [&]: Use it.  Handle UNSPEC_TP.
1176         (output_addr_const_extra): New.
1177         (maybe_get_pool_constant): New.
1178         (ix86_split_to_parts): Use it.
1179         (ix86_expand_move): Handle tls symbols.
1180         (ix86_tls_get_addr): New.
1181         * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
1182         (TARGET_OPTIONS): Add tls-dialect.
1183         (CONSTANT_ADDRESS_P): Use new out-of-line function.
1184         (LEGITIMATE_CONSTANT_P): Likewise.
1185         (LEGITIMATE_PIC_OPERAND_P): Likewise.
1186         (TARGET_STRIP_NAME_ENCODING): New.
1187         (ASM_OUTPUT_LABELREF): New.
1188         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
1189         (OUTPUT_ADDR_CONST_EXTRA): New.
1190         (PREDICATE_CODES): Update.
1191         (ix86_tls_dialect, ix86_tls_dialect_string): New.
1192         * config/i386/i386.md: Regroup and renumber unspec constants.
1193         (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
1194         (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
1195         (tls_global_dynamic, tls_local_dynamic_base): New.
1196         (tls_local_dynamic_once): New.
1197         * config/i386/i386-protos.h: Update.
1198
1199 2002-05-23  Richard Henderson  <rth@redhat.com>
1200
1201         * genemit.c (gen_insn): Print file:lineno comment before function.
1202         (main): likewise.
1203         * gensupport.c (struct queue_elem): Add filename member.
1204         (queue_pattern): Initialize it; update all callers.
1205         (process_include): Don't free filename.
1206         (read_md_rtx): Set read_rtx_filename.
1207
1208 2002-05-23  Hans Boehm  <Hans_Boehm@hp.com>
1209
1210         * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
1211
1212 2002-05-23  Richard Henderson  <rth@redhat.com>
1213
1214         * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
1215
1216 2002-05-23  Richard Henderson  <rth@redhat.com>
1217
1218         * doc/extend.texi (C++98 Thread-Local Edits): Update with
1219         commentary from Mark.
1220
1221 2002-05-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1222
1223         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
1224         Use FOR_EACH_BB macros to iterate over basic block chain.
1225         * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
1226         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
1227         Likewise.
1228         * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
1229         find_unreachable_blocks, create_edge_list, verify_edge_list,
1230         remove_fake_edges, add_noreturn_fake_exit_edges,
1231         flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
1232         Likewise.
1233         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
1234         find_sub_basic_blocks): Likewise.
1235         * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
1236         Likewise.
1237         * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
1238         Likewise.
1239         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
1240         Likewise.
1241         * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
1242         commit_edge_insertions, commit_edge_insertions_watch_calls,
1243         print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
1244         * combine.c (combine_instructions, reg_dead_at_p): Likewise.
1245         * conflict.c (conflict_graph_compute): Likewise.
1246         * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
1247         df_modified_p, df_refs_unlink, df_dump): Likewise.
1248         * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
1249         * final.c (compute_alignments): Likewise.
1250         * flow.c (update_life_info, update_life_info_in_dirty_blocks,
1251         delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
1252         count_or_remove_death_notes): Likewise.
1253         * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
1254         compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
1255         classic_gcse, compute_transp, cprop, compute_pre_data,
1256         compute_transpout, invalidate_nonnull_info,
1257         delete_null_pointer_checks_1, delete_null_pointer_checks,
1258         compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
1259         compute_store_table, build_store_vectors, store_motion): Likewise.
1260         * global.c (global_conflicts, mark_elimination): Likewise.
1261         * graph.c (print_rtl_graph_with_bb): Likewise.
1262         * haifa-sched.c (sched_init): Likewise.
1263         * ifcvt.c (if_convert): Likewise.
1264         * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
1265         compute_available, compute_nearerout, compute_rev_insert_delete,
1266         optimize_mode_switching): Likewise.
1267         * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
1268         * predict.c (estimate_probability, note_prediction_to_br_prob,
1269         propagate_freq, counts_to_freqs, expensive_function_p,
1270         estimate_bb_frequencies): Likewise.
1271         * profile.c (instrument_edges, get_exec_counts,
1272         compute_branch_probabilities, compute_checksum, branch_prob,
1273         find_spanning_tree): Likewise.
1274         * recog.c (split_all_insns, peephole2_optimize): Likewise.
1275         * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
1276         Likewise.
1277         * regclass.c (scan_one_insn, regclass): Likewise.
1278         * regmove.c (mark_flags_life_zones, regmove_optimize,
1279         record_stack_memrefs): Likewise.
1280         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
1281         * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
1282         * resource.c (find_basic_block): Likewise.
1283         * sched-ebb.c (schedule_ebbs): Likewise.
1284         * sched-rgn.c (is_cfg_nonregular, build_control_flow,
1285         find_single_block_region, find_rgns, schedule_insns)
1286         * sibcall.c (optimize_sibling_and_tail_recursive_call)
1287         * ssa-ccp.c (optimize_unexecutable_edges,
1288         ssa_ccp_df_delete_unreachable_insns): Likewise.
1289         * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
1290         * ssa.c (find_evaluations, compute_dominance_frontiers_1,
1291         rename_block, convert_to_ssa, compute_conservative_reg_partition,
1292         compute_coalesced_reg_partition, rename_equivalent_regs,
1293         convert_from_ssa): Likewise.
1294         * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
1295         process_for_unwind_directive): Likewise.
1296
1297         * df.c (FOR_ALL_BBS): Removed.
1298         * gcse.c (struct null_pointer_info): Type of current_block field
1299         changed.
1300         (struct reg_avail_info): Type of last_bb field changed.
1301         * config/ia64/ia64.c (block_num): Removed.
1302         (need_copy_state): Type changed.
1303         (last_block): New.
1304
1305 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
1306
1307         * cppinit.c (mark_named_operators): Split out from init_builtins.
1308         (cpp_finish_options): Call it from here instead.
1309
1310 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
1311
1312         * builtin-attrs.def: Update copyright years.
1313         (ATTR_NONNULL): New attribute identifier.
1314         (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
1315         attribute tree lists.
1316         (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
1317         format operand.
1318         (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
1319         (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
1320         attribute lists.  Chain the appropriate nonnull attribute.
1321         * c-format.c (check_format_arg): Remove null format string
1322         warning.
1323         * testsuite/gcc.dg/format/null-1.c: New test.
1324
1325 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1326
1327         * Makefile.in (ADAC): Define.
1328         (SYSLIBS): Define.
1329         (.SUFFIXES): Move before language makefile fragments.
1330         (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
1331
1332 2002-05-23  Mark Mitchell  <mark@codesourcery.com>
1333
1334         * varasm.c (make_decl_rtl): Don't allow weak variables to be
1335         placed in common.
1336
1337 Thu May 23 19:43:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
1338
1339         * cfg.c (dump_flow_info): Print results of
1340         maybe_hot/probably_never_executed predicates.
1341         * toplev.c (open_dump_file): Print function frequency.
1342
1343 2002-05-23  David S. Miller  <davem@redhat.com>
1344
1345         * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
1346         regsets.
1347
1348 2002-05-23  Jason Thorpe  <thorpej@wasabisystems.com>
1349
1350         * c-common.c (warn_nonnull): Declare.
1351         (c_common_attribute_table): Add "nonnull" attribute.
1352         (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
1353         check_nonnull_arg, get_nonnull_operand, check_function_arguments,
1354         check_function_arguments_recurse): New functions.
1355         * c-common.h (warn_nonnull): Declare extern.
1356         (check_function_arguments, check_function_arguments_recurse): New
1357         prototypes.
1358         * c-decl.c (c_decode_option): Add -Wnonnull option.
1359         * c-format.c (set_Wformat): Set warn_nonnull if enabling
1360         format checking.
1361         (format_check_context): New structure.
1362         (check_format_info_recurse): Remove recursion and rename to...
1363         (check_format_arg): ...this.  Update comment.
1364         (check_format_info): Use check_function_arguments_recurse.
1365         * c-typeck.c (build_function_call): Call check_function_arguments
1366         instead of check_function_format.
1367         * doc/extend.texi: Document "nonnull" attribute.
1368         * doc/invoke.texi: Docuemnt -Wnonnull option.
1369         * testsuite/gcc.dg/nonnull-1.c: New test.
1370         * testsuite/gcc.dg/nonnull-2.c: New test.
1371
1372 2002-05-23  David S. Miller  <davem@redhat.com>
1373
1374         * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
1375         * cfgcleanup.c (cleanup_cfg): If it is set do not
1376         attempt to delete trivially dead insns.
1377         * except.c (finish_eh_generation): Pass it to cleanup_cfg.
1378         * toplev.c (rest_of_compilation): Document non-trivial aspect
1379         the RTL before optimize_save_area_alloca is run.
1380
1381 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
1382
1383         * c-lex.c (indent_level): Remove.
1384         (cb_file_change, c_lex): Remove indent level handling.
1385         * c-lex.h (indent_level): Remove.
1386         * input.h (struct file_stack): Remove indent_level.
1387         * toplev.c (push_srcloc): Remove indent_level handling.
1388
1389 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
1390
1391         PR target/6753
1392         * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
1393         of x in constraints for clarity.
1394         (sse_mov?fcc split): abort if op2 == op3.
1395         (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
1396         sse_movsfcc_const0_4): Add earlyclobber.
1397         (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
1398         sse_movdfcc_const0_4): Likewise.  Use DFmode, not SFmode.
1399         Use Y instead of x in constraints.
1400
1401 2002-05-23  Richard Henderson  <rth@redhat.com>
1402
1403         * doc/extend.texi (C99 Thread-Local Edits): New subsection.
1404         (C++98 Thread-Local Edits): New subsection.
1405
1406         * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
1407         (ix86_arch): Set type to enum processor_type.
1408
1409         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
1410         LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
1411
1412 2002-05-23  Jakub Jelinek  <jakub@redhat.com>
1413
1414         * configure.in: Fix as version test for binutils 2.12.1 releases
1415         (without dates).
1416         * configure: Rebuilt.
1417
1418 2002-05-23  Richard Henderson  <rth@redhat.com>
1419
1420         * config/i386/i386.c (get_pic_label_name): New.
1421         (load_pic_register): Remove.
1422         (output_set_got): New.
1423         (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
1424         * config/i386/i386.md (UNSPEC_SET_GOT): New.
1425         (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
1426         (prologue_set_got, prologue_get_pc): Remove.
1427         (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
1428         (builtin_setjmp_receiver): Use gen_set_got.
1429         * config/i386/i386-protos.h: Update.
1430
1431 Thu May 23 09:22:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
1432
1433         * gcse.c (hash_expr): Do not use alias set for hashing.
1434
1435 2002-05-22  Kevin Buettner  <kevinb@redhat.com>
1436
1437         * dbxout.c (dbxout_class_name_qualifiers): New function.
1438         (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
1439
1440 2002-05-23  Neil Booth  <neil@daikokuya.demon.co.uk>
1441
1442         * cpperror.c (_cpp_begin_message): No special casing
1443         of CPP_FATAL_LIMIT.
1444         * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
1445         (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
1446         * cpplib.c (do_include_common): Use DL_ERROR.
1447         * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
1448         (DL_ICE): Renumber.
1449         * fix-header.c (read_scan_file): Update.
1450
1451 2002-05-22  Richard Henderson  <rth@redhat.com>
1452
1453         * config/i386/i386.c (ix86_expand_call): New function, extracted
1454         from md call patterns.  Add pic_offset_table_rtx to
1455         CALL_INSN_FUNCTION_USAGE when needed.
1456         * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
1457         (call_value_pop, call_value, untyped_call): Likewise.
1458         (call_exp, call_value_exp): Remove.
1459         * config/i386/i386-protos.h: Update.
1460
1461 2002-05-22  Richard Henderson  <rth@redhat.com>
1462
1463         * varasm.c (default_section_type_flags): Check for VAR_DECL
1464         before using DECL_THREAD_LOCAL.
1465
1466 2002-05-22  David Edelsohn  <edelsohn@gnu.org>
1467
1468         * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
1469         (STARTFILE_SPEC): Delete PE crt0.o.
1470         * config/rs6000/aix51.h: Same.
1471         * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
1472         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
1473         function descriptor symbol.  Use RS6000_OUTPUT_BASENAME.
1474         (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
1475         * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
1476
1477 2002-05-22  Richard Henderson  <rth@redhat.com>
1478
1479         * varasm.c (default_section_type_flags): Handle tls data and
1480         default sections.
1481         (default_unique_section): Handle tls sections.
1482
1483 2002-05-23  Alan Modra  <amodra@bigpond.net.au>
1484
1485         * configure.in (CROSS): Define NATIVE_CROSS.
1486         * configure: Regenerate.
1487         * gcc.c (STARTFILE_PREFIX_SPEC): Define.
1488         (startfile_prefix_spec): New var.
1489         (static_specs): Add startfile_prefix_spec.
1490         (do_spec_2): Split out from..
1491         (do_spec): ..here.
1492         (main): Process startfile_prefix_spec.
1493         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
1494         dynamic linker.
1495         (STARTFILE_PREFIX_SPEC): Define.
1496         (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
1497         absolute paths.
1498
1499 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
1500
1501         * cpperror.c: Fix formatting.
1502         * cppexp.c: Likewise.
1503         * cppfiles.c: Likewise.
1504         * cpphash.c: Likewise.
1505         * cpphash.h: Likewise.
1506         * cppinit.c: Likewise.
1507         * cpplex.c: Likewise.
1508         * cpplib.c: Likewise.
1509         * cppmacro.c: Likewise.
1510         * cppmain.c: Likewise.
1511         * cppspec.c: Likewise.
1512
1513 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
1514
1515         * combine.c (force_to_mode): Use gen_int_mode.
1516         Don't clear CONST_INT bits outside of mode.
1517
1518 2002-05-22  Richard Henderson  <rth@redhat.com>
1519
1520         * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
1521         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
1522
1523 2002-05-22  Jakub Jelinek  <jakub@redhat.com>
1524
1525         PR c/6643
1526         * emit-rtl.c (widen_memory_access): Only call compare_tree_int
1527         if DECL_SIZE_UNIT is INTEGER_CST.
1528
1529 2002-05-22  Richard Henderson  <rth@redhat.com>
1530
1531         * flow.c (life_analysis): Delete broken reg_label check.
1532
1533 2002-05-22  Richard Henderson  <rth@redhat.com>
1534
1535         * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
1536         * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
1537
1538 Wed May 22 18:39:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
1539
1540         * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
1541         (embed-bb.c): New rule.
1542         * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
1543         * config/sh/embed_bb.c: Delete.
1544
1545 Wed May 22 18:25:29 2002  J"orn Rennecke <joern.rennecke@superh.com>
1546
1547         * c-common.c (cb_register_builtins): Don't indent '#' of #define.
1548
1549 2002-05-22  Kazu Hirata  <kazu@cs.umass.edu>
1550
1551         * config/h8300/h8300.md (*andorqi3): New.
1552
1553 2002-05-22  Neil Booth  <neil@daikokuya.demon.co.uk>
1554
1555         PR preprocessor/6517
1556         * Makefile.in: Update.
1557         * c-common.c (c_common_post_options): Add preprocessor
1558         errors to the error count.
1559         * c-lang.c (c_post_options): Kill.
1560         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
1561         * hooks.h: Add header guards.
1562         * langhooks-def.h: Include hooks.h.
1563         (LANG_HOOKS_POST_OPTIONS): Update.
1564         * langhooks.h (struct lang_hooks): Update post_options.
1565         * toplev.c (parse_options_and_default_flags): Update.
1566 objc:
1567         * objc-lang.c (objc_post_options): Kill.
1568         (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
1569
1570 2002-05-21  Bruce Korb  <bkorb@gnu.org>
1571
1572         * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
1573         * fixinc/inclhack.def(thread_keyword): use c_fix = format.
1574         * fixinc/fixincl.x: regen.
1575
1576 2002-05-21  Kazu Hirata  <kazu@cs.umass.edu>
1577
1578         * cfgbuild.c: Fix formatting.
1579         * cfg.c: Likewise.
1580         * cfgcleanup.c: Likewise.
1581         * cfglayout.c: Likewise.
1582         * cfgloop.c: Likewise.
1583         * cfgrtl.c: Likewise.
1584
1585 2002-05-21  Richard Henderson  <rth@redhat.com>
1586
1587         * c-common.h (enum rid): Add RID_THREAD.
1588         * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
1589         (grokdeclarator): Grok __thread.
1590         * c-parse.in (reswords): Add __thread.
1591         (rid_to_yy): Add RID_THREAD.
1592
1593         * tree.h (DECL_THREAD_LOCAL): New.
1594         (struct tree_decl): Add thread_local_flag.
1595         * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
1596         * tree.c (staticp): TLS variables are not static.
1597
1598         * target-def.h (TARGET_HAVE_TLS): New.
1599         * target.h (have_tls): New.
1600         * output.h (SECTION_TLS): New.
1601         * varasm.c (assemble_variable): TLS variables can't be common for now.
1602         (default_section_type_flags): Handle .tdata and .tbss.
1603         (default_elf_asm_named_section): Handle SECTION_TLS.
1604         (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
1605
1606         * flags.h (flag_tls_default): Declare.
1607         * toplev.c (flag_tls_default): Define.
1608         (display_help): Display help for it.
1609         (decode_f_option): Set it.
1610
1611         * doc/extend.texi (Thread-Local): New node describing language-level
1612         thread-local storage.
1613         * doc/invoke.texi (-ftls-model): Document.
1614
1615         * fixinc/inclhack.def (thread_keyword): New.
1616         * fixinc/fixincl.x: Rebuild.
1617
1618 2002-05-21  Jeffrey A Law  <law@redhat.com>
1619
1620         * optabs.c (expand_binop): For double-word integer multiplies,
1621         do not compute intermediate results into something that is
1622         not a register (such as a SUBREG or MEM).
1623
1624         * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
1625         (ix86_sched_reorder): Make sure to initialize scheduling
1626         data even when there's only one insn in the ready queue.
1627
1628 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
1629
1630         * genautomata.c (reserv_sets_hash_value): Fix a typo.
1631
1632 2002-05-21  Vladimir Makarov  <vmakarov@redhat.com>
1633
1634         * genautomata.c (reserv_sets_hash_value): Define hash_value as
1635         set_el_t.  Transform the hash value into unsigned.
1636         (output_cycle_reservs): Fix bug with output of repeated `nothing'.
1637         (transform_3): Add code to process `(A,B)+(D,E)'.
1638
1639 2002-05-21  NIIBE Yutaka  <gniibe@m17n.org>
1640
1641         * reload1.c (do_output_reload): Run delete_output_reload
1642         only if optimizing.
1643
1644 2002-05-21  Roger Sayle  <roger@eyesopen.com>
1645
1646         PR middle-end/6600
1647         * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
1648         larger than INTEGER_CST.  (store_by_pieces_1): Use it here...
1649         (can_store_by_pieces): ... and here to limit the largest mode used.
1650         Add a comment to document this function.
1651
1652 2002-05-21  Richard Henderson  <rth@redhat.com>
1653
1654         * flow.c (life_analysis): Fix test for deleted label.
1655
1656 2002-05-21  Neil Booth  <neil@daikokuya.demon.co.uk>
1657
1658         * doc/tm.texi: Fix typo.
1659
1660 2002-05-21  Zack Weinberg  <zack@codesourcery.com>
1661
1662         * c-common.c (c_common_init): Set options->unsigned_char from
1663         flag_signed_char.
1664         (cb_register_builtins): Define __STRICT_ANSI__ and
1665         __CHAR_UNSIGNED__ here...
1666         * cppinit.c (init_builtins): Not here.
1667         (cpp_create_reader): unsigned_char option defaults to 0, not
1668         !DEFAULT_SIGNED_CHAR.
1669         (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
1670         and -funsigned-char.
1671
1672         * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
1673         * cpphash.c (_cpp_init_hashtable): Don't set it.
1674         * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
1675         directly.  Clarify comment.
1676
1677 2002-05-21  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1678
1679         * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
1680         neighbouring basic blocks.  Use ENTRY_BLOCK_PTR->next_bb instead of
1681         BASIC_BLOCK (0).  Use EXIT_BLOCK_PTR->prev_bb instead of
1682         BASIC_BLOCK (n_basic_blocks - 1).
1683         * cfganal.c (can_fallthru, flow_call_edges_add,
1684         flow_preorder_transversal_compute): Too.
1685         * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
1686         find_sub_basic_blocks): Too.
1687         * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
1688         * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
1689         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
1690         * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
1691         * combine.c (this_basic_block): Type changed to basic_block.
1692         (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
1693         nonzero_bits, num_sign_bit_copies, get_last_value_validate,
1694         get_last_value, distribute_notes, distribute_links): Too.
1695         * final.c (compute_alignments): Too.
1696         * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
1697         * function.c (thread_prologue_and_epilogue_insns): Too.
1698         * gcse.c (compute_code_hoist_vbeinout): Too.
1699         * global.c (build_insn_chain): Too.
1700         * ifcvt.c (find_if_block, find_cond_trap): Too.
1701         * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
1702         * regmove.c (regmove_optimize): Too.
1703         * resource.c (find_basic_block): Too.
1704         * sched-ebb.c (schedule_ebbs): Too.
1705         * ssa-dce.c (find_control_dependence, find_pdom): Too.
1706
1707 2002-05-21  Andreas Jaeger  <aj@suse.de>
1708
1709         * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
1710
1711 2002-05-21  Richard Henderson  <rth@redhat.com>
1712
1713         * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
1714         unspec names, not numbers.
1715
1716 2002-05-21  Joseph S. Myers  <jsm28@cam.ac.uk>
1717
1718         * doc/sourcebuild.texi: Mention snapshot-README and
1719         snapshot-index.html as needing updating for new front ends.
1720
1721 2002-05-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1722
1723         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
1724         disabling checking, and avoid multiple evaluation of RTX.
1725
1726 2002-05-21  Richard Earnshaw  <rearnsha@arm.com>
1727
1728         * bitmap.c (bitmap_find_bit): Return early if we have the correct
1729         element cached.
1730
1731 Tue May 21 10:51:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
1732
1733         * profile.c (gen_edge_profiler):  Set alias set before the memory is
1734         used.
1735
1736 2002-05-20  David S. Miller  <davem@redhat.com>
1737
1738         * cselib.c (max_value_regs): New.
1739         (cselib_lookup, cselib_invalidate_regno): Initialize it when
1740         adding new entries to the REG_VALUES table and we are dealing with
1741         a hard register.
1742         (clear_table): Initialize it.
1743         (cselib_invalidate_regno): Use it to determine which hard
1744         registers to scan when mode is not VOIDmode.
1745
1746 2002-05-20  Duraid Madina   <duraid@fl.net.au>
1747
1748         * tradcpp.c (fixup_newlines): Use old-style function header.
1749
1750 2002-05-20  Krister Walfridsson  <cato@df.lth.se>
1751
1752         * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
1753
1754 2002-05-20  H.J. Lu  (hjl@gnu.org)
1755
1756         Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
1757
1758         * config/mips/mips.h (DFMODE_NAN): Defined.
1759         (SFMODE_NAN): Likewise.
1760
1761 2002-05-20  Dale Johannesen  <dalej@apple.com>
1762
1763         * combine.c (cant_combine_insn_p):  Back out my
1764         previous patch.
1765
1766 2002-05-20  Kazu Hirata  <kazu@cs.umass.edu>
1767
1768         * params.c: Fix formatting.
1769         * params.h: Likewise.
1770         * predict.c: Likewise.
1771         * prefix.c: Likewise.
1772         * print-rtl.c: Likewise.
1773         * print-tree.c: Likewise.
1774         * profile.c: Likewise.
1775
1776 2002-05-20  H.J. Lu  (hjl@gnu.org)
1777
1778         * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
1779
1780 2002-05-20  Nick Clifton  <nickc@cambridge.redhat.com>
1781
1782         * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
1783         switches straight on to the assembler, do not abbreviate them.
1784         * config/arm/elf.h (ASM_SPEC): As above.
1785         * config/arm/semi.h (ASM_SPEC): As above.
1786         * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
1787         * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
1788         -mcpu=xscale on to the assembler by default.
1789         * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
1790
1791 2002-05-20  Richard Henderson  <rth@redhat.com>
1792
1793         * cse.c (canon_hash): Reorder do_not_record test.  Always
1794         allow pic_offset_table_rtx.
1795
1796 2002-05-19  Toon Moene  <toon@moene.indiv.nluug.nl>
1797
1798         * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
1799         (expand_binop): Ditto (3 times).
1800
1801 2002-05-19  Mark Mitchell  <mitchell@doubledemon.codesourcery.com>
1802
1803         * Makefile.in (distclean): Remove QMTest stuff.
1804         (QMTEST_PATH): New variable.
1805         (QMTESTFLAGS): Likewise.
1806         (QMTESTRUNFLAGS): Likewise.
1807         (QMTEST): Likewise.
1808         (QMTEST_GPP_TESTS): Likewise.
1809         (QMTEST_DIR): Likewise.
1810         (QMTEST_DIR/context): New target.
1811         (qmtest-g++): Likeise.
1812         (qmtest-gui): Likewise.
1813         (QMTEST_DIR/gpp-expected.qmr): Likewise.
1814
1815 2002-05-19  Aldy Hernandez  <aldyh@redhat.com>
1816
1817         * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
1818         an altivec register if TARGET_ALTIVEC.
1819
1820         * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
1821         to ALTIVEC_VECTOR_MODE.
1822         (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
1823         (rs6000_va_arg): Vectors may go in registers if they are not
1824         altivec vectors.
1825
1826 2002-05-19  Kazu Hirata  <kazu@cs.umass.edu>
1827
1828         * protoize.c: Fix formatting.
1829
1830 2002-05-19  Richard Henderson  <rth@redhat.com>
1831
1832         * gensupport.c (init_include_reader): Merge into ...
1833         (process_include): ... here.  Simplify composite path creation.
1834         Plug memory leaks.  Fix file/line number tracking.  Do not
1835         process_define_cond_exec.  Return void.
1836         (process_rtx): Don't check process_include return value.
1837
1838 2002-05-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1839
1840         * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
1841         fields.
1842         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
1843         traversing basic block chain.
1844         (create_basic_block_structure, create_basic_block): Declaration changed.
1845         (link_block, unlink_block): Declare.
1846         * cfg.c (entry_exit_blocks): Initialize new fields.
1847         (link_block, unlink_block): New.
1848         (expunge_block_nocompact): Unlink basic block.
1849         (dump_flow_info): Print prev_bb/next_bb fields.
1850         * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
1851         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
1852         * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
1853         * cfgrtl.c (create_basic_block_structure, create_basic_block,
1854         split_block, force_nonfallthru_and_redirect, split_edge): Modified.
1855         (verify_flow_info): Check that list agrees with numbering.
1856
1857 2002-05-19  Neil Booth  <neil@daikokuya.demon.co.uk>
1858
1859         * c-common.c (preprocessing_asm): New macro.
1860         * c-lex.h (builtin_define, builtin_assert): Use pfile.
1861 doc:
1862         * tm.texi: Update.
1863 config/alpha:
1864         * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
1865         (CPP_SPEC): Simplify.
1866         (TARGET_CPU_CPP_BUILTINS): Update.
1867         * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
1868         (CPP_SPEC): Simplify.
1869         * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
1870         (TARGET_OS_CPP_BUILTINS): Update.
1871         * osf.h (CPP_XFLOAT_SPEC): Kill.
1872         (TARGET_OS_CPP_BUILTINS): Update.
1873         (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
1874         * osf5.h (CPP_XFLOAT_SPEC): Kill.
1875         * vms.h (CPP_SUBTARGET_SPEC): Kill.
1876         (TARGET_OS_CPP_BUILTINS): Update.
1877
1878 2002-05-19  Richard Henderson  <rth@redhat.com>
1879
1880         * varasm.c (default_binds_local_p): Fix typo.
1881
1882 2002-05-19  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1883
1884         * config/avr/avr.c (machine_dependent_reorg): Sign extend the
1885         CONST_INT operand to the correct mode after adding 1 to it.
1886
1887 2002-05-19  Mark Mitchell  <mark@codesourcery.com>
1888
1889         * config.gcc (powerpc-wrs-windiss*): New target.
1890
1891 2002-05-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1892
1893         * config/rs6000/rs6000.md (ashrdi3_no_power): New.
1894         (ashrdi3): Use it.
1895
1896 2002-05-18  Mark Mitchell  <mark@codesourcery.com>
1897
1898         * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
1899         alphasort.
1900         * config.in: Regenerated.
1901         * configure: Regenerated.
1902
1903 2002-05-19  Richard Henderson  <rth@redhat.com>
1904
1905         * target-def.h (TARGET_BINDS_LOCAL_P): New.
1906         * target.h (struct gcc_target): Move boolean fields to the end.
1907         Add binds_local_p.
1908         * varasm.c (default_binds_local_p): New.
1909         * output.h: Declare it.
1910
1911         * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
1912         * config/cris/cris.c (cris_encode_section_info): Likewise.
1913         * config/i386/i386.c (i386_encode_section_info): Likewise.
1914         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
1915         * config/sh/sh.c (sh_encode_section_info): Likewise.
1916
1917         * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
1918         (TARGET_BINDS_LOCAL_P): New.
1919
1920 2002-05-19  Richard Henderson  <rth@redhat.com>
1921
1922         * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
1923         FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
1924         MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
1925
1926         * toplev.c (display_help): Kill -a -ax help.
1927
1928         * config/1750a/1750a.h, config/alpha/alpha.h,
1929         config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
1930         config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
1931         config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
1932         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
1933
1934         * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
1935         * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
1936
1937         * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
1938         (ix86_output_function_block_profiler): Kill.
1939         * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
1940         (m68hc11_function_block_profiler): Kill.
1941         * config/m68hc11/m68hc11-protos.h: Update.
1942         * config/m88k/m88k.c (output_block_profiler): Kill.
1943         (output_function_block_profiler): Kill.
1944         * config/m88k/m88k-protos.h: Update.
1945
1946 2002-05-19  Richard Henderson  <rth@redhat.com>
1947
1948         * system.h (STRIP_NAME_ENCODING): Poison it.
1949         * output.h (STRIP_NAME_ENCODING): Remove.
1950         (default_strip_name_encoding): Declare.
1951         * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
1952         * target.h (strip_name_encoding): New.
1953         * varasm.c (default_strip_name_encoding): New.
1954
1955         * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
1956         config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
1957         config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
1958         config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
1959         config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
1960         config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
1961         config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
1962         config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
1963         config/v850/v850.h: Use the hook, not the macro.
1964
1965         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
1966         config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
1967         config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
1968         config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
1969         config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
1970         config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
1971         config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
1972         config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
1973         config/v850/v850.c, config/v850/v850.h:
1974         Move STRIP_NAME_ENCODING to out-of-line function and add
1975         TARGET_STRIP_NAME_ENCODING.
1976
1977         * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
1978         config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
1979         with TARGET_STRIP_NAME_ENCODING referencing existing function;
1980         make function static.
1981
1982         * xcoffout.c: Include target.h
1983         * Makefile.in (xcoffout.o): Update.
1984
1985         * config/avr/avr.c (avr_encode_section_info): Correct prototype.
1986         * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
1987         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
1988         reloc argument unused.
1989         * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
1990
1991         * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
1992         STRIP_NAME_ENCODING docs.
1993
1994 2002-05-19  Andreas Jaeger  <aj@suse.de>
1995
1996         * gengenrtl.c: Add prototype for excluded_rtx.
1997
1998         * real.h: Add prototype for exact_real_truncate.
1999
2000 2002-05-18  Richard Henderson  <rth@redhat.com>
2001
2002         * system.h (ENCODE_SECTION_INFO): Poison it.
2003         * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
2004         * target.h (encode_section_info): New.
2005         * varasm.c (make_decl_rtl, output_constant_def): Use it.
2006         * hooks.c (hook_tree_int_void): New.
2007         * hooks.h: Declare it.
2008
2009         * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
2010         config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
2011         config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
2012         config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
2013         config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
2014         config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
2015         config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
2016         config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
2017         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
2018         config/mcore/mcore-protos.h, config/mcore/mcore.c,
2019         config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
2020         config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
2021         config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
2022         config/stormy16/stormy16.c, config/stormy16/stormy16.h:
2023         Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
2024         referencing existing function.  Make function static.
2025
2026         * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
2027         config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
2028         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
2029         config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
2030         config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
2031         config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
2032         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
2033         config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
2034         config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
2035         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
2036         config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
2037         config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
2038         config/xtensa/xtensa.c, config/xtensa/xtensa.h:
2039         Move ENCODE_SECTION_INFO to out-of-line function and add
2040         TARGET_ENCODE_SECTION_INFO.
2041
2042         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
2043         (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
2044
2045         * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
2046         from SUBTARGET_*
2047         (switch_to_section): Replace in_rdata case with in_readonly_data.
2048
2049         * config/h8300/h8300.c (h8300_encode_label): Make static.
2050         * config/h8300/h8300-protos.h: Update.
2051
2052         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
2053         from rs6000_encode_section_info; make static.
2054         (rs6000_xcoff_encode_section_info): New.
2055
2056         * config/v850/v850.c (v850_encode_data_area): Make static.
2057         * config/v850/v850-protos.h: Update.
2058
2059         * config/vax/vax.c: Include flags.h.
2060         (vms_select_section): Fix typo.
2061
2062         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
2063         ENCODE_SECTION_INFO docs.
2064
2065 2002-05-18  Richard Henderson  <rth@redhat.com>
2066
2067         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
2068         REGISTER_TARGET_PRAGMAS.
2069         * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
2070
2071         * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
2072
2073 2002-05-18  Richard Henderson  <rth@redhat.com>
2074
2075         * system.h (SELECT_RTX_SECTION): Poison.
2076         * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
2077         * target.h (select_rtx_section): New.
2078         * varasm.c (output_constant_pool): Use it.
2079         (default_select_rtx_section, default_elf_select_rtx_section): New.
2080         * output.h: Declare them.
2081
2082         * config/darwin.h (SELECT_RTX_SECTION): Move ...
2083         * config/darwin.c (machopic_select_rtx_section): ... here.
2084         * config/darwin-protos.h: Update.
2085
2086         * config/nextstep.h (SELECT_RTX_SECTION): Move ...
2087         * config/nextstep.c (machopic_select_rtx_section): ... here.
2088         (nextstep_select_section): Rename variable to avoid macro clash.
2089         * config/nextstep-protos.h: Update.
2090
2091         * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
2092         config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
2093         config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
2094         config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
2095         config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
2096         config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
2097         config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
2098         config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
2099         config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
2100         (SELECT_RTX_SECTION): Remove.
2101
2102         * config/darwin.h, config/elfos.h, config/nextstep.h,
2103         config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
2104         config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
2105         config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
2106         config/sparc/lynx.h, config/xtensa/xtensa.c
2107         (TARGET_ASM_SELECT_RTX_SECTION): New.
2108
2109         * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
2110         * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
2111         * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
2112         * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
2113         (ia64_aix_select_rtx_section): New.
2114         * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
2115         redefining.
2116         * config/mips/mips.c (mips_select_rtx_section): Make static.
2117         Support ELF SHF_MERGE features.
2118         * config/mips/mips-protos.h: Update.
2119         * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
2120         * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
2121         (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
2122         make static, fall back to default_elf_select_rtx_section.
2123         * config/rs6000/rs6000-protos.h: Update.
2124         * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
2125         * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
2126         * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
2127         * config/romp/romp.c (romp_select_rtx_section): New.
2128         * config/s390/s390.c (s390_select_rtx_section): New.
2129         * config/xtensa/xtensa.c: Include output.h.  Shuffle local function
2130         declarations before target macro definition.
2131         (xtensa_emit_call): Use static buffer.
2132         (xtensa_select_rtx_section): New.
2133         * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
2134         (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
2135         (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
2136
2137         * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
2138         SELECT_RTX_SECTION docs.
2139
2140 Sun May 19 00:24:23 CEST 2002  Jan Hubicka  <jh@suse.cz>
2141
2142         * i386.md (movsi/movdi): Fix template.
2143         (sse2 patterns): Set attributes consistently.
2144
2145         * i386.md (pushqi2, ashrqi_*): Fix constraint.
2146
2147 2002-05-18  Toon Moene  <toon@moene.indiv.nluug.nl>
2148
2149         * optabs.c (complex_part_zero_p): New.
2150         * (expand_cmplxdiv_straight): Use it.
2151         * (expand_cmplxdiv_wide): Ditto.
2152         * (expand_binop): Ditto.
2153
2154 2002-05-18  Richard Henderson  <rth@redhat.com>
2155
2156         * final.c (HAVE_READONLY_DATA_SECTION): New.
2157         (shorten_branches): Use it instead of ifdefs.
2158         * varasm.c (enum in_section): Add in_readonly_data.
2159         (text_section, data_section): Tidy.
2160         (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
2161
2162         * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
2163         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
2164         (READONLY_DATA_SECTION): Don't undef.
2165
2166         * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
2167         config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
2168         config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
2169
2170         * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
2171         config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
2172         config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
2173         config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
2174
2175         * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
2176         config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
2177         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
2178         config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
2179         config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
2180         config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
2181         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
2182         config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
2183         CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
2184
2185         * config/elfos.h, config/netware.h, config/1750a/1750a.h,
2186         config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
2187         config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
2188         config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
2189         config/pa/pa64-hpux.h, config/sparc/litecoff.h
2190         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
2191
2192         * config/elfos.h, config/netware.h, config/svr3.h,
2193         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
2194         config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
2195         config/h8300/h8300.h, config/i386/i386-interix.h,
2196         config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
2197         config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
2198
2199         * config/elfos.h, config/netware.h, config/svr3.h,
2200         config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
2201         config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
2202         config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
2203         config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
2204
2205         * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
2206         config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
2207         config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
2208         config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
2209         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
2210         config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
2211         config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
2212         config/rs6000/sysv4.h, config/v850/v850.h
2213         (EXTRA_SECTIONS): Remove in_const/in_rdata.
2214         (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
2215
2216         * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
2217         config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
2218         config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
2219         config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
2220         * config/alpha/alpha.c (alpha_start_function): Likewise.
2221         (alpha_write_linkage): Likewise.
2222         * config/m32r/m32r.c (m32r_select_section): Likewise.
2223         * config/m88k/m88k.c (m88k_select_section): Likewise.
2224         * config/mips/mips.c (mips_select_rtx_section): Likewise.
2225         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
2226         (rs6000_elf_select_section): Likewise.
2227         * config/v850/v850.c (v850_select_section): Likewise.
2228
2229         * config/1750a/1750a.h, config/i860/sysv3.h
2230         (READONLY_DATA_SECTION_ASM_OP): New.
2231         READONLY_DATA_SECTION_ASM_OP.
2232         * config/i386/interix.c, config/i386/winnt.c
2233         (i386_pe_unique_section): Always use .rdata prefix.
2234         * config/pa/som.h (readonly_data): Always switch to read-only section.
2235         (READONLY_DATA_SECTION): Predicate on flag_pic.
2236         * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
2237         * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
2238         (READONLY_DATA_SECTION): Update.
2239
2240 2002-05-18  Jason Thorpe  <thorpej@wasabisystems.com>
2241
2242         * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
2243         is used without -Wformat.
2244         * c-common.h (warn_format_zero_length): Declare extern.
2245         * c-decl.c (warn_options): Add "format-zero-length".
2246         * c-format.c (warn_format_zero_length): Declare.
2247         (set_Wformat): Set warn_format_zero_length for -Wformat.
2248         (check_format_info): Only warn about zero-length formats if
2249         warn_format_zero_length is true.  Include the format type
2250         name in the warning message.
2251         * doc/invoke.texi: Document -Wformat-zero-length.
2252         * testsuite/gcc.dg/format/zero-length-1.c: New test.
2253
2254 2002-05-18  Kazu Hirata  <kazu@cs.umass.edu>
2255
2256         * timevar.c: Fix formatting.
2257         * tlink.c: Likewise.
2258         * toplev.c: Likewise.
2259         * tree-dump.c: Likewise.
2260         * tree-inline.c: Likewise.
2261
2262 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
2263
2264         * cppinit.c (cpp_post_options): If preprocessed, turn off
2265         traditional.  If traditional, turn off column numbers.
2266         * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
2267         * cpptrad.c (handle_newline): Update line_base.
2268         (skip_comment): Handle -Wcomment.
2269
2270 2002-05-17  Zack Weinberg  <zack@codesourcery.com>
2271
2272         * cppinit.c (struct builtin): Remove unused fields.
2273         (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
2274         (operator_array): New - was second half of builtin_array.
2275         (init_builtins): Simplify loop over builtin_array/operator_array.
2276
2277 2002-05-18  Neil Booth  <neil@daikokuya.demon.co.uk>
2278
2279         * defaults.h (UNIQUE_SECTION): Remove.
2280         * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
2281
2282 2002-05-17  Richard Henderson  <rth@redhat.com>
2283
2284         * expr.c (init_expr_once): Don't use start/end_sequence.
2285         Use rtx_alloc instead of emit_insn.
2286         * toplev.c (lang_dependent_init): Run init_expr_once here ...
2287         (lang_independent_init): ... not here.
2288
2289 2002-05-17  Jason Thorpe  <thorpej@wasabisystems.com>
2290
2291         * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
2292
2293 2002-05-17  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2294
2295         * config/avr/avr.c (avr_regs_to_save): New function.  Also check
2296         for fixed registers, possibly used for global register variables.
2297         (initial_elimination_offset, avr_output_function_prologue,
2298         avr_output_function_epilogue):  Move common code to avr_regs_to_save.
2299
2300 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
2301
2302         * Makefile.in: Update for cpptrad.c.
2303         * cpphash.h (struct cpp_buffer): New members for buffer
2304         overlays.
2305         (struct cpp_reader): New members for traditional output.
2306         (_cpp_read_logical_line, _cpp_overlay_buffer): New.
2307         * cppinit.c (cpp_create_reader): Set trad_line.
2308         (cpp_destroy): Free trad_out_base if used.
2309         (cpp_read_main_file): Overlay an empty buffer if traditional.
2310         (cpp_finish_options): Don't do builtins.
2311         (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
2312         (cpp_handle_option): Handle it.
2313         * cpplex.c (continue_after_nul): New.
2314         (_cpp_lex_direct): Use handle_nul.
2315         * cpplib.h (struct cpp_options): New traditional option.
2316         * cpptrad.c: New file.
2317
2318 2002-05-17  Neil Booth  <neil@daikokuya.demon.co.uk>
2319
2320         * c-common.c (c_common_init_options): Use C89 for Objective-C,
2321         and set the options flag.
2322         * cppinit.c (lang_flags): Remove objc.
2323         (lang_defaults): Remove OBJC and OBJCXX.
2324         (set_lang): Update.
2325         (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
2326         (cpp_handle_option): Remove -+ and -lang-objc++.
2327         For ObjC, just set a flag.
2328         (print_help): Update.
2329         * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
2330
2331 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2332
2333         * doc/install.texi (Specific, mips-sgi-irix6): Document need to
2334         bootstrap with -mips3.
2335
2336 2002-05-17  Kazu Hirata  <kazu@cs.umass.edu>
2337
2338         * final.c: Fix formatting.
2339         * fix-header.c: Likewise.
2340         * flow.c: Likewise.
2341         * fold-const.c: Likewise.
2342         * function.c: Likewise.
2343
2344 2002-05-17  David S. Miller  <davem@redhat.com>
2345
2346         PR c/6689, PR optimization/6615
2347         * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
2348         and make it a pointer to rtx.  Update comments.
2349         (update_equiv_regs): When scanning for equivalences, record
2350         address of SET_SRC (set) in reg_equiv[].src_p.  Dereference
2351         it while making the equiv replacements.
2352
2353 2002-05-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2354
2355         * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
2356
2357 2002-05-17  kaz Kojima  <kkojima@rr.iij4u.or.jp>
2358
2359         * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
2360         when encoding visibility into SYMBOL_REF_FLAG.
2361
2362 2002-05-17  Richard Sandiford  <rsandifo@redhat.com>
2363
2364         * expr.c (force_operand): Fix reversed move.
2365
2366 2002-05-17  Kurt Wall <kwall@kurtwerks.com>
2367
2368         * doc/install.texi (Testing): Mention two common DejaGnu warnings
2369         that can be ignored.
2370
2371 2002-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2372
2373         * doc/install.texi (Final install): Recommend to install into a
2374         "clean" target directory.
2375
2376 2002-05-17  Richard Henderson  <rth@redhat.com>
2377
2378         * config/ia64/ia64.md: Use braced strings instead of quoted strings
2379         for code blocks.  Tidy whitespace.
2380
2381 2002-05-17  Richard Henderson  <rth@redhat.com>
2382
2383         * hooks.c (hook_tree_bool_false): New.
2384         * hooks.h: Declare it.
2385         * target-def.h (TARGET_ASM_SELECT_SECTION): New.
2386         (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
2387         * target.h (select_section, unique_section): New.
2388         (in_small_data_p): New.
2389         * varasm.c (resolve_unique_section): Use hooks instead of macros.
2390         (variable_section, output_constant_def_contents): Likewise.
2391         (default_select_section, default_unique_section): New.
2392         (categorize_decl_for_section, default_elf_select_section): New.
2393         * output.h: Declare them.
2394
2395         * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
2396         (TARGET_ASM_SELECT_SECTION): New.
2397         (SELECT_SECTION): Move ...
2398         * config/darwin.c (machopic_select_section): ... here.
2399         * config/darwin-protos.h: Update.
2400
2401         * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
2402         (SELECT_SECTION): Move ...
2403         * config/nextstep.c (nextstep_select_section): ... here.
2404         * config/nextstep-protos.h: Update.
2405
2406         * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
2407         (TARGET_ASM_SELECT_SECTION): New.
2408         * config/svr3.h (SELECT_SECTION): Remove.
2409
2410         * config/alpha/alpha.c (unicosmk_unique_section): Make static.
2411         (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
2412         (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
2413         (alpha_encode_section_info): Use it.
2414         * config/alpha/alpha-protos.h: Update.
2415         * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
2416         (SELECT_SECTION, UNIQUE_SECTION): Remove.
2417         (TARGET_ASM_SELECT_SECTION): New.
2418         * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
2419
2420         * config/arm/pe.h (UNIQUE_SECTION): Remove.
2421         (TARGET_ASM_UNIQUE_SECTION): New.
2422
2423         * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
2424         (avr_unique_section): Rename from unique_section; make static.
2425         * config/avr/avr-protos.h: Update.
2426         * config/avr/avr.h (UNIQUE_SECTION): Remove.
2427
2428         * config/c4x/c4x.h (SELECT_SECTION): Remove.
2429
2430         * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
2431         (TARGET_ASM_UNIQUE_SECTION): New.
2432         * config/i386/i386-interix.h: Likewise.
2433         * config/i386/win32.h: Likewise.
2434         * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
2435         * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
2436         * config/i386/sco5.h (SELECT_SECTION): Remove.
2437         (TARGET_ASM_SELECT_SECTION): New.
2438         * config/i386/svr3gas.h (SELECT_SECTION): Remove.
2439
2440         * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
2441         instead of SELECT_SECTION.
2442         * config/m68k/dpx2.h: Likewise.
2443         * config/rs6000/lynx.h: Likewise.
2444
2445         * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
2446         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
2447         * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
2448         (ia64_in_small_data_p): New.
2449         (ia64_encode_section_info): Use it.  Reorganize overlarge conditional.
2450         (ia64_aix_select_section, ia64_aix_unique_section): New.
2451         * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
2452         (SELECT_SECTION, UNIQUE_SECTION): Remove.
2453
2454         * config/m32r/m32r.h (SELECT_SECTION): Remove.
2455         (TARGET_ASM_SELECT_SECTION): New.
2456         * config/m32r/m32r.c (m32r_select_section): Take align argument.
2457         * config/m32r/m32r-protos.h: Update.
2458
2459         * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
2460         (SELECT_SECTION): Move ...
2461         * config/m88k/m88k.c (m88k_select_section): ... here.
2462
2463         * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
2464         * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
2465         * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
2466         (mcore_unique_section): Make static.
2467         * config/mcore/mcore-protos.h: Update.
2468
2469         * config/mips/elf.h (UNIQUE_SECTION): Remove.
2470         (TARGET_ASM_UNIQUE_SECTION): New.
2471         * config/mips/elf64.h: Likewise.
2472         * config/mips/iris6gld.h: Likewise.
2473         * config/mips/linux.h: Likewise.
2474         * config/mips/mips-protos.h: Update.
2475         * config/mips/mips.c (mips_select_section): Add align argument.
2476         * config/mips/mips.h (SELECT_SECTION): Remove.
2477         (TARGET_ASM_SELECT_SECTION): New.
2478
2479         * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
2480         * config/mmix/mmix.c (mmix_select_section): Remove.
2481         (mmix_unique_section): Remove.
2482         * config/mmix/mmix-protos.h: Update.
2483
2484         * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
2485         (SELECT_SECTION): Move ...
2486         * config/pa/pa.c (pa_select_section): ... here.
2487         * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
2488
2489         * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
2490         from rs6000_select_section and make static.
2491         (rs6000_elf_unique_section): Similarly.
2492         (rs6000_xcoff_select_section): From xcoff.h.
2493         (rs6000_xcoff_unique_section): Likewise.
2494         * config/rs6000/rs6000-protos.h: Update.
2495         * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
2496         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
2497         * config/rs6000/xcoff.h: Likewise.
2498
2499         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
2500         (SELECT_SECTION): Move ...
2501         * config/sparc/sparc.c (sparc_aout_select_section): ... here.
2502
2503         * config/v850/v850.h (SELECT_SECTION): Move ...
2504         * config/v850/v850.c (v850_select_section): ... here.
2505         (TARGET_ASM_SELECT_SECTION): New.
2506
2507         * config/vax/vms.h (SELECT_SECTION): Move ...
2508         * config/vax/vax.c (vms_select_section): ... here.
2509         (TARGET_ASM_SELECT_SECTION): New.
2510
2511         * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
2512         for the target hooks.
2513
2514 2002-05-17  Nick Clifton  <nickc@cambridge.redhat.com>
2515
2516         * config/arm/arm.c (emit_multi_reg_push): Do not set
2517         RTX_FRAME_RELATED_P on the SEQUENCE.
2518
2519 2002-05-16  Richard Henderson  <rth@redhat.com>
2520
2521         * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
2522         splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.
2523
2524 2002-05-16  Richard Henderson  <rth@redhat.com>
2525
2526         * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
2527
2528         * config/ia64/ia64.c (saveable_obstack): Do not declare.
2529
2530 2002-05-16  Richard Henderson  <rth@redhat.com>
2531
2532         * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
2533         cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
2534         conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
2535         gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
2536         local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
2537         recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
2538         reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
2539         sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
2540         Revert "Basic block renumbering removal", and two followup patches.
2541
2542 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
2543
2544         * lcm.c (optimize_mode_switching): Revert previous change.
2545
2546 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2547
2548         * sched-rgn.c (schedule_insns): Initialize large_region_blocks
2549         with only extant block numbers.
2550
2551 2002-05-16  Jason Thorpe  <thorpej@wasabisystems.com>
2552
2553         * lcm.c (optimize_mode_switching): Fix typo.
2554
2555 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2556
2557         * flow.c (calculate_global_regs_live): Queue blocks in program order.
2558
2559 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2560
2561         * doc/install.texi (Configuration): Document PWDCMD.
2562
2563 2002-05-16  Dale Johannesen  <dalej@apple.com>
2564
2565         * combine.c (cant_combine_insn_p):  Reenable combinations
2566         involving hard regs unless CLASS_LIKELY_SPILLED_P.
2567
2568 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2569
2570         * c-common.c (cb_register_builtins): Handle more built-ins
2571         here rather than in gcc.c specs.
2572         * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
2573         (cpp_options): Pass -O flags even when only preprocessing.
2574         * toplev.c (set_fast_math_flags): New prototype.
2575         (fast_math_flags_set_p): New.
2576         (set_no_fast_math_flags): Remove.
2577         (decode_f_option): Update.
2578         * toplev.h (set_fast_math_flags): Update.
2579         (fast_math_flags_set_p): New.
2580         (set_no_fast_math_flags): Remove.
2581 config:
2582         * c4x/c4x.c (c4x_override_options): Update.
2583
2584 2002-05-16  Zack Weinberg  <zack@codesourcery.com>
2585
2586         * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
2587         Default-define here.
2588         (builtin_define_with_value): Can now wrap the expansion in
2589         quotation marks if such is wanted.
2590         (cb_register_builtins): Update calls to builtin_define_with_value.
2591         Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
2592         here.
2593         (c_common_init): Set options->stdc_0_in_system_headers.
2594         * c-lex.h: Update prototype of builtin_define_with_value.
2595         * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
2596         and REGISTER_PREFIX.
2597
2598         * cppinit.c (VERS, ULP, C, X): Kill.
2599         (builtin_array): Remove entries for __VERSION__,
2600         __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
2601         __HAVE_BUILTIN_SETJMP__.  Make __STDC__ always a builtin, not
2602         a constant.
2603         (init_builtins): Kill off a bunch of now-dead code.
2604         (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
2605         -fno-leading-underscore.
2606         (cpp_handle_option): Remove code to set user_label_prefix.
2607         (cpp_post_options): Likewise.
2608
2609         * cpplib.h (struct cpp_options): Remove user_label_prefix.
2610         (stdc_0_in_system_headers): New.
2611         * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
2612         stdc_0_in_system_headers) too to decide the value of __STDC__.
2613
2614         * tradcpp.c (user_label_prefix): Kill.
2615         (main): Remove code handling -f(no-)leading-underscore.
2616         (initialize_builtins): Don't define __REGISTER_PREFIX__
2617         or __USER_LABEL_PREFIX__.
2618         (install_value): Wrap compound statement in dummy loop so the
2619         macro works properly in an if statement.
2620
2621
2622 2002-05-16  Janis Johnson  <janis187@us.ibm.com>
2623
2624         * loop.h (struct loop_info): Add member has_prefetch.
2625         * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
2626         (prescan_loop): Initialize has_prefetch.
2627         (struct prefetch_info): Change prefetch_in_loop and
2628         prefetch_before_loop from bit fields to ints.
2629         (emit_prefetch_instructions): Several small fixes.
2630         (check_dbra_loop): Don't reverse loop that uses prefetch.
2631
2632 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2633
2634         * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
2635         * configure.in: Likewise.
2636         * fixinc/check.tpl: Likewise.
2637         * fixinc/fixinc.dgux: Likewise.
2638         * fixinc/fixinc.svr4: Likewise.
2639         * fixinc/fixinc.winnt: Likewise.
2640         * fixinc/fixincl.sh: Likewise.
2641         * fixproto: Likewise.
2642         * configure: Regenerate.
2643
2644 2002-05-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2645
2646         Basic block renumbering removal:
2647         * basic_block.h (struct basic_block_def): Renamed index to sindex,
2648         added prev_bb and next_bb fields.
2649         (n_basic_blocks): Renamed to num_basic_blocks.
2650         (last_basic_block): New, index of last basic block.
2651         (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
2652         traversing basic block chain.
2653         (BLOCK_NUM): index -> sindex.
2654         (create_basic_block_structure, create_basic_block): Declaration changed.
2655         (debug_num2bb): Declare.
2656         (expunge_block_nocompact): Declaration removed.
2657         (link_block, unlink_block, compact_blocks): Declare.
2658         * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
2659         * cfg.c (entry_exit_blocks): Initialize new fields.
2660         (clear_edges, alloc_block, expunge_block, cached_make_edge,
2661         redirect_edge_pred, dump_flow_info, dump_edge_info,
2662         alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
2663         free_aux_for_edges): Modified.
2664         (link_block, unlink_block, compact_blocks, debug_num2bb): New.
2665         (expunge_block_nocompact): Removed.
2666         * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
2667         find_unreachable_blocks, create_edge_list, print_edge_list,
2668         verify_edge_list, flow_edge_list_print, remove_fake_successors,
2669         remove_fake_edges, flow_reverse_top_sort_order_compute,
2670         flow_depth_first_order_compute, flow_preorder_transversal_compute,
2671         flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
2672         flow_dfs_compute_reverse_execute): Modified.
2673         * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
2674         find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
2675         Modified.
2676         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2677         merge_blocks_move_predecessor_nojumps,
2678         merge_blocks_move_successor_nojumps, merge_blocks,
2679         outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
2680         try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
2681         * cfglayout.c (skip_insns_after_block, label_for_bb,
2682         record_effective_endpoints, scope_to_insns_finalize,
2683         fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
2684         fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
2685         cfg_layout_duplicate_bb): Modified.
2686         * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
2687         flow_loop_entry_edges_find, flow_loop_exit_edges_find,
2688         flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
2689         flow_loops_find, flow_loop_outside_edge_p): Modified.
2690         * cfgrtl.c (create_basic_block_structure, create_basic_block,
2691         flow_delete_block, compute_bb_for_insn, split_block,
2692         try_redirect_by_replacing_jump, redirect_edge_and_branch,
2693         force_nonfallthru_and_redirect, tidy_fallthru_edge,
2694         back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
2695         commit_edge_insertions, commit_edge_insertions_watch_calls,
2696         dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
2697         purge_all_dead_edges): Modified.
2698         * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
2699         try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
2700         get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
2701         Modified.
2702         * conflict.c (conflict_graph_compute): Modified.
2703         * df.c (FOR_ALL_BBS): Removed.
2704         (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
2705         df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
2706         df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
2707         * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
2708         * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
2709         calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
2710         * final.c (compute_alignments, final_scan_insn): Modified.
2711         * flow.c (verify_local_live_at_start, update_life_info,
2712         update_life_info_in_dirty_blocks, free_basic_block_vars,
2713         delete_noop_moves, calculate_global_regs_live,
2714         initialize_uninitialized_subregs, allocate_bb_life_data,
2715         regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
2716         mark_used_reg, count_or_remove_death_notes): Modified.
2717         * function.c (thread_prologue_and_epilogue_insns): Modified.
2718         * gcse.c (struct null_pointer_info): Change typo of current_block
2719         to basic_block.
2720         (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
2721         oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
2722         compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
2723         alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
2724         expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
2725         classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
2726         one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
2727         pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
2728         pre_delete, one_pre_gcse_pass, compute_transpout,
2729         invalidate_nonnull_info, delete_null_pointer_checks_1,
2730         free_code_hoist_mem, compute_code_hoist_vbeinout,
2731         hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
2732         compute_ld_motion_mems, store_ops_ok, find_moveable_store,
2733         compute_store_table, build_store_vectors, insert_insn_start_bb,
2734         insert_store, replace_store_insn, free_store_memory, store_motion):
2735         Modified.
2736         * global.c (global_alloc, global_conflicts, mark_elimination,
2737         build_insn_chain): Modified.
2738         * graph.c (print_rtl_graph_with_bb): Modified.
2739         * haifa-sched.c (sched_init): Modified.
2740         * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
2741         (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
2742         if_convert): Modified.
2743         * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
2744         compute_insert_delete, pre_edge_lcm, compute_available,
2745         compute_farthest, compute_nearerout, compute_rev_insert_delete,
2746         pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
2747         Modified.
2748         * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
2749         * loop.c (loop_dump_aux): Modified.
2750         * predict.c (combine_predictions_for_insn, estimate_probability,
2751         last_basic_block_p, process_note_prediction, process_note_predictions,
2752         note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
2753         expensive_function_p, estimate_bb_frequencies,
2754         compute_function_frequency): Modified.
2755         * print-rtl.c (print_rtx): Modified.
2756         * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
2757         get_exec_counts, compute_branch_probabilities, compute_checksum,
2758         branch_prob, find_spanning_tree): Modified.
2759         * recog.c (split_all_insns, peephole2_optimize): Modified.
2760         * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
2761         convert_regs_1, convert_regs_2, convert_regs): Modified.
2762         * regclass.c (scan_one_insn, regclass): Modified.
2763         * regmove.c (mark_flags_life_zones, regmove_optimize,
2764         combine_stack_adjustments): Modified.
2765         * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
2766         * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
2767         * reorg.c (dbr_schedule): Modified.
2768         * resource.c (find_basic_block, init_resource_info): Modified.
2769         * sbitmap.c (sbitmap_intersection_of_succs,
2770         sbitmap_intersection_of_preds, sbitmap_union_of_succs,
2771         sbitmap_union_of_preds): Modified.
2772         * sched-deps.c (init_dependency_caches): Modified.
2773         * sched-ebb.c (schedule_ebbs): Modified.
2774         * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
2775         find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
2776         * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
2777         * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
2778         ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
2779         ssa_const_prop): Modified.
2780         * ssa-dce.c (set_control_dependent_block_to_edge_map_,
2781         find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
2782         * ssa.c (remove_phi_alternative, find_evaluations,
2783         compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
2784         insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
2785         make_regs_equivalent_over_bad_edges,
2786         make_equivalent_phi_alternatives_equival,
2787         compute_conservative_reg_partition,
2788         coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
2789         rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
2790         Modified.
2791
2792 2002-05-16  Mark Mitchell  <mark@codesourcery.com>
2793
2794         * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
2795
2796 2002-05-16  Nick Clifton  <nickc@cambridge.redhat.com>
2797
2798         * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
2799         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
2800         (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
2801         calling CONSTANT_POOL_ADDRESS_P.
2802         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
2803         to decide whether to define __arm__ or __thumb.
2804         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
2805         SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
2806
2807 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2808
2809         * config/arc/arc.h (CPP_PREDEFINES): Remove.
2810         (CPP_SPEC): Update.
2811         (TARGET_CPU_CPP_BUILTINS): New.
2812
2813 2002-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2814
2815         * cpphash.h (cpp_macro): Move here, and make expansion a union.
2816         * cppmacro.c (cpp_macro): Remove.
2817         (enter_macro_context, replace_args, warn_of_redefinition,
2818         _cpp_create_definition, cpp_macro_definition): Update.
2819
2820 2002-05-16  Jason Merrill  <jason@redhat.com>
2821
2822         * config/mips/mips.c (mips_output_external): Don't do sdata
2823         optimization for a variable with DECL_COMDAT set.
2824
2825 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
2826
2827         * config/rs6000/altivec.h: Cleanups for tighter typechecking.
2828         Cleanups for accepting modifiers on pointers.
2829         Fix predicate typos.
2830         Allow long pointers as well as int pointers.
2831
2832 2002-05-15  Richard Henderson  <rth@redhat.com>
2833
2834         * varasm.c (merge_weak): Remove special case for extern and common.
2835
2836 2002-05-15  Matt Hiller  <hiller@redhat.com>
2837
2838         * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
2839         XFAILing.
2840         * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
2841         * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
2842         * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
2843         * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
2844         * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
2845         * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
2846
2847 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
2848
2849         * reload1.c (forget_old_reloads_1): Do not use subreg offset.
2850
2851 2002-05-15  Aldy Hernandez  <aldyh@redhat.com>
2852
2853         * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
2854         ("altivec_mfvscr"): Read from VSCR.
2855
2856         Add vscr sets for the following insns: altivec_vctuxs,
2857         altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
2858         altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
2859         altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
2860         altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
2861         altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
2862         altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
2863         altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
2864         altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
2865         altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
2866         altivec_vsum2sws, altivec_vsumsws.
2867
2868         * config/rs6000/rs6000.h: Add VSCR fixed register.
2869         (CALL_REALLY_USED_REGISTERS): Add vscr.
2870         (CALL_USED_REGISTERS): Same.
2871         (FIXED_REGISTERS): Same.
2872         (REG_ALLOC_ORDER): Same.
2873         (reg_class): Add VSCR_REGS.
2874         (REG_CLASS_NAMES): Same.
2875         (REG_CLASS_CONTENTS): Same.
2876         (VSCR_REGNO): New.
2877         (REGISTER_NAMES): Add vscr.
2878         (DEBUG_REGISTER_NAMES): Same.
2879         (ADDITIONAL_REGISTER_NAMES): Same.
2880         (FIRST_PSEUDO_REGISTER): Increment.
2881         (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
2882
2883 2002-05-15  Jakub Jelinek  <jakub@redhat.com>
2884
2885         * fold-const.c (fold): Fix a typo.
2886
2887 2002-05-15  Eric Botcazou  <ebotcazou@multimania.com>
2888
2889         * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
2890         comparison against the highest or lowest integer value before
2891         the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
2892         transformation and that of an unsigned comparison against 0
2893         right after.
2894
2895 2002-05-15  Richard Henderson  <rth@redhat.com>
2896
2897         * varasm.c (merge_weak): Error for any weakening after definition.
2898         Adjust weakening after use warning to catch more cases.
2899         (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
2900         * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
2901
2902 Wed May 15 10:38:27 CEST 2002  Jan Hubicka  <jh@suse.cz>
2903
2904         * invoke.texi (-malign-double): Re-add lost warning.
2905
2906         * i386-protos.h (x86_output_mi_thunk): Declare.
2907         * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
2908         * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
2909
2910         * dwarf2out.c (output_call_frame_info): Do not skip unwind info
2911         when flag_asynchronous_unwind_tables is set.
2912
2913         * flags.h (flag_reorder_functions): Declare.
2914         * function.c (prepare_function_start): Initialize frequnecy.
2915         * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
2916         * Makefile.in (predict.o): Add dependency on target.h and params.h
2917         * defaults.h (HOT_TEXT_SECTION_NAME,
2918         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
2919         * predict.c (choose_function_section): New function.
2920         (estimate_bb_frequencies): Use it.
2921         * toplev.c (flag_reorder_functions): New global variable.
2922         (lang_independent_options): New.
2923         (parse_options_and_default_flags): Set.
2924         * varasm.c (assemble_start_function): Bypass functdion alignment
2925         for never executed functions.
2926         * invoke.texi (-freorder-blocks, -freorder-functions): Document.
2927         (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
2928         * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
2929         Document.
2930
2931         Thu Jan  3 21:52:09 CET 2002  Jan Hubicka  <jh@suse.cz>
2932
2933         * predict.c: Inlude profile.h
2934         (MIN_COUNT): Rename to MIN_COUNT_FRACTION
2935         (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
2936         Use the information about maximal counter in the program.
2937
2938         Thu Dec 20 22:14:00 CET 2001  Jan Hubicka  <jh@suse.cz>
2939
2940         * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
2941         probably_never_executed_bb_p): New functions.
2942         * cfgcleanup.c (outgoing_edges_match): Use them.
2943         * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
2944         (maybe_hot_bb_p, probably_cold_bb_p,
2945         probably_never_executed_bb_p): New functions.
2946
2947         * function.h (function): Add new field function_frequency.
2948         * predict.c (compute_function_frequency): New function.
2949         (estimate_probability): Call it.
2950
2951 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
2952
2953         PR optimization/5172, optimization/5200
2954         * gcse.c (gcse_main): Disable store_motion.
2955
2956 2002-05-14  Zack Weinberg  <zack@codesourcery.com>
2957
2958         * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
2959         (c_common_nodes_and_builtins): Use it.
2960         (builtin_define_with_value): New function.
2961         (cb_register_builtins): Define __SIZE_TYPE__,
2962         __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
2963         using builtin_define_with_value.  Use consistent notation when
2964         defining __GXX_WEAK__.
2965         (WCHAR_TYPE_SIZE): Don't redefine.
2966         (combine_strings): Don't use WCHAR_TYPE_SIZE.
2967
2968         * cppdefault.h: Don't provide defaults for SIZE_TYPE,
2969         PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
2970         * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
2971         * tradcpp.c (initialize_builtins): Likewise.
2972         * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
2973
2974         * c-lex.h (builtin_define_with_value): Prototype.
2975         * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
2976         NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
2977         * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
2978
2979         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
2980         config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
2981         config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
2982         config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
2983         config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
2984         config/sparc/linux64.h, config/sparc/netbsd-elf.h,
2985         config/sparc/sol2-bi.h, config/sparc/sparc.h:
2986         Do not define NO_BUILTIN_SIZE_TYPE etc.  Remove all references
2987         to __SIZE_TYPE__ etc from all spec strings. When this makes
2988         extra specs empty, delete them.
2989
2990 2002-05-14  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2991
2992         * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
2993         for PA8000 or generating dwarf2 call frame information.
2994         (output_call): Remove DO_FRAME_NOTES check from return pointer
2995         optimization.
2996         (following_call): Return 0 when scheduling for PA8000 or generating
2997         dwarf2 call frame information.  Revise comment.
2998
2999 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
3000
3001 config/alpha:
3002         * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
3003         and __IEEE_FP_INEXACT as appropriate.
3004         (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
3005         (CPP_SPEC): Remove ieee defines.
3006         * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
3007
3008 2002-05-14  Richard Henderson  <rth@redhat.com>
3009
3010         * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
3011         (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
3012
3013 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
3014
3015         * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
3016         (CPP_SPEC): Update.
3017         (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
3018         CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
3019         CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
3020         CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
3021         (EXTRA_SPECS): Update.
3022         * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
3023         arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
3024         arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
3025         define TARGET_OS_CPP_BUILTINS if necessary.
3026
3027 2002-05-14  Neil Booth  <neil@daikokuya.demon.co.uk>
3028
3029         * gcc.c (cpp_options): Must pass -m* and -f* options
3030         to the front end even when only preprocessing.
3031         (cc1_options): Remove redundant -lang-c.
3032         * tradcpp.c (main): Ignore -m options.
3033 objc:
3034         * lang-specs.h: Similarly.
3035
3036 2002-05-14  Vladimir Makarov  <vmakarov@redhat.com>
3037
3038         * genautomata.c (transform_3): Add code for transformation
3039         `(A,B,...)+C -> A+C,B,...'.
3040
3041 Tue May 14 12:48:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
3042
3043         * final.c (end_final): Do not output profile_arcs constructor, when
3044         no functions are instrumented.
3045
3046 Tue May 14 12:38:30 CEST 2002  Jan Hubicka  <jh@suse.cz>
3047
3048         * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
3049
3050 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3051
3052         * doc/install.texi: Remove special markup originally required for
3053         HTML generation with texi2html.
3054
3055 2002-05-14  Andreas Schwab  <schwab@suse.de>
3056
3057         * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
3058         SELECT_SECTION.
3059         (UNIQUE_SECTION): Define to get small data correctly.
3060
3061         * varasm.c (resolve_unique_section): Add third parameter
3062         flag_function_or_data_sections and use it instead of
3063         flag_function_sections.
3064         (assemble_start_function): Pass flag_function_sections.
3065         (asm_emit_uninitialised): Pass flag_data_sections.
3066         (assemble_variable): Likewise.
3067
3068 2002-05-14  Richard Henderson  <rth@redhat.com>
3069
3070         * config/i386/i386.md: Use define_constants for unspec numbers.
3071         * config/i386/i386.c: Likewise.
3072
3073 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
3074
3075         * doc/contrib.texi: Update my entry.
3076
3077 2002-05-13  Mark Mitchell  <mark@codesourcery.com>
3078
3079         * fixinc/inclhack.def (winidss_valist): Limit applicability.
3080         * fixinc/fixincl.x: Regenerated.
3081         * fixinc/tests/base/math.h: Update.
3082         * fixinc/tests/base/testing.h: Likewise.
3083
3084 2002-05-13  Zack Weinberg  <zack@codesourcery.com>
3085
3086         * genattr.c (gen_attr): Don't emit a comma after the last
3087         enumerator.
3088
3089 2002-05-13  Richard Henderson  <rth@redhat.com>
3090
3091         * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
3092         by non-local gotos.
3093         * recog.c (peephole2_optimize): Likewise.
3094
3095 2002-05-13  Andris Pavenis  <pavenis@lanet.lv>
3096
3097         * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
3098         input to O_BINARY.
3099
3100 2002-05-13  Jeffrey A Law  (law@redhat.com)
3101
3102         * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
3103         Update prototype and callers.
3104         (propagate_one_insn): Stack pointer adjustments kill MEMs on
3105         the mem_set_list which reference the stack pointer, as do
3106         calls to constant functions as they may clobber outgoing
3107         argument space.
3108
3109         * i386.c (ia32_multipass_dfa_lookahead): Prototype.
3110
3111         * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
3112         (ia32_multipass_dfa_lookahead): New function.
3113
3114 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
3115
3116         * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
3117         (translate_options): Remove 'V'.
3118         (process_command): Similarly.
3119 doc:
3120         * invoke.texi: Remove documentation of 'V'.
3121
3122 2002-05-13  Ulrich Weigand  <uweigand@de.ibm.com>
3123
3124         * config/s390/linux.h: Revert 2002-04-22 changes.
3125
3126 2002-05-13  Scott Marks <SMarks@mobile-mind.com>
3127
3128         * config/fr30/fr30.md: Only allow splits of immediate loads
3129         if the destination is a register.
3130
3131 2002-05-13  Neil Booth  <neil@daikokuya.demon.co.uk>
3132
3133         * Makefile.in (c-common.o, cppinit.o): Update.
3134         * c-common.c: Include except.h.
3135         (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
3136         Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
3137         * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
3138         * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
3139         CPP_PREDEFINES): Handle here.
3140 config:
3141         * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
3142         alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
3143         alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
3144         TARGET_OS_CPP_BUILTINS.
3145         * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
3146         (CPP_SPEC, EXTRA_SPECS): Update.
3147         (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
3148         CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
3149         CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
3150         CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
3151         CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
3152 doc:
3153         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
3154         (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
3155
3156 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
3157
3158         * emit-rtl.c (global_rtl): Update comment.
3159         (const_double_htab, const_double_htab_hash,
3160         const_double_htab_hash, lookup_const_double): New.
3161         (const_int_htab_hash, const_int_htab_eq): Remove const
3162         qualifiers, which cause tons of warnings with RTL checking on.
3163         (gen_rtx_CONST_DOUBLE): Deleted.
3164         (const_double_from_real_value): New function - bears some
3165         resemblance to the former immed_real_const_1.
3166         (immed_double_const): Moved here from varasm.c and
3167         simplified.
3168         (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
3169         (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
3170         (gen_rtx): Use immed_double_const.
3171         (init_emit_once): Initialize the const_double_htab.  Use
3172         REAL_VALUE_FROM_INT where possible.  Can now use
3173         CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
3174         * varasm.c (struct varasm_status): Remove x_const_double_chain.
3175         (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
3176         (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
3177         (init_varasm_status, mark_varasm_status): Don't touch
3178         x_const_double_chain.
3179
3180         * output.h: Delete prototype for clear_const_double_mem.
3181         * real.h: Make REAL_VALUE_TYPE a macro again.  Remove leading
3182         '0' slot from all CONST_DOUBLE_FORMAT definitions.  Prototype
3183         const_double_from_real_value, not immed_real_const_1, and use
3184         it to define CONST_DOUBLE_FROM_REAL_VALUE.  Define new macro
3185         CONST_DOUBLE_ATOF.
3186         * rtl.h (CONST_DOUBLE_CHAIN): Kill.
3187         (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
3188         (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
3189         (gen_rtx_REG): Second arg is unsigned.
3190
3191         * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
3192         (excluded_rtx): New, return true for CONST_DOUBLE.
3193         (genmacro): Write nothing for excluded codes.
3194         * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
3195         * expr.c (expand_expr): Likewise.
3196         * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
3197         CONST_DOUBLE_CHAIN.
3198         * toplev.c (rest_of_compilation): Don't call
3199         clear_const_double_mem.
3200
3201         * config/rs6000/rs6000.c (rs6000_float_const): Delete.
3202         (rs6000_hash_constant): Remove CONST_DOUBLE special case.
3203         (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
3204         * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
3205         * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
3206         * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
3207         config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
3208         * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
3209
3210 2002-05-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3211
3212         * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
3213
3214 2002-05-12  Tom Tromey  <tromey@redhat.com>
3215
3216         * tree.h (copy_node): Don't mention TREE_PERMANENT.
3217
3218 2002-05-12  Zack Weinberg  <zack@codesourcery.com>
3219
3220         * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
3221         (scan_comma_elt): New function.  Accepts whitespace in comma lists.
3222         * gensupport.h: Prototype new routines.
3223         * genattr.c (gen_attr): Use scan_comma_elt.  Avoid unnecessary
3224         use of printf.
3225         * genattrtab.c (n_comma_elts): Moved to gensupport.c.
3226         (next_comma_elt): Use scan_comma_elt.
3227
3228         * config/i386/i386.md: Use new attribute notation to break up
3229         long lines in define_attr forms.
3230
3231 2002-05-12  Richard Henderson  <rth@redhat.com>
3232
3233         * expr.c (compress_float_constant): New.
3234         (emit_move_insn): Use it.
3235         (float_extend_from_mem): New.
3236         (init_expr_once): Initialize it.
3237         * real.c (exact_real_truncate): New.
3238
3239         * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
3240         dropped into memory; penalize for size.
3241         (RTX_COSTS): FLOAT_EXTEND is free.
3242         * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
3243         extenddfxf2, extenddftf2): Accept constants and drop them to memory.
3244
3245 2002-05-12  Richard Henderson  <rth@redhat.com>
3246
3247         * profile.h (profile_info): Add missing extern to declaration.
3248         * profile.c (profile_info): Define it.
3249
3250 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3251
3252         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
3253         used for DImode and TImode.
3254
3255 2002-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3256
3257         * cpplex.c (_cpp_lex_direct): When in a directive at EOF
3258         fake a newline.
3259
3260 2002-05-11  Zack Weinberg  <zack@codesourcery.com>
3261
3262         * config/rs6000/rs6000.c (rs6000_default_long_calls,
3263         rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
3264         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
3265         (rs6000_override_options): Handle -m(no-)longcall.
3266         (init_cumulative_args, output_mi_thunk): Check for both
3267         longcall and shortcall attributes on the function.
3268         (rs6000_attribute_table): Add "shortcall".
3269         (rs6000_handle_longcall_attribute): Update comment.
3270         (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
3271         altivec_expand_ternop_builtin): Add default clauses to switches
3272         to silence warnings.
3273
3274         * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
3275         rs6000_default_long_calls.  Define REGISTER_TARGET_PRAGMAS.
3276         (TARGET_OPTIONS): Add longcall and no-longcall.
3277
3278         * config/rs6000/rs6000.md (call_nonlocal_sysv,
3279         call_value_nonlocal_sysv): Split by alternatives.  One pair
3280         accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
3281         the call cookie.  The other pair accepts only LR/CTR and has
3282         no restriction.
3283
3284         * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
3285         Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
3286         tmake_file.
3287         * config/rs6000/rs6000-c.c: New file.
3288         * config/rs6000/t-rs6000-c-rule: New file.
3289         * config/rs6000/rs6000-protos.c: Add multiple-include guard.
3290         Prototype rs6000_pragma_longcall.
3291
3292         * doc/extend.texi: Document shortcall attribute.
3293         * doc/invoke.texi: Document -mlongcall, -mno-longcall.
3294
3295 2002-05-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3296
3297         * reorg.c (dbr_schedule): Remove unnecessary test.
3298
3299 Sat May 11 14:34:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
3300
3301         * i386.md (testsi to testqi spliters): New.
3302
3303         2002-01-14  Josef Zlomek  <zlomek@matfyz.cz>
3304
3305         cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
3306
3307         Wed Jan  9 2002  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
3308
3309         * basic-block.h: New flag EDGE_CAN_FALLTHRU
3310         * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
3311         that can be made fallthru.
3312
3313         Mon Nov 12 16:25:53 CET 2001  Jan Hubicka  <jh@suse.cz>
3314
3315         * cfglayout.c (cleanup_unconditional_jumps): New static function.
3316         (cfg_layout_initialize): Use it.
3317
3318 2002-05-11  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3319
3320         * config/avr/avr.c (avr_mcu_types): Update supported devices.
3321         * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
3322         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3323
3324 2002-05-11  Kazu Hirata  <kazu@cs.umass.edu>
3325
3326         * dbxout.c: Fix formatting.
3327         * dependence.c: Likewise.
3328         * df.c: Likewise.
3329         * diagnostic.c: Likewise.
3330         * doloop.c: Likewise.
3331         * dominance.c: Likewise.
3332         * doschk.c: Likewise.
3333         * dwarf2asm.c: Likewise.
3334         * dwarf2out.c: Likewise.
3335         * dwarfout.c: Likewise.
3336
3337 2002-05-10  Richard Henderson  <rth@redhat.com>
3338
3339         * final.c (end_final): Tidy whitespace.  Don't honor flag_pack_struct.
3340         Convert integers constants as needed.  Replace "nwords" field with
3341         "sizeof_bb".
3342         (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
3343         * function.h: Fix typo in comment.
3344         * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
3345
3346 2002-05-10  Roger Sayle  <roger@eyesopen.com>
3347
3348         * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
3349         into the equivalent (signed char)c > 0.
3350
3351 2002-05-10  Janis Johnson  <janis187@us.ibm.com>
3352
3353         * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
3354         (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
3355         (struct prefetch_info): Fix spelling of member bytes_accessed.
3356         (emit_prefetch_instructions): Make dump messages more regular;
3357         restructure code to add more dump messages; use new macros for
3358         heuristics. (There are no code generation changes in any of this).
3359
3360 2002-05-10  David S. Miller  <davem@redhat.com>
3361
3362         * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
3363         (struct rtx_def): Update unchanging flag comment.
3364         * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
3365         * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
3366         to be handled to INSN too.
3367         (dbr_schedule): Likewise.
3368         * resource.c (next_insn_no_annul): Likewise.
3369
3370         * cse.c (rtx_cost): Remove multiplication by power of 2 special
3371         casing.
3372
3373 2002-05-14  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3374
3375         * doc/install.texi (Specific, *-*-solaris2*): Update passus on
3376         setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
3377         (possibly) work around broken /bin/sh.
3378
3379 2002-05-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3380
3381         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
3382         . as N64/N32 libgcc_s.so subdirs.
3383
3384 2002-05-10  David S. Miller  <davem@redhat.com>
3385
3386         * config/sparc/sparc.md: Use define_constants for unspec numbers.
3387
3388         * rtl.h (struct rtx_def): Document unchanging and in_struct flags
3389         more accurately.
3390         (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
3391         comment.
3392         (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
3393         * doc/rtl.texi: Document these macros more accurately.
3394         * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
3395         JUMP_INSNs and CALL_INSNs.
3396         * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
3397         or INSN_FROM_TARGET_P if the code is appropriate.
3398
3399 2002-05-10  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3400
3401         * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
3402         before using SYMBOL_REF_FLAG (addr).
3403
3404         * config/avr/avr-protos.h (avr_io_address_p): Declare.
3405         * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
3406         Make non-static.  Update all callers.
3407         * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
3408         New insns to clear/set/test a single bit in I/O address space.
3409
3410 2002-05-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3411
3412         * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
3413
3414 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
3415
3416         * Makefile.in: Update.
3417         * c-common.c (flag_iso, flag_undef, cb_register_builtins,
3418         builtin_define_std): New.
3419         (c_common_init): Register CPP builtins callback.
3420         * c-common.h (flag_iso, flag_undef): New.
3421         * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
3422         * c-lex.c: Don't include target.h.
3423         (cb_register_builtins): Move to c-common.c.
3424         (init_c_lex): Don't register hook here.
3425         * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
3426         (cpp_define, cpp_assert): Remove.
3427         * gcc.c (cc1_options): Pass -undef to front end.
3428         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
3429         (TARGET_INITIALIZER): Update.
3430         * target.h (struct cpp_reader): Don't predeclare.
3431         (struct gcc_target): Remove cpp builtin hook.
3432         * tree.c (default_register_cpp_builtins): Remove.
3433 doc:
3434         * tm.texi: Update.
3435
3436 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
3437
3438         * cppexp.c (_cpp_expand_op_stack): Set op_limit.
3439
3440 2002-05-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3441
3442         * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
3443         (SHLIB_LINK, SHLIB_INSTALL): Adjust.
3444
3445 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
3446
3447         * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
3448         * config/sparc/libgcc-sparc-glibc.ver: New file.
3449         * config/cris/t-linux (SHLIB_MAPFILES): Remove.
3450         * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
3451
3452 2002-05-09  Jakub Jelinek  <jakub@redhat.com>
3453
3454         PR target/6429
3455         * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
3456         * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
3457         shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
3458         base multilibs.
3459         * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
3460         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
3461         * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
3462         * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
3463
3464 2002-05-09  Richard Henderson  <rth@redhat.com>
3465
3466         * config/ia64/ia64.md: Use define_constants for unspec numbers.
3467         * config/ia64/ia64.c: Likewise.
3468
3469 2002-05-09  Richard Sandiford  <rsandifo@redhat.com>
3470
3471         * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
3472         (save_restore_insns): Likewise.
3473         (mips_expand_prologue, mips_expand_epilogue): Update callers.
3474         (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
3475
3476 Thu May  9 11:50:09 2002  Jeffrey A Law  (law@redhat.com)
3477
3478         * athlon.md, k6.md, pentium.md, ppro.md): New files.
3479         * i386.md: Move scheduling information into new files.
3480
3481         * i386.md (type attribute): Add "rotate" for rotate insns.
3482         (rotate insns): Set type to "rotate".
3483         (various attributes and function units): Treat rotate like shift.
3484         (pent_pair attribute): Only rotates by one bit position are
3485         pairable.
3486         (sbb insns): Explicitly set pent_pair attribute on a couple
3487         that were missing it.
3488
3489 Thu May  9 18:29:24 2002  J"orn Rennecke <joern.rennecke@superh.com>
3490
3491         * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
3492         make sure that buffer starts on odd word address.
3493         (sh_va_arg): Skip odd fp registers when reading a double precision
3494         value.
3495
3496 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
3497
3498         * tree.h (preserve_data, object_permanent_p, type_precision):
3499         Remove.
3500
3501 2002-05-09  Neil Booth  <neil@daikokuya.demon.co.uk>
3502
3503         * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
3504         * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
3505 doc:
3506         * cpp.texi: Update for removal of obsolete features.
3507
3508 Thu May  9 07:46:18 2002  Jan Hubicka <jh@suse.cz>
3509                           Jeffrey A Law  (law@redhat.com)
3510
3511         * i386.c (ia32_use_dfa_pipeline_interface): New function.  Use
3512         the DFA interface for Pentium processors.
3513         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
3514         (attr_pent_pair, ix86_pent_find_pair): Remove.
3515         (ix86_sched_reorder_pentium): Remove.
3516         (ix86_sched_reorder): Remove reordering for Pentium.
3517         * i386.md (Pentium scheduling): Rewrite using DFA description.
3518
3519 Thu May  9 14:55:39 CEST 2002  Jan Hubicka  <jh@suse.cz>
3520
3521         * cfganal.c (can_fallthru): Fix fast path.
3522         * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
3523         with edges to the next block.
3524
3525 Thu May  9 14:52:45 CEST 2002  Jan Hubicka  <jh@suse.cz>
3526                                Pavel Nejedly  <bim@atrey.karlin.mff.cuni.cz>
3527
3528         * final.c (end_final): Use C trees to output data structures for profiling.
3529
3530         * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
3531         (profile.o): New dependency profile.h
3532         (final.o): New dependency profile.h
3533         * profile.h: New file. New global structure profile_info.
3534         * final.h (count_edges_instrumented_now): Declare.
3535         (current_function_cfg_checksum): Declare.
3536         (function_list): New structure.
3537         (functions_head, functions_tail): New static variables.
3538         (end_final): Emits more data, removed some -ax stuff.
3539         (final): Stores function names and chcksums.
3540         * gcov-io.h (__write_gcov_string): New function.
3541         (__read_gcov_string): New function.
3542         * gcov.c (read_profile): New function.
3543         (create_program_flow_graph): Uses read_profile instead of reading
3544         da_file.
3545         (read_files): Removed da_file checking, it's done by read_profile now.
3546         * libgcc2.c (bb_function_info): New structure.
3547         (bb): New field in structure, removed some -ax stuff.
3548         (__bb_exit_func): Changed structure of da_file.
3549         * profile.c (count_edges_instrumented_now): New global variable.
3550         (current_function_cfg_checksum): New global variable.
3551         (max_counter_in_program): New global variable.
3552         (get_exec_counts): New function.
3553         (compute_checksum): New function.
3554         (instrument_edges): Sets count_edges_instrumented_now.
3555         (compute_branch_probabilities): Uses get_exec_counts instead of
3556         reading da_file.
3557         (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
3558         (init_branch_prob): Removed da_file checking, done in get_exec_counts
3559         now.
3560         (end_branch_prob): Removed da_file checking, done in get_exec_counts
3561         now.
3562         * gcov.texi: Updated information about gcov file format.
3563
3564 2002-05-09  Kazu Hirata  <kazu@cs.umass.edu>
3565
3566         * sbitmap.c: Fix formatting.
3567         * scan.c: Likewise.
3568         * scan-decls.c: Likewise.
3569         * sched-deps.c: Likewise.
3570         * sched-ebb.c: Likewise.
3571         * sched-rgn.c: Likewise.
3572         * sched-vis.c: Likewise.
3573         * sdbout.c: Likewise.
3574         * sibcall.c: Likewise.
3575         * simplify-rtx.c: Likewise.
3576         * ssa.c: Likewise.
3577         * ssa-ccp.c: Likewise.
3578         * ssa-dce.c: Likewise.
3579         * stmt.c: Likewise.
3580         * stor-layout.c: Likewise.
3581         * stringpool.c: Likewise.
3582
3583 2002-05-09  David S. Miller  <davem@redhat.com>
3584
3585         * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
3586
3587 2002-05-07  David S. Miller  <davem@redhat.com>
3588
3589         * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
3590         * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
3591         * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
3592         library implementation clobbers the output before the inputs
3593         are fully consumed, use stack temporary for the output.
3594
3595 2002-05-09  Jason Thorpe  <thorpej@wasabisystems.com>
3596
3597         * config/netbsd.h (CPP_SPEC): Remove.
3598         * config/i386/netbsd-elf.h (CPP_SPEC): Define.
3599         * config/i386/netbsd.h (CPP_SPEC): Define.
3600         * config/ns32k/netbsd.h (CPP_SPEC): Define.
3601         * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
3602         * config/sparc/netbsd.h (CPP_SPEC): Define.
3603         * config/vax/netbsd.h (CPP_SPEC): Define.
3604
3605 2002-05-08  Kazu Hirata  <kazu@cs.umass.edu>
3606
3607         * read-rtl.c: Fix formatting.
3608         * real.c: Likewise.
3609         * recog.c: Likewise.
3610         * regclass.c: Likewise.
3611         * regmove.c: Likewise.
3612         * reg-stack.c: Likewise.
3613         * reload1.c: Likewise.
3614         * reload.c: Likewise.
3615         * resource.c: Likewise.
3616         * rtlanal.c: Likewise.
3617         * rtl.c: Likewise.
3618         * rtl-error.c: Likewise.
3619
3620 2002-05-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3621
3622         * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
3623         * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
3624
3625 2002-05-08  Bernd Schmidt  <bernds@redhat.com>
3626
3627         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
3628         use __SSE2__ macro instead.
3629         * config/i386/xmmintrin.h: Likewise.
3630
3631 2002-05-08  Janis Johnson  <janis187@us.ibm.com>
3632
3633         * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
3634         and use it in all invocations of these macros.  Clean up comments.
3635         * rtl.c (rtl_check_failed_flag): Add an argument for the name
3636         of the flag access macro whose check failed.
3637         * doc/rtl.texi (Flags): Document additional flag uses.
3638
3639 2002-05-08  Robert Spier <rspier@pobox.com>
3640             Neil Booth  <neil@daikokuya.demon.co.uk>
3641
3642         PR preprocessor/6521
3643         * cppfiles.c (handle_missing_header): Don't do anything
3644         different for <> includes.
3645 doc:
3646         * cppopts.texi: Update documentation for -MG.
3647
3648 2002-05-08  Neil Booth  <neil@daikokuya.demon.co.uk>
3649
3650         * cpplex.c (cpp_interpret_charconst): Truncate as well as
3651         sign-extend.
3652 doc:
3653         * cpp.texi: Clarify multichar charconst valuation.
3654
3655 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
3656
3657         * doc/invoke.texi: Document -mwindiss option.
3658
3659 2002-05-08  Jason Merrill  <jason@redhat.com>
3660
3661         * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
3662
3663         * dwarf2out.c (gen_type_die): Abort on broken recursion.
3664
3665         PR c++/6381
3666         * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
3667         REAL_CST.
3668
3669 2002-05-08  Nick Clifton  <nickc@cambridge.redhat.com>
3670
3671         * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
3672         little-endian multilibs to override arm/thumb multilibs.
3673         Do not build hardware floating point multilibs, nor apcs-26
3674         multilibs for the Thumb.
3675
3676 2002-05-08  Mark Mitchell  <mark@codesourcery.com>
3677
3678         PR c/6569.
3679         * varasm.c (mark_weak): New function.
3680         (merge_weak): Use it.  Do not call declare_weak.
3681         (declare_weak): Use merge_weak.
3682
3683 Wed May  8 13:12:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
3684
3685         * cse.c (dead_libcall_p): Update counts.
3686         (delete_trivially_dead_insns): Update call of dead_libcall_p.
3687
3688 Wed May  8 11:08:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
3689
3690         * cfglayout.c (function_tail_eff_head): Rename to ...
3691         (function_footer): ... this one.
3692         (unlink_insn_chain): New functions.
3693         (label_for_bb): Only call block_label and emit debug message.
3694         (record_effective_endpoints): Actually unlink the headers and footers.
3695         (fixup_reorder_cahin): Re-insert the unlinked sequences.
3696         (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
3697         * cfglayout.h (struct reorder_block_def): New fields footer/header;
3698         remove eff_head/eff_end.
3699         * rtl.h (set_first_insn): Declare.
3700         * emit-rtl.c (set_first_insn): New function.
3701
3702         * cfglayout.c (fixup_reorder_chain): Dump duplicated
3703         (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
3704         cfg_layout_duplicate_bb): New global function.
3705         (duplicate_insn_chain): New static function.
3706         * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
3707         cfg_layout_duplicate_bb): Declare.
3708         (struct reorder_block_def): Add "original" field.
3709         * emit-rtl.c (emit_copy_of_insn_after): New function.
3710         * rtl.h (emit_copy_of_insn_after): Declare.
3711
3712         * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
3713         (fixup_reorder_chain): properly handle edges to exit block.
3714
3715 Wed May  8 11:10:31 CEST 2002  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3716                                Jan Hubicka  <jh@suse.cz>
3717
3718         * basic-block.h (note_prediction_to_br_prob): declare.
3719         * c-semantics.c: Inlucde predit.h
3720         (expand_stmt): predict GOTO_STMT as not taken.
3721         * cfgcleanup.c: (delete_unreachable_blocks): Make global.
3722         (cleanup_cfg): Do not free tail_recursion_list.
3723         * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
3724         (flow_delete_block): Kill predictions past end of basic block.
3725         * output.h (delete_unreachable_blocks): Declare.
3726         * predict.c (predicted_by_p, process_note_predictions,
3727         process_note_prediction, last_block_p): New function.
3728         (estimate_probability): Bypass loop on PRED_CONTINUE;
3729         do not handle noreturn heuristics; kill PRED_RETURN; add
3730         PRED_EARLY_RETURN.
3731         * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
3732         PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
3733         * predict.h (IS_TAKEN): New constant.
3734         * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
3735         * rtl.c (NOTE_INSN_PREDICTION): New.
3736         * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
3737         New macro.
3738         (insn_note): add NOTE_INSN_PREDICTION.
3739         * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
3740         CFG; free tail_recursion_label_list.
3741         * stmt.c: Include predict.h;
3742         (return_prediction): New.
3743         (expand_value_return): Use it.
3744         * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
3745
3746 2002-05-08  Richard Sandiford  <rsandifo@redhat.com>
3747
3748         * config/mips/mips.md: Name the unspecs with define_constant.
3749         (*HILO_delay): Rename to 'hilo_delay' (no star).
3750         (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
3751         (reload_outdi, reload_outsi): Likewise.
3752
3753 2002-05-07  Kazu Hirata  <kazu@cs.umass.edu>
3754
3755         * toplev.c: Fix formatting.
3756
3757 2002-05-07  Janis Johnson  <janis187@us.ibm.com>
3758
3759         * config.in (ENABLE_RTL_FLAG_CHECKING): New.
3760         * configure.in (ac_rtlflag_checking): New.
3761         * doc/install.texi (--enable-checking): Document RTL flag checking.
3762
3763 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3764
3765         * c-common.c (c_common_init): Set options->unsigned_wchar.
3766         * cppinit.c (cpp_create_reader): Default unsigned_wchar,
3767         group target dependencies.
3768         (init_builtins, cpp_handle_option): Update.
3769         * cpplex.c (cpp_interpret_charconst): Update.
3770         * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
3771         signed_char to unsigned_char, group target dependencies.
3772         * defaults.h (WCHAR_UNSIGNED): Remove.
3773         * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
3774 config:
3775         * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
3776         i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
3777         i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
3778         i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
3779         sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
3780 doc:
3781         * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
3782
3783 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
3784
3785         * fixinc/inclhack.def (windiss_math1): New fix.
3786         (windiss_math2): Likewise.
3787         (windiss_valist): Likewise.
3788         * fixinc/fixincl.x: Regenerated.
3789
3790 2002-05-07  Andreas Jaeger  <aj@suse.de>
3791
3792         * genautomata.c (output_internal_min_issue_delay_func): Add
3793         ATTRIBUTE_UNUSED to avoid warning with empty dfa.
3794         (output_internal_trans_func): Likewise.
3795
3796 Tue May  7 10:06:22 2002  Jeffrey A Law  (law@redhat.com)
3797
3798         * pa.c (hppa_profile_hook): Use force_reg to get the address
3799         of the profile hook into an appropriate pseudo register.
3800
3801 2002-05-07  Mark Mitchell  <mark@codesourcery.com>
3802
3803         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
3804         (LINK_START_SPEC): Handle it.
3805         (LINK_OS_SPEC): Likewise.
3806         (CPP_SPEC): Likewise.
3807         (STARTFILE_SPEC): Likewise.
3808         (LIB_SPEC): Likewise.
3809         (ENDFILE_SPEC): Likewise.  Do not assume crtsavres.o is used on
3810         all platforms.
3811         (CRTSAVRES_DEFAULT_SPEC): New macro.
3812         (LIB_WINDISS_SPEC): New macro.
3813         (CPP_OS_WINDISS_SPEC): Likewise.
3814         (STARTFILE_WINDISS_SPEC): Likewise.
3815         (ENDFILE_WINDISS_SPEC): Likewise.
3816         (LINK_START_WINDISS_SPEC): Likewise.
3817         (LINK_OS_WINDISS_SPEC): Likewise.
3818         * config/rs6000/windiss.h: New file.
3819
3820 2002-05-07  Aldy Hernandez  <aldyh@redhat.com>
3821
3822         * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
3823
3824 2002-05-06  David S. Miller  <davem@redhat.com>
3825
3826         * config/sparc/sparc.md (shift insns): Do not mask off
3827         second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
3828         take care of it.
3829
3830 2002-05-06  Richard Henderson  <rth@redhat.com>
3831
3832         PR c++/6212
3833         * expr.c (highest_pow2_factor_for_type): New.
3834         (expand_assignment): Use it.
3835
3836 2002-05-06  Aldy Hernandez  <aldyh@redhat.com>
3837
3838         * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
3839         unspec_volatile.
3840         ("altivec_mfvscr"): Same.
3841
3842 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
3843
3844         * rtl.h (struct rtx_def): Update comments.
3845         (RTL_FLAG_CHECK[12345678]): New.  (rtl_check_failed_flag): Declare.
3846         (RTL_FLAG): New.  (CLEAR_RTX_FLAGS): New.  (flag access macros): Use
3847         RTL_FLAG_CHECK macros with list of expected RTL codes.
3848         * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
3849         (rtl_check_failed_flag): New.
3850         * reload1.c (reload): Use REG macro before changing rtx to MEM.
3851         (reload_cse_noop_set_p): Check rtx code before using access macro.
3852         * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
3853         before using access macro.
3854
3855 2002-05-06  Janis Johnson  <janis187@us.ibm.com>
3856
3857         * doc/rtl.texi (Flags): Update to reflect current usage.
3858
3859 2002-05-06  Roger Sayle  <roger@eyesopen.com>
3860
3861         PR opt/3995
3862         * fold-const.c (sign_bit_p): New function.
3863         (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
3864         (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
3865         Reapply fold when converting (A & C) == C into (A & C) != 0.
3866         (fold_binary_op_with_conditional_arg): Fix typo in comment.
3867
3868 2002-05-07  Neil Booth  <neil@daikokuya.demon.co.uk>
3869
3870         * c-common.c (warn_multichar): New.
3871         (c_common_init): Set CPP's warn_multichar.
3872         * c-common.h (warn_multichar): New.
3873         * c-decl.c (warn_multichar): Remove.
3874         * c-lex.c (lex_charconst): Update.
3875         * c-tree.h (warn_multichar): Remove.
3876         * cppexp.c (eval_token): Sign-extend charconst value.
3877         * cppinit.c (cpp_create_reader): Set warn_multichar.
3878         * cpplex.c (cpp_interpret_charconst): Don't sign-extend
3879         each character.  Update prototype.  Sign-extend the result.
3880         * cpplib.h: Fix conditions.
3881         (struct cpp_options): Add new warning flag.
3882         (cpp_interpret_charconst): Update prototype.
3883 doc:
3884         * cpp.texi: Update documentation.
3885
3886 2002-05-06  Vladimir Makarov  <vmakarov@redhat.com>
3887
3888         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
3889         Fix typo in usage of allof instead of unit.
3890
3891 2002-05-06  Richard Henderson  <rth@redhat.com>
3892
3893         * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
3894         and any jump or call for IN.
3895
3896 2002-05-06  Bernd Schmidt  <bernds@redhat.com>
3897
3898         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
3899         -msse2.
3900         * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
3901
3902 2002-05-06  Roger Sayle  <roger@eyesopen.com>
3903
3904         * fold-const.c (lshift-double): Cast the high word to an unsigned
3905         HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
3906         (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
3907         avoid compiler warning.  (fold): Remove redundant code from
3908         BIT_AND_EXPR as integer operands are canonicalized to be arg1.
3909
3910 2002-05-06  Jeff Law  <law@redhat.com>
3911
3912         * pa-protos.h (hppa_fpstore_bypass_p): Declare.
3913         * pa.c (pa_adjust_cost): Remove all true dependency cost
3914         adjustments.  Also remove support for non-DFA scheduling.
3915         * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
3916         to adjust true dependency costs.  Update various comments.
3917         (7100lc, 7200, 7300 scheduling): Simplify by combining the
3918         FP ALU & MPY units into a single unit.
3919
3920 2002-05-06  Catherine Moore  <clm@redhat.com>
3921
3922         * config/v850/v850.c (compute_register_save_size): Make sure
3923         to count all of the registers that will be saved.
3924
3925 Mon May  6 18:03:11 CEST 2002  Jan Hubicka  <jh@suse.cz>
3926
3927         * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
3928
3929 2002-05-06  David S. Miller  <davem@redhat.com>
3930
3931         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
3932         allow result to overlap input operands in memory.
3933
3934 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3935
3936 doc:
3937         * cpp.texi: Update multichar charconst docs.
3938
3939 2002-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
3940
3941         * cpplex.c (cpp_interpret_charconst): Sign-extend each
3942         character.  Don't ignore excess characters.  Treat
3943         multicharacter character constants as signed.
3944         (cpp_parse_escape): Clarify diagnostic.
3945
3946 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
3947
3948         * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
3949         use add instead of shift.
3950         (ashldi3_sp64): Likewise.
3951         (ashlsi3_const1, ashldi3_const1): Remove.
3952         * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
3953         * config/sparc/sparc.c (const1_operand): New.
3954
3955 2002-05-05  Jason Thorpe  <thorpej@wasabisystems.com>
3956
3957         * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
3958
3959 2002-05-05  Jakub Jelinek  <jakub@redhat.com>
3960
3961         PR target/6561
3962         * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
3963
3964 2002-05-05  Richard Henderson  <rth@redhat.com>
3965
3966         * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
3967         memory latency adjustments.
3968         (alpha_variable_issue): Remove.
3969         (alpha_use_dfa_pipeline_interface): New.
3970         (alpha_multipass_dfa_lookahead): New.
3971         * config/alpha/alpha.md: Remove define_function_unit scheduling;
3972         include new dfa scheduling.
3973         (attr type): Add none.
3974         (blockage): Use it.
3975         * config/alpha/ev4.md: New.
3976         * config/alpha/ev5.md: New.
3977         * config/alpha/ev6.md: New.
3978
3979 2002-05-05  David S. Miller  <davem@redhat.com>
3980
3981         * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
3982
3983 2002-05-05  Kazu Hirata  <kazu@cs.umass.edu>
3984
3985         * cse.c: Fix formatting.
3986         * emit-rtl.c: Likewise.
3987
3988 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
3989
3990         * genautomata.c (initiate_states): Add additional guard to
3991         initialize `units_array'.
3992
3993 2002-05-05  Vladimir Makarov  <vmakarov@redhat.com>
3994
3995         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
3996         process_unit_to_form_the_same_automaton_unit_lists,
3997         form_the_same_automaton_unit_lists
3998         check_unit_distributions_to_automata): New prototypes and
3999         functions.
4000         (check_automata): Rename it into `check_automata_insn_issues'.
4001         (unit_decl): New fields `the_same_automaton_unit' and
4002         `the_same_automaton_message_reported_p'.
4003         (unit_decl_t): New typedef.
4004         (the_same_automaton_lists): New gloval variable.
4005         (unit_regexp, unit_set_el, units_array, units_cmp,
4006         output_get_cpu_unit_code_func): Use the typedef.
4007         (evaluate_max_reserv_cycles): Increment
4008         `description->max_insn_reserv_cycles'.
4009         (initiate_states): Don't increment `max_cycles_num'.
4010         (transform_insn_regexps): Move code around transformation of
4011         regexps from `generate'.
4012         (generate): Remove call of `transform_insn_regexps'.
4013         (expand_automata): Call `transform_insn_regexps' and
4014         `check_unit_distributions_to_automata'.  Check errors before
4015         `generate'.
4016
4017         * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
4018         automaton `ultrasparc3_1'.
4019
4020 2002-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
4021
4022         * c-common.c (c_common_init): Set up CPP arithmetic.
4023         * cppinit.c (cpp_create_reader): Default CPP arithmetic to
4024         something reasonable for the host.
4025         (sanity_checks): Add checks.
4026         (cpp_read_main_file): Call sanity_checks() from here...
4027         (cpp_post_options): ... not here.
4028         * cpplex.c (cpp_interpret_charconst): Get max_chars right.
4029         * cpplib.h (struct cpp_options): New member int_precision.
4030
4031 2002-05-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4032
4033         * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
4034
4035 2002-05-04  David S. Miller  <davem@redhat.com>
4036
4037         * config/sparc/linux.h, config/sparc/linux64.h
4038         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
4039
4040         * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
4041         more RTX codes.
4042         * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
4043
4044         * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
4045         of SETs.
4046
4047 2002-05-05  Tim Josling  <tej@melbpc.org.au>
4048
4049         * treelang; New directory for new sample language treelang.
4050
4051 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
4052
4053         * Makefile.in (c-lex.o): Update.
4054         * c-lex.c: Include target.h.
4055         (cb_register_builtins): New.
4056         (init_c_lex): Set builtins callback.
4057         * c-lex.h (cpp_define, cpp_assert): New prototypes.
4058         * cppinit.c (init_builtins): Use callback, including for
4059         GXX_WEAK.
4060         * cpplib.h (struct cpp_callbacks): New member.
4061         * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
4062         (TARGET_INITIALIZER): Update.
4063         * target.h (struct gcc_target): New hook.
4064         * tree.c (default_register_cpp_builtins): New.
4065         * tree.h (default_register_cpp_builtins): New.
4066 doc:
4067         * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
4068
4069 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
4070
4071         * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
4072         (cpp_post_options): Move sanity checks to...
4073         (sanity_checks): New.
4074         * cpplex.c (maybe_read_ucs): Fix prototype.
4075         (parse_string, cpp_parse_escape): Cast for %c format specifier.
4076         * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
4077         if necessary.
4078
4079 2002-05-04  Bernd Schmidt  <bernds@redhat.com>
4080
4081         * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
4082         builtins.  Use V2DI patterns instead of TI for logical operations.
4083         (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
4084         Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
4085         (ix86_expand_builtins): Change the pattern used for movntdq.
4086         * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
4087         sse2_nandv2di3): New patterns.
4088         (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
4089         on operands.
4090         (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
4091         (cvtdq2pd): Correct mode on operand 1.
4092         (sse2_umulsidi3): Describe without unspec.
4093         (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
4094         machine modes.
4095         (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
4096         (ashlv2di3): Likewise, from sse2_ashlv2di3.
4097         (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
4098         ashlv4si3, ashlv2di3): Use SImode for shift count.
4099         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
4100         lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
4101         New patterns.
4102         * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
4103         New typedefs.
4104         (__m128i, __m128d): New macros.
4105         (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
4106         _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
4107         _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
4108         _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
4109         _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
4110         _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
4111         _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
4112         _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
4113         _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
4114         _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
4115         _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
4116         _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
4117         _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
4118         _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
4119         _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
4120         _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
4121         _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
4122         _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
4123         _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
4124         _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
4125         _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
4126         _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
4127         _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
4128         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
4129         _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
4130         _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
4131         _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
4132         _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
4133         _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
4134         _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
4135         _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
4136         _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
4137         _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
4138         _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
4139         _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
4140         _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
4141         _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
4142         functions.
4143         (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
4144         _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
4145
4146 2002-05-04  Kazu Hirata  <kazu@cs.umass.edu>
4147
4148         * dwarf2out.c: Fix formatting.
4149         * varasm.c: Likewise.
4150
4151 2002-05-04  David Edelsohn  <edelsohn@gnu.org>
4152
4153         PR c/6543
4154         * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
4155         clobber and use result as temporary value.
4156
4157 Sat May  4 13:20:54 CEST 2002  Jan Hubicka  <jh@suse.cz>
4158
4159         * expr.c (force_operand): Use expand_simple_* to handle more
4160         cases.
4161
4162 2002-05-04  Neil Booth  <neil@daikokuya.demon.co.uk>
4163
4164         * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
4165         and sign-extension.
4166         (lex_charconst): Update for change in prototype of
4167         cpp_interpret_charconst.  Extend from cppchar_t to HOST_WIDE_INT
4168         appropriately.
4169         * cpphash.h (BITS_PER_CPPCHAR_T): New.
4170         * cppinit.c (cpp_create_reader): Initialize them for no
4171         change in semantics.
4172         (cpp_post_options): Add sanity checks.
4173         * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
4174         and truncation issues.  Calculate in type cppchar_t.
4175         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
4176         (cpp_interpret_charconst): Calculate in type cppchar_t.  Handle
4177         run-time dependent precision correctly.  Return whether the
4178         result is signed or not.
4179         * cpplib.c (dequote_string): Use cppchar_t; update.
4180         * cpplib.h (cppchar_signed_t): New.
4181         struct cpp_options): New precision members.
4182         (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
4183         * cppexp.c (eval_token): Update.
4184
4185 2002-05-03  David S. Miller  <davem@redhat.com>
4186
4187         * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
4188         * config/sparc/sparc.c (sparc_rtx_costs): New function
4189         implementing RTX_COSTS and CONST_COSTS.
4190         * config/sparc/sparc.h (CONST_COSTS): Delete.
4191         (RTX_COSTS_CASES): Define.
4192         (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
4193         the work.
4194
4195         * config/sparc/sparc.md (DFA schedulers): Split out...
4196         * config/sparc/cypress.md, config/sparc/hypersparc.md,
4197         config/sparc/sparclet.md, config/sparc/supersparc.md,
4198         config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
4199
4200         * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
4201         checks on it, always defined for Sparc.
4202
4203         * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
4204         Tweak, and add more detailed comments.
4205
4206 2002-05-03  Zack Weinberg  <zack@codesourcery.com>
4207
4208         * Re-apply patch accidentally reverted with
4209         DFA scheduler merge: remove all rules and variables to slurp
4210         source files out of libiberty and rebuild them with HOST_CC.
4211         ($(HOST_PREFIX_1)varray.o): New rule.
4212         (genattrtab rule): Word wrap.
4213
4214 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
4215
4216         * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
4217         (CPP_SUBTARGET_SPEC): Define.
4218         (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
4219         cpp_subtarget specs.
4220         (CPP_SPEC): Redefine to include %(cpp_subtarget).
4221
4222 2002-05-03  David S. Miller  <davem@redhat.com>
4223
4224         * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
4225         * target.h (struct gcc_target): Delete cycle_display member.
4226
4227         * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
4228         (rtx_needs_barrier): Delete reference to cycle_display unspec.
4229         (ia64_sched_reorder2): Mention need for cycle display handling
4230         once such notes exist.
4231
4232 2002-05-03  Richard Henderson  <rth@redhat.com>
4233
4234         * real.c (etoasc): Strip most trailing zeros for clarity.
4235         * sched-vis.c: Include real.h.
4236         (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
4237         * Makefile.in (sched-vis.o): Add real.h.
4238
4239 2002-05-03  David S. Miller  <davem@redhat.com>
4240
4241         * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
4242         no longer needed.
4243
4244 2002-05-03  Aldy Hernandez  <aldyh@redhat.com>
4245
4246         * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
4247         when we get an out of range literal.
4248         (altivec_expand_ternop_builtin): Same.
4249         (altivec_expand_unop_builtin): Same.
4250         (altivec_expand_builtin): Same, for dss.
4251         (altivec_expand_builtin): Use trees instead of rtl when
4252         determining literal argument validity.
4253
4254 2002-05-03  David S. Miller  <davem@redhat.com>
4255
4256         Delete cycle display scheduling hook.
4257         * config/ia64/ia64.c (ia64_cycle_display,
4258         TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
4259         (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
4260         and use emit_insn_before instead of ia64_emit_insn_before.
4261         * config/ia64/ia64.md (unspec usage): Delete cycle display.
4262         (cycle_display): Delete insn pattern.
4263         * config/sparc/sparc.md (unspec usage): Delete cycle display.
4264         (cycle_display): Delete insn pattern.
4265         * config/sparc/sparc.c (sparc_cycle_display,
4266         TARGET_SCHED_CYCLE_DISPLAY): Delete.
4267         * doc/md.texi (cycle_display): Don't mention.
4268         * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
4269
4270 2002-05-03  Richard Henderson  <rth@redhat.com>
4271
4272         * recog.c (store_data_bypass_p, if_test_bypass_p): New.
4273         * recog.h: Declare them.
4274
4275         * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
4276         * config/sparc/sparc.md: Use store_data_bypass_p instead.
4277         * config/sparc/sparc-protos.h: Update.
4278
4279 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
4280
4281         * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
4282         -D__arch64__.  Add -D_LP64.
4283         (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
4284         from sparc.h.
4285         (CPP_ARCH64_SPEC): Likewise.
4286         (NO_BUILTIN_PTRDIFF_TYPE): Undef.
4287         (NO_BUILTIN_SIZE_TYPE): Undef.
4288
4289 2002-05-03  Vladimir Makarov  <vmakarov@redhat.com>
4290
4291         * genautomata.c (min_issue_delay_pass_states): Change return type
4292         in the prototype.
4293         (min_issue_delay_pass_states): Change the algorithm.
4294         (min_issue_delay): Set up min_insn_issue_delay for the state.
4295         (output_min_issue_delay_table): Interchange the nested loops and
4296         and initiate min_insn_issue_delay for states.
4297
4298 Fri May  3 22:59:15 CEST 2002  Jan Hubicka  <jh@suse.cz>
4299
4300         * cfgcleanup.c (try_optimize_cfg):  Call merge_block only when
4301         jump is simplejump.
4302
4303 Fri May  3 22:53:37 CEST 2002  Jan Hubicka  <jh@suse.cz>
4304
4305         * i386.c  (expand_movstr, expand_clrstr): Fix inline-all-stringops
4306         sequence.
4307
4308 2002-05-03  Richard Henderson  <rth@redhat.com>
4309
4310         PR opt/6534
4311         * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
4312         noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
4313         noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
4314         code before JUMP, not EARLIEST.
4315
4316 2002-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
4317
4318         * c-format.c (check_format_info_main): Don't check for presence of
4319         parameter for * width until after operand number has been read,
4320         and only check for it if format parameters are available.
4321         Fixes PR c/6547.
4322
4323 2002-05-03  Jason Thorpe  <thorpej@wasabisystems.com>
4324
4325         * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
4326         (LINK_SPEC): Undef before defining.
4327
4328 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
4329
4330         PR preprocessor/6489
4331         * tradcpp.c (fixup_newlines): New.
4332         (main, finclude): Use it.
4333
4334 2002-05-03  Richard Sandiford  <rsandifo@redhat.com>
4335
4336         * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
4337         * config/mips/mips.c (mips_unique_section): Strip encoding from
4338         decl name.
4339
4340 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
4341
4342         * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
4343         mode.
4344
4345 2002-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4346
4347         * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
4348         (Specific): Removed buildstats references.
4349         (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
4350         (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
4351         Accomodate Solaris versions beyond 8.
4352         (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
4353         (Specific, *-*-solaris2.8): Removed, obsolete.
4354
4355 2002-05-03  Jakub Jelinek  <jakub@redhat.com>
4356
4357         PR target/6542
4358         * config/sparc/sparc.h (leaf_reg_remap): Remove const.
4359         (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
4360         fill leaf_reg_remap with identity.
4361         * config/sparc/sparc.c (leaf_reg_remap): Remove const.
4362
4363 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
4364
4365         * config/h8300/crti.asm: Remove trailing spaces.
4366         * config/h8300/h8300.c: Likewise.
4367         * config/h8300/lib1funcs.asm: Likewise.
4368
4369 2002-05-02  Jason Merrill  <jason@redhat.com>
4370
4371         * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
4372         * c-decl.c (c_init_decl_processing): Use it.
4373         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
4374         * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
4375         * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
4376
4377 2002-05-03  Kazu Hirata  <kazu@cs.umass.edu>
4378
4379         * regrename.c: Fix formatting.
4380         * tree.c: Likewise.
4381
4382 Fri May  3 13:34:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
4383
4384         * i386.md (attribute memory): Handle compares properly.
4385
4386 Fri May  3 10:51:38 CEST 2002  Jan Hubicka  <jh@suse.cz>
4387
4388         * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
4389         to none.
4390
4391 2002-05-02  Kazu Hirata  <kazu@cs.umass.edu>
4392
4393         * function.c: Fix formatting.
4394
4395 2002-05-02  Jan Hubicka  <jh@suse.cz>
4396
4397         * haifa-sched.c (schedule_insn): Print table of instructions and
4398         reservations.
4399         (sched_block): Do not print ready list at verbosity level 1.
4400         * sched-vis.c (print_insn): Make global.
4401         * sched-ebb.c (ebb_print_insn): Rename from...
4402         (print_insn): ... this one.
4403         * sched-int.h (print_insn): Declare
4404
4405 2002-05-02  Richard Henderson  <rth@redhat.com>
4406
4407         * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
4408         emitted by cycle_display.
4409
4410 2002-05-02  Loren J. Rittle  <ljrittle@acm.org>
4411
4412         * doc/install.texi (*-*-freebsd*): Update to latest status.
4413
4414 2002-05-02  Jakub Jelinek  <jakub@redhat.com>
4415
4416         PR target/6540
4417         * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
4418         * config/float-sparc.h: Assume 128-bit long double if
4419         __LONG_DOUBLE_128__ is defined.
4420
4421 2002-05-02  Vladimir Makarov  <vmakarov@redhat.com>
4422
4423         * genattrtab.c (write_function_unit_info): Add a dummy element
4424         when num_units == 0.
4425
4426 2002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4427
4428         * predict.c: (propagate_freq, estimate_bb_frequencies): Use
4429         TYPE_MODE (double_type_node) instead of DFmode.
4430
4431 Thu May  2 19:50:04 CEST 2002  Jan Hubicka  <jh@suse.cz>
4432
4433         * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
4434         jumps post reload.
4435         * toplev.c (rest_of_compilation): Revert Richard's patch.
4436
4437 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4438
4439         * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
4440
4441 2002-05-02  Catherine Moore  <clm@redhat.com>
4442
4443         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
4444
4445 2002-05-02  Kazu Hirata  <kazu@hxi.com>
4446
4447         * combine.c: Fix comment typos.
4448         * expr.c: Likewise.
4449         * genautomata.c: Likewise.
4450         * stmt.c: Likewise.
4451         * tree.h: Likewise.
4452
4453 2002-05-02  Joseph S. Myers  <jsm28@cam.ac.uk>
4454
4455         * doc/install.texi: State GNAT version requirements.
4456
4457 2002-05-02  Nick Clifton  <nickc@cambridge.redhat.com>
4458
4459         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
4460         of the frame pointer or arg pointer register which strict register
4461         checking is not enabled.
4462
4463 2002-05-02  Aldy Hernandez  <aldyh@redhat.com>
4464
4465         * gcc.dg/altivec-8.c: New.
4466
4467         * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
4468         PRE_INC and PRE_DEC for altivec modes.
4469
4470 2002-05-01  Bruce Korb  <bkorb@gnu.org>
4471
4472         * fixinc/check.tpl(set-writable): make sure the function exists first
4473         * fixinc/inclhack.def(alpha_assert): fix test_text
4474         * fixinc/tests/base/assert.h: add in missing result
4475
4476 2002-05-01  Jeff Law  <law@redhat.com>
4477
4478         * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
4479         'T' constraint.
4480
4481 2002-05-01  Joel Brobecker  <brobecker@gnat.com>
4482
4483         * dbxout.c (dbxout_type): Emit size information for range types,
4484         as well, but only when using GDB extensions.
4485
4486 2002-05-01  Richard Henderson  <rth@redhat.com>
4487
4488         * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
4489         target-independent gnu binutils date test.
4490
4491 2002-05-01  Richard Henderson  <rth@redhat.com>
4492
4493         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
4494         info before expunging the block.
4495
4496 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
4497
4498         * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
4499         (cpp_post_options): ...but here.  Disable -dD, -dN and -dI when
4500         -M -or -MM is in effect.
4501
4502 2002-05-01  Zack Weinberg  <zack@codesourcery.com>
4503
4504         * config.gcc: Correct test of --enable-obsolete.  Obsolete all
4505         A29k configurations.
4506         * doc/install.texi: Update to match.
4507
4508 2002-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4509
4510         PR bootstrap/6514
4511         * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
4512         for duplicates. Always loop over whole list.
4513
4514 Wed May  1 10:32:37 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4515
4516         * reload.c (find_reloads, case 'p'): Set BADOP to 0.
4517
4518 2002-05-01      Joel Sherrill <joel@OARcorp.com>
4519
4520         * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
4521         support routines.
4522
4523 2002-05-01      Joel Sherrill <joel@OARcorp.com>
4524
4525         * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
4526
4527 2002-05-01  David Edelsohn  <edelsohn@gnu.org>
4528
4529         * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
4530         (nabs_nopower): Same.
4531         (floatdisf2): New pattern.
4532         (absdi2): Convert to define_insn_and_split.
4533         (nabsdi2): Same.
4534         (trunctfsf2): Same.
4535         (floatditf2): Same.
4536         (floatsitf2): Same.
4537         (fix_trunctfdi2): Same.
4538         (fix_trunctfsi2): Same.
4539
4540 2002-05-01  Joseph S. Myers  <jsm28@cam.ac.uk>
4541
4542         * doc/install.texi: Update Texinfo version requirement
4543         documentation.
4544
4545 2002-05-01  Jakub Jelinek  <jakub@redhat.com>
4546
4547         PR target/6512, PR target/5628
4548         * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
4549         when memory is not aligned.
4550         (movdf_insn_v9only_vis): Likewise.
4551         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
4552         temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
4553         (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
4554
4555 2002-05-01  Aldy Hernandez  <aldyh@redhat.com>
4556
4557         * gcc.dg/altivec-7.c: New.
4558
4559         * config/rs6000/altivec.h: Cleanup.
4560
4561 2002-04-30  Aldy Hernandez  <aldyh@redhat.com>
4562
4563         * doc/invoke.texi (Option Summary): Add -mvrsave=.
4564         (RS/6000 and PowerPC Options): Document -mvrsave=.
4565
4566         * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
4567         (rs6000_altivec_vrsave_string): Same.
4568         (rs6000_override_options): Call rs6000_parse_vrsave_option.
4569         (rs6000_parse_vrsave_option): New.
4570         (rs6000_stack_info): Only generate vrsave instructions when
4571         TARGET_ALTIVEC_VRSAVE.
4572
4573         * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
4574         (rs6000_altivec_vrsave_string): Define extern.
4575         (rs6000_altivec_vrsave): Same.
4576         (TARGET_ALTIVEC_VRSAVE): New.
4577
4578 2002-04-30  Richard Henderson  <rth@redhat.com>
4579
4580         PR opt/6516
4581         * toplev.c (rest_of_compilation): Don't run cross-jump before
4582         bb-reorder.
4583
4584 2002-04-30  Tom Rix  <trix@redhat.com>
4585
4586         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
4587         check which_alternative.
4588
4589 2002-04-30  Kazu Hirata  <kazu@hxi.com>
4590
4591         * cpplex.c: Fix comment formatting.
4592         * function.c: Likewise.
4593         * integrate.c: Likewise.
4594         * regrename.c: Likewise.
4595         * sibcall.c: Likewise.
4596         * simplify-rtx.c: Likewise.
4597         * tree-inline.c: Likewise.
4598
4599 2002-04-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4600
4601         * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
4602         hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
4603         hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
4604         hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
4605         * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
4606         * pa/x-ada: New file.  Define ADA_CFLAGS.
4607
4608 2002-04-30  Hans-Peter Nilsson  <hp@bitrange.com>
4609
4610         * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
4611         from MMIX_LAST_REGISTER_FILE_REGNUM.
4612         (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
4613         (struct machine_function): New member highest_saved_stack_register
4614         previously static variable in mmix.c.
4615         (MACHINE_DEPENDENT_REORG): Define.
4616         * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
4617         (MMIX_OUTPUT_REGNO): New.
4618         (mmix_target_asm_function_prologue): Move calculation of last used
4619         saved-stack-register into...
4620         (mmix_machine_dependent_reorg): New function.  Update to also handle
4621         !TARGET_ABI_GNU.
4622         (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
4623         register names, simplify somewhat by new variable regno.
4624         <case 'p'>: Remove fixed FIXME.  Always emit highest used saved
4625         register.
4626         (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
4627         emitting register names.
4628         (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
4629         (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
4630         Remove fixed FIXME.
4631         * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
4632         Declare.
4633
4634         * config/mmix/mmix.md ("divmoddi4"): Update head comment.
4635
4636 2002-04-30  Richard Henderson  <rth@redhat.com>
4637
4638         * config/sparc/sparc.c (emit_soft_tfmode_libcall,
4639         emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
4640         emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
4641         emit_tfmode_cvt): New.
4642         * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
4643         trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
4644         fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
4645         addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
4646         * config/sparc/sparc-protos.h: Update.
4647
4648 2002-04-30  Janis Johnson  <janis187@us.ibm.com>
4649
4650         * install.texi (Final install): Add to the list of info to include
4651         in a report of a successful bootstrap, and add link to 3.1 list.
4652
4653 Tue Apr 30 19:15:36 CEST 2002  Jan Hubicka  <jh@suse.cz>
4654
4655         * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
4656         (mode): Add vector modes
4657         (i387): Kill attribute.
4658         (unit): New attribute.
4659         (length_immediate): Grok new types.
4660         (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
4661         (modrm): Use "unit".
4662         (memory): Handle MMX/SSE properly.
4663         (scheduling descriptions): Kill uses of fop1.
4664         (sse, mmx, fp patterns): Set type and mode properly.
4665
4666 Tue Apr 30 09:31:59 2002  Jeffrey A Law  (law@redhat.com)
4667
4668         * pa.c (override_options): Default to PA8000 scheduling.
4669         * doc/invoke.texi (HP-PA options): Mention newly added 7300
4670         scheduling parameter.
4671
4672         * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
4673         handling of double precision multiplies.
4674
4675         * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
4676         fpdiv and fpsqrt instructions.
4677         (7200 & 7300 scheduling): Fix typo in handling of
4678         store-load and store-store penalties.
4679
4680 2002-04-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4681
4682         * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
4683         mips.  Add two missing commas.
4684
4685 2002-04-30  Paolo Carlini  <pcarlini@unitus.it>
4686
4687         * doc/contrib.texi (Contributors): Update Paolo Carlini's
4688         and Benjamin Kosnik's entries.
4689
4690 2002-04-29  David S. Miller  <davem@redhat.com>
4691
4692         * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
4693         SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
4694         * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
4695         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
4696
4697 2002-04-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4698
4699         * combine.c (find_split_point): Use gen_int_mode.
4700
4701 2002-04-29  Vladimir Makarov  <vmakarov@redhat.com>
4702
4703         Merging code from dfa-branch:
4704
4705         2002-04-24  Vladimir Makarov  <vmakarov@redhat.com>
4706
4707         * genautomata.c (output_reserv_sets): Fix typo.
4708
4709         2002-04-23  Vladimir Makarov  <vmakarov@redhat.com>
4710
4711         * genautomata.c (output_reserv_sets): Remove
4712         next_cycle_output_flag.
4713
4714         Thu Apr 18 08:57:06 2002  Jeffrey A Law  (law@redhat.com)
4715
4716         * sched-rgn.c (init_ready_list): Make the DFA code handle
4717         USE/CLOBBER insns in the same way as the traditional
4718         scheduler.
4719         (new_ready): Similarly..
4720
4721         2002-04-17  Vladimir Makarov  <vmakarov@redhat.com>
4722
4723         * haifa-sched.c (schedule_block): Change the DFA state only after
4724         issuing insn.
4725
4726         Wed Apr 17 15:38:36 2002  Jeffrey A Law  (law@redhat.com)
4727
4728         * pa.c (hppa_use_dfa_pipeline_interface): New function.
4729         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
4730         (override_options): Add PA7300 scheduling support.
4731         (pa_adjust_cost): Update various comments.  Properly
4732         handle anti and output dependencies when using the
4733         DFA scheduler.
4734         (pa_issue_rate): Add PA7300 scheduling support.
4735         (pa_can_combine_p): Call extract_insn before calling
4736         constrain_operands (taken from mainline tree).
4737         * pa.h (enum processor_type): Add PROCESSOR_PA7300.
4738         * pa.md (cpu attr): Add 7300.  Rewrite pipeline
4739         descriptions using DFA descriptions.  Add PA7300
4740         scheduling support.
4741
4742         2002-03-30  David S. Miller  <davem@redhat.com>
4743
4744         Add UltraSPARC-III DFA scheduling support.
4745         * config/sparc/sparc.md (define_attr type): Add fpcrmove.
4746         Update FP conditional move on register insn patterns to use it, as
4747         appropriate.
4748         (define_attr cpu): Add ultrasparc3.
4749         (define_attr us3load_type): New, update integer load patterns to
4750         set it, as appropriate.
4751         (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
4752         (rest): Add UltraSPARC3 scheduling description.
4753         * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
4754         (PROCESSOR_ULTRASPARC3): New.
4755         ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
4756         ({ASM,CPP}_CPU_SPEC): Likewise.
4757         (REGISTER_MOVE_COST): Likewise.
4758         (RTX_COSTS): Likewise.
4759         * config/sparc/sparc.c (sparc_override_options,
4760         sparc_initialize_trampoline, sparc64_initialize_trampoline,
4761         sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
4762         sparc_issue_rate): Likewise.
4763         * config/sparc/sol2.h: Likewise.
4764         * config/sparc/sol2-sld-64.h: Likewise.
4765         * config/sparc/linux64.h: Likewise.
4766
4767         2002-03-22  Vladimir Makarov  <vmakarov@redhat.com>
4768
4769         * doc/md.texi: Add comments about usage the latency time for the
4770         different dependencies and about case when two or more conditions
4771         in different define_insn_reservations returns TRUE for an insn.
4772
4773         * doc/md.texi: Add reference for automaton based pipeline
4774         description.
4775
4776         2002-03-04  Vladimir Makarov  <vmakarov@redhat.com>
4777
4778         * doc/passes.texi: Add missed information about genattrtab.
4779
4780         2002-03-01  Vladimir Makarov  <vmakarov@redhat.com>
4781
4782         * genautomata.c (output_automata_list_transition_code): Check
4783         automata_list on NULL.
4784
4785         2002-02-28  Vladimir Makarov  <vmakarov@redhat.com>
4786
4787         * genautomata.c (output_insn_code_cases,
4788         output_automata_list_min_issue_delay_code,
4789         output_automata_list_transition_code,
4790         output_automata_list_state_alts_code): Comment the functions.
4791
4792         2002-02-22  Vladimir Makarov  <vmakarov@redhat.com>
4793
4794         * genautomata.c (automata_list_el_t): New typedef.
4795         (get_free_automata_list_el,free_automata_list_el,
4796         free_automata_list, automata_list_hash, automata_list_eq_p,
4797         initiate_automata_lists, automata_list_start, automata_list_add,
4798         automata_list_finish, finish_automata_lists,
4799         output_insn_code_cases, output_automata_list_min_issue_delay_code,
4800         output_automata_list_transition_code,
4801         output_automata_list_state_alts_code, add_automaton_state,
4802         form_important_insn_automata_lists): New functions and prototypes.
4803         (insn_reserv_decl): Add members important_automata_list and
4804         processed_p.
4805         (ainsn): Add members important_p.
4806         (automata_list_el): New structure.
4807         (first_free_automata_list_el, current_automata_list,
4808         automata_list_table): New global variables.
4809         (create_ainsns): Initiate member important_p.
4810         (output_internal_min_issue_delay_func): Generate the switch and
4811         call output_insn_code_cases.
4812         (output_internal_trans_func, output_internal_state_alts_func):
4813         Ditto.
4814         (generate): Call initiate_automata_lists.
4815         (automaton_states): New global variable.
4816         (expand_automata): Call form_important_insn_automata_lists.
4817         (write_automata): Call finish_automata_lists.
4818
4819         2002-02-21  Vladimir Makarov  <vmakarov@redhat.com>
4820
4821         * genautomata.c (add_excls, add_presence_absence): Check that
4822         cpu units in the sets belong the same automaton.
4823
4824         * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
4825         about that cpu units in the sets belong the same automaton.
4826
4827         * doc/md.texi: Ditto.
4828
4829         2001-12-20  Naveen Sharma  <naveens@noida.hcltech.com>
4830                     Nitin Gupta  <niting@noida.hcltech.com>
4831
4832         * config/sh/sh.c (sh_use_dfa_interface): New function.
4833
4834         (sh_issue_rate): New Function.
4835         TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
4836         TARGET_SCHED_ISSUE_RATE: define.
4837
4838         * config/sh/sh.md: Add DFA based pipeline description for SH4.
4839
4840         (define_attr insn_class): New attribute used for DFA
4841          scheduling.
4842         (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
4843         (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
4844          cmpeqdi_t): Likewise.
4845
4846         (add,addc1,addsi3,subc,subc1,*subsi3_internal,
4847          negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
4848          ex_group.
4849         (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
4850
4851         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
4852
4853         * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
4854         break.
4855
4856         2001-10-03  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
4857
4858         * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
4859         (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
4860         necessary.
4861         (output_dfa_start_func): Initiate new variable insn_codes_length,
4862         (write_automata): Output definition of the new variable.
4863
4864         2001-10-02  David S. Miller  <davem@redhat.com>
4865
4866         * haifa-sched.c (advance_one_cycle): New function.
4867         (schedule_block): Use it.
4868         (queue_to_ready): Use it, and also make sure to advance the DFA
4869         state on all stall cycles, not just those where insn_queue links
4870         are found.
4871
4872         2001-10-02  Richard Sandiford  <rsandifo@redhat.com>
4873
4874         * haifa-sched.c (max_issue): Remove last_p argument.  Only return
4875         non-zero if the highest-priority instruction could be scheduled.
4876         (choose_ready): Remove last argument from max_issue call.
4877
4878         2001-09-28  David S. Miller  <davem@redhat.com>
4879
4880         * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
4881         ultrasparc and 3 for other multi-issue sparcs.
4882
4883         2001-09-27  David S. Miller  <davem@redhat.com>
4884
4885         * config/sparc/sparc.md (cycle_display): New pattern.
4886         * config/sparc/sparc.c (sparc_cycle_display): New.
4887         (TARGET_SCHED_CYCLE_DISPLAY): Set it.
4888
4889         2001-09-25  David S. Miller  <davem@redhat.com>
4890
4891         Convert all of Sparc scheduling to DFA
4892         * config/sparc/sparc.md: Kill all define_function_unit
4893         directives and replace with DFA equivalent.
4894         * config/sparc/sparc.c (ultrasparc_adjust_cost,
4895         mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
4896         ultra_fpmode_conflict_exists, ultra_find_type,
4897         ultra_build_types_avail, ultra_flush_pipeline,
4898         ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
4899         ultrasparc_variable_issue, ultrasparc_sched_init,
4900         sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
4901         ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
4902         ultra_cur_hist, ultra_cycles_elapsed): Kill.
4903         (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
4904         ultrasparc_store_bypass_p): New.
4905         * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
4906         Declare.
4907
4908         2001-09-24  David S. Miller  <davem@redhat.com>
4909
4910         * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
4911         ready->vec[foo] not ready[foo].
4912
4913         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
4914
4915         * doc/md.texi: Correct examples for define_insn_reservations
4916         `mult' and `div'.
4917
4918         2001-09-07  Vladimir Makarov  <vmakarov@redhat.com>
4919
4920         * genautomata.c (create_automata): Print message about creation of
4921         each automaton.
4922         (generate): Remove printing meease about creation of
4923         automata.
4924
4925         2001-09-05  David S. Miller  <davem@redhat.com>
4926
4927         * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
4928         * config/sparc/linux64.h: Likewise.
4929
4930         2001-08-31  Vladimir Makarov  <vmakarov@redhat.com>
4931
4932         * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
4933         schedule_block, sched_init, sched_finish): Add missed calls of
4934         use_dfa_pipeline_interface.
4935
4936         * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
4937         Ditto.
4938
4939         * sched-vis.c (get_visual_tbl_length): Ditto.
4940
4941         2001-08-27  Richard Henderson  <rth@redhat.com>
4942
4943         * genattr.c (main): Emit state_t even when not doing scheduling.
4944
4945         2001-08-27  Richard Henderson  <rth@redhat.com>
4946
4947         * genautomata.c (expand_automata): Always create a description.
4948
4949         2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
4950
4951         * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
4952         PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
4953         AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
4954         RTL constructions.
4955
4956         * genattr.c (main): New variable num_insn_reservations.  Increase
4957         it if there is DEFINE_INSN_RESERVATION.  Output automaton based
4958         pipeline hazard recognizer interface.
4959
4960         * genattrtab.h: New file.
4961
4962         * genattrtab.c: Include genattrtab.h.
4963         (attr_printf, check_attr_test, make_internal_attr,
4964         make_numeric_value): Move protypes into genattrtab.h.  Define them
4965         as external.
4966         (num_dfa_decls): New global variable.
4967         (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
4968         DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
4969         DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
4970         DEFINE_INSN_RESERVATION.  Call expand_automata and write_automata.
4971
4972         * genautomata.c: New file.
4973
4974         * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
4975
4976         * sched-int.h: (curr_state): Add the external definition for
4977         automaton pipeline interface.
4978         (haifa_insn_data): Add comments for members blockage and units.
4979
4980         * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
4981         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
4982         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
4983         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
4984         TARGET_SCHED_DFA_POST_CYCLE_INSN,
4985         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
4986         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
4987         macros.
4988         (TARGET_SCHED): Use the new macros.
4989
4990         * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
4991         dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
4992         first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
4993         dfa_bubble): New members in gcc_target.sched.
4994
4995         * haifa-sched.c (insert_schedule_bubbles_p): New variable.
4996         (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
4997         (insn_queue): Redefine it as pointer to array.
4998         (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
4999         INSN_QUEUE_SIZE.
5000         (max_insn_queue_index_macro_value): New variable.
5001         (curr_state, dfa_state_size, ready_try): New varaibles for
5002         automaton interface.
5003         (ready_element, ready_remove, max_issue): New function prototypes
5004         for automaton interface.
5005         (choose_ready): New function prototype.
5006         (insn_unit, blockage_range): Add comments.
5007         (unit_last_insn, unit_tick, unit_n_insns): Define them for case
5008         FUNCTION_UNITS_SIZE == 0.
5009         (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
5010         actual_hazard, potential_hazard): Add comments.
5011         (insn_cost): Use cost -1 as undefined value.  Remove
5012         LINK_COST_ZERO and LINK_COST_FREE.  Add new code for automaton
5013         pipeline interface.
5014         (ready_element, ready_remove): New functions for automaton
5015         interface.
5016         (schedule_insn): Add new code for automaton pipeline interface.
5017         (queue_to_ready): Add new code for automaton pipeline interface.
5018         Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
5019         (debug_ready_list): Print newline when the queue is empty.
5020         (max_issue): New function for automaton pipeline interface.
5021         (choose_ready): New function.
5022         (schedule_block): Add new code for automaton pipeline interface.
5023         Print ready list before scheduling each insn.
5024         (sched_init): Add new code for automaton pipeline interface.
5025         Initiate insn cost by -1.
5026         (sched_finish): Free the current automaton state and finalize
5027         automaton pipeline interface.
5028
5029         * sched-rgn.c: Include target.h.
5030         (init_ready_list, new_ready, debug_dependencies): Add new code for
5031         automaton pipeline interface.
5032
5033         * sched-vis.c: Include target.h.
5034         (get_visual_tbl_length): Add code for automaton interface.
5035         (target_units, print_block_visualization):  Add comments.
5036
5037         * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
5038         USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
5039         (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
5040         (getruntime.o, genautomata.o): New entries.
5041         (genattrtab.o): Add new dependency file genattrtab.h.
5042         (genattrtab): Add new dependencies.  Link it with `libm.a'.
5043         (getruntime.o, hashtab.o): New entries for canadian cross.
5044
5045         * doc/md.texi: Description of automaton based model.
5046
5047         * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
5048         Add comments.
5049         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
5050         TARGET_SCHED_DFA_PRE_CYCLE_INSN,
5051         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
5052         TARGET_SCHED_DFA_POST_CYCLE_INSN,
5053         TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
5054         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
5055         TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
5056         hook descriptions.
5057         (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
5058         MAX_DFA_ISSUE_RATE): New macro descriptions.
5059
5060         * doc/contrib.texi: Add dfa based scheduler contribution.
5061
5062         * doc/gcc.texi: Add more information about genattrtab.
5063
5064 Mon Apr 29 17:19:10 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5065
5066         * reload1.c (eliminate_regs, case SUBREG): Fix typo in
5067         adjust_address_nv call.
5068
5069 2002-04-29  Janis Johnson  <janis187@us.ibm.com>
5070
5071         * doc/install.texi (Testing): Provide additional information, and
5072         a stronger encouragement, for running the testsuites.
5073
5074 2002-04-29  DJ Delorie  <dj@redhat.com>
5075
5076         * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
5077         given in upper case.
5078
5079 2002-04-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5080
5081         * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
5082         Solaris 2 <widec.h> if missing.
5083         * fixinc/fixincl.x: Regenerate.
5084         * fixinc/tests/base/widec.h: New file.
5085
5086 2002-04-29  Nick Clifton  <nickc@cambridge.redhat.com>
5087
5088         * toplev.c (f_options): Add "profile" switch so that
5089         -fno-profile can be used to disable -p.
5090
5091 2002-04-29  Bernd Schmidt  <bernds@redhat.com>
5092
5093         * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
5094         UV2DImode.
5095         * tree.c (build_common_tree_nodes_2): Likewise.
5096         * tree.h (enum tree_index): Likewise.
5097         (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
5098
5099         * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
5100         entries.
5101         (init_mmx_sse_builtins): Initialize SSE2 builtins.
5102         (ix86_expand_builtin): Add support for SSE2 builtins.
5103         * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
5104         (VALID_SSE_REG_MODE): Use it.
5105         (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
5106         (enum ix86_builtins): Add SSE2 builtins.
5107         * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
5108         movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
5109         addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
5110         divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
5111         sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
5112         vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
5113         vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
5114         sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
5115         cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
5116         cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
5117         cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
5118         ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
5119         subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
5120         mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
5121         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
5122         sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
5123         sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
5124         gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
5125         ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
5126         ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
5127         sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
5128         sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
5129         sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
5130         sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
5131         sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
5132         sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
5133         lfence_insn): New patterns.
5134         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
5135         sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
5136
5137 Mon Apr 29 17:03:24 CEST 2002  Jan Hubicka  <jh@suse.cz>
5138
5139         * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
5140
5141 2002-04-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5142
5143         * doc/contrib.texi (Contributors): Add Paolo Carlini and
5144         Janis Johnson.
5145         Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
5146         Refer to Objective-C instead of ObjC, SPARC instead of sparc,
5147         and CPU instead of cpu.
5148
5149 Mon Apr 29 13:36:41 CEST 2002  Jan Hubicka  <jh@suse.cz>
5150
5151         * toplev.c (flag_if_conversion, flag_if_conversion2): New static
5152         variables.
5153         (lang_independent_options): Add -fif-conversion, -fif-conversion2
5154         (rest_of_compilation): Do if conversion only when asked for.
5155         (parse_options_and_default_flags): Set new variables to 1 for -O1
5156         * invoke.texi (-fif-conversion, -fif-conversion2): Document.
5157
5158 Mon Apr 29 13:02:50 CEST 2002  Jan Hubicka  <jh@suse.cz>
5159
5160         * i386.c (dbx64_register_map): Fix typo.
5161
5162 Mon Apr 29 12:18:35 CEST 2002  Jan Hubicka  <jh@suse.cz>
5163
5164         * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
5165         real_one_half, real_bb_freq_max): New static variables.
5166         (debug_profile_bbauxs): Kill.
5167         (process_note_predictions): Kill unused variable.
5168         (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
5169         volatile double.
5170         (propagate_freq): Use REAL_ARITHMETICS.
5171         (estimate_bb_frequencies): Likevise; init new static variables.
5172         * Makefile.in (predict.o): Add dependency on real.h
5173
5174 2002-04-28  David S. Miller  <davem@redhat.com>
5175
5176         PR target/6500
5177         * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
5178         64-bit TARGET_V9.  Do not use prefetch page, use prefetch for
5179         several {reads,writes} instead.
5180         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
5181         Define.
5182
5183 2002-04-27  David S. Miller  <davem@redhat.com>
5184
5185         PR target/6494
5186         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
5187         of the stack bias.
5188
5189         * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
5190         including signal.h and sys/ucontext.h, not needed.
5191
5192 2002-04-29  Hans-Peter Nilsson  <hp@bitrange.com>
5193
5194         * varasm.c (output_constant_def): Correct test for not calling
5195         ENCODE_SECTION_INFO for INTEGER_CST.
5196
5197 2002-04-29  Neil Booth  <neil@daikokuya.demon.co.uk>
5198
5199         * cppexp.c (lex): Move some code to _cpp_parse_expr, but
5200         keep most cases as function eval_token.
5201         (eval_token): New function.
5202         (_cpp_parse_expr): Read token here for improved diagnostics.
5203         Don't use op_as_text.  Detect bad ':' here.
5204         (reduce): Don't detect bad ':' here.
5205         (op_as_text): Remove.
5206         * cpphash.h (_cpp_test_assertion): Change prototype.
5207         * cpplib.c (_cpp_test_assertion): Change prototype.
5208
5209 2002-04-28  Richard Henderson  <rth@redhat.com>
5210
5211         PR c/5154
5212         * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
5213         (ggc_mark_rtx_children): New.
5214
5215 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
5216
5217         PR target/6496
5218         * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
5219         after call peepholes for UltraSPARC.
5220         (call + jump 64-bit peepholes): Remove.
5221
5222 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5223
5224         PR c/6497
5225         * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
5226         result as temporary value.
5227
5228 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
5229
5230         PR c++/6396
5231         * toplev.c (rest_of_compilation): Only run regrename and copy
5232         propagation if optimizing.
5233
5234 2002-04-28  Jakub Jelinek  <jakub@redhat.com>
5235
5236         PR optimization/6475
5237         * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
5238         register of REGNO_DECL (i).
5239         * Makefile.in (reload1.o): Add $(TREE_H).
5240
5241 2002-04-28  Neil Booth  <neil@daikokuya.demon.co.uk>
5242
5243         * cppexp.c (lex): Update to use state.skip_eval.
5244         (struct op): Remove prio and flags members.
5245         (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
5246         SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
5247         (LEFT_ASSOC): New macro.
5248         (optab): New table of operator priorities and flags.
5249         (SHIFT): Update.
5250         (_cpp_parse_expr): Clean up logic.  Return bool.  Use a
5251         malloc-ed parser stack.
5252         (reduce): New; reduce the operator stack.
5253         (_cpp_expand_op_stack): Expand the operator stack as necessary.
5254         * cpphash.h (struct op): Predeclare.
5255         (struct cpp_reader): New members op_stack, op_limit.
5256         (struct lexer_state): New member skip_eval.
5257         (_cpp_parse_expr): Update.
5258         (_cpp_expand_op_stack): New.
5259         * cpplib.c (do_if): Update.
5260         * cppinit.c (cpp_create_reader): Create op stack.
5261         (cpp_destroy): And destroy it.
5262         * cpplib.h (CPP_LAST_CPP_OP): Correct.
5263         (TTYPE_TABLE): Correct.
5264
5265 2002-04-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5266
5267         PR c/6343
5268         * c-decl.c (duplicate_decls): Call merge_weak.
5269         * c-pragma.c (apply_pragma_weak): Warn about misuse.
5270         * output.h (merge_weak): Prototype merge_weak.
5271         * varasm.c (merge_weak): New function.
5272         (declare_weak): Make sure we don't give an error on VAR_DECLs.
5273         Mark RTL with SYMBOL_REF_WEAK.
5274
5275 2002-04-27  Kurt Garloff <garloff@suse.de>
5276
5277         * tree-inline.c (inlinable_function_p): Improve heuristics
5278         by using a smoother function to cut down allowable inlinable size.
5279         * param.def: Add parameters max-inline-insns-single,
5280         max-inline-slope, min-inline-insns that determine the exact
5281         shape of the above function.
5282         * param.h: Likewise.
5283
5284 2002-04-26  Richard Henderson  <rth@redhat.com>
5285
5286         * c-parse.in (malloced_yyss, malloced_yyvs): New.
5287         (yyoverflow): Re-add.  Set them.
5288         (free_parser_stacks): New.
5289         * c-common.h: Declare it.
5290         * c-lex.c (c_common_parse_file): Call it.
5291
5292 2002-04-26  Richard Henderson  <rth@redhat.com>
5293
5294         * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
5295         for fallthru search.
5296
5297 2002-04-26  Eric Christopher  <echristo@redhat.com>
5298
5299         PR optimization/3700
5300         * config/mips/mips.c (mips_issue_rate): Define.  New function.
5301         (TARGET_SCHED_ISSUE_RATE): Use.
5302
5303 2002-04-25  David S. Miller  <davem@redhat.com>
5304
5305         PR target/6422
5306         * reorg.c (optimize_skip): Do not allow exception causing
5307         instructions to be considered for delay slots.
5308         (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
5309         (relax_delay_slots): Do not try to consider exception causing
5310         instructions as redundant.
5311
5312 2002-04-26  Richard Henderson  <rth@redhat.com>
5313
5314         PR c/5225
5315         * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
5316
5317 2002-04-26  Mark Mitchell  <mark@codesourcery.com>
5318
5319         PR bootstrap/6445
5320         * config/i386/i386.md (untyped_call): Return the value in a float
5321         register if TARGET_FLOAT_RETURNS_IN_80387, not just if
5322         TARGET_80387.
5323
5324 2002-04-26  Alexandre Oliva  <aoliva@redhat.com>
5325
5326         * tree.c (tree_int_cst_lt): Compare constants whose types differ
5327         in unsigned-ness correctly.
5328
5329 2002-04-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5330
5331         * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
5332         portable runtime model.
5333
5334 2002-04-26  Richard Henderson  <rth@redhat.com>
5335
5336         * c-parse.in (yyoverflow): Revert.
5337
5338 2002-04-26  David Edelsohn  <edelsohn@gnu.org>
5339             Richard Henderson  <rth@redhat.com>
5340
5341         * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
5342         result as temporary value.
5343
5344 2002-04-26  Richard Henderson  <rth@redhat.com>
5345
5346         PR c/3581
5347         * c-common.c (fix_string_type): Split out of ...
5348         (combine_strings): ... here.  Take a varray, not a tree list.
5349         (c_expand_builtin_printf): Use fix_string_type.
5350         * c-common.h: Update decls.
5351         * c-parse.in (string): Remove.  Update all uses to use STRING
5352         instead, and not call combine_strings.
5353         (yylexstring): New.
5354         (_yylex): Use it.
5355         * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
5356         (build_asm_stmt): Likewise.
5357         * objc/objc-act.c (my_build_string): Use fix_string_type.
5358         (build_objc_string_object): Build varray for combine_strings.
5359
5360 2002-04-26  Bo Thorsen  <bo@suse.co.uk>
5361
5362         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
5363         x86-64.
5364
5365 2002-04-26  Neil Booth  <neil@daikokuya.demon.co.uk>
5366
5367         * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
5368         (HAVE_NO_R_OPERAND): Remove.
5369         (HAVE_VALUE): Remove.
5370         (op_to_prio): Update.
5371         (UNARY): Don't alter flags.
5372         (_cpp_parse_expr): want_value used to indicate whether
5373         a number or unary operator is expected next.  Distinguish
5374         unary and binary +/-.
5375         (op_as_text): Update for unary operators.
5376
5377 2002-04-25  Richard Henderson  <rth@redhat.com>
5378
5379         PR c/2161
5380         * c-parse.in (yyoverflow): New.
5381
5382 2002-04-25  Richard Henderson  <rth@redhat.com>
5383
5384         PR c/2098
5385         * c-common.c (shorten_compare): Simplfy conditions leading to
5386         the generation of a warning.
5387
5388 2002-04-25  Richard Henderson  <rth@redhat.com>
5389
5390         PR c/2035
5391         * expmed.c (extract_bit_field): Fall through to generic code rather
5392         than aborting on subreg special case.
5393
5394 2002-04-25  David S. Miller  <davem@redhat.com>
5395
5396         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
5397         for DECL being NULL.
5398
5399 2002-04-25  Steve Christiansen  <smc@us.ibm.com>
5400
5401         * doc/md.texi (Machine Constraints): Add IA-64 constraints.
5402
5403 2002-04-25  Eric Botcazou  <ebotcazou@multimania.com>
5404
5405         * c-decl.c (grokdeclarator): Remove outdated ??? note
5406         on invalid declaration of flexible array members.
5407
5408 2002-04-25  Richard Henderson  <rth@redhat.com>
5409
5410         * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
5411
5412 2002-04-25  Ulrich Weigand  <uweigand@de.ibm.com>
5413
5414         * config/s390/s390.c (s390_emit_epilogue): Always restore registers
5415         needed by the compiler, even if they are used as global regs.
5416
5417 2002-04-25  Matt Hiller  <hiller@redhat.com>
5418
5419         * mips.c (mips_class_max_nregs, mips_register_move_cost): New
5420         functions.
5421         * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
5422         of the corresponding functions.
5423         * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
5424         New prototypes.
5425
5426 2002-04-25  Matt Hiller  <hiller@redhat.com>
5427
5428         * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
5429
5430         (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
5431         (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
5432         registers, adjust comment accordingly.
5433         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
5434         reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
5435         DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
5436         for coprocessor registers.
5437         (ADDITIONAL_REGISTER_NAMES): Include
5438         ALL_COP_ADDITIONAL_REGISTER_NAMES.
5439
5440         (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
5441         COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
5442         COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
5443         COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
5444         COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
5445
5446         (mips_char_to_class): Adjust comment to include coprocessor
5447         constraint letters.
5448
5449         * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
5450         New functions.
5451         (mips_reg_names, mips_regno_to_class): Include coprocessor
5452         information.
5453         (mips_sw_reg_names): Ditto, make non-static.
5454         (mips_move_1word): Handle moves to and from coprocessor registers.
5455         (mips_move_2words): Handle moves to and from coprocessor
5456         registers.
5457         (mips_class_max_nregs, mips_register_move_cost): Handle
5458         coprocessor register classes.
5459         (override_options): Initialize mips_char_to_class and
5460         mips_hard_regno_mode_ok properly for coprocessor registers.
5461
5462         * config/mips/mips.md (movdi_internal, movdi_internal2,
5463         movsi_internal1, movsi_internal2): Add constraint-sets for
5464         coprocessor registers.
5465         * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
5466         * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
5467         isn't mips.
5468         * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
5469         * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
5470         isn't mips.
5471         * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
5472         * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
5473         isn't mips.
5474         * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
5475         * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
5476         isn't mips.
5477
5478         * doc/tm.texi: Document feature.
5479
5480 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
5481
5482         * integrate.c (function_attribute_inlinable_p): Simplify.
5483         Check the table pointer is not NULL.
5484
5485 2002-04-25  Steven Bosscher  <S.Bosscher@student.tudelft.nl>
5486
5487         * doc/c-tree.texi: Fix typo in introduction.
5488
5489 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
5490
5491         * c-common.h (c_common_parse_file): Update.
5492         * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
5493         * c-lex.c (YYDEBUG): Get from c-lex.h.
5494         (c_common_parse_file): Update.
5495         * c-lex.h (YYDEBUG, yydebug): New.
5496         * c-parse.in (YYDEBUG): Get from c-lex.h.
5497         (c_set_yydebug): Remove.
5498         * c-tree.h (c_set_yydebug): Remove.
5499         * langhooks-def.h (lhd_do_nothing_i): New.
5500         (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
5501         (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
5502         * langhooks.c  (lhd_do_nothing_i): New.
5503         (lhd_set_yydebug): Remove.
5504         * langhooks.h (struct lang_hooks): Update.
5505         * toplev.c (set_yydebug): New.
5506         (compile_file): Update call to parse_file hook.
5507         (decode_d_option): Update.
5508 objc:
5509         * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
5510
5511 Wed Apr 24 23:45:37 2002  J"orn Rennecke <joern.rennecke@superh.com>
5512
5513         * loop.c (load_mems): Don't change the interface of called functions.
5514
5515         * calls.c (expand_call): Take current_function_pretend_args_size
5516         into account when setting argblock for sibcalls.
5517
5518 2002-04-24  Matt Hiller  <hiller@redhat.com>
5519
5520         * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
5521         * c-lex.c: Ditto.
5522
5523         * cpplex.c (skip_line_comment): Process comment one multibyte
5524         character at a time rather than one char at a time, if
5525         appropriate.
5526         (parse_string): Process string one multibyte character at a time
5527         rather than one char at a time, if appropriate.
5528         * c-lex.c (lex_string): Lex and copy multibyte strings
5529         appropriately.
5530         * cpplib.h (cppchar_t): Change to unsigned.
5531
5532 2002-04-24  Richard Henderson  <rth@redhat.com>
5533
5534         PR c/3467
5535         * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
5536         for c99.
5537
5538 Wed Apr 24 21:51:54 2002  J"orn Rennecke <joern.rennecke@superh.com>
5539
5540         * sh.c (sh_va_arg): If argument was passed by reference,
5541         dereference the pointer.
5542
5543         * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
5544
5545         * sh.md (divsi3_i4_media): Use match_operand for input values
5546         rather than hard registers.
5547         (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
5548         unnecessarily through hard registers.  Keep copies of pseudo
5549         registers outside of the libcall sequence.
5550
5551         * sh.md (casesi_shift_media): Add modes.
5552
5553         * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
5554         values in memory.
5555
5556 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
5557
5558         * attribs.c (c_common_attribute_table): Move table and handlers
5559         to c-common.c.
5560         (format_attribute_table, lang_attribute_table,
5561         lang_attribute_common): Remove.
5562         (init_attributes): Replace NULL pointers with pointers to the
5563         empty table.
5564         (handle_packed_attribute, handle_nocommon_attribute,
5565         handle_common_attribute, handle_noreturn_attribute,
5566         handle_noinline_attribute, handle_always_inline_attribute,
5567         handle_used_attribute, handle_unused_attribute,
5568         handle_const_attribute, handle_transparent_union_attribute,
5569         handle_constructor_attribute, handle_destructor_attribute,
5570         handle_mode_attribute, handle_section_attribute,
5571         handle_aligned_attribute, handle_weak_attribute,
5572         handle_alias_attribute, handle_visibility_attribute,
5573         handle_no_instrument_function_attribute, handle_malloc_attribute,
5574         handle_no_limit_stack_attribute, handle_pure_attribute,
5575         handle_deprecated_attribute, handle_vector_size_attribute,
5576         vector_size_helper): Move to c-common.c.
5577         * c-common.c (c_common_attribute_table,
5578         handle_packed_attribute, handle_nocommon_attribute,
5579         handle_common_attribute, handle_noreturn_attribute,
5580         handle_noinline_attribute, handle_always_inline_attribute,
5581         handle_used_attribute, handle_unused_attribute,
5582         handle_const_attribute, handle_transparent_union_attribute,
5583         handle_constructor_attribute, handle_destructor_attribute,
5584         handle_mode_attribute, handle_section_attribute,
5585         handle_aligned_attribute, handle_weak_attribute,
5586         handle_alias_attribute, handle_visibility_attribute,
5587         handle_no_instrument_function_attribute, handle_malloc_attribute,
5588         handle_no_limit_stack_attribute, handle_pure_attribute,
5589         handle_deprecated_attribute, handle_vector_size_attribute,
5590         vector_size_helper): Move from attribs.c.
5591         * c-common.h (c_common_attribute_table,
5592         c_common_format_attribute_table): New.
5593         * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
5594         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
5595         * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
5596         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
5597         (LANG_HOOKS_INITIALIZER): Update.
5598         * langhooks.h (struct lang_hooks): 3 new attribute hooks.
5599         * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
5600         * target.h: Update comment.
5601         * tree.c (default_target_attribute_table): Remove.
5602         * tree.h (default_target_attribute_table, format_attribute_table,
5603         lang_attribute_table, lang_attribute_common): Remove.
5604 objc:
5605         * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
5606         LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
5607
5608 2002-04-24  Jason Merrill  <jason@redhat.com>
5609
5610         * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
5611         * dwarf2out.c (dwarf_attr_name): Support it.
5612         (gen_array_type_die): Emit it.
5613         (lookup_type_die): No special handling for VECTOR_TYPE.
5614         (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
5615
5616 2002-04-24  Richard Henderson  <rth@redhat.com>
5617
5618         * config/mips/mips.md (movdi_usd): Renumber.
5619
5620 2002-04-24  David S. Miller  <davem@redhat.com>
5621
5622         PR target/6420
5623         * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
5624         32-bit Sparc and current_function_returns_struct is true.
5625
5626 Wed Apr 24 13:48:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
5627
5628         * loop.c (canonicalize_condition): Use gen_int_mode.
5629
5630 2002-04-24  Aldy Hernandez  <aldyh@redhat.com>
5631
5632         * config/rs6000/altivec.h: Cleanup file.  Add non individual
5633         variants.
5634         (vec_vaddubm): New.
5635         (vec_vadduhm): New.
5636         (vec_vadduwm): New.
5637         (vec_vaddfp): New.
5638         (vec_vaddcuw): New.
5639         (vec_vaddubs): New.
5640         (vec_vaddsbs): New.
5641         (vec_vadduhs): New.
5642         (vec_vadduws): New.
5643         (vec_vaddsws): New.
5644         (vec_vand): New.
5645         (vec_vandc): New.
5646         (vec_vavgub): New.
5647         (vec_vavgsb): New.
5648         (vec_vavguh): New.
5649         (vec_vavgsh): New.
5650         (vec_vavguw): New.
5651         (vec_vavgsw): New.
5652         (vec_vrfip): New.
5653         (vec_vcmpbfp): New.
5654         (vec_vcmpequb): New.
5655         (vec_vcmpequh): New.
5656         (vec_vcmpequw): New.
5657         (vec_vcmpeqfp): New.
5658         (vec_vcmpgefp): New.
5659         (vec_vcmpgtub): New.
5660         (vec_vcmpgtsb): New.
5661         (vec_vcmpgtuh): New.
5662         (vec_vcmpgtsh): New.
5663         (vec_vcmpgtuw): New.
5664         (vec_vcmpgtsw): New.
5665         (vec_vcmpgtfp): New.
5666         (vec_vcmpgefp): New.
5667         (vec_vcfux): New.
5668         (vec_vcfsx): New.
5669         (vec_vctsxs): New.
5670         (vec_vctuxs): New.
5671         (vec_vexptefp): New.
5672         (vec_vrfim): New.
5673         (vec_lvx): New.
5674         (vec_lvebx): New.
5675         (vec_lvehx): New.
5676         (vec_lde): Add vector float variant.
5677         (vec_lvewx): New.
5678         (vec_lvxl): New.
5679         (vec_vlogefp): New.
5680         (vec_vmaddfp): New.
5681         (vec_vmhaddshs): New.
5682         (vec_vmaxub): New.
5683         (vec_vmaxsb): New.
5684         (vec_vmaxuh): New.
5685         (vec_vmaxsh): New.
5686         (vec_vmaxuw): New.
5687         (vec_vmaxsw): New.
5688         (vec_vmaxsw): New.
5689         (vec_vmaxfp): New.
5690         (vec_vmrghb): New.
5691         (vec_vmrghh): New.
5692         (vec_vmrghw): New.
5693         (vec_vmrglb): New.
5694         (vec_vmrglh): New.
5695         (vec_vmrglw): New.
5696         (vec_vminub): New.
5697         (vec_vminsb): New.
5698         (vec_vminuh): New.
5699         (vec_vminsh): New.
5700         (vec_vminuw): New.
5701         (vec_vminsw): New.
5702         (vec_vminfp): New.
5703         (vec_vmladduhm): New.
5704         (vec_vmhraddshs): New.
5705         (vec_msumubm): New.
5706         (vec_vmsummbm): New.
5707         (vec_vmsumuhm): New.
5708         (vec_vmsumshm): New.
5709         (vec_vmsumuhs): New.
5710         (vec_vmsumshs): New.
5711         (vec_vmuleub): New.
5712         (vec_vmulesb): New.
5713         (vec_vmuleuh): New.
5714         (vec_vmulesh): New.
5715         (vec_vmuloub): New.
5716         (vec_mulosb): New.
5717         (vec_vmulouh): New.
5718         (vec_vmulosh): New.
5719         (vec_vnmsubfp): New.
5720         (vec_vnor): New.
5721         (vec_vor): New.
5722         (vec_vpkuhum): New.
5723         (vec_vpkuwum): New.
5724         (vec_vpkpx): New.
5725         (vec_vpkuhus): New.
5726         (vec_vpkshss): New.
5727         (vec_vpkuwus): New.
5728         (vec_vpkswss): New.
5729         (vec_vpkshus): New.
5730         (vec_vpkswus): New.
5731         (vec_vperm): New.
5732         (vec_vrefp): New.
5733         (vec_vrlb): New.
5734         (vec_vrlh): New.
5735         (vec_vrlw): New.
5736         (vec_vrfin): New.
5737         (vec_vrsqrtefp): New.
5738         (vec_vsel): New.
5739         (vec_vslb): New.
5740         (vec_vslh): New.
5741         (vec_vslw): New.
5742         (vec_vsldoi): New.
5743         (vec_vsl): New.
5744         (vec_vslo): New.
5745         (vec_vspltb): New.
5746         (vec_vsplth): New.
5747         (vec_vspltw): New.
5748         (vec_vspltisb): New.
5749         (vec_vspltish): New.
5750         (vec_vspltisw): New.
5751         (vec_vsrb): New.
5752         (vec_vsrh): New.
5753         (vec_vsrw): New.
5754         (vec_vsrab): New.
5755         (vec_vsrah): New.
5756         (vec_vsraw): New.
5757         (vec_vsr): New.
5758         (vec_vsro): New.
5759         (vec_stvx): New.
5760         (vec_stvebx): New.
5761         (vec_stvehx): New.
5762         (vec_stvewx): New.
5763         (vec_stvxl): New.
5764         (vec_vsububm): New.
5765         (vec_vsubuhm): New.
5766         (vec_vsubuwm): New.
5767         (vec_vsubfp): New.
5768         (vec_vsubcuw): New.
5769         (vec_vsububs): New.
5770         (vec_vsubsbs): New.
5771         (vec_vsubuhs): New.
5772         (vec_vsubshs): New.
5773         (vec_vsubuws): New.
5774         (vec_vsubsws): New.
5775         (vec_vsum4ubs): New.
5776         (vec_vsum4sbs): New.
5777         (vec_vsum4shs): New.
5778         (vec_vsum2sws): New.
5779         (vec_vsumsws): New.
5780         (vec_vrfiz): New.
5781         (vec_vupkhsb): New.
5782         (vec_vupkhpx): New.
5783         (vec_vupkhsh): New.
5784         (vec_vupklsb): New.
5785         (vec_vupklpx): New.
5786         (vec_vupklsh): New.
5787         (vec_vxor): New.
5788
5789 2002-04-23  Eric Botcazou  <ebotcazou@multimania.com>
5790
5791         PR c/5430
5792         * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
5793         added literals from substracted literals.
5794         (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
5795         (fold) [associate]: Preserve MINUS_EXPR if needed.
5796
5797 2002-04-23  Zack Weinberg  <zack@codesourcery.com>
5798
5799         * doc/install.texi: Clarify which versions of alpha*-dec-osf*
5800         are obsoleted.
5801
5802 2002-04-23  Tom Tromey  <tromey@redhat.com>
5803
5804         * gcc.c: Added --resource.  For PR java/6314.
5805
5806 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
5807
5808         * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
5809         * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
5810         these libraries.
5811
5812 2002-04-23  David O'Brien  <obrien@FreeBSD.org>
5813
5814         * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
5815
5816 Tue Apr 23 14:24:25 CEST 2002  Jan Hubicka  <jh@suse.cz>
5817
5818         * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
5819         workaround.
5820         (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
5821         (ix86_expand_clrstr): Fix typo.
5822         * loop.c (gen_load_of_final_value): New.
5823         (loop_givs_rescan, strength_reduce, check_dbra_loop):
5824         Use it.
5825
5826 2002-04-23  Roger Sayle  <roger@eyesopen.com>
5827
5828         * builtins.c (builtin_memset_gen_str): New function.
5829         (expand_builtin_memset): Optimize the case of constant length, but
5830         unknown value.
5831
5832 2002-04-23  Aldy Hernandez  <aldyh@redhat.com>
5833
5834         * config/rs6000/altivec.h (vec_step): Remove extraneous
5835         parentheses.
5836         (vec_ctu): Cast return.
5837
5838 2002-04-23  Alan Modra  <amodra@bigpond.net.au>
5839
5840         PR target/6413
5841         * function.h: (struct function): Add profile_label_no field.
5842         (current_function_profile_label_no): Define.
5843         * function.c: (profile_label_no): New static var.
5844         (expand_function_start): Increment it, and copy to
5845         current_function_profile_label_no.
5846         * output.h (profile_label_no): Delete.
5847         * final.c (profile_label_no): Delete.
5848         (profile_function): Use current_function_profile_label_no.
5849         (final_end_function): Don't increment profile_label_no here.
5850         * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
5851         profile_label_no with current_function_profile_label_no.
5852         * config/pa/pa.c (current_function_number): Delete.
5853         (pa_output_function_prologue): Don't output profile label here.
5854         (hppa_profile_hook): Use label_no param rather than
5855         current_function_number.
5856         (FUNC_BEGIN_PROLOG_LABEL): Move to ..
5857         * config/pa/pa.h: .. here.
5858         (FUNCTION_PROFILER): Output profile label here.
5859
5860 2002-04-22  Eric Christopher  <echristo@redhat.com>
5861
5862         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
5863         patch of 2002-04-09 due to binutils issues.
5864         (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
5865
5866 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
5867
5868         * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
5869         constraint to 'o' for m=r and r=m alternatives.
5870         ("*movv8hi_internal1"): Same.
5871         ("*movv16qi_internal1"): Same.
5872         ("*movv4sf_internal1"): Same.
5873
5874 2002-04-22  Janis Johnson  <janis187@us.ibm.com>
5875
5876         * rtl.h (RTX_FLAG): New macro.
5877         * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
5878         * final.c (alter_subreg): Use macro to access rtx flag.
5879         * integrate.c (copy_rtx_and_substitute): Use new access macro.
5880         * print-rtl.c (print_rtx): Use new access macro.
5881
5882         * cse.c (insert): Check rtx code before accessing flag.
5883
5884         * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
5885         ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
5886         (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
5887         convert_const_symbol_ref, make_canonical, make_alternative_compare,
5888         evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
5889         simplify_test_exp, optimize_attrs, simplify_by_exploding,
5890         find_and_mark_used_attributes, unmark_used_attributes,
5891         add_values_to_cover, simplify_with_current_value,
5892         simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
5893         copy_rtx_unchanging, main): Use new access macros.
5894
5895 2002-04-22  Tom Rix  <trix@redhat.com>
5896
5897         * expmed.c (init_expmed): Generate shifted constant once.
5898
5899 2002-04-22  Zack Weinberg  <zack@codesourcery.com>
5900
5901         * c-lex.c (lex_charconst): Call convert to get constant in
5902         proper type; don't just smash the type field.
5903         Fixes PR c/6300.
5904
5905         * config.gcc: Add list of obsolete configurations.  Disallow
5906         building these without --enable-obsolete.
5907         * doc/install.texi: Document --enable-obsolete and obsoletion
5908         policy.  Mention obsoletion of individual targets in
5909         appropriate places.
5910
5911 2002-04-22  Richard Henderson  <rth@redhat.com>
5912
5913         * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
5914
5915 2002-04-22  Mark Mitchell  <mark@codesourcery.com>
5916
5917         PR f/6138.
5918         * function.c (fixup_memory_subreg): Add promoted_mode parameter.
5919         (walk_fixup_memory_subreg): Likewise.
5920         (fixup_var_refs_insn): Adjust accordingly.
5921         (fixup_var_refs_1): Likewise.
5922
5923 2002-04-22  Ulrich Weigand  <uweigand@de.ibm.com>
5924
5925         * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
5926         LIBPATH_ARCH64_SPEC): Define.
5927         (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
5928         (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
5929         (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
5930         (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
5931
5932 2002-04-22      Joel Sherrill <joel@OARcorp.com>
5933
5934         * gthr-rtems.h: Correct prototypes to remove warnings.
5935
5936 2002-04-22  Richard Henderson  <rth@redhat.com>
5937
5938         PR c/6344
5939         * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
5940
5941         * gcse.c (free_insn_expr_list_list): New.
5942         (clear_modify_mem_tables): Use it.  Fix bit set usage.
5943         (canon_list_insert): Use EXPR_LISTs for expressions.
5944         (record_last_mem_set_info): Factor BLOCK_NUM (insn).
5945
5946 2002-04-22  Neil Booth  <neil@daikokuya.demon.co.uk>
5947
5948         * cppfiles.c (_cpp_pop_file_buffer): Return void.  Move
5949         file change and include code to _cpp_pop_buffer.
5950         * cpphash.h (struct pending_option): Predeclare.
5951         (struct cpp_reader): New member next_include_file.
5952         (_cpp_pop_file_buffer): Update.
5953         (_cpp_push_next_buffer): Update, rename.
5954         * cppinit.c (cpp_destroy): Free include chain and pending here.
5955         (cpp_finish_options): Simplify.
5956         (_cpp_push_next_buffer): Rename and clean up.
5957         * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
5958         Clarify.
5959         * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
5960
5961 2002-04-22  Aldy Hernandez  <aldyh@redhat.com>
5962
5963         * config/rs6000/altivec.h (vec_xor): Add variant for both args
5964         being vector signed int.
5965         (vec_andc): Same.
5966         (vec_xor): Add variant for both args being vector signed char.
5967         Remove redundant variant.
5968         (vec_andc): Same.
5969
5970 2002-04-21  David S. Miller  <davem@redhat.com>
5971
5972         * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
5973         compare mode in output RTL.
5974
5975 2002-04-22  David Edelsohn  <edelsohn@gnu.org>
5976
5977         * config/rs6000/rs6000.c (rs6000_override_options): Correct
5978         style and formatting of previous patch.
5979
5980 2002-04-22  Alan Modra  <amodra@bigpond.net.au>
5981
5982         * config/rs6000/rs6000.c (rs6000_override_options): Always clear
5983         flag_pic for ABI_AIX.
5984
5985 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
5986
5987         * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
5988         * cppfiles.c (read_include_file): Similarly.
5989         * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
5990         uxstrdup ustrchr, ufputs): Similarly.
5991         * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
5992         * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
5993         cpp_ideq, parse_identifier, parse_number): Similarly.
5994         * cpplib.c (struct directive, dequote_string, D, run_directive,
5995         cpp_push_buffer): Similarly.
5996         * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
5997         _cpp_create_definition, check_trad_stringification,
5998         cpp_macro_definition): Similarly.
5999
6000 2002-04-21  Neil Booth  <neil@daikokuya.demon.co.uk>
6001
6002         * cppmacro.c (funlike_invocation_p): Don't step back
6003         over CPP_EOF.
6004
6005 2002-04-21  David Edelsohn  <edelsohn@gnu.org>
6006
6007         * config/rs6000/rs6000.c (output_profile_hook): Do not increment
6008         labelno.
6009
6010 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
6011
6012         * doc/invoke.texi: Remove Chill references.
6013         * doc/gcc.texi: Update last modified date.
6014
6015 2002-04-20  Kazu Hirata  <kazu@hxi.com>
6016
6017         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
6018         push and pop.  Replace add.l with add.w.
6019
6020 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
6021
6022         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
6023         multiply instructions for H8/300H case.
6024
6025 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
6026
6027         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
6028         Bum three instructions from each routine.
6029
6030 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
6031
6032         * Makefile.in: Update.
6033         * decl.c (push_c_function_context, pop_c_function_context,
6034         mark_c_function_context): Rename for consistency.
6035         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
6036         * c-tree.h (push_c_function_context, pop_c_function_context,
6037         mark_c_function_context): Rename for consistency.
6038         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6039         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
6040         * function.c (init_lang_status, save_lang_status,
6041         restore_lang_status, mark_lang_status, free_lang_status):
6042         Move to langhooks.h.
6043         (push_function_context_to, pop_function_context_from,
6044         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
6045         Update.
6046         * function.h (init_lang_status, save_lang_status,
6047         restore_lang_status, mark_lang_status, free_lang_status):
6048         Move to langhooks.h.
6049         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
6050         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
6051         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
6052         LANG_HOOKS_FUNCTION_INITIALIZER): New.
6053         (LANG_HOOKS_INITIALIZER): Update.
6054         (lhd_do_nothing_f): New.
6055         * langhooks.h (struct lang_hooks_for_functions): New.
6056         (struct lang_hooks): New hooks.
6057         * langhooks.c (lhd_do_nothing_f): New.
6058 objc:
6059         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
6060         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
6061
6062 2002-04-19  David S. Miller  <davem@redhat.com>
6063
6064         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
6065         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
6066
6067 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
6068
6069         PR optimization/3756
6070         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
6071         x = ((int) y < 0) ? cst1 : cst2.
6072
6073 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
6074
6075         PR c/6358
6076         * function.c: Reapply patch for c/6358.
6077         (expand_function_end): Copy decl_rtl's mode, not
6078         current_function_return_rtx mode.
6079
6080 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
6081
6082         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
6083         targets.
6084
6085 2002-04-19  Tom Tromey  <tromey@redhat.com>
6086
6087         * doc/install.texi (Specific): Update status of Solaris 2.8.
6088         For PR libgcj/6158.
6089
6090 2002-04-19  Andreas Schwab  <schwab@suse.de>
6091
6092         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
6093         (PUT_REAL): Restore old definition.
6094
6095 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
6096             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6097
6098         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
6099         binutils 2.11.2 and higher generate smaller binaries than Sun's
6100         native tools.
6101
6102 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
6103
6104         PR c++/6352
6105         * toplev.c (rest_of_compilation): Do not defer functions for which
6106         TREE_SYMBOL_REFERENCED has already been set.
6107
6108 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
6109
6110         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
6111         alternative.
6112
6113 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
6114
6115         * builtins.c: Include langhooks.h.
6116         (lang_type_promotes_to): Remove.
6117         (expand_builtin_va_arg): Use new hook.
6118         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
6119         (simple_type_promotes_to): Move to c-typeck.c.
6120         * c-common.h (simple_type_promotes_to): Remove.
6121         * c-decl.c (duplicate_decls, grokdeclarator): Update.
6122         * c-format.c: Include langhooks.h.
6123         (check_format_types): Update.
6124         * c-tree.h (c_type_promotes_to): New.
6125         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
6126         (type_lists_compatible_p): Update.
6127         * langhooks-def.h (lhd_type_promotes_to): New.
6128         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
6129         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
6130         * langhooks.c (lhd_type_promotes_to): New.
6131         * langhooks.h (struct lang_hooks_for_types): New hook.
6132         * tree.h (lang_type_promotes_to): Remove.
6133 objc:
6134         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
6135
6136 2002-04-18  Richard Henderson  <rth@redhat.com>
6137
6138         * function.c: Revert patch for c/6358.
6139
6140 2002-04-18  Richard Henderson  <rth@redhat.com>
6141
6142         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
6143         blocks.  Handle multiple references to the TRAP block.  Handle
6144         non-adjacent THEN and OTHER blocks.
6145
6146 2002-04-18  Richard Henderson  <rth@redhat.com>
6147
6148         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
6149         crash with no type for by-mode libcalls.
6150
6151         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
6152
6153 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
6154
6155         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
6156         __xtensa_nonlocal_goto): Use a syscall instructions to flush
6157         the register windows.
6158
6159 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
6160
6161         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
6162         appropriate.  Document need for extended precision even when
6163         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
6164         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
6165         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
6166         instead of relying on later syntax error when REAL_WIDTH > 5.
6167         * real.c: Define NE based only on whether or not we have a
6168         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
6169         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
6170         define GET_REAL and PUT_REAL as simple memcpy operations; no
6171         need to byteswap or round.
6172         Use #error instead of #ifdef-ing out the entire file, for
6173         prompt error detection.
6174
6175         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
6176
6177 2002-04-18  David S. Miller  <davem@redhat.com>
6178
6179         * config/sparc/sparc.h (BRANCH_COST): Define.
6180
6181         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
6182         does it.
6183
6184 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
6185
6186         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
6187         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
6188         propagate_block calls after relaxation loop using new variable
6189         stabilized_prop_flags.
6190
6191 2002-04-18  Richard Henderson  <rth@redhat.com>
6192
6193         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
6194         (ia64_va_arg): Expect variable sized types by reference.
6195         * config/ia64/ia64-protos.h: Update.
6196         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
6197         ia64_function_arg_pass_by_reference.
6198
6199 2002-04-18  Richard Henderson  <rth@redhat.com>
6200
6201         * ifcvt.c: Include except.h.
6202         (block_has_only_trap): Break out from find_cond_trap.
6203         (find_cond_trap): Use it.  Always delete the trap block.
6204         (merge_if_block): Allow then block null.  Be less simplistic about
6205         what insns can end a block.
6206         * Makefile.in (ifcvt.o): Depend on except.h.
6207
6208         * config/ia64/ia64.md (trap, conditional_trap): New.
6209
6210 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
6211
6212         PR c/6358
6213         * function.c (assign_parms): Assign hard current_function_return_rtx
6214         register here...
6215         (expand_function_end): ...not here.
6216
6217 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
6218
6219         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
6220         * c-tree.h (c_incomplete_type_error): New.
6221         * c-typeck.c (require_complete_type, build_component_ref): Update.
6222         (incomplete_type_error): Rename.
6223         * langhooks-def.h (lhd_incomplete_type_error): New.
6224         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
6225         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
6226         * langhooks.c (lhd_incomplete_type_error): New.
6227         * langhooks.h (struct lang_hooks_for_types): New hook.
6228         * tree.c (size_in_bytes): Use new hook.
6229         * tree.h (incomplete_type_error): Remove.
6230 objc:
6231         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
6232
6233 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
6234
6235         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
6236         TARGET_FLOAT_FORMAT blocks.
6237
6238 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6239
6240         * doc/install.texi (Downloading the source): Do not mention Chill
6241         any longer, but mention Ada.
6242         (Configuration): Do not mention Chill any longer.
6243
6244 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
6245
6246         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
6247
6248 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
6249
6250         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
6251         in last patch.
6252
6253 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
6254
6255         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
6256         instead of unsigned_type.
6257
6258 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
6259
6260         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
6261         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
6262         later.
6263
6264 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
6265
6266         * attribs.c (vector_type_node_list): New static variable.
6267         (handle_vector_size_attribute): Use it to avoid generating a
6268         new type node each time we are called.
6269
6270         * combine.c (subst): Avoid trying to make a vector mode subreg of
6271         an integer constant.
6272         (gen_lowpart_for_combine): Likewise.
6273
6274 2002-04-18  Roger Sayle  <roger@eyesopen.com>
6275             Jakub Jelinek  <jakub@redhat.com>
6276
6277         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
6278         for integer constant c (if x has unsigned type or sign bit is not
6279         set in c).  This folds the zero/sign extension into the bit-wise and
6280         operation.
6281
6282 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
6283
6284         PR middle-end/6205
6285         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
6286         otherwise xorps.
6287
6288 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
6289
6290         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
6291
6292 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
6293
6294         * gcc.c (read_specs): Detect and fail if an attempt is made to
6295         rename a spec string to an already existing string.
6296
6297 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
6298
6299         * config/s390/s390.c (legitimize_pic_address): Do not generate
6300         illegal address constant without CONST.
6301
6302 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6303
6304         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
6305         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
6306
6307 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
6308
6309         PR optimization/6305
6310         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
6311         to make sure previous reloads are taken into account.  Generate
6312         better code if one operand is an in-range immediate constant.
6313
6314 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
6315
6316         * doc/install.texi (Building): libgcj requires GNU make.
6317
6318 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
6319
6320         PR bootstrap/6315
6321         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
6322         even if hard quad and register is not floating.
6323         (movtf reg<-mem split): Disallow splitting if hard quad and
6324         register is floating.
6325         (movtf mem<-reg split): Likewise.
6326         * config/sparc/sparc.c (fp_register_operand): New predicate.
6327         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
6328
6329 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
6330
6331         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
6332         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
6333         (unprotoize.o): Ditto.  Build from protoize.c.  Define
6334         UNPROTOIZE on command line.
6335         * protoize.c: Include cppdefault.h.  Delete include_defaults.
6336         (in_system_include_dir): Use cpp_include_defaults (defined in
6337         cppdefault.o).
6338         * unprotoize.c: Delete file.
6339
6340 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
6341
6342         * config/rs6000/altivec.h (vec_ld): Add array variants.
6343         (vec_lde): Same.
6344         (vec_ldl): Same.
6345
6346 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
6347             Aldy Hernandez <aldyh@redhat.com>
6348
6349         * config/rs6000/altivec.h: Define __ALTIVEC__.
6350         (bool): New.
6351         (__pixel): New.
6352         (pixel): New.
6353         (vec_cfux): New.
6354         (vec_vmaddfp): New.
6355         (vec_vsldoi): New.
6356         Add parentheses to all macro arguments.
6357
6358 2002-04-16  Richard Henderson  <rth@redhat.com>
6359
6360         PR c++/6320
6361         * except.c (remove_eh_handler): Insert inner regions at beginning
6362         of sibling chain.  Refactor expressions.
6363
6364 2002-04-16  Richard Henderson  <rth@redhat.com>
6365
6366         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
6367         * config/sparc/sol2-gas-bi.h: New file.
6368         * config.gcc (sparc*-solaris): Add it as needed.
6369         * configure.in (AS_SPARC64_FLAG): Remove check.
6370         * config.in, configure: Regenerate.
6371
6372         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
6373
6374 2002-04-16  Richard Henderson  <rth@redhat.com>
6375
6376         * config/mips/mips.c (override_options): Don't override N32 for
6377         a 64-bit ISA.
6378
6379         PR 6202
6380         * config/mips/mips.md (can_delay): Split out of existing define_delays.
6381         (HILO_delay): Set can_delay false.
6382
6383 2002-04-16  Dale Johannesen <dalej@apple.com>
6384
6385         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
6386         instruction addresses.
6387         (rs6000_output_function_epilogue): Likewise.
6388
6389 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
6390
6391         * c-parse.in (poplevel, compstmt_start,
6392         compstmt_primary_start): Add ending ';', in accordance
6393         with POSIX.
6394
6395 2002-04-16  Richard Henderson  <rth@redhat.com>
6396
6397         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
6398         Adjust tm_file order to get TARGET_DEFAULT set properly.
6399         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
6400         * doc/install.texi (sparc-solaris): Update.
6401
6402 2002-04-16  Dale Johannesen <dalej@apple.com>
6403
6404         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
6405         comparison operands do not match each other or if modes of
6406         conditions do not match result.
6407
6408 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
6409
6410         PR target/6305
6411         * config/s390/s390.md (mulsidi3): Set both subregs of the
6412         multiword register.
6413
6414 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
6415
6416         * config/rs6000/altivec.h (vec_addc): Type check.
6417
6418 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
6419
6420         PR middle-end/6279
6421         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
6422
6423         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
6424
6425 2002-04-15  Richard Henderson  <rth@redhat.com>
6426
6427         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
6428         call_really_used_regs too.
6429
6430 2002-04-15  Richard Henderson  <rth@redhat.com>
6431
6432         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
6433
6434 2002-04-15  David S. Miller  <davem@redhat.com>
6435
6436         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
6437         as being CLOBBERed.
6438
6439 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
6440
6441         PR c/6290
6442         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
6443         CONST_VECTOR is { 0, ... 0 }.
6444
6445 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
6446
6447         * doc/install.texi (Installing GCC: Configuration): Clarify
6448         the only supported ways to configure gcc.
6449
6450 2002-04-15  Roland McGrath  <roland@frob.com>
6451
6452         * config.gcc (alpha*-*-gnu*): New target configuration.
6453         * config/alpha/gnu.h: New file for it.
6454         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
6455
6456 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
6457
6458         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
6459         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
6460         * tree.h (expand_start_stmt_expr): Update prototype.
6461         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
6462         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
6463         on the STMT_EXPR created for the inline function.
6464
6465 2002-04-15  Richard Henderson  <rth@redhat.com>
6466
6467         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
6468         config/i386/linux-aout.h, config/i386/linux-oldld.h,
6469         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
6470         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
6471         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
6472         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
6473         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
6474         Define __gnu_linux__, not gnu_linux.
6475         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
6476
6477 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
6478
6479         Remove Chill front end.
6480         * gcc.c (default_compilers): Remove Chill entries.
6481         * ch: Remove directory.
6482         * doc/frontends.texi: Remove information about Chill.
6483         * doc/sourcebuild.texi: Likewise.
6484         * doc/standards.texi: Likewise.
6485
6486 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
6487
6488         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
6489         (LONGLONG_STANDALONE): Define.
6490
6491 2002-04-15  David S. Miller  <davem@redhat.com>
6492
6493         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
6494         Call emit_library_call with LCT_NORMAL.
6495         (sparc_initialize_trampoline): Use LCT_foo instead of
6496         magic constant in emit_library_call invocations.
6497         (sparc64_initialize_trampoline): Likewise.
6498         (sparc_profile_hook): Likewise.
6499         * config/sparc/sparc.md: Likewise.
6500
6501         * config/sparc/sparc.c (sparc_extra_constraint_check):
6502         Fix type of argument 'c'.
6503         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
6504         Likewise.
6505
6506 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
6507
6508         * diagnostic.h (output_buffer_state): Redefine.
6509         (output_format_decoder): New macro.
6510         (output_prefixing_rule): Likewise.
6511         (output_line_cutoff): Likewise.
6512         (diagnostic_format_decoder): Adjust.
6513         (diagnostic_prefixing_rule): Likewise.
6514         (diagnostic_line_cutoff): Likewise.
6515         (diagnostic_state): Likewise.
6516         (diagnostic_kind_count): Likewise.
6517         (diagnostic_buffer): Now a macro.
6518
6519         * diagnostic.c (diagnostic_buffer): Remove definition.
6520         (output_is_line_wrapping): Adjust.
6521         (set_real_maximum_length): Likewise.
6522         (output_set_maximum_length): Likewise.
6523         (init_output_buffer): Likewise.
6524         (lhd_print_error_function): Likewise.
6525         (output_do_verbatim): Likewise.
6526
6527 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
6528
6529         * cpperror.c (print_location): Don't print include chain
6530         if line == 0.
6531         (cpp_begin_message): Update to use DL_ macros.
6532         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
6533         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
6534         cpp_notice, cpp_notice_from_errno): Remove.
6535         (cpp_error, cpp_error_with_line): Update to take a diagnostic
6536         level.
6537         (cpp_errno): New.
6538         * cppexp.c (CPP_ICE): Remove.
6539         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
6540         lex, integer_overflow, _cpp_parse_expr): Update.
6541         * cppfiles.c (read_include_file, find_include_file,
6542         handle_missing_header, _cpp_read_file, remap_filename): Update.
6543         * cpphash.h (enum error_type): Remove.
6544         (_cpp_begin_message): Update.
6545         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
6546         cpp_handle_option, cpp_post_options): Update.
6547         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
6548         skip_whitespace, parse_identifier, parse_slow, parse_string,
6549         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
6550         cpp_interpret_charconst): Update.
6551         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
6552         lex_macro_node, do_undef, glue_header_name, parse_include,
6553         do_include_common, read_flag, do_line, do_linemarker, do_ident,
6554         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
6555         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
6556         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
6557         _cpp_pop_buffer, do_diagnostic): Update.
6558         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
6559         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
6560         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
6561         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
6562         cpp_notice, cpp_notice_from_errno): Remove.
6563         (cpp_error, cpp_error_with_line): Update to take a diagnostic
6564         level.
6565         (cpp_errno): New.
6566         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
6567         collect_args, enter_macro_context, save_parameter, parse_params,
6568         _cpp_create_definition, check_trad_stringification,
6569         cpp_macro_definition): Update.
6570         * cppmain.c (cpp_preprocess_file): Update.
6571         * fix-header.c (read_scan_file): Update.
6572
6573 2002-04-14  Andreas Schwab  <schwab@suse.de>
6574
6575         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
6576
6577 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
6578
6579         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
6580
6581 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
6582
6583         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
6584         not gnu_hurd.
6585
6586 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
6587
6588         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
6589
6590 2002-04-13      Joel Sherrill <joel@OARcorp.com>
6591
6592         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
6593         sparc-elf and sparc-rtems targets.
6594
6595 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
6596
6597         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
6598         defined, and __gnu_hurd__ wherever __GNU__ is defined.
6599         * arm/linux-elf.h: Likewise.
6600         * cris/aout.h: Likewise.
6601         * cris/linux.h: Likewise.
6602         * i370/linux.h: Likewise.
6603         * i386/gnu.h: Likewise.
6604         * i386/linux-aout.h: Likewise.
6605         * i386/linux-oldld.h: Likewise.
6606         * i386/linux.h: Likewise.
6607         * i386/linux64.h: Likewise.
6608         * ia64/linux.h: Likewise.
6609         * m68k/linux-aout.h: Likewise.
6610         * m68k/linux.h: Likewise.
6611         * mips/linux.h: Likewise.
6612         * pa/pa-linux.h: Likewise.
6613         * pj/linux.h: Likewise.
6614         * rs6000/sysv4.h: Likewise.
6615         * s390/linux.h: Likewise.
6616         * sh/linux.h: Likewise.
6617         * sparc/linux-aout.h: Likewise.
6618         * sparc/linux.h: Likewise.
6619         * sparc/linux64.h: Likewise.
6620         * xtensa/linux.h: Likewise.
6621
6622 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
6623
6624         * stmt.c (check_unique_operand_names): Expect operand names to
6625         be strings rather than identifiers.  Use simple_cst_equal to
6626         compare them.
6627         (resolve_operand_name_1): Make same identifier to string change here.
6628         * c-parse.in (asm_operand): Convert a named operand into a string.
6629         * cp/parse.y (asm_operand): Likewise.
6630
6631 2002-04-13  Andreas Schwab  <schwab@suse.de>
6632
6633         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
6634
6635 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
6636
6637         Revert these changes:
6638
6639         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
6640
6641         PR c++/5571
6642         * stor-layout.c (layout_decl): Reset the RTL for the decl.
6643
6644 2002-04-12  Richard Henderson  <rth@redhat.com>
6645
6646         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
6647         (sparc*-*-solaris): Clean up header files.
6648         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
6649         and plan on generating 64-bit code.
6650         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
6651         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
6652         * config/sparc/sol2-sld-64.h: Rename ...
6653         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
6654         for AS_SPARC64_FLAG not defined.
6655         * config/sparc/sol2-gld-bi.h: New.
6656         * config/sparc/sol2-sld.h: Remove.
6657         * config/sparc/sol26-sld.h: New.
6658         * config/sparc/sol2.h: Tidy comments.
6659         * doc/install.texi: Document sparc-solaris configury changes.
6660
6661 2002-04-12  Richard Henderson  <rth@redhat.com>
6662
6663         * recog.c (offsettable_address_p): Match the logic in adjust_address.
6664
6665         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
6666         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
6667
6668 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6669
6670         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
6671
6672 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
6673
6674         * pa.c (pa_can_combine_p): Call extract_insn before calling
6675         constrain_operands.
6676
6677 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
6678
6679         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
6680         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
6681         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
6682         (CPP_PREDEFINES): Handle __declspec.
6683         * config/i386/t-interix (USER_H): Remove.
6684
6685 2002-04-12  DJ Delorie  <dj@redhat.com>
6686
6687         * integrate.c (compare_blocks): Make comparisons safe for when
6688         sizeof(int) < sizeof(char *).
6689         (find_block): Likewise.
6690
6691 2002-04-12  Jan Hubicka  <jh@suse.cz>
6692             David Edelsohn  <edelsohn@gnu.org>
6693
6694         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
6695         registers.
6696         (symbol_ref_operand): New.
6697         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
6698         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
6699
6700 2002-04-12  Andreas Schwab  <schwab@suse.de>
6701
6702         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
6703         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
6704         overrides the definition in config/svr4.h.
6705
6706 2002-04-12      Eric Norum <eric.norum@usask.ca>
6707
6708         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
6709         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
6710         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
6711         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
6712         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
6713         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
6714         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
6715         definitions to config/rtems.h and make the targets more similar.
6716
6717 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6718
6719         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
6720         POINTERS_EXTEND_UNSIGNED.
6721         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
6722         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
6723
6724         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
6725         not specified.
6726
6727 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
6728
6729         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
6730         depends on TARGET_SHMEDIA, not TARGET_SH5.
6731
6732 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
6733
6734         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
6735         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
6736
6737 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
6738
6739         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
6740         no r0 clobber.
6741
6742 2002-04-12  Andreas Schwab  <schwab@suse.de>
6743
6744         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
6745
6746 2002-04-12  Richard Henderson  <rth@redhat.com>
6747
6748         PR bootstrap/4191
6749         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
6750
6751         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
6752         modes spanning multiple hard regs.
6753
6754         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
6755
6756 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6757
6758         * pa.c (pa_output_function_prologue): Don't accumulate the total
6759         number of code bytes when using TARGET_64BIT, or gas, SOM and not
6760         the portable runtime.
6761         (output_deferred_plabels): Handle 64bit plabels.
6762         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
6763         generating pic code using the GAS assembler for object formats that
6764         are not SOM (ie., ELF32 and ELF64).
6765         (output_millicode_call): Check attribute type if attribute length is 28.
6766         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
6767         dbr_sequence_length once.
6768         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
6769         dbr_sequence_length once.
6770         * pa.h (TARGET_SOM): Define if not defined.
6771         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
6772         with GAS and not SOM.
6773         (jump, call_internal_reg, call_value_internal_reg): Likewise.
6774         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
6775
6776 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6777
6778         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
6779         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
6780         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
6781         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
6782         elfos.h and dbxelf.h values are fine now.
6783         * config/i386/freebsd.h, config/alpha/freebsd.h
6784         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
6785
6786 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6787
6788         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
6789         or set Acpu or Amachine.  Reformat.
6790         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
6791         define.
6792         (LINK_SPEC): Do not need to undef.
6793         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
6794         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
6795         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
6796         define.
6797         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
6798         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
6799         (LINK_SPEC): Do not need to undef.
6800         (DONT_USE_BUILTIN_SETJMP): Do not define.
6801         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
6802         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
6803         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
6804         Remove trailing spaces.
6805         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
6806         __ELF__, or set Acpu or Amachine.  Reformat.
6807         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
6808         define.
6809
6810 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6811
6812         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
6813         all other *-*-freebsd* targets.
6814
6815 2002-04-11  Richard Henderson  <rth@redhat.com>
6816
6817         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
6818
6819 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
6820
6821         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
6822         Include {cpu}/{cpu}.h thru tm_file.
6823         (alpha*-*-linux*ecoff): Remove target.
6824         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
6825         (LINK_SPEC): Remove, is not OS independent.
6826         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
6827         (LINK_SPEC): Do not need to #undef any longer.
6828         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
6829         any longer.
6830         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
6831         __ELF__.
6832         (LINK_SPEC): Moved here from alpha/elf.h.
6833         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
6834         SUB_CPP_PREDEFINES.
6835         * config/alpha/linux-ecoff.h: Remove.
6836         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
6837         (CPP_SPEC): Define _POSIX_SOURCE as needed.
6838         (CPP_SUBTARGET_SPEC): Do not define.
6839         (LINK_SPEC): Do not need to #undef any longer.
6840         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
6841         * config/alpha/vms.h: Likewise.
6842
6843 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
6844
6845         * doc/extend.texi: Remove old claim that typedefs cannot have
6846         an alignment attribute.
6847
6848 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
6849
6850         PR optimization/6177
6851         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
6852         bitpos is 0 and bitsize CONCAT size.
6853
6854 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
6855
6856         PR c/6223
6857         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
6858
6859 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
6860
6861         * config/alpha/freebsd.h: Minor reformatting.
6862         (CPP_SPEC): Define ELF and add cpp_subtarget.
6863         (ASM_SPEC): No longer needed.
6864
6865 2002-04-11  Richard Henderson  <rth@redhat.com>
6866
6867         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
6868         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
6869         (dimode mem/zero splitter): New.
6870
6871 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
6872
6873         * config/cris/cris.c (cris_override_options): Tweak error message
6874         for PIC not implemented.
6875
6876         * config/cris/cris.h: Tweak comments related to parameter-passing.
6877
6878         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
6879
6880 2002-04-10  Richard Henderson  <rth@redhat.com>
6881
6882         * except.c (add_ehl_entry): Allow duplicates after landing pad
6883         creation.
6884
6885 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
6886
6887         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
6888
6889 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
6890
6891         * c-decl.c (c_init_decl_processing): Move generation of
6892         decls for g77_integer_type_node and friends from here ...
6893         * c-common.c (c_common_nodes_and_builtins): ... to here.
6894
6895 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
6896
6897         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
6898         is only used as frame pointer when frame_pointer_needed is true.
6899
6900 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
6901
6902         PR target/817
6903         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
6904         for the fact that the pool entry uses two words.
6905         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
6906         1k bytes.
6907         (movdf_soft_insn): Similarly.
6908         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
6909         for the fact that the pool entry uses three words.
6910
6911 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
6912
6913         * config/mips/mips.c (mips_va_arg): When using the struct version
6914         of the EABI va_list, allow arguments in the register save area to
6915         take up less room than a stack argument.
6916
6917 2002-04-10  Richard Henderson  <rth@redhat.com>
6918
6919         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
6920         if EXPAND_INITIALIZER.
6921
6922 2002-04-09  Richard Henderson  <rth@redhat.com>
6923
6924         * config/alpha/alpha.md (movdi_er_maybe_g): New.
6925         * config/alpha/alpha.c (alpha_expand_mov): Use it.
6926
6927 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
6928
6929         PR optimization/6233
6930         * rtlanal.c (pure_call_p): New function.
6931         * rtl.h (pure_call_p): Declare.
6932         * loop.c (prescan_loop): Use it to set has_nonconst_call.
6933         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
6934
6935 2002-04-09  Eric Christopher  <echristo@redhat.com>
6936
6937         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
6938         information to .comm directive.
6939
6940 2002-04-09  Richard Henderson  <rth@redhat.com>
6941
6942         PR c/5078
6943         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
6944
6945 2002-04-09  Richard Henderson  <rth@redhat.com>
6946
6947         * basic-block.h (flow_delete_block_noexpunge): Declare.
6948         (expunge_block_nocompact): Declare.
6949         * cfg.c (expunge_block_nocompact): Split out from ...
6950         (expunge_block): ... here.
6951         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
6952         (flow_delete_block_noexpunge): Split out from ...
6953         (flow_delete_block): ... here.
6954         * cfgcleanup.c (delete_unreachable_blocks): Compact while
6955         removing dead blocks.
6956         * except.c (exception_handler_labels): Remove.
6957         (exception_handler_label_map): New.
6958         (struct eh_region): Add aka member.
6959         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
6960         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
6961         (for_each_eh_label, for_each_eh_label_1): New.
6962         (init_eh): Register exception_handler_label_map.
6963         (free_eh_status): Use free_region.
6964         (find_exception_handler_labels): Use the map, not the list.
6965         (remove_exception_handler_label): Likewise.
6966         (maybe_remove_eh_handler): Likewise.
6967         (remove_eh_handler): Use the region aka bitmap.
6968         * except.h (exception_handler_labels): Remove.
6969         (for_each_eh_label): Declare.
6970         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
6971         * loop.c (invalidate_loops_containing_label): New.
6972         (find_and_verify_loops): Use it.  Use for_each_eh_label.
6973         * sched-rgn.c (is_cfg_nonregular): Use
6974         current_function_has_exception_handlers.
6975
6976 2002-04-09  Richard Henderson  <rth@redhat.com>
6977
6978         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
6979         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
6980         Do not return changed status.
6981         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
6982         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
6983         New functions that do return changed status.
6984         * sbitmap.h: Update decls.
6985         * gcse.c, lcm.c: Use _cg functions as needed.
6986
6987 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
6988
6989         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
6990         (sh64-*-elf*, sh-*-rtemself*): Likewise.
6991         * config/sh/embed_bb.c: New file.
6992         * config/sh/embed-elf.h: New file.
6993         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
6994         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
6995         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
6996         __PTRDIFF_TYPE__ .
6997         (SUBTARGET_CPP_PTR_SPEC): Don't define.
6998         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
6999         Add subtarget_asm_endian_spec.
7000         (ASM_SPEC): Use subtarget_asm_endian_spec.
7001         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
7002         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
7003         (WCHAR_UNSIGNED): Define.
7004         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
7005         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
7006         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
7007         Fix value.
7008         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
7009         (sh_adjust_cost): Likewise.
7010         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
7011         __PTRDIFF_TYPE__ .
7012         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
7013         (WCHAR_TYPE_SIZE): Likewise.
7014         (ASM_SPEC): Use subtarget_asm_endian_spec.
7015         (SH_ELF_WCHAR_TYPE): #undef/ #define.
7016         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
7017         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
7018         (MAX_WCHAR_TYPE_SIZE): Don't #define .
7019         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
7020         (USER_LABEL_PREFIX): Don't #undef /#define .
7021         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
7022         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
7023         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
7024         (ASM_SPEC): Likewise.
7025         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
7026         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
7027         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
7028         (LIB2FUNCS_EXTRA): Define.
7029         * t-sh64 (LIB2FUNCS_EXTRA): Define.
7030         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
7031         (LIB1ASMFUNCS_CACHE): Define.
7032         (LIB2FUNCS_EXTRA): Redefine empty.
7033
7034 2002-04-08  Richard Henderson  <rth@redhat.com>
7035
7036         * reorg.c (get_branch_condition): Use reversed_comparison_code.
7037
7038 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7039
7040         * config/m68hc11/larith.asm (__map_data_section): Fix condition
7041         and optimize for size.
7042         (__do_global_ctors): Fix pointer comparison.
7043         (__do_global_dtors): Likewise.
7044
7045 2002-04-09  David S. Miller  <davem@redhat.com>
7046
7047         * config/sparc/sparc.c (sparc_extra_constraint_check): New
7048         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
7049         allow reloading pseudos.
7050         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
7051         * config/sparc/sparc-protos.h: Declare it.
7052
7053         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
7054         unsigned comparison warning.
7055         (output_restore_regs): Mark leaf_function as unused.
7056
7057 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7058
7059         * expr.c (is_aligning_offset): New function.
7060         (expand_expr, case COMPONENT_EXPR): Call it.
7061
7062 2002-04-08  David S. Miller  <davem@redhat.com>
7063
7064         PR target/6082
7065         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
7066
7067         Make init_priority work on Sparc when using GNU ld.
7068         * config/sparc/linux.h, config/sparc/linux64.h,
7069         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
7070         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
7071         * config/sparc/sol2-gld.h: New file to do the same.
7072         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
7073         sparc/sol2-gld.h to tm_file.
7074
7075         PR optimization/4328
7076         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
7077         * doc/md.texi: Document it.
7078         * config/sparc/sparc.md (movdi_insn_sp64_novis,
7079         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
7080         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
7081         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
7082         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
7083
7084 2002-04-08  Andreas Jaeger  <aj@suse.de>
7085
7086         * stmt.c (expand_asm_operands): Revert last patch from Richard
7087         Henderson.
7088
7089 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7090
7091         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
7092         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
7093
7094 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7095
7096         * doc/contrib.texi (Contributors): Add David O'Brien.
7097
7098 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
7099
7100         * configure.in (auto-build.h): Use target_alias and build_alias
7101         when running configure.
7102         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
7103         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
7104         * configure: Regenerate.
7105
7106 2002-04-07  David S. Miller  <davem@redhat.com>
7107
7108         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
7109
7110 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7111
7112         PR 5933
7113         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
7114         generating 32-bit pic code.
7115
7116 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
7117
7118         * cppinit.c (cpp_create_reader): Initialize
7119         discard_comments_in_macro_exp.
7120         (COMMAND_LINE_OPTIONS): Add "-CC" option.
7121         (cpp_handle_option): Handle "-CC" option.
7122         * cpplex.c (save_comment): If saving a C++ comment in
7123         a directive, convert it to a C comment.
7124         (_cpp_lex_direct): Pass second comment start character to
7125         save_comment to indicate comment type.
7126         * cpplib.c (_cpp_handle_directive): If processing
7127         a "#define" directive and discard_comments_in_macro_exp
7128         is false,  re-enable saving of comments.
7129         (lex_macro_node): If discard_comments_in_macro_exp is false,
7130         discard any comments before the macro identifier.
7131         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
7132         member.
7133         * cppmacro.c (cpp_get_token): If expanding a macro while
7134         processing a directive, discard any comments we might encounter.
7135         (parse_params): If discard_comments_in_macro_exp is false,
7136         ignore comments in the macro parameter list.
7137         * gcc.c (cpp_unique_options): Add "-CC" option.
7138         (option_map): Map "--comments-in-macros" to "-CC".
7139         * doc/cppopts.texi: Document "-CC" option.
7140         * f/lang-specs.h: Add "-CC" option.
7141         * testsuite/gcc.dg/cpp/maccom1.c: New test.
7142         * testsuite/gcc.dg/cpp/maccom2.c: New test.
7143         * testsuite/gcc.dg/cpp/maccom3.c: New test.
7144         * testsuite/gcc.dg/cpp/maccom4.c: New test.
7145         * testsuite/gcc.dg/cpp/maccom5.c: New test.
7146         * testsuite/gcc.dg/cpp/maccom6.c: New test.
7147
7148 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7149
7150         PR middle-end/6180
7151         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
7152
7153 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
7154
7155         PR c++/5571
7156         * stor-layout.c (layout_decl): Reset the RTL for the decl.
7157
7158         PR opt/5120
7159         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
7160         RTX_UNCHANGING_P for the functions arguments when a tail call
7161         is made.
7162
7163 2002-04-06  Jason Merrill  <jason@redhat.com>
7164
7165         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
7166         (parse_options_and_default_flags): Set them appropriately.
7167         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
7168
7169 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
7170
7171         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
7172         here.
7173
7174         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
7175         semicolon.
7176
7177         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
7178         types come in by-reference.  Fix typo in comment.
7179
7180 2002-04-05  David S. Miller  <davem@redhat.com>
7181
7182         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
7183         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
7184         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
7185         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
7186
7187 2002-04-05  David S. Miller  <davem@redhat.com>
7188
7189         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
7190         are not going to emit return instructions, emit at least a nop
7191         for the sake of sane backtraces.
7192
7193 2002-04-05  Richard Henderson  <rth@redhat.com>
7194
7195         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
7196
7197 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
7198
7199         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
7200
7201 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
7202
7203         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
7204         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
7205         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
7206
7207 2002-04-05  Andreas Schwab  <schwab@suse.de>
7208
7209         * c-convert.c: Include c-common.h.
7210         * Makefile.in (c-convert.o): Updated.
7211
7212 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
7213
7214         * mklibgcc.in: Use separate libgcc.map for each multilib.
7215         * Makefile.in (distclean): Don't remove libgcc.map here.
7216
7217 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
7218
7219         * Makefile.in (s-mlib): Handle --disable-multilib by separate
7220         genmultilib invocation.
7221
7222 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
7223
7224         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
7225         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
7226         to num_gprs for symmetry.
7227         * config/mips/mips.c: Adjust accordingly.
7228
7229 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
7230
7231         * c-common.c (truthvalue_conversion): Rename, update.
7232         * c-common.h (c_common_truthvalue_conversion): New.
7233         * c-convert.c (convert): Update.
7234         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
7235         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
7236         * c-typeck.c (build_binary_op, build_unary_op,
7237         build_conditional_expr): Update.
7238         * fold-const.c (constant_boolean_node, fold): Use langhook.
7239         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
7240         * langhooks.h (struct lang_hooks): New hook.
7241         * stmt.c (expand_decl_cleanup): Use langhook.
7242         * tree.h (truthvalue_conversion): Remove.
7243 objc:
7244         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
7245
7246 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
7247
7248         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
7249         Add rules to make null object file.
7250
7251 2002-04-04  Jim Blandy  <jimb@redhat.com>
7252
7253         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
7254         macro formal parameter names.
7255
7256 2002-04-04  David S. Miller  <davem@redhat.com>
7257
7258         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
7259
7260 2002-04-04  Richard Henderson  <rth@redhat.com>
7261
7262         PR middle-end/5099
7263         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
7264         Support copies into and out of memory.  Don't accept allows_reg
7265         and allows_mem as gospel.
7266
7267 2002-04-04  Richard Henderson  <rth@redhat.com>
7268
7269         PR opt/6165
7270         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
7271         (write_dependence_p): Likewise.
7272
7273 2002-04-04  Richard Henderson  <rth@redhat.com>
7274
7275         * predict.c (estimate_bb_frequencies): Do frequency calculation
7276         with a volatile temporary.
7277
7278 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
7279
7280         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
7281
7282 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
7283
7284         PR c++/6119
7285         * final.c (final_start_function): Don't bump profile_label_no here...
7286         (final_end_function): ...but here.
7287
7288 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
7289
7290         * config/sparc/sparc.md (pic): New attribute.
7291         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
7292         into stack slots.
7293         (split after do_builtin_setjmp_setup): New.
7294
7295 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
7296
7297         PR fortran/6106
7298         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
7299         change.
7300
7301 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
7302
7303         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
7304         UNITS_PER_WORD for zero sized aggregates.
7305
7306 2002-04-03  David S. Miller  <davem@redhat.com>
7307
7308         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
7309         one-character spec for this, just use %(link_gcc_c_sequence).
7310
7311 2002-04-03  David S. Miller  <davem@redhat.com>
7312
7313         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
7314         handling.
7315
7316 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7317
7318         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
7319         (DWARF_FRAME_RETURN_COLUMN): Move.
7320         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
7321         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
7322         * pa.c (except.h, predict.h): Include.
7323         (FRP): Delete.
7324         (store_reg_modify, set_reg_plus_d): Revise prototypes.
7325         (output_ascii): Add cast.
7326         (store_reg_modify): Revise to add frame notes.
7327         (set_reg_plus_d): Likewise.
7328         (compute_frame_size): Include space for eh data registers in frame if
7329         the current function calls eh_return.
7330         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
7331         function calls eh_return.  Save eh data registers if the current
7332         function calls eh_return.  Fix code to add frame notes.  Emit
7333         blockage to prevent insns with frame notes being scheduled in the
7334         delay slot of calls.
7335         (hppa_expand_epilogue): Restore eh data registers and do final stack
7336         adjustment if the current function calls eh_return.  Don't add frame
7337         notes.
7338         (output_call): Revise for change in length of call insn.  Don't do
7339         return pointer adjustment for an unconditional jump in the delay slot
7340         of a call when using frame notes.
7341         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
7342         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
7343         (ARG_POINTER_CFA_OFFSET): Define.
7344         * pa.md (return_external_pic): New pattern.
7345         (prologue): Correct formatting.  Use return_external_pic if current
7346         function calls eh_return.
7347         (call_internal_symref, call_value_internal_symref,
7348         sibcall_internal_symref, sibcall_value_internal_symref): Change default
7349         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
7350         respectively.
7351         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
7352
7353         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
7354         list of targets to check using "nop" insn.
7355         * configure: Rebuilt.
7356
7357 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
7358
7359         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
7360
7361 2002-04-03  David S. Miller  <davem@redhat.com>
7362
7363         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
7364         library sequence passed to the linker.
7365         (LINK_COMMAND_SPEC): Use it.
7366         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
7367         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
7368         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
7369
7370 2002-04-03  Jason Merrill  <jason@redhat.com>
7371
7372         * except.c (struct eh_status): Remove protect_list.
7373         (begin_protect_partials, end_protect_partials): Remove.
7374         (add_partial_entry): Remove.
7375         * except.h: Remove prototypes.
7376
7377         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
7378         expand_decl_cleanup_eh.
7379
7380         PR c++/5636
7381         * tree.h (CLEANUP_EH_ONLY): New macro.
7382         * stmt.c (expand_decl_cleanup_eh): New fn.
7383         (expand_cleanups): Check CLEANUP_EH_ONLY.
7384         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
7385         Use expand_decl_cleanup_eh.
7386         (expand_stmt): Adjust.
7387         * c-common.h: Adjust prototype.
7388
7389 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
7390
7391         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
7392         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
7393         (cris_target_asm_function_epilogue): Ditto.
7394         (cris_initial_frame_pointer_offset): Ditto.
7395         (cris_simple_epilogue): Ditto.
7396         (cris_expand_builtin_va_arg): Variable-size types come in
7397         by-reference.
7398
7399 2002-04-03  David S. Miller  <davem@redhat.com>
7400
7401         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
7402         little-endian.
7403         (set_fast_math): Correct 'fsr' type.
7404
7405 2002-04-03  Richard Henderson  <rth@redhat.com>
7406
7407         PR opt/3569
7408         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
7409         * toplev.c (check_global_declarations): Use it.
7410         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
7411         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
7412         (LANG_HOOKS_DECLS): Add it.
7413         * langhooks.c (lhd_warn_unused_global_decl): New.
7414         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
7415         * c-objc-common.c (c_warn_unused_global_decl): New.
7416         * c-tree.h (c_warn_unused_global_decl): Declare.
7417         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
7418
7419 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
7420
7421         * langhooks-def.h (lhd_set_decl_assembler_name,
7422         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
7423         (LANG_HOOKS_INITIALIZER): Update.
7424         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
7425         * langhooks.h (struct lang_hooks): New hook.
7426         * tree.c (set_decl_assembler_name): Move to langhooks.c.
7427         (lang_set_decl_assembler_name): Remove.
7428         (init_obstacks): Don't set hook.
7429         (decl_assembler_name): New function.
7430         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
7431         (decl_assembler_name): New.
7432         (lang_set_decl_assembler_name): Remove.
7433
7434 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
7435
7436         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
7437         works properly with .hidden symbols.
7438         * configure: Rebuilt.
7439         * config.in: Rebuilt.
7440         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
7441         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
7442         properly with .hidden symbols.
7443
7444 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
7445
7446         PR middle-end/6102
7447         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
7448         USE argument.
7449
7450 2002-04-03  Richard Henderson  <rth@redhat.com>
7451
7452         PR opt/4120
7453         * sched-rgn.c (sets_likely_spilled): New.
7454         (sets_likely_spilled_1): New.
7455         (add_branch_dependences): Use it.
7456
7457 2002-04-02  Richard Henderson  <rth@redhat.com>
7458
7459         PR opt/4311
7460         * loop.h (LOOP_FIRST_PASS): New.
7461         * loop.c (strength_reduce): Mind it when deciding to unroll.
7462         * toplev.c (rest_of_compilation): Set it.
7463
7464 2002-04-02  David S. Miller  <davem@redhat.com>
7465
7466         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
7467         mems_ok_for_ldd_peep when the order of the loads being examined
7468         is reversed.
7469         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
7470         existing comment to increase comprehension of this situation.
7471
7472 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
7473
7474         * config/sh/sh.md: Don't use union real_extract.
7475
7476 2002-04-02  Richard Henderson  <rth@redhat.com>
7477
7478         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
7479
7480 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
7481
7482         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
7483         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
7484         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
7485         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
7486         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
7487         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
7488         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
7489         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
7490         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
7491         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
7492         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
7493         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
7494         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
7495         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
7496         Include as many configury headers via tm_file as possible.  This
7497         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
7498         * config/openbsd-oldgas.h: New file.
7499         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
7500         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
7501         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
7502         config/i386/i386-coff.h, config/i386/i386-interix.h,
7503         config/i386/iscdbx.h, config/i386/linux-aout.h,
7504         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
7505         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
7506         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
7507         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
7508         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
7509         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
7510         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
7511         config/i386/vxi386.h: Do not directly include configury headers.
7512         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
7513         Directly include configury headers that are no longer automatically
7514         included by the above headers.
7515         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
7516         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
7517         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
7518         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
7519         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
7520         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
7521         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
7522         (TARGET_VERSION): Define.
7523         * config/i386/beos-elf.h, config/i386/freebsd.h,
7524         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
7525         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
7526         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
7527         config/i386/sco5.h, config/i386/sysv4.h
7528         (TARGET_VERSION): Do not need to protect.
7529         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
7530         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
7531         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
7532         config/i386/i386-interix.h, config/i386/linux-aout.h,
7533         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
7534         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
7535         (YES_UNDERSCORES): Do not define - not needed.
7536         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
7537         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
7538         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
7539         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
7540         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
7541         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
7542         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
7543         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
7544
7545 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
7546             Richard Henderson  <rth@redhat.com>
7547
7548         PR c/5484
7549         * function.c (assign_temp): Accept either type or decl argument.
7550         Detect variables whose size is too large to fit into an integer.
7551         * stmt.c (expand_decl): Pass the decl, not the type.
7552
7553 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
7554
7555         * protoize.c: Match include directory usage with cppdefault.c.
7556
7557 2002-04-03  Jeffrey A Law  (law@redhat.com)
7558             Hans-Peter Nilsson  <hp@bitrange.com>
7559
7560         * combine.c (simplify_comparison): Avoid narrowing a comparison
7561         with a paradoxical subreg when doing so would drop signficant bits.
7562
7563 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
7564
7565         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
7566         if POINTERS_EXTEND_UNSIGNED is defined.
7567
7568 2002-04-02  Richard Henderson  <rth@redhat.com>
7569
7570         PR opt/3967
7571         * local-alloc.c (contains_replace_regs): LO_SUM may contain
7572         replace regs.
7573
7574 2002-04-02  Richard Henderson  <rth@redhat.com>
7575
7576         * doc/standards.texi: Document required freestanding libc entry points.
7577
7578 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
7579
7580         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
7581         associated splitter.  Remove MQ constraint.
7582         (ctrdi_internal4): Correct CCmode clobber.
7583
7584 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7585
7586         * milli64.S ($$dyncall): New function.
7587         * t-linux (LIB1ASMFUNCS): Revise module list.
7588         (LIB1ASMSRC): Use pa/milli64.S.
7589
7590 2002-04-02  Richard Henderson  <rth@redhat.com>
7591
7592         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
7593         rename solaris_sys_varargs_h.
7594
7595 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7596
7597         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
7598         the same mode as its component.
7599
7600 2002-04-02  Richard Henderson  <rth@redhat.com>
7601
7602         PR opt/190
7603         * final.c (this_is_asm_operands): Export.
7604         * output.h (this_is_asm_operands): Declare.
7605         * config/i386/i386.c (print_operand): Error odd asm operands.
7606
7607 2002-04-02  Richard Henderson  <rth@redhat.com>
7608
7609         PR opt/420
7610         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
7611
7612 2002-04-01  Richard Henderson  <rth@redhat.com>
7613
7614         PR target/1538
7615         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
7616         * fixinc/fixincl.x: Rebuild.
7617
7618 2002-04-01  Richard Henderson  <rth@redhat.com>
7619
7620         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
7621         (atomic_alloc, atomic_free): New.
7622         (SIZE, MASK_FOR, PTR_IN): New.
7623         (emergency_reg_state, emergency_reg_state_free): New.
7624         (emergency_labeled_state, emergency_labeled_state_free): New.
7625         (reg_state_alloced, labeled_state_alloced): New.
7626         (alloc_reg_state, free_reg_state): New.
7627         (alloc_label_state, free_label_state, free_label_states): New.
7628         (push, pop, dup_state_stack, free_state_stack): Use them.
7629         (desc_label_state): Likewise.
7630         (uw_frame_state_for): Free label states and state stack.
7631         (uw_update_reg_address): Eliminate warnings.
7632
7633 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
7634
7635         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
7636         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
7637
7638 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
7639
7640         * c-decl.c (grokdeclarator): Update.
7641         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
7642         * c-tree.h (c_mark_addressable): New.
7643         * c-typeck.c (default_function_array_conversion, build_unary_op,
7644         build_array_ref, convert_for_assignment): Update.
7645         (mark_addressable): Rename.
7646         * calls.c (try_to_integrate, expand_call): Use langhook.
7647         * expr.c (expand_expr): Use langhook.
7648         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
7649         * langhooks.h (struct lang_hooks): New hook.
7650         * stmt.c (expand_asm_operands): Use langhook.
7651         * tree.h (mark_addressable): Remove.
7652 objc:
7653         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
7654
7655 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
7656
7657         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
7658         in previous change.
7659
7660 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
7661
7662         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
7663         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
7664
7665 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
7666
7667         * c-common.c (unsigned_conversion_warning, convert_and_check,
7668         unsigned_type, signed_type, shorten_compare,
7669         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
7670         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
7671         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
7672         New.
7673         * c-decl.c (grokdeclarator): Update.
7674         * c-format.c (check_format_types): Update.
7675         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
7676         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
7677         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
7678         * convert.c (convert_to_integer): Use new hooks.
7679         * expmed.c (make_tree): Use new hooks.
7680         * expr.c (store_expr): Use new hooks.
7681         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
7682         all_ones_mask_p, unextend, fold): Use new hooks.
7683         * langhooks.h (struct lang_hooks_for_types): New hooks.
7684         * tree.h (signed_or_unsigned_type, signed_type,
7685         unsigned_type): Remove.
7686 objc:
7687         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
7688         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
7689
7690 2002-03-31  Richard Henderson  <rth@redhat.com>
7691
7692         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
7693         (desc_frgr_mem): Fix reference to f16-f31.
7694
7695 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7696
7697         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
7698         RTVEC_ELT): Const-ify.
7699         * varray.h (VARRAY_CHECK): Const-ify.
7700         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
7701         ggc_mark_rtvec, ggc_mark): Const-ify.
7702
7703 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
7704
7705         * diagnostic.c: Include langhooks-def.h.
7706         * Makefile.in (diagnostic.o): Update.
7707
7708 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
7709
7710         * c-common.c (c_unsafe_for_reeval): Rename.
7711         * c-common.h (c_unsafe_for_reeval): Rename.
7712         * c-decl.c (finish_incomplete_decl): Rename.
7713         (c_init_decl_processing): Don't set langhook.
7714         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
7715         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
7716         * c-objc-common.c (c_objc_common_init): Don't set langhook.
7717         * c-tree.h (finish_incomplete_decl): Rename.
7718         * langhooks-def.h (lhd_unsafe_for_reeval): New.
7719         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
7720         (LANG_HOOKS_INITIALIZER): Update.
7721         * langhooks.c (lhd_unsafe_For_reeval): New.
7722         * langhooks.h (struct langhooks): New hooks.
7723         * toplev.c (incomplete_decl_finalize_hook): Remove.
7724         (wrapup_global_declarations): Update.
7725         * tree.c (lang_unsafe_for_reeval): Remove.
7726         (unsafe_for_reeval): Update.
7727         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
7728         Remove.
7729 objc:
7730         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
7731         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
7732
7733 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
7734
7735         * diagnostic.c (print_error_function): Remove.
7736         (default_print_error_function): Rename.
7737         (report_error_function): Update.
7738         * diagnostic.h (print_error_function): Remove.
7739         (default_print_error_function): Remove.
7740         * langhooks-def.h (struct diagnostic_context): Predeclare.
7741         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
7742         (LANG_HOOKS_INITIALIZER): Update.
7743         * langhooks.h (struct diagnostic context): Predeclare.
7744         (struct lang_hooks): New hook.
7745
7746 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7747
7748         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
7749         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
7750         !flag_pic.
7751         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
7752         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
7753         of PIC_OFFSET_TABLE_REGNUM thruout.
7754         * config/rs6000/rs6000.md: Likewise.
7755         * config/rs6000/darwin.h: Likewise.
7756
7757 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7758
7759         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
7760         unsigned HOST_WIDE_INT, not unsigned int.
7761
7762 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
7763
7764         PR middle-end/6096, middle-end/6098, middle-end/6099
7765         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
7766         CODE_LABELs.
7767         (fill_slots_from_thread): Likewise.
7768
7769 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
7770
7771         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
7772         floating fields in float regs.
7773         (function_arg_record_value_2): Likewise.
7774
7775 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
7776
7777         * config/mmix/mmix.md (define_constants): Remove misleading
7778         FIXME.  Add MMIX_fp_rO_OFFSET.
7779         ("nonlocal_goto_receiver"): Don't have stack-frame address of
7780         saved rO as part of the pattern.  Remove FIXME.
7781         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
7782         here, at output-time.
7783
7784 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
7785
7786         PR middle-end/6100
7787         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
7788         REG_BR_PRED.
7789         (output_v9branch): Likewise.
7790
7791 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
7792
7793         * gcc.c: Revert previous patch for now.
7794         * config/i386/djgpp.h: Likewise.
7795
7796 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
7797
7798         * config/mmix/crti.asm (_init): Register _fini with atexit.
7799         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
7800
7801 2002-03-31  Richard Henderson  <rth@redhat.com>
7802
7803         PR target/3997
7804         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
7805         (ASM_OUTPUT_DEF_FROM_DECLS): New.
7806
7807 2002-03-31  Richard Henderson  <rth@redhat.com>
7808
7809         * libgcc2.c (__bb_exit_func): Make static.
7810
7811         * config/alpha/alpha.md (trap): New.
7812
7813 2002-03-31  Richard Henderson  <rth@redhat.com>
7814
7815         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
7816         promoted argument types; build trap.
7817         (expand_builtin_trap): New.
7818         (expand_builtin): Use it.
7819         * stmt.c (expand_nl_goto_receivers): Likewise.
7820         * expr.h (expand_builtin_trap): Declare.
7821         * libfuncs.h (LTI_abort, abort_libfunc): New.
7822         * optabs.c (init_optabs): Init abort_libfunc.
7823
7824 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
7825
7826         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
7827         (LINK_COMMAND_SPEC): ... from here.
7828         (init_gcc_specs): Duplicate it here too, omitting
7829         shared_name in the second copy.
7830         (init_spec): Test for duplicate
7831         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
7832
7833 2002-03-30  David S. Miller  <davem@redhat.com>
7834
7835         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
7836         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
7837
7838 2002-03-30  Roger Sayle <roger@eyesopen.com>
7839             Richard Henderson  <rth@redhat.com>
7840
7841         * regmove.c (combine_stack_adjustments_for_block): Avoid
7842         emitting a stack adjustment of zero bytes.  Let delete_insn
7843         update bb->head.
7844
7845 2002-03-30  Richard Henderson  <rth@redhat.com>
7846
7847         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
7848         (sparc_emitting_epilogue): New.
7849         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
7850         * config/sparc/sparc-protos.h: Update.
7851         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
7852         (TARGET_SWITCHES): Update.
7853         * config/sparc/sparc.md (return): Remove.
7854         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
7855         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
7856         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
7857         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
7858         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
7859         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
7860         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
7861         Remove MASK_EPILOGUE.
7862         * doc/invoke.texi: Update.
7863
7864 2002-03-30  Daniel Berlin  <dan@dberlin.org>
7865
7866         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
7867         CPP will start the file for us.
7868
7869 2002-03-30  Richard Henderson  <rth@redhat.com>
7870
7871         PR target/5446
7872         * config/ia64/ia64.c (group_barrier_needed_p): Special case
7873         prologue_allocate_stack.
7874         (ia64_single_set): Use insn codes for recognition of special
7875         cases, not rtl matching.
7876         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
7877
7878 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
7879
7880         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
7881
7882 2002-03-30  Richard Henderson  <rth@redhat.com>
7883
7884         PR target/6032
7885         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
7886         or -fomit-frame-pointer with profiling.
7887         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7888         (FUNCTION_PROFILER): Do nothing.
7889         (PROFILE_HOOK): New.
7890         * config/sparc/sparc.c (sparc_override_options): Don't check
7891         code models for profiling.
7892         (sparc_function_profiler): Remove.
7893         (sparc_profile_hook): New.
7894         * config/sparc/sparc-protos.h: Update.
7895
7896 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
7897
7898         PR optimization/6086
7899         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
7900         of SUBREG of volatile MEM or because the MEM was mode dependent,
7901         return CLOBBER instead of unmodified SUBREG.
7902
7903 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
7904
7905         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
7906         when not optimizing.
7907
7908         * toplev.c (rest_of_compilation): Cann mark_constant_function
7909         only when optimizing.
7910
7911         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
7912         are NULL.
7913
7914         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
7915         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
7916         (try_optimize_cfg): clear all AUX fields.
7917
7918         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
7919         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
7920         (ix86_address_cost): Be prepared for SUBREGed registers.
7921         (legitimate_address_p): Accept SUBREGed registers.
7922
7923 2002-03-29  Richard Henderson  <rth@redhat.com>
7924
7925         PR target/5672
7926         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
7927
7928 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7929
7930         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
7931         for aggregate and TFmode types.
7932
7933 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
7934
7935         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
7936
7937 2002-03-29  Richard Henderson  <rth@redhat.com>
7938
7939         PR target/5886
7940         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
7941         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
7942
7943 2002-03-29  Richard Henderson  <rth@redhat.com>
7944
7945         PR target/6041
7946         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
7947         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
7948         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
7949         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
7950         conditional.
7951         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
7952
7953 2002-03-29  Dale Johannesen <dalej@apple.com>
7954
7955         * loop.c (combine_movables): Do allow combination of pseudos.
7956
7957 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
7958
7959         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
7960         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
7961         No functional change except ...
7962         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
7963         * doc/install.texi (*-*-freebsd*): Document port configuration.
7964
7965 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7966
7967         * Makefile.in (convert.o, calls.o, expmed.o): Update.
7968         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
7969         Use new hooks.
7970         * builtin-types.def (BT_PTRMODE): Update.
7971         * c-common.c (type_for_size): Rename c_common_type_for_size.
7972         (type_for_mode): Similarly.
7973         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
7974         Use new hook.
7975         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
7976         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
7977         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
7978         Redefine.
7979         * c-typeck.c (common_type, comptypes, default_conversion):
7980         Use new hooks.
7981         * calls.c: Include langhooks.h.
7982         (emit_library_call_value_1): Use new hooks.  Avoid redundant
7983         calls.
7984         * convert.c: Include langhooks.h
7985         (convert_to_pointer, convert_to_integer): Use new hooks.
7986         * except.c (init_eh): Similarly.
7987         * expmed.c: Include langhooks.h.
7988         (expand_mult_add): Use new hooks.
7989         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
7990         try_casesi): Similarly.
7991         * fold-const.c (optimize_bit_field_compare, make_range,
7992         decode_field_reference, fold_truthop, fold): Similarly.
7993         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
7994         put_var_into_stack): Similarly.
7995         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
7996         LANG_HOOKS_TYPE_FOR_SIZE): New.
7997         (LANG_HOOKS_TYPES_INITIALIZER): Update.
7998         * langhooks.h (lang_hooks_for_types): New hooks.
7999         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
8000         * tree.c (get_unwidened, get_narrower): Similarly.
8001         * tree.h (type_for_mode, type_for_size): Remove.
8002         * varasm.c (force_const_mem): Use new hooks.
8003         * utils2.c (nonbinary_modular_operation): Update.
8004 objc:
8005         * objc-act.c (handle_impent): Update.
8006         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
8007         Redefine.
8008
8009 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
8010
8011         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
8012         * config/ia64/ia64.c (basereg_operand): New.
8013         * config/ia64/ia64-protos.h (basereg_operand): Declare.
8014         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
8015
8016 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
8017
8018         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
8019         unwind information when frame_pointer_needed.
8020         (mmix_assemble_integer): Tweak wording in comment.
8021
8022 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
8023
8024         * Makefile.in (except.o): Update.
8025         * except.c: Include langhooks.h.
8026         (init_eh): Use langhook.
8027         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
8028         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
8029         (LANG_HOOKS_INITIALIZER): Update.
8030         * langhooks.h (lang_hooks_for_types): New.
8031         (struct lang_hooks): Add it.
8032         * tree.c (make_lang_type_fn, make_lang_type): Remove.
8033         * tree.h (make_lang_type_fn, make_lang_type): Remove.
8034 config:
8035         * alpha/alpha.c: Include langhooks.h.
8036         (alpha_build_va_list): Use langhook.
8037         * d30v/d30v.c: Include langhooks.h.
8038         (d30v_build_va_list): Use langhook.
8039         * i386/i386.c: Include langhooks.h.
8040         (ix86_build_va_list): Use langhook.
8041         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
8042         * s390/s390.c: Include langhooks.h.
8043         (s390_build_va_list): Use langhook.
8044         * stormy16/stormy16.c: Include langhooks.h.
8045         (stormy16_build_va_list): Use langhook.
8046
8047 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
8048
8049         PR c++/5964
8050         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
8051         attributes.
8052         (length): Compute variable length for branches/calls/jumps here.
8053         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
8054         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
8055         define branch_type attribute.
8056         (divsi3_sp32): Maximum length is 6 not 7.
8057         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
8058         call_address_untyped_struct_value_sp32,
8059         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
8060         * config/sparc/sparc.c (empty_delay_slot): New function.
8061         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
8062         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
8063
8064 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
8065
8066         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
8067         nonzero_bits if not needed.
8068         (nonzero_bits) [XOR]: Likewise.
8069         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
8070         reg_last_set_mode and mode are both MODE_INT, but not equal.
8071         (record_value_for_reg): Compute reg_last_set_nonzero_bits
8072         in nonzero_bits_mode for MODE_INT modes.
8073
8074 2002-03-28  Richard Henderson  <rth@redhat.com>
8075
8076         PR target/5715
8077         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
8078         to GAS.  Correct drift between alternatives.
8079
8080 2002-03-28  Richard Henderson  <rth@redhat.com>
8081
8082         PR target/6087
8083         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
8084
8085 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
8086
8087         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
8088         emulation to the linker.
8089
8090 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
8091
8092         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
8093         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
8094
8095 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
8096
8097         * combine.c (simplify_and_const_int): Make sure to apply mask
8098         when force_to_mode returns a constant integer.  PR3311.
8099
8100 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8101
8102         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
8103
8104 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8105
8106         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
8107         and Objective-C Dialect Options.
8108
8109 2002-03-28  Richard Henderson  <rth@redhat.com>
8110
8111         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
8112         comparison should be done vs !=0 not >0 return code.  Tidy cases.
8113
8114 2002-03-28  Richard Henderson  <rth@redhat.com>
8115
8116         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
8117         on to c_expand_body.
8118         * c-tree.h (finish_function): Update decl.
8119         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
8120
8121 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
8122
8123         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
8124
8125 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
8126
8127         * rtlanal.c: Include flags.h
8128         (may_trap_p): Do not mark FP operations if trapping
8129         if !flag_trapping_math
8130         * Makefile.in (rtlanal.o): Add dependency on flag.h
8131         * ifcvt.c (noce_operand_ok): Avoid the lameness.
8132
8133 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
8134
8135         * mips.md: Use dconst1, not 1.0, as first argument of
8136         REAL_VALUE_LDEXP.  Don't use union real_extract.
8137
8138 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
8139
8140         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
8141         rather than $target.  Heed program_prefix and
8142         program_transform_name.  Search for gas in cross-compiler case too.
8143         "test -x" rather than "test -f".
8144         (gcc_cv_ld): Likewise.
8145         (gcc_cv_nm): Heed program_prefix and program_transform_name.
8146         (gcc_cv_objdump): Likewise.
8147         * configure: Regenerate.
8148
8149 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
8150
8151         * Makefile.in (attribs.o): Update.
8152         * attribs.c: Include langhooks.h.
8153         (decl_attributes): Use langhook.
8154         * c-decl.c (insert_default_attributes): Rename.
8155         * c-tree.h (c_insert_default_attributes): New.
8156         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
8157         (LANG_HOOKS_INITIALIZER): Update.
8158         * langhooks.h (struct lang_hooks): New hook.
8159         * tree.h (insert_default_attributes): Remove.
8160 objc:
8161         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
8162
8163 2002-03-27  Andreas Schwab  <schwab@suse.de>
8164
8165         * config/i386/i386.c (classify_argument): Also check for
8166         QUAL_UNION_TYPE.
8167
8168 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8169
8170         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
8171         any more.
8172
8173 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
8174
8175         * i960.md (ret): Set PC.
8176         (nonlocal_goto): Fix expander.
8177         * builtins.c (epxand_builin_longjmp): Check that we've emitted
8178         some jump or call.
8179
8180 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
8181
8182         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
8183         of libcall regions.
8184
8185 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
8186
8187         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
8188         assigning to BLOCK_FOR_INSN directly.
8189
8190 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
8191
8192         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
8193
8194 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
8195
8196         * c-common.c (c_expand_expr): Fix prototype.
8197         * c-common.h (c_expand_expr): Always declare, update.
8198         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
8199         * c-objc-common.c (c_objc_common_init): No global hook.
8200         * expr.c (expand_expr): Use langhook.
8201         * expr.h (enum expand_modifier): Conditionally declare.
8202         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
8203         (LANG_HOOKS_INITIALIZER): Update.
8204         * langhooks.c (lhd_expand_expr): New.
8205         * langhooks.h (struct lang_hooks): New hook.
8206         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
8207         (lang_independent_init): Don't default hook.
8208 objc:
8209         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
8210
8211 2002-03-27  Richard Henderson  <rth@redhat.com>
8212
8213         PR target/6054
8214         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
8215         TARGET_CONST_GP.  Simplify conditions.
8216
8217 2002-03-27  Richard Henderson  <rth@redhat.com>
8218
8219         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
8220         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
8221         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
8222
8223 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
8224
8225         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
8226         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
8227         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
8228         Remove unnecessary masks.
8229         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
8230         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
8231         -mwindows, -mdll switches and their negations.
8232
8233 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
8234
8235         * gcc-common.c (lang_mark_false_label_stack): Remove.
8236         * ggc.h (lang_mark_false_label_stack): Similarly.
8237
8238 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
8239
8240         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
8241
8242         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
8243         or __rtems_ is defined.
8244
8245 2002-03-26  Richard Henderson  <rth@redhat.com>
8246
8247         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
8248         if a non-trivial load was emitted.
8249         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
8250         in high+extra+low case.
8251
8252 2002-03-26  Richard Henderson  <rth@redhat.com>
8253
8254         * config.gcc (sparc*-solaris): Use float_format=sparc.
8255
8256 2002-03-26  Richard Henderson  <rth@redhat.com>
8257
8258         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
8259         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
8260         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
8261         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
8262         (WINT_TYPE_SIZE): Fix at 32.
8263
8264 2002-03-26  Richard Henderson  <rth@redhat.com>
8265
8266         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
8267         until after eh landing pad generation.
8268         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
8269         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
8270
8271 2002-03-26  Richard Henderson  <rth@redhat.com>
8272
8273         * expr.h (ADD_PARM_SIZE): One more convert for INC.
8274
8275 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
8276
8277         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
8278         and warning switches.
8279         (cc1_options):  Likewise.
8280
8281 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
8282
8283         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
8284         Restore more of the signal context.  Set no_reg_stack_frame.
8285         * config/ia64/unwind-ia64.c (unw_state_record):
8286         Add no_reg_stack_frame, comments.
8287         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
8288         (uw_update_context): Adjust bsp when unwinding from leaf,
8289         but not signal frame.
8290
8291 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
8292
8293         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
8294
8295 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
8296
8297         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
8298
8299 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
8300
8301         PR target/5621
8302         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
8303         "Add a pool_range attribute", which was lost during the ARM/Thumb
8304         merge.
8305
8306 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
8307
8308         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
8309         a register into the MAC16 accumulator.
8310
8311 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
8312
8313         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
8314         (Warning Options): Document -Wswitch-enum.
8315         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
8316         -Wswitch.
8317         (warn_switch_enum): Define variables.
8318         * flags.h (warn_switch_enum): Declare variables.
8319         * stmt.c (expand_end_case_type): When warn_switch_enum /
8320         -Wswitch-enum, perform switch checks.
8321         Fix PR c/5044.
8322
8323 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
8324
8325         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
8326         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
8327         (reload_muladdsi_compare0_scratch): Delete.
8328
8329 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
8330
8331         * doc/install.texi (*-*-freebsd*): Update.
8332
8333 2002-03-26  Richard Henderson  <rth@redhat.com>
8334
8335         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
8336         (SUB_PARM_SIZE): Cast DEC to ssizetype.
8337
8338         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
8339         types from the normal argument frame.
8340
8341         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
8342         variable sized objects by reference.
8343         (sparc_va_arg): Receive them by reference too.
8344
8345 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
8346
8347         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
8348         code to not restoring global registers.
8349
8350 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
8351
8352         * Makefile.in (ggc-common.o): Update.
8353         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
8354         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
8355         * c-tree.h (c_mark_tree): New.
8356         * ggc-common.c: Include langhooks.h.
8357         (gcc_mark_trees): Use new langhook.
8358         * ggc-callbacks.c: Delete file.
8359         * ggc.h (lang_mark_tree): Remove.
8360         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
8361         (LANG_HOOKS_INITIALIZER): Update.
8362         * langhooks.h (struct lang_hooks): New hook.
8363 objc:
8364         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
8365
8366 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
8367
8368         * doc/cpp.texi: Exclude entire Top node from printed manual.
8369         Move option index after directive index.  Insert page breaks
8370         before GFDL and concept index.  Index environment variables
8371         with command line options.
8372         * doc/cppenv.texi: Use @vtable for environment variable list.
8373         Add paragraph explaining semantics of empty elements in path
8374         variables.  Exclude a cross-reference to Fishkill from the
8375         manpage.  Remove an unnecessary cross-reference of the entry
8376         right above the referer.  Don't use @anchor in text that goes
8377         into manpage.
8378         * doc/cppopts.texi: Cross-reference the environment variables
8379         section, not the specific environment variable, for consistency.
8380
8381 2002-03-25  Richard Henderson  <rth@redhat.com>
8382
8383         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
8384         anywhere in the block.  Don't refer to insns that have been
8385         removed from the chain.  Iterate backward through the new insns.
8386         Don't refer to edges that have been removed.
8387
8388 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
8389
8390         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
8391         test for overflow of constant.
8392
8393 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
8394
8395         PR target/2623
8396         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
8397         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
8398         these patterns on arm_archv4.
8399
8400 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
8401
8402         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
8403         int".
8404
8405 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
8406
8407         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
8408         float_handled, float_handler, float_signal, set_float_handler,
8409         and do_float_handler.  Set handler for SIGFPE to crash_signal.
8410         * toplev.h: Don't prototype do_float_handler.
8411
8412         * c-lex.c: Fold parse_float into lex_number.  Make warning
8413         about portability of hex float constants more informative, and
8414         don't issue it on top of a syntax error.
8415         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
8416         their callers.
8417         * real.h: Define REAL_VALUE_ABS here...
8418         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
8419         simplify_unary_real, simplify_binary_real, and
8420         simplify_binary_is2orm1 into their callers.
8421         * tree.c: Fold build_real_from_int_cst_1 into caller.
8422
8423         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
8424
8425         * tsystem.h: Include float.h here...
8426         * libgcc2.c: ... not here.
8427
8428 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
8429
8430         Fixes for: PR bootstrap/3591, target/5676
8431         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
8432         defined.  Do not disable exceptions or rtti.
8433         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
8434         mcore.h.  Disable exceptions and rtti, since they are not
8435         supported by EPOC.
8436
8437 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
8438
8439         * c-decl.c (maybe_build_cleanup): Remove.
8440         * expr.c (expand_expr): Use langhook.
8441         * langhooks-def.h (lhd_return_null_tree,
8442         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
8443         (LANGHOOKS_INITIALIZER): Update.
8444         * langhooks.c (lhd_return_null_tree): New.
8445         * langhooks.h (struct lang_hooks): New hook.
8446         * tree-inline.c (initialize_inlined_parameters): Use langhook.
8447         * tree.h (maybe_build_cleanup): Remove.
8448
8449 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
8450
8451         * regrename.c (build_def_use): Move recog_memoized
8452         before extract_insn.
8453
8454 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
8455
8456         PR target/6043
8457         * expr.c (emit_group_store): Handle storing into CONCAT.
8458
8459 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
8460
8461         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
8462         corresponding MATCH_DUP.
8463
8464 2002-03-24  Richard Henderson  <rth@redhat.com>
8465
8466         * unroll.c (unroll_loop): Zero label_map.
8467
8468         * gcse.c: Include except.h.
8469         * Makefile.in (gcse.o): Update.
8470
8471 2002-03-24  Richard Henderson  <rth@redhat.com>
8472
8473         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
8474         Do resolve_unique_section before shared data clause.
8475
8476 2002-03-24  Richard Henderson  <rth@redhat.com>
8477
8478         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
8479
8480 2002-03-24  Richard Henderson  <rth@redhat.com>
8481
8482         * recog.c (peephole2_optimize): Split blocks when EH insns are
8483         generated in the middle of a block.  Do global life update if
8484         zapped EH edges.
8485
8486 2002-03-24  Richard Henderson  <rth@redhat.com>
8487
8488         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
8489
8490 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
8491
8492         preprocessor/3951
8493         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
8494         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
8495         (init_dependency_output): Don't make no_output decision here.
8496
8497 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
8498
8499         * stmt.c (check_for_full_enumeration_handling): Remove tests of
8500         warn_switch.  Update description.
8501         (expand_end_case_type): Call check_for_full_enumeration_handling
8502         when warn_switch.
8503
8504 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8505
8506         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
8507         (m68hc11_split_move): Call it to see if the source and destination
8508         operands use the same direction auto inc/dec mode, otherwise make the
8509         source an offsetable memory operand and generate an add.
8510
8511 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
8512
8513         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
8514         register for operand 2.
8515         ("*subsi3_zero_extendqi"): Likewise.
8516         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
8517         bits so that it is compatible with a pop.
8518         ("*andhi3_gen"): Likewise.
8519         ("xorhi3"): Likewise.
8520
8521 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
8522
8523         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
8524         -pedantic here...
8525         (cpp_post_options): ... not here.
8526
8527 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
8528             Aldy Hernandez  <aldyh@redhat.com>
8529
8530         Removal of separate preprocessor cpp0.
8531
8532         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
8533         cpp0, install-common): Update.
8534         * c-common.c (flag_preprocess_only): New.
8535         (c_common_init): Preprocess for -E.
8536         * c-common.h (flag_preprocess_only): New.
8537         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
8538         * c-objc-common.c (c_init_decl_processing): Exit quickly
8539         for NULL return from c_common_init.
8540         * cpplib.h (cpp_preprocess_file): New.
8541         * cppmain.c (main, general_init, pfile, progname): Remove.
8542         (do_preprocessing): Rename cpp_preprocess_file, don't call
8543         cpp_finish.  Don't close stdout here.
8544         (setup_callbacks): Update prototype.
8545         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
8546         Update.
8547         * tradcpp.c (main): Ignore -quiet.
8548 objc:
8549         * lang-specs.h (default_compilers): Preprocess with cc1obj.
8550
8551 2002-03-24  Richard Henderson  <rth@redhat.com>
8552
8553         PR optimization/5742
8554         * machmode.def: Add inner mode field to complex modes.
8555         * config/mips/mips.c (mips_function_value): Always define.  Add
8556         new argument to handle libcalls.
8557         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
8558         (FUNCTION_VALUE): Likewise.
8559         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
8560         * config/mips/mips-protos.h: Update.
8561
8562 2002-03-23  Richard Henderson  <rth@redhat.com>
8563
8564         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
8565         * config/sparc/sparc-protos.h: Update.
8566         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
8567
8568 2002-03-23  Richard Henderson  <rth@redhat.com>
8569
8570         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
8571         _start or _init begins the text segment.
8572
8573 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
8574
8575         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
8576         not HOST_WIDEST_INT.
8577         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
8578
8579 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
8580
8581         PR java/5489
8582         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
8583         operand argument to output_return_instruction.
8584         * arm.c (arm_print_operand, case 'd'): If the operand is
8585         const_true_rtx then just return.
8586         (arm_print_operand, case 'D'): If the operand is const_true_rtx
8587         then abort.
8588
8589 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
8590
8591         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
8592         (Warning Options): Document -Wswitch-default.
8593         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
8594         -Wswitch.
8595         (warn_switch_default): Define variable.
8596         (warn_switch): Update comment.
8597         * flags.h (warn_switch_default): Declare variable.
8598         (warn_switch): Update comment.
8599         * stmt.c (expand_end_case): Check for and, when
8600         warn_switch_no_default, warn of a missing default case.
8601
8602 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
8603
8604         * real.h (N): Special case 128 bit doubles.
8605
8606         * combine.c (simplify_comparison): When widening modes, ignore
8607         sign extension on CONST_INTs.
8608
8609 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
8610
8611         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
8612         passed to adjust_address.  Fix comment formatting.
8613
8614
8615 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
8616
8617         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
8618         Always make REAL_VALUE_TYPE a struct containing an array of
8619         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
8620         big it is.  Don't declare or use union real_extract.
8621
8622         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
8623         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
8624         (print_operand), config/arm/arm.c (output_move_double),
8625         config/arm/arm.md (consttable_4, consttable_8),
8626         config/romp/romp.c (output_fpops), config/s390/s390.h
8627         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
8628         (xtensa_output_literal): Don't use union real_extract.
8629
8630         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
8631         (sfmode_constant_to_ulong), config/ns32k/merlin.h
8632         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
8633         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
8634         (PRINT_OPERAND): Don't use local version of union
8635         real_extract.
8636
8637         * config/convex/convex.c (check_float_value), config/vax/vax.c
8638         (vax_float_literal), config/m88k/m88k.md (divdf3),
8639         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
8640         config/pdp11/pdp11.c (output_move_quad): Don't do host
8641         arithmetic on target floating point quantities.
8642
8643         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
8644         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
8645
8646         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
8647         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
8648
8649         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
8650         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
8651         INFINITY.
8652         * print-rtl.c (print_rtx): Disable code which needs
8653         floating-point emulator.
8654         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
8655         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
8656         depending on HOST_FLOAT_FORMAT to be defined properly.
8657
8658         * config/1750a/1750a.c (get_double, float_label): Delete.
8659         (print_operand): Delete huge commented-out chunk.  Use
8660         REAL_VALUE_TO_DECIMAL.
8661         * config/1750a/1750a-protos.h: Delete prototypes of deleted
8662         functions.
8663         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
8664         IEEE_FLOAT_FORMAT.
8665         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
8666         Use REAL_VALUE_TO_DECIMAL as ELF version does.
8667         * config/m88k/m88k.c (real_power_of_2_operand,
8668         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
8669         real_extract out of the union; run the input through
8670         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
8671         from that into the union.
8672         * config/pdp11/pdp11.c (output_move_double): Rearrange
8673         parentheses to make automatic indenter happy.
8674
8675         * doc/tm.texi (Cross-compilation): Rename node to "Floating
8676         Point" and rewrite to describe current situation.  Also adjust
8677         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
8678         match code.
8679         * doc/rtl.texi: Adjust cross reference.
8680
8681 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
8682
8683         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
8684         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
8685         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
8686         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
8687         prevent use of sp as a reload register.
8688         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
8689         non_acc_reg_operand.
8690         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
8691         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
8692         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
8693         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
8694
8695 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8696
8697         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
8698         * cpplex.c (unterminated): Delete.
8699         (parse_string): No string literal may extend over multiple
8700         lines.  Suppress the error when preprocessing assembly.
8701         * cppmain.c (scan_translation_unit): Strings are single-line.
8702
8703         * doc/cpp.texi: Update to match.
8704
8705 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
8706
8707         PR optimization/5854
8708         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
8709         Shut up warnings.
8710         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
8711         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
8712         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
8713         const0 if scratch register was not allocated.
8714         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
8715         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
8716         with GEN_INT (...).
8717         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
8718         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
8719         with GEN_INT (...) everywhere.  Remove constraints in define_split
8720         patterns.
8721         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
8722         require scratch register for setting 0 into regs/non-pushable memory.
8723
8724 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
8725
8726         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
8727         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
8728
8729 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
8730
8731         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
8732         * cppinit.c (cpp_create_reader):  On by default.
8733         (cpp_handle_option):  Handle -W[no-]endif-labels.
8734         (cpp_post_options):  Also enable if -pedantic.
8735         * cpplib.c (do_else):  Use it.
8736         (do_endif):  Likewise.
8737         * doc/cppopts.texi:  Document new option.
8738         * doc/invoke.texi:  Document new option.
8739
8740 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
8741
8742         * config/i386/i386.c, config/i386/i386.md: Change all occurences
8743         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
8744
8745 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
8746
8747         * flow.c (calculate_global_regs_live): Clear aux fields of
8748         ENTRY and EXIT.
8749
8750 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
8751
8752         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
8753         REG or MEM subregs, pass rtx * instead of rtx to it.
8754         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
8755         rtx * instead of rtx to alter_subreg.
8756         * config/m32r/m32r.c (gen_split_move_double): Likewise.
8757         * config/pj/pj.c (pj_output_rval): Likewise.
8758
8759 2002-03-22  Richard Henderson  <rth@redhat.com>
8760
8761         PR target/3177
8762         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
8763         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
8764         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
8765         (ia64_expand_prologue): Look at int_regs, not words, for number
8766         of incomming int regs.
8767
8768 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
8769
8770         * expr.c (expand_expr): A RESULT_DECL is part of a call.
8771
8772 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
8773
8774         * toplev.c (flag_loop_optimize, flag_crossjumping):
8775         New static variables.
8776         (rest_of_compilation): Conditionalize crossjumping and
8777         loop optimizer.
8778         (parse_options_and_default_flags): Default loop_optimize and
8779         crossjumping.
8780         (lang_independent_options): Add -fcrossjumping and -floop-optimize
8781         * invoke.texi (crossjumping, loop-optimize): Document.
8782
8783 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
8784
8785         * real.c (eiisneg): Move outside #ifdef NANS.
8786
8787 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
8788
8789         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
8790         frequencies match; avoid match on different loop depths.
8791         (try_crossjump_to_bb): Kill tests that no longer brings time
8792         savings.
8793         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
8794         updating code.
8795         (split_edge): Likewise.
8796
8797         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
8798         variable.
8799
8800         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
8801         * cfgrtl.c: Include insn-config.h
8802         (split_block) Dirtify block in presence of conditional execution
8803
8804 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
8805
8806         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
8807         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
8808         (function_arg): Constify CUMULATIVE_ARGS.
8809         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
8810         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
8811         (UNITS_PER_DOUBLE): New macro.
8812         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
8813         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
8814         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
8815         fp_regs and stack_words.
8816         (EABI_FLOAT_VARARGS_P): New macro.
8817         * config/mips/mips.c (struct mips_arg_info): New.
8818         (mips_arg_info): New function.
8819         (function_arg_advance): Use it.  Add adjustment instructions here
8820         rather than in function_arg.
8821         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
8822         for VOIDmode at the beginning of the function.
8823         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
8824         (function_arg_pass_by_reference): Likewise.
8825         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
8826         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
8827         (mips_va_start): Likewise.  Use the new stack_words field of
8828         CUMULATIVE_ARGS to set up overflow area.  Reformat.
8829         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
8830         doubles and other types, aligning the overflow pointer for non-doubles
8831         too.  Remove some code duplication.  Replace hard-coded constants.
8832
8833 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
8834
8835         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
8836         (CLASS_UNITS): Undefine.
8837         (CLASS_MAX_NREGS): Use FP_INC.
8838         * config/mips/mips.c (compute_frame_size): Likewise.
8839         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
8840
8841 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
8842
8843         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
8844         prototype, and handle lexing numbers and identifiers.
8845         (parse_identifier): Update to new form of parse_slow.
8846         (parse_number): Fast path only, use parse_slow otherwise.
8847         (_cpp_lex_direct): Update calls to parse_number.
8848
8849 2002-03-21  DJ Delorie  <dj@redhat.com>
8850
8851         * bb-reorder.c (make_reorder_chain_1): Protect against
8852         when redundant edges are omitted.
8853         * predict.c (dump_prediction): Likewise.
8854
8855 2002-03-21  Richard Henderson  <rth@redhat.com>
8856
8857         PR target/5996
8858         * fixinc/inclhack.def (solaris_stdio_tag): New.
8859         * fixinc/fixincl.x: Regenerate.
8860
8861 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
8862
8863         PR c/5597
8864         * c-typeck.c (process_init_element): Flag non-static
8865         initialization of a flexible array member as illegal.
8866
8867 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
8868
8869         * config/rs6000/t-linux64: New.
8870         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
8871         t-ppccomm.  Use t-rs6000 and t-linux64.
8872         (powerpc64-*-gnu* <tmake_file>): Likewise.
8873         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
8874         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
8875         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
8876
8877 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
8878
8879         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
8880         flag_really_no_inline instead of optimize == 0.
8881
8882         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
8883
8884         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
8885
8886         * flags.h (flag_really_no_inline): New.
8887
8888         * c-common.c (c_common_post_options): Initialize
8889         flag_really_no_inline.
8890
8891         * toplev.c (flag_really_no_inline): New.
8892
8893 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
8894
8895         * config/avr/avr.md (length): Fix length computation for
8896         conditional branches.
8897
8898 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
8899
8900         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
8901         sdbout.o, profile.o): Update.
8902         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
8903         langhook.
8904         * c-common.h (gettags): Move here from tree.h.
8905         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
8906         insert_block, getdecls, kept_level_p, global_bindings_p): New.
8907         * dbxout.c (dbxout_init): Use getdecls langhook.
8908         * expr.c (expand_expr): Use insert_block langhook.
8909         * fold-const.c: Include langhooks.h.
8910         (fold_range_test, fold_binary_op_with_conditional_arg,
8911         fold): Use global_bindings_p langhook.
8912         * integrate.c (expand_inline_function): Use insert_block langhook.
8913         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
8914         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
8915         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
8916         LANG_HOOKS_GETDECLS): New.
8917         (LANG_HOOKS_INITIALIZER): Update.
8918         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
8919         langhook.
8920         * langhooks.h (struct lang_hooks_for_decls): New.
8921         (struct lang_hooks): Update.
8922         * profile.c: Include langhooks.h.
8923         (output_func_start_profiler): Use new langhooks.
8924         * sdbout.c: Include langhooks.h.
8925         (sdbout_init, sdbout_finish): Use getdecls langhook.
8926         * stmt.c: Include langhooks.h.
8927         (expand_fixup, fixup_gotos): Use new langhooks.
8928         * stor-layout.c: Include langhooks.h.
8929         (variable_size): Use global_bindings_p langhook.
8930         * toplev.c (compile_file): Use getdecls langhook.
8931         * tree-inline.c (remap_block): Use insert_block langhook.
8932         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
8933         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
8934
8935 2002-03-21  Richard Henderson  <rth@redhat.com>
8936
8937         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
8938         constants in .data when -fpic.
8939
8940 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8941
8942         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
8943         where appropriate.
8944
8945 2002-03-21  Tom Tromey  <tromey@redhat.com>
8946
8947         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
8948
8949 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8950
8951         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
8952
8953         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
8954
8955 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
8956             Richard Henderson  <rth@redhat.com>
8957
8958         PR c/5354
8959         * c-common.c (c_expand_expr): Preserve result of a statement
8960         expression if needed.
8961
8962 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
8963
8964         PR bootstrap/4195
8965         * genrecog.c (maybe_both_true_mode): Remove.
8966         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
8967         * machmode.def (Pmode): Likewise.
8968
8969 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
8970
8971         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
8972         (nonlocal_mentioned_p_1): New function.
8973         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
8974         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
8975         (mark_constant_function): Recognize pure functions.
8976         * rtl.h (global_reg_mentioned_p): New prototype.
8977         * rtlanal.c (global_reg_mentioned_p,
8978         global_reg_mentioned_p_1): New function.
8979
8980 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8981
8982         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
8983         UNIX assert.h.
8984         * fixinc/fixincl.x: Regenerate.
8985
8986 2002-03-20  Jason Merrill  <jason@redhat.com>
8987
8988         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
8989
8990 2002-03-20  Michael Meissner  <meissner@redhat.com>
8991
8992         * doc/invoke.texi (Optimize Options): Document that -O2 sets
8993         -fstrict-aliasing.
8994
8995 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
8996
8997         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
8998         ".literal_position" directive before the constant pool.
8999
9000 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9001
9002         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
9003         Add Craig Rodrigues.
9004         Add Brad Lucier to testers.
9005
9006 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
9007
9008         PR target/4792
9009         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
9010         to if_then_else.
9011         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
9012         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
9013         instead of insn_extract.
9014
9015 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
9016
9017         PR bootstrap/4192
9018         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
9019
9020         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
9021         stmt if some case has been output.
9022
9023 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
9024
9025         PR c/5972
9026         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
9027         movsfcc_1, movdfcc_1): Add %O2.
9028         * config/i386/i386.c (print_operand): Handle %ON.
9029         Print . before float condition codes in Sun as cmov syntax.
9030         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
9031         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
9032         no longer true.
9033
9034 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
9035
9036         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
9037         return instruction if PC was popped.
9038
9039 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
9040
9041         * config/xtensa/xtensa.md: Remove unused type attributes.
9042         (adddi_carry, subddi_carry): Change type attribute to "multi".
9043
9044 2002-03-19  Dale Johannesen  <dalej@apple.com>
9045
9046         PR optimization/5999, middle-end/5731
9047         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
9048         multiplications by reciprocals.
9049
9050 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
9051
9052         * Makefile.in: Update.
9053         * c-common.c: Include langhooks.h.
9054         (inline_forbidden_p): Use new hook.
9055         * diagnostic.c: Include langhooks.h.
9056         (format_with_decl, announce_function,
9057         default_print_error_function): Use new hook.
9058         * dwarf2out.c (dwarf2_name): Use new hook.
9059         * function.c: Include langhooks.h.
9060         (init_function_start): Use new hook.
9061         * langhooks-def.h (lhd_decl_printable_name): New.
9062         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
9063         (LANGHOOKS_INITIALIZER): Update.
9064         * langhooks.c (lhd_decl_printable_name): New.
9065         * langhooks.h (struct lang_hooks): New hook.
9066         * toplev.c (decl_name, decl_printable_name): Remove.
9067         (open_dump_file): Use new hook.
9068         (process_options): Remove old hook.
9069         * tree.h (decl_printable_name): Remove.
9070 objc:
9071         * objc-act.c (objc_init): Remove old hook.
9072         (objc_printable_name): Export.
9073         * objc-act.h (objc_printable_name): New.
9074         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
9075
9076 2002-03-19  Jim Blandy  <jimb@redhat.com>
9077
9078         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
9079         the start_source_file debug hook, not the current line number.
9080
9081 2002-03-19  Richard Henderson  <rth@redhat.com>
9082
9083         * flow.c (EH_USES): Provide default.
9084         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
9085         * doc/tm.texi (EH_USES): New.
9086
9087         * config/ia64/ia64.c (ia64_eh_uses): New.
9088         * config/ia64/ia64-protos.h: Update.
9089         * config/ia64/ia64.h (EH_USES): New.
9090
9091 2002-03-19  Richard Henderson  <rth@redhat.com>
9092
9093         * varasm.c (output_constant_def): Fix stupid typo.
9094
9095 2002-03-19  Richard Henderson  <rth@redhat.com>
9096
9097         PR 5879
9098         * except.c (current_function_has_exception_handlers): New.
9099         * except.h: Declare it.
9100         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
9101         Combine tests that disable all sibcalls for the function.
9102
9103 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
9104
9105         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
9106         for INTEGER_CST.
9107
9108 2002-03-19  Richard Henderson  <rth@redhat.com>
9109
9110         PR 5977, 5991
9111         * config/ia64/ia64.c: Revert 2002-03-01 patch.
9112         * config/ia64/ia64.h (INIT_EXPANDERS): New.
9113
9114 2002-03-19  Jim Blandy  <jimb@redhat.com>
9115
9116         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
9117         name, even if the replacement list contains no tokens, as required
9118         by Dwarf.
9119
9120 2002-03-19  Jason Merrill  <jason@redhat.com>
9121
9122         * varasm.c (globalize_decl): Get the name from the RTL, not
9123         DECL_ASSEMBLER_NAME.
9124
9125         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
9126
9127 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
9128
9129         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
9130         subdi_carry): Define.
9131
9132 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
9133
9134         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
9135         about -fpic/-fPIC if extra_warnings set.
9136
9137 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
9138
9139         * expr.c (expand_expr): Sign-extend CONST_INT generated from
9140         TREE_STRING_POINTER.
9141         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
9142
9143 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9144
9145         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
9146         in favor of SP if FRAME_POINTER_REQUIRED is false.
9147
9148 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
9149
9150         * emit-rtl.c (gen_int_mode): New function.
9151         * rtl.h: Prototype for it.
9152         * combine.c (make_extraction, simplify_comparison), expmed.c
9153         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
9154         (convert_modes, store_field), optabs.c (expand_fix),
9155         simplify-rtx.c (neg_const_int, simplify_unary_real),
9156
9157         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
9158         Use it instead of GEN_INT (trunc_int_for_mode (...)).
9159
9160 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
9161
9162         PR c/5656
9163         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
9164         convert_parm_for_inlining.
9165         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
9166         Define.
9167         * langhooks-def.h: Likewise.
9168         * objc/objc-lang.c: Likewise.
9169         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
9170         function.
9171         * tree-inline.c (initialize_inlined_parameters):
9172         Call convert_parm_for_inlining lang hook if needed.
9173         * c-typeck.c (c_convert_parm_for_inlining): New function.
9174         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
9175
9176 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
9177
9178         * calls.c (precompute_arguments): Do not assume that temporaries
9179         can be destroyed after expanding the argument.
9180         (expand_call): Likewise.
9181
9182 2002-03-15  Eric Christopher  <echristo@redhat.com>
9183
9184         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
9185         Fix register preference on last change.
9186         * config/mips/mips.c (mips_return_in_memory): New function.
9187         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
9188         * config/mips/mips-protos.h: Declare.
9189         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
9190         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
9191
9192 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
9193
9194         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
9195         a register too.
9196         (anddi3, iorsi3): Likewise.
9197
9198         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
9199         use %gprel for symbols that are going to be placed in linkonce
9200         sections.
9201
9202         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
9203         RETURN_ADDRESS_POINTER_REGNUM to $ra.
9204         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
9205         not needed.  Disregard leaf_function_p().
9206         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
9207         mips16 frame pointer.
9208         * config/mips/mips.md (store ra): Only to small SP offsets.
9209         2001-08-22  Graham Stott  <grahams@redhat.com>
9210         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
9211         return a REG rtx for the return address register.
9212
9213 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
9214
9215         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
9216         constant-pool addresses as "mode-dependent".
9217         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
9218
9219 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
9220
9221         PR target/5740
9222         * expr.c (emit_group_load): Use extract_bit_field if
9223         needed for CONCAT arguments.
9224
9225 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
9226
9227         PR target/4863
9228         * arm.md (tablejump): Make this a define_expand.  For PIC add the
9229         offset to the base of the table.
9230         (thumb_tablejump): Matcher for Thumb tablejump insn.
9231         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
9232         as the difference of two labels.
9233         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9234         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
9235         tables in the code.
9236         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
9237         * arm.c (get_jump_table_size): If the table is not in the text
9238         section, return zero.
9239
9240 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
9241
9242         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
9243         of gen_rtx_SUBREG.
9244         (arm_reload_out_hi): Use gen_lowpart instead of
9245         gen_rtx_SUBREG to access QImode components.
9246         * config/arm/arm.md: Disable zero_extend split for QImode
9247         subregs in BIG_ENDIAN mode.
9248         (storehi_bigend): Match use of least significant byte.
9249         (storeinthi): Remove extraneous SUBREG.
9250         Add missing construction of operands[2].
9251         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
9252         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
9253         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
9254
9255 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
9256
9257         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
9258         any_operand.
9259
9260 2002-03-17  Richard Henderson  <rth@redhat.com>
9261
9262         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
9263         explicitly.
9264
9265 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
9266
9267         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
9268         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
9269
9270 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9271
9272         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
9273
9274         * predict.c (estimate_bb_frequencies): Delete unused variables.
9275
9276 2002-03-17  Richard Henderson  <rth@redhat.com>
9277
9278         * config/ia64/ia64.c (ia64_attribute_table): Move before
9279         targetm definition.  Make static.
9280
9281 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
9282
9283         * c-common.h (yyparse, c_common_parse_file): New.
9284         * c-lang.c: Include c-common.h.
9285         (LANG_HOOKS_PARSE_FILE): Redefine.
9286         * c-lex.c: Include c-common.h.
9287         (yyparse): Rename c_common_parse_file.  Call yyparse.
9288         * c-parse.in (yyparse): Remove macro.
9289         * c-tree.h (yyparse_1): Remove.
9290         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
9291         (LANG_HOOKS_INITIALIZER): Update.
9292         * langhooks.h (struct lang_hoooks): New hook parse_file.
9293         * toplev.c (compile_file): Use parse_file hook.
9294         * tree.h (yyparse): Remove.
9295         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
9296
9297 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
9298
9299         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
9300         float_truncate, not fix.
9301         ("*truncdfsf2_real"): Ditto.
9302         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
9303
9304         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
9305
9306 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
9307
9308         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
9309         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
9310         where appropriate.  Make the second reference to
9311         leaf_function_p a function call, as intended.  Reindented.
9312
9313         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
9314         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
9315
9316         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
9317         add register to non-constant into sp.
9318
9319         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
9320         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
9321         (mips16_gp_pseudo_rtx): Lose.
9322         (INIT_EXPANDERS): Deleted.
9323         * config/mips/mips.c (mips_init_machine_status): New.
9324         (mips_free_machine_status): New.
9325         (mips_mark_machine_status): New.
9326         (override_options): Set them.
9327         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
9328         (struct machine_function): ... new.  Replaced all references.
9329         (mips_add_gc_roots): Don't mark them.
9330         (embedded_pic_fnaddr_reg): New, extracted from...
9331         (embedded_pic_offset): ... here.
9332         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
9333         (movsi): Likewise.
9334
9335 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
9336
9337         * cppinit.c: Revert -MD removal.
9338
9339 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9340
9341         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
9342         soft registers by default for 68HC12.
9343         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
9344         when compiling with -fomit-frame-pointer.
9345         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
9346         (expand_epilogue): Likewise.
9347         (m68hc11_gen_rotate): Use exg when rotating by 8.
9348
9349 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9350
9351         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
9352         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
9353         (splits): Remove unused add splits.
9354         ("*addhi3_68hc12"): Tune constraints.
9355         ("addhi_sp"): Try to use X instead of Y in all cases and if the
9356         constant fits in 8-bits and D is dead use abx/aby instructions.
9357         ("*addhi3"): Remove extern declaration of ix_reg.
9358         ("*subsi3"): Optimize and provide new split.
9359         ("subhi3"): Cleanup.
9360         ("*subhi3_sp"): Avoid saving X if we know it is dead.
9361         (arith splits): For 68hc12 save the address register on the stack
9362         and do the arithmetic operation with a pop.
9363
9364 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9365
9366         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
9367         allocating QImode in address registers.
9368         ("*movqi_m68hc11"): Likewise.
9369
9370 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
9371
9372         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
9373
9374 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
9375
9376         * cppinit.c (print_help): Display -MD and -MMD.
9377         Don't display usage string.  Update assertion syntax and
9378         typo.
9379         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
9380         (cpp_handle_option): Update.
9381
9382 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
9383
9384         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
9385         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
9386         and define it so that regardless of target CPU size,
9387         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
9388         of "int" rather than "long."
9389
9390 2002-03-15  Richard Henderson  <rth@redhat.com>
9391
9392         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
9393         size as a tree.
9394
9395 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9396
9397         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
9398         ("tstqi" split): Avoid using memory for tstqi on address register.
9399         (splits): Remove constraints.
9400         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
9401         ("cmpdf", "cmpsf"): Remove since not used.
9402         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
9403         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
9404
9405 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9406
9407         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
9408         ("neghi2"): Tighten constraints.
9409         ("one_cmplsi2"): Optimize and simplify split.
9410         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
9411
9412 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9413
9414         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
9415         and split of AND operation to clear the upper bits.
9416         ("*logicalsi3_zextqi"): Likewise.
9417         ("*logicallhi3_zexthi_ashift8"): Likewise.
9418         ("*logicalsi3_silshr16"): Likewise.
9419         ("logicalsi3_silshl16"): Likewise.
9420         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
9421
9422 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9423
9424         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
9425         (m68hc11_indirect_p): New function.
9426         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
9427         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
9428         TARGET_M6812.
9429         (asm_print_register): Likewise.
9430         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
9431         (m68hc11_indirect_p): Declare.
9432         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
9433         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
9434         (TARGET_SWITCHES): New option -mrelax.
9435         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
9436         destination.
9437         ("iorsi3", "xorsi3"): Likewise.
9438         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
9439         ("*andhi3_mem"): New to handle destination in memory with bclr
9440         and a scratch register.
9441         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
9442         ("*andhi3_const"): New when operand2 is constant.
9443         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
9444         ("*andhi3_gen"): Cleanup of the old "andhi3".
9445         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
9446         ("xorqi3"): Update constraints.
9447
9448 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9449
9450         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
9451         for reg_equiv_memory_loc when the operand is a register that does
9452         not get a hard register (stack location).
9453         (tst_operand): After reload, accept all memory operand.
9454         (symbolic_memory_operand): Fix detection of symbolic references.
9455         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
9456         accept symbols and any constant.
9457
9458 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9459
9460         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
9461         note on the insn that sets the soft frame register.
9462         (must_parenthesize): ix and iy are also reserved names.
9463         (print_operand_address): One more place where parenthesis are required
9464         to avoid confusion with register names.
9465         (m68hc11_gen_movhi): Allow push of stack pointer.
9466         (m68hc11_check_z_replacement): Fix handling of parallel with a
9467         clobber.
9468         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
9469         the replacement register is.
9470         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
9471         and D8_REGS classes.
9472         (MODES_TIEABLE_P): All modes are tieable except QImode.
9473
9474 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9475
9476         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
9477         (___subdi3): Likewise.
9478         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
9479         (__map_data_section): Optimize 68hc11 case.
9480
9481 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9482
9483         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
9484         than a shift to avoid adding a register with itself.
9485         (m68hc11_memory_move_cost): Take into account NO_REGS.
9486         (m68hc11_register_move_cost): Update and use memory move cost
9487         for soft registers.
9488         (m68hc11_address_cost): Make cost of valid offset not 0 so that
9489         it gives more opportunities to cse to optimize.
9490         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
9491         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
9492
9493 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
9494
9495         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
9496         * c-common.def (CLEANUP_STMT): New tree node.
9497         * c-common.h (CLEANUP_DECL): New macro.
9498         (CLEANUP_EXPR): Likewise.
9499         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
9500         * expr.c (expand_expr): Tidy.
9501         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
9502         * tree-inline.c (initialize_inlined_parameters): Clean up
9503         new local variables.
9504
9505 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
9506
9507         PR bootstrap/4128
9508         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
9509         before movrXX only, use reg_overlap_mentioned_p.
9510         Only special case NE if just one insn can be generated.
9511
9512 2002-03-15  Jason Merrill  <jason@redhat.com>
9513
9514         * varasm.c (assemble_variable): Call resolve_unique_section before
9515         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
9516         of error_mark_node.
9517
9518 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
9519
9520         PR target/5170
9521         * arm.md (split pattern for thumb shiftable immediates): Add comment
9522         explaining non-obvious test.
9523
9524 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
9525
9526         PR target/5712
9527         * arm.md (movaddr, movaddr_insn): Delete.
9528
9529 2002-03-15  Jason Merrill  <jason@redhat.com>
9530
9531         * toplev.c (wrapup_global_declarations): Clarify variable handling.
9532         -fkeep-static-consts doesn't apply to comdats.
9533
9534 2002-03-14  Richard Henderson  <rth@redhat.com>
9535
9536         * c-decl.c: Include c-pragma.h.
9537         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
9538         (finish_function): Tidy.
9539         * c-pragma.c: Include c-common.h.
9540         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
9541         (handle_pragma_weak): Use them.
9542         (init_pragma): Register pending_weaks.
9543         * c-pragma.h (maybe_apply_pragma_weak): Declare.
9544         * print-tree.c (print_node): Print DECL_WEAK.
9545         * varasm.c (mark_weak_decls): Remove.
9546         (remove_from_pending_weak_list): Remove.
9547         (add_weak): Remove.
9548         (asm_emit_uninitialised): Call globalize_decl for weak commons.
9549         (weak_decls): Make a tree_list.
9550         (declare_weak): Cons weak_decls directly.
9551         (globalize_decl): Remove weak_decls elements directly.
9552         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
9553         symbols.  Don't pretend to handle aliases.
9554         (init_varasm_once): Update weak_decls registry.
9555         * Makefile.in: Update dependencies.
9556
9557 2002-03-14  Richard Henderson  <rth@redhat.com>
9558
9559         PR target/5312
9560         * config/ia64/ia64.c: Include tm_p.h last.
9561         (gen_nop_type): Remove duplicate definition.
9562         (cycle_end_fill_slots): Set sched_data for second L slot.
9563         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
9564         (nop_cycles_until): Fix typos.
9565
9566 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
9567
9568         PR optimization/5891
9569         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
9570
9571 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
9572
9573         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
9574           descriptors correctly.
9575
9576 2002-03-14  Michael Meissner  <meissner@redhat.com>
9577
9578         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
9579         100, allowing MAX_UNROLLED_INSNS to be overridden.
9580
9581         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
9582         --param.
9583
9584         * unroll.c (params.h): Include.
9585         (MAX_UNROLLED_INSNS): Delete, now in params.h.
9586
9587         * doc/invoke.texi (--param max-unroll-insns): Document.
9588
9589         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
9590
9591 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
9592
9593         * arm.md: Fix warnings about constraints in peepholes and splits.
9594
9595 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
9596
9597         * cpphash.h (struct lexer_state): Remove line_extension member.
9598         * cpplib.c (dequote_string, do_linemarker): New functions.
9599         (linemarker_dir): New data object.
9600         (DIRECTIVE_TABLE): No longer need to interpret #line in
9601         preprocessed source.  Delete obsolete comment about return
9602         values of handlers.
9603         (end_directive, directive_diagnostics, _cpp_handle_directive):
9604         Don't muck with line_extension.
9605         (directive_diagnostics): No need to issue warnings for
9606         linemarkers here.
9607         (_cpp_handle_directive): Issue warnings for linemarkers here,
9608         when appropriate.  Dispatch linemarkers to do_linemarker, not
9609         do_line.
9610         (do_line): Code to handle linemarkers split out to do_linemarker.
9611         Convert escape sequences in filename argument, both places.
9612
9613         * cppmacro.c (quote_string): Rename cpp_quote_string and
9614         export.  All callers changed.
9615         * cpplib.h (cpp_quote_string): Prototype.
9616         * cppmain.c (print_line): Call cpp_quote_string on to_file
9617         before printing it.
9618
9619         * doc/cpp.texi: Document that escapes are now interpreted in
9620         #line and in linemarkers, and that non-printing characters are
9621         converted to octal escapes when linemarkers are generated.
9622
9623 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
9624
9625         * emit-rtl.c (try_split): Use delete_insns.
9626         * recog.c (split_all_insns): Fix terminating condition.
9627
9628 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
9629             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
9630
9631         PR target/5828
9632         * arm.c (arm_output_epilogue): Fix floating-point register save
9633         adjustment when using a frame pointer.
9634
9635 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
9636
9637         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
9638         * config/mips/mips.c (compute_frame_size): Retrofit them here.
9639         (save_restore_insns, mips_expand_epilogue): And here.
9640         (build_mips16_call_stub): And here.
9641         (mips_function_value): Use the new macros to decide whether a single
9642         or complex float can be returned in floating-point registers.  Return
9643         a parallel rtx in the complex case.
9644
9645 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
9646
9647         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
9648         call after liveness analysis.
9649
9650         * recog.c (split_insn): Use delete_insn_and_edges.
9651
9652         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
9653         instructions to have branch prediction notes.
9654         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
9655
9656 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
9657
9658         * configure.in: Don't pass -Wno-long-long to a ADA compiler
9659         that doesn't support it.
9660         * configure: Regenerate.
9661
9662 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9663
9664         PR target/5626
9665         * config/sparc/sparc.md (normal_branch, inverted_branch,
9666         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
9667         inverted_fp_branch): Adjust calls to output_cbranch.
9668         Set length attribute.
9669         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
9670         output_v9branch.  Set length attribute.
9671         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
9672         predicates.
9673         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
9674         (output_cbranch): Likewise.  Handle far branches.
9675         (output_v9branch): Handle far branches.
9676         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
9677         Adjust prototypes.
9678         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
9679         noov_compare64_op predicates.
9680
9681 2002-03-13  Jason Merrill  <jason@redhat.com>
9682
9683         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
9684         into the function and constify it.
9685         * gthr-dce.h, gthr-solaris.h: Likewise.
9686
9687 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
9688
9689         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
9690         * config/rs6000/rs6000.c (rs6000_va_arg): Use
9691         std_expand_builtin_va_arg if not ABI_V4.
9692
9693 2002-03-13  Jason Merrill  <jason@redhat.com>
9694
9695         * varasm.c (globalize_decl): New fn.
9696         (assemble_start_function): Use it.
9697         (asm_emit_uninitialized): Use it.
9698         (assemble_alias): Use it.
9699         (assemble_variable): Use it.
9700
9701 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
9702
9703         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
9704         2002-03-12 internal visibility change.
9705         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
9706         visibility into SYMBOL_REF_FLAG.
9707
9708 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
9709
9710         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
9711         VOIDmode operand.  Add compile-time optimization for constant results.
9712
9713 2002-03-12  Jason Merrill  <jason@redhat.com>
9714
9715         * c-typeck.c (convert_for_assignment): Don't allow conversions
9716         between pointers and references.  Only allow lvalues to convert to
9717         reference.
9718
9719 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
9720
9721         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
9722         before prologue, to avoid scheduling problems.
9723
9724 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9725
9726         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
9727         (ELIMINABLE_REGS): Add sfp->sp.
9728         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
9729
9730 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9731
9732         PR optimization/5892
9733         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
9734
9735 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
9736
9737         * loop.c (basic_induction_var): Don't call convert_modes if mode
9738         classes are different.
9739
9740 2002-03-12  Richard Henderson  <rth@redhat.com>
9741
9742         PR optimization/5901
9743         * function.c (reposition_prologue_and_epilogue_notes): Position
9744         the markers after/before the last/first insn not deleted.
9745
9746 2002-03-12  Richard Henderson  <rth@redhat.com>
9747
9748         PR optimization/5878
9749         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
9750         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
9751         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
9752
9753         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
9754         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
9755         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
9756
9757         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
9758         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
9759         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
9760         also.  Don't set it if not flag_pic.
9761         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
9762         to be INVALID_REGNUM when not used.
9763
9764 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
9765
9766         * expmed.c (store_bit_field): Reset alias set for memory.
9767         (extract_bit_field): Same.
9768
9769 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9770
9771         * c-common.c (c_tree_code_type, c_tree_code_length,
9772         c_tree_code_name, add_c_tree_codes): Delete.
9773         * c-common.h (add_c_tree_codes): Delete.
9774         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
9775         Define.
9776         * c-objc-common.c (c_objc_common_init): Don't call
9777         add_c_tree_codes, instead set lang_unsafe_for_reeval.
9778         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
9779         objc_tree_code_name, add_objc_tree_codes): Delete.
9780         (objc_init): Don't call add_objc_tree_codes.
9781         * objc/objc-lang.c (tree_code_type, tree_code_length,
9782         tree_code_name): Define.
9783         * toplev.c (lang_independent_init): Don't set
9784         tree_code_length[IDENTIFIER_NODE].
9785         * tree.c (tree_code_type, tree_code_length, tree_code_name):
9786         Delete definitions, moved to language front-ends.
9787         * tree.def (IDENTIFIER_NODE): Hardwire the length.
9788         * tree.h (tree_code_type, tree_code_length, tree_code_name):
9789         Const-ify.
9790         (tree_code_length): Change type to unsigned char.
9791
9792 2002-03-12  Richard Henderson  <rth@redhat.com>
9793
9794         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
9795         internal visibility change.
9796
9797 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9798
9799         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
9800         validize_mem() instead of change_address to avoid clobbering
9801         memory attributes.
9802
9803 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
9804
9805         * c-lex.h (position_after_whitespace): Remove.
9806
9807 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
9808
9809         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
9810         (lex_string): Use unsigned char pointers.
9811
9812 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
9813
9814         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
9815         is not a valid memory_operand.
9816
9817 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9818
9819         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
9820         * config/xtensa/lib1funcs.asm: Fix copyright to include
9821         special case for libgcc files.
9822         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
9823         (__divsi3): Likewise.
9824         (__umodsi3): Likewise.
9825         (__modsi3): Likewise.
9826         * config/xtensa/lib2funcs.S: Fix copyright to include
9827         special case for libgcc files.
9828
9829 2002-03-12  Tom Rix  <trix@redhat.com>
9830
9831         * collect2.c (resolve_lib_name): Move outside of
9832         OBJECT_FORMAT_COFF ifdef.
9833         (ignore_library): Same.
9834
9835 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9836
9837         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
9838
9839 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
9840
9841         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
9842         to function_section before writing out the constant pool.
9843
9844 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
9845
9846         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
9847         zero_constant.
9848         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
9849
9850 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
9851
9852         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
9853         (adddi3): Likewise.
9854         (movdf): Likewise.
9855         (movdi): Likewise.
9856         (cmpsi splitter): Likewise.
9857         (modsi3): Fail if <= 0.
9858         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
9859         redundant test when HOST_BITS_PER_WIDE_INT != 32.
9860         (reg_or_sub_cint64_operand): Likewise.
9861         (num_insns_constant_wide): Optimize sign extension.
9862         (rs6000_legitimize_address): Likewise.
9863
9864 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
9865
9866         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
9867         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
9868
9869 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
9870
9871         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
9872         address calculation.
9873
9874 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
9875
9876         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
9877         scratch register to DImode / TImode.
9878         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
9879         register used does not overlap the target.
9880
9881 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9882
9883         * Makefile.in (debug.o): Depend on debug.h.
9884         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
9885         * debug.c (do_nothing_debug_hooks): Likewise.
9886         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
9887         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
9888         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
9889         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
9890         * dwarfout.c (dwarf_debug_hooks): Likewise.
9891         * integrate.c (output_inline_function): Likewise.
9892         * objc/objc-act.c (synth_module_prologue): Likewise.
9893         * sdbout.c (sdb_debug_hooks): Likewise.
9894         * toplev.c (debug_hooks): Likewise.
9895         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
9896
9897 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9898
9899         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
9900         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
9901         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
9902         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
9903         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
9904         * defaults.h (POINTER_SIZE): Define.
9905         * doc/tm.texi (POINTER_SIZE): Document default.
9906
9907 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9908
9909         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
9910
9911 2002-03-11  Richard Henderson  <rth@redhat.com>
9912
9913         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
9914         if rebuild_label_notes_after_reload.
9915
9916 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
9917
9918         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
9919         emit pic register load if "internal" visibility.
9920         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
9921         (cris_expand_builtin_va_arg): Do all computations on trees.
9922
9923 2002-03-11  Richard Henderson  <rth@redhat.com>
9924
9925         * rtlanal.c: Include recog.h.
9926         (keep_with_call_p): Fix thinko.
9927         * Makefile.in (rtlanal.o): Update dependencies.
9928
9929 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
9930
9931         * genflags.c (gen_insn): Use IS_VSPACE.
9932         * genoutput.c (output_insn_data): Likewise.
9933         (process_template): Likewise.
9934
9935 2002-03-11  Richard Henderson  <rth@redhat.com>
9936
9937         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
9938
9939 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
9940
9941         * Makefile.in: Update.
9942         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
9943         Update documentation.
9944         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
9945         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
9946
9947 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
9948
9949         * Makefile.in: Give texi2pod its input file as a command line
9950         argument, not on stdin.
9951
9952 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
9953             Daniel Berlin  <dan@dberlin.org>
9954
9955         C++ alias analysis improvement.
9956         * alias.c (record_component_aliases): Record aliases for base
9957         classes too.
9958
9959 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
9960
9961         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
9962
9963 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
9964
9965         * toplev.c (vms_fopen): Remove, not needed.
9966
9967         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
9968
9969         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
9970
9971         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
9972         for FP, already done later.
9973
9974         * toplev.c (debug_args): Add entry for VMS_DEBUG.
9975         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
9976
9977 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
9978
9979         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
9980         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
9981         LARGEST_EXPONENT_IS_NORMAL for the given mode.
9982         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
9983         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
9984         (ediv, emul, eldexp, esqrt): Likewise.
9985         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
9986         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
9987         (saturate): New function.
9988         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
9989         (make_nan): Use a saturation value instead of a NaN if
9990         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
9991         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
9992         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
9993         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
9994         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
9995         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
9996         !ROUND_TOWARDS_ZERO.
9997         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
9998         (ROUND_TOWARDS_ZERO): Document.
9999
10000 2002-03-11  Andreas Jaeger  <aj@suse.de>
10001
10002         * cfg.c (dump_flow_info): Remove unused variable.
10003
10004 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
10005
10006         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
10007         computations on trees.
10008
10009 2002-03-10  Richard Henderson  <rth@redhat.com>
10010
10011         PR 5693:
10012         * reload.c (copy_replacements_1): New.
10013         (copy_replacements): Use it to recurse through the rtx.
10014
10015 2002-03-10  Richard Henderson  <rth@redhat.com>
10016
10017         * loop.c (strength_reduce): Compute number of iterations as
10018         unsigned HOST_WIDE_INT.
10019
10020 2002-03-10  Richard Henderson  <rth@redhat.com>
10021
10022         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
10023         to move away from the end of the block.
10024
10025 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
10026
10027         PR preprocessor/5899
10028         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
10029
10030 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10031
10032         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
10033
10034         * attribs.c (decl_attributes): Fix signed/unsigned warning.
10035
10036 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
10037
10038         * config/mmix/mmix.c: Improve comments.
10039         (mmix_target_asm_function_prologue): Drop variable
10040         empty_stack_frame.  Don't allocate unused slot above fp.
10041         (mmix_target_asm_function_epilogue): Mirror prologue changes.
10042         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
10043         brace in first column.
10044         (enum reg_class): Ditto.
10045         (FIRST_PARM_OFFSET): Now 0.
10046         (USER_LABEL_PREFIX): Remove #if 0:d definition.
10047
10048 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10049
10050         * combine.c (make_extraction): Fix error in last change.
10051
10052 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10053
10054         * c4x.c (c4x_fp_reglist): Const-ify.
10055         * cris.c (cris_print_operand): Likewise.
10056         * i386.c (ix86_va_arg): Likewise.
10057         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
10058         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
10059         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
10060         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
10061         * mcore.h (regno_reg_class): Likewise.
10062         * mips.c (gen_int_relational): Likewise.
10063         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
10064         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
10065         * pdp11.c (move_costs): Likewise.
10066         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
10067         * s390.c (s390_branch_condition_mnemonic, regclass_map):
10068         Likewise.
10069         * s390.h (regclass_map): Likewise.
10070         * sh.c (shift_amounts): Likewise.
10071         * sh.md (rotlsi3): Likewise.
10072
10073 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
10074
10075         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
10076         (ne0+5): Use new clobber to generate proper shift pattern.
10077         Patch by Michael Matz <matz@kde.org>.
10078
10079 2002-03-09  Andreas Schwab  <schwab@suse.de>
10080
10081         * gcc.c (validate_all_switches): Also handle `%W{...}'.
10082
10083 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
10084
10085         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
10086
10087 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
10088
10089         PR middle-end/5877
10090         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
10091         even for non-representable constants.
10092
10093 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10094
10095         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
10096         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
10097         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
10098         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
10099         (pop_function_context): Compute MAY_SHARE parameter for
10100         fixup_var_refs.
10101         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
10102         (gen_mem_addressof): Call fixup_var_refs with new parm.
10103
10104         * combine.c (make_extraction): Don't make extension of CONST_INT.
10105
10106 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
10107
10108         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
10109         in o32 and o64 ABIs.
10110         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
10111         but getting fixed-size structs passed in registers regardless of
10112         padding in o32 and o64 ABIs.
10113
10114         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
10115         offset before loading address of argument passed by transparent
10116         reference.
10117
10118 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10119
10120         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
10121
10122 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
10123
10124         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
10125         marker such that registers after it are saved.
10126
10127 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10128
10129         * sparc.c (arith_4096_operand): Fix error in last change.
10130
10131 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
10132
10133         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
10134         defaults for MEABI.
10135
10136 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
10137
10138         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
10139         vectors.
10140
10141 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
10142
10143         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
10144
10145 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
10146
10147         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
10148         removed; fix return value.
10149         * combine.c (combine_instructions): Dirtify blocks where we failed to
10150         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
10151         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
10152
10153 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10154
10155         * gcse.c (insert_insn_end_bb): Fix typo in last change.
10156
10157 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
10158
10159         * recog.c (peephole2_optimize): Re-distribute EH edges.
10160
10161 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
10162
10163         * expr.c (expand_expr): Use unsave lang hook.
10164         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
10165         (LANG_HOOKS_INITIALIZER): Update.
10166         * langhooks.h (struct lang_hooks): New hook unsave.
10167         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
10168         (unsave_expr_1): Remove unused lang_unsave_expr_now.
10169         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
10170         (unsave_expr_now): Remove.
10171         * tree.h (unsave_expr_now, lang_unsave,
10172         lang_unsave_expr_now): Remove.
10173         (lhd_unsave): New.
10174
10175 2002-03-08  Andreas Jaeger  <aj@suse.de>
10176
10177         * flow.c (propagate_block_delete_insn): Remove unused variable.
10178
10179 2002-03-08  Kazu Hirata  <kazu@hxi.com>
10180
10181         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
10182         insn length for memory load/store.
10183
10184 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10185
10186         * doc/install.texi (--with-libiconv-prefix): Document.
10187
10188 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
10189
10190         * doc/sourcebuild.texi: Fix typo.
10191
10192 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
10193
10194         PR c/3711
10195         * builtins.c (std_expand_builtin_va_arg): Do all computations on
10196         trees.
10197
10198 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10199
10200         * rtl.c (copy_most_rtx): Move from here ...
10201         * emit-rtl.c (copy_most_rtx): ... to here.
10202
10203 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
10204
10205         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
10206         SUBTARGET_CPP_SIZE_SPEC.
10207         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
10208
10209         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
10210
10211 2002-03-07  Matt Hiller  <hiller@redhat.com>
10212
10213         * gensupport.c (first_dir_md_include): Renamed from include;
10214         change all references.
10215         (last_dir_md_include): Renamed from last_include; change all
10216         references.
10217         (init_md_reader): Unconditionally initialize base_dir whether or
10218         not filename is a relative path.
10219
10220 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
10221
10222         * config/fp-bit.c (_unord_f2): Compile it in even if
10223         US_SOFTWARE_GOFAST is enabled.
10224
10225         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
10226         NULL_RTX.  Set all HFmode operations as NULL_RTX.
10227         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
10228         NULL_RTX, try reversing the comparison and the operands.
10229
10230 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
10231
10232         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
10233         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
10234         and MATCH_OP_DUP.
10235
10236 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
10237
10238         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
10239
10240 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
10241
10242         * basic-block.h (fixup_abnormal_edges): Declare.
10243         * reload1.c (fixup_abnormal_edges): New function.
10244         * reg-stack.c (convert_regs): Use it.
10245
10246         * gcse.c (insert_insn_end_bb): Handle trapping insns.
10247
10248         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
10249
10250 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
10251
10252         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
10253         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
10254         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
10255         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
10256         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
10257         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
10258         unless x and y could be infinite.
10259         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
10260         Check that the common type of both arguments is a real, even for
10261         targets without unordered comparisons.  Allow an integer argument
10262         to be compared against a real.
10263         (expand_tree_builtin): Use expand_unordered_cmp.
10264         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
10265         * cse.c (fold_rtx): Likewise.  Fix indentation.
10266         * fold-const.c (fold_real_zero_addition_p): New.
10267         (fold): Use it, and the new HONOR_... macros.
10268         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
10269         * jump.c (reversed_comparison_code_parts): After searching for
10270         the true comparison mode, use HONOR_NANS to decide whether it
10271         can be safely reversed.
10272         (reverse_condition_maybe_unordered): Remove IEEE check.
10273         * simplify-rtx.c (simplify_binary_operation): Use the new macros
10274         to decide which simplifications are valid.  Allow the following
10275         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
10276         and (a - -b) to (a + b).
10277         (simplify_relational_operation): Use HONOR_NANS.
10278         * doc/tm.texi: Document the MODE_HAS_... macros.
10279
10280 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
10281
10282         * combine.c (simplify_comparison): If simplifying a logical shift
10283         right and compare with constant, force the comparison to unsigned.
10284
10285 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
10286
10287         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
10288
10289         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
10290         -mabi=no-altivec
10291         (alt_reg_names): Remove % for vrsave.
10292
10293 2002-03-06  Richard Henderson  <rth@redhat.com>
10294
10295         PR optimization/5844
10296         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
10297         if used indicates we've already emitted one copy of an operand.
10298         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
10299         (gen_split): Supply a non-null used.
10300
10301 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
10302
10303         * reload1.c (reload): Unshare all rtl after reload is done.
10304
10305         * simplify-rtx.c (simplify_plus_minus): Do not abort,
10306         but simply fail if the expression is too complex to simplify.
10307         (simplify_gen_binary): Handle simplify_plus_minus failures.
10308
10309 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
10310
10311         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
10312         consistently call delete_trivially_dead_insns after CSE and GCSE;
10313         fix DFI_life dumping; do jump threading after liveness; do crossjumping
10314         after liveness2; update comment in last crossjumping.
10315         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
10316
10317 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
10318
10319         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
10320         after completing fast dead code elimination.
10321
10322         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
10323         COMPARE operator.
10324
10325 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
10326
10327         * version.c:  Fix misplaced leading blanks on first line.
10328
10329 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
10330
10331         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
10332
10333 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
10334
10335         * cfgcleanup.c (mentions_nonequal_regs): New function.
10336         (thread_jump): Use it.
10337         * toplev.c (rest_of_compilation): Run jump threading after
10338         liveness.
10339
10340 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
10341
10342         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
10343         patch.
10344
10345 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
10346
10347         * predict.c (estimate_bb_frequencies): Do not reload the
10348         frequencies from notes.
10349
10350 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
10351
10352         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
10353         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
10354
10355         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
10356         delete_noop_moves): Return indeger.
10357         * flow.c (ndead): New variable.
10358         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
10359         BB argument; update callers.
10360         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
10361         (life_analysis): Do not call purge_all_dead_edges.
10362         (update_life_info): Return number of deleted insns; print statistics.
10363         (update_life_info_in_dirty_blocks): likewise.
10364         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
10365         return number of insns deleted.
10366
10367         * cse.c: Include timevar.h
10368         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
10369         iterate until stabilizes; print statistics; return number of killed
10370         insns.
10371         * Makefile.in: (cse.o): Add timevar.h dependency
10372         * rtl.h (delete_trivially_dead_insns): New.
10373         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
10374         * toplev.c (rest_of_compilation): Update callers.
10375
10376         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
10377         (try_optimize_cfg): Do not update liveness.
10378         (cleanup-cfg): Loop until try_optimize_cfg and dead code
10379         removal stabilizes; use delete_trivially_dead_insns.
10380
10381         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
10382
10383 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
10384
10385         * cppmain.c (setup_callbacks): Disable #pragma and #ident
10386         callbacks when processing assembly language.
10387
10388 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10389
10390         * pa.h (ASM_FILE_END): Define.
10391         * som.h (ASM_FILE_END): Delete.
10392
10393         * pa.c (function_arg): Don't pass floats in general registers in
10394         indirect calls if TARGET_ELF32.
10395
10396 2002-03-05  Richard Henderson  <rth@redhat.com>
10397
10398         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
10399
10400 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
10401
10402         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
10403
10404 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
10405
10406         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
10407         -r command line.  Don't hide any symbols if not building
10408         shared libgcc.
10409
10410 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
10411
10412         * cfg.c (dump_flow_info): Warn about profile mismatches.
10413         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
10414         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
10415
10416 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
10417
10418         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
10419         wide volatile memory by parts.
10420
10421 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
10422
10423         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
10424         is NULL.
10425
10426 2002-03-05  Richard Henderson  <rth@redhat.com>
10427
10428         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
10429
10430 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
10431
10432         * toplev.c (documented_lang_options): Document more
10433         language-specific options.
10434         * doc/invoke.texi (Warning Options): Correct documentation for
10435         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
10436         * c-decl.c (c_decode_option): Use a table to handle warning options.
10437
10438 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
10439
10440         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
10441         parameter to mmix_encode_section_info.
10442         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
10443         relocatably.  Always produce ELF, not mmo if linking relocatably.
10444         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
10445         first is non-zero, don't add symbol prefix.
10446         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
10447         prototype accordingly.
10448
10449 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
10450
10451         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
10452
10453 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
10454
10455         * configure.in: Increase required makeinfo version to 4.1.
10456         * configure: Regenerate.
10457
10458 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
10459
10460         * .cvsignore: Remove *.info* and genrtl*; these files are generated
10461         elsewhere now.
10462
10463 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
10464
10465         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
10466         * doc/invoke.texi: Fix @math uses.
10467
10468 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
10469
10470         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
10471         removal
10472
10473 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
10474
10475         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
10476         (powerpc-*-eabisimaltivec*): Same.
10477
10478         * config/rs6000/t-ppcendian: New.
10479
10480 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10481
10482         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
10483         nonimmediate_src_operand and nonimmediate_lsrc_operand to
10484         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
10485
10486 2002-03-03  Richard Henderson  <rth@redhat.com>
10487
10488         * toplev.c (rest_of_decl_compilation): Revert last two changes.
10489
10490 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
10491
10492         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
10493         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
10494         tree.c, config/m68k/m68k.c:
10495         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
10496         REAL_ARITHMETIC blocks unconditional.  Delete some further
10497         #ifdef blocks predicated on REAL_ARITHMETIC.
10498         * flags.h, toplev.c: Delete remaining references to
10499         flag_pretend_float.
10500
10501         * doc/invoke.texi: Remove documentation of -fpretend-float.
10502         * doc/tm.texi: Describe the various REAL_* macros as provided by
10503         real.h, not by the target configuration files.
10504
10505         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
10506         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
10507         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
10508         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
10509         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
10510         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
10511         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
10512         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
10513         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
10514         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
10515         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
10516         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
10517         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
10518         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
10519         config/xtensa/xtensa.h:
10520         Do not define, undefine, or mention in comments any of
10521         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
10522         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
10523         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
10524         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
10525         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
10526         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
10527         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
10528         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
10529         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
10530
10531 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10532
10533         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
10534         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
10535         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
10536         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
10537         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
10538         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
10539         Delete.
10540         * defaults.h (BITS_PER_WORD): Define.
10541         * doc/tm.texi (BITS_PER_WORD): Document default value.
10542
10543         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
10544         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
10545         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
10546
10547 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10548
10549         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
10550         lieu of explicit sizeof/sizeof.
10551         * i386.c (override_options, ix86_init_mmx_sse_builtins,
10552         ix86_expand_builtin): Likewise.
10553         * mips.c (mips_add_gc_roots): Likewise.
10554         * mmix.c (mmix_output_condition): Likewise.
10555         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
10556         altivec_init_builtins): Likewise.
10557         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
10558         * cppexp.c (Nsuff, parse_number): Likewise.
10559         * cppinit.c (builtin_array_end): Likewise.
10560         * gcc.c (n_default_compilers, process_command): Likewise.
10561         * genpreds.c (output_predicate_decls): Likewise.
10562         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
10563         * lcm.c (N_ENTITIES): Likewise.
10564         * stor-layout.c (set_sizetype): Likewise.
10565
10566 2002-03-03  Richard Henderson  <rth@redhat.com>
10567
10568         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
10569         for types or labels.
10570
10571 2002-03-03  Richard Henderson  <rth@redhat.com>
10572
10573         * c-decl.c (start_decl): Initialized variables are not common.
10574
10575 2002-03-02  Per Bothner  <per@bothner.com>
10576
10577         * gcc.c (option_map):  Suport new --bootclasspath option.
10578         --CLASSPATH is now just an alias for --classpath.
10579
10580 2002-03-02  Richard Henderson  <rth@redhat.com>
10581
10582         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
10583         load if "internal" visibility.
10584         * doc/extend.texi: Document visibility meanings.
10585
10586 2002-03-02  Richard Henderson  <rth@redhat.com>
10587
10588         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
10589         to functions as well.
10590
10591 2002-03-02  Richard Henderson  <rth@redhat.com>
10592
10593         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
10594         (handle_visibility_attribute): Don't call assemble_visibility.
10595         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
10596         without asmspec.  Invoke assemble_alias when needed.
10597         * varasm.c (maybe_assemble_visibility): New.
10598         (assemble_start_function, assemble_variable, assemble_alias): Use it.
10599
10600 2002-03-02  Richard Henderson  <rth@redhat.com>
10601
10602         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
10603         invoke ENCODE_SECTION_INFO with first call flag.
10604
10605         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
10606         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
10607         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
10608         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
10609         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
10610         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
10611         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
10612         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
10613         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
10614         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
10615         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
10616         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
10617         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
10618         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
10619         config/mcore/mcore-protos.h, config/mcore/mcore.c,
10620         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
10621         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
10622         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
10623         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
10624         config/sh/sh.h, config/sparc/sparc.h,
10625         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
10626         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
10627         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
10628         FIRST argument.  As needed, examine it and do nothing.
10629
10630         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
10631         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
10632         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
10633
10634         * config/arm/t-pe (pe.o): Add dependencies.
10635
10636 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10637
10638         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
10639         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
10640         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
10641         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
10642         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
10643         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
10644         * defaults.h (BITS_PER_UNIT): Define.
10645         * doc/tm.texi (BITS_PER_UNIT): Document default value.
10646
10647 2002-03-02  Kazu Hirata  <kazu@hxi.com>
10648
10649         * config/h8300/h8300-protos.h: Add a prototype for
10650         compute_a_shift_length.
10651         * config/h8300/h8300.c (h8300_asm_insn_count): New.
10652         (compute_a_shift_length): Likewise.
10653         (h8300_adjust_insn_length): Do not adjust insn length of shift
10654         insns.
10655         * config/h8300/h8300.md (anonymous shift patterns): Use
10656         compute_a_shift_length.
10657
10658 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10659
10660         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
10661         trunc_int_for_mode.
10662
10663         * emit-rtl.c (offset_address): Call update_temp_slot_address.
10664
10665 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10666
10667         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
10668         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
10669         * flags.h (flag_zero_initialized_in_bss): Declare.
10670         * toplev.c (flag_zero_initialized_in_bss): New flag.
10671         (lang_independent_options): Add flag_zero_initialized_in_bss.
10672         * tree.c (initializer_zerop): New function.
10673         * tree.h (initializer_zerop): Declare.
10674         * varasm.c (assemble_variable): If we can emit bss, put zero
10675         initializers in the bss section.
10676
10677 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
10678
10679         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
10680         like more than one symbol per .weak directive.
10681
10682 2002-03-01  Richard Henderson  <rth@redhat.com>
10683
10684         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
10685         adjust argument_pointer by pretend_args_size.
10686         (ia64_va_start): Adjust va_start address by -pretend_args_size.
10687
10688 2002-03-01  Kazu Hirata  <kazu@hxi.com>
10689
10690         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
10691
10692 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
10693
10694         * toplev.c (rest_of_compilation): Delete dead jumptables before
10695         loop.
10696         * flow.c (delete_dead_jumptables): Make global.
10697         * rtl.h (delete_dead_jumptables): Declare.
10698
10699 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
10700
10701         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
10702         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
10703         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
10704
10705 2002-03-01  Kazu Hirata  <kazu@hxi.com>
10706
10707         * config/h8300/h8300-protos.h: Fix formatting.
10708         * config/h8300/h8300.c: Likewise.
10709         * config/h8300/h8300.h: Likewise.
10710
10711 2002-03-01  Kazu Hirata  <kazu@hxi.com>
10712
10713         * config/h8300/h8300.c (print_operand): Support 16-bit
10714         constant addresses.
10715         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
10716
10717 2002-02-28  Richard Henderson  <rth@redhat.com>
10718
10719         * expmed.c (store_bit_field): Prevent generation of CONCATs;
10720         pun complex values as integers; use gen_lowpart instead of
10721         gen_rtx_SUBREG.
10722         (extract_bit_field): Likewise.
10723
10724 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
10725             David Edelsohn  <edelsohn@gnu.org>
10726
10727         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
10728         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
10729         (SUPPORTS_WEAK): Likewise.
10730         * output.h (add_weak): Add tree param.
10731         * varasm.c (add_weak): Likewise.  Save decl.
10732         (struct weak_syms): Add decl field.
10733         (mark_weak_decls): New function.
10734         (init_varasm_once): ggc_add_root mark_weak_decls.
10735         (assemble_start_function): Use ASM_WEAKEN_DECL.
10736         (assemble_variable): Likewise.
10737         (assemble_alias): Likewise.
10738         (declare_weak): Pass decl to add_weak.
10739         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
10740         (remove_from_pending_weak_list): Declare and define for
10741         ASM_WEAKEN_DECL.
10742         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
10743         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
10744         * defaults.h (SUPPORTS_WEAK): Likewise.
10745         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
10746         .weak for code sym.  Do emit .size for descriptor sym.
10747         (ASM_DECLARE_FUNCTION_SIZE): Define.
10748         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
10749         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
10750         .lglobl unless TARGET_XCOFF.  Formatting fixes.
10751         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
10752         .weak for code sym.
10753         (HANDLE_PRAGMA_WEAK): Remove.
10754         (ASM_WEAKEN_LABEL): Remove.
10755         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
10756
10757 2002-03-01  Jason Merrill  <jason@redhat.com>
10758
10759         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
10760         (TARGET_EXPR_CLEANUP): New macro.
10761
10762 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
10763
10764         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
10765         to take ptr_extend into account as third type of extension.
10766         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
10767         fields used by SUBREG_PROMOTED_UNSIGNED_P.
10768         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
10769         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
10770         * calls.c (precompute_arguments): Use new macro.
10771         (expand_call): Ditto.
10772         * combine.c (nonzero_bits): Ditto.
10773         (record_promoted_value): Ditto.
10774         * expr.c (store_expr): Ditto.
10775         (expand_expr): Ditto.
10776         * function.c (assign_parms): Ditto.
10777
10778 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
10779
10780         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
10781         override -shared and -shared-libgcc.
10782
10783 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
10784
10785         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
10786         of "ultrasparc".
10787         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
10788         to be broken.
10789
10790 2002-02-28  Richard Henderson  <rth@redhat.com>
10791
10792         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
10793         4 cycle latency from MM producers.
10794         (ia64_internal_sched_reorder): Likewise with pipeline flush.
10795
10796 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
10797
10798         * mklibgcc.in: Don't use GNU make extension.
10799
10800 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
10801
10802         * c-parse.in (STATIC): New terminal.
10803         (scspec): New non-terminal.  Update productions accordingly.
10804         (program): Remove bogus ifc / end ifc.
10805         (array_declarator): Simplify production using STATIC.
10806
10807 2002-02-28  Jim Meyering  <meyering@lucent.com>
10808
10809         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
10810         \a still means TARGET_BELL.
10811
10812 2002-02-28  Richard Henderson  <rth@redhat.com>
10813
10814         * haifa-sched.c (sched_emit_insn): New.
10815         (schedule_block): Use last_scheduled_insn to track last insn.
10816         * sched-int.h (sched_emit_insn): Prototype.
10817         * config/ia64/ia64.c (last_issued): Remove.
10818         (ia64_variable_issue): Don't set it.
10819         (nop_cycles_until): Use sched_emit_insn.
10820
10821 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
10822
10823         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
10824         extended constants.
10825
10826 2002-02-28  Kazu Hirata  <kazu@hxi.com>
10827
10828         * config/h8300/h8300.c: Fix formatting.
10829         * config/h8300/h8300.h: Likewise.
10830
10831 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
10832
10833         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
10834         which may overwrite the high byte of the frame pointer.
10835
10836 2002-02-28  Bo Thorsen  <bo@suse.de>
10837
10838         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
10839         (STARTFILE_SPEC): Add 64 bit files.
10840         (ENDFILE_SPEC): Likewise.
10841
10842 2002-02-28  Jason Merrill  <jason@redhat.com>
10843
10844         * c-decl.c (finish_function): Only warn about missing return
10845         statement with -Wreturn-type.
10846
10847 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
10848
10849         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
10850
10851         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
10852         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
10853
10854 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
10855
10856         * basic-block.h (BB_REACHABLE): Renumber.
10857         (BB_DIRTY, BB_NEW): New flags.
10858         (clear_bb_flags): Declare.
10859         (update_life_info_in_dirty_blocks): Declare.
10860         * cfg.c (clear_bb_flags): New function.
10861         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
10862         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
10863         reorder_insns, emit_insn_after): Mark block as dirty.
10864         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
10865         (update_life_info_in_dirty_blocks): New function.
10866         * recog.c (apply_change_group): Dirtify block.
10867
10868         * cse.c (cse_insn): Reorder emitting of jump insn to keep
10869         cfg consistent.
10870         * gcse.c (delete_null_pointer_checks): Likewise.
10871
10872         * toplev.c (dump_file_index): Move cse2 after bp,
10873         add DFI_null
10874         (dump_file_info): Similary.
10875         (rest_of_compilation): Avoid most of CFG rebuilds;
10876         do first if converision after null pointer checks, do cse2
10877         after branch prediction; avoid full liveness rebuild after
10878         initializing subregs.
10879         * invoke.texi (-d options): Document -du, renumber.
10880
10881         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
10882         (notice_new_block): Do not set BB_UPDATE_LIFE.
10883         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
10884          merge_blocks_move_successor_nojumps, merge_blocks,
10885          try_crossjump_to_edge): Likewise.
10886         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
10887         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
10888         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
10889         (merge_of_block): Do not use life_data_ok.
10890         (find_if_case_1): Do not use SET_UPDATE_LIFE.
10891         (if_convert): Use BB_DIRTY mechanizm to update life.
10892         * lcm.c (optimize_mode_switching): Update
10893         update_life_info_in_dirty_blocks
10894
10895 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
10896
10897         * Makefile.in (integrate.o): Update.
10898         * c-decl.c (copy_lang_decl): Rename.
10899         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
10900         * integrate.c: Include langhooks.h.
10901         (copy_decl_for_inlining): Update to use langhook.
10902         * langhooks-def.h (lhd_do_nothing_t,
10903         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
10904         (LANG_HOOKS_INITIALIZER): Update.
10905         * langhooks.c (lhd_do_nothing_t): New.
10906         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
10907         * tree.h (copy_lang_decl): Remove.
10908 objc:
10909         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
10910
10911 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
10912
10913         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
10914         POST_DEC, and POST_MODIFY.
10915
10916 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
10917
10918         * c-typeck.c (digest_init): Remove unused parameter; all
10919         callers changed.
10920
10921 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
10922
10923         * expmed.c (expand_shift): Correctly test for low part of a
10924         subreg.
10925
10926 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
10927
10928         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
10929         insn UIDs with insn addresses.
10930
10931 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
10932
10933         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
10934         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
10935         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
10936         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
10937         gcc.c, toplev.c: Delete code implementing -traditional mode.
10938
10939         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
10940         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
10941         Document removal of -traditional mode for compilation, and
10942         remove documentation only relevant to that mode.
10943
10944         * config/nextstep.h, config/ptx4.h, config/svr4.h,
10945         config/convex/convex.h, config/d30v/d30v.h,
10946         config/i386/dgux.h, config/i386/osf1elf.h,
10947         config/i386/osfelf.h, config/i386/osfrose.h,
10948         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
10949         config/m68k/hp310.h, config/m88k/dgux.h,
10950         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
10951         config/m88k/m88k.h, config/m88k/openbsd.h,
10952         config/mips/abi64.h, config/mips/osfrose.h,
10953         config/mips/svr4-5.h, config/mips/svr4-t.h,
10954         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
10955         config/stormy16/stormy16.h: Remove all references to
10956         -traditional from target specs.  Delete all mention of the
10957         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
10958         delete a couple of commented-out definitions of
10959         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
10960         to -traditional.
10961
10962         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
10963         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
10964
10965 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
10966
10967         * mklibgcc.in: Don't use \n in a line subject to
10968         interpretation by echo.
10969
10970 2002-02-27  Graham Stott  <grahams@redhat.com>
10971
10972         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
10973         Constify NAME.
10974
10975         * loop.c (prescan_loop): Handle PARALLEL.
10976
10977         * unroll.c (loop_iterations): Return 0 if the add_val for
10978         a BIV is REG.
10979
10980         * final.c (output_operand_lossage): Constify PFX_STR.
10981
10982         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
10983
10984 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
10985
10986         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
10987         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
10988
10989 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
10990
10991         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
10992
10993 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
10994
10995         * cpplex.c (_cpp_lex_token): Handle directives in macro
10996         arguments.
10997         * cpplib.c (_cpp_handle_directive): Save and restore state
10998         if parsing macro args when entering a directive.
10999         * cppmacro.c (collect_args): No need to handle directives
11000         in macro arguments.
11001         (enter_macro_context, replace_args): Use the original macro
11002         definition in case it was redefined whilst collecting arguments.
11003 doc:
11004         * cpp.texi: Update.
11005
11006 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
11007
11008         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
11009         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
11010         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
11011         method on AIX.
11012         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
11013         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
11014         (load_toc_v4_PIC_2): Same.
11015
11016 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
11017
11018         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
11019
11020 2002-02-26  Richard Henderson  <rth@redhat.com>
11021
11022         * config/alpha/alpha.md (ashldi_se): Re-enable.
11023
11024 2002-02-26  Richard Henderson  <rth@redhat.com>
11025
11026         * config/alpha/alpha.c (alpha_encode_section_info): Examine
11027         MODULE_LOCAL_P; improve commentary.
11028
11029 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
11030
11031         * doc/cpp.texi: Clarify documentation of relationship between
11032         #line and #include.
11033
11034 2002-02-26  Kazu Hirata  <kazu@hxi.com>
11035
11036         * config/h8300/h8300-protos.h: Update the prototype for
11037         compute_logical_op_length.  Add the prototype for
11038         compute_logical_op_cc.
11039         * config/h8300/h8300.c (compute_logical_op_length): Figure out
11040         code from operands.
11041         (compute_logical_op_cc): New.
11042         * config/h8300/h8300.md: Combine all the logical op patterns
11043         in HImode and SImode.  Use compute_logical_op_cc.
11044
11045 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
11046
11047         * config/i386/i386.c (print_operand): Don't append ATT-style
11048         length suffixs to x87 opcodes when in Intel mode.
11049
11050 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
11051
11052         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
11053         (init_emit_once): Update calls.
11054         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
11055         (init_syntax_once): Prototype.
11056
11057 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11058
11059         * pa-linux.h (LIB_SPEC): Update definition.
11060         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
11061
11062 2002-02-26  Richard Henderson  <rth@redhat.com>
11063
11064         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
11065         if we emitted a stop bit.
11066
11067 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
11068
11069         * configure.in (libgcc_visibility): Substitute.
11070         * configure: Rebuilt.
11071         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
11072         defined symbols .hidden.
11073
11074 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
11075
11076         * attribs.c (c_common_attribute_table): Add visibility.
11077         (handle_visibility_attribute): New function.
11078         * varasm.c (assemble_visibility): New function.
11079         * output.h (assemble_visibility): Add prototype.
11080         * tree.h (MODULE_LOCAL_P): Define.
11081         * crtstuff.c (__dso_handle): Use visibility attribute.
11082         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
11083         for MODULE_LOCAL_P symbols too.
11084         * config/ia64/ia64.c (ia64_encode_section_info): Handle
11085         MODULE_LOCAL_P symbols the same way as local symbols.
11086         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
11087         into .sdata/.sbss by the user.
11088         * doc/extend.texi (Function Attributes): Document visibility
11089         attribute.
11090
11091 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
11092
11093         PR debug/5770
11094         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
11095         STRING_CST initializer spanning the whole variable without
11096         embedded zeros.
11097         If expand_expr returned MEM, don't use it.
11098
11099 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
11100
11101         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
11102         generate a die for the lexical block.
11103
11104 2002-02-26  Kazu Hirata  <kazu@hxi.com>
11105
11106         * config/h8300/h8300-protos.h: Add a prototype for
11107         compute_logical_op_length.
11108         * config/h8300/h8300.c (compute_logical_op_length): New.
11109         * config/h8300/h8300.md (anonymous logical patterns): Use
11110         compute_logical_op_length for length.
11111
11112 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
11113
11114         * dwarf2out.c (modified_type_die): Do not call type_main_variant
11115         for vectors.
11116         (gen_type_die): Same.
11117
11118         * attribs.c (handle_vector_size_attribute): Set debug information.
11119
11120 2002-02-26  Daniel Egger  <degger@fhm.edu>
11121
11122         * config/rs6000/rs6000.md: Swap define_insn attributes to
11123         fix incorrect generation of merge high instructions instead
11124         of merge low.
11125
11126 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
11127
11128         * c-typeck.c (really_start_incremental_init): Use
11129         bitsize_zero_node for vectors.
11130
11131 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
11132
11133         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
11134         ("*set_vrsave_internal"): Same.
11135
11136 2002-02-25  Richard Henderson  <rth@redhat.com>
11137
11138         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
11139         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
11140
11141 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
11142
11143         PR target/5755
11144         * config/i386/i386.c (ix86_return_pops_args): Only pop
11145         fake structure return argument if it was passed on the stack.
11146
11147 2002-02-25  Jason Merrill  <jason@redhat.com>
11148
11149         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
11150         RESULT_DECL.
11151
11152 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
11153
11154         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
11155         link with shared_name only.
11156         * doc/invoke.texi (Link Options): Document new behavior.
11157
11158 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
11159
11160         * c-typeck.c (push_init_level): Handle vectors.
11161
11162 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
11163
11164         * config/sparc/sparc.c (const64_high_operand): Zero-extend
11165         operands of SPARC_SETHI_P.
11166         (input_operand): Likewise.
11167         (sparc_emit_set_const32): Likewise.
11168         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
11169         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
11170         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
11171         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
11172         (movdi_insn_sp64_vis): Likewise.
11173         (movdi split, movdf split): Use SETHI32.
11174         * doc/md.texi: Document SPARC constraints L, M and N.
11175
11176 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
11177
11178         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
11179         ("*set_vrsave_internal"): use mfspr for Darwin.
11180
11181         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
11182         gen_get_vrsave_internal.
11183
11184 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11185
11186         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
11187
11188 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
11189
11190         * cpplex.c (cpp_interpret_charconst): Get signedness or
11191         otherwise of wide character constants correct.
11192         * cppexp.c (lex): Get signedness of wide charconsts correct.
11193
11194 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11195
11196         * optabs.c (widen_operand): Only call convert_modes for
11197         promoted SUBREG if signedness matches.
11198         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
11199
11200 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
11201
11202         * cpplib.c (glue_header_name): Use local buffer to build up
11203         header name.
11204
11205 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
11206
11207         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
11208
11209 2002-02-23  Kazu Hirata  <kazu@hxi.com>
11210
11211         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
11212         H8/300[HS] separately.
11213         * config/h8300/h8300.md: Remove the early clobber constraint
11214         from bit field patterns.
11215
11216 2002-02-23  Kazu Hirata  <kazu@hxi.com>
11217
11218         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
11219         register_operand.
11220         (mulhisi3): Likewise.
11221         (umulqisi3): Likewise.
11222         (umulhisi3): Likewise.
11223
11224 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
11225
11226         * cppinit.c (output_deps): Correct test for stdout output.
11227         (init_dependency_output): Cure warning.
11228
11229 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11230
11231         * expr.c (store_expr): When converting expression to promoted
11232         equivalent type, allow using SUBREG_REG of TARGET as the target
11233         of the expansion of EXP.
11234         * loop.c (basic_induction_var, case SUBREG): Always look inside.
11235         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
11236         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
11237         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
11238         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
11239
11240 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
11241
11242         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
11243         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
11244         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
11245
11246 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
11247
11248         PR optimization/5747
11249         * loop.c (scan_loop): Update reg info if move_movables created new
11250         pseudos.
11251
11252 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
11253
11254         * gcc.c (init_gcc_spec): Revert last change.
11255
11256 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
11257
11258         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
11259         gpc_reg_operand constraint.
11260
11261 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
11262
11263         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
11264         Simplify comparison of `low'.
11265         (add_operand): Fix formatting.
11266         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
11267         (mask_operand): Disallow mask to wrap in 64-bit mode.
11268         (rs6000_stack_info): Remove redundant test setting push_p.
11269         (output_toc): Fix formatting.
11270         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
11271         cc_reg_not_cr0_operand constraint.
11272         (booldi3, boolcdi3 splitters): Same.
11273
11274 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
11275
11276         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
11277
11278 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
11279
11280         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
11281         gcc invoked with -shared-libgcc.
11282
11283 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
11284
11285         PR c++/5748
11286         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
11287         decl if any of elements was TREE_USED.
11288
11289 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
11290
11291         * config/sparc/sol2.h: Don't include sys/mman.h.
11292         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
11293         (arith_4096_operand): Don't throw high bits away.
11294         (const64_operand): Take sign extension of CONST_INTs into account.
11295         (const64_high_operand, sparc_emit_set_const32): Likewise.
11296         (GEN_HIGHINT64): Likewise.
11297         (sparc_emit_set_const64_quick1): Likewise.
11298         (const64_is_2insns): Likewise.
11299         (print_operand): Use trunc_int_for_mode for sign extension.
11300         * config/sparc/sparc.h (SMALL_INT32): Likewise.
11301         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
11302         chars.  Assume CONST_INT is already properly sign-extended.
11303         (movdi split): Sign-extend each SImode part.
11304         (andsi3 split): Don't mask high bits off, so that result
11305         remains properly sign-extend.
11306         (iorsi3 split): Likewise.
11307         (xorsi3 split): Likewise.
11308
11309 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
11310
11311         * fold-const.c (fold): Fix typo in comments.
11312
11313 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
11314
11315         * Makefile.in (langhooks.o): Update dependencies.
11316
11317 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
11318
11319         * langhooks.c: Include flags.h.
11320
11321 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
11322
11323         * testsuite/gcc.dg/attr-alwaysinline.c: New.
11324
11325         * c-common.c (c_common_post_options): Set inline trees by
11326         default.
11327
11328         * doc/extend.texi (Function Attributes): Document always_inline
11329         attribute.
11330         Update documentation about inlining when not optimizing.
11331
11332         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
11333
11334         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
11335         unless DECL_ALWAYS_INLINE.
11336
11337         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
11338         unless DECL_ALWAYS_INLINE.
11339         (c_disregard_inline_limits): Disregard if always_inline set.
11340
11341         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
11342         Disregard if always_inline set.
11343         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
11344         unless DECL_ALWAYS_INLINE.
11345
11346         * attribs.c (handle_always_inline_attribute): New.
11347         (c_common_attribute_table): Add always_inline.
11348
11349         * config/rs6000/altivec.h: Add prototypes for builtins
11350         requiring the always_inline attribute.
11351
11352 2002-02-21  Eric Christopher  <echristo@redhat.com>
11353
11354         * expmed.c (store_bit_field): Try to simplify the subreg
11355         before generating a new one when when the mode size of
11356         value is less than maxmode.
11357
11358 2002-02-21  Richard Henderson  <rth@redhat.com>
11359
11360         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
11361         than gen_rtx_PLUS to form the sum.
11362         * explow.c (force_reg): Rearrange to not allocate new pseudo
11363         when force_operand returns a register.
11364         * expr.c (expand_assignment): Allow offset_rtx expansion to
11365         return a sum.  Do not force addresses into registers.
11366         (expand_expr): Likewise.
11367         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
11368         to canonicalize arithmetic that didn't simpify.
11369         (simplify_plus_minus): New argument force; update
11370         all callers.  Don't split CONST unless we can do something with it,
11371         and wouldn't lose the constness of the operands.
11372
11373         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
11374         that we generated earlier.
11375
11376 2002-02-21  Tom Tromey  <tromey@redhat.com>
11377
11378         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
11379         (output_line_info): Use constant `1', with a long explanatory
11380         comment.
11381         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
11382
11383 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
11384
11385         * jump.c (redirect_jump): If old label has no UID, don't try to
11386         delete it.
11387
11388 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
11389
11390         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
11391         If input is constant, do shifts at compile time.
11392
11393 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
11394
11395         * doc/extend.texi: Fix some more overfull hboxes.
11396
11397 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
11398
11399         PR optimization/4994
11400         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
11401         register moves.
11402
11403 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
11404
11405         PR c++/4574
11406         * expr.h (expand_and): Add mode argument.
11407         * expmed.c (expand_and): Add mode argument.
11408         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
11409         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
11410         * except.c (expand_builtin_extract_return_addr): Likewise.
11411         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
11412         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
11413         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
11414         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
11415         * config/c4x/c4x.md: Use GEN_INT (x) instead of
11416         gen_rtx (CONST_INT, VOIDmode, x).
11417
11418 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
11419
11420         PR c/4697:
11421         * stmt.c (warn_if_unused_value): Move side effects test once more.
11422
11423 2002-02-20  Torbjorn Granlund  <tege@swox.com>
11424
11425         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
11426         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
11427
11428 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
11429
11430         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
11431         SUBREG or ZERO_EXTEND.
11432
11433 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
11434
11435         * sh.h (current_function_anonymous_args): Remove.
11436         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
11437         of current_function_varargs and current_function_stdarg is set.
11438         * sh.c (sh_expand_prologue): Check current_function_varargs /
11439         current_function_stdarg / TARGET_SH5 instead of
11440         current_function_anonymous_args.
11441
11442         * sh64.h (TARGET_VERSION): Define.
11443
11444 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
11445
11446         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
11447         VRSAVE_REGNO on TARGET_ALTIVEC.
11448
11449 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
11450
11451         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
11452         bits of SImode const_int.
11453         (includes_rshift_p): Likewise.
11454         (print_operand): Call mask_operand and mask64_operand with correct
11455         mode.
11456         (rs6000_output_function_epilogue): Pad traceback table to word.
11457         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
11458         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
11459         mask64_operand with correct mode.
11460         (FUNCTION_ARG_REGNO_P): Correct parentheses.
11461
11462 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
11463
11464         PR debug/4461
11465         * varasm.c (get_pool_constant_mark): New.
11466         * rtl.h (get_pool_constant_mark): Add prototype.
11467         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
11468         be represented if it has not been output.
11469
11470 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
11471
11472         * combine.c (do_SUBST): Sanity check substitutions of
11473         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
11474         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
11475         CONST_INT into its operand.
11476         (known_cond): Likewise, for ZERO_EXTEND.
11477         * simplify-rtx.c (simplify_unary_operation): Fix condition to
11478         allow for simplification of wide modes.  Reject CONST_INTs in
11479         ZERO_EXTEND when their actual mode is not given.
11480
11481 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
11482
11483         * c-decl.c (pushdecl): If no global declaration is found for an
11484         extern declaration in block scope, try a limbo one.
11485
11486 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
11487
11488         PR c++/4401
11489         * c-common.c (pointer_int_sum): Moved from...
11490         * c-typeck.c (pointer_int_sum): ...here.
11491         * c-common.h (pointer_int_sum): Add prototype.
11492
11493 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
11494
11495         PR c++/5713
11496         * c-decl.c (duplicate_decls): Return 0 if issued error about
11497         redeclaration.
11498
11499 2002-02-20  Roger Sayle  <roger@eyesopen.com>
11500             Jakub Jelinek  <jakub@redhat.com>
11501
11502         PR c/4389
11503         * tree.c (host_integerp): Ensure that the constant integer is
11504         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
11505         when pos is zero or non-zero respectively.  Clarify comment.
11506         * c-format.c (check_format_info_recurse): Fix host_integerp
11507         usage; the pos argument should be zero when assigning to a
11508         signed HOST_WIDE_INT.
11509
11510 2002-02-20  Richard Henderson  <rth@redhat.com>
11511
11512         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
11513         of the operand, rather than assuming TImode.
11514         (ix86_expand_binop_builtin): Cope with commutative patterns
11515         using nonimmediate_operand for both operands.
11516         (ix86_expand_timode_binop_builtin): Likewise.
11517         (ix86_expand_store_builtin): Validate operand 1.
11518         (ix86_expand_unop1_builtin): Likewise.
11519
11520 2002-02-20  Philip Blundell  <philb@gnu.org>
11521
11522         PR 5705
11523         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
11524
11525 2002-02-20  Richard Henderson  <rth@redhat.com>
11526
11527         PR c/5615
11528         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
11529
11530 2002-02-20  Tom Tromey  <tromey@redhat.com>
11531
11532         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
11533         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
11534         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
11535         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
11536         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
11537         unconditionally.
11538
11539 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
11540
11541         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
11542           for (const_int 0) in X not just INTVAL.
11543
11544 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
11545
11546         * doc/extend.texi: Avoid or reduce overfull hboxes.
11547
11548 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
11549
11550         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
11551         operations if the field does not start at a mode boundary.
11552
11553 2001-02-20      Joel Sherrill <joel@OARcorp.com>
11554
11555         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
11556         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
11557         Also done for -Acpu and -Amachine.
11558
11559 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
11560
11561         * cppinit.c (init_dependency_output): Take deps output file
11562         from -o if none given with -MF.  Suppress normal output.
11563         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
11564         * doc/cpp.texi, doc/invoke.texi: Update.
11565
11566 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
11567
11568         * toplev.c (output_quoted_string): Write unprintable
11569         characters with octal escapes.
11570
11571 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
11572
11573         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
11574         really_call_used[VRSAVE_REGNO] if not Altivec.
11575
11576 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
11577
11578         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
11579         MODE_MASK.
11580         (constant_pool_expr_1): Fix formatting.
11581         (rs6000_legitimize_reload_address): Likewise.
11582
11583 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11584
11585         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
11586         now that we have one.
11587
11588 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
11589
11590         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
11591         end of first block of bitfields (which was only seven bits);
11592         rename dummy to unused_1; remove comment which is no longer true.
11593
11594 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
11595
11596         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
11597
11598 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
11599
11600         PR 5399
11601         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
11602         if generating PIC.
11603
11604         PR 5054
11605         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
11606         arm_is_longcall_p rather than inspecting call-type cookie
11607         directly.
11608         (call_value_insn) [TARGET_THUMB]: Likewise.
11609
11610 2002-02-19  Graham Stott  <grahams@redhat.com>
11611
11612         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
11613
11614 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
11615
11616         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
11617         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
11618         (FP_SAVE_INLINE): Delete.
11619
11620         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
11621         * config/rs6000/eabi.asm: Remove ABI save restore routines.
11622         * config/rs6000/t-ppccomm: Build crtsavres.o.
11623         * config/rs6000/crtsavres.asm: New file.
11624
11625 2002-02-19  Philip Blundell  <philb@gnu.org>
11626
11627         * config/arm/arm.c (use_return_insn): Don't reject interrupt
11628         functions.
11629         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
11630         (output_return_instruction): Allow interrupt functions to return with
11631         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
11632         (arm_expand_prologue): Subtract 4 before stacking LR in an
11633         interrupt function.
11634
11635 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
11636
11637         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
11638         decl, not just FUNCTION_DECL.
11639         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
11640         (arm_assemble_integer): Likewise.
11641         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
11642         marked local.
11643
11644 2002-02-19  matthew green  <mrg@eterna.com.au>
11645
11646         * config.gcc (sparc-*-netbsdelf*): Enable target.
11647         (sparc64-*-netbsd*): New target.
11648         * config/sparc/netbsd-elf.h: New file.
11649         * config/sparc/t-netbsd64: New file.
11650
11651 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
11652
11653         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
11654
11655 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
11656
11657         * doc/invoke.texi: explicitly list the style guidelines that
11658         -Weffc++ checks for.
11659
11660 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
11661
11662         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
11663
11664 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
11665
11666         PR other/5718
11667         * gcc.c (cpp_unique_options): Treat -o as indicating object file
11668         only if not -E.  If -E, pass -o through to the preprocessor.
11669
11670 2002-02-19  Kazu Hirata  <kazu@hxi.com>
11671
11672         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
11673         register number with an appropriate macro.
11674
11675 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
11676
11677         * doc/rtl.texi (Constants): Close @code tag.
11678
11679 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
11680
11681         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
11682         ("mmx_uavgv4hi3"): Same.
11683         ("pmulhrwv4hi3"): Same.
11684
11685         * tree-inline.c (walk_tree): Handle vectors.
11686
11687         * c-common.c (constant_expression_warning): Handle vectors.
11688         (overflow_warning): Same.
11689
11690         * sched-deps.c (sched_analyze_2): Handle vectors.
11691
11692         * rtlanal.c (rtx_unstable_p): Handle vectors.
11693         (rtx_varies_p): Same.
11694         (count_occurrences): Same.
11695         (regs_set_between_p): Same.
11696         (modified_between_p): Same.
11697         (modified_in_p): Same.
11698         (volatile_insn_p): Same.
11699         (volatile_refs_p): Same.
11700         (side_effects_p): Same.
11701         (may_trap_p): Same.
11702         (inequality_comparisons_p): Same.
11703         (replace_regs): Same.
11704         (computed_jump_p_1): Same.
11705
11706         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
11707         argument.
11708         (inner_mode_array): New.
11709         (copy_rtx): Handle vectors.
11710         (copy_most_rtx): Same.
11711         (rtx_equal_p): Same.
11712         (get_mode_alignment): Adjust for vectors.
11713
11714         * resource.c (mark_referenced_resources): Handle vectors.
11715         (mark_set_resources): Same.
11716
11717         * reload1.c (eliminate_regs): Handle vectors.
11718         (elimination_effects): Same.
11719         (scan_paradoxical_subregs): Same.
11720
11721         * reload.c (subst_reg_equivs): Handle vectors.
11722
11723         * regrename.c (scan_rtx): Handle vectors.
11724
11725         * regclass.c (reg_scan_mark_refs): Handle vectors.
11726
11727         * recog.c (find_single_use_1): Handle vectors.
11728
11729         * local-alloc.c (equiv_init_varies_p): Handle vectors.
11730         (contains_replace_regs): Same.
11731         (memref_referenced_p): Same.
11732
11733         * integrate.c (copy_rtx_and_substitute): Handle vectors.
11734         (subst_constants): Same.
11735
11736         * genattrtab.c (attr_copy_rtx): Handle vectors.
11737         (encode_units_mask): Same.
11738         (clear_struct_flag): Same.
11739         (count_sub_rtxs): Same.
11740
11741         * gcse.c (want_to_gcse_p): Handle vectors.
11742         (oprs_unchanged_p): Same.
11743         (hash_expr_1): Same.
11744         (oprs_not_set_p): Same.
11745         (expr_killed_p): Same.
11746         (compute_transp): Same.
11747         (store_ops_ok): Same.
11748
11749         * function.c (purge_addressof_1): Do not allow paradoxical subregs
11750         of vectors.
11751         (fixup_var_refs_1): Same.
11752         (instantiate_virtual_regs_1): Same.
11753
11754         * fold-const.c (operand_equal_p): Handle vectors.
11755         (fold): Same.
11756         (rtl_expr_nonnegative_p): Same.
11757
11758         * flow.c (mark_used_regs): Handle vectors.
11759
11760         * df.c (df_uses_record): Handle vectors.
11761
11762         * cselib.c (cselib_subst_to_values): Handle vectors.
11763         (cselib_mem_conflict_p): Same.
11764         (hash_rtx): Same.
11765
11766         * cse.c (canon_reg): Handle vectors.
11767         (fold_rt): Same.
11768         (cse_process_notes): Same.
11769         (count_reg_usage): Same.
11770         (canon_hash): Same.
11771
11772         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
11773
11774         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
11775
11776         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
11777         (gen_rtx): Handle CONST_VECTOR.
11778         (gen_const_vector_0): New.
11779         (copy_rtx_if_shared): CONST_VECTORs can be shared.
11780         (reset_used_flags): Same.
11781         (copy_insn_1): Same.
11782         (initializer_constant_valid_p): Handle VECTOR_CST.
11783
11784         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
11785
11786         * doc/rtl.texi (Constants): Document const_vector.
11787         (CONST0_RTX): Update for vectors.
11788         (RTL sharing): Same.
11789
11790         * print-tree.c (print_node): Add case for VECTOR_CST.
11791
11792         * tree.h (TREE_VECTOR_CST_ELTS): New.
11793         (struct tree_vector): New.
11794         (union tree_node): Add vector node.
11795         (build_vector): Add prototype.
11796
11797         * tree.def (VECTOR_CST): New.
11798
11799         * tree.c (build_vector): New.
11800
11801         * expmed.c (make_tree): Handle CONST_VECTOR.
11802
11803         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
11804         (CONST_VECTOR_ELT): New.
11805         (CONST_VECTOR_NUNITS): New.
11806
11807         * machmode.h (GET_MODE_INNER): New.
11808         (DEF_MACHMODE): Accept 8th arg.
11809
11810         * machmode.def: Add 8th argument for vector inner mode.
11811         Add inner vector modes for vectors.
11812
11813         * rtl.def (VEC_CONST): Remove.
11814         (CONST_VECTOR): New.
11815
11816         * expr.c (clear_storage): Allow vectors.
11817         (is_zeros_p): Handle VECTOR_CST.
11818
11819         * varasm.c (output_constant_pool): Handle vectors.
11820         (rtx_const): Add veclo and vechi fields.
11821         (kind): Add RTX_VECTOR.
11822         (decode_rtx_const): Add case for vector.
11823
11824         * config/rs6000/rs6000-protos.h: Add zero_constant.
11825
11826         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
11827         constants.  Force easy vector constants into memory.
11828         (easy_vector_constant): New.
11829         (emit_easy_vector_constant): New.
11830         (rs6000_legitimize_reload_address): Do not generate bad reloads on
11831         darwin.
11832
11833         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
11834         instruction does.
11835         ("altivec_lvxl"): Same.
11836         (altivec_lvebx): Same.
11837         (altivec_lvehx): Same.
11838         (altivec_lvewx): Same.
11839         ("*movv4si_const0"): New.
11840         ("*movv4sf_const0"): New.
11841         ("*movv8hi_const0"): New.
11842         ("*movv16qi_const0"): New.
11843
11844 2002-02-18  Kazu Hirata  <kazu@hxi.com>
11845
11846         * config/h8300/h8300.c (notice_update_cc): Use
11847         cc_status.value2.
11848
11849 2002-02-18  Kazu Hirata  <kazu@hxi.com>
11850
11851         * config/h8300/h8300.md (divmod patterns): Change the
11852         constraints for operands[1] to register_operand.
11853
11854 2002-02-18  Kazu Hirata  <kazu@hxi.com>
11855
11856         * config/h8300/h8300-protos.h: Remove the prototype for
11857         p_operand.
11858         * config/h8300/h8300.c (p_operand): Remove.
11859         * config/h8300/h8300.md: Replace p_operand with
11860         const_int_operand.
11861
11862 2002-02-18 Philip Blundell <pb@nexus.co.uk>
11863
11864         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
11865         comment.
11866         (output_return_instruction): Allow use of LDR to unstack
11867         return addresss even for interrupt handlers or when
11868         interworking.  If compiling for ARMv5, use interworking-safe
11869         return instructions by default.  Remove duplicated code and
11870         lengthy "strcat" sequences.
11871
11872 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11873
11874         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
11875         (LINK_EH_SPEC): Define.
11876         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
11877
11878 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11879
11880         * config/s390/s390.c (s390_emit_prologue): Do not set the
11881         frame_related flag for call-clobbered registers.
11882
11883 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
11884
11885         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
11886         (construct_container): Fix handling of SSE operands.
11887         (ix86_expand_builtin): Fix handling of 64bit pointers.
11888         (mmx_maskmovq_rex): New pattern.
11889
11890 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
11891
11892         * regrename.c (kill_set_value): Handle subregs properly.
11893
11894 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
11895
11896         * objc/objc-act.c (handle_impent): Remove leading '*'
11897         from objc_class_name.
11898
11899 2002-02-17  Richard Henderson  <rth@redhat.com>
11900
11901         * config/alpha/alpha.c (some_small_symbolic_operand,
11902         some_small_symbolic_operand_1, split_small_symbolic_operand,
11903         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
11904         Handle small SYMBOL_REFs anywhere, not just inside memories.
11905         * config/alpha/alpha-protos.h: Update.
11906         * config/alpha/alpha.h (PREDICATE_CODES): Update.
11907         * config/alpha/alpha.md (small symbolic operand splitter): Update.
11908
11909 2002-02-17  Roland McGrath  <roland@frob.com>
11910
11911         * config.gcc (powerpc-*-gnu-gnualtivec*,
11912         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
11913         * config/rs6000/gnu.h: New file.
11914         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
11915         Grok "gnu" in rs6000_abi_name.
11916         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
11917         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
11918         Grok -mcall-gnu analogous to -mcall-linux et al.
11919         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
11920         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
11921         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
11922
11923 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
11924
11925         PR c/3444:
11926         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
11927         shortening.
11928
11929 2002-02-17  Philipp Thomas  <pthomas@suse.de>
11930
11931         * config/cris/cris.h: Undefine STARTFILE_SPEC and
11932         ENDFILE_SPEC before (re)defining them.
11933
11934 2002-02-17  Kazu Hirata  <kazu@hxi.com>
11935
11936         * config/h8300/h8300.c: Fix formatting.
11937         * config/h8300/h8300.h: Likewise.
11938
11939 2002-02-17  Philipp Thomas  <pthomas@suse.de>
11940
11941         * doc/tm.texi: Explain why empty strings should not be
11942         marked for translation.
11943
11944 2002-02-17  Philipp Thomas  <pthomas@suse.de>
11945
11946         * final.c (output_operand_lossage): Changed to accept
11947         printf style arguments. Change calls where necessary.
11948         * output.h (output_operand_lossage): Change declaration
11949         accordingly. Update copyright.
11950         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
11951         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
11952         Update copyright date where necessary.
11953
11954         * config/i386/i386.c (print_operand): Likewise. Remove use of
11955         sprintf.
11956
11957         * config/cris/cris.c (cris_operand_lossage): Likewise.
11958         Rename parameter so that exgettext recognizes it as
11959         translatable message.
11960         (LOSE_AND_RETURN): Rename parameter to msgid.
11961
11962 2002-02-17  Kazu Hirata  <kazu@hxi.com>
11963
11964         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
11965         hard coded register number with an appropriate macro.
11966         (HARD_REGNO_MODE_OK): Likewise.
11967         (ARG_POINTER_REGNUM): Likewise.
11968         (STATIC_CHAIN_REGNUM): Likewise.
11969         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
11970         * config/h8300/h8300.md (define_constants): Define more
11971         register numbers.
11972
11973 2002-02-17  Philipp Thomas  <pthomas@suse.de>
11974
11975         * config/i386/i386.h: Don't mark empty strings for translation.
11976
11977 2002-02-16  H.J. Lu <hjl@gnu.org>
11978
11979         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
11980
11981 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
11982
11983         * cppinit.c (merge_include_chains): Check for brack being
11984         NULL before attempting to merge it with qtail.
11985
11986 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
11987
11988         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
11989         DBX_DEBUG.
11990
11991 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11992
11993         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
11994
11995 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
11996
11997         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
11998         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
11999         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
12000
12001 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12002
12003         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
12004         now only if !TARGET_FIX.
12005         (*movsi_nt_vms_fix): New pattern.
12006
12007 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
12008
12009         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
12010         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
12011         (alpha_sa_mask, alpha_sa_size): Reflect above change.
12012         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
12013         (alpha_start_function, alpha_expand_epilogue): Likewise.
12014         (unicosmk_gen_dsib): Likewise.
12015
12016 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12017
12018         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
12019
12020 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
12021
12022         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
12023         check_and_change_labels, s390_final_chunkify): Delete.
12024         (s390_split_branches, s390_chunkify_pool): New functions.
12025         (s390_function_prologue): Call them.
12026
12027         * config/s390/s390.h (S390_REL_MAX): Delete.
12028         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
12029
12030         * config/s390/s390.md (cjump, icjump, jump): Fix length
12031         attribute calculation.
12032
12033
12034 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
12035
12036         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
12037         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
12038
12039 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12040
12041         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
12042         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
12043         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
12044
12045 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
12046
12047         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
12048
12049 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
12050
12051         * reload.c (find_dummy_reload): Check that an output register
12052         is valid for its mode.
12053
12054 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
12055
12056         * combine.c (known_cond): After replacing the REG of a SUBREG, try
12057         to simplify it.
12058
12059         * function.c (assign_parms): Demote promoted argument passed by
12060         transparent reference.
12061
12062 2001-02-14      Joel Sherrill <joel@OARcorp.com>
12063
12064         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
12065         -Acpu() and -Amachine() to eliminate warnings.
12066
12067 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
12068
12069         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
12070
12071 2002-02-14  Kazu Hirata  <kazu@hxi.com>
12072
12073         * config/h8300/h8300-protos.h: Update the prototype for
12074         const_costs.
12075         * config/h8300/h8300.c (const_costs): Treat SET as a little
12076         more expensive operation.
12077         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
12078         reference to const_costs.
12079
12080 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
12081
12082         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
12083
12084 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
12085
12086         PR c/5503:
12087         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
12088         use arguments from newtype.
12089
12090 2002-02-13  Eric Christopher  <echristo@redhat.com>
12091
12092         * config/mips/mips.c (override_options): Add check for march/mipsX
12093         on the same command line. Fix error message in cpu processing.
12094         Remove architecture and ISA checks.
12095
12096 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
12097
12098         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
12099
12100         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
12101
12102 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
12103
12104         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
12105         alternatives.
12106         ("*movv8hi_internal1"): Same.
12107         ("*movv16qi_internal1"): Same.
12108         ("*movv4sf_internal1"): Same.
12109
12110         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
12111         not push_reload for altivec modes.
12112
12113 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
12114
12115         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
12116         all RTEMS targets including removal of #includes from config/*/rtems*.h
12117         file and adding them to tm_file setting. Added xm_defines=POSIX to
12118         many targets.
12119         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
12120         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
12121         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
12122         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
12123         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
12124         config/m68k/rtemself.h: Ditto.
12125         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
12126         config/mips/rtems64.h: Ditto.
12127         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
12128         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
12129         Ditto.
12130         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
12131         config/sparc/rtemself.h: Ditto.
12132         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
12133         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
12134         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
12135         more like arm-elf.
12136         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
12137         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
12138         target made more similar to i386-elf.
12139         * config/i386/t-rtems-i386: Added soft float support and multilibs.
12140         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
12141         be similar to config/m68k/t-m68kelf.
12142         * gthr-rtems.h: Encapsulate with extern "C" for C++.
12143
12144 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
12145
12146         * regmove.c (kill_value): Handle subregs.
12147
12148 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
12149
12150         * i386.md (mul patterns): Allow memory operand to be first;
12151         add expanders where needed; fix constraints.
12152         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
12153         Allow memory operand to be the first.
12154
12155         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
12156         operands.
12157
12158 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
12159
12160         PR c/5681:
12161         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
12162         GET_MODE (x).
12163
12164 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
12165
12166         PR optimization/5547:
12167         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
12168         all valid IA-32 address modes involving non-scaled %ebx and
12169         GOT/GOTOFF as displacement.
12170
12171 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
12172
12173         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
12174         after emitting ltorg insns.
12175
12176         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
12177         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
12178         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
12179         *abssf2): Fix "op_type" attribute.
12180
12181 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
12182
12183         * mkconfig.sh: Avoid using a subshell redirect.
12184         ($output.T): Change to $(output)T.
12185         (ENABLE_NLS): Remove unneeded undef.
12186
12187         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
12188         * config/alpha/x-vms (libsubdir): Define.
12189
12190         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
12191         register frame procedures. Optimize retrieving context.
12192
12193         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
12194         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
12195         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
12196
12197 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12198
12199         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
12200         Make same change as for find_base_value.
12201
12202 2002-02-13  Kazu Hirata  <kazu@hxi.com>
12203
12204         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
12205         of QImode and SImode.
12206
12207 2002-02-13  Kazu Hirata  <kazu@hxi.com>
12208
12209         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
12210         length computation of movsi.
12211         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
12212
12213 2002-02-13  Kazu Hirata  <kazu@hxi.com>
12214
12215         * config/h8300/h8300.md (subqi3): Tighten the predicate for
12216         operands[2] to register_operand.
12217
12218 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
12219
12220         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
12221
12222 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
12223
12224         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
12225         for altivec_lvx* and altivec_stvx*.
12226         ("*movv4si_internal"): Add constraint for loading from GPRs.
12227         ("*movv8hi_internal1"): Same.
12228         ("*movv16qi_internal1"): Same.
12229         ("*movv4sf_internal1"): Same.
12230
12231         * config/rs6000/rs6000.c (altivec_register_operand): New.
12232
12233         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
12234         altivec_register_operand.
12235
12236 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
12237
12238         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
12239         handle SYMBOL_REF.
12240
12241 2002-02-13  Stan Shebs  <shebs@apple.com>
12242
12243         * c-typeck.c (digest_init): Handle vectors.
12244         (really_start_incremental_init): Same.
12245         (pop_init_level): Same.
12246         (process_init_element): Same.
12247
12248         * varasm.c (output_constant): Same.
12249
12250         * expr.c (clear_storage): Same.
12251         (store_constructor): Same.
12252
12253 2002-02-12  Eric Christopher  <echristo@redhat.com>
12254
12255         * explow.c (hard_function_value): Add comment explaining
12256         signed/unsigned comparison.
12257
12258 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
12259
12260         * jump.c (never_reached_warning): Add finish argument.
12261         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
12262         real insn after end.
12263         * rtl.h (never_reached_warning): Adjust prototype.
12264         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
12265         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
12266         never_reached_warning.
12267
12268 2002-02-12  Graham Stott  <grahams@redhat.com>
12269
12270         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
12271
12272 2002-02-12  Kazu Hirata  <kazu@hxi.com>
12273
12274         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
12275         logical shifts on H8/300.
12276         (shift_alg_si): Improve several shifts on H8/300.
12277         (get_shift_alg): Likewise.
12278
12279 2002-02-12  Graham Stott  <grahams@redhat.com>
12280
12281         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
12282
12283 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12284
12285         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
12286         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
12287
12288 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
12289
12290         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
12291         non-CONST_INT through default_assemble_integer.
12292         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
12293         <case 8>: Abort for CONST_DOUBLE.
12294
12295 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12296
12297         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
12298         is specified.
12299         * config/pa/pa-linux.h (LIB_SPEC): Delete.
12300         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
12301
12302 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
12303
12304         * config/stormy16/stormy16.md (zero_extendqihi2): New.
12305
12306 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
12307
12308         * regrename.c (regrename_optimize): Don't accept a
12309         part-clobbered register if the replaced register is not part
12310         clobbered.
12311
12312         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
12313         take padding into account when computing the argument value.
12314
12315         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
12316
12317         * combine.c (try_combine): Apply substitutions in
12318         CALL_INSN_FUNCTION_USAGE too.
12319
12320 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
12321
12322         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
12323         __builtin_altivec_abs*.
12324         (bdesc_abs): New.
12325
12326         * config/rs6000/rs6000.h (rs6000_builtins): Add
12327         ALTIVEC_BUILTIN_ABS*.
12328
12329         * config/rs6000/altivec.h: Use const char for builtins expecting
12330         literals.
12331         (vec_abs): New versions for C and C++.
12332         (vec_abss): Same.
12333
12334 2002-02-10  Kazu Hirata  <kazu@hxi.com>
12335
12336         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
12337         using Pmode.
12338
12339 2002-02-10  Kazu Hirata  <kazu@hxi.com>
12340
12341         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
12342         constant definition from h8300.md.
12343         (FRAME_POINTER_REGNUM): Likewise.
12344         * config/h8300/h8300.md (define_constants): Add FP_REG.
12345
12346 2002-02-10  Kazu Hirata  <kazu@hxi.com>
12347
12348         * config/h8300/h8300.c (print_operand): Remove redundant code.
12349
12350 2002-02-10  Kazu Hirata  <kazu@hxi.com>
12351
12352         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
12353         * config/h8300/h8300.c (byte_reg): Make it static.
12354
12355 2002-02-10  Richard Henderson  <rth@redhat.com>
12356
12357         PR c/5623
12358         * c-typeck.c (incomplete_type_error): Handle flexible array members.
12359
12360 2002-02-10  Richard Henderson  <rth@redhat.com>
12361
12362         PR c++/5624
12363         * tree.c (append_random_chars): Don't abort if main_input_filename
12364         does not exist.
12365
12366 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
12367
12368         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
12369
12370 2002-02-10  Kazu Hirata  <kazu@hxi.com>
12371
12372         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
12373         (pushhi1): Likewise.
12374
12375 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12376
12377         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
12378         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
12379
12380 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
12381
12382         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
12383         remove MASK_VIS.
12384         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
12385
12386 2002-02-09  Kazu Hirata  <kazu@hxi.com>
12387
12388         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
12389         a half of an SImode register on H8/300.
12390
12391 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
12392
12393         * i386.md (movdi_2): Add missing '!'.
12394
12395 2002-02-09  Kazu Hirata  <kazu@hxi.com>
12396
12397         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
12398         definitions.
12399
12400 2002-02-09  Kazu Hirata  <kazu@hxi.com>
12401
12402         * config/h8300/h8300.md (length): Correct the distance valid
12403         for the short branch.
12404
12405 2002-02-09  Kazu Hirata  <kazu@hxi.com>
12406
12407         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
12408
12409 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
12410
12411         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
12412         registers in SImode.
12413         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
12414         part-clobbered.
12415
12416         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
12417         patch.
12418
12419         Contribute sh64-elf.
12420         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
12421         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
12422         (sh_cannot_modify_jumps_p): New function.
12423         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
12424         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
12425         (sh_ms_bitfield_layout_p): New function.
12426         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
12427                     Zack Weinberg  <zack@codesourcery.com>
12428         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
12429         expand_simple_binop instead of expand_binop.
12430         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
12431         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
12432         use of .quad and .uaquad.
12433         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
12434         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
12435         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
12436         * config/sh/sh.md (movdi_const, movdi_const_32bit,
12437         movdi_const_16bit): Make sure all CONSTs have modes.
12438         (sym2PIC): Ditto, but by adjusting all callers.
12439         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
12440         if the prologue calls the SHmedia argument decoder or register
12441         saver.
12442         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
12443         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
12444         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
12445         (sh_expand_epilogue): Don't emit USE of return target register.
12446         (prepare_move_operands): Legitimize DImode PIC addresses.
12447         (sh_media_register_for_return): Skip tr0, used to initialize the
12448         PIC register.
12449         (sh_expand_prologue): Remove explicit USE of return register.
12450         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
12451         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
12452         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
12453         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
12454         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
12455         EXTRA_CONSTRAINT_T.
12456         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
12457         (MOVI_SHORI_BASE_OPERAND_P): New.
12458         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
12459         (EXTRA_CONSTRAINT_T): Define in terms of them.
12460         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
12461         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
12462         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
12463         alternatives supporting TARGET_REGS.
12464         (UNSPEC_GOTPLT): New constant.
12465         (movdi split): Move incrementing of LABEL_NUSES...
12466         (movdi_const, movdi_const_32bit): Here.  Use
12467         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
12468         (movdi_const_16bit): New.
12469         (call, call_value) [flag_pic]: Use GOTPLT.
12470         (call_pop, call_value_pop): New expands.
12471         (call_pop_compact, call_pop_rettramp): New insns.
12472         (call_value_pop_compact, call_value_pop_rettramp): New insns.
12473         (sibcall) [flag_pic]: Use GOT.
12474         (builtint_setjmp_receiver): Remove bogus, unused expand.
12475         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
12476         (*pt, *ptb, ptrel): New insns.
12477         (sym2GOT): Handle DImode GOT.
12478         (sym2GOTPLT, symGOTPLT2reg): New expands.
12479         (sym2PIC): New expand.
12480         (shcompact_return_tramp): Use GOTPLT to return trampoline.
12481         (shcompact_return_tramp_i): Use return register explicitly.
12482         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
12483         disable flag_reorder_blocks.
12484         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
12485         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
12486         clobbers, for clarity.
12487         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
12488         restoring of r0 in macl as MAYBE_DEAD.
12489         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
12490         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
12491         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
12492         alter_subreg all over.
12493         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
12494         reload, instead of emitting instructions that would require
12495         reloading.
12496         (casesi_load_media): Add missing modes.
12497         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
12498         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
12499         as used if the argument decoder is called.
12500         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
12501         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
12502         Pmode, then extend it to DImode if necessary.
12503         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
12504         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
12505         constants in FPU-enabled SHmedia, let them be loaded from memory.
12506         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
12507         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
12508         Adjust whitespace in assembly output templates.
12509         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
12510         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
12511         mode of if_then_else.
12512         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
12513         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
12514         sh.h.
12515         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
12516                     Joern Rennecke <amylaar@redhat.com>
12517         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
12518         (SUBTARGET_CPP_PTR_SPEC): New.
12519         (SUBTARGET_CPP_SPEC): Remove.
12520         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
12521         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
12522         Fix typo in previous checkin.
12523         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
12524         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
12525         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
12526                     Alexandre Oliva  <aoliva@redhat.com>
12527         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
12528         what single FP register can hold for SHmedia target.
12529         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
12530                     Alexandre Oliva  <aoliva@redhat.com>
12531         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
12532         Do not split into SUBREG.
12533         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
12534         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
12535         and added new functions as specified in SH5 ABI r9.
12536         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
12537         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
12538         8-byte boundary.
12539         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
12540         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
12541         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
12542         and consttable_window_ends.
12543         2001-06-03  Graham Stott  <grahams@redhat,com>
12544         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
12545         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
12546         * config/sh/sh.c (print_operand): Handle floating-point pair,
12547         vector and matrix registers.
12548         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
12549         vector modes into account.
12550         * config/sh/sh.md (movv2sf): Split move between registers into
12551         movdf.
12552         (movv4sf, movv16sf): Introduce insns that get split only after
12553         reload.
12554         * config/sh/shmedia.h: Fix Copyright dates.
12555         * config/sh/ushmedia.h: Likewise.  Move loop counter
12556         declarations into conditionals that uses them.
12557         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
12558         loop boundary.
12559         * config/sh/sshmedia.h: Fix Copyright dates.
12560         (sh_media_PUTCFG): Fix constraints.
12561         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
12562         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
12563         ptrmemfunc_vbit_in_delta for SH5.
12564         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
12565         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
12566         * invoke.texi: Likewise.
12567         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
12568         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
12569         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
12570         GCC_pop_shmedia_regs_nofpu): New global symbols.
12571         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
12572         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
12573         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
12574         compact function with nonlocal labels.
12575         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
12576         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
12577         (initial_elimination_offset): Account for their stack space.
12578         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
12579         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
12580         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
12581         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
12582         least one of the operands to be a register.
12583         (movv2sf): Likewise.  Renamed to movv2sf_i.
12584         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
12585         prepare_move_operands() before emitting SHmedia insns.
12586         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
12587         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
12588         Don't save nor initialize r12.  Don't mis-align the stack.
12589         Pad the code with a nop.
12590         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
12591         stack.
12592         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
12593         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
12594         [__SHMEDIA__]: Implement.
12595         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
12596         * config/sh/sh.md: Set latency of `pt' closer to reality.
12597         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
12598         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
12599         Set move, load and store type attributes.
12600         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
12601         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
12602         profiling.
12603         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
12604         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
12605         * config/sh/sh.c (sh_media_register_for_return): New function.
12606         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
12607         branch-target register.
12608         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
12609         * config/sh/sh.md (return_media_i): Use any call-clobbered
12610         branch-target register.
12611         (return_media): If r18 wasn't copied in the prologue, copy it
12612         here.
12613         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
12614         Clear class FP0_REGS.
12615         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
12616         from elf.h.
12617         2001-03-08  DJ Delorie  <dj@redhat.com>
12618         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
12619         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
12620         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
12621         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
12622         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
12623         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
12624         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
12625         return value correctly for call_cookie.
12626         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
12627         * config/sh/crt1.asm (start): Modified so as to call
12628         ___setup_argv_and_call_main.
12629         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
12630         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
12631         SHmedia mode.
12632         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
12633         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
12634         (STRIP_NAME_ENCODING): Use it.
12635         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
12636         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
12637         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
12638         prepare_scc_operands().
12639         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
12640         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
12641         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
12642         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
12643         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
12644         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
12645         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
12646         used in shcompact_incoming_args.
12647         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
12648         change.
12649         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
12650         mode.
12651         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
12652         Adjust accordingly.
12653         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
12654         Simplify.  Adjust.  Add sanity check.
12655         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
12656         FPU_SINGLE_BIT.
12657         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
12658         TARGET_SHCOMPACT.
12659         (udivsi3, divsi3): Use them.
12660         (force_mode_for_call): New insn.
12661         (call, call_value, sibcall_value): Emit it before SHcompact
12662         calls.
12663         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
12664         * config/sh/sh.md (call, call_value, sibcall): Make sure the
12665         call cookie is non-NULL before taking its value.
12666         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
12667         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
12668         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
12669         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
12670         block.
12671         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
12672         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
12673         temporary for stack adjusts.  Use MACL and MACH to pass
12674         arguments to shcompact_incoming_args.
12675         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
12676         clobber r1.
12677         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
12678         (nested_trampoline): Load static chain address into r1.
12679         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
12680         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
12681         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
12682         fp_arith_reg_operand().
12683         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
12684         * config/sh/sh.md (casesi): Sign-extend the first two operands,
12685         and use signed compares for them.
12686         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
12687         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
12688         ones properly aligned.
12689         (find_barrier): Account for extra alignment needed for 8-byte wide
12690         constants.
12691         (machine_dependent_reorg): Require a label for the second 4-byte
12692         constant after an 8-byte one.
12693         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
12694         change.
12695         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
12696         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
12697         last_float when switching float modes.
12698         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
12699         auto-increment for general-purpose registers.
12700         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
12701         result.
12702         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
12703         for stack adjust.
12704         * config/sh/sh.c (sh_builtin_saveregs): Support using all
12705         registers for varargs.
12706         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
12707         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
12708         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
12709         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
12710         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
12711         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
12712         call_cookie accordingly.
12713         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
12714         (SHCOMPACT_BYREF): Likewise.
12715         (SHCOMPACT_FORCE_ON_STACK): New macro.
12716         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
12717         (sh_builtin_saveregs): Likewise.
12718         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
12719         shcompact_incoming_args): Use new shift values.  Support
12720         sequences of consecutive and non-consecutive pushes/pops.
12721         * config/sh/sh.md (return): Don't explicitly use PR_REG.
12722         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
12723         * config/sh/sh.h (TEXT_SECTION): Define.
12724         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
12725         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
12726         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
12727         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
12728         return values on FPU-enabled SHmedia.
12729         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
12730         FPU-enabled SHmedia.
12731         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
12732         value is returned in a non-FP reg and is not returned by
12733         reference.
12734         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
12735         jump_ind.
12736         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
12737         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
12738         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
12739         quad-aligned to be passed by callee-copy reference.
12740         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
12741         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
12742         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
12743         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
12744         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
12745         copying low-numbered FP regs to r7 and r8.
12746         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
12747         FP regs to general-purpose regs only if the copy was passed on the
12748         stack.
12749         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
12750         copying FP reg to r9.
12751         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
12752         copy FP regs to general-purpose regs only in outgoing calls.
12753         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
12754         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
12755         HOST_WIDE_INT.
12756         * config/sh/sh.h (struct sh_args): Document all fields.
12757         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
12758         passed partially on the stack should not consider making
12759         sibcalls.
12760         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
12761         stack_regs only for incoming calls.  When passing FP args,
12762         make sure there are FP regs available before modifying
12763         call_cookie.
12764         (SHCOMPACT_BYREF): Pass double args in general-purpose
12765         registers by reference.
12766         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
12767         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
12768         attempt to generate sibcalls if the caller got any arguments
12769         by reference.
12770         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
12771         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
12772         to 8-byte boundaries.
12773         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
12774         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
12775         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
12776         stored in the stack.
12777         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
12778         for the offsets to have the ISA bit set.
12779         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
12780         invocation.  Use beq instead of bgt to mark end of sequence of
12781         loads.
12782         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
12783         bgt to mark end of sequence of stores.
12784         * config/sh/sh.c (arith_operand): Don't check whether
12785         CONST_OK_FOR_J for now.
12786         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
12787         instead of long for conversion.
12788         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
12789         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
12790         before passing it to fprintf.
12791         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
12792         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
12793         Call set_fpscr before reading/writing SR.
12794         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
12795         Call set_fpscr.
12796         * config/sh/lib1funcs.asm: Add `.align 2' directives before
12797         SHmedia code.
12798         (FMOVD_WORKS): Define on SH5 with FPU.
12799         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
12800         setting.
12801         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
12802         _fpscr_values.
12803         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
12804         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
12805         address.
12806         (ia_main_table): Ditto.
12807         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
12808         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
12809         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
12810         the definitions from sh.h.
12811         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
12812         TARGET_SH5.
12813         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
12814         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
12815         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
12816         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
12817         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
12818         Increment LABEL_NUSES.
12819
12820         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
12821         TARGET_SH5.
12822         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
12823         defined.
12824         * config/sh/elf.h (SIZE_TYPE): Likewise.
12825         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
12826         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
12827         shcompact_incoming_args): Load switch table addresses using
12828         datalabel.
12829         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
12830         (NO_BUILTIN_SIZE_TYPE): Define.
12831         (SIZE_TYPE): Don't define.
12832         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
12833         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
12834         definition of __SH5__=32 for -m5-compact-nofpu.
12835         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
12836         ADDR_DIFF_VEC.
12837         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
12838         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
12839         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
12840         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
12841         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
12842         (INSN_LENGTH_ALIGNMENT): Likewise.
12843         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
12844         * config/sh/sh.md (call, call_value, sibcall): Simplify
12845         copying of non-branch-target register.
12846         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
12847         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
12848         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
12849         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
12850         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
12851         floating-point values as structs.
12852         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
12853         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
12854         general-purpose register.
12855         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
12856         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
12857         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
12858         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
12859         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
12860         (ENCODE_SECTION_INFO): Enclose variables and constants in
12861         DATALABEL unspecs.
12862         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
12863         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
12864         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
12865         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
12866         only for LABEL_REFs.  For SYMBOL_REFs, prepend
12867         SH_DATALABEL_ENCODING to the symbol name.
12868         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
12869         convert_mode().
12870         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
12871         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
12872         UNSPEC_DATALABEL.
12873         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
12874         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
12875         (DATALABEL_REF_P): Don't require CONST.
12876         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
12877         REL label.
12878         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
12879         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
12880         right.
12881         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
12882         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
12883         Use shallow_copy_rtx and PUT_MODE to change the mode of
12884         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
12885         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
12886         on SHmedia using GENERAL_REGs.
12887         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
12888         bltu_media_i): Fix reversion of conditions.
12889         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
12890         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
12891         * config/sh/sh.c (output_far_jump): Save r13 in macl.
12892         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
12893         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
12894         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
12895         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
12896         (GCC_nested_trampoline): Likewise.
12897         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
12898         * config/sh/sh.c (gen_datalabel_ref): Define.
12899         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
12900         (INITIALIZE_TRAMPOLINE): Likewise.
12901         (TRAMPOLINE_ADJUST_ADDRESS): Define.
12902         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
12903         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
12904         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
12905         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
12906         (ic_invalidate): Adjust for SH5.
12907         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
12908         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
12909         _nested_trampoline.
12910         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
12911         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
12912         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
12913         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
12914         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
12915         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
12916         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
12917         * config/sh/sh.c (target_reg_operand): Match only target-branch
12918         registers and pseudos that aren't virtual registers.
12919         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
12920         Copy operands that don't match target_reg_operand to pseudos.
12921         (call_media, call_value_media, sibcall_media): Use
12922         target_reg_operand instead of target_operand.
12923         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
12924         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
12925         * config/sh/sh.c (target_reg_operand): Match hardware registers
12926         other than branch-target registers.
12927         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
12928         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
12929         (fpscr_values) [SH5 == 32]: Define.
12930         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
12931         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
12932         Handle function addresses coming in SUBREGs.
12933         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
12934         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
12935         shcompact_return_trampoline): Use datalabel where appropriate.
12936         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
12937         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
12938         general-purpose register to copy one branch-target register to
12939         another.
12940         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
12941         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
12942         SYMBOL_REFs with VOIDmode.
12943         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
12944         bltu_media_i): New insns.
12945         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
12946         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
12947         (INIT_CUMULATIVE_ARGS): Likewise.
12948         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
12949         * machmode.def (V16SFmode): New mode.
12950         * c-common.c (type_for_mode): Support V2SF and V16SF.
12951         * tree.c (build_common_tree_nodes_2): Likewise.
12952         * tree.h (tree_index): Likewise.
12953         * calls.c (emit_call_1): Take args_so_far.  Adjust all
12954         callers.  Introduce CALL_POPS_ARGS.
12955         * tm.texi (CALL_POPS_ARGS): Document.
12956         * config/sh/crt1.asm: Implement in SHmedia mode.
12957         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
12958         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
12959         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
12960         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
12961         Implement divsi and udivsi in SHmedia mode.  Introduce
12962         SHcompact trampolines.
12963         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
12964         only in SHmedia64.
12965         (regno_reg_class): Rewrite.
12966         (fp_reg_names): Remove.
12967         (sh_register_names, sh_additional_register_names): New.
12968         (print_operand): Added `u'.  Support SUBREGs in addresses.
12969         Add parentheses around shifted CONSTs.
12970         (output_file_start): Output .mode and .abi directives.
12971         (shiftcosts, addsubcosts, multcosts): Adjust.
12972         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
12973         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
12974         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
12975         bytes, not registers.  Take into account the need for the
12976         SHcompact incoming args trampoline.  Adjust all callers.
12977         (sh_expand_prologue): Take stack_regs into account.  Call
12978         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
12979         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
12980         stack aligned as per SH5 ABI.
12981         (sh_builtin_saveregs): Support SH5 ABI.
12982         (sh_build_va_list, sh_va_start): Likewise.
12983         (initial_elimination_offset): Take alignment into account.
12984         Compute location of PR according to the SH5 stack frame.
12985         (arith_reg_operand): Reject branch-target registers.
12986         (shmedia_6bit_operand): New.
12987         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
12988         (target_reg_operand): Match DImode only.  Accept SUBREGs.
12989         (target_operand): New.
12990         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
12991         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
12992         SIBCALL_REGS for SHmedia.
12993         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
12994         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
12995         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
12996         (TARGET_SWITCHES): New SH5 flags.
12997         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
12998         VALID_REGISTER_P to disable unsupported registers.
12999         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
13000         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
13001         (FUNCTION_ARG_PADDING): Define.
13002         (FASTEST_ALIGNMENT): Adjust.
13003         (SH_REGISTER_NAMES_INITIALIZER): New.
13004         (sh_register_names): Declare.
13005         (DEBUG_REGISTER_NAMES): Define.
13006         (REGISTER_NAMES): Define based on sh_register_names.
13007         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
13008         (sh_additional_register_names): Declare.
13009         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
13010         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
13011         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
13012         (REGISTER_NATURAL_MODE): Define.
13013         (FIRST_PSEUDO_REGISTER): Adjust.
13014         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
13015         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
13016         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
13017         (VECTOR_MODE_SUPPORTED_P): Define.
13018         (REG_CLASS_CONTENTS): Adjust.
13019         (SMALL_REGISTER_CLASSES): Adjust.
13020         (REG_ALLOC_ORDER): Adjust.
13021         (INDEX_REG_CLASS): Adjust.
13022         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
13023         (CONST_OK_FOR_LETTER_P): Adjust.
13024         (PREFERRED_RELOAD_CLASS): Adjust.
13025         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
13026         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
13027         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
13028         (FIRST_FP_PARM_REG): Adjust.
13029         (CALL_POPS_ARGS): Define.
13030         (FUNCTION_ARG_REGNO_P): Adjust.
13031         (struct sh_args): New fields.
13032         (GET_SH_ARG_CLASS): Adjust.
13033         (INIT_CUMULATIVE_ARGS): Adjust.
13034         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
13035         (FUNCTION_ARG_ADVANCE): Adjust.
13036         (FUNCTION_ARG): Adjust.
13037         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
13038         (FUNCTION_ARG_CALLEE_COPIES): Define.
13039         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
13040         (STRICT_ARGUMENT_NAMING): Define.
13041         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
13042         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
13043         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
13044         (SETUP_INCOMING_VARARGS): Adjust.
13045         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
13046         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
13047         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
13048         (SUBREG_OK_FOR_INDEX_P): Adjust.
13049         (EXTRA_CONSTRAINT_S): Update.
13050         (EXTRA_CONSTRAINT_T): New.
13051         (EXTRA_CONSTRAINT): Adjust.
13052         (GO_IF_LEGITIMATE_INDEX): Adjust.
13053         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
13054         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
13055         (MOVE_MAX): Adjust.
13056         (MAX_MOVE_MAX): Define.
13057         (Pmode): Adjust.
13058         (CONST_COSTS): Adjust.
13059         (REGISTER_MOVE_COST): Adjust.
13060         (BRANCH_COST): Adjust.
13061         (TEXT_SECTION_ASM_OP): Adjust.
13062         (DBX_REGISTER_NUMBER): Adjust.
13063         (ASM_OUTPUT_DOUBLE_INT): New.
13064         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
13065         (PREDICATE_CODES): Adjust.
13066         (PROMOTE_MODE): Adjust.
13067         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
13068         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
13069         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
13070         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
13071         (DR0_REG, DR2_REG, DR4_REG): Renumber.
13072         (TR0_REG, TR1_REG, TR2_REG): New.
13073         (XD0_REG): Renumber.
13074         (UNSPEC_COMPACT_ARGS): New.
13075         (type): Added pt and ptabs.
13076         (length): Default to 4 on SHmedia.  Default pt length to 12
13077         and     20 on SHmedia32 and SHmedia64, respectively.
13078         (pt): New function unit.
13079         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
13080         Add whitespace between operands of SHmedia instructions.
13081         (movdicc): Fix.
13082         (adddi3_media, addsi3_media): Adjust constraints.
13083         (subsi3) [SHmedia]: Force operand 1 into a register.
13084         (udivsi3_i1_media, udivsi3_i4_media): New.
13085         (udivsi3): Support SHmedia.
13086         (divsi3_i1_media, divsi3_i4_media): New.
13087         (divsi3): Support SHmedia.
13088         (anddi3, iordi3, xordi3): Adjust constraints.
13089         (zero_extendhidi2, zero_extendqidi2): New.
13090         (extendsidi2, extendhidi2, extendqidi2): New.
13091         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
13092         (pop_e, pop_fpul, pop_4): Likewise.
13093         (movsi_media): Support FP and BT registers.
13094         (movsi_media_nofpu): New.  Adjust splits to DImode.
13095         (lduw, ldub): Renamed to zero_extend* above.
13096         (movqi_media): Fix typo.
13097         (movdi_media): Support FP and BT registers.
13098         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
13099         (movdi_const_32bit): New.
13100         (shori_media): Require immediate operand.  Use `u' for output.
13101         (movdf_media, movsf_media): Simplified.
13102         (movdf_media_nofpu, movsf_media_nofpu): New.
13103         (movdf, movsf): Adjust
13104         (movv2sf, movv2sf, movv16sf): New.
13105         (beq_media, beq_media_i): Adjust constraints.  Don't use
13106         scratch BT register.
13107         (bne_media, bne_media_i): Likewise.
13108         (bgt_media, bgt_media_i): Likewise.
13109         (bge_media, bge_media_i): Likewise.
13110         (bgtu_media, bgtu_media_i): Likewise.
13111         (bgeu_media, bgeu_media_i): Likewise.
13112         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
13113         bunordered): Emit jump insn.  Force operands to registers when
13114         needed.
13115         (jump_media, jump): Simplify.
13116         (call_compact, call_compact_rettramp): New.
13117         (call_value_compact, call_value_compact_rettramp): New.
13118         (call_media, call_value_media): Simplify.
13119         (sibcall_compact, sibcall_media): New.
13120         (call, call_value): Adjust for SHmedia and SHcompact.
13121         (sibcall, sibcall_value, untyped_call): Likewise.
13122         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
13123         (indirect_jump): Adjust for SHmedia.
13124         (casesi_jump_media): New.
13125         (nop): Re-enable for SHmedia.
13126         (call_site): Restrict to SH1.
13127         (casesi): Adjust for SHmedia.
13128         (casesi_shift_media, casesi_load_media): New.
13129         (return): Explicitly use PR register.  Call return trampoline
13130         on SHcompact.
13131         (return_i): Explicitly use PR register.
13132         (shcompact_return_tramp, shcompact_return_tramp_i): New.
13133         (return_media): Adjust.
13134         (shcompact_incoming_args): New.
13135         (epilogue): Adjust.
13136         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
13137         (movstrsi): Disable on SH5.
13138         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
13139         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
13140         (subsf3, subsf3_media): Likewise.
13141         (mulsf3, mulsf3_media, mac_media): Likewise.
13142         (divsf3, divsf3_media): Likewise.
13143         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
13144         (floatsisf2, fux_truncsfsi2): Likewise.
13145         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
13146         constraints.
13147         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
13148         (cmpunsf_media, cmpsf): Likewise.
13149         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
13150         (abssf2, abssf2_media): Likewise.
13151         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
13152         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
13153         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
13154         (floatsidf2, fix_truncdfsi2): Likewise.
13155         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
13156         constraints.
13157         (cmpeqdf_media, cmpgtdf_media): Likewise.
13158         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
13159         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
13160         (absdf2, absdf2_media): Likewise.
13161         (extendsfdf2, extendsfdf2_media): Likewise.
13162         (truncsfdf2, truncsfdf2_media): Likewise.
13163         * config/sh/sh64.h: New file.
13164         * config/sh/t-sh64: New file.
13165         * config/sh/shmedia.h: New file.
13166         * config/sh/ushmedia.h: New file.
13167         * config/sh/sshmedia.h: New file.
13168         * configure.in: Added sh64-*-elf.
13169         * configure: Rebuilt.
13170         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
13171         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
13172         (reg_class_from_letter): Use `b' for TARGET_REGS.
13173         (print_operand): Support `%M', `%m', `AND' and
13174         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
13175         (andcosts): Adjust for SHmedia.
13176         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
13177         Likewise.
13178         (target_reg_operand): New function.
13179         * config/sh/sh-protos.h (target_reg_operand): Declare.
13180         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
13181         FP registers on SH5.
13182         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
13183         on SH4.
13184         (TARGET_REGISTER_P): New macro.
13185         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
13186         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
13187         (EXTRA_CONSTRAINT_S): New macro.
13188         (EXTRA_CONSTRAINT): Adjust.
13189         (FLOAT_TYPE_SIZE): Define to 32.
13190         (Pmode): DImode on SHmedia.
13191         (CONST_COSTS): Adjust for SHmedia literals.
13192         (PREDICATE_CODES): Added target_reg_operand.
13193         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
13194         * config/sh/sh.md: Remove all attrs from SHmedia insns.
13195         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
13196         (cmpdi): Accept SHmedia.
13197         (movdicc_false, movdicc_true): New insns.
13198         (movdicc): New expand.
13199         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
13200         no_new_pseudos.
13201         (addsi3_media): Match `S' constraint.
13202         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
13203         (negdi2): Expand for SHmedia.
13204         (one_cmpldi2): New expand.
13205         (zero_extendsidi2): Change from expand to insn.
13206         (extendsidi2): Add constraints.
13207         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
13208         LD/ST address.  Fix SI immediate loading split.
13209         (movhi_media, movqi_media, lduw, ldub): New insns.
13210         (movhi, movqi): Accept SHmedia.
13211         (shori_media, movdi_media): Relax input constraints.  Split
13212         symbolic constants.
13213         (movdf_media, movsf_media): New insn.  New split to movdi.
13214         (movdf, movsf): Match on SHmedia.
13215         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
13216         bgeu_media): New insns and splits.  New insns with `_i' suffix.
13217         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
13218         (bunordered): New expand.
13219         (jump_compact): Renamed from `jump'.
13220         (jump_media): New insn.
13221         (jump): New expand.
13222         (call_media, call_value_media): New insns.
13223         (call, call_value): Adjust.
13224         (indirect_jump_compact): Renamed from `indirect_jump'.
13225         (indirect_jump_media): New insn.
13226         (indirect_jump): New expand.
13227         (untyped_call, return): Accept SHmedia.
13228         (return_media): New insn.
13229         (prologue, epilogue, blockage): Accept SHmedia.
13230         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
13231         (sunordered): New expand.
13232         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
13233         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
13234         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
13235         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
13236         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
13237         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
13238         abssf2_media): New insns.
13239         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
13240         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
13241         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
13242         floatdidf2, floatsidf2_media, fix_truncdfdi2,
13243         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
13244         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
13245         absdf2_media): New insns.
13246         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
13247         (extendsfdf2_media, truncdfsf2_media): New insns.
13248         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
13249         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
13250         * config/sh/sh.h (CONST_OK_FOR_J): Document.
13251         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
13252         * config/sh/sh.md (adddi3): New expand.
13253         (adddi3_media, adddi3z_media): New insns.
13254         (adddi3_compact): Renamed from adddi3.
13255         (addsi3_media): Use add.l r63 to add constant zero.
13256         (subdi3): New expand.
13257         (subdi3_media): New insn.
13258         (subdi3_compact): Renamed from subdi3.
13259         (mulsidi3): New expand.
13260         (mulsidi3_media): New insn.
13261         (mulsidi3_compact): Renamed from mulsidi3.
13262         (umulsidi3): New expand.
13263         (umulsidi3_media): New insn.
13264         (umulsidi3_compact): Renamed from umulsidi3.
13265         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
13266         (ashlsi3, ashrsi3, lshrsi3): Use them.
13267         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
13268         (ashldi3, ashrdi3, lshrdi3): Use them.
13269         (zero_extendsidi2): New expand.
13270         (extendsidi2): New insn.
13271         (movsi_media): New insn.  Split to movdi to load constants.
13272         (movsi): Enable for shmedia.
13273         (movdi_media): New insn.  Use shori_media to load wide constants.
13274         (short_media): New insn.
13275         (movdi): Enable for shmedia.
13276         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
13277         * config/sh/sh.h (CPP_SPEC): Added `m5'.
13278         (SUBTARGET_CPP_SPEC): Added `!m5'.
13279         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
13280         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
13281         to all other SH variants.
13282         (TARGET_DEFAULT): Set to SH1_BIT.
13283         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
13284         (BITS_PER_WORD): Raise to 64 on shmedia.
13285         (MAX_BITS_PER_WORD): Change to 64.
13286         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
13287         (INT_TYPE_SIZE): Keep as 32.
13288         (UNITS_PER_WORD): Raise to 8 on shmedia.
13289         (MIN_UNITS_PER_WORD): Keep as 4.
13290         (POINTER_SIZE): Raise to 64 on shmedia.
13291         (CONST_OK_FOR_J): New macro.
13292         (CONST_OK_FOR_LETTER_P): Use it.
13293         (processor_type): Add PROCESSOR_SH5.
13294         * config/sh/sh.md: Conditionalize all expands, insns and
13295         splits to TARGET_SH1.
13296         (cpu): Added sh5.
13297         (addsi3_compact): Renamed from...
13298         (addsi3): Now an expand.
13299         (addsi3_media, subsi3_media): New insns.
13300         (subsi3): Don't negate constants with SHmedia.
13301
13302         * hooks.c: New file.
13303         * hooks.h: New file.
13304         * Makefile.in (HOOKS_H): New.
13305         (TARGET_DEF_H): Added $(HOOKS_H).
13306         (OBJS): Added hooks.o.
13307         (cfgcleanup.o, bb-reorder.o): Added target.h.
13308         (hooks.o): Added dependencies.
13309         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
13310         (TARGET_INITIALIZER): this.
13311         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
13312         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
13313         * bb-reorder.c: Include target.h.
13314         (reorder_basic_blocks): Skip if cannot modify jumps.
13315         * cfgcleanup.c: Include target.h.
13316         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
13317
13318 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
13319
13320         * config/mips/mips.md (casesi_internal, casesi_internal_di):
13321         Protect jump delay slot instructions with .set noreorder and
13322         .set nomacro.
13323
13324 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
13325
13326         * config/mips/mips.md (casesi_internal_di): Calculate
13327         the index into the target offset table correctly.
13328
13329 2002-02-08  Richard Henderson  <rth@redhat.com>
13330
13331         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
13332         * final.c (output_addr_const): Accept and discard SUBREG.
13333         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
13334         mark them unknown instead.
13335         (simplify_subtraction): Handle RTX_UNKNOWN.
13336         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
13337
13338 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
13339
13340         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
13341
13342 2002-02-08  Richard Henderson  <rth@redhat.com>
13343
13344         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
13345
13346 2002-02-08  Andreas Jaeger  <aj@suse.de>
13347
13348         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
13349         * config/i386/t-linux64: New file.
13350
13351 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
13352
13353         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
13354         * c-parse.in (compstmt): Clear last_expr_type.
13355
13356 2002-02-07  Richard Henderson  <rth@redhat.com>
13357
13358         * loop.c (strength_reduce): Sink final_value when not
13359         eliminating a biv.
13360
13361 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
13362
13363         * config/sparc/freebsd.h: Fix mismatched spec {.
13364
13365 2002-02-07  Richard Henderson  <rth@redhat.com>
13366
13367         * cfgrtl.c: Include recog.h and insn-config.h.
13368         (keep_with_call_p): Fix general_operand invocation.
13369         * Makefile.in (cfgrtl.o): Update dependencies.
13370
13371 2002-02-07  Kazu Hirata  <kazu@hxi.com>
13372
13373         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
13374         comment.  Accept HImode only if TARGET_H8300.
13375
13376 2002-02-07  Eric Christopher  <echristo@redhat.com>
13377
13378         * config/mips/crtn.asm: Cleanup #ifdefs.
13379
13380 2002-02-07  Eric Christopher  <echristo@redhat.com>
13381
13382         * config/mips/crti.asm: Add changes for mips16. mips16 uses
13383         register 7 as RA instead of $31.
13384         * config/mips/crtn.asm: Ditto.
13385         * config/mips/mips.c (mips_move_2words): Add case for
13386         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
13387         (compute_frame_size): Fix typo.
13388         (save_restore_insns): Ditto.  Make documentation about using
13389         register $7 as return register more precise.
13390         (mips_expand_epilogue): Fix comment. Add code to work around not
13391         being able to add to the stack pointer directly.
13392         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
13393         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
13394         epilogue.
13395
13396 2002-02-07  Tom Rix  <trix@redhat.com>
13397
13398         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
13399         immediates in ldu and stdu DS opcode field.
13400         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
13401         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
13402         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
13403
13404 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
13405
13406         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
13407         offset for stack bias.
13408
13409 2002-02-07  H.J. Lu <hjl@gnu.org>
13410
13411         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
13412
13413 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
13414
13415         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
13416
13417 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
13418
13419         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
13420         * i386.c (x86_order_regs_for_local_alloc): New global function.
13421         * i386.h (REG_ALLOC_ORDER): CLeanup.
13422         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
13423
13424 2002-02-07  Richard Henderson  <rth@redhat.com>
13425
13426         PR optimization/2463
13427         * alias.c (find_base_value): Recall base values for fixed hard regs.
13428         * loop.c (loop_regs_update): Don't use single_set on non-insns.
13429
13430 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
13431
13432         * config/mips/mips.md (define_delay) [mips16]: Adjust required
13433         length.
13434
13435 2002-02-06  Richard Henderson  <rth@redhat.com>
13436
13437         PR c/5609
13438         * stmt.c (resolve_operand_name_1): Take more care with mixed
13439         named and unnamed operands.
13440
13441 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
13442             Jan Hubicka  <jh@suse.cz>
13443
13444         * loop.c (remove_constant_addition): Avoid clobbering a shared
13445         CONST expression.
13446
13447 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13448
13449         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
13450         * config/s390/t-linux64: New file.
13451         * config/s390/libgcc-glibc.ver: New file.
13452
13453 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
13454
13455         * config/s390/linux64.h: Delete file.
13456         * config/s390/s390x.h: New file.
13457         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
13458         as target header file.
13459         * config/s390/linux.h (TARGET_VERSION): Define depending on
13460         DEFAULT_TARGET_64BIT.
13461         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
13462         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
13463         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
13464         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
13465         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
13466         (EXTRA_SPEC): New define.
13467         * config/s390/s390.h (TARGET_VERSION): Define depending on
13468         DEFAULT_TARGET_64BIT.
13469         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
13470
13471 2002-02-06  Jason Merrill  <jason@redhat.com>
13472
13473         * c-decl.c (finish_function): Warn about a non-void function with
13474         no return statement and no abnormal exit.
13475         (current_function_returns_abnormally): New variable.
13476         (start_function): Clear it.
13477         (struct c_language_function): Add returns_abnormally.
13478         (push_c_function_context): Save it.
13479         (pop_c_function_context): Restore it.
13480         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
13481         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
13482         an explicit return type.
13483         * c-tree.h: Declare current_function_returns_abnormally.
13484         (C_FUNCTION_IMPLICIT_INT): New macro.
13485         * c-typeck.c (build_function_call): Set it.
13486         (c_expand_return): Set current_function_returns_value even if the
13487         value is erroneous.
13488
13489 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
13490
13491         PR c/5420:
13492         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
13493         unsafe for reevaluation.
13494
13495 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
13496
13497         PR c/5482:
13498         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
13499         EXPR_STMT, but COMPOUND_STMT, recurse into it.
13500
13501 2002-02-06  Richard Henderson  <rth@redhat.com>
13502
13503         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
13504         be a general_operand.  Dest for function value must be a pseudo.
13505
13506 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
13507
13508         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
13509         as SYMBOL_REFs from the constant pool.
13510
13511 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
13512
13513         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
13514         passed by invisible reference.
13515
13516 2002-02-05  Richard Henderson  <rth@redhat.com>
13517
13518         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
13519
13520 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
13521
13522         Implement using "base addresses" in insn operands as default.
13523         * config/mmix/mmix.c (mmix_conditional_register_usage): if
13524         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
13525         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
13526         used to read the rtx value.
13527         (mmix_target_asm_function_epilogue): Fix spacing.
13528         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
13529         (mmix_legitimate_address): Ditto.
13530         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
13531         should be loaded with a GETA insn.  Don't allocate needless extra
13532         char for nul termination and fix misleading comment.
13533         (mmix_print_operand_address): Handle constants if
13534         TARGET_BASE_ADDRESSES.
13535         (mmix_output_register_setting): Use base addressing if
13536         TARGET_BASE_ADDRESSES and the number of insns is 3.
13537         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
13538         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
13539         to use R as constraint, add LDA to match s.
13540         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
13541         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
13542         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
13543         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
13544         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
13545         order with other fixed registers.
13546         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
13547         other parameter/call-clobbered registers.
13548         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
13549         -mbase-addresses, -mno-base-addresses.
13550         (MMIX Options): Ditto.
13551
13552 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13553
13554         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
13555
13556 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
13557
13558         * config/rs6000/altivec.h: Change elem to _S_elem.
13559
13560 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
13561
13562         * config/netbsd.h (WCHAR_TYPE): Define.
13563         (WCHAR_TYPE_SIZE): Ditto.
13564         (WINT_TYPE): Ditto.
13565         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
13566         (WCHAR_UNSIGNED): Ditto.
13567         (WCHAR_TYPE_SIZE): Ditto.
13568         (WINT_TYPE): Ditto.
13569         * config/arm/netbsd.h: Likewise.
13570         * config/i386/netbsd-elf.h: Likewise.
13571         * config/i386/netbsd.h: Likewise.
13572         * config/m68k/netbsd-elf.h: Likewise.
13573         * config/m68k/netbsd.h: Likewise.
13574         * config/ns32k/netbsd.h: Likewise.
13575         * config/sparc/netbsd.h: Likewise.
13576         * config/vax/netbsd.: Likewise.
13577
13578 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
13579
13580         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
13581         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
13582         (TARGET_INITIALIZER): this.
13583         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
13584         (BITFIELD_NBYTES_LIMITED): Markup fix.
13585         * tree.h (default_ms_bitfield_layout_p): Declare.
13586         (record_layout_info): Added prev_field.
13587         * tree.c (default_ms_bitfield_layout_p): New fn.
13588         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
13589         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
13590         * stor-layout.c: Include target.h.
13591         (start_record_layout): Initialize prev_field.
13592         (place_field): Handle MS bit-field layout, and disregard
13593         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
13594         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
13595         * Makefile.in (stor-layout.o): Adjust dependencies.
13596
13597 2002-02-05  Jason Merrill  <jason@redhat.com>
13598
13599         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
13600
13601 2002-02-05  Andreas Jaeger  <aj@suse.de>
13602
13603         * crtstuff.c: Fix comments.
13604
13605 2002-02-05  Richard Henderson  <rth@redhat.com>
13606
13607         PR fortran/3393
13608         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
13609         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
13610
13611         PR fortran/3392
13612         * config/mips/mips.c (function_arg): Handle TImode.
13613         (function_arg_advance): Likewise.
13614
13615 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
13616
13617         * config/rs6000/altivec.h (vec_step_help): Rename to
13618         __vec_step_help.
13619
13620 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
13621
13622         * config/rs6000/altivec.h: Fix typos.
13623
13624 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
13625
13626         * config/arm/netbsd.h: Correct a comment.
13627
13628 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
13629
13630         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
13631         building void typed builtins.
13632
13633         * config/rs6000/altivec.h (vec_ld*): Fix typos.
13634         (vec_step): Implement for C++.
13635
13636 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13637
13638         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
13639
13640 2002-02-04  Richard Henderson  <rth@redhat.com>
13641
13642         * combine.c (nonzero_bits): Re-introduce special case for
13643         sp/fp/ap wrt REGNO_POINTER_ALIGN.
13644
13645 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
13646
13647         * doc/extend.texi: Warn about unsupported usage of altivec
13648         builtins.
13649
13650         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
13651         (altivec_predicate_*): New.
13652
13653         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
13654         Add C++ version of vec_*() functions.
13655
13656         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
13657         (bdesc_2arg): Remove altivec predicates.
13658         (altivec_expand_builtin): Handle predicates.
13659         (altivec_init_builtins): Handle predicates.
13660         (altivec_expand_predicate_builtin): New.
13661
13662 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13663
13664         * pa.c (DO_FRAME_NOTES): Move forward.
13665         (store_reg): Revise handling of frame notes.
13666         (load_reg): Likewise.
13667         (set_reg_plus_d): Likewise.
13668         (hppa_expand_prologue): Likewise.
13669         (hppa_expand_epilogue): Likewise.
13670
13671 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13672
13673         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
13674
13675 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
13676
13677         PR c/4475, c++/3780:
13678         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
13679         * c-common.h (SWITCH_TYPE): Define.
13680         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
13681         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
13682         Rename spareness variable to sparseness.
13683         (expand_end_case_type): Renamed from expand_end_case, use orig_type
13684         if non-NULL instead of TREE_TYPE (orig_index).
13685         * tree.h (expand_end_case_type): Renamed from expand_end_case.
13686         (expand_end_case): Define using expand_end_case_type.
13687         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
13688         to expand_end_case_type.
13689         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
13690
13691 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13692
13693         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
13694         (BIGGEST_ALIGNMENT): Change to 128.
13695
13696 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13697
13698         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
13699
13700 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
13701
13702         * pa.md (call_internal_reg_64bit): Remove unused variable.
13703
13704 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
13705
13706         * config/arm/arm.h (machine_function): Add uses_anonymous_args
13707         field.
13708         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
13709         * config/arm/arm.c (current_function_anonymous_args): Delete,
13710         replace uses with cfun->machine->uses_anonymous_args.
13711         (arm_reorg): Do not reset uses_anonymous_args.
13712
13713         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
13714         any geenral register.
13715
13716 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
13717
13718         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
13719         the entry block.
13720
13721 2002-02-04  Richard Henderson  <rth@redhat.com>
13722
13723         * combine.c (force_to_mode): Remove STACK_BIAS code.
13724         (nonzero_bits): Likewise.  Replace sp/fp special case with
13725         REGNO_POINTER_ALIGN.
13726
13727         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
13728         (HARD_FRAME_POINTER_REGNUM): New.
13729         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
13730         (FIXED_REGS, CALL_USED_REGS): Update.
13731         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
13732         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
13733         (HARD_REGNO_NREGS): Update for SFP.
13734         (STACK_POINTER_OFFSET): Include bias here ...
13735         (FIRST_PARM_OFFSET): ... not here.
13736         (STACK_BIAS): Remove.
13737         (INIT_EXPANDERS): New.
13738         (STARTING_FRAME_OFFSET): Do not include bias.
13739         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
13740         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
13741         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
13742         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
13743         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
13744         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
13745         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
13746         (MUST_SAVE_REGISTER): Likewise.
13747         (sparc_flat_function_prologue): Likewise.
13748         (sparc_flat_function_epilogue): Likewise.
13749         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
13750         (sparc_init_modes): SFP is GENERAL_REGS.
13751         (sparc_builtin_saveregs): SFP does not have bias applied.
13752
13753 2002-02-04  Richard Henderson  <rth@redhat.com>
13754
13755         * config/alpha/alpha.c (current_function_is_thunk): Don't check
13756         current_function_is_thunk.
13757         (alpha_sa_mask): Distinguish between current_function_is_thunk
13758         called from ASM_OUTPUT_MI_THUNK and not.
13759         (alpha_does_function_need_gp): Thunks always need gp.
13760         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
13761         (alpha_output_mi_thunk_osf): New.
13762         * config/alpha/alpha-protos.h: Update.
13763         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
13764
13765 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
13766
13767         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
13768         function types, not when they're taken away.
13769
13770 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
13771
13772         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
13773         CODE_LABEL and jump table when replacing a table jump with a
13774         simple jump.
13775
13776 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13777
13778         * config/s390/s390-protos.h (legitimize_la_operand,
13779         s390_secondary_input_reload_class, s390_plus_operand,
13780         s390_expand_plus_operand): Add prototypes.
13781
13782         config/s390/s390.c (s390_secondary_input_reload_class,
13783         s390_plus_operand, s390_expand_plus_operand): New functions.
13784
13785         (struct s390_address): New member 'pointer'.
13786         (s390_decompose_address): Compute it.
13787         (legitimate_la_operand_p): Use it.
13788         (legitimize_la_operand): New function.
13789         (movti, movdi, movdf splitters): Call it.
13790
13791         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
13792         (PREDICATE_CODES): Add s390_plus_operand.
13793
13794         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
13795         (la_ccclobber): Allow GENERAL_REGS as output operand.
13796
13797         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
13798         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
13799         (*la_64, *la_31, reload_indi, reload_insi): ... these.
13800
13801 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13802
13803         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
13804         register names for regular asm () construct.
13805
13806 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
13807
13808         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
13809         registers.
13810
13811 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
13812
13813         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
13814         pat for recog.
13815
13816 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
13817
13818         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
13819         constant pool to be identical by string address and index.
13820
13821 2002-02-04  Anthony Green  <green@redhat.com>
13822
13823         * output.h (SECTION_OVERRIDE): Define.
13824         * varasm.c (named_section): Obey SECTION_OVERRIDE.
13825
13826 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
13827
13828         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
13829         by existing arm*-*-netbsd* (a.out) target.
13830         (ns32k-*-netbsdelf*): Likewise.
13831         (sparc-*-netbsdelf*): Likewise.
13832         (vax-*-netbsdelf*): Likewise.
13833
13834 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
13835
13836         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
13837         headers and libobjc headers.
13838
13839 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
13840
13841         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
13842         (_mingw.h): Remove duplicate include.
13843
13844 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
13845
13846         * config.gcc: Set cpu_type to m68k for 68010, as well.
13847         (m68010-*-netbsdelf*): New...
13848         (m68k*-*-netbsdelf*): ...targets.
13849         * config/m68k/netbsd-elf.h: New file.
13850
13851 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13852
13853         * config/h8300/h8300.c (hand_list): Move inside function_arg.
13854
13855 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13856
13857         * config/h8300/h8300.c (h8_push_ops): Move inside
13858         h8300_init_once.
13859         (h8_pop_ops): Likewise.
13860         (h8_move_ops): Likewise.
13861
13862 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13863
13864         * config/h8300/h8300.c (os_task): Make it static.
13865         (monitor): Likewise.
13866         (pragma_saveall): Likewise.
13867
13868 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
13869
13870         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
13871         constant is a valid sign-extension for Pmode.
13872
13873 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13874
13875         * config/h8300/h8300.c: Fix formatting.
13876
13877 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13878
13879         * config/h8300/h8300.md: Fix formatting.
13880
13881 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13882
13883         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
13884         predicates of operands[1].  Split the patterns for each
13885         processor variant.
13886
13887 2002-02-02  Kazu Hirata  <kazu@hxi.com>
13888
13889         * config/h8300/h8300.md (xor patterns): Tighten the predicates
13890         of operands[1] to register_operand.
13891
13892 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
13893
13894         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
13895         * cpphash.c (_cpp_init_hashtable): Similarly.
13896         * cppinit.c (cpp_create_reader): Default the signed_char flag.
13897         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
13898         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
13899         (cpp_handle_option): Handle the new options.
13900         * cpplex.c (cpp_interpret_charconst): Use new flag.
13901         * cpplib.h (struct cpp_options): New member signed_char.
13902         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
13903         (cpp_options): Handle -fsigned-char and -funsigned-char.
13904         (static_specs): Remove signed_char_spec.
13905         (do_spec1): Don't handle %c.
13906         * system.h: Poison SIGNED_CHAR_SPEC.
13907         * tradcif.y (yylex): Use flag_signed_char.
13908         * tradcpp.h (flag_signed_char): New.
13909         * tradcpp.c (flag_signed_char): New.
13910         (main): Handle new command-line options.
13911         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
13912 config:
13913         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
13914         * avr/avr.h: Remove old comments.
13915         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
13916         (CC1_SPEC): Pass -fsigned-char if -mic*.
13917         (SIGNED_CHAR_SPEC): Remove.
13918 doc:
13919         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
13920
13921 2002-02-01  Eric Christopher  <echristo@redhat.com>
13922
13923         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
13924         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
13925         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
13926         (ASM_OUTPUT_REG_POP): Ditto.
13927
13928 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
13929
13930         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
13931         patch.
13932
13933 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
13934
13935         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
13936
13937 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
13938
13939         PR c/5304:
13940         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
13941         unconditionally.
13942
13943 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
13944
13945         * cfganal.c: Include tm_p.h.
13946         (keep_with_call_p): Fix the test that determines if a register holds
13947         the return value of a call.
13948
13949 2002-02-01  DJ Delorie  <dj@redhat.com>
13950
13951         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
13952         we are given conflicting registers, switch to the other one we
13953         had allocated for us.
13954         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
13955         as TImode so we know when the "other" register is available.
13956
13957 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
13958
13959         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
13960         sparc/sparc_bi.h.
13961
13962 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
13963
13964         * cfganal.c (keep_with_call_p): New function.
13965         (flow_call_edges_add): Prevent splitting a block between a call and
13966         a single-set instruction that should be kept in the same block.
13967
13968 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
13969
13970         * doc/install.texi (avr): Update outdated URL.
13971
13972 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
13973
13974         * config/stormy16/stormy16.md (pushqi): New.
13975         (popqi): New.
13976         (pushhi): New.
13977         (pophi): New.
13978         (movhi): Remove stack operands.
13979         (movqi): Likewise.
13980         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
13981         nonimmediate_nonstack_operand.
13982         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
13983         New.
13984         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
13985         New.
13986
13987 2002-01-31  Jason Merrill  <jason@redhat.com>
13988
13989         * Makefile.in (c-parse.c): Handle .output file.
13990         * objc/Make-lang.in (objc-parse.c): Likewise.
13991
13992 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
13993
13994         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
13995         the -me[lb] option is given.  Don't output the default flag
13996         twice.
13997
13998 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
13999
14000         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
14001         the primary source file; this has not been done yet.
14002         * c-decl.c (c_expand_body): Reset input_filename from
14003         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
14004
14005 2002-01-31  Kazu Hirata  <kazu@hxi.com>
14006
14007         * rtlanal.c (subreg_regno_offset): Do not use
14008         SUBREG_REGNO_OFFSET.
14009         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
14010         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
14011
14012 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
14013
14014         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
14015         version rather than GNATS version in --version output.
14016
14017 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
14018
14019         * ifcvt.c (noce_process_if_block): Make a copy of the destination
14020         when copying back from a temporary.
14021
14022 2002-01-30  Richard Henderson  <rth@redhat.com>
14023
14024         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
14025         and new_dest are the same.
14026
14027 2002-01-30  Richard Henderson  <rth@redhat.com>
14028
14029         PR opt/5076
14030         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
14031         * rtl.c (note_insn_name): Update.
14032         * emit-rtl.c (remove_unnecessary_notes): Kill it.
14033         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
14034         to perform loop rotation.
14035         (expand_exit_loop_top_cond): New.
14036         * tree.h (expand_exit_loop_top_cond): Declare it.
14037         * c-semantics.c (genrtl_while_stmt): Use it.
14038         (genrtl_for_stmt): Likewise.
14039
14040 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
14041
14042         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
14043         arguments to 64-bit boundaries on 64-bit ABIs.
14044
14045 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
14046
14047         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
14048
14049 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
14050
14051         * c-decl.c (grokdeclarator): Handle type being a typedef for an
14052         invalid type.
14053
14054 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
14055
14056         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
14057         * config/sparc/sparc_bi.h: Remove file.
14058         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
14059
14060 2002-01-30  Richard Henderson  <rth@redhat.com>
14061
14062         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
14063
14064 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
14065
14066         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
14067
14068 2002-01-30  Jason Merrill  <jason@redhat.com>
14069
14070         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
14071         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
14072         (reg_save): Use DW_CFA_offset_extended_sf instead.
14073
14074         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
14075
14076 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
14077
14078         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
14079         in cselib_lookup.
14080
14081 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
14082
14083         * rs6000.md ("*call_value_local32"): Remove constraints.
14084         ("*call_value_local64"): Same.
14085         ("*call_value_indirect_nonlocal_aix32"): Same.
14086         ("*call_value_nonlocal_aix32"): Same.
14087         ("*call_value_indirect_nonlocal_aix64"): Same.
14088         ("*call_value_nonlocal_aix64"): Same.
14089         ("*call_value_nonlocal_sysv"): Same.
14090
14091 2002-01-29  Richard Henderson  <rth@redhat.com>
14092
14093         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
14094
14095 2002-01-29  Richard Henderson  <rth@redhat.com>
14096
14097         * expr.c (force_operand): Ignore flag_pic for detecting pic
14098         address loads.
14099         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
14100         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
14101         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
14102         instead of open-coded loop.
14103         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
14104         be fixed when in use.
14105
14106 2002-01-29  Richard Henderson  <rth@redhat.com>
14107
14108         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
14109         * sched-rgn.c (propagate_deps): Update them.
14110         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
14111         clobbers list when either gets too long.
14112
14113 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
14114
14115         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
14116         and INDEX_REGS the same as GENERAL_REGS.
14117         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
14118
14119 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
14120
14121         * tree.c (build_nonstandard_integer_type): Correct prototype.
14122
14123 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
14124
14125         * config/s390/s390.md (movstrsico, movstrdix_64,
14126         movstrsix_31): Remove, replace by ...
14127         (movstrdi_short, movstrsi_short, movstrdi_long,
14128         movstrsi_long): ... these.  New.
14129         (movstrdi, movstrsi): Adapt.
14130
14131         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
14132         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
14133         Remove unnecessary CC clobber.
14134         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
14135         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
14136
14137         (divmoddi4): Don't partially initialize TImode register.
14138
14139 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
14140
14141         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
14142
14143 2002-01-29  Richard Henderson  <rth@redhat.com>
14144
14145         * flow.c (print_rtl_and_abort): Remove.
14146         (print_rtl_and_abort_fcn): Remove.
14147         (verify_local_live_at_start): Use dump_bb instead.
14148         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
14149         (verify_wide_reg_1): Return 2 on mode test failure.
14150
14151 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
14152
14153         PR c/3325, c/3326, c/2511, c/3347
14154         * c-decl.c (enum_decl_context): Remove BITFIELD.
14155         (grokdeclarator): Take bitfield width as an input.
14156         Ensure bitfields are given the correct type.  Perform
14157         bitfield width validation with build_bitfield_integer_type
14158         rather than waiting for finish_struct.
14159         (grok_typename, grok_typename_in_parm_context, start_decl,
14160         push_parmdecl, grokfield, start_function): Update calls to
14161         grokdeclarator.
14162         (build_bitfield_integer_type): New function.
14163         (finish_struct): Move bitfield validation to grokdeclarator
14164         and build_bitfield_integer_type.
14165         * tree.c (build_nonstandard_integer_type): New function.
14166         * tree.h (build_nonstandard_integer_type): New prototype.
14167 objc:
14168         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
14169
14170 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
14171
14172         PR other/1502:
14173         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
14174         don't ignore unrecognized -W* options.
14175         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
14176         * cpplib.h (cpp_handle_option): Adjust prototype.
14177         * c-decl.c (c_decode_options): Pass 0 as last argument to
14178         cpp_handle_option.
14179
14180         PR c/2896:
14181         * gcc.c (cpp_unique_options): Split from cpp_options.
14182         (cpp_options): Source cpp_unique_options.
14183         (default_compilers): Use cpp_unique_options instead of cpp_options
14184         when used together with cc1_options.
14185         (static_specs): Add cpp_unique_options.
14186         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
14187         when used together with cc1_options.
14188
14189 2002-01-29  Kazu Hirata  <kazu@hxi.com>
14190
14191         * config/h8300/h8300-protos.h: Update the prototype of
14192         output_a_shift.
14193         * config/h8300/h8300.c (output_a_shift): Remove an unused
14194         argument 'insn'.  Remove redundant code.
14195         * config/h8300/h8300.md: Adust to the new prototype of
14196         output_a_shift.
14197
14198 2002-01-29  Kazu Hirata  <kazu@hxi.com>
14199
14200         * config/h8300/h8300-protos.h: Update the prototypes of
14201         emit_a_rotate and expand_a_rotate.
14202         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
14203         first argument to 'enum rtx_code'.
14204         (expand_a_rotate): Likewise.
14205
14206 2002-01-28  Kazu Hirata  <kazu@hxi.com>
14207
14208         * config/h8300/h8300-protos.h: Update the prototype of
14209         output_simode_bld.
14210         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
14211         'log2'.
14212         * config/h8300/h8300.md: Adjust to the new prototype.
14213
14214 2002-01-28  Kazu Hirata  <kazu@hxi.com>
14215
14216         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
14217         redundant code.
14218
14219 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14220
14221         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
14222         is a fixed register before returning pic_offset_table_rtx.
14223         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
14224         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
14225
14226 2002-01-28  Jason Merrill  <jason@redhat.com>
14227
14228         * dwarf2.h: Sync with src version.
14229
14230 2002-01-28  Paul Koning  <pkoning@equallogic.com>
14231
14232         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
14233         BT_FN_VOID_PTR_VAR.
14234         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
14235         * doc/extend.texi (__builtin_prefetch): Update documentation:
14236         first argument is now const void ptr.
14237
14238 2002-01-28  Kazu Hirata  <kazu@hxi.com>
14239
14240         * config/h8300/h8300-protos.h: Remove an unused prototype.
14241
14242 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
14243
14244         * toplev.c (lang_independent_init): Round up identifier size.
14245
14246 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
14247
14248         * config.gcc: Revert previous change.
14249
14250 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
14251
14252         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
14253
14254 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
14255
14256         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
14257         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
14258         other non-elf netbsd config frags.
14259         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
14260         collect2 will does that.
14261         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
14262         shared-lib frobbing will work.
14263
14264 2002-01-28  Kazu Hirata  <kazu@hxi.com>
14265
14266         * config/h8300/h8300.h: Fix formatting.
14267         * config/h8300/h8300.md: Likewise.
14268
14269 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
14270
14271         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
14272         the old, removed AAA_standards fix.
14273         * fixinc/fixincl.x: Rebuilt.
14274
14275 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
14276
14277         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
14278         atexit call in crtbegin, hooked in after call to frame_dummy;
14279         register EH before registering __fini__start.
14280
14281 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
14282
14283         * config/rs6000/altivec.h: Remove spurious semicolons.
14284
14285 2002-01-27  Kazu Hirata  <kazu@hxi.com>
14286
14287         * config/h8300/h8300.md: Replace dead bit extraction patterns
14288         with ones that work.
14289
14290 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14291
14292         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
14293         if not STRICT_ALIGNMENT.
14294         * rtl.h (MEM_ALIGN): Likewise.
14295
14296 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14297
14298         * doc/invoke.texi (-fdump-translation-unit): Revert this
14299         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14300
14301 2002-01-27  Kazu Hirata  <kazu@hxi.com>
14302
14303         * config/h8300/h8300.md (define_constants): New.
14304         (anonymous patterns) Use defined constants appropriately.
14305
14306 2002-01-27  Kazu Hirata  <kazu@hxi.com>
14307
14308         * config/h8300/h8300.c (function_arg): Remove redundant code.
14309
14310 2002-01-26  Richard Henderson  <rth@redhat.com>
14311
14312         * sched-deps.c (reg_pending_uses_head): New.
14313         (reg_pending_barrier): Rename from reg_pending_sets_all.
14314         (find_insn_list): Don't mark inline.
14315         (find_insn_mem_list): Remove.
14316         (add_dependence_list, add_dependence_list_and_free): New.
14317         (flush_pending_lists): Replace only_write param with separate
14318         for_read and for_write parameters.  Update all callers.  Use
14319         add_dependence_list_and_free.
14320         (sched_analyze_1): Do not add reg dependencies here; just set
14321         the pending bits.  Use add_dependence_list.
14322         (sched_analyze_2): Likewise.
14323         (sched_analyze_insn): Replace schedule_barrier_found with
14324         reg_pending_barrier.  Add all dependencies for pending reg
14325         uses, sets, and clobbers.
14326         (sched_analyze): Don't add reg dependencies for calls, just
14327         set pending bits.  Use regs_invalidated_by_call.  Treat
14328         sched_before_next_call as a normal list, not a fake insn.
14329         (init_deps): No funny init for sched_before_next_call.
14330         (free_deps): Free pending mems lists.  Don't zero reg_last.
14331         (init_deps_global): Init reg_pending_uses.
14332         (finish_deps_global): Free it.
14333         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
14334         (find_insn_mem_list): Remove.
14335         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
14336         (propagate_deps): Use them.  Zero temp mem lists.
14337
14338 2002-01-26  Richard Henderson  <rth@redhat.com>
14339
14340         * Makefile.in (CRTSTUFF_CFLAGS): New.
14341         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
14342         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
14343         crtstuff.c instead of alpha assembly version.
14344         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
14345         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
14346         not FORCE_{INIT,FINI}_SECTION_ALIGN.
14347         (__do_global_dtors_aux): Mark used.
14348         (frame_dummy, __do_global_ctors_aux): Mark used.
14349         (fini_dummy, init_dummy): Remove.
14350
14351         * config/alpha/crtbegin.asm: Remove file.
14352         * config/alpha/crtend.asm: Remove file.
14353         * config/alpha/t-crtbe: Remove file.
14354         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
14355         (LINK_EH_SPEC): New.
14356
14357         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
14358         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
14359         calling constructors.
14360         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
14361
14362         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
14363         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
14364         CRT_END_INIT_DUMMY hack.
14365         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
14366         FORCE_{INIT,FINI}_SECTION_ALIGN.
14367
14368         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
14369         FORCE_{INIT,FINI}_SECTION_ALIGN.
14370
14371         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
14372         invocation sequence.
14373         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
14374
14375         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
14376         (FORCE_CODE_SECTION_ALIGN): New.
14377
14378 2002-01-26  Richard Henderson  <rth@redhat.com>
14379
14380         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
14381
14382 2002-01-26  Richard Henderson  <rth@redhat.com>
14383
14384         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
14385         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
14386
14387 2002-01-26  Kazu Hirata  <kazu@hxi.com>
14388
14389         * config/h8300/h8300.md: Remove bit extraction patterns that
14390         cannot be triggered.
14391         Restrict each bit extraction pattern to a variant on which the
14392         pattern is tested.
14393
14394 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
14395
14396         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
14397
14398 2002-01-26  Kazu Hirata  <kazu@hxi.com>
14399
14400         * config/h8300/h8300.md: Remove bit test patterns that cannot
14401         be triggered.
14402         Restrict each bit test pattern to a variant on which the
14403         pattern is tested.
14404
14405 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14406
14407         * builtins.c (expand_builtin_strncat): Remove redundant check for
14408         INTEGER_CST.
14409
14410 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
14411
14412         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
14413         default setting.
14414         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
14415         existing setting.
14416
14417 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
14418
14419         * dbxout.c (dbxout_init): Use assemble_name rather than just
14420         stripping off the first character.
14421         (dbxout_source_file): Likewise.
14422
14423 2002-01-25  DJ Delorie  <dj@redhat.com>
14424
14425         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
14426         using rtx_equal_p, not by comparing pointers.
14427
14428 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
14429
14430         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
14431         for PIC_OFFSET_TABLE_REGNUM.
14432         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
14433
14434 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
14435
14436         * config.gcc (x86_64-*-freebsd*): New target.
14437         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
14438         value.
14439         (i[34567]86-*-freebsd*): Don't include svr4.h.
14440         * config/i386/freebsd64.h: New file.
14441
14442 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
14443
14444         * config/alpha/x-vms (version): Make static.
14445
14446         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
14447         in previous checkin.
14448
14449         * Makefile.in (install-headers-cp): New target.
14450         * config.gcc (alpha-dec-*vms*): Install headers with
14451         install-headers-cp
14452
14453 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
14454
14455         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
14456         avoid it's copies.
14457
14458 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14459
14460         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
14461         of compare_tree_int.
14462         (expand_builtin_strncat): Likewise.
14463         * c-decl.c (finish_struct): Use tree_low_cst.
14464         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
14465         * tree.c (compare_tree_int): Likewise.
14466
14467 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
14468
14469         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
14470         adjustments even if they are implemented by more than two insns.
14471
14472 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
14473
14474         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
14475         * df.h (struct ref): Kill B.
14476         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
14477
14478         * basic-block.h (PROP_EQUAL_NOTES): New flag.
14479         * flow.c (propagate_one_insn): Use it.
14480         (mark_used_regs): Handle NIL.
14481
14482 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
14483
14484         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
14485         to help folding.
14486
14487 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
14488
14489         * rs6000.md (prefetch): Make address V4SI mode so that the address
14490         is restricted to legitimate form for instruction.
14491
14492 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
14493
14494         * doc/install.texi (xtensa-*-elf): New target.
14495         (xtensa-*-linux*): New target.
14496         * doc/contrib.texi: Add myself.
14497
14498 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
14499
14500         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
14501         purpose register to hold an SImode (or smaller) value.
14502
14503 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
14504
14505         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
14506         registry only.
14507         * crtstuff.c: Likewise.
14508
14509 2002-01-25  Kazu Hirata  <kazu@hxi.com>
14510
14511         * config/h8300/h8300.md (negation patterns): Tighten
14512         predicates to register_operand.
14513
14514 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
14515
14516         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
14517         mode, not Pmode.
14518
14519         * builtins.c (expand_builtin_prefetch): Same.
14520
14521 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14522
14523         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
14524         modes.
14525
14526 2002-01-24  Kazu Hirata  <kazu@hxi.com>
14527
14528         * config/h8300/h8300.c (print_operand): Remove support for
14529         operand character 'A'.
14530         * config/h8300/h8300.md (three anonymous patterns): Replace
14531         operand character 'A' with either 'T' or 'S'.
14532
14533 2002-01-24  Kazu Hirata  <kazu@hxi.com>
14534
14535         * config/h8300/h8300.c (print_operand): Remove support for
14536         operand character 'U'.
14537
14538 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
14539
14540         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
14541
14542 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
14543
14544         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
14545         values to be assigned to the stack pointer.
14546
14547 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
14548
14549         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
14550         to const_double needs to be done right for big-endian systems.
14551
14552 2002-01-24  Jason Merrill  <jason@redhat.com>
14553
14554         PR c++/2432
14555         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
14556         to can_throw_internal.
14557
14558 2002-01-23  Richard Henderson  <rth@redhat.com>
14559
14560         * fold-const.c (fold): Change UINT_MAX test to check vs precision
14561         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
14562
14563 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14564
14565         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
14566         (symGOT2reg): Use them, then set as GOT value as unchanging.
14567         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
14568         as a temporary, if possible.
14569         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
14570         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
14571
14572 2002-01-23  Kazu Hirata  <kazu@hxi.com>
14573
14574         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
14575         accept to accept 0x80 as operands[2].
14576
14577 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
14578
14579         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
14580
14581 2002-01-23  Richard Henderson  <rth@redhat.com>
14582
14583         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
14584
14585 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
14586
14587         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
14588         (parmlist_or_identifiers_1): Verify that only a parmlist follows
14589         an attribute.
14590
14591 2002-01-23  Richard Henderson  <rth@redhat.com>
14592
14593         * expr.c (move_by_pieces_1): Extend size before negation.
14594
14595         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
14596         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
14597         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
14598         * config/m68k/t-m68kelf: Likewise.
14599
14600 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
14601
14602         * config/xtensa/elf.h: New file.
14603         * config/xtensa/lib1funcs.asm: New file.
14604         * config/xtensa/lib2funcs.S: New file.
14605         * config/xtensa/linux.h: New file.
14606         * config/xtensa/t-xtensa: New file.
14607         * config/xtensa/xtensa-config.h: New file.
14608         * config/xtensa/xtensa-protos.h: New file.
14609         * config/xtensa/xtensa.c: New file.
14610         * config/xtensa/xtensa.h: New file.
14611         * config/xtensa/xtensa.md: New file.
14612         * config.gcc (xtensa-*-elf*): New target.
14613         (xtensa-*-linux*): New target.
14614         * cse.c (canon_hash): Compare rtx pointers instead of register
14615         numbers.  This is required for the Xtensa port.
14616         * integrate.c (copy_insn_list): Handle case where the static
14617         chain is in memory and the memory address has to be copied to
14618         a register.
14619         * doc/invoke.texi (Option Summary): Add Xtensa options.
14620         (Xtensa Options): New node.
14621         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
14622
14623 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
14624
14625         * diagnostic.c (internal_error): Do ICE suppression only
14626         when ENABLE_CHECKING is not defined.
14627
14628         * c-typeck.c (require_complete_type): Return error_mark_node
14629         if type is error_mark_node.
14630
14631 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
14632
14633         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
14634         -Os and issue a warning.
14635
14636 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
14637
14638         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
14639         current (lack of) need for host configuration by hand.
14640
14641         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
14642         references.  Documentation of some target macros moved from
14643         hostconfig.texi to tm.texi.
14644
14645 2002-01-23  Will Cohen  <wcohen@redhat.com>
14646
14647         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
14648         defined.
14649
14650 2002-01-23  Kazu Hirata  <kazu@hxi.com>
14651
14652         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
14653         operand[3].
14654
14655 2002-01-23  Jason Merrill  <jason@redhat.com>
14656
14657         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
14658
14659         * function.c (assign_parms): Don't put args of inline functions
14660         into registers when not optimizing.
14661
14662 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
14663
14664         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
14665         (prologue_use): New pattern.
14666         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
14667         preference to gen_rtx_USE.
14668         (thumb_expand_prologue): Use gen_prologue_use in preference to
14669         gen_rtx_USE.
14670         (thumb_expand_epilogue): Use gen_prologue_use in preference to
14671         gen_rtx_USE.
14672
14673 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
14674
14675         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
14676
14677 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
14678
14679         PR c/3504
14680         * doc/extend.texi: Correct documentation of __alignof__.
14681
14682 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
14683
14684         * params.h: Rename arguments of DEFPARAM so that it will be
14685         recognized as a translation keyword.
14686
14687 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
14688
14689         * extend.texi: Document altivec functions.
14690         Fix N-bit adjectives in X86 builtin documentation.
14691
14692 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
14693
14694         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
14695         auto_inc_dec values.
14696
14697 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
14698
14699         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
14700         after backslash.
14701         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
14702
14703 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
14704
14705         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
14706
14707 2002-01-22  Richard Henderson  <rth@redhat.com>
14708
14709         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
14710         copy_insn not copy_rtx.
14711
14712 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
14713
14714         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
14715         "nonzero" as that might add "1" bits.  Ensure "constop" is
14716         properly sign extened.
14717         (force_to_mode): Tweak for sign extended constop.
14718
14719 2002-01-22  Richard Henderson  <rth@redhat.com>
14720
14721         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
14722         for_each_rtx instead of assuming we're already looking at the MEM.
14723         (split_small_symbolic_mem_operand): Likewise.
14724         * config/alpha/alpha.h (PREDICATE_CODES): Update.
14725         * config/alpha/alpha.md (small symbolic memory splitters): Update.
14726
14727 2002-01-22  Richard Henderson  <rth@redhat.com>
14728
14729         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
14730         sequence number for the literal.
14731         (divmoddi_internal_er): Likewise.
14732
14733 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14734
14735         PR java/4972
14736         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
14737         in LIBICONV variable.
14738         * configure: Regenerated.
14739
14740 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
14741
14742         * dependence.c (build_def_use): Remove array_idx.
14743
14744         * dwarfout.c (last_filename): Remove.
14745         (output_compile_unit_die): Remove last_filename.
14746
14747 2002-01-22  Roger Sayle  <roger@eyesopen.com>
14748             Richard Henderson  <rth@redhat.com>
14749
14750         PR opt/3640
14751         * fold-const.c (fold): Optimize unsigned comparisons against
14752         UINT_MAX (and similar unsigned constants).
14753
14754 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
14755
14756         * Makefile.in (loop.o): Depend on OPTABS_H.
14757         * loop.c (emit_prefetch_instructions): Check the prefetch operand
14758         against the predicate.
14759
14760         PR target/5379
14761         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
14762         for the address operand.
14763
14764 2002-01-22  Richard Henderson  <rth@redhat.com>
14765
14766         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
14767
14768 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
14769
14770         PR other/5450
14771         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
14772         preprocessor flags.
14773
14774 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
14775
14776         * config.gcc (x86_64-*-netbsd*): New target.
14777         * config/i386/netbsd64.h: New file.
14778
14779 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
14780
14781         * regrename.c (kill_value): Fix typo.
14782
14783 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
14784
14785         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
14786
14787         * config/rs6000/rs6000.h: Same.
14788
14789         * function.c (instantiate_virtual_regs): Remove
14790         STARTING_FRAME_PHASE.
14791         (assign_stack_local_1): Same.
14792         Calculate frame phase.
14793
14794 2002-01-22  Nick Clifton  <nickc@redhat.com>
14795
14796         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
14797         variable declaration to outer scope in order to simplify
14798         future extensions.
14799         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
14800         arm_hard_regno_mode_ok.
14801         * config/arm/arm-protos.h: Add a prototype for
14802         arm_hard_regno_mode_ok.
14803         * config/arm/arm.c (soft_df_operand): Remove now redundant
14804         check for DImode values using IP_REGNUM.
14805         (nonimmediate_soft_df_operand): Remove now redundant check for
14806         DImode values using IP_REGNUM.
14807         (arm_hard_regno_mode_ok): New function. New check: make sure
14808         that DImode values are not stored in IP_REGNUM.
14809
14810         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
14811         note with a USE.
14812         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
14813
14814 2002-01-22  Jason Merrill  <jason@redhat.com>
14815
14816         * c-semantics.c (genrtl_compound_stmt): Only check nesting
14817         consistency if this COMPOUND_STMT is scoped.
14818
14819 2002-01-22  Kazu Hirata  <kazu@hxi.com>
14820
14821         * predict.c: Fix formatting.
14822         * print-tree.c: Likewise.
14823         * protoize.c: Likewise.
14824         * real.h: Likewise.
14825         * rtl.h: Likewise.
14826         * sbitmap.h: Likewise.
14827         * scan.c: Likewise.
14828         * sched-deps.c: Likewise.
14829         * sched-vis.c: Likewise.
14830         * sdbout.c: Likewise.
14831         * sibcall.c: Likewise.
14832         * ssa.c: Likewise.
14833         * ssa-ccp.c: Likewise.
14834         * ssa-dce.c: Likewise.
14835         * stmt.c: Likewise.
14836         * stor-layout.c: Likewise.
14837         * system.h: Likewise.
14838
14839 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14840
14841         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
14842         if fits in bounds of base type.
14843
14844         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
14845         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
14846         (add_bound_info, default): If can't find a context, make a
14847         SAVE_EXPR.
14848         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
14849
14850 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
14851
14852         * c-typeck.c (parser_build_binary_op): If result from
14853         build_binary_op is ERROR_MARK just return error_mark_node without
14854         further processing.
14855
14856 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
14857
14858         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
14859         Split a.out-specific bits into...
14860         * config/netbsd-aout.h: ...this.
14861         * config/netbsd-elf.h: New file.
14862         * config/alpha/netbsd-elf.h: Remove.
14863         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
14864         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
14865         (STARTFILE_SPEC): Remove redundant definition.
14866         (ENDFILE_SPEC): Likewise.
14867         (LINK_SPEC): Likewise.
14868         (CPP_SPEC): Likewise.
14869         (ASM_SPEC): Likewise.
14870         (LIB_SPEC): Likewise.
14871         (SWITCH_TAKES_ARG): Likewise.
14872         (TARGET_MEM_FUNCTIONS): Likewise.
14873         (CPP_PREDEFINES): Redefine.
14874         (ASM_FINAL_SPEC): Remove redefinition.
14875         (ASM_COMMENT_START): Redefine.
14876         (FUNCTION_PROFILER): Define.
14877         (TARGET_VERSION): Redefine.
14878         Comment and formatting cleanup.
14879         * config/i386/netbsd.h: Include <netbsd-aout.h>.
14880         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
14881         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
14882         big- or little-endian.
14883         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
14884         * config.gcc (*-*-netbsd*): Add definitions common to all
14885         NetBSD configs.
14886         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
14887         gnu_ld definitions.  Add netbsd-elf.h to and remove
14888         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
14889         tmake_file, and don't lose previous tmake_file contents.
14890         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
14891         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
14892         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
14893         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
14894         (mipsel-*-netbsd*): Rename this to...
14895         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
14896         mips/little.h to tm_file for mips*el-*.
14897         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
14898         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
14899         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
14900
14901 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14902
14903         * pa-protos.h (reg_before_reload_operand): New function prototype.
14904         * pa.c (reg_before_reload_operand): New function implementation.
14905         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
14906         contraints to "*m".
14907
14908 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14909
14910         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
14911
14912 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14913
14914         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
14915         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
14916         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
14917         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
14918         (ENDFILE_SPEC): Undefine.
14919         (STARTFILE_SPEC): Redefine for PA.
14920
14921 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
14922
14923         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
14924
14925 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
14926
14927         * config.gcc: Add entries to supported PowerPC --with-cpu
14928         types.
14929
14930 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
14931
14932         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
14933         true for 64-bit mode only SSE registers in 32-bit mode.
14934
14935 2002-01-21  Kazu Hirata  <kazu@hxi.com>
14936
14937         * unwind-dw2.c: Fix formatting.
14938         * unwind-dw2-fde.c: Likewise.
14939         * unwind-dw2-fde.h: Likewise.
14940         * unwind-pe.h: Likewise.
14941         * varasm.c: Likewise.
14942         * varray.h: Likewise.
14943
14944 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
14945
14946         Remove workaround for register stack overwrite bug in mmix.
14947         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
14948         support for TARGET_REG_STACK_FILL_BUG.
14949         * config/mmix/mmix.h: Remove member has_call_without_parameters.
14950         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
14951         Delete.
14952         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
14953         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
14954         -mno-reg-stack-fill-bug-workaround.
14955         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
14956         machine member has_call_without_parameters.
14957         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
14958         -mreg-stack-fill-bug-workaround and
14959         -mno-reg-stack-fill-bug-workaround.
14960         (MMIX Options): Ditto.
14961
14962 2002-01-21  Kazu Hirata  <kazu@hxi.com>
14963
14964         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
14965         as appropriate.
14966         Remove redundant code.
14967
14968 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
14969
14970         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
14971         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
14972         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
14973         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
14974         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
14975         out target macro definitions and non-target-specific comments
14976         mostly taken from old versions of the manual.
14977
14978 2002-01-20  Kazu Hirata  <kazu@hxi.com>
14979
14980         * config/h8300/h8300.h: Fix comment formatting.
14981         * config/ia64/aix.h: Likewise.
14982         * config/ia64/ia64-protos.h: Likewise.
14983         * config/ia64/ia64.c: Likewise.
14984         * config/ia64/ia64.h: Likewise.
14985         * config/ia64/ia64intrin.h: Likewise.
14986         * config/ia64/linux.h: Likewise.
14987         * config/ia64/unwind-aix.c: Likewise.
14988         * config/ia64/unwind-ia64.c: Likewise.
14989
14990 2002-01-20  Kazu Hirata  <kazu@hxi.com>
14991
14992         * config/h8300/h8300.c: Revise comments about shift code.
14993
14994 2002-01-20  Kazu Hirata  <kazu@hxi.com>
14995
14996         * config/h8300/h8300.c (function_arg): Update a comment.
14997
14998 2002-01-20  Kazu Hirata  <kazu@hxi.com>
14999
15000         * config/h8300/h8300.md: Update the comments at the beginning
15001         of the file.
15002
15003 2002-01-20  Kazu Hirata  <kazu@hxi.com>
15004
15005         * config/i370/i370.c: Fix comment formatting.
15006         * config/i370/i370.h: Likewise.
15007         * config/i370/i370.md: Likewise.
15008         * config/i370/linux.h: Likewise.
15009
15010 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15011
15012         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
15013
15014         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
15015         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
15016         in incomplete case.
15017
15018 2002-01-20  Graham Stott  <grahams@redhat.com>
15019
15020         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
15021
15022 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15023
15024         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
15025
15026 2002-01-19  Tom Rix  <trix@redhat.com>
15027
15028         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
15029
15030 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
15031
15032         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
15033
15034         * function.c (assign_stack_local_1): Adjust x_frame_offset with
15035         STARTING_FRAME_PHASE.
15036         (STARTING_FRAME_PHASE): New.
15037         (instantiate_virtual_regs): Check saneness of
15038         STARTING_FRAME_PHASE.
15039
15040         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
15041
15042 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
15043
15044         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
15045
15046 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15047
15048         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
15049         be used for bootstrapping GCC 3.0.
15050
15051 2002-01-18  Kazu Hirata  <kazu@hxi.com>
15052
15053         * config/h8300/h8300.md: Fix an insn length.
15054
15055 2002-01-18  Kazu Hirata  <kazu@hxi.com>
15056
15057         * bitmap.h: Fix comment formatting.
15058         * combine.c: Likewise.
15059         * cppfiles.c: Likewise.
15060         * c-pragma.h: Likewise.
15061         * c-typeck.c: Likewise.
15062         * df.c: Likewise.
15063         * dwarf2out.c: Likewise.
15064         * function.c: Likewise.
15065         * gcc.c: Likewise.
15066         * genattrtab.c: Likewise.
15067         * gthr-win32.h: Likewise.
15068         * haifa-sched.c: Likewise.
15069         * predict.c: Likewise.
15070         * rtlanal.c: Likewise.
15071         * rtl.h: Likewise.
15072         * unwind-dw2-fde.h: Likewise.
15073         * unwind-pe.h: Likewise.
15074         * vmsdbgout.c: Likewise.
15075
15076 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15077
15078         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
15079         if type_required and passed decl.
15080
15081 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
15082
15083         * config.gcc (cpu_type): Include altivec.h in powerpc
15084         extra_headers.
15085         Same for darwin.
15086
15087         * config/rs6000/altivec.h: New.
15088
15089 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
15090
15091         * doc/install.texi (*-ibm-aix*): Update assembler and exception
15092         handling information.
15093         * doc/trouble.texi (Interoperation): Add libstdc++ information
15094         for AIX.
15095         (Misunderstandings): Add template instantiation and static template
15096         member information for AIX.
15097
15098 2002-01-17  Jason Merrill  <jason@redhat.com>
15099
15100         * dbxout.c (dbxout_type): Support const and volatile.
15101
15102         * except.c (add_partial_entry): Remove backwards compatibility code.
15103         (end_protect_partials): Likewise.
15104
15105 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
15106
15107         * config/ia64/ia64.md (prologue_use): New.
15108         * config/ia64/ia64.c (ia64_expand_prologue): Use
15109         gen_prologue_use instead of gen_rtx_USE.
15110         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
15111         as CODE_FOR_pred_rel_mutex.
15112         (ia64_sched_reorder2): Likewise.
15113
15114 2002-01-16  Eric Christopher  <echristo@redhat.com>
15115
15116         * config/mips/r3900.h: Reformat.
15117         (SUBTARGET_CPP_SIZE_SPEC): Remove.
15118         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
15119         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
15120         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
15121         * config/mips/t-elf: Remove mips3 multilib.
15122
15123 2002-01-16  H.J. Lu <hjl@gnu.org>
15124
15125         * config/mips/linux.h: Include "mips/abi64.h".
15126
15127 2002-01-16  H.J. Lu <hjl@gnu.org>
15128
15129         * config/mips/t-linux: New.
15130
15131         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
15132
15133         * config/mips/linux.h: Don't include "gofast.h".
15134         (INIT_SUBTARGET_OPTABS): Removed.
15135
15136 2002-01-16  Kazu Hirata  <kazu@hxi.com>
15137
15138         * config/h8300/h8300-protos.h: Replace emit_a_shift with
15139         output_a_shift.
15140         * config/h8300/h8300.c: Likewise.
15141         * config/h8300/h8300.md: Likewise.
15142
15143 2002-01-16  Kazu Hirata  <kazu@hxi.com>
15144
15145         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
15146         spaces after an opcode name.
15147         (pushqi1_h8300hs): Likewise.
15148         (pushhi1_h8300hs): Likewise.
15149
15150 2002-01-16  Kazu Hirata  <kazu@hxi.com>
15151
15152         * doc/extend.texi: Replace "option" with "attribute"
15153         appropriately.
15154
15155 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
15156
15157         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
15158         (and:DI () (const_int -8)).
15159         (split_small_symbolic_mem_operand): Split
15160         (mem (and:DI () (const_int -8)).
15161
15162 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
15163
15164         PR target/5309:
15165         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
15166         same way as TYPE_IMUL.
15167         (ultrasparc_sched_reorder): Likewise.
15168         * config/sparc/sparc.md (type): Add comment to update
15169         ultrasparc_sched_reorder when making changes.
15170
15171 2002-01-16  Kazu Hirata  <kazu@hxi.com>
15172
15173         * doc/invoke.texi: Change the dump file name of block
15174         reordering pass from 28.bbro to 29.bbro.
15175         Mention -dk option.
15176
15177 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
15178
15179         * i386.md (minsf splitter): Fix pasto.
15180
15181 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
15182
15183         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
15184         to frame pointer initialisation instruction.
15185         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
15186         initialisation instruction.
15187         (soft_df_operand): Do not accept the IP register.
15188         (nonimmediate_soft_df_operand): Do not accept the IP register.
15189
15190 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
15191
15192         PR target/5357:
15193         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
15194         MASK_V8 being both set.
15195
15196 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
15197
15198         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
15199         insn for GOT register; add REG_MAYBE_DEAD notes instead.
15200         config/s390/s390.md (call, call_value): Add GOT register to
15201         CALL_INSN_FUNCTION_USAGE where needed.
15202         (call_exp, call_value_exp): New.
15203
15204 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
15205
15206         * config/arm/arm.c: General formatting tidy up.
15207
15208 2002-01-16  Graham Stott  <grahams@redhat.com>
15209
15210         * calls.c (try_to_integrate): Use "(size_t)" intermediate
15211         cast and when casting an integer literal to "rtx" pointer.
15212         (expand_call): Likewise.
15213         * flow.c (try_pre_increment): Likewise.
15214         (find_use_as_address): Likewise.
15215         * integrate.c (expand_iline_function): Likewise.
15216         * regmove.c (try_auto_increment): Likewise.
15217
15218 2002-01-16  Graham Stott  <grahams@redhat.com>
15219
15220         * sched-rgn.c (passed): Use sbitmap_free.
15221         (header): Likewise.
15222         (inner): Likewise.
15223         (in_queue): Likewise.
15224         (in_stack): Likewise.
15225
15226 2002-01-15  Eric Christopher  <echristo@redhat.com>
15227
15228         * flow.c (propagate_one_insn): Change to use fatal_insn.
15229
15230 2002-01-15  Kazu Hirata  <kazu@hxi.com>
15231
15232         * expmed.c (extract_fixed_bit_field): Remove unused code.
15233         * system.h: Poison SLOW_ZERO_EXTEND.
15234         * doc/tm.texi: Remove.
15235         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
15236         * config/arm/arm.h: Likewise.
15237         * config/avr/avr.h: Likewise.
15238         * config/clipper/clipper.h: Likewise.
15239         * config/convex/convex.h: Likewise.
15240         * config/d30v/d30v.h: Likewise.
15241         * config/dsp16xx/dsp16xx.h: Likewise.
15242         * config/elxsi/elxsi.h: Likewise.
15243         * config/fr30/fr30.h: Likewise.
15244         * config/h8300/h8300.h: Likewise.
15245         * config/i370/i370.h: Likewise.
15246         * config/i386/i386.h: Likewise.
15247         * config/m68k/m68k.h: Likewise.
15248         * config/mips/mips.h: Likewise.
15249         * config/ns32k/ns32k.h: Likewise.
15250         * config/pdp11/pdp11.h: Likewise.
15251         * config/pj/pj.h: Likewise.
15252         * config/s390/s390.h: Likewise.
15253         * config/sh/sh.h: Likewise.
15254         * config/stormy16/stormy16.h: Likewise.
15255         * config/v850/v850.h: Likewise.
15256         * config/vax/vax.h: Likewise.
15257         * config/we32k/we32k.h: Likewise.
15258
15259 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
15260
15261         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
15262         (altivec_lvsl): Change constraint to b.
15263         (altivec_lvsr): Same.
15264         (altivec_lvebx): Same.
15265         (altivec_lvehx): Same.
15266         (altivec_lvewx): Same.
15267         (altivec_lvxl): Same.
15268         (altivec_lvx): Same.
15269         (altivec_stvx): Add parallel.
15270         (altivec_stvxl): Same.
15271         (altivec_stvehx): Same.
15272         (altivec_stvebx): Same.
15273         (altivec_stvebx): Same.
15274
15275 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
15276
15277         * config.gcc: Change altivec.h to altivec-defs.h.
15278
15279         * config/rs6000/altivec.h: Delete.
15280
15281         * config/rs6000/altivec-defs.h: Add.
15282
15283 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15284
15285         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
15286         and UMOD modes.
15287
15288         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
15289         less than or equal to eight bytes.
15290
15291         * vax.md (andsi3): Remove constraints and change SET destination
15292         operand type to nonimmediate_operand.
15293         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
15294         when it is a CONST_INT.
15295
15296 2002-01-15  Jason Merrill  <jason@redhat.com>
15297
15298         * c-common.def (FILE_STMT): New code.
15299         * c-common.c (statement_code_p): It's a statement.
15300         * c-common.h (stmt_tree_s): Add x_last_filename.
15301         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
15302         (last_expr_filename): New macro.
15303         * c-semantics.c (begin_stmt_tree): Initialize it.
15304         (add_stmt): If the filename changed, also insert a
15305         FILE_STMT.
15306         (expand_stmt): Handle seeing one.
15307
15308 2002-01-15  Eric Christopher  <echristo@redhat.com>
15309
15310         * flow.c (propagate_one_insn): Add error message and print out
15311         insn for debugging.
15312
15313 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
15314
15315         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
15316         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
15317         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
15318         TRAMPOLINE_ALIGNMENT.
15319         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
15320         to be in bits.
15321         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
15322         PCC_BITFIELD_TYPE_MATTERS.
15323         * config/interix.h (STDC_VALUE): Remove.  Use
15324         STDC_0_IN_SYSTEM_HEADERS.
15325         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
15326         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
15327         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
15328
15329 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15330
15331         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
15332         not work on this platform currently.
15333
15334 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
15335
15336         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
15337         readonly_warning in _().
15338
15339 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
15340
15341         * gcc.c (delete_if_ordinary): Backout previous change.
15342
15343 2002-01-15  Kazu Hirata  <kazu@hxi.com>
15344
15345         * config/h8300/h8300.c (print_operand): Remove support for
15346         unused operand characters.
15347
15348         * read-rtl.c: Fix formatting.
15349         * real.c: Likewise.
15350         * recog.c: Likewise.
15351         * regclass.c: Likewise.
15352         * regmove.c: Likewise.
15353         * reg-stack.c: Likewise.
15354         * reload1.c: Likewise.
15355         * rtlanal.c: Likewise.
15356
15357 2002-01-15  Kazu Hirata  <kazu@hxi.com>
15358
15359         * config/i386/i386.c: Fix formatting.
15360
15361 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
15362
15363         * c-typeck.c (process_init_element): Don't save_expr
15364         COMPOUND_LITERAL_EXPR if just its initializer will be used.
15365
15366 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
15367
15368         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
15369         emit optional traceback table if optimize_size or TARGET_ELF.
15370         * config/rs6000/rs6000.md (prefetch): New.
15371
15372 2002-01-15  Andreas Jaeger  <aj@suse.de>
15373
15374         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
15375
15376 2002-01-15  Kazu Hirata  <kazu@hxi.com>
15377
15378         * mips-tfile.c: Fix formatting.
15379
15380 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
15381
15382         * unroll.c (final_reg_note_copy): Fix previous commit.
15383
15384 2002-01-14  Kazu Hirata  <kazu@hxi.com>
15385
15386         * config/h8300/h8300-protos.h: Remove the prototype for
15387         eq_operator.
15388         * config/h8300/h8300.c (eq_operator): Remove.
15389
15390 2002-01-14  Richard Henderson  <rth@redhat.com>
15391
15392         * config/i386/i386.md (prefetch): Tidy.
15393         (prefetch_3dnow): Fix locality operand.
15394
15395 2002-01-14  Richard Henderson  <rth@redhat.com>
15396
15397         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
15398         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
15399
15400 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
15401
15402         * reload1.c (reload_combine): Pass reg_sum replacement through
15403         copy_rtx in loop performing multiple changes.
15404
15405 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
15406
15407         * except.c (remove_unreachable_regions): New.
15408         (free_eh_status): Clear exception_handler_labels.
15409         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
15410         (find_exception_handler_labels): Don't add the same label more than
15411         once.
15412         (remove_exception_handler_label): Don't die if
15413         find_exception_handler_labels hasn't been called for the current
15414         function yet.
15415
15416 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
15417
15418         * toplev.c (rest_of_compilation): Rebuild jump labels after
15419         gcse.
15420
15421 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
15422
15423         * doc/extend.texi: Move documentation of X86 built-in functions
15424         here.
15425         * doc/invoke.texi: From here.
15426         * doc/sourcebuild.texi: Document location of documentation for
15427         machine built-in functions.
15428
15429 2002-01-13  Christopher Faylor  <cgf@redhat.com>
15430
15431         * cppfiles.c (TEST_THRESHOLD): New macro.
15432         (SHOULD_MMAP): Ditto.
15433         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
15434         be used.
15435
15436 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
15437
15438         * unroll.c (final_reg_note_copy): Properly handle
15439         REG_LABEL
15440         (unroll_loops): Fix LOOP_CONDITION heuristics.
15441
15442 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
15443
15444         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
15445         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
15446
15447 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
15448
15449         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
15450         threaded loop.
15451
15452 2002-01-14  Tom Rix  <trix@redhat.com>
15453
15454         * config/rs6000/rs6000.md: Fix typo with sradi.
15455
15456 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
15457
15458         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
15459         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
15460         (clrstrdi, clrstrsi): Adapt callers.
15461
15462         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
15463
15464         (movti splitter): Never use register 0 as base register.
15465
15466 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
15467
15468         * combine.c (simplify_shift_const): Always generate new rtx
15469         for shift expression instead of reusing given expression.
15470
15471 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15472
15473         * config/alpha/alpha.c (alpha_expand_mov): Don't call
15474         alpha_legitimize_address unless mode is Pmode.
15475
15476 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
15477
15478         * doc/md.texi (Modifiers): Document the '*' constraint for the
15479         user.
15480
15481         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
15482         * doc/extend.texi (Function Attributes): 'interrupt' is valid
15483         for xstormy16 too.
15484
15485 2002-01-13  Richard Henderson  <rth@redhat.com>
15486
15487         * reload.c (find_reloads): Use a hard reg destination as reload reg
15488         for an input reload of the source.
15489
15490 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
15491
15492         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
15493         more generic.
15494
15495 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
15496
15497         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
15498         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
15499
15500         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
15501
15502 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15503
15504         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
15505
15506 2002-01-12  Tom Rix  <trix@redhat.com>
15507
15508         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
15509         TARGET_POWERPC64.
15510
15511 2002-01-12  Richard Henderson  <rth@redhat.com>
15512
15513         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
15514
15515         * doc/invoke.texi: Update Alpha options.
15516
15517         * doc/invoke.texi: Update i386 built-in function lists.
15518
15519 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
15520
15521         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
15522         referencing outside.
15523
15524 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15525
15526         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
15527         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
15528         offsets, and change line folding.
15529         * optabs.c (expand_binop): Remove warnings.
15530         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
15531
15532 2002-01-12  Graham Stott <grahams@redhat.com>
15533
15534         * attribs.c (handle_deprecated_attribute): constify WHAT.
15535         * diagnostic.c (warn_deprecated_use): Add braces, fixes
15536         dangling else warning and constify WHAT.
15537         * except.h (struct function, struct inline_remap): Move
15538         struct tag forward defs before all prototypes.
15539         (duplicate_eh_regions): Whitespace.
15540
15541 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
15542
15543         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
15544         MODE_BASE_REG_CLASS.
15545         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
15546
15547 2002-01-12  Richard Henderson  <rth@redhat.com>
15548
15549         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
15550         (ix86_expand_vector_move): New.
15551         (bdesc_2arg): Remove andps, andnps, orps, xorps.
15552         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
15553         Remove old prefetch builtins.  Special case the logicals removed above.
15554         (ix86_expand_builtin): Likewise.
15555         (safe_vector_operand): Use V4SFmode, not TImode.
15556         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
15557         (ix86_expand_timode_binop_builtin): New.
15558         * config/i386/i386-protos.h: Update.
15559         * config/i386/i386.h (enum ix86_builtins): Update.
15560         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
15561         Use ix86_expand_vector_move in vector move expanders.
15562         (movti_internal, movti_rex64): Add xorps alternative.
15563         (sse_clrv4sf): Rename and adjust from sse_clrti.
15564         (prefetch): Don't work so hard.
15565         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
15566         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
15567         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
15568
15569 2002-01-11  Richard Henderson  <rth@redhat.com>
15570
15571         * config/i386/mmintrin.h: New file.
15572         * config/i386/xmmintrin.h: New file.
15573         * config.gcc (i?86-*-*): Add extra_headers.
15574         * simplify-rtx.c (simplify_unary_operation): Handle saturating
15575         truncation codes.
15576         (simplify_binary_operation): Handle saturating arithmetic codes.
15577         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
15578         not the lowpart subreg.
15579         (ix86_expand_builtin): Return a TImode dummy register instead of 0
15580         on error.
15581         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
15582
15583 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15584
15585         * conflict.c (conflict_graph_compute): Free regsets when finished.
15586         * ssa.c (compute_coalesced_reg_partition): Likewise.
15587
15588 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15589
15590         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
15591         every where we allocate a register.
15592
15593 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15594
15595         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
15596         * lcm.c (compute_earliest, compute_farthest): Likewise.
15597
15598 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
15599
15600         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
15601
15602 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
15603
15604         * doc/rtl.texi (Insns): Fix 2 typos.
15605
15606 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
15607
15608         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
15609         options.  Use @table @gcctabopt for MMIX options.  Add index
15610         entries for MMIX options.  Start new paragraph with first
15611         heading of the machine-dependent options.
15612
15613 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
15614
15615         PR other/5299
15616         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
15617         * combine.c (force_to_mode): Same.
15618         * reload1.c (clear_reload_reg_in_use): Same.
15619
15620 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
15621
15622         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
15623         and 'subtargets'.
15624
15625 2002-01-11  Andreas Jaeger  <aj@suse.de>,
15626             Brad Lucier <lucier@math.purdue.edu>
15627
15628         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
15629         mcpu.
15630
15631 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
15632
15633         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
15634         Protect with IN_LIBGCC.
15635         (LINK_EH_SPEC): Add required trailing space.
15636
15637 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
15638
15639         * c-tree.h: Move function declarations so that they are listed
15640         under the filename which contains them.
15641         (check_identifier, finish_decl_top_level,
15642         lookup_name_current_level_global, shadow_record_fields): Remove.
15643
15644 2002-01-11  Andreas Jaeger  <aj@suse.de>
15645
15646         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
15647         march.
15648
15649 2002-01-10  Richard Henderson  <rth@redhat.com>
15650
15651         * config/alpha/alpha.c (print_operand): Add 'J'.
15652         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
15653         new operand with the sequence number for the lituse.  When splitting
15654         the insns, use gen_movdi_er_high_g and generate a sequence number.
15655         (gen_movdi_er_high_g): Print the sequence number if non-zero.
15656
15657 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
15658
15659         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
15660         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
15661         stvxl.
15662         (altivec_expand_builtin): Same.
15663         (altivec_expand_stv_builtin): New.
15664
15665         * config/rs6000/rs6000.h (rs6000_builtins): Same.
15666
15667         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
15668         ("altivec_lvehx"): New.
15669         ("altivec_lvewx"): New.
15670         ("altivec_lvxl"): New.
15671         ("altivec_lvx"): New.
15672         ("altivec_stvx"): New.
15673         ("altivec_stvebx"): New.
15674         ("altivec_stvehx"): New.
15675         ("altivec_stvewx"): New.
15676         ("altivec_stvxl"): New.
15677
15678 2002-01-10  Richard Henderson  <rth@redhat.com>
15679
15680         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
15681         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
15682         care not to delete instructions twice.
15683
15684 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
15685
15686         * toplev.c: Don't declare environ (it's not used anywhere).
15687         * configure.in: Don't check for declaration of environ.
15688         * config/i386/xm-mingw32.h: Don't #define environ.
15689         * config.in, configure: Regenerate.
15690
15691 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
15692
15693         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
15694         * configure: Regenerate.
15695
15696         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
15697         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
15698         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
15699         alpha/xm-vms.h.
15700         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
15701         LIMITS_H_TEST here, not in m68k/x-next.
15702         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
15703         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
15704
15705         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
15706         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
15707         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
15708
15709         * config/i386/x-djgpp: Renamed i386/t-djgpp.
15710         * config/m88k/x-dolph: Renamed m88k/t-dolph.
15711         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
15712         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
15713         replacement of quadlib.asm with quadlib.c.
15714
15715         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
15716         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
15717         config/rs6000/xm-beos.h: Delete file.
15718
15719         * config.gcc: Update to match above changes.
15720
15721 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15722
15723         * config/h8300/h8300.h: Fix comment typos.
15724         * config/h8300/h8300.md: Likewise.
15725         * config/h8300/lib1funcs.asm: Likewise.
15726
15727 2002-01-10  Dale Johannesen  <dalej@apple.com>
15728
15729         PR optimization/5269
15730         * unroll.c (precondition_loop_p): Make *increment be the correct
15731         sign when n_iterations known, to avoid confusing caller.
15732
15733 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15734
15735         * doc/extend.texi (deprecated): Fix a typo.
15736
15737 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
15738
15739         * basic-block.h (update_br_prob_note): Declare.
15740         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
15741         (try_forward_edges): Care negative frequencies and update note.
15742         (outgoing_edges_match): Tweek conditional merging heuristics.
15743         (try_crossjump_to_edge): use update_br_prob_note.
15744         * cfglayout.c (fixup_reorder_chain): Likewise.
15745         * cfrtl.c (update_br_prob_note): New.
15746         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
15747
15748         * i386.c (ix86_decompose_address): Return -1 if address contains
15749         shift.
15750         (legitimate_address_p): Require ix86_decompose_address to return 1.
15751
15752         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
15753         (cprop_insn): Likewise.
15754
15755 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15756
15757         * toplev.c: Fix formatting.
15758         * tree.c: Likewise.
15759         * tree-dump.c: Likewise.
15760         * unroll.c: Likewise.
15761         * unwind-dw2.c: Likewise.
15762         * unwind-dw2-fde.c: Likewise.
15763         * unwind-dw2-fde-glibc.c: Likewise.
15764         * unwind-sjlj.c: Likewise.
15765
15766 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
15767
15768         * doc/invoke.texi: Document PDP-11 options.
15769
15770 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15771
15772         * config/h8300/h8300.h: Fix formatting.
15773
15774 2002-01-10  Ira Ruben   <ira@apple.com>
15775
15776         Add __attribute__ ((deprecated)).
15777         * extend.texi: Document __attribute__ ((deprecated)).
15778         * invoke.texi: Document -Wno-deprecated-declarations.
15779         * testsuite/g++.dg/other/deprecated.C: New C++ test.
15780         * testsuite/gcc.dg/deprecated.c: New C test.
15781         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
15782         (c_common_attribute_table): Add "deprecated" entry.
15783         (handle_deprecated_attribute): New function.
15784         * c-decl.c (deprecated_states): New enum.
15785         deprecated_state: State of "deprecated" handling.
15786         (start_decl): Set deprecated_state based on attributes.
15787         (grokdeclarator): Test for deprecated uses, propagate attribute.
15788         * c-typeck.c (build_component_ref): Test for deprecated fields.
15789         (build_external_ref): Test for deprecated primaries.
15790         * diagnostic.c (warn_deprecated_use) New function to issue
15791         warnings about __attribute__ ((depricated)) references.
15792         * flags.h (warn_deprecated_decl): Extern declared for
15793         -W[no-]deprecated-declarations option.
15794         * print-tree.c (print_node): Show deprecated flag status.
15795         * toplev.c (warn_deprecated_decl): Defined.
15796         (W_options): Added "deprecated-declaration".
15797         * toplev.h (warn_deprecated_use): Extern declared.
15798         * tree.h (struct tree_common): Define deprecated_flag.
15799         (TREE_DEPRECATED): New macro to access flag.
15800         * cp/call.c (build_call): Test for deprecated calls.
15801         * cp/class.c (add_implicitly_declared_members): Set global
15802         flag to tell grokdeclarator to not issue deprecated warnings.
15803         * cp/cp-tree.h: Add extern for adding_implicit_members.
15804         * cp/decl.c (deprecated_states): New enum.
15805         (start_decl): Set deprecated_state based on attributes.
15806         (grokdeclarator): Test for deprecated uses, propagate attribute.
15807         * cp/lex.c (do_identifier): Test for deprecated primaries.
15808         * cp/typeck.c (build_component_ref): Test for deprecated fields.
15809
15810 2002-01-10  Ira Ruben   <ira@apple.com>
15811
15812         Fix to assign attributes to inline member functions.
15813         * cp/decl.c (start_method): Handle attrlist.
15814
15815 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15816
15817         * combine.c (expand_field_assignment): Use subreg_lsb().
15818
15819 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
15820
15821         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
15822         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
15823         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
15824         Recurse for any operand of AND as long as constant is non-zero.
15825
15826 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15827
15828         * config/h8300/h8300.md: Remove constraints from expanders.
15829
15830 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15831
15832         * varasm.c: Fix formatting.
15833         * varray.c: Likewise.
15834         * vmsdbgout.c: Likewise.
15835         * xcoffout.c: Likewise.
15836
15837 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
15838
15839         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
15840         update edge probabilities to match.
15841
15842 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
15843
15844         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
15845         dependencies.
15846         * doc/languages.texi, doc/sourcebuild.texi: New files.
15847         * doc/configfiles.texi: Make a subsubsection.  Update.
15848         * doc/configterms.texi: Add @node.  Remove warning that this isn't
15849         instructions for building GCC.
15850         * doc/makefile.texi: Make a subsection.
15851         * doc/gccint.texi: Update.
15852
15853 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
15854
15855         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
15856
15857 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
15858
15859         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
15860
15861 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
15862
15863         * optabs.c (expand_fix): Look for wider integer modes first.
15864
15865         * i386.md (mov?f): Avoid the fake const double trick for medium
15866         memory model.
15867         (min?f*/max?f*): Prohibit memory operands for i387 variant.
15868         (fop_df_4): Disable for SSE compilation.
15869
15870 2002-01-10  Graham Stott  <grahams@redhat.com>
15871
15872         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
15873         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
15874
15875 2002-01-10  Richard Henderson  <rth@redhat.com>
15876
15877         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
15878
15879 2002-01-10  Richard Henderson  <rth@redhat.com>
15880
15881         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
15882         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
15883
15884 2002-01-10  Kazu Hirata  <kazu@hxi.com>
15885
15886         * combine.c (can_combine_p): Fix a comment typo.
15887
15888 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
15889
15890         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
15891         empty list correctly.  Change loop index $t to $f for
15892         consistency with rest of Makefile.
15893
15894 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
15895
15896         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
15897         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
15898
15899         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
15900         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
15901         (altivec_init_builtins): Same.
15902         (altivec_expand_unop_builtin): Return NULL_RTX on error.
15903         (altivec_expand_binop_builtin): Same.
15904         (altivec_expand_ternop_builtin): Same.
15905         (bdesc_dst): New.
15906
15907         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
15908         ("altivec_vctuxs"): Fix typo.
15909         ("altivec_vnmsubfp"): Same.
15910         ("altivec_dssall"): New.
15911         ("altivec_mfvscr"): New.
15912         ("altivec_dss"): New.
15913         ("altivec_lvsl"): New.
15914         ("altivec_lvsr"): New.
15915         ("altivec_dstt"): New.
15916         ("altivec_dstst"): New.
15917         ("altivec_dststt"): New.
15918         ("altivec_dst"): New.
15919
15920         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
15921         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
15922
15923 2002-01-09  Richard Henderson  <rth@redhat.com>
15924
15925         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
15926
15927 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
15928
15929         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
15930         function.
15931         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
15932         prototype.
15933         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
15934
15935 2002-01-09  Kazu Hirata  <kazu@hxi.com>
15936
15937         * read-rtl.c: Fix formatting.
15938         * real.c: Likewise.
15939         * regclass.c: Likewise.
15940         * regrename.c: Likewise.
15941         * reg-stack.c: Likewise.
15942         * reload1.c: Likewise.
15943         * reload.c: Likewise.
15944         * rtl.c: Likewise.
15945
15946 2002-01-09  Kazu Hirata  <kazu@hxi.com>
15947
15948         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
15949         to extract items in the expr_list chain.
15950
15951 2002-01-09  Richard Henderson  <rth@redhat.com>
15952
15953         * config/vax/vax.c (vax_rtx_cost): Never abort.
15954
15955         * config/vax/vax.h (REAL_ARITHMETIC): Define.
15956
15957 2002-01-09  Jan Hubicka  <jh@suse.cz>
15958
15959         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
15960
15961 2002-01-09  Richard Henderson  <rth@redhat.com>
15962
15963         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
15964         Unify code from various alternatives.
15965
15966 2002-01-09  Richard Henderson  <rth@redhat.com>
15967
15968         * regrename.c (copy_value): Ignore the copy if the source register
15969         is present in the value chain with a narrower mode.
15970
15971 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
15972
15973         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
15974         for the c4x target. Also improve layout.
15975
15976 2002-01-09  Richard Henderson  <rth@redhat.com>
15977
15978         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
15979         * config/m32r/m32r.md (and ior xor splitters): Swap operands
15980         to match insn patterns.
15981
15982 2002-01-09  Richard Henderson  <rth@redhat.com>
15983
15984         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
15985         (copyprop_hardreg_forward_1): Likewise.
15986
15987 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
15988
15989         * pa.md (decrement_and_branch_until_zero): Change predicate for
15990         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
15991
15992 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
15993
15994         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
15995         gets undefined. For Darwin.
15996
15997 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15998
15999         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
16000
16001 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16002
16003         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
16004
16005 2002-01-08  Richard Henderson  <rth@redhat.com>
16006
16007         * regrename.c (copy_value): Ignore overlapping copies.
16008
16009 2002-01-08  Richard Henderson  <rth@redhat.com>
16010
16011         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
16012         as needed to avoid shared structure.
16013
16014 2002-01-08  Kazu Hirata  <kazu@hxi.com>
16015
16016         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
16017         H8/300H and H8/S.
16018
16019 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
16020
16021         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
16022         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
16023         documentation of obsolete macros.
16024         * system.h: Poison these macros.
16025         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
16026         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
16027         config/c4x/c4x.h, config/clipper/clipper.h,
16028         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
16029         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
16030         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
16031         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
16032         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
16033         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
16034         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
16035         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
16036         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
16037         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
16038         config/sparc/sparc.h, config/stormy16/stormy16.h,
16039         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
16040         definitions and commented out definitions of obsolete macros.
16041         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
16042         of MAX_INT_TYPE_SIZE.
16043
16044 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
16045
16046         * config/s390/s390.c (s390_preferred_reload_class): Never
16047         return ADDR_REGS if it isn't a subset of the given class.
16048         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
16049         FP_REGS, but all superclasses as well.
16050
16051         * config/s390/s390.c (s390_function_profiler): Fix thinko.
16052
16053         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
16054         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
16055         must not be a const_int.
16056
16057 2002-01-08  Richard Henderson  <rth@redhat.com>
16058
16059         * Makefile.in (toplev.o): Depend on options.h.
16060         (gcc.o): Depend on specs.h.
16061
16062 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
16063
16064         * expr.c (store_expr): Convert VOIDmode constants back to target's
16065         mode.
16066
16067 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
16068
16069         * doc/invoke.texi: Markup gcc as @command.  Refer to
16070         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
16071         of http://gcc.gnu.org/thanks.html.
16072
16073 2002-01-08  Dale Johannesen  <dalej@apple.com>
16074
16075         * config/rs6000/rs6000.md: Add missing int register
16076         target case to movdf_low.
16077
16078 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
16079
16080         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
16081         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
16082         (cppinit.o): Depend on except.h.
16083         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
16084         s-specs): New rules.
16085
16086         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
16087         Don't create specs.h/options.h/gencheck.h here.  Remove
16088         unnecessary variable settings from last argument of AC_OUTPUT.
16089         * config.in, configure: Regenerate.
16090         * intl.c: Hardcode package name as "gcc".
16091
16092         * cppinit.c: Include except.h.
16093         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
16094         appropriate.
16095         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
16096         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
16097         (!)USING_SJLJ_EXCEPTIONS.
16098         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
16099
16100 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
16101
16102         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
16103         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
16104         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
16105         documentation of obsolete macros.
16106         * system.h: Poison these macros.
16107         * config/d30v/d30v.h, config/ns32k/encore.h,
16108         config/stormy16/stormy16.h: Remove definitions and commented out
16109         definitions of obsolete macros.
16110
16111 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
16112
16113         * objc/objc-act.c (handle_class_ref): Mark the declaration of
16114         %sobjc_class_ref_%s as used - to prevent unwanted compiler
16115         warnings.
16116
16117 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
16118
16119         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
16120         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
16121         to insn adjusting stack/frame pointer.
16122         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
16123         accept operands that cause the insn to be non-splittable.
16124
16125 2002-01-08  Graham Stott  <grahams@redhat.com>
16126
16127         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
16128         (C_TYPE_FIELDS_VOLATILE): Likewise.
16129         (C_TYPE_BEING_DEFINED): Likewise.
16130         (C_IS_RESERVED_WORD): Likewise.
16131         (C_TYPE_VARIABLE_SIZE): Likewise.
16132         (C_DECL_VARIABLE_SIZE): Likewise.
16133         (C_MISSING_PROTOTYPE_WARNED): Likewise.
16134         (C_SET_EXP_ORIGINAL_CODE): Likewise.
16135         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
16136         parenthesis.
16137         (C_DECL_ANTICIPATED): Likewise.
16138         (c_build_type_variant): Add parenthesis.
16139
16140 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
16141
16142         * gcc.c (option_map): Remove --version.
16143         (process_command): Handle -fversion following the GNU Coding
16144         Standards.  Partially addresses PR other/704.
16145
16146 2002-01-08  Graham Stott  <grahams@redhat.com>
16147
16148         * combine.c (combine_instructions): Fix typo.
16149
16150 2002-01-08  Graham Stott  <grahams@redhat.com>
16151
16152         * debug.h: Use "tree" and "rtx" throughout.
16153
16154         * debug.c: Likewise.
16155
16156 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
16157
16158         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
16159         constant pool, use the pool's version of the symbol instead.
16160
16161 2002-01-07  Richard Henderson  <rth@redhat.com>
16162
16163         * regrename.c (find_oldest_value_reg): Ignore the value chain if
16164         the original register was copied in a mode with a fewer number of
16165         hard registers than the desired mode.
16166         (copyprop_hardreg_forward_1): Likewise.
16167         (debug_value_data): Fix loop test.
16168         * toplev.c (parse_options_and_default_flags): Reenable
16169         -fcprop-registers at -O1.
16170
16171 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
16172
16173         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
16174         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
16175
16176         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
16177         predicates.
16178
16179         * config/rs6000/rs6000.md: Add altivec predicate patterns.
16180
16181 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16182
16183         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
16184         (pa_output_function_prologue): Output local label at the beginning of
16185         the prologue when profiling.
16186         (hppa_profile_hook): Use the local label rather than the function label.
16187         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
16188
16189 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
16190
16191         * config/rs6000/rs6000.c (print_operand): Remove extra space.
16192         (altivec_expand_unop_builtin): Fix thinko.
16193         (altivec_expand_binop_builtin): Same.
16194         (altivec_expand_ternop_builtin): Same.
16195         (altivec_expand_builtin): Same.
16196
16197 2002-01-07  Richard Henderson  <rth@redhat.com>
16198
16199         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
16200
16201 2002-01-07  Jason Merrill  <jason@redhat.com>
16202
16203         * unwind-dw2.c (execute_cfa_program): Use < again.
16204
16205 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
16206
16207         * predict.c (combine_predictions_for_insn): Avoid division by zero.
16208
16209 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
16210
16211         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
16212         Don't allow -1 - x -> ~x simplifications in the first pass.
16213
16214 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
16215
16216         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
16217         arguments.
16218         (altivec_expand_binop_builtin): Same.
16219         (altivec_expand_unop_builtin): Same.
16220         (print_operand): Fix typo.
16221         (bdesc_1arg): Add vupk* variants.
16222
16223         * rs6000.h (rs6000_builtins): Add vupk* enums.
16224
16225         * rs6000.md: Add altivec_vupk* variants.
16226
16227 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
16228
16229         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
16230         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
16231         and last update dates.
16232
16233 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
16234
16235         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
16236
16237 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
16238
16239         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
16240         * config/avr/avr.h (CPP_SPEC): Likewise.
16241         (LINK_SPEC): Likewise.
16242         (CRT_BINUTILS_SPECS): Likewise.
16243         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
16244         * doc/invoke.texi (AVR Options): Document them.
16245
16246 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
16247
16248         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
16249         LABEL_NUSES.
16250
16251 2002-01-07  Graham Stott  <grahams@redhat.com>
16252
16253         * config/i386/i386.h: Update copyright date.
16254         (HALF_PIC_PTR): Add parenthesis.
16255         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
16256         (CONSTANT_ALIGNMENT): Add parenthesis.
16257         (DATA_ALIGNMENT): Likewise.
16258         (LOCAL_ALIGNMENT): Likewise.
16259         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
16260         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
16261         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
16262         (HARD_REGNO_NREGS): Add paranethesis.
16263         (VALID_SSE_REG_MODE): Whitespace.
16264         (VALID_MMX_REG_MODE): Whitespace.
16265         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
16266         (ix86_hard_regno_mode_ok): Add parenthesis.
16267         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
16268         (RETURN_IN_MEMORY): Whitespace.
16269         (N_REG_CLASSES): Add parenthesis.
16270         (INTEGER_CLASS_P): Add parenthesis and wrap.
16271         (FLOAT_CLASS_P): Likewise.
16272         (SSE_CLASS_P): Likewise.
16273         (MMX_CLASS_P): Likewise.
16274         (MAYBE_INTEGER_CLASS_P): Likewise.
16275         (MAYBE_FLOAT_CLASS_P): Likewise.
16276         (MAYBE_SSE_CLASS_P): Likewise.
16277         (MAYBE_MMX_CLASS_P): Likewise.
16278         (Q_CLASS_P): Likewise.
16279         (GENERAL_REGNO_P): Uppercase macro parameter.
16280         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
16281         (FP_REGNO_P): Likewise.
16282         (ANY_FP_REGNO_P): Uppercase macro parameter.
16283         (SSE_REGNO_P): Likewise.
16284         (SSE_REGNO): Likewise.
16285         (SSE_REG_P): Likewise.
16286         (SSE_FLOAT_MODE_P): Likewise.
16287         (MMX_REGNO_P): Likewise.
16288         (MMX_REG_P):Likewise.
16289         (STACK_REG_P): Likewise.
16290         (NON_STACK_REG_P): Likewise.
16291         (STACK_TOP_P): Likewise.
16292         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
16293         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
16294         (SECONDARY_MEMORY_NEEDED): Likewise.
16295         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
16296         (MD_ASM_CLOBBERS): Whitespace and wrap.
16297         (MUST_PASS_IN_STACK): Whitespace and wrap.
16298         (RETURN_POPS_ARGS): Add parenthesis.
16299         (INIT_CUMULATIVE_ARGS): Likewise.
16300         (FUNCTION_ARG): Likewise.
16301         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
16302         (SETUP_INCOMING_VARARGS): Likewise.
16303         (BUILD_VA_LIST_TYPE):  Add parenthesis.
16304         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
16305         parenthsis.
16306         (EXPAND_BUILTIN_VA_ARG): Likewise.
16307         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
16308         (INITIALIZE_TRAMPOLINE): Add parenthesis.
16309         (INITIAL_ELIMINATION_OFFSET): Likewise.
16310         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
16311         (REGNO_OK_FOR_BASE_P): Likewise.
16312         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
16313         (REGNO_OK_FOR_DIREG_P): Likewise.
16314         (REG_OK_FOR_INDEX_P): Whitespace.
16315         (REG_OK_FOR_BASE_P): Whitespace.
16316         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
16317         parenthesis.
16318         (FIND_BASE_TERM): Fix typo.
16319         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
16320         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
16321         (SYMBOLIC_CONST; Whitespace.
16322         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
16323         (ENCODE_SECTION_INFO): Whitespace.
16324         (FINALIZE_PIC): Remove do { ... } while (0).
16325         (PROMOTE_MODE): Wrap in do { ... } while (0).
16326         (CONST_COSTS): Whitespace.
16327         (RTX_COSTS): Add paramethesis, whitespace and wrap.
16328         (REGISTER_MOVE_COST): Add parenthesis.
16329         (MEMORY_MOVE_COST): Likewise.
16330         (EXTRA_CC_MODES): Whitespace.
16331         (SELECT_CC_MODE): Add parenthesis and whitespace.
16332         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
16333         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
16334         (ASM_OUTPUT_LABEL): Add paramethesis.
16335         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
16336         (ASM_OUTPUT_REG_POP): Likewise.
16337         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
16338         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
16339
16340         * config/i386/i386.c: Update copyright.
16341         (CHECK_STACK_LIMIT): Add parenthesis.
16342         (AT_BP): Uppercase macro parameter.
16343         (x86_64_int_parameter_registers): Constify.
16344         (x86_64_int_return_registers): Likewise.
16345         (ix86_compare_op0): Use rtx.
16346         (construct_container): Constify INTREG parameter.
16347         (function_arg): Use rtx.
16348
16349         * diagnostic.h: Update copyright date.
16350         (output_buffer_state): Add parenthesis.
16351         (output_buffer_format_args): Likewise.
16352
16353         * combine.c (combine_instructions): Replace XEXP (links, 0)
16354         with link.
16355
16356 2002-01-06  H.J. Lu <hjl@gnu.org>
16357
16358         * cfgcleanup.c (thread_jump): Fix 2 typos.
16359
16360 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
16361
16362         * config.gcc: Add support for --enable-altivec.
16363
16364 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16365
16366         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
16367
16368 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
16369
16370         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
16371         __objc_class_name_*.
16372
16373 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16374
16375         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
16376
16377 2002-01-06  Richard Henderson  <rth@redhat.com>
16378
16379         * reorg.c (emit_delay_sequence): Remove death notes, not merely
16380         nop them out.  Increment label reference count for REG_LABEL.
16381         (fill_slots_from_thread): Frob label reference count around
16382         delete_related_insns.
16383
16384 2002-01-05  Richard Henderson  <rth@redhat.com>
16385
16386         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
16387         jump threading.
16388
16389 2002-01-05  Richard Henderson  <rth@redhat.com>
16390
16391         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
16392         * integrate.c (output_inline_function): Likewise.
16393         * toplev.c (rest_of_compilation): Do it here instead.  Move call
16394         to remove_unnecessary_notes after emitting abstract instance.
16395         Force an emitted nested function to have its parent emited as well.
16396         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
16397         for null.
16398         (rtl_for_decl_location): Do not look at reload data structures
16399         before reload has run.
16400
16401 2002-01-05  Kazu Hirata  <kazu@hxi.com>
16402
16403         * cse.c: Fix formatting.
16404         * dwarf2asm.c: Likewise.
16405         * dwarf2out.c: Likewise.
16406         * explow.c: Likewise.
16407         * expmed.c: Likewise.
16408         * function.c: Likewise.
16409         * gcov.c: Likewise.
16410         * gencheck.c: Likewise.
16411         * genrecog.c: Likewise.
16412         * ggc-common.c: Likewise.
16413         * ggc-page.c: Likewise.
16414         * global.c: Likewise.
16415
16416 2002-01-05  Kazu Hirata  <kazu@hxi.com>
16417
16418         * combine.c: Fix formatting.
16419
16420 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
16421
16422         PR middle-end/1557
16423         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
16424
16425 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
16426
16427         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
16428         as 1 for __powerpc64__ as well.
16429
16430         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
16431
16432         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
16433         return it.
16434
16435 2002-01-05  Daniel Berlin  <dan@dberlin.org>
16436
16437         * lcm.c: Revert change, due to performance regression it causes on
16438         SPEC because it's slightly more conservative (sigh, I hate
16439         edge-based LCM).
16440
16441 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
16442
16443         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
16444
16445 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
16446
16447         * doc/cppinternals.texi: Update.
16448
16449 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
16450
16451         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
16452         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
16453         negatives.
16454         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
16455         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
16456         kludge for pre-october-14th mmix versions to handle new-found bug
16457         with PUSHJ/PUSHGO and the register stack.
16458         * config/mmix/mmix.h (struct machine_function): Rename member
16459         has_call_value_without_parameters to has_call_without_parameters.
16460         All referers changed.
16461         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
16462         TARGET_MASK_BRANCH_PREDICT): New macros.
16463         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
16464         -mno-reg-stack-fill-bug-workaround.
16465         * config/mmix/mmix.md ("call"): Set struct machine member
16466         has_call_without_parameters.
16467
16468 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
16469
16470         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
16471
16472 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
16473
16474         * cfgcleanup.c: Include tm_p.h
16475         (mark_effect): Fix handling of hard register; fix handling of SET
16476
16477 2002-01-04  Kazu Hirata  <kazu@hxi.com>
16478
16479         * config/h8300/h8300.md (anonymous patterns): Check that
16480         operands are registers before using REGNO on them.
16481
16482 2002-01-03  Roland McGrath  <roland@frob.com>
16483
16484         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
16485
16486 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
16487
16488         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
16489         * c-common.h (genrtl_expr_stmt_value): Likewise.
16490         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
16491         (expand_expr_stmt_value): Add maybe_last argument.
16492         Don't warn about statement with no effect if it is the last statement
16493         in expression statement.
16494         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
16495         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
16496         expand_expr_stmt_value.
16497         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
16498         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
16499         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
16500         as maybe_last to expand_expr_stmt_value.
16501
16502 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
16503
16504         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
16505         be passed in, do not build it.
16506         (c_begin_if_stmt): New function.
16507         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
16508         * c-common.h (c_expand_start_cond): Update prototype.
16509         (c_begin_if_stmt): Prototype new function.
16510         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
16511         * c-parse.in (if_prefix): Use c_begin_if_stmt,
16512         c_begin_while_stmt and c_finish_while_stmt_cond.
16513
16514 2002-01-04  William Cohen  <wcohen@redhat.com>
16515
16516         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
16517         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
16518         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
16519         * config/pa/som.h (ASM_FILE_START): Likewise.
16520
16521 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
16522
16523         * lcm.c: Include df.h.
16524         Add available_transfer_function prototype.
16525         (compute_available): Rework to use iterative dataflow framework.
16526         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
16527         with bb_info in df.h
16528         (available_transfer_function): New function.
16529
16530         * Makefile.in (lcm.o): add df.h to dependencies.
16531
16532 2002-01-04  Richard Henderson  <rth@redhat.com>
16533
16534         * config/alpha/alpha.c (some_operand): Accept HIGH.
16535         (input_operand): Likewise; accept simple references to globals.
16536         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
16537         (alpha_const_double_ok_for_letter_p): Likewise.
16538         (alpha_extra_constraint): Likewise.
16539         (alpha_preferred_reload_class): Likewise.  Do not force
16540         symbolic constants to memory.
16541         (alpha_legitimate_address_p): Accept simple references
16542         to small_symbolic_operand.
16543         (alpha_legitimize_address): New arg scratch.  Be prepared to be
16544         called when no_new_pseudos.  Emit simple symbolic references.
16545         Split integers into low, high, and rest.
16546         (alpha_expand_mov): Use alpha_legitimize_address.
16547         (some_small_symbolic_mem_operand): New.
16548         (split_small_symbolic_mem_operand): New.
16549         * config/alpha/alpha-protos.h: Update.
16550         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
16551         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
16552         (EXTRA_CONSTRAINT): Likewise.
16553         (PREFERRED_RELOAD_CLASS): Likewise.
16554         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
16555         (PREDICATE_CODES): Update.
16556         * config/alpha/alpha.md: New post-reload splitters to convert
16557         simplfied symbolic operands to the form that references $29.
16558         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
16559         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
16560
16561 2002-01-03  Richard Henderson  <rth@redhat.com>
16562
16563         * local-alloc.c (function_invariant_p): Update commentary.
16564
16565 2002-01-04  H.J. Lu <hjl@gnu.org>
16566
16567         * toplev.c (rest_of_compilation): Fix a typo when calling
16568         cleanup_cfg.
16569
16570 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16571
16572         * c-common.c: Fix formatting.
16573         * diagnostic.c: Likewise.
16574         * doloop.c: Likewise.
16575         * dwarf2out.c: Likewise.
16576
16577 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16578
16579         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
16580         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
16581
16582 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
16583
16584         * cpperror.c: Update comments and copyright.
16585         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
16586         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
16587
16588 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
16589
16590         * collect2.c (main): Use strcmp when testing for "-shared".
16591
16592 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
16593
16594         * cppmacro.c: Don't include intl.h.  Update comments.
16595         (new_number_token): Allocate enough buffer for 64-bit unsigned
16596         integers; update prototype.
16597         * cppmain.c: Update comments.
16598
16599 2002-01-03  William Cohen  <wcohen@redhat.com>
16600
16601         * function.h (struct function): Add profile.
16602         (current_function_profile): New.
16603         doc/extend.texi: Update documentation.
16604         * final.c (final_start_function): Use current_function_profile
16605         instead of profile_flag.
16606         (profile_after_prologue): Likewise.
16607         * function.c (expand_function_start): Likewise.
16608         (expand_function_start): Likewise.
16609         * config/alpha/alpha.c (direct_call_operand):
16610         (alpha_does_function_need_gp): Likewise.
16611         (alpha_expand_prologue): Likewise.
16612         * config/arm/arm.c (arm_expand_prologue): Likewise.
16613         thumb_expand_prologue: Likewise.
16614         * config/d30v/d30v.c (d30v_stack_info): Likewise.
16615         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
16616         (fr30_expand_prologue): Likewise.
16617         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
16618         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
16619         * config/i386/i386.h (FINALIZE_PIC): Likewise.
16620         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
16621         * config/i960/i960.c (i960_output_function_prologue): Likewise.
16622         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
16623         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
16624         (m32r_expand_prologue): Likewise.
16625         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
16626         (m88k_expand_prologue): Likewise.
16627         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
16628         * config/mips/mips.c (compute_frame_size): Likewise.
16629         (mips_expand_prologue): Likewise.
16630         (mips_can_use_return_insn): Likewise.
16631         * config/pa/elf.h (ASM_FILE_START): Likewise.
16632         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
16633         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
16634         * config/pa/som.h (ASM_FILE_START): Likewise.
16635         * config/romp/romp.c (romp_using_r14): Likewise.
16636         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
16637         (rs6000_stack_info): Likewise.
16638         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16639         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
16640         * config/v850/v850.c (compute_register_save_size): Likewise.
16641
16642 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
16643
16644         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
16645         gen_lowpart_common fails, use gen_lowpart_SUBREG.
16646
16647 2002-01-03  Turly O'Connor  <turly@apple.com>
16648
16649         * darwin.c (machopic_output_possible_stub_label): Don't generate
16650         stub routines for pseudo-stubs which we've just defined.
16651
16652 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16653
16654         * builtins.c: Fix formatting.
16655         * c-typeck.c: Likewise.
16656         * combine.c: Likewise.
16657         * expr.c: Likewise.
16658         * loop.c: Likewise.
16659
16660 2002-01-03  Andreas Schwab  <schwab@suse.de>
16661
16662         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
16663         and return true if _cpp_push_next_buffer pushed a new include
16664         file.
16665         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
16666         _cpp_pop_file_buffer did not push a new file.
16667         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
16668
16669 2002-01-02  Eric Christopher  <echristo@redhat.com>
16670
16671         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
16672         FIND_REG_INC_NOTE call. Update copyright.
16673         * loop.c (canonicalize_condition): Ditto.
16674         * reorg.c (delete_scheduled_jump): Ditto.
16675
16676 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16677
16678         * gcse.c: Fix formatting.
16679
16680 2002-01-03  Graham Stott  <grahams@redhat.com>
16681
16682         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
16683         forward defs for struct tags rtx_def, union_tree, rtvec_def
16684         also output corresponding typedefs for rtx, tree, and rtvec.
16685
16686         * system.h: Move forward defs for struct tags rtx_def, union_tree,
16687         rtvec_def along with corresponding typedefs for rtx, tree, and
16688         rtvec to config.h, hconfig.h, tconfig.h.
16689
16690 2002-01-03  Graham Stott  <grahams@redhat.com>
16691
16692         * tree.h: Update copyright date.
16693         (IS_EXPR_CODE_CLASS): Add parenthesis.
16694         (TREE_SET_CODE): Add whitespace.
16695         (TREE_CHECK): Add parenthesis.
16696         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
16697         (CST_OR_CONSTRUCTOR_CHECK):
16698         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
16699         (TREE_SYMBOL_REFERENCED): Whitespace.
16700         (INT_CST_LT): Likewise.
16701         (INT_CST_LT_UNSIGNED): Likewise.
16702         (tree_real_cst): Unwrap comment.
16703         (tree_string): Likewise.
16704         (tree_complex): Likewise.
16705         (IDENTIFIER_POINTER): correct cast.
16706         (SAVE_EXPR_CONTEXT): Whitespace.
16707         (EXPR_WFL_FILENAME_NODE): Likewise.
16708         (EXPR_WFL_FILENAME): Remove parenthesis.
16709         (DECL_ORIGIN): Add parenthesis.
16710         (DECL_FROM_INLINE): Use NULL_TREE.
16711         (build_int_2): Whitespace.
16712         (build_type_variant): Add parenthesis.
16713
16714         * gcc/jcf-parse.c: Update copyright date.
16715         (yyparse): Constify resource_filename.
16716
16717 2002-01-03  Graham Stott  <grahams@redhat.com>
16718
16719         * rtl.h: Update copyright date.
16720         (RTL_CHECK1): Wrap long line.
16721         (RTL_CHECK2): Likewise.
16722         (RTL_CHECKC1): Wrap long line and whitespace.
16723         (RTL_CHECKC2): Likewise.
16724         (XWINT): Whitespace.
16725         (XINT): Likewise.
16726         (XSTR): Likewise.
16727         (XEXP): Likewise.
16728         (XVEC): Likewise.
16729         (XMODE): Likewise.
16730         (XBITMAP): Likewise.
16731         (XTREE): Likewise.
16732         (XBBDEF): Likewise.
16733         (XTMPL): Likewise.
16734         (X0WINT): Likewise.
16735         (X0INT):Likewise.
16736         (X0UINT): Likewise.
16737         (X0STR): Likewise.
16738         (X0EXP): Likewise.
16739         (X0VEC): Likewise.
16740         (X0MODE): Likewise.
16741         (X0BITMAP): Likewise.
16742         (X0TREE): Likewise.
16743         (X0BBDEF): Likewise.
16744         (X0ADVFLAGS): Likewise.
16745         (X0CSELIB): Likewise.
16746         (X0MEMATTR): Likewise.
16747         (XCWINT): Likewise.
16748         (XCINT): Likewise.
16749         (XCUINT): Likewise.
16750         (XCSTR): Likewise.
16751         (XCEXP): Likewise.
16752         (XCVEC): Likewise.
16753         (XCMODE): Likewise.
16754         (XCBITMAP): Likewise.
16755         (XCTREE): Likewise.
16756         (XCBBDEF): Likewise.
16757         (XCADVFLAGS): Likewise.
16758         (XCCSELIB): Likewise.
16759         (XC2EXP): Likewise.
16760         (INSN_UID): Likewise.
16761         (PREV_INSN): Likewise.
16762         (PATTERN): Likewise.
16763         (INSN_CODE): Likewise.
16764         (PUT_REG_NOTE_KIND): Likewise.
16765         (CODE_LABEL_NUMBER): Likewise.
16766         (NOTE_SOURCE_FILE): Likewise.
16767         (NOTE_BLOCK): Likewise.
16768         (NOTE_EH_HANDLER): Likewise.
16769         (NOTE_RANGE_INFO): Likewise.
16770         (NOTE_LIVE_INFO): Likewise.
16771         (NOTE_BASIC_BLOCK): Likewise.
16772         (NOTE_EXPECTED_VALUE): Likewise.
16773         (NOTE_LINE_NUMBER): Likewise.
16774         (LABEL_NAME): Likewise.
16775         (LABEL_NUSES): Likewise.
16776         (LABEL_ALTERNATE_NAME): Likewise.
16777         (ADDRESSOF_DECL): Likewise.
16778         (JUMP_LABEL): Likewise.
16779         (LABEL_NEXTREF): Likewise.
16780         (REGNO): Likewise.
16781         (ORIGINAL_REGNO: Likewise.
16782         (HARD_REGISTER_NUM_P): Add parenthesis.
16783         (SUBREG_REG): Whitespace.
16784         (SUBREG_BYTE): Likewise.
16785         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
16786         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
16787         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
16788         (ASM_OPERANDS_INPUT_VEC): Likewise.
16789         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
16790         (ASM_OPERANDS_INPUT): Likewise.
16791         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
16792         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
16793         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
16794         (ASM_OPERANDS_INPUT_MODE): Likewise.
16795         (ASM_OPERANDS_SOURCE_FILE): Likewise.
16796         (ASM_OPERANDS_SOURCE_LINE): Likewise.
16797         (MEM_SET_IN_STRUCT_P): Minor reformat.
16798         (TRAP_CONDITION): Whitespace.
16799         (TRAP_CODE): Likewise.
16800         (COND_EXEC_TEST): Likewise.
16801         (COND_EXEC_CODE): Likewise.
16802         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
16803         (PHI_NODE_P): Add parenthesis.
16804         (plus_constant): Whitespace and add parenthesis.
16805
16806 2002-01-03  Kazu Hirata  <kazu@hxi.com>
16807
16808         * config/avr/avr.c: Fix comment typos.
16809         * config/c4x/c4x.md: Likewise.
16810         * config/dsp16xx/dsp16xx.h: Likewise.
16811         * config/dsp16xx/dsp16xx.md: Likewise.
16812         * config/i386/i386.md: Likewise.
16813         * config/ia64/ia64.c: Likewise.
16814         * config/m32r/m32r.h: Likewise.
16815         * config/m68hc11/m68hc11.md: Likewise.
16816         * config/mmix/mmix.c: Likewise.
16817         * config/mn10200/mn10200.c: Likewise.
16818         * config/romp/romp.c: Likewise.
16819         * config/sh/sh.c: Likewise.
16820         * config/stormy16/stormy16.c: Likewise.
16821         * config/stormy16/stormy16.h: Likewise.
16822         * config/stormy16/stormy16.md: Likewise.
16823
16824 2002-01-03  Graham Stott  <grahams@redhat.com>
16825
16826         * loop.h: Update copyright date.
16827         (LOOP_MOVABLES): Fix typo.
16828         (LOOP_REGS): Likewise.
16829         (LOOP_IVS): Likewise.
16830
16831 2002-01-03  Graham Stott  <grahams@redhat.com>
16832
16833         * cppinit.c: Update copyright date.
16834         Don't include output.h
16835         * Makefile.in: Update copyright date.
16836         Update dependency.
16837
16838 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
16839
16840         PR c/5226
16841         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
16842         (-pthread) Add to RS/6000 options.
16843
16844 2002-01-02  Kazu Hirata  <kazu@hxi.com>
16845
16846         * except.c: Fix comment typos.
16847         * loop.c: Likewise.
16848         * varasm.c: Likewise.
16849         * doc/tm.texi: Fix a typo.
16850
16851 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
16852
16853         * c-typeck.c (output_init_element): Allow initializing static storage
16854         duration objects with compound literals.
16855
16856 2002-01-02  Richard Henderson  <rth@redhat.com>
16857
16858         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
16859         after abusing it.
16860
16861 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16862
16863         * gcc.c (default_compilers): Const-ify.
16864         * mips-tdump.c (stab_names): Likewise.
16865         * mips-tfile.c (map_coff_types, map_coff_storage,
16866         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
16867         pseudo_ops_t, pseudo_ops): Likewise.
16868         * protoize.c (default_include): Likewise
16869
16870         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
16871         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
16872         Add array size in declaration.
16873         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
16874         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
16875         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
16876         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
16877         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
16878         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
16879         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
16880         emtens, make_nan): Const-ify.
16881         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
16882         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
16883
16884 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
16885
16886         * config.gcc (ia64-*-*): Set extra_headers.
16887         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
16888         * config/alpha/t-osf: Remove.
16889         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
16890
16891 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
16892
16893         * config/rs6000/t-aix43: Revert previous change.
16894
16895 2002-01-02  Jason Merrill  <jason@redhat.com>
16896
16897         * c-decl.c (c_expand_body): Call outlining_inline_function when
16898         emitting an inline function out of line.
16899
16900 2002-01-02  Richard Henderson  <rth@redhat.com>
16901
16902         * dwarf2out.c (limbo_die_node): Add created_for member.
16903         (new_die): New argument created_for.  Update all callers.
16904         (mark_limbo_die_list): New.
16905         (dwarf2out_init): Register limbo_die_list as a root.
16906         (dwarf2out_finish): Force insert limbo dies into their function
16907         context.
16908
16909 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
16910
16911         PR c++/5089
16912         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
16913
16914 2002-01-02  Kazu Hirata  <kazu@hxi.com>
16915
16916         * config/h8300/fixunssfsi.c: Update copyright.
16917         Fix comment typos.
16918         Fix formatting.
16919         * config/h8300/h8300.c: Update copyright.
16920         Eliminate warnings.
16921
16922 2002-01-02  Kazu Hirata  <kazu@hxi.com>
16923
16924         * config/romp/romp.c: Fix comment formatting.
16925         * config/romp/romp.h: Likewise.
16926         * config/romp/romp.md: Likewise.
16927         * config/s390/s390.c: Likewise.
16928         * config/stormy16/stormy16.c: Likewise.
16929         * config/stormy16/stormy16.h: Likewise.
16930
16931 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
16932
16933         * c-common.h (genrtl_expr_stmt_value): Declare.
16934         * c-semantics.c (genrtl_goto_stmt): Redirect to...
16935         (genrtl_goto_stmt_value): ... this new function.  Pass new
16936         argument down to expand_expr_stmt_value, taking
16937         TREE_ADDRESSABLE into account.
16938         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
16939         STMT_EXPR as addressable, i.e., one whose result we want.
16940         * expr.c (expand_expr): Don't save expression statement value
16941         of labeled_blocks or loop_exprs.
16942         * stmt.c (expand_expr_stmt): Redirect to...
16943         (expand_expr_stmt_value): ... this new function.  Use new
16944         argument to tell whether to save expression value.
16945         (expand_end_stmt_expr): Reset last_expr_type and
16946         last_expr_value if we don't have either.
16947         * tree-inline.c (declare_return_variable): Mark its use
16948         statement as addressable.
16949         * tree.h: Document new use of TREE_ADDRESSABLE.
16950         (expand_expr_stmt_value): Declare.
16951
16952 2002-01-01  Tom Rix  <trix@redhat.com>
16953
16954         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
16955         rs6000_emit_allocate_stack.
16956
16957 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
16958
16959         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
16960         ${srcdir}/ginclude/ to every entry in extra_headers.
16961         * configure: Regenerate.
16962         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
16963         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
16964         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
16965         * ginclude/proto.h: Rename to config/convex/proto.h.
16966
16967 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16968
16969         * attribs.c (handle_vector_size_attribute): Use host_integerp
16970         and tree_int_cst; remove warnings.
16971         * caller-save.c (insert_restore): Add cast to get rid of warning.
16972         (insert_save): Likewise.
16973         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
16974         * regmove.c (find_matches): Add temporary var to kill a warning.
16975
16976 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
16977
16978         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
16979         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
16980         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
16981         (vms-dwarf2eh.o): Add Makefile rule.
16982         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
16983         * config/alpha/vms-dwarf2eh.asm: New file.
16984
16985         * gcc.c (delete_if_ordinary): Delete all versions.
16986
16987 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
16988
16989         * config/mmix/mmix.md: Update FIXME to not mention
16990         define_constants.
16991         (MMIX_rJ_REGNUM): New define_constants constant.
16992         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
16993         "*movdicc_real"): Adjust contraints formatting.
16994         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
16995         for branch prediction.
16996         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
16997         output template.
16998         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
16999         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
17000         number.  Delete related FIXMEs.
17001         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
17002         from number to MMIX_rJ_REGNUM.
17003         (TARGET_MASK_BRANCH_PREDICT): New.
17004         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
17005         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
17006         value.  Add -mbranch-predict and -mno-branch-predict.
17007         (TARGET_VERSION): Drop date.
17008         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
17009         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
17010         for finding out global symbols.
17011         (mmix_asm_output_labelref): Revert condition for global symbol.
17012         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
17013         (mmix_print_operand_punct_valid_p): A '+' is valid.
17014
17015 See ChangeLog.6 for earlier changes.