OSDN Git Service

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