OSDN Git Service

* doc/invoke.texi: Remove Chill references.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-04-20  Joseph S. Myers  <jsm28@cam.ac.uk>
2
3         * doc/invoke.texi: Remove Chill references.
4         * doc/gcc.texi: Update last modified date.
5
6 2002-04-20  Kazu Hirata  <kazu@hxi.com>
7
8         * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
9         push and pop.  Replace add.l with add.w.
10
11 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
12
13         * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
14         multiply instructions for H8/300H case.
15
16 2002-04-20  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
17
18         * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
19         Bum three instructions from each routine.
20
21 2002-04-20  Neil Booth  <neil@daikokuya.demon.co.uk>
22
23         * Makefile.in: Update.
24         * decl.c (push_c_function_context, pop_c_function_context,
25         mark_c_function_context): Rename for consistency.
26         * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
27         * c-tree.h (push_c_function_context, pop_c_function_context,
28         mark_c_function_context): Rename for consistency.
29         * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
30         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
31         * function.c (init_lang_status, save_lang_status,
32         restore_lang_status, mark_lang_status, free_lang_status):
33         Move to langhooks.h.
34         (push_function_context_to, pop_function_context_from,
35         free_after_parsing, prepare_function_start, ggc_mark_struct_function):
36         Update.
37         * function.h (init_lang_status, save_lang_status,
38         restore_lang_status, mark_lang_status, free_lang_status):
39         Move to langhooks.h.
40         * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
41         LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
42         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
43         LANG_HOOKS_FUNCTION_INITIALIZER): New.
44         (LANG_HOOKS_INITIALIZER): Update.
45         (lhd_do_nothing_f): New.
46         * langhooks.h (struct lang_hooks_for_functions): New.
47         (struct lang_hooks): New hooks.
48         * langhooks.c (lhd_do_nothing_f): New.
49 objc:
50         * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
51         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
52
53 2002-04-19  David S. Miller  <davem@redhat.com>
54
55         * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
56         * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
57
58 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
59
60         PR optimization/3756
61         * config/i386/i386.c (ix86_expand_int_movcc): Optimize
62         x = ((int) y < 0) ? cst1 : cst2.
63
64 2002-04-19  Jakub Jelinek  <jakub@redhat.com>
65
66         PR c/6358
67         * function.c: Reapply patch for c/6358.
68         (expand_function_end): Copy decl_rtl's mode, not
69         current_function_return_rtx mode.
70
71 2002-04-19  Joel Sherrill  <joel@OARcorp.com>
72
73         * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
74         targets.
75
76 2002-04-19  Tom Tromey  <tromey@redhat.com>
77
78         * doc/install.texi (Specific): Update status of Solaris 2.8.
79         For PR libgcj/6158.
80
81 2002-04-19  Andreas Schwab  <schwab@suse.de>
82
83         * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
84         (PUT_REAL): Restore old definition.
85
86 2002-04-19  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
87             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
88
89         * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
90         binutils 2.11.2 and higher generate smaller binaries than Sun's
91         native tools.
92
93 2002-04-19  Mark Mitchell  <mark@codesourcery.com>
94
95         PR c++/6352
96         * toplev.c (rest_of_compilation): Do not defer functions for which
97         TREE_SYMBOL_REFERENCED has already been set.
98
99 Fri Apr 19 15:53:03 CEST 2002  Jan Hubicka  <jh@suse.cz>
100
101         * i386.md (movsi_1, movhi_1): Force reload to use more flexible
102         alternative.
103
104 2002-04-19  Neil Booth  <neil@daikokuya.demon.co.uk>
105
106         * builtins.c: Include langhooks.h.
107         (lang_type_promotes_to): Remove.
108         (expand_builtin_va_arg): Use new hook.
109         * c-common.c (c_common_nodes_and_builtins): Don't set hook.
110         (simple_type_promotes_to): Move to c-typeck.c.
111         * c-common.h (simple_type_promotes_to): Remove.
112         * c-decl.c (duplicate_decls, grokdeclarator): Update.
113         * c-format.c: Include langhooks.h.
114         (check_format_types): Update.
115         * c-tree.h (c_type_promotes_to): New.
116         * c-typeck.c (c_type_promotes_to): Move from c-common.c.
117         (type_lists_compatible_p): Update.
118         * langhooks-def.h (lhd_type_promotes_to): New.
119         (LANG_HOOKS_TYPE_PROMOTES_TO): New.
120         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
121         * langhooks.c (lhd_type_promotes_to): New.
122         * langhooks.h (struct lang_hooks_for_types): New hook.
123         * tree.h (lang_type_promotes_to): Remove.
124 objc:
125         * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
126
127 2002-04-18  Richard Henderson  <rth@redhat.com>
128
129         * function.c: Revert patch for c/6358.
130
131 2002-04-18  Richard Henderson  <rth@redhat.com>
132
133         * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
134         blocks.  Handle multiple references to the TRAP block.  Handle
135         non-adjacent THEN and OTHER blocks.
136
137 2002-04-18  Richard Henderson  <rth@redhat.com>
138
139         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
140         crash with no type for by-mode libcalls.
141
142         * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
143
144 2002-04-18  Bob Wilson  <bob.wilson@acm.org>
145
146         * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
147         __xtensa_nonlocal_goto): Use a syscall instructions to flush
148         the register windows.
149
150 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
151
152         * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
153         appropriate.  Document need for extended precision even when
154         MAX_LONG_DOUBLE_TYPE_SIZE is smaller.  Define REAL_WIDTH here,
155         based on REAL_VALUE_TYPE_SIZE.  Use REAL_WIDTH to size
156         REAL_VALUE_TYPE.  Define CONST_DOUBLE_FORMAT here.  Use #error
157         instead of relying on later syntax error when REAL_WIDTH > 5.
158         * real.c: Define NE based only on whether or not we have a
159         full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
160         Require sizeof(REAL_VALUE_TYPE) == 2*NE.  Unconditionally
161         define GET_REAL and PUT_REAL as simple memcpy operations; no
162         need to byteswap or round.
163         Use #error instead of #ifdef-ing out the entire file, for
164         prompt error detection.
165
166         * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
167
168 2002-04-18  David S. Miller  <davem@redhat.com>
169
170         * config/sparc/sparc.h (BRANCH_COST): Define.
171
172         * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
173         does it.
174
175 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
176
177         * flow.c (update_life_info): Ignore return value of cleanup_cfg.
178         Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
179         propagate_block calls after relaxation loop using new variable
180         stabilized_prop_flags.
181
182 2002-04-18  Richard Henderson  <rth@redhat.com>
183
184         * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
185         (ia64_va_arg): Expect variable sized types by reference.
186         * config/ia64/ia64-protos.h: Update.
187         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
188         ia64_function_arg_pass_by_reference.
189
190 2002-04-18  Richard Henderson  <rth@redhat.com>
191
192         * ifcvt.c: Include except.h.
193         (block_has_only_trap): Break out from find_cond_trap.
194         (find_cond_trap): Use it.  Always delete the trap block.
195         (merge_if_block): Allow then block null.  Be less simplistic about
196         what insns can end a block.
197         * Makefile.in (ifcvt.o): Depend on except.h.
198
199         * config/ia64/ia64.md (trap, conditional_trap): New.
200
201 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
202
203         PR c/6358
204         * function.c (assign_parms): Assign hard current_function_return_rtx
205         register here...
206         (expand_function_end): ...not here.
207
208 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
209
210         * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
211         * c-tree.h (c_incomplete_type_error): New.
212         * c-typeck.c (require_complete_type, build_component_ref): Update.
213         (incomplete_type_error): Rename.
214         * langhooks-def.h (lhd_incomplete_type_error): New.
215         (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
216         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
217         * langhooks.c (lhd_incomplete_type_error): New.
218         * langhooks.h (struct lang_hooks_for_types): New hook.
219         * tree.c (size_in_bytes): Use new hook.
220         * tree.h (incomplete_type_error): Remove.
221 objc:
222         * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
223
224 2002-04-18  Zack Weinberg  <zack@codesourcery.com>
225
226         * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
227         TARGET_FLOAT_FORMAT blocks.
228
229 2002-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
230
231         * doc/install.texi (Downloading the source): Do not mention Chill
232         any longer, but mention Ada.
233         (Configuration): Do not mention Chill any longer.
234
235 2002-04-18  Hans-Peter Nilsson  <hp@axis.com>
236
237         * config/cris/cris.h (TARGET_VERSION): Remove local version number.
238
239 Thu Apr 18 17:14:08 CEST 2002  Jan Hubicka  <jh@suse.cz>
240
241         * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
242         in last patch.
243
244 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
245
246         * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
247         instead of unsigned_type.
248
249 Thu Apr 18 15:49:12 CEST 2002  Jan Hubicka  <jh@suse.cz>
250
251         * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
252         * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
253         later.
254
255 2002-04-18  Bernd Schmidt  <bernds@redhat.com>
256
257         * attribs.c (vector_type_node_list): New static variable.
258         (handle_vector_size_attribute): Use it to avoid generating a
259         new type node each time we are called.
260
261         * combine.c (subst): Avoid trying to make a vector mode subreg of
262         an integer constant.
263         (gen_lowpart_for_combine): Likewise.
264
265 2002-04-18  Roger Sayle  <roger@eyesopen.com>
266             Jakub Jelinek  <jakub@redhat.com>
267
268         * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
269         for integer constant c (if x has unsigned type or sign bit is not
270         set in c).  This folds the zero/sign extension into the bit-wise and
271         operation.
272
273 2002-04-18  Jakub Jelinek  <jakub@redhat.com>
274
275         PR middle-end/6205
276         * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
277         otherwise xorps.
278
279 2002-04-17  NIIBE Yutaka  <gniibe@m17n.org>
280
281         * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
282
283 2002-04-17  Nick Clifton  <nickc@cambridge.redhat.com>
284
285         * gcc.c (read_specs): Detect and fail if an attempt is made to
286         rename a spec string to an already existing string.
287
288 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
289
290         * config/s390/s390.c (legitimize_pic_address): Do not generate
291         illegal address constant without CONST.
292
293 2002-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
294
295         * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
296         * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
297
298 2002-04-17  Ulrich Weigand  <uweigand@de.ibm.com>
299
300         PR optimization/6305
301         * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
302         to make sure previous reloads are taken into account.  Generate
303         better code if one operand is an in-range immediate constant.
304
305 2002-04-16  Andrew Haley  <aph@cambridge.redhat.com>
306
307         * doc/install.texi (Building): libgcj requires GNU make.
308
309 2002-04-17  Jakub Jelinek  <jakub@redhat.com>
310
311         PR bootstrap/6315
312         * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
313         even if hard quad and register is not floating.
314         (movtf reg<-mem split): Disallow splitting if hard quad and
315         register is floating.
316         (movtf mem<-reg split): Likewise.
317         * config/sparc/sparc.c (fp_register_operand): New predicate.
318         * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
319
320 2002-04-17  Zack Weinberg  <zack@codesourcery.com>
321
322         * Makefile.in (PROTO_OBJS): Add cppdefault.o.
323         (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
324         (unprotoize.o): Ditto.  Build from protoize.c.  Define
325         UNPROTOIZE on command line.
326         * protoize.c: Include cppdefault.h.  Delete include_defaults.
327         (in_system_include_dir): Use cpp_include_defaults (defined in
328         cppdefault.o).
329         * unprotoize.c: Delete file.
330
331 2002-04-17  Aldy Hernandez  <aldyh@redhat.com>
332
333         * config/rs6000/altivec.h (vec_ld): Add array variants.
334         (vec_lde): Same.
335         (vec_ldl): Same.
336
337 2002-04-17  Alan Matsuoka  <alanm@redhat.com>
338             Aldy Hernandez <aldyh@redhat.com>
339
340         * config/rs6000/altivec.h: Define __ALTIVEC__.
341         (bool): New.
342         (__pixel): New.
343         (pixel): New.
344         (vec_cfux): New.
345         (vec_vmaddfp): New.
346         (vec_vsldoi): New.
347         Add parentheses to all macro arguments.
348
349 2002-04-16  Richard Henderson  <rth@redhat.com>
350
351         PR c++/6320
352         * except.c (remove_eh_handler): Insert inner regions at beginning
353         of sibling chain.  Refactor expressions.
354
355 2002-04-16  Richard Henderson  <rth@redhat.com>
356
357         * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
358         * config/sparc/sol2-gas-bi.h: New file.
359         * config.gcc (sparc*-solaris): Add it as needed.
360         * configure.in (AS_SPARC64_FLAG): Remove check.
361         * config.in, configure: Regenerate.
362
363         * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
364
365 2002-04-16  Richard Henderson  <rth@redhat.com>
366
367         * config/mips/mips.c (override_options): Don't override N32 for
368         a 64-bit ISA.
369
370         PR 6202
371         * config/mips/mips.md (can_delay): Split out of existing define_delays.
372         (HILO_delay): Set can_delay false.
373
374 2002-04-16  Dale Johannesen <dalej@apple.com>
375
376         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
377         instruction addresses.
378         (rs6000_output_function_epilogue): Likewise.
379
380 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
381
382         * c-parse.in (poplevel, compstmt_start,
383         compstmt_primary_start): Add ending ';', in accordance
384         with POSIX.
385
386 2002-04-16  Richard Henderson  <rth@redhat.com>
387
388         * config.gcc (sparcv9-solaris): Configure for 64-bit default.
389         Adjust tm_file order to get TARGET_DEFAULT set properly.
390         (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
391         * doc/install.texi (sparc-solaris): Update.
392
393 2002-04-16  Dale Johannesen <dalej@apple.com>
394
395         * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
396         comparison operands do not match each other or if modes of
397         conditions do not match result.
398
399 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
400
401         PR target/6305
402         * config/s390/s390.md (mulsidi3): Set both subregs of the
403         multiword register.
404
405 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
406
407         * config/rs6000/altivec.h (vec_addc): Type check.
408
409 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
410
411         PR middle-end/6279
412         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
413
414         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
415
416 2002-04-15  Richard Henderson  <rth@redhat.com>
417
418         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
419         call_really_used_regs too.
420
421 2002-04-15  Richard Henderson  <rth@redhat.com>
422
423         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
424
425 2002-04-15  David S. Miller  <davem@redhat.com>
426
427         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
428         as being CLOBBERed.
429
430 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
431
432         PR c/6290
433         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
434         CONST_VECTOR is { 0, ... 0 }.
435
436 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
437
438         * doc/install.texi (Installing GCC: Configuration): Clarify
439         the only supported ways to configure gcc.
440
441 2002-04-15  Roland McGrath  <roland@frob.com>
442
443         * config.gcc (alpha*-*-gnu*): New target configuration.
444         * config/alpha/gnu.h: New file for it.
445         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
446
447 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
448
449         * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
450         * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
451         * tree.h (expand_start_stmt_expr): Update prototype.
452         * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
453         * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
454         on the STMT_EXPR created for the inline function.
455
456 2002-04-15  Richard Henderson  <rth@redhat.com>
457
458         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
459         config/i386/linux-aout.h, config/i386/linux-oldld.h,
460         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
461         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
462         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
463         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
464         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
465         Define __gnu_linux__, not gnu_linux.
466         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
467
468 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
469
470         Remove Chill front end.
471         * gcc.c (default_compilers): Remove Chill entries.
472         * ch: Remove directory.
473         * doc/frontends.texi: Remove information about Chill.
474         * doc/sourcebuild.texi: Likewise.
475         * doc/standards.texi: Likewise.
476
477 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
478
479         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
480         (LONGLONG_STANDALONE): Define.
481
482 2002-04-15  David S. Miller  <davem@redhat.com>
483
484         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
485         Call emit_library_call with LCT_NORMAL.
486         (sparc_initialize_trampoline): Use LCT_foo instead of
487         magic constant in emit_library_call invocations.
488         (sparc64_initialize_trampoline): Likewise.
489         (sparc_profile_hook): Likewise.
490         * config/sparc/sparc.md: Likewise.
491
492         * config/sparc/sparc.c (sparc_extra_constraint_check):
493         Fix type of argument 'c'.
494         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
495         Likewise.
496
497 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
498
499         * diagnostic.h (output_buffer_state): Redefine.
500         (output_format_decoder): New macro.
501         (output_prefixing_rule): Likewise.
502         (output_line_cutoff): Likewise.
503         (diagnostic_format_decoder): Adjust.
504         (diagnostic_prefixing_rule): Likewise.
505         (diagnostic_line_cutoff): Likewise.
506         (diagnostic_state): Likewise.
507         (diagnostic_kind_count): Likewise.
508         (diagnostic_buffer): Now a macro.
509
510         * diagnostic.c (diagnostic_buffer): Remove definition.
511         (output_is_line_wrapping): Adjust.
512         (set_real_maximum_length): Likewise.
513         (output_set_maximum_length): Likewise.
514         (init_output_buffer): Likewise.
515         (lhd_print_error_function): Likewise.
516         (output_do_verbatim): Likewise.
517
518 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
519
520         * cpperror.c (print_location): Don't print include chain
521         if line == 0.
522         (cpp_begin_message): Update to use DL_ macros.
523         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
524         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
525         cpp_notice, cpp_notice_from_errno): Remove.
526         (cpp_error, cpp_error_with_line): Update to take a diagnostic
527         level.
528         (cpp_errno): New.
529         * cppexp.c (CPP_ICE): Remove.
530         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
531         lex, integer_overflow, _cpp_parse_expr): Update.
532         * cppfiles.c (read_include_file, find_include_file,
533         handle_missing_header, _cpp_read_file, remap_filename): Update.
534         * cpphash.h (enum error_type): Remove.
535         (_cpp_begin_message): Update.
536         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
537         cpp_handle_option, cpp_post_options): Update.
538         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
539         skip_whitespace, parse_identifier, parse_slow, parse_string,
540         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
541         cpp_interpret_charconst): Update.
542         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
543         lex_macro_node, do_undef, glue_header_name, parse_include,
544         do_include_common, read_flag, do_line, do_linemarker, do_ident,
545         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
546         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
547         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
548         _cpp_pop_buffer, do_diagnostic): Update.
549         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
550         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
551         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
552         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
553         cpp_notice, cpp_notice_from_errno): Remove.
554         (cpp_error, cpp_error_with_line): Update to take a diagnostic
555         level.
556         (cpp_errno): New.
557         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
558         collect_args, enter_macro_context, save_parameter, parse_params,
559         _cpp_create_definition, check_trad_stringification,
560         cpp_macro_definition): Update.
561         * cppmain.c (cpp_preprocess_file): Update.
562         * fix-header.c (read_scan_file): Update.
563
564 2002-04-14  Andreas Schwab  <schwab@suse.de>
565
566         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
567
568 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
569
570         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
571
572 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
573
574         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
575         not gnu_hurd.
576
577 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
578
579         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
580
581 2002-04-13      Joel Sherrill <joel@OARcorp.com>
582
583         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
584         sparc-elf and sparc-rtems targets.
585
586 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
587
588         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
589         defined, and __gnu_hurd__ wherever __GNU__ is defined.
590         * arm/linux-elf.h: Likewise.
591         * cris/aout.h: Likewise.
592         * cris/linux.h: Likewise.
593         * i370/linux.h: Likewise.
594         * i386/gnu.h: Likewise.
595         * i386/linux-aout.h: Likewise.
596         * i386/linux-oldld.h: Likewise.
597         * i386/linux.h: Likewise.
598         * i386/linux64.h: Likewise.
599         * ia64/linux.h: Likewise.
600         * m68k/linux-aout.h: Likewise.
601         * m68k/linux.h: Likewise.
602         * mips/linux.h: Likewise.
603         * pa/pa-linux.h: Likewise.
604         * pj/linux.h: Likewise.
605         * rs6000/sysv4.h: Likewise.
606         * s390/linux.h: Likewise.
607         * sh/linux.h: Likewise.
608         * sparc/linux-aout.h: Likewise.
609         * sparc/linux.h: Likewise.
610         * sparc/linux64.h: Likewise.
611         * xtensa/linux.h: Likewise.
612
613 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
614
615         * stmt.c (check_unique_operand_names): Expect operand names to
616         be strings rather than identifiers.  Use simple_cst_equal to
617         compare them.
618         (resolve_operand_name_1): Make same identifier to string change here.
619         * c-parse.in (asm_operand): Convert a named operand into a string.
620         * cp/parse.y (asm_operand): Likewise.
621
622 2002-04-13  Andreas Schwab  <schwab@suse.de>
623
624         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
625
626 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
627
628         Revert these changes:
629
630         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
631
632         PR c++/5571
633         * stor-layout.c (layout_decl): Reset the RTL for the decl.
634
635 2002-04-12  Richard Henderson  <rth@redhat.com>
636
637         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
638         (sparc*-*-solaris): Clean up header files.
639         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
640         and plan on generating 64-bit code.
641         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
642         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
643         * config/sparc/sol2-sld-64.h: Rename ...
644         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
645         for AS_SPARC64_FLAG not defined.
646         * config/sparc/sol2-gld-bi.h: New.
647         * config/sparc/sol2-sld.h: Remove.
648         * config/sparc/sol26-sld.h: New.
649         * config/sparc/sol2.h: Tidy comments.
650         * doc/install.texi: Document sparc-solaris configury changes.
651
652 2002-04-12  Richard Henderson  <rth@redhat.com>
653
654         * recog.c (offsettable_address_p): Match the logic in adjust_address.
655
656         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
657         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
658
659 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
660
661         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
662
663 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
664
665         * pa.c (pa_can_combine_p): Call extract_insn before calling
666         constrain_operands.
667
668 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
669
670         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
671         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
672         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
673         (CPP_PREDEFINES): Handle __declspec.
674         * config/i386/t-interix (USER_H): Remove.
675
676 2002-04-12  DJ Delorie  <dj@redhat.com>
677
678         * integrate.c (compare_blocks): Make comparisons safe for when
679         sizeof(int) < sizeof(char *).
680         (find_block): Likewise.
681
682 2002-04-12  Jan Hubicka  <jh@suse.cz>
683             David Edelsohn  <edelsohn@gnu.org>
684
685         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
686         registers.
687         (symbol_ref_operand): New.
688         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
689         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
690
691 2002-04-12  Andreas Schwab  <schwab@suse.de>
692
693         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
694         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
695         overrides the definition in config/svr4.h.
696
697 2002-04-12      Eric Norum <eric.norum@usask.ca>
698
699         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
700         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
701         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
702         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
703         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
704         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
705         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
706         definitions to config/rtems.h and make the targets more similar.
707
708 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
709
710         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
711         POINTERS_EXTEND_UNSIGNED.
712         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
713         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
714
715         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
716         not specified.
717
718 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
719
720         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
721         depends on TARGET_SHMEDIA, not TARGET_SH5.
722
723 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
724
725         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
726         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
727
728 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
729
730         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
731         no r0 clobber.
732
733 2002-04-12  Andreas Schwab  <schwab@suse.de>
734
735         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
736
737 2002-04-12  Richard Henderson  <rth@redhat.com>
738
739         PR bootstrap/4191
740         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
741
742         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
743         modes spanning multiple hard regs.
744
745         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
746
747 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
748
749         * pa.c (pa_output_function_prologue): Don't accumulate the total
750         number of code bytes when using TARGET_64BIT, or gas, SOM and not
751         the portable runtime.
752         (output_deferred_plabels): Handle 64bit plabels.
753         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
754         generating pic code using the GAS assembler for object formats that
755         are not SOM (ie., ELF32 and ELF64).
756         (output_millicode_call): Check attribute type if attribute length is 28.
757         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
758         dbr_sequence_length once.
759         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
760         dbr_sequence_length once.
761         * pa.h (TARGET_SOM): Define if not defined.
762         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
763         with GAS and not SOM.
764         (jump, call_internal_reg, call_value_internal_reg): Likewise.
765         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
766
767 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
768
769         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
770         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
771         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
772         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
773         elfos.h and dbxelf.h values are fine now.
774         * config/i386/freebsd.h, config/alpha/freebsd.h
775         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
776
777 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
778
779         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
780         or set Acpu or Amachine.  Reformat.
781         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
782         define.
783         (LINK_SPEC): Do not need to undef.
784         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
785         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
786         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
787         define.
788         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
789         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
790         (LINK_SPEC): Do not need to undef.
791         (DONT_USE_BUILTIN_SETJMP): Do not define.
792         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
793         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
794         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
795         Remove trailing spaces.
796         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
797         __ELF__, or set Acpu or Amachine.  Reformat.
798         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
799         define.
800
801 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
802
803         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
804         all other *-*-freebsd* targets.
805
806 2002-04-11  Richard Henderson  <rth@redhat.com>
807
808         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
809
810 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
811
812         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
813         Include {cpu}/{cpu}.h thru tm_file.
814         (alpha*-*-linux*ecoff): Remove target.
815         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
816         (LINK_SPEC): Remove, is not OS independent.
817         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
818         (LINK_SPEC): Do not need to #undef any longer.
819         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
820         any longer.
821         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
822         __ELF__.
823         (LINK_SPEC): Moved here from alpha/elf.h.
824         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
825         SUB_CPP_PREDEFINES.
826         * config/alpha/linux-ecoff.h: Remove.
827         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
828         (CPP_SPEC): Define _POSIX_SOURCE as needed.
829         (CPP_SUBTARGET_SPEC): Do not define.
830         (LINK_SPEC): Do not need to #undef any longer.
831         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
832         * config/alpha/vms.h: Likewise.
833
834 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
835
836         * doc/extend.texi: Remove old claim that typedefs cannot have
837         an alignment attribute.
838
839 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
840
841         PR optimization/6177
842         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
843         bitpos is 0 and bitsize CONCAT size.
844
845 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
846
847         PR c/6223
848         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
849
850 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
851
852         * config/alpha/freebsd.h: Minor reformatting.
853         (CPP_SPEC): Define ELF and add cpp_subtarget.
854         (ASM_SPEC): No longer needed.
855
856 2002-04-11  Richard Henderson  <rth@redhat.com>
857
858         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
859         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
860         (dimode mem/zero splitter): New.
861
862 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
863
864         * config/cris/cris.c (cris_override_options): Tweak error message
865         for PIC not implemented.
866
867         * config/cris/cris.h: Tweak comments related to parameter-passing.
868
869         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
870
871 2002-04-10  Richard Henderson  <rth@redhat.com>
872
873         * except.c (add_ehl_entry): Allow duplicates after landing pad
874         creation.
875
876 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
877
878         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
879
880 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
881
882         * c-decl.c (c_init_decl_processing): Move generation of
883         decls for g77_integer_type_node and friends from here ...
884         * c-common.c (c_common_nodes_and_builtins): ... to here.
885
886 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
887
888         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
889         is only used as frame pointer when frame_pointer_needed is true.
890
891 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
892
893         PR target/817
894         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
895         for the fact that the pool entry uses two words.
896         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
897         1k bytes.
898         (movdf_soft_insn): Similarly.
899         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
900         for the fact that the pool entry uses three words.
901
902 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
903
904         * config/mips/mips.c (mips_va_arg): When using the struct version
905         of the EABI va_list, allow arguments in the register save area to
906         take up less room than a stack argument.
907
908 2002-04-10  Richard Henderson  <rth@redhat.com>
909
910         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
911         if EXPAND_INITIALIZER.
912
913 2002-04-09  Richard Henderson  <rth@redhat.com>
914
915         * config/alpha/alpha.md (movdi_er_maybe_g): New.
916         * config/alpha/alpha.c (alpha_expand_mov): Use it.
917
918 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
919
920         PR optimization/6233
921         * rtlanal.c (pure_call_p): New function.
922         * rtl.h (pure_call_p): Declare.
923         * loop.c (prescan_loop): Use it to set has_nonconst_call.
924         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
925
926 2002-04-09  Eric Christopher  <echristo@redhat.com>
927
928         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
929         information to .comm directive.
930
931 2002-04-09  Richard Henderson  <rth@redhat.com>
932
933         PR c/5078
934         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
935
936 2002-04-09  Richard Henderson  <rth@redhat.com>
937
938         * basic-block.h (flow_delete_block_noexpunge): Declare.
939         (expunge_block_nocompact): Declare.
940         * cfg.c (expunge_block_nocompact): Split out from ...
941         (expunge_block): ... here.
942         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
943         (flow_delete_block_noexpunge): Split out from ...
944         (flow_delete_block): ... here.
945         * cfgcleanup.c (delete_unreachable_blocks): Compact while
946         removing dead blocks.
947         * except.c (exception_handler_labels): Remove.
948         (exception_handler_label_map): New.
949         (struct eh_region): Add aka member.
950         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
951         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
952         (for_each_eh_label, for_each_eh_label_1): New.
953         (init_eh): Register exception_handler_label_map.
954         (free_eh_status): Use free_region.
955         (find_exception_handler_labels): Use the map, not the list.
956         (remove_exception_handler_label): Likewise.
957         (maybe_remove_eh_handler): Likewise.
958         (remove_eh_handler): Use the region aka bitmap.
959         * except.h (exception_handler_labels): Remove.
960         (for_each_eh_label): Declare.
961         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
962         * loop.c (invalidate_loops_containing_label): New.
963         (find_and_verify_loops): Use it.  Use for_each_eh_label.
964         * sched-rgn.c (is_cfg_nonregular): Use
965         current_function_has_exception_handlers.
966
967 2002-04-09  Richard Henderson  <rth@redhat.com>
968
969         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
970         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
971         Do not return changed status.
972         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
973         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
974         New functions that do return changed status.
975         * sbitmap.h: Update decls.
976         * gcse.c, lcm.c: Use _cg functions as needed.
977
978 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
979
980         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
981         (sh64-*-elf*, sh-*-rtemself*): Likewise.
982         * config/sh/embed_bb.c: New file.
983         * config/sh/embed-elf.h: New file.
984         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
985         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
986         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
987         __PTRDIFF_TYPE__ .
988         (SUBTARGET_CPP_PTR_SPEC): Don't define.
989         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
990         Add subtarget_asm_endian_spec.
991         (ASM_SPEC): Use subtarget_asm_endian_spec.
992         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
993         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
994         (WCHAR_UNSIGNED): Define.
995         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
996         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
997         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
998         Fix value.
999         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
1000         (sh_adjust_cost): Likewise.
1001         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
1002         __PTRDIFF_TYPE__ .
1003         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
1004         (WCHAR_TYPE_SIZE): Likewise.
1005         (ASM_SPEC): Use subtarget_asm_endian_spec.
1006         (SH_ELF_WCHAR_TYPE): #undef/ #define.
1007         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
1008         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
1009         (MAX_WCHAR_TYPE_SIZE): Don't #define .
1010         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
1011         (USER_LABEL_PREFIX): Don't #undef /#define .
1012         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
1013         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
1014         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
1015         (ASM_SPEC): Likewise.
1016         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
1017         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
1018         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
1019         (LIB2FUNCS_EXTRA): Define.
1020         * t-sh64 (LIB2FUNCS_EXTRA): Define.
1021         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
1022         (LIB1ASMFUNCS_CACHE): Define.
1023         (LIB2FUNCS_EXTRA): Redefine empty.
1024
1025 2002-04-08  Richard Henderson  <rth@redhat.com>
1026
1027         * reorg.c (get_branch_condition): Use reversed_comparison_code.
1028
1029 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1030
1031         * config/m68hc11/larith.asm (__map_data_section): Fix condition
1032         and optimize for size.
1033         (__do_global_ctors): Fix pointer comparison.
1034         (__do_global_dtors): Likewise.
1035
1036 2002-04-09  David S. Miller  <davem@redhat.com>
1037
1038         * config/sparc/sparc.c (sparc_extra_constraint_check): New
1039         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
1040         allow reloading pseudos.
1041         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
1042         * config/sparc/sparc-protos.h: Declare it.
1043
1044         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
1045         unsigned comparison warning.
1046         (output_restore_regs): Mark leaf_function as unused.
1047
1048 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1049
1050         * expr.c (is_aligning_offset): New function.
1051         (expand_expr, case COMPONENT_EXPR): Call it.
1052
1053 2002-04-08  David S. Miller  <davem@redhat.com>
1054
1055         PR target/6082
1056         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
1057
1058         Make init_priority work on Sparc when using GNU ld.
1059         * config/sparc/linux.h, config/sparc/linux64.h,
1060         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
1061         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
1062         * config/sparc/sol2-gld.h: New file to do the same.
1063         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
1064         sparc/sol2-gld.h to tm_file.
1065
1066         PR optimization/4328
1067         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
1068         * doc/md.texi: Document it.
1069         * config/sparc/sparc.md (movdi_insn_sp64_novis,
1070         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
1071         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
1072         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
1073         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
1074
1075 2002-04-08  Andreas Jaeger  <aj@suse.de>
1076
1077         * stmt.c (expand_asm_operands): Revert last patch from Richard
1078         Henderson.
1079
1080 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1081
1082         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
1083         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
1084
1085 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1086
1087         * doc/contrib.texi (Contributors): Add David O'Brien.
1088
1089 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
1090
1091         * configure.in (auto-build.h): Use target_alias and build_alias
1092         when running configure.
1093         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
1094         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
1095         * configure: Regenerate.
1096
1097 2002-04-07  David S. Miller  <davem@redhat.com>
1098
1099         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
1100
1101 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1102
1103         PR 5933
1104         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
1105         generating 32-bit pic code.
1106
1107 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
1108
1109         * cppinit.c (cpp_create_reader): Initialize
1110         discard_comments_in_macro_exp.
1111         (COMMAND_LINE_OPTIONS): Add "-CC" option.
1112         (cpp_handle_option): Handle "-CC" option.
1113         * cpplex.c (save_comment): If saving a C++ comment in
1114         a directive, convert it to a C comment.
1115         (_cpp_lex_direct): Pass second comment start character to
1116         save_comment to indicate comment type.
1117         * cpplib.c (_cpp_handle_directive): If processing
1118         a "#define" directive and discard_comments_in_macro_exp
1119         is false,  re-enable saving of comments.
1120         (lex_macro_node): If discard_comments_in_macro_exp is false,
1121         discard any comments before the macro identifier.
1122         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
1123         member.
1124         * cppmacro.c (cpp_get_token): If expanding a macro while
1125         processing a directive, discard any comments we might encounter.
1126         (parse_params): If discard_comments_in_macro_exp is false,
1127         ignore comments in the macro parameter list.
1128         * gcc.c (cpp_unique_options): Add "-CC" option.
1129         (option_map): Map "--comments-in-macros" to "-CC".
1130         * doc/cppopts.texi: Document "-CC" option.
1131         * f/lang-specs.h: Add "-CC" option.
1132         * testsuite/gcc.dg/cpp/maccom1.c: New test.
1133         * testsuite/gcc.dg/cpp/maccom2.c: New test.
1134         * testsuite/gcc.dg/cpp/maccom3.c: New test.
1135         * testsuite/gcc.dg/cpp/maccom4.c: New test.
1136         * testsuite/gcc.dg/cpp/maccom5.c: New test.
1137         * testsuite/gcc.dg/cpp/maccom6.c: New test.
1138
1139 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1140
1141         PR middle-end/6180
1142         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
1143
1144 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
1145
1146         PR c++/5571
1147         * stor-layout.c (layout_decl): Reset the RTL for the decl.
1148
1149         PR opt/5120
1150         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
1151         RTX_UNCHANGING_P for the functions arguments when a tail call
1152         is made.
1153
1154 2002-04-06  Jason Merrill  <jason@redhat.com>
1155
1156         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
1157         (parse_options_and_default_flags): Set them appropriately.
1158         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
1159
1160 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
1161
1162         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
1163         here.
1164
1165         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
1166         semicolon.
1167
1168         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
1169         types come in by-reference.  Fix typo in comment.
1170
1171 2002-04-05  David S. Miller  <davem@redhat.com>
1172
1173         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
1174         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
1175         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
1176         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
1177
1178 2002-04-05  David S. Miller  <davem@redhat.com>
1179
1180         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
1181         are not going to emit return instructions, emit at least a nop
1182         for the sake of sane backtraces.
1183
1184 2002-04-05  Richard Henderson  <rth@redhat.com>
1185
1186         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
1187
1188 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
1189
1190         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
1191
1192 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
1193
1194         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
1195         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
1196         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
1197
1198 2002-04-05  Andreas Schwab  <schwab@suse.de>
1199
1200         * c-convert.c: Include c-common.h.
1201         * Makefile.in (c-convert.o): Updated.
1202
1203 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
1204
1205         * mklibgcc.in: Use separate libgcc.map for each multilib.
1206         * Makefile.in (distclean): Don't remove libgcc.map here.
1207
1208 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
1209
1210         * Makefile.in (s-mlib): Handle --disable-multilib by separate
1211         genmultilib invocation.
1212
1213 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
1214
1215         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
1216         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
1217         to num_gprs for symmetry.
1218         * config/mips/mips.c: Adjust accordingly.
1219
1220 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
1221
1222         * c-common.c (truthvalue_conversion): Rename, update.
1223         * c-common.h (c_common_truthvalue_conversion): New.
1224         * c-convert.c (convert): Update.
1225         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
1226         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
1227         * c-typeck.c (build_binary_op, build_unary_op,
1228         build_conditional_expr): Update.
1229         * fold-const.c (constant_boolean_node, fold): Use langhook.
1230         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
1231         * langhooks.h (struct lang_hooks): New hook.
1232         * stmt.c (expand_decl_cleanup): Use langhook.
1233         * tree.h (truthvalue_conversion): Remove.
1234 objc:
1235         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
1236
1237 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
1238
1239         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
1240         Add rules to make null object file.
1241
1242 2002-04-04  Jim Blandy  <jimb@redhat.com>
1243
1244         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
1245         macro formal parameter names.
1246
1247 2002-04-04  David S. Miller  <davem@redhat.com>
1248
1249         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
1250
1251 2002-04-04  Richard Henderson  <rth@redhat.com>
1252
1253         PR middle-end/5099
1254         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
1255         Support copies into and out of memory.  Don't accept allows_reg
1256         and allows_mem as gospel.
1257
1258 2002-04-04  Richard Henderson  <rth@redhat.com>
1259
1260         PR opt/6165
1261         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
1262         (write_dependence_p): Likewise.
1263
1264 2002-04-04  Richard Henderson  <rth@redhat.com>
1265
1266         * predict.c (estimate_bb_frequencies): Do frequency calculation
1267         with a volatile temporary.
1268
1269 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
1270
1271         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
1272
1273 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1274
1275         PR c++/6119
1276         * final.c (final_start_function): Don't bump profile_label_no here...
1277         (final_end_function): ...but here.
1278
1279 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1280
1281         * config/sparc/sparc.md (pic): New attribute.
1282         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
1283         into stack slots.
1284         (split after do_builtin_setjmp_setup): New.
1285
1286 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1287
1288         PR fortran/6106
1289         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
1290         change.
1291
1292 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
1293
1294         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
1295         UNITS_PER_WORD for zero sized aggregates.
1296
1297 2002-04-03  David S. Miller  <davem@redhat.com>
1298
1299         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
1300         one-character spec for this, just use %(link_gcc_c_sequence).
1301
1302 2002-04-03  David S. Miller  <davem@redhat.com>
1303
1304         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
1305         handling.
1306
1307 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1308
1309         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
1310         (DWARF_FRAME_RETURN_COLUMN): Move.
1311         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
1312         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
1313         * pa.c (except.h, predict.h): Include.
1314         (FRP): Delete.
1315         (store_reg_modify, set_reg_plus_d): Revise prototypes.
1316         (output_ascii): Add cast.
1317         (store_reg_modify): Revise to add frame notes.
1318         (set_reg_plus_d): Likewise.
1319         (compute_frame_size): Include space for eh data registers in frame if
1320         the current function calls eh_return.
1321         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
1322         function calls eh_return.  Save eh data registers if the current
1323         function calls eh_return.  Fix code to add frame notes.  Emit
1324         blockage to prevent insns with frame notes being scheduled in the
1325         delay slot of calls.
1326         (hppa_expand_epilogue): Restore eh data registers and do final stack
1327         adjustment if the current function calls eh_return.  Don't add frame
1328         notes.
1329         (output_call): Revise for change in length of call insn.  Don't do
1330         return pointer adjustment for an unconditional jump in the delay slot
1331         of a call when using frame notes.
1332         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
1333         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
1334         (ARG_POINTER_CFA_OFFSET): Define.
1335         * pa.md (return_external_pic): New pattern.
1336         (prologue): Correct formatting.  Use return_external_pic if current
1337         function calls eh_return.
1338         (call_internal_symref, call_value_internal_symref,
1339         sibcall_internal_symref, sibcall_value_internal_symref): Change default
1340         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
1341         respectively.
1342         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
1343
1344         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
1345         list of targets to check using "nop" insn.
1346         * configure: Rebuilt.
1347
1348 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
1349
1350         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
1351
1352 2002-04-03  David S. Miller  <davem@redhat.com>
1353
1354         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
1355         library sequence passed to the linker.
1356         (LINK_COMMAND_SPEC): Use it.
1357         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
1358         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
1359         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
1360
1361 2002-04-03  Jason Merrill  <jason@redhat.com>
1362
1363         * except.c (struct eh_status): Remove protect_list.
1364         (begin_protect_partials, end_protect_partials): Remove.
1365         (add_partial_entry): Remove.
1366         * except.h: Remove prototypes.
1367
1368         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
1369         expand_decl_cleanup_eh.
1370
1371         PR c++/5636
1372         * tree.h (CLEANUP_EH_ONLY): New macro.
1373         * stmt.c (expand_decl_cleanup_eh): New fn.
1374         (expand_cleanups): Check CLEANUP_EH_ONLY.
1375         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
1376         Use expand_decl_cleanup_eh.
1377         (expand_stmt): Adjust.
1378         * c-common.h: Adjust prototype.
1379
1380 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
1381
1382         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
1383         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
1384         (cris_target_asm_function_epilogue): Ditto.
1385         (cris_initial_frame_pointer_offset): Ditto.
1386         (cris_simple_epilogue): Ditto.
1387         (cris_expand_builtin_va_arg): Variable-size types come in
1388         by-reference.
1389
1390 2002-04-03  David S. Miller  <davem@redhat.com>
1391
1392         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
1393         little-endian.
1394         (set_fast_math): Correct 'fsr' type.
1395
1396 2002-04-03  Richard Henderson  <rth@redhat.com>
1397
1398         PR opt/3569
1399         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
1400         * toplev.c (check_global_declarations): Use it.
1401         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
1402         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1403         (LANG_HOOKS_DECLS): Add it.
1404         * langhooks.c (lhd_warn_unused_global_decl): New.
1405         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1406         * c-objc-common.c (c_warn_unused_global_decl): New.
1407         * c-tree.h (c_warn_unused_global_decl): Declare.
1408         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1409
1410 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
1411
1412         * langhooks-def.h (lhd_set_decl_assembler_name,
1413         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
1414         (LANG_HOOKS_INITIALIZER): Update.
1415         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
1416         * langhooks.h (struct lang_hooks): New hook.
1417         * tree.c (set_decl_assembler_name): Move to langhooks.c.
1418         (lang_set_decl_assembler_name): Remove.
1419         (init_obstacks): Don't set hook.
1420         (decl_assembler_name): New function.
1421         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
1422         (decl_assembler_name): New.
1423         (lang_set_decl_assembler_name): Remove.
1424
1425 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
1426
1427         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
1428         works properly with .hidden symbols.
1429         * configure: Rebuilt.
1430         * config.in: Rebuilt.
1431         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
1432         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
1433         properly with .hidden symbols.
1434
1435 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
1436
1437         PR middle-end/6102
1438         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
1439         USE argument.
1440
1441 2002-04-03  Richard Henderson  <rth@redhat.com>
1442
1443         PR opt/4120
1444         * sched-rgn.c (sets_likely_spilled): New.
1445         (sets_likely_spilled_1): New.
1446         (add_branch_dependences): Use it.
1447
1448 2002-04-02  Richard Henderson  <rth@redhat.com>
1449
1450         PR opt/4311
1451         * loop.h (LOOP_FIRST_PASS): New.
1452         * loop.c (strength_reduce): Mind it when deciding to unroll.
1453         * toplev.c (rest_of_compilation): Set it.
1454
1455 2002-04-02  David S. Miller  <davem@redhat.com>
1456
1457         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
1458         mems_ok_for_ldd_peep when the order of the loads being examined
1459         is reversed.
1460         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
1461         existing comment to increase comprehension of this situation.
1462
1463 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
1464
1465         * config/sh/sh.md: Don't use union real_extract.
1466
1467 2002-04-02  Richard Henderson  <rth@redhat.com>
1468
1469         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
1470
1471 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
1472
1473         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
1474         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
1475         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
1476         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
1477         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
1478         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
1479         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
1480         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
1481         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
1482         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
1483         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
1484         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
1485         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
1486         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
1487         Include as many configury headers via tm_file as possible.  This
1488         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
1489         * config/openbsd-oldgas.h: New file.
1490         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
1491         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
1492         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
1493         config/i386/i386-coff.h, config/i386/i386-interix.h,
1494         config/i386/iscdbx.h, config/i386/linux-aout.h,
1495         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
1496         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
1497         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
1498         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
1499         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
1500         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
1501         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
1502         config/i386/vxi386.h: Do not directly include configury headers.
1503         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
1504         Directly include configury headers that are no longer automatically
1505         included by the above headers.
1506         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
1507         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
1508         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
1509         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
1510         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
1511         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
1512         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
1513         (TARGET_VERSION): Define.
1514         * config/i386/beos-elf.h, config/i386/freebsd.h,
1515         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
1516         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
1517         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
1518         config/i386/sco5.h, config/i386/sysv4.h
1519         (TARGET_VERSION): Do not need to protect.
1520         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
1521         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
1522         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
1523         config/i386/i386-interix.h, config/i386/linux-aout.h,
1524         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
1525         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
1526         (YES_UNDERSCORES): Do not define - not needed.
1527         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
1528         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
1529         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
1530         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
1531         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
1532         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
1533         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
1534         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
1535
1536 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
1537             Richard Henderson  <rth@redhat.com>
1538
1539         PR c/5484
1540         * function.c (assign_temp): Accept either type or decl argument.
1541         Detect variables whose size is too large to fit into an integer.
1542         * stmt.c (expand_decl): Pass the decl, not the type.
1543
1544 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
1545
1546         * protoize.c: Match include directory usage with cppdefault.c.
1547
1548 2002-04-03  Jeffrey A Law  (law@redhat.com)
1549             Hans-Peter Nilsson  <hp@bitrange.com>
1550
1551         * combine.c (simplify_comparison): Avoid narrowing a comparison
1552         with a paradoxical subreg when doing so would drop signficant bits.
1553
1554 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
1555
1556         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
1557         if POINTERS_EXTEND_UNSIGNED is defined.
1558
1559 2002-04-02  Richard Henderson  <rth@redhat.com>
1560
1561         PR opt/3967
1562         * local-alloc.c (contains_replace_regs): LO_SUM may contain
1563         replace regs.
1564
1565 2002-04-02  Richard Henderson  <rth@redhat.com>
1566
1567         * doc/standards.texi: Document required freestanding libc entry points.
1568
1569 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
1570
1571         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
1572         associated splitter.  Remove MQ constraint.
1573         (ctrdi_internal4): Correct CCmode clobber.
1574
1575 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1576
1577         * milli64.S ($$dyncall): New function.
1578         * t-linux (LIB1ASMFUNCS): Revise module list.
1579         (LIB1ASMSRC): Use pa/milli64.S.
1580
1581 2002-04-02  Richard Henderson  <rth@redhat.com>
1582
1583         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
1584         rename solaris_sys_varargs_h.
1585
1586 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1587
1588         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
1589         the same mode as its component.
1590
1591 2002-04-02  Richard Henderson  <rth@redhat.com>
1592
1593         PR opt/190
1594         * final.c (this_is_asm_operands): Export.
1595         * output.h (this_is_asm_operands): Declare.
1596         * config/i386/i386.c (print_operand): Error odd asm operands.
1597
1598 2002-04-02  Richard Henderson  <rth@redhat.com>
1599
1600         PR opt/420
1601         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
1602
1603 2002-04-01  Richard Henderson  <rth@redhat.com>
1604
1605         PR target/1538
1606         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
1607         * fixinc/fixincl.x: Rebuild.
1608
1609 2002-04-01  Richard Henderson  <rth@redhat.com>
1610
1611         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
1612         (atomic_alloc, atomic_free): New.
1613         (SIZE, MASK_FOR, PTR_IN): New.
1614         (emergency_reg_state, emergency_reg_state_free): New.
1615         (emergency_labeled_state, emergency_labeled_state_free): New.
1616         (reg_state_alloced, labeled_state_alloced): New.
1617         (alloc_reg_state, free_reg_state): New.
1618         (alloc_label_state, free_label_state, free_label_states): New.
1619         (push, pop, dup_state_stack, free_state_stack): Use them.
1620         (desc_label_state): Likewise.
1621         (uw_frame_state_for): Free label states and state stack.
1622         (uw_update_reg_address): Eliminate warnings.
1623
1624 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
1625
1626         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
1627         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
1628
1629 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1630
1631         * c-decl.c (grokdeclarator): Update.
1632         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1633         * c-tree.h (c_mark_addressable): New.
1634         * c-typeck.c (default_function_array_conversion, build_unary_op,
1635         build_array_ref, convert_for_assignment): Update.
1636         (mark_addressable): Rename.
1637         * calls.c (try_to_integrate, expand_call): Use langhook.
1638         * expr.c (expand_expr): Use langhook.
1639         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
1640         * langhooks.h (struct lang_hooks): New hook.
1641         * stmt.c (expand_asm_operands): Use langhook.
1642         * tree.h (mark_addressable): Remove.
1643 objc:
1644         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1645
1646 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
1647
1648         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
1649         in previous change.
1650
1651 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
1652
1653         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
1654         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
1655
1656 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1657
1658         * c-common.c (unsigned_conversion_warning, convert_and_check,
1659         unsigned_type, signed_type, shorten_compare,
1660         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
1661         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
1662         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
1663         New.
1664         * c-decl.c (grokdeclarator): Update.
1665         * c-format.c (check_format_types): Update.
1666         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1667         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1668         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
1669         * convert.c (convert_to_integer): Use new hooks.
1670         * expmed.c (make_tree): Use new hooks.
1671         * expr.c (store_expr): Use new hooks.
1672         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
1673         all_ones_mask_p, unextend, fold): Use new hooks.
1674         * langhooks.h (struct lang_hooks_for_types): New hooks.
1675         * tree.h (signed_or_unsigned_type, signed_type,
1676         unsigned_type): Remove.
1677 objc:
1678         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1679         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1680
1681 2002-03-31  Richard Henderson  <rth@redhat.com>
1682
1683         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
1684         (desc_frgr_mem): Fix reference to f16-f31.
1685
1686 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1687
1688         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
1689         RTVEC_ELT): Const-ify.
1690         * varray.h (VARRAY_CHECK): Const-ify.
1691         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
1692         ggc_mark_rtvec, ggc_mark): Const-ify.
1693
1694 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1695
1696         * diagnostic.c: Include langhooks-def.h.
1697         * Makefile.in (diagnostic.o): Update.
1698
1699 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1700
1701         * c-common.c (c_unsafe_for_reeval): Rename.
1702         * c-common.h (c_unsafe_for_reeval): Rename.
1703         * c-decl.c (finish_incomplete_decl): Rename.
1704         (c_init_decl_processing): Don't set langhook.
1705         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1706         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1707         * c-objc-common.c (c_objc_common_init): Don't set langhook.
1708         * c-tree.h (finish_incomplete_decl): Rename.
1709         * langhooks-def.h (lhd_unsafe_for_reeval): New.
1710         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
1711         (LANG_HOOKS_INITIALIZER): Update.
1712         * langhooks.c (lhd_unsafe_For_reeval): New.
1713         * langhooks.h (struct langhooks): New hooks.
1714         * toplev.c (incomplete_decl_finalize_hook): Remove.
1715         (wrapup_global_declarations): Update.
1716         * tree.c (lang_unsafe_for_reeval): Remove.
1717         (unsafe_for_reeval): Update.
1718         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
1719         Remove.
1720 objc:
1721         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1722         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1723
1724 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1725
1726         * diagnostic.c (print_error_function): Remove.
1727         (default_print_error_function): Rename.
1728         (report_error_function): Update.
1729         * diagnostic.h (print_error_function): Remove.
1730         (default_print_error_function): Remove.
1731         * langhooks-def.h (struct diagnostic_context): Predeclare.
1732         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
1733         (LANG_HOOKS_INITIALIZER): Update.
1734         * langhooks.h (struct diagnostic context): Predeclare.
1735         (struct lang_hooks): New hook.
1736
1737 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1738
1739         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
1740         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
1741         !flag_pic.
1742         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
1743         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
1744         of PIC_OFFSET_TABLE_REGNUM thruout.
1745         * config/rs6000/rs6000.md: Likewise.
1746         * config/rs6000/darwin.h: Likewise.
1747
1748 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1749
1750         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
1751         unsigned HOST_WIDE_INT, not unsigned int.
1752
1753 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1754
1755         PR middle-end/6096, middle-end/6098, middle-end/6099
1756         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
1757         CODE_LABELs.
1758         (fill_slots_from_thread): Likewise.
1759
1760 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1761
1762         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
1763         floating fields in float regs.
1764         (function_arg_record_value_2): Likewise.
1765
1766 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
1767
1768         * config/mmix/mmix.md (define_constants): Remove misleading
1769         FIXME.  Add MMIX_fp_rO_OFFSET.
1770         ("nonlocal_goto_receiver"): Don't have stack-frame address of
1771         saved rO as part of the pattern.  Remove FIXME.
1772         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
1773         here, at output-time.
1774
1775 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1776
1777         PR middle-end/6100
1778         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
1779         REG_BR_PRED.
1780         (output_v9branch): Likewise.
1781
1782 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
1783
1784         * gcc.c: Revert previous patch for now.
1785         * config/i386/djgpp.h: Likewise.
1786
1787 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
1788
1789         * config/mmix/crti.asm (_init): Register _fini with atexit.
1790         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
1791
1792 2002-03-31  Richard Henderson  <rth@redhat.com>
1793
1794         PR target/3997
1795         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
1796         (ASM_OUTPUT_DEF_FROM_DECLS): New.
1797
1798 2002-03-31  Richard Henderson  <rth@redhat.com>
1799
1800         * libgcc2.c (__bb_exit_func): Make static.
1801
1802         * config/alpha/alpha.md (trap): New.
1803
1804 2002-03-31  Richard Henderson  <rth@redhat.com>
1805
1806         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
1807         promoted argument types; build trap.
1808         (expand_builtin_trap): New.
1809         (expand_builtin): Use it.
1810         * stmt.c (expand_nl_goto_receivers): Likewise.
1811         * expr.h (expand_builtin_trap): Declare.
1812         * libfuncs.h (LTI_abort, abort_libfunc): New.
1813         * optabs.c (init_optabs): Init abort_libfunc.
1814
1815 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
1816
1817         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
1818         (LINK_COMMAND_SPEC): ... from here.
1819         (init_gcc_specs): Duplicate it here too, omitting
1820         shared_name in the second copy.
1821         (init_spec): Test for duplicate
1822         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
1823
1824 2002-03-30  David S. Miller  <davem@redhat.com>
1825
1826         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1827         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
1828
1829 2002-03-30  Roger Sayle <roger@eyesopen.com>
1830             Richard Henderson  <rth@redhat.com>
1831
1832         * regmove.c (combine_stack_adjustments_for_block): Avoid
1833         emitting a stack adjustment of zero bytes.  Let delete_insn
1834         update bb->head.
1835
1836 2002-03-30  Richard Henderson  <rth@redhat.com>
1837
1838         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
1839         (sparc_emitting_epilogue): New.
1840         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
1841         * config/sparc/sparc-protos.h: Update.
1842         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
1843         (TARGET_SWITCHES): Update.
1844         * config/sparc/sparc.md (return): Remove.
1845         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
1846         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
1847         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
1848         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
1849         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
1850         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
1851         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
1852         Remove MASK_EPILOGUE.
1853         * doc/invoke.texi: Update.
1854
1855 2002-03-30  Daniel Berlin  <dan@dberlin.org>
1856
1857         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
1858         CPP will start the file for us.
1859
1860 2002-03-30  Richard Henderson  <rth@redhat.com>
1861
1862         PR target/5446
1863         * config/ia64/ia64.c (group_barrier_needed_p): Special case
1864         prologue_allocate_stack.
1865         (ia64_single_set): Use insn codes for recognition of special
1866         cases, not rtl matching.
1867         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
1868
1869 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
1870
1871         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
1872
1873 2002-03-30  Richard Henderson  <rth@redhat.com>
1874
1875         PR target/6032
1876         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
1877         or -fomit-frame-pointer with profiling.
1878         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1879         (FUNCTION_PROFILER): Do nothing.
1880         (PROFILE_HOOK): New.
1881         * config/sparc/sparc.c (sparc_override_options): Don't check
1882         code models for profiling.
1883         (sparc_function_profiler): Remove.
1884         (sparc_profile_hook): New.
1885         * config/sparc/sparc-protos.h: Update.
1886
1887 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
1888
1889         PR optimization/6086
1890         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
1891         of SUBREG of volatile MEM or because the MEM was mode dependent,
1892         return CLOBBER instead of unmodified SUBREG.
1893
1894 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
1895
1896         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
1897         when not optimizing.
1898
1899         * toplev.c (rest_of_compilation): Cann mark_constant_function
1900         only when optimizing.
1901
1902         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
1903         are NULL.
1904
1905         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
1906         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
1907         (try_optimize_cfg): clear all AUX fields.
1908
1909         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
1910         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
1911         (ix86_address_cost): Be prepared for SUBREGed registers.
1912         (legitimate_address_p): Accept SUBREGed registers.
1913
1914 2002-03-29  Richard Henderson  <rth@redhat.com>
1915
1916         PR target/5672
1917         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
1918
1919 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1920
1921         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
1922         for aggregate and TFmode types.
1923
1924 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
1925
1926         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
1927
1928 2002-03-29  Richard Henderson  <rth@redhat.com>
1929
1930         PR target/5886
1931         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
1932         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
1933
1934 2002-03-29  Richard Henderson  <rth@redhat.com>
1935
1936         PR target/6041
1937         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
1938         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
1939         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
1940         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
1941         conditional.
1942         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
1943
1944 2002-03-29  Dale Johannesen <dalej@apple.com>
1945
1946         * loop.c (combine_movables): Do allow combination of pseudos.
1947
1948 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
1949
1950         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
1951         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
1952         No functional change except ...
1953         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
1954         * doc/install.texi (*-*-freebsd*): Document port configuration.
1955
1956 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
1957
1958         * Makefile.in (convert.o, calls.o, expmed.o): Update.
1959         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
1960         Use new hooks.
1961         * builtin-types.def (BT_PTRMODE): Update.
1962         * c-common.c (type_for_size): Rename c_common_type_for_size.
1963         (type_for_mode): Similarly.
1964         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
1965         Use new hook.
1966         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
1967         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
1968         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
1969         Redefine.
1970         * c-typeck.c (common_type, comptypes, default_conversion):
1971         Use new hooks.
1972         * calls.c: Include langhooks.h.
1973         (emit_library_call_value_1): Use new hooks.  Avoid redundant
1974         calls.
1975         * convert.c: Include langhooks.h
1976         (convert_to_pointer, convert_to_integer): Use new hooks.
1977         * except.c (init_eh): Similarly.
1978         * expmed.c: Include langhooks.h.
1979         (expand_mult_add): Use new hooks.
1980         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
1981         try_casesi): Similarly.
1982         * fold-const.c (optimize_bit_field_compare, make_range,
1983         decode_field_reference, fold_truthop, fold): Similarly.
1984         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
1985         put_var_into_stack): Similarly.
1986         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
1987         LANG_HOOKS_TYPE_FOR_SIZE): New.
1988         (LANG_HOOKS_TYPES_INITIALIZER): Update.
1989         * langhooks.h (lang_hooks_for_types): New hooks.
1990         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
1991         * tree.c (get_unwidened, get_narrower): Similarly.
1992         * tree.h (type_for_mode, type_for_size): Remove.
1993         * varasm.c (force_const_mem): Use new hooks.
1994         * utils2.c (nonbinary_modular_operation): Update.
1995 objc:
1996         * objc-act.c (handle_impent): Update.
1997         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
1998         Redefine.
1999
2000 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
2001
2002         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
2003         * config/ia64/ia64.c (basereg_operand): New.
2004         * config/ia64/ia64-protos.h (basereg_operand): Declare.
2005         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
2006
2007 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
2008
2009         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
2010         unwind information when frame_pointer_needed.
2011         (mmix_assemble_integer): Tweak wording in comment.
2012
2013 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
2014
2015         * Makefile.in (except.o): Update.
2016         * except.c: Include langhooks.h.
2017         (init_eh): Use langhook.
2018         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
2019         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
2020         (LANG_HOOKS_INITIALIZER): Update.
2021         * langhooks.h (lang_hooks_for_types): New.
2022         (struct lang_hooks): Add it.
2023         * tree.c (make_lang_type_fn, make_lang_type): Remove.
2024         * tree.h (make_lang_type_fn, make_lang_type): Remove.
2025 config:
2026         * alpha/alpha.c: Include langhooks.h.
2027         (alpha_build_va_list): Use langhook.
2028         * d30v/d30v.c: Include langhooks.h.
2029         (d30v_build_va_list): Use langhook.
2030         * i386/i386.c: Include langhooks.h.
2031         (ix86_build_va_list): Use langhook.
2032         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
2033         * s390/s390.c: Include langhooks.h.
2034         (s390_build_va_list): Use langhook.
2035         * stormy16/stormy16.c: Include langhooks.h.
2036         (stormy16_build_va_list): Use langhook.
2037
2038 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
2039
2040         PR c++/5964
2041         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
2042         attributes.
2043         (length): Compute variable length for branches/calls/jumps here.
2044         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
2045         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
2046         define branch_type attribute.
2047         (divsi3_sp32): Maximum length is 6 not 7.
2048         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
2049         call_address_untyped_struct_value_sp32,
2050         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
2051         * config/sparc/sparc.c (empty_delay_slot): New function.
2052         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
2053         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
2054
2055 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
2056
2057         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
2058         nonzero_bits if not needed.
2059         (nonzero_bits) [XOR]: Likewise.
2060         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
2061         reg_last_set_mode and mode are both MODE_INT, but not equal.
2062         (record_value_for_reg): Compute reg_last_set_nonzero_bits
2063         in nonzero_bits_mode for MODE_INT modes.
2064
2065 2002-03-28  Richard Henderson  <rth@redhat.com>
2066
2067         PR target/5715
2068         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
2069         to GAS.  Correct drift between alternatives.
2070
2071 2002-03-28  Richard Henderson  <rth@redhat.com>
2072
2073         PR target/6087
2074         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
2075
2076 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
2077
2078         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
2079         emulation to the linker.
2080
2081 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
2082
2083         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
2084         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
2085
2086 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
2087
2088         * combine.c (simplify_and_const_int): Make sure to apply mask
2089         when force_to_mode returns a constant integer.  PR3311.
2090
2091 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2092
2093         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
2094
2095 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2096
2097         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
2098         and Objective-C Dialect Options.
2099
2100 2002-03-28  Richard Henderson  <rth@redhat.com>
2101
2102         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
2103         comparison should be done vs !=0 not >0 return code.  Tidy cases.
2104
2105 2002-03-28  Richard Henderson  <rth@redhat.com>
2106
2107         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
2108         on to c_expand_body.
2109         * c-tree.h (finish_function): Update decl.
2110         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
2111
2112 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
2113
2114         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
2115
2116 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
2117
2118         * rtlanal.c: Include flags.h
2119         (may_trap_p): Do not mark FP operations if trapping
2120         if !flag_trapping_math
2121         * Makefile.in (rtlanal.o): Add dependency on flag.h
2122         * ifcvt.c (noce_operand_ok): Avoid the lameness.
2123
2124 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
2125
2126         * mips.md: Use dconst1, not 1.0, as first argument of
2127         REAL_VALUE_LDEXP.  Don't use union real_extract.
2128
2129 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
2130
2131         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
2132         rather than $target.  Heed program_prefix and
2133         program_transform_name.  Search for gas in cross-compiler case too.
2134         "test -x" rather than "test -f".
2135         (gcc_cv_ld): Likewise.
2136         (gcc_cv_nm): Heed program_prefix and program_transform_name.
2137         (gcc_cv_objdump): Likewise.
2138         * configure: Regenerate.
2139
2140 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2141
2142         * Makefile.in (attribs.o): Update.
2143         * attribs.c: Include langhooks.h.
2144         (decl_attributes): Use langhook.
2145         * c-decl.c (insert_default_attributes): Rename.
2146         * c-tree.h (c_insert_default_attributes): New.
2147         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
2148         (LANG_HOOKS_INITIALIZER): Update.
2149         * langhooks.h (struct lang_hooks): New hook.
2150         * tree.h (insert_default_attributes): Remove.
2151 objc:
2152         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
2153
2154 2002-03-27  Andreas Schwab  <schwab@suse.de>
2155
2156         * config/i386/i386.c (classify_argument): Also check for
2157         QUAL_UNION_TYPE.
2158
2159 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2160
2161         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
2162         any more.
2163
2164 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
2165
2166         * i960.md (ret): Set PC.
2167         (nonlocal_goto): Fix expander.
2168         * builtins.c (epxand_builin_longjmp): Check that we've emitted
2169         some jump or call.
2170
2171 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
2172
2173         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
2174         of libcall regions.
2175
2176 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2177
2178         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
2179         assigning to BLOCK_FOR_INSN directly.
2180
2181 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
2182
2183         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
2184
2185 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2186
2187         * c-common.c (c_expand_expr): Fix prototype.
2188         * c-common.h (c_expand_expr): Always declare, update.
2189         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
2190         * c-objc-common.c (c_objc_common_init): No global hook.
2191         * expr.c (expand_expr): Use langhook.
2192         * expr.h (enum expand_modifier): Conditionally declare.
2193         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
2194         (LANG_HOOKS_INITIALIZER): Update.
2195         * langhooks.c (lhd_expand_expr): New.
2196         * langhooks.h (struct lang_hooks): New hook.
2197         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
2198         (lang_independent_init): Don't default hook.
2199 objc:
2200         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
2201
2202 2002-03-27  Richard Henderson  <rth@redhat.com>
2203
2204         PR target/6054
2205         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
2206         TARGET_CONST_GP.  Simplify conditions.
2207
2208 2002-03-27  Richard Henderson  <rth@redhat.com>
2209
2210         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
2211         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
2212         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
2213
2214 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
2215
2216         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
2217         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
2218         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
2219         Remove unnecessary masks.
2220         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
2221         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
2222         -mwindows, -mdll switches and their negations.
2223
2224 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
2225
2226         * gcc-common.c (lang_mark_false_label_stack): Remove.
2227         * ggc.h (lang_mark_false_label_stack): Similarly.
2228
2229 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
2230
2231         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
2232
2233         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
2234         or __rtems_ is defined.
2235
2236 2002-03-26  Richard Henderson  <rth@redhat.com>
2237
2238         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
2239         if a non-trivial load was emitted.
2240         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
2241         in high+extra+low case.
2242
2243 2002-03-26  Richard Henderson  <rth@redhat.com>
2244
2245         * config.gcc (sparc*-solaris): Use float_format=sparc.
2246
2247 2002-03-26  Richard Henderson  <rth@redhat.com>
2248
2249         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
2250         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
2251         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
2252         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
2253         (WINT_TYPE_SIZE): Fix at 32.
2254
2255 2002-03-26  Richard Henderson  <rth@redhat.com>
2256
2257         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
2258         until after eh landing pad generation.
2259         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
2260         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
2261
2262 2002-03-26  Richard Henderson  <rth@redhat.com>
2263
2264         * expr.h (ADD_PARM_SIZE): One more convert for INC.
2265
2266 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
2267
2268         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
2269         and warning switches.
2270         (cc1_options):  Likewise.
2271
2272 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
2273
2274         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
2275         Restore more of the signal context.  Set no_reg_stack_frame.
2276         * config/ia64/unwind-ia64.c (unw_state_record):
2277         Add no_reg_stack_frame, comments.
2278         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
2279         (uw_update_context): Adjust bsp when unwinding from leaf,
2280         but not signal frame.
2281
2282 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
2283
2284         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
2285
2286 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
2287
2288         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
2289
2290 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
2291
2292         PR target/5621
2293         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
2294         "Add a pool_range attribute", which was lost during the ARM/Thumb
2295         merge.
2296
2297 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
2298
2299         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
2300         a register into the MAC16 accumulator.
2301
2302 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
2303
2304         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
2305         (Warning Options): Document -Wswitch-enum.
2306         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
2307         -Wswitch.
2308         (warn_switch_enum): Define variables.
2309         * flags.h (warn_switch_enum): Declare variables.
2310         * stmt.c (expand_end_case_type): When warn_switch_enum /
2311         -Wswitch-enum, perform switch checks.
2312         Fix PR c/5044.
2313
2314 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
2315
2316         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
2317         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
2318         (reload_muladdsi_compare0_scratch): Delete.
2319
2320 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
2321
2322         * doc/install.texi (*-*-freebsd*): Update.
2323
2324 2002-03-26  Richard Henderson  <rth@redhat.com>
2325
2326         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
2327         (SUB_PARM_SIZE): Cast DEC to ssizetype.
2328
2329         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
2330         types from the normal argument frame.
2331
2332         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
2333         variable sized objects by reference.
2334         (sparc_va_arg): Receive them by reference too.
2335
2336 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
2337
2338         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
2339         code to not restoring global registers.
2340
2341 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
2342
2343         * Makefile.in (ggc-common.o): Update.
2344         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
2345         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
2346         * c-tree.h (c_mark_tree): New.
2347         * ggc-common.c: Include langhooks.h.
2348         (gcc_mark_trees): Use new langhook.
2349         * ggc-callbacks.c: Delete file.
2350         * ggc.h (lang_mark_tree): Remove.
2351         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
2352         (LANG_HOOKS_INITIALIZER): Update.
2353         * langhooks.h (struct lang_hooks): New hook.
2354 objc:
2355         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
2356
2357 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
2358
2359         * doc/cpp.texi: Exclude entire Top node from printed manual.
2360         Move option index after directive index.  Insert page breaks
2361         before GFDL and concept index.  Index environment variables
2362         with command line options.
2363         * doc/cppenv.texi: Use @vtable for environment variable list.
2364         Add paragraph explaining semantics of empty elements in path
2365         variables.  Exclude a cross-reference to Fishkill from the
2366         manpage.  Remove an unnecessary cross-reference of the entry
2367         right above the referer.  Don't use @anchor in text that goes
2368         into manpage.
2369         * doc/cppopts.texi: Cross-reference the environment variables
2370         section, not the specific environment variable, for consistency.
2371
2372 2002-03-25  Richard Henderson  <rth@redhat.com>
2373
2374         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
2375         anywhere in the block.  Don't refer to insns that have been
2376         removed from the chain.  Iterate backward through the new insns.
2377         Don't refer to edges that have been removed.
2378
2379 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
2380
2381         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
2382         test for overflow of constant.
2383
2384 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
2385
2386         PR target/2623
2387         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
2388         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
2389         these patterns on arm_archv4.
2390
2391 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
2392
2393         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
2394         int".
2395
2396 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
2397
2398         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
2399         float_handled, float_handler, float_signal, set_float_handler,
2400         and do_float_handler.  Set handler for SIGFPE to crash_signal.
2401         * toplev.h: Don't prototype do_float_handler.
2402
2403         * c-lex.c: Fold parse_float into lex_number.  Make warning
2404         about portability of hex float constants more informative, and
2405         don't issue it on top of a syntax error.
2406         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
2407         their callers.
2408         * real.h: Define REAL_VALUE_ABS here...
2409         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
2410         simplify_unary_real, simplify_binary_real, and
2411         simplify_binary_is2orm1 into their callers.
2412         * tree.c: Fold build_real_from_int_cst_1 into caller.
2413
2414         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
2415
2416         * tsystem.h: Include float.h here...
2417         * libgcc2.c: ... not here.
2418
2419 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
2420
2421         Fixes for: PR bootstrap/3591, target/5676
2422         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
2423         defined.  Do not disable exceptions or rtti.
2424         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
2425         mcore.h.  Disable exceptions and rtti, since they are not
2426         supported by EPOC.
2427
2428 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
2429
2430         * c-decl.c (maybe_build_cleanup): Remove.
2431         * expr.c (expand_expr): Use langhook.
2432         * langhooks-def.h (lhd_return_null_tree,
2433         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
2434         (LANGHOOKS_INITIALIZER): Update.
2435         * langhooks.c (lhd_return_null_tree): New.
2436         * langhooks.h (struct lang_hooks): New hook.
2437         * tree-inline.c (initialize_inlined_parameters): Use langhook.
2438         * tree.h (maybe_build_cleanup): Remove.
2439
2440 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2441
2442         * regrename.c (build_def_use): Move recog_memoized
2443         before extract_insn.
2444
2445 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2446
2447         PR target/6043
2448         * expr.c (emit_group_store): Handle storing into CONCAT.
2449
2450 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2451
2452         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
2453         corresponding MATCH_DUP.
2454
2455 2002-03-24  Richard Henderson  <rth@redhat.com>
2456
2457         * unroll.c (unroll_loop): Zero label_map.
2458
2459         * gcse.c: Include except.h.
2460         * Makefile.in (gcse.o): Update.
2461
2462 2002-03-24  Richard Henderson  <rth@redhat.com>
2463
2464         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
2465         Do resolve_unique_section before shared data clause.
2466
2467 2002-03-24  Richard Henderson  <rth@redhat.com>
2468
2469         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
2470
2471 2002-03-24  Richard Henderson  <rth@redhat.com>
2472
2473         * recog.c (peephole2_optimize): Split blocks when EH insns are
2474         generated in the middle of a block.  Do global life update if
2475         zapped EH edges.
2476
2477 2002-03-24  Richard Henderson  <rth@redhat.com>
2478
2479         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
2480
2481 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2482
2483         preprocessor/3951
2484         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
2485         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
2486         (init_dependency_output): Don't make no_output decision here.
2487
2488 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
2489
2490         * stmt.c (check_for_full_enumeration_handling): Remove tests of
2491         warn_switch.  Update description.
2492         (expand_end_case_type): Call check_for_full_enumeration_handling
2493         when warn_switch.
2494
2495 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2496
2497         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
2498         (m68hc11_split_move): Call it to see if the source and destination
2499         operands use the same direction auto inc/dec mode, otherwise make the
2500         source an offsetable memory operand and generate an add.
2501
2502 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2503
2504         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
2505         register for operand 2.
2506         ("*subsi3_zero_extendqi"): Likewise.
2507         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
2508         bits so that it is compatible with a pop.
2509         ("*andhi3_gen"): Likewise.
2510         ("xorhi3"): Likewise.
2511
2512 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2513
2514         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
2515         -pedantic here...
2516         (cpp_post_options): ... not here.
2517
2518 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2519             Aldy Hernandez  <aldyh@redhat.com>
2520
2521         Removal of separate preprocessor cpp0.
2522
2523         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
2524         cpp0, install-common): Update.
2525         * c-common.c (flag_preprocess_only): New.
2526         (c_common_init): Preprocess for -E.
2527         * c-common.h (flag_preprocess_only): New.
2528         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
2529         * c-objc-common.c (c_init_decl_processing): Exit quickly
2530         for NULL return from c_common_init.
2531         * cpplib.h (cpp_preprocess_file): New.
2532         * cppmain.c (main, general_init, pfile, progname): Remove.
2533         (do_preprocessing): Rename cpp_preprocess_file, don't call
2534         cpp_finish.  Don't close stdout here.
2535         (setup_callbacks): Update prototype.
2536         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
2537         Update.
2538         * tradcpp.c (main): Ignore -quiet.
2539 objc:
2540         * lang-specs.h (default_compilers): Preprocess with cc1obj.
2541
2542 2002-03-24  Richard Henderson  <rth@redhat.com>
2543
2544         PR optimization/5742
2545         * machmode.def: Add inner mode field to complex modes.
2546         * config/mips/mips.c (mips_function_value): Always define.  Add
2547         new argument to handle libcalls.
2548         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
2549         (FUNCTION_VALUE): Likewise.
2550         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
2551         * config/mips/mips-protos.h: Update.
2552
2553 2002-03-23  Richard Henderson  <rth@redhat.com>
2554
2555         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
2556         * config/sparc/sparc-protos.h: Update.
2557         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
2558
2559 2002-03-23  Richard Henderson  <rth@redhat.com>
2560
2561         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
2562         _start or _init begins the text segment.
2563
2564 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
2565
2566         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
2567         not HOST_WIDEST_INT.
2568         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
2569
2570 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
2571
2572         PR java/5489
2573         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
2574         operand argument to output_return_instruction.
2575         * arm.c (arm_print_operand, case 'd'): If the operand is
2576         const_true_rtx then just return.
2577         (arm_print_operand, case 'D'): If the operand is const_true_rtx
2578         then abort.
2579
2580 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
2581
2582         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
2583         (Warning Options): Document -Wswitch-default.
2584         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
2585         -Wswitch.
2586         (warn_switch_default): Define variable.
2587         (warn_switch): Update comment.
2588         * flags.h (warn_switch_default): Declare variable.
2589         (warn_switch): Update comment.
2590         * stmt.c (expand_end_case): Check for and, when
2591         warn_switch_no_default, warn of a missing default case.
2592
2593 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
2594
2595         * real.h (N): Special case 128 bit doubles.
2596
2597         * combine.c (simplify_comparison): When widening modes, ignore
2598         sign extension on CONST_INTs.
2599
2600 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
2601
2602         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
2603         passed to adjust_address.  Fix comment formatting.
2604
2605
2606 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
2607
2608         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
2609         Always make REAL_VALUE_TYPE a struct containing an array of
2610         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
2611         big it is.  Don't declare or use union real_extract.
2612
2613         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
2614         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
2615         (print_operand), config/arm/arm.c (output_move_double),
2616         config/arm/arm.md (consttable_4, consttable_8),
2617         config/romp/romp.c (output_fpops), config/s390/s390.h
2618         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
2619         (xtensa_output_literal): Don't use union real_extract.
2620
2621         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
2622         (sfmode_constant_to_ulong), config/ns32k/merlin.h
2623         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
2624         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
2625         (PRINT_OPERAND): Don't use local version of union
2626         real_extract.
2627
2628         * config/convex/convex.c (check_float_value), config/vax/vax.c
2629         (vax_float_literal), config/m88k/m88k.md (divdf3),
2630         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
2631         config/pdp11/pdp11.c (output_move_quad): Don't do host
2632         arithmetic on target floating point quantities.
2633
2634         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
2635         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
2636
2637         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
2638         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
2639
2640         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
2641         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
2642         INFINITY.
2643         * print-rtl.c (print_rtx): Disable code which needs
2644         floating-point emulator.
2645         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
2646         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
2647         depending on HOST_FLOAT_FORMAT to be defined properly.
2648
2649         * config/1750a/1750a.c (get_double, float_label): Delete.
2650         (print_operand): Delete huge commented-out chunk.  Use
2651         REAL_VALUE_TO_DECIMAL.
2652         * config/1750a/1750a-protos.h: Delete prototypes of deleted
2653         functions.
2654         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
2655         IEEE_FLOAT_FORMAT.
2656         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
2657         Use REAL_VALUE_TO_DECIMAL as ELF version does.
2658         * config/m88k/m88k.c (real_power_of_2_operand,
2659         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
2660         real_extract out of the union; run the input through
2661         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
2662         from that into the union.
2663         * config/pdp11/pdp11.c (output_move_double): Rearrange
2664         parentheses to make automatic indenter happy.
2665
2666         * doc/tm.texi (Cross-compilation): Rename node to "Floating
2667         Point" and rewrite to describe current situation.  Also adjust
2668         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
2669         match code.
2670         * doc/rtl.texi: Adjust cross reference.
2671
2672 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
2673
2674         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
2675         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
2676         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
2677         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
2678         prevent use of sp as a reload register.
2679         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
2680         non_acc_reg_operand.
2681         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
2682         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
2683         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
2684         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
2685
2686 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2687
2688         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
2689         * cpplex.c (unterminated): Delete.
2690         (parse_string): No string literal may extend over multiple
2691         lines.  Suppress the error when preprocessing assembly.
2692         * cppmain.c (scan_translation_unit): Strings are single-line.
2693
2694         * doc/cpp.texi: Update to match.
2695
2696 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
2697
2698         PR optimization/5854
2699         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
2700         Shut up warnings.
2701         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
2702         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
2703         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
2704         const0 if scratch register was not allocated.
2705         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
2706         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
2707         with GEN_INT (...).
2708         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
2709         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
2710         with GEN_INT (...) everywhere.  Remove constraints in define_split
2711         patterns.
2712         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
2713         require scratch register for setting 0 into regs/non-pushable memory.
2714
2715 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
2716
2717         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
2718         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
2719
2720 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
2721
2722         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
2723         * cppinit.c (cpp_create_reader):  On by default.
2724         (cpp_handle_option):  Handle -W[no-]endif-labels.
2725         (cpp_post_options):  Also enable if -pedantic.
2726         * cpplib.c (do_else):  Use it.
2727         (do_endif):  Likewise.
2728         * doc/cppopts.texi:  Document new option.
2729         * doc/invoke.texi:  Document new option.
2730
2731 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
2732
2733         * config/i386/i386.c, config/i386/i386.md: Change all occurences
2734         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
2735
2736 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
2737
2738         * flow.c (calculate_global_regs_live): Clear aux fields of
2739         ENTRY and EXIT.
2740
2741 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
2742
2743         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
2744         REG or MEM subregs, pass rtx * instead of rtx to it.
2745         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
2746         rtx * instead of rtx to alter_subreg.
2747         * config/m32r/m32r.c (gen_split_move_double): Likewise.
2748         * config/pj/pj.c (pj_output_rval): Likewise.
2749
2750 2002-03-22  Richard Henderson  <rth@redhat.com>
2751
2752         PR target/3177
2753         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
2754         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
2755         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
2756         (ia64_expand_prologue): Look at int_regs, not words, for number
2757         of incomming int regs.
2758
2759 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
2760
2761         * expr.c (expand_expr): A RESULT_DECL is part of a call.
2762
2763 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
2764
2765         * toplev.c (flag_loop_optimize, flag_crossjumping):
2766         New static variables.
2767         (rest_of_compilation): Conditionalize crossjumping and
2768         loop optimizer.
2769         (parse_options_and_default_flags): Default loop_optimize and
2770         crossjumping.
2771         (lang_independent_options): Add -fcrossjumping and -floop-optimize
2772         * invoke.texi (crossjumping, loop-optimize): Document.
2773
2774 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2775
2776         * real.c (eiisneg): Move outside #ifdef NANS.
2777
2778 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
2779
2780         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
2781         frequencies match; avoid match on different loop depths.
2782         (try_crossjump_to_bb): Kill tests that no longer brings time
2783         savings.
2784         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
2785         updating code.
2786         (split_edge): Likewise.
2787
2788         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
2789         variable.
2790
2791         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
2792         * cfgrtl.c: Include insn-config.h
2793         (split_block) Dirtify block in presence of conditional execution
2794
2795 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2796
2797         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
2798         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
2799         (function_arg): Constify CUMULATIVE_ARGS.
2800         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
2801         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
2802         (UNITS_PER_DOUBLE): New macro.
2803         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
2804         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
2805         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
2806         fp_regs and stack_words.
2807         (EABI_FLOAT_VARARGS_P): New macro.
2808         * config/mips/mips.c (struct mips_arg_info): New.
2809         (mips_arg_info): New function.
2810         (function_arg_advance): Use it.  Add adjustment instructions here
2811         rather than in function_arg.
2812         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
2813         for VOIDmode at the beginning of the function.
2814         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
2815         (function_arg_pass_by_reference): Likewise.
2816         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
2817         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
2818         (mips_va_start): Likewise.  Use the new stack_words field of
2819         CUMULATIVE_ARGS to set up overflow area.  Reformat.
2820         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
2821         doubles and other types, aligning the overflow pointer for non-doubles
2822         too.  Remove some code duplication.  Replace hard-coded constants.
2823
2824 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2825
2826         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
2827         (CLASS_UNITS): Undefine.
2828         (CLASS_MAX_NREGS): Use FP_INC.
2829         * config/mips/mips.c (compute_frame_size): Likewise.
2830         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
2831
2832 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2833
2834         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
2835         prototype, and handle lexing numbers and identifiers.
2836         (parse_identifier): Update to new form of parse_slow.
2837         (parse_number): Fast path only, use parse_slow otherwise.
2838         (_cpp_lex_direct): Update calls to parse_number.
2839
2840 2002-03-21  DJ Delorie  <dj@redhat.com>
2841
2842         * bb-reorder.c (make_reorder_chain_1): Protect against
2843         when redundant edges are omitted.
2844         * predict.c (dump_prediction): Likewise.
2845
2846 2002-03-21  Richard Henderson  <rth@redhat.com>
2847
2848         PR target/5996
2849         * fixinc/inclhack.def (solaris_stdio_tag): New.
2850         * fixinc/fixincl.x: Regenerate.
2851
2852 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
2853
2854         PR c/5597
2855         * c-typeck.c (process_init_element): Flag non-static
2856         initialization of a flexible array member as illegal.
2857
2858 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
2859
2860         * config/rs6000/t-linux64: New.
2861         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
2862         t-ppccomm.  Use t-rs6000 and t-linux64.
2863         (powerpc64-*-gnu* <tmake_file>): Likewise.
2864         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
2865         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
2866         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
2867
2868 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
2869
2870         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
2871         flag_really_no_inline instead of optimize == 0.
2872
2873         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
2874
2875         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
2876
2877         * flags.h (flag_really_no_inline): New.
2878
2879         * c-common.c (c_common_post_options): Initialize
2880         flag_really_no_inline.
2881
2882         * toplev.c (flag_really_no_inline): New.
2883
2884 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
2885
2886         * config/avr/avr.md (length): Fix length computation for
2887         conditional branches.
2888
2889 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
2890
2891         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
2892         sdbout.o, profile.o): Update.
2893         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
2894         langhook.
2895         * c-common.h (gettags): Move here from tree.h.
2896         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
2897         insert_block, getdecls, kept_level_p, global_bindings_p): New.
2898         * dbxout.c (dbxout_init): Use getdecls langhook.
2899         * expr.c (expand_expr): Use insert_block langhook.
2900         * fold-const.c: Include langhooks.h.
2901         (fold_range_test, fold_binary_op_with_conditional_arg,
2902         fold): Use global_bindings_p langhook.
2903         * integrate.c (expand_inline_function): Use insert_block langhook.
2904         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
2905         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
2906         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
2907         LANG_HOOKS_GETDECLS): New.
2908         (LANG_HOOKS_INITIALIZER): Update.
2909         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
2910         langhook.
2911         * langhooks.h (struct lang_hooks_for_decls): New.
2912         (struct lang_hooks): Update.
2913         * profile.c: Include langhooks.h.
2914         (output_func_start_profiler): Use new langhooks.
2915         * sdbout.c: Include langhooks.h.
2916         (sdbout_init, sdbout_finish): Use getdecls langhook.
2917         * stmt.c: Include langhooks.h.
2918         (expand_fixup, fixup_gotos): Use new langhooks.
2919         * stor-layout.c: Include langhooks.h.
2920         (variable_size): Use global_bindings_p langhook.
2921         * toplev.c (compile_file): Use getdecls langhook.
2922         * tree-inline.c (remap_block): Use insert_block langhook.
2923         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
2924         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
2925
2926 2002-03-21  Richard Henderson  <rth@redhat.com>
2927
2928         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
2929         constants in .data when -fpic.
2930
2931 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2932
2933         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
2934         where appropriate.
2935
2936 2002-03-21  Tom Tromey  <tromey@redhat.com>
2937
2938         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
2939
2940 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2941
2942         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
2943
2944         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
2945
2946 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
2947             Richard Henderson  <rth@redhat.com>
2948
2949         PR c/5354
2950         * c-common.c (c_expand_expr): Preserve result of a statement
2951         expression if needed.
2952
2953 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
2954
2955         PR bootstrap/4195
2956         * genrecog.c (maybe_both_true_mode): Remove.
2957         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
2958         * machmode.def (Pmode): Likewise.
2959
2960 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
2961
2962         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
2963         (nonlocal_mentioned_p_1): New function.
2964         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
2965         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
2966         (mark_constant_function): Recognize pure functions.
2967         * rtl.h (global_reg_mentioned_p): New prototype.
2968         * rtlanal.c (global_reg_mentioned_p,
2969         global_reg_mentioned_p_1): New function.
2970
2971 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2972
2973         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
2974         UNIX assert.h.
2975         * fixinc/fixincl.x: Regenerate.
2976
2977 2002-03-20  Jason Merrill  <jason@redhat.com>
2978
2979         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
2980
2981 2002-03-20  Michael Meissner  <meissner@redhat.com>
2982
2983         * doc/invoke.texi (Optimize Options): Document that -O2 sets
2984         -fstrict-aliasing.
2985
2986 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
2987
2988         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
2989         ".literal_position" directive before the constant pool.
2990
2991 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2992
2993         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
2994         Add Craig Rodrigues.
2995         Add Brad Lucier to testers.
2996
2997 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
2998
2999         PR target/4792
3000         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
3001         to if_then_else.
3002         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
3003         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
3004         instead of insn_extract.
3005
3006 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
3007
3008         PR bootstrap/4192
3009         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
3010
3011         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
3012         stmt if some case has been output.
3013
3014 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
3015
3016         PR c/5972
3017         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
3018         movsfcc_1, movdfcc_1): Add %O2.
3019         * config/i386/i386.c (print_operand): Handle %ON.
3020         Print . before float condition codes in Sun as cmov syntax.
3021         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
3022         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
3023         no longer true.
3024
3025 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
3026
3027         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
3028         return instruction if PC was popped.
3029
3030 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
3031
3032         * config/xtensa/xtensa.md: Remove unused type attributes.
3033         (adddi_carry, subddi_carry): Change type attribute to "multi".
3034
3035 2002-03-19  Dale Johannesen  <dalej@apple.com>
3036
3037         PR optimization/5999, middle-end/5731
3038         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
3039         multiplications by reciprocals.
3040
3041 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
3042
3043         * Makefile.in: Update.
3044         * c-common.c: Include langhooks.h.
3045         (inline_forbidden_p): Use new hook.
3046         * diagnostic.c: Include langhooks.h.
3047         (format_with_decl, announce_function,
3048         default_print_error_function): Use new hook.
3049         * dwarf2out.c (dwarf2_name): Use new hook.
3050         * function.c: Include langhooks.h.
3051         (init_function_start): Use new hook.
3052         * langhooks-def.h (lhd_decl_printable_name): New.
3053         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
3054         (LANGHOOKS_INITIALIZER): Update.
3055         * langhooks.c (lhd_decl_printable_name): New.
3056         * langhooks.h (struct lang_hooks): New hook.
3057         * toplev.c (decl_name, decl_printable_name): Remove.
3058         (open_dump_file): Use new hook.
3059         (process_options): Remove old hook.
3060         * tree.h (decl_printable_name): Remove.
3061 objc:
3062         * objc-act.c (objc_init): Remove old hook.
3063         (objc_printable_name): Export.
3064         * objc-act.h (objc_printable_name): New.
3065         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
3066
3067 2002-03-19  Jim Blandy  <jimb@redhat.com>
3068
3069         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
3070         the start_source_file debug hook, not the current line number.
3071
3072 2002-03-19  Richard Henderson  <rth@redhat.com>
3073
3074         * flow.c (EH_USES): Provide default.
3075         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
3076         * doc/tm.texi (EH_USES): New.
3077
3078         * config/ia64/ia64.c (ia64_eh_uses): New.
3079         * config/ia64/ia64-protos.h: Update.
3080         * config/ia64/ia64.h (EH_USES): New.
3081
3082 2002-03-19  Richard Henderson  <rth@redhat.com>
3083
3084         * varasm.c (output_constant_def): Fix stupid typo.
3085
3086 2002-03-19  Richard Henderson  <rth@redhat.com>
3087
3088         PR 5879
3089         * except.c (current_function_has_exception_handlers): New.
3090         * except.h: Declare it.
3091         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
3092         Combine tests that disable all sibcalls for the function.
3093
3094 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
3095
3096         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
3097         for INTEGER_CST.
3098
3099 2002-03-19  Richard Henderson  <rth@redhat.com>
3100
3101         PR 5977, 5991
3102         * config/ia64/ia64.c: Revert 2002-03-01 patch.
3103         * config/ia64/ia64.h (INIT_EXPANDERS): New.
3104
3105 2002-03-19  Jim Blandy  <jimb@redhat.com>
3106
3107         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
3108         name, even if the replacement list contains no tokens, as required
3109         by Dwarf.
3110
3111 2002-03-19  Jason Merrill  <jason@redhat.com>
3112
3113         * varasm.c (globalize_decl): Get the name from the RTL, not
3114         DECL_ASSEMBLER_NAME.
3115
3116         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
3117
3118 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
3119
3120         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
3121         subdi_carry): Define.
3122
3123 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
3124
3125         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
3126         about -fpic/-fPIC if extra_warnings set.
3127
3128 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
3129
3130         * expr.c (expand_expr): Sign-extend CONST_INT generated from
3131         TREE_STRING_POINTER.
3132         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
3133
3134 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3135
3136         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
3137         in favor of SP if FRAME_POINTER_REQUIRED is false.
3138
3139 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
3140
3141         * emit-rtl.c (gen_int_mode): New function.
3142         * rtl.h: Prototype for it.
3143         * combine.c (make_extraction, simplify_comparison), expmed.c
3144         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
3145         (convert_modes, store_field), optabs.c (expand_fix),
3146         simplify-rtx.c (neg_const_int, simplify_unary_real),
3147
3148         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
3149         Use it instead of GEN_INT (trunc_int_for_mode (...)).
3150
3151 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
3152
3153         PR c/5656
3154         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
3155         convert_parm_for_inlining.
3156         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
3157         Define.
3158         * langhooks-def.h: Likewise.
3159         * objc/objc-lang.c: Likewise.
3160         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
3161         function.
3162         * tree-inline.c (initialize_inlined_parameters):
3163         Call convert_parm_for_inlining lang hook if needed.
3164         * c-typeck.c (c_convert_parm_for_inlining): New function.
3165         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
3166
3167 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
3168
3169         * calls.c (precompute_arguments): Do not assume that temporaries
3170         can be destroyed after expanding the argument.
3171         (expand_call): Likewise.
3172
3173 2002-03-15  Eric Christopher  <echristo@redhat.com>
3174
3175         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
3176         Fix register preference on last change.
3177         * config/mips/mips.c (mips_return_in_memory): New function.
3178         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
3179         * config/mips/mips-protos.h: Declare.
3180         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
3181         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
3182
3183 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
3184
3185         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
3186         a register too.
3187         (anddi3, iorsi3): Likewise.
3188
3189         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
3190         use %gprel for symbols that are going to be placed in linkonce
3191         sections.
3192
3193         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
3194         RETURN_ADDRESS_POINTER_REGNUM to $ra.
3195         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
3196         not needed.  Disregard leaf_function_p().
3197         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
3198         mips16 frame pointer.
3199         * config/mips/mips.md (store ra): Only to small SP offsets.
3200         2001-08-22  Graham Stott  <grahams@redhat.com>
3201         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
3202         return a REG rtx for the return address register.
3203
3204 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
3205
3206         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
3207         constant-pool addresses as "mode-dependent".
3208         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
3209
3210 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
3211
3212         PR target/5740
3213         * expr.c (emit_group_load): Use extract_bit_field if
3214         needed for CONCAT arguments.
3215
3216 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
3217
3218         PR target/4863
3219         * arm.md (tablejump): Make this a define_expand.  For PIC add the
3220         offset to the base of the table.
3221         (thumb_tablejump): Matcher for Thumb tablejump insn.
3222         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
3223         as the difference of two labels.
3224         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
3225         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
3226         tables in the code.
3227         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
3228         * arm.c (get_jump_table_size): If the table is not in the text
3229         section, return zero.
3230
3231 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
3232
3233         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
3234         of gen_rtx_SUBREG.
3235         (arm_reload_out_hi): Use gen_lowpart instead of
3236         gen_rtx_SUBREG to access QImode components.
3237         * config/arm/arm.md: Disable zero_extend split for QImode
3238         subregs in BIG_ENDIAN mode.
3239         (storehi_bigend): Match use of least significant byte.
3240         (storeinthi): Remove extraneous SUBREG.
3241         Add missing construction of operands[2].
3242         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
3243         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
3244         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
3245
3246 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
3247
3248         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
3249         any_operand.
3250
3251 2002-03-17  Richard Henderson  <rth@redhat.com>
3252
3253         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
3254         explicitly.
3255
3256 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
3257
3258         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
3259         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
3260
3261 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3262
3263         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
3264
3265         * predict.c (estimate_bb_frequencies): Delete unused variables.
3266
3267 2002-03-17  Richard Henderson  <rth@redhat.com>
3268
3269         * config/ia64/ia64.c (ia64_attribute_table): Move before
3270         targetm definition.  Make static.
3271
3272 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
3273
3274         * c-common.h (yyparse, c_common_parse_file): New.
3275         * c-lang.c: Include c-common.h.
3276         (LANG_HOOKS_PARSE_FILE): Redefine.
3277         * c-lex.c: Include c-common.h.
3278         (yyparse): Rename c_common_parse_file.  Call yyparse.
3279         * c-parse.in (yyparse): Remove macro.
3280         * c-tree.h (yyparse_1): Remove.
3281         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
3282         (LANG_HOOKS_INITIALIZER): Update.
3283         * langhooks.h (struct lang_hoooks): New hook parse_file.
3284         * toplev.c (compile_file): Use parse_file hook.
3285         * tree.h (yyparse): Remove.
3286         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
3287
3288 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
3289
3290         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
3291         float_truncate, not fix.
3292         ("*truncdfsf2_real"): Ditto.
3293         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
3294
3295         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
3296
3297 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
3298
3299         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
3300         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
3301         where appropriate.  Make the second reference to
3302         leaf_function_p a function call, as intended.  Reindented.
3303
3304         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
3305         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
3306
3307         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
3308         add register to non-constant into sp.
3309
3310         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
3311         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
3312         (mips16_gp_pseudo_rtx): Lose.
3313         (INIT_EXPANDERS): Deleted.
3314         * config/mips/mips.c (mips_init_machine_status): New.
3315         (mips_free_machine_status): New.
3316         (mips_mark_machine_status): New.
3317         (override_options): Set them.
3318         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
3319         (struct machine_function): ... new.  Replaced all references.
3320         (mips_add_gc_roots): Don't mark them.
3321         (embedded_pic_fnaddr_reg): New, extracted from...
3322         (embedded_pic_offset): ... here.
3323         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
3324         (movsi): Likewise.
3325
3326 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3327
3328         * cppinit.c: Revert -MD removal.
3329
3330 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3331
3332         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
3333         soft registers by default for 68HC12.
3334         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
3335         when compiling with -fomit-frame-pointer.
3336         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
3337         (expand_epilogue): Likewise.
3338         (m68hc11_gen_rotate): Use exg when rotating by 8.
3339
3340 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3341
3342         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
3343         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
3344         (splits): Remove unused add splits.
3345         ("*addhi3_68hc12"): Tune constraints.
3346         ("addhi_sp"): Try to use X instead of Y in all cases and if the
3347         constant fits in 8-bits and D is dead use abx/aby instructions.
3348         ("*addhi3"): Remove extern declaration of ix_reg.
3349         ("*subsi3"): Optimize and provide new split.
3350         ("subhi3"): Cleanup.
3351         ("*subhi3_sp"): Avoid saving X if we know it is dead.
3352         (arith splits): For 68hc12 save the address register on the stack
3353         and do the arithmetic operation with a pop.
3354
3355 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3356
3357         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
3358         allocating QImode in address registers.
3359         ("*movqi_m68hc11"): Likewise.
3360
3361 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
3362
3363         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
3364
3365 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3366
3367         * cppinit.c (print_help): Display -MD and -MMD.
3368         Don't display usage string.  Update assertion syntax and
3369         typo.
3370         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
3371         (cpp_handle_option): Update.
3372
3373 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
3374
3375         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
3376         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
3377         and define it so that regardless of target CPU size,
3378         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
3379         of "int" rather than "long."
3380
3381 2002-03-15  Richard Henderson  <rth@redhat.com>
3382
3383         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
3384         size as a tree.
3385
3386 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3387
3388         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
3389         ("tstqi" split): Avoid using memory for tstqi on address register.
3390         (splits): Remove constraints.
3391         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
3392         ("cmpdf", "cmpsf"): Remove since not used.
3393         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
3394         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
3395
3396 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3397
3398         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
3399         ("neghi2"): Tighten constraints.
3400         ("one_cmplsi2"): Optimize and simplify split.
3401         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
3402
3403 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3404
3405         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
3406         and split of AND operation to clear the upper bits.
3407         ("*logicalsi3_zextqi"): Likewise.
3408         ("*logicallhi3_zexthi_ashift8"): Likewise.
3409         ("*logicalsi3_silshr16"): Likewise.
3410         ("logicalsi3_silshl16"): Likewise.
3411         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
3412
3413 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3414
3415         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
3416         (m68hc11_indirect_p): New function.
3417         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
3418         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
3419         TARGET_M6812.
3420         (asm_print_register): Likewise.
3421         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
3422         (m68hc11_indirect_p): Declare.
3423         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
3424         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
3425         (TARGET_SWITCHES): New option -mrelax.
3426         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
3427         destination.
3428         ("iorsi3", "xorsi3"): Likewise.
3429         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
3430         ("*andhi3_mem"): New to handle destination in memory with bclr
3431         and a scratch register.
3432         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
3433         ("*andhi3_const"): New when operand2 is constant.
3434         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
3435         ("*andhi3_gen"): Cleanup of the old "andhi3".
3436         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
3437         ("xorqi3"): Update constraints.
3438
3439 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3440
3441         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
3442         for reg_equiv_memory_loc when the operand is a register that does
3443         not get a hard register (stack location).
3444         (tst_operand): After reload, accept all memory operand.
3445         (symbolic_memory_operand): Fix detection of symbolic references.
3446         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
3447         accept symbols and any constant.
3448
3449 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3450
3451         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
3452         note on the insn that sets the soft frame register.
3453         (must_parenthesize): ix and iy are also reserved names.
3454         (print_operand_address): One more place where parenthesis are required
3455         to avoid confusion with register names.
3456         (m68hc11_gen_movhi): Allow push of stack pointer.
3457         (m68hc11_check_z_replacement): Fix handling of parallel with a
3458         clobber.
3459         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
3460         the replacement register is.
3461         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
3462         and D8_REGS classes.
3463         (MODES_TIEABLE_P): All modes are tieable except QImode.
3464
3465 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3466
3467         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
3468         (___subdi3): Likewise.
3469         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
3470         (__map_data_section): Optimize 68hc11 case.
3471
3472 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3473
3474         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
3475        &nbs