OSDN Git Service

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