OSDN Git Service

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