1 2002-04-19 Joel Sherrill <joel@OARcorp.com>
3 * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
6 2002-04-19 Tom Tromey <tromey@redhat.com>
8 * doc/install.texi (Specific): Update status of Solaris 2.8.
11 2002-04-19 Andreas Schwab <schwab@suse.de>
13 * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
14 (PUT_REAL): Restore old definition.
16 2002-04-19 Dan Nicolaescu <dann@godzilla.ics.uci.edu>
17 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
19 * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
20 binutils 2.11.2 and higher generate smaller binaries than Sun's
23 2002-04-19 Mark Mitchell <mark@codesourcery.com>
26 * toplev.c (rest_of_compilation): Do not defer functions for which
27 TREE_SYMBOL_REFERENCED has already been set.
29 Fri Apr 19 15:53:03 CEST 2002 Jan Hubicka <jh@suse.cz>
31 * i386.md (movsi_1, movhi_1): Force reload to use more flexible
34 2002-04-19 Neil Booth <neil@daikokuya.demon.co.uk>
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.
55 * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
57 2002-04-18 Richard Henderson <rth@redhat.com>
59 * function.c: Revert patch for c/6358.
61 2002-04-18 Richard Henderson <rth@redhat.com>
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.
67 2002-04-18 Richard Henderson <rth@redhat.com>
69 * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
70 crash with no type for by-mode libcalls.
72 * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
74 2002-04-18 Bob Wilson <bob.wilson@acm.org>
76 * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
77 __xtensa_nonlocal_goto): Use a syscall instructions to flush
80 2002-04-18 Zack Weinberg <zack@codesourcery.com>
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.
96 * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
98 2002-04-18 David S. Miller <davem@redhat.com>
100 * config/sparc/sparc.h (BRANCH_COST): Define.
102 * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
105 2002-04-18 Hans-Peter Nilsson <hp@bitrange.com>
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.
112 2002-04-18 Richard Henderson <rth@redhat.com>
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.
120 2002-04-18 Richard Henderson <rth@redhat.com>
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.
129 * config/ia64/ia64.md (trap, conditional_trap): New.
131 2002-04-18 Jakub Jelinek <jakub@redhat.com>
134 * function.c (assign_parms): Assign hard current_function_return_rtx
136 (expand_function_end): ...not here.
138 2002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
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.
152 * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
154 2002-04-18 Zack Weinberg <zack@codesourcery.com>
156 * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
157 TARGET_FLOAT_FORMAT blocks.
159 2002-04-18 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
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.
165 2002-04-18 Hans-Peter Nilsson <hp@axis.com>
167 * config/cris/cris.h (TARGET_VERSION): Remove local version number.
169 Thu Apr 18 17:14:08 CEST 2002 Jan Hubicka <jh@suse.cz>
171 * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
174 2002-04-18 Jakub Jelinek <jakub@redhat.com>
176 * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
177 instead of unsigned_type.
179 Thu Apr 18 15:49:12 CEST 2002 Jan Hubicka <jh@suse.cz>
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
185 2002-04-18 Bernd Schmidt <bernds@redhat.com>
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.
191 * combine.c (subst): Avoid trying to make a vector mode subreg of
193 (gen_lowpart_for_combine): Likewise.
195 2002-04-18 Roger Sayle <roger@eyesopen.com>
196 Jakub Jelinek <jakub@redhat.com>
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
203 2002-04-18 Jakub Jelinek <jakub@redhat.com>
206 * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
209 2002-04-17 NIIBE Yutaka <gniibe@m17n.org>
211 * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
213 2002-04-17 Nick Clifton <nickc@cambridge.redhat.com>
215 * gcc.c (read_specs): Detect and fail if an attempt is made to
216 rename a spec string to an already existing string.
218 2002-04-17 Ulrich Weigand <uweigand@de.ibm.com>
220 * config/s390/s390.c (legitimize_pic_address): Do not generate
221 illegal address constant without CONST.
223 2002-04-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
225 * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
226 * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
228 2002-04-17 Ulrich Weigand <uweigand@de.ibm.com>
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.
235 2002-04-16 Andrew Haley <aph@cambridge.redhat.com>
237 * doc/install.texi (Building): libgcj requires GNU make.
239 2002-04-17 Jakub Jelinek <jakub@redhat.com>
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.
250 2002-04-17 Zack Weinberg <zack@codesourcery.com>
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
259 * unprotoize.c: Delete file.
261 2002-04-17 Aldy Hernandez <aldyh@redhat.com>
263 * config/rs6000/altivec.h (vec_ld): Add array variants.
267 2002-04-17 Alan Matsuoka <alanm@redhat.com>
268 Aldy Hernandez <aldyh@redhat.com>
270 * config/rs6000/altivec.h: Define __ALTIVEC__.
277 Add parentheses to all macro arguments.
279 2002-04-16 Richard Henderson <rth@redhat.com>
282 * except.c (remove_eh_handler): Insert inner regions at beginning
283 of sibling chain. Refactor expressions.
285 2002-04-16 Richard Henderson <rth@redhat.com>
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.
293 * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
295 2002-04-16 Richard Henderson <rth@redhat.com>
297 * config/mips/mips.c (override_options): Don't override N32 for
301 * config/mips/mips.md (can_delay): Split out of existing define_delays.
302 (HILO_delay): Set can_delay false.
304 2002-04-16 Dale Johannesen <dalej@apple.com>
306 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
307 instruction addresses.
308 (rs6000_output_function_epilogue): Likewise.
310 2002-04-16 Paolo Carlini <pcarlini@unitus.it>
312 * c-parse.in (poplevel, compstmt_start,
313 compstmt_primary_start): Add ending ';', in accordance
316 2002-04-16 Richard Henderson <rth@redhat.com>
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.
323 2002-04-16 Dale Johannesen <dalej@apple.com>
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.
329 2002-04-16 Hartmut Penner <hpenner@de.ibm.com>
332 * config/s390/s390.md (mulsidi3): Set both subregs of the
335 2002-04-16 Aldy Hernandez <aldyh@redhat.com>
337 * config/rs6000/altivec.h (vec_addc): Type check.
339 2002-04-16 Jakub Jelinek <jakub@redhat.com>
342 * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
344 * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
346 2002-04-15 Richard Henderson <rth@redhat.com>
348 * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
349 call_really_used_regs too.
351 2002-04-15 Richard Henderson <rth@redhat.com>
353 * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
355 2002-04-15 David S. Miller <davem@redhat.com>
357 * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
360 2002-04-16 Jakub Jelinek <jakub@redhat.com>
363 * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
364 CONST_VECTOR is { 0, ... 0 }.
366 2002-04-15 Loren J. Rittle <ljrittle@acm.org>
368 * doc/install.texi (Installing GCC: Configuration): Clarify
369 the only supported ways to configure gcc.
371 2002-04-15 Roland McGrath <roland@frob.com>
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.
377 2002-04-16 Mark Mitchell <mark@codesourcery.com>
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.
386 2002-04-15 Richard Henderson <rth@redhat.com>
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.
398 2002-04-15 Mark Mitchell <mark@codesourcery.com>
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.
407 2002-04-15 Douglas B Rupp <rupp@gnat.com>
409 * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
410 (LONGLONG_STANDALONE): Define.
412 2002-04-15 David S. Miller <davem@redhat.com>
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.
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):
427 2002-04-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
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.
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.
448 2002-04-14 Neil Booth <neil@daikokuya.demon.co.uk>
450 * cpperror.c (print_location): Don't print include chain
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
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
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.
494 2002-04-14 Andreas Schwab <schwab@suse.de>
496 * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
498 2002-04-14 Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
500 * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
502 2002-04-13 Mark Mitchell <mark@codesourcery.com>
504 * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
507 2002-04-13 Hans-Peter Nilsson <hp@axis.com>
509 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
511 2002-04-13 Joel Sherrill <joel@OARcorp.com>
513 * config/sparc/t-elf: Enable v8 multilibs. Impacts
514 sparc-elf and sparc-rtems targets.
516 2002-04-13 Mark Mitchell <mark@codesourcery.com>
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.
543 2002-04-13 Richard Sandiford <rsandifo@redhat.com>
545 * stmt.c (check_unique_operand_names): Expect operand names to
546 be strings rather than identifiers. Use simple_cst_equal to
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.
552 2002-04-13 Andreas Schwab <schwab@suse.de>
554 * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
556 2002-04-12 Mark Mitchell <mark@codesourcery.com>
558 Revert these changes:
560 2002-04-06 Mark Mitchell <mark@codesourcery.com>
563 * stor-layout.c (layout_decl): Reset the RTL for the decl.
565 2002-04-12 Richard Henderson <rth@redhat.com>
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.
582 2002-04-12 Richard Henderson <rth@redhat.com>
584 * recog.c (offsettable_address_p): Match the logic in adjust_address.
586 * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
587 in 64-bit mode only. Use only for 32-bit or MEDLOW.
589 2002-04-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
591 * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
593 Fri Apr 12 15:42:59 2002 Jeffrey A Law (law@redhat.com)
595 * pa.c (pa_can_combine_p): Call extract_insn before calling
598 2002-04-12 Douglas B Rupp <rupp@gnat.com>
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.
606 2002-04-12 DJ Delorie <dj@redhat.com>
608 * integrate.c (compare_blocks): Make comparisons safe for when
609 sizeof(int) < sizeof(char *).
610 (find_block): Likewise.
612 2002-04-12 Jan Hubicka <jh@suse.cz>
613 David Edelsohn <edelsohn@gnu.org>
615 * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
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.
621 2002-04-12 Andreas Schwab <schwab@suse.de>
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.
627 2002-04-12 Eric Norum <eric.norum@usask.ca>
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.
638 Fri Apr 12 08:06:54 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
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.
645 * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
648 Fri Apr 12 12:11:26 2002 J"orn Rennecke <joern.rennecke@superh.com>
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.
653 2002-04-12 Hans-Peter Nilsson <hp@bitrange.com>
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.
658 Fri Apr 12 10:51:38 2002 J"orn Rennecke <joern.rennecke@superh.com>
660 * sh.c (broken_move): Constant 0. / 1. load is OK if there is
663 2002-04-12 Andreas Schwab <schwab@suse.de>
665 * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
667 2002-04-12 Richard Henderson <rth@redhat.com>
670 * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
672 * flow.c (mark_used_reg): Manage reg_cond_dead properly for
673 modes spanning multiple hard regs.
675 * recog.c (peephole2_optimize): Rebuild jump labels as needed.
677 2002-04-11 John David Anglin <dave@hiauly1.hia.nrc.ca>
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.
697 2002-04-11 David O'Brien <obrien@FreeBSD.org>
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.
707 2002-04-11 David O'Brien <obrien@FreeBSD.org>
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
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
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
731 2002-04-11 David O'Brien <obrien@FreeBSD.org>
733 * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
734 all other *-*-freebsd* targets.
736 2002-04-11 Richard Henderson <rth@redhat.com>
738 * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
740 2002-04-11 David O'Brien <obrien@FreeBSD.org>
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
751 * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
753 (LINK_SPEC): Moved here from alpha/elf.h.
754 * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
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.
764 2002-04-11 Richard Sandiford <rsandifo@redhat.com>
766 * doc/extend.texi: Remove old claim that typedefs cannot have
767 an alignment attribute.
769 2002-04-11 Jakub Jelinek <jakub@redhat.com>
772 * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
773 bitpos is 0 and bitsize CONCAT size.
775 2002-04-11 Jakub Jelinek <jakub@redhat.com>
778 * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
780 2002-04-10 David O'Brien <obrien@FreeBSD.org>
782 * config/alpha/freebsd.h: Minor reformatting.
783 (CPP_SPEC): Define ELF and add cpp_subtarget.
784 (ASM_SPEC): No longer needed.
786 2002-04-11 Richard Henderson <rth@redhat.com>
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.
792 2002-04-11 Hans-Peter Nilsson <hp@axis.com>
794 * config/cris/cris.c (cris_override_options): Tweak error message
795 for PIC not implemented.
797 * config/cris/cris.h: Tweak comments related to parameter-passing.
799 * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
801 2002-04-10 Richard Henderson <rth@redhat.com>
803 * except.c (add_ehl_entry): Allow duplicates after landing pad
806 2002-04-10 David Edelsohn <edelsohn@gnu.org>
808 * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
810 2002-04-10 Toon Moene <toon@moene.indiv.nluug.nl>
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.
816 2002-04-10 Ulrich Weigand <uweigand@de.ibm.com>
818 * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
819 is only used as frame pointer when frame_pointer_needed is true.
821 2002-04-10 Richard Earnshaw <rearnsha@arm.com>
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
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.
832 2002-04-10 Richard Sandiford <rsandifo@redhat.com>
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.
838 2002-04-10 Richard Henderson <rth@redhat.com>
840 * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
841 if EXPAND_INITIALIZER.
843 2002-04-09 Richard Henderson <rth@redhat.com>
845 * config/alpha/alpha.md (movdi_er_maybe_g): New.
846 * config/alpha/alpha.c (alpha_expand_mov): Use it.
848 2002-04-10 Alan Modra <amodra@bigpond.net.au>
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.
856 2002-04-09 Eric Christopher <echristo@redhat.com>
858 * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
859 information to .comm directive.
861 2002-04-09 Richard Henderson <rth@redhat.com>
864 * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
866 2002-04-09 Richard Henderson <rth@redhat.com>
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.
897 2002-04-09 Richard Henderson <rth@redhat.com>
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.
908 Tue Apr 9 19:15:57 2002 J"orn Rennecke <joern.rennecke@superh.com>
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
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.
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
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.
955 2002-04-08 Richard Henderson <rth@redhat.com>
957 * reorg.c (get_branch_condition): Use reversed_comparison_code.
959 2002-04-09 Stephane Carrez <Stephane.Carrez@worldnet.fr>
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.
966 2002-04-09 David S. Miller <davem@redhat.com>
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.
974 * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
975 unsigned comparison warning.
976 (output_restore_regs): Mark leaf_function as unused.
978 Tue Apr 9 09:35:45 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
980 * expr.c (is_aligning_offset): New function.
981 (expand_expr, case COMPONENT_EXPR): Call it.
983 2002-04-08 David S. Miller <davem@redhat.com>
986 * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
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.
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.
1005 2002-04-08 Andreas Jaeger <aj@suse.de>
1007 * stmt.c (expand_asm_operands): Revert last patch from Richard
1010 2002-04-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
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.
1015 2002-04-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1017 * doc/contrib.texi (Contributors): Add David O'Brien.
1019 2002-04-08 Alan Modra <amodra@bigpond.net.au>
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.
1027 2002-04-07 David S. Miller <davem@redhat.com>
1029 * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
1031 2002-04-07 John David Anglin <dave@hiauly1.hia.nrc.ca>
1034 * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
1035 generating 32-bit pic code.
1037 2002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
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
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.
1069 2002-04-06 John David Anglin <dave@hiauly1.hia.nrc.ca>
1072 * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
1074 2002-04-06 Mark Mitchell <mark@codesourcery.com>
1077 * stor-layout.c (layout_decl): Reset the RTL for the decl.
1080 * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
1081 RTX_UNCHANGING_P for the functions arguments when a tail call
1084 2002-04-06 Jason Merrill <jason@redhat.com>
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.
1090 2002-04-06 Hans-Peter Nilsson <hp@bitrange.com>
1092 * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
1095 * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
1098 * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
1099 types come in by-reference. Fix typo in comment.
1101 2002-04-05 David S. Miller <davem@redhat.com>
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.
1108 2002-04-05 David S. Miller <davem@redhat.com>
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.
1114 2002-04-05 Richard Henderson <rth@redhat.com>
1116 * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
1118 2002-04-05 Jakub Jeilnek <jakub@redhat.com>
1120 * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
1122 2002-04-05 Alexandre Oliva <aoliva@redhat.com>
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.
1128 2002-04-05 Andreas Schwab <schwab@suse.de>
1130 * c-convert.c: Include c-common.h.
1131 * Makefile.in (c-convert.o): Updated.
1133 2002-04-05 Jakub Jelinek <jakub@redhat.com>
1135 * mklibgcc.in: Use separate libgcc.map for each multilib.
1136 * Makefile.in (distclean): Don't remove libgcc.map here.
1138 2002-04-05 Jakub Jelinek <jakub@redhat.com>
1140 * Makefile.in (s-mlib): Handle --disable-multilib by separate
1141 genmultilib invocation.
1143 2002-04-04 Richard Sandiford <rsandifo@redhat.com>
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.
1150 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
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.
1165 * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
1167 2002-04-05 Alan Modra <amodra@bigpond.net.au>
1169 * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
1170 Add rules to make null object file.
1172 2002-04-04 Jim Blandy <jimb@redhat.com>
1174 * cppmacro.c (cpp_macro_definition): Do not emit spaces after
1175 macro formal parameter names.
1177 2002-04-04 David S. Miller <davem@redhat.com>
1179 * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
1181 2002-04-04 Richard Henderson <rth@redhat.com>
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.
1188 2002-04-04 Richard Henderson <rth@redhat.com>
1191 * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
1192 (write_dependence_p): Likewise.
1194 2002-04-04 Richard Henderson <rth@redhat.com>
1196 * predict.c (estimate_bb_frequencies): Do frequency calculation
1197 with a volatile temporary.
1199 2002-04-04 Ulrich Weigand <uweigand@de.ibm.com>
1201 * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
1203 2002-04-04 Jakub Jelinek <jakub@redhat.com>
1206 * final.c (final_start_function): Don't bump profile_label_no here...
1207 (final_end_function): ...but here.
1209 2002-04-04 Jakub Jelinek <jakub@redhat.com>
1211 * config/sparc/sparc.md (pic): New attribute.
1212 (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
1214 (split after do_builtin_setjmp_setup): New.
1216 2002-04-04 Jakub Jelinek <jakub@redhat.com>
1219 * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
1222 2002-04-04 Jakub Jelinek <jakub@redhat.com>
1224 * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
1225 UNITS_PER_WORD for zero sized aggregates.
1227 2002-04-03 David S. Miller <davem@redhat.com>
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).
1232 2002-04-03 David S. Miller <davem@redhat.com>
1234 * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
1237 2002-04-03 John David Anglin <dave@hiauly1.hia.nrc.ca>
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.
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
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,
1272 (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
1274 * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
1275 list of targets to check using "nop" insn.
1276 * configure: Rebuilt.
1278 2002-04-04 Alan Modra <amodra@bigpond.net.au>
1280 * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
1282 2002-04-03 David S. Miller <davem@redhat.com>
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.
1291 2002-04-03 Jason Merrill <jason@redhat.com>
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.
1298 * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
1299 expand_decl_cleanup_eh.
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.
1310 2002-04-04 Hans-Peter Nilsson <hp@axis.com>
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
1320 2002-04-03 David S. Miller <davem@redhat.com>
1322 * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
1324 (set_fast_math): Correct 'fsr' type.
1326 2002-04-03 Richard Henderson <rth@redhat.com>
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.
1340 2002-04-03 Neil Booth <neil@daikokuya.demon.co.uk>
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.
1355 2002-04-03 Jakub Jelinek <jakub@redhat.com>
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.
1365 2002-04-03 Jakub Jelinek <jakub@redhat.com>
1368 * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
1371 2002-04-03 Richard Henderson <rth@redhat.com>
1374 * sched-rgn.c (sets_likely_spilled): New.
1375 (sets_likely_spilled_1): New.
1376 (add_branch_dependences): Use it.
1378 2002-04-02 Richard Henderson <rth@redhat.com>
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.
1385 2002-04-02 David S. Miller <davem@redhat.com>
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
1390 * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
1391 existing comment to increase comprehension of this situation.
1393 2002-04-02 Zack Weinberg <zack@codesourcery.com>
1395 * config/sh/sh.md: Don't use union real_extract.
1397 2002-04-02 Richard Henderson <rth@redhat.com>
1399 * libgcc2.c (__bb_exit_func): Revert 03-31 change.
1401 2002-04-02 David O'Brien <obrien@FreeBSD.org>
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.
1466 2002-04-02 Eric Botcazou <ebotcazou@multimania.com>
1467 Richard Henderson <rth@redhat.com>
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.
1474 2002-04-02 David O'Brien <obrien@FreeBSD.org>
1476 * protoize.c: Match include directory usage with cppdefault.c.
1478 2002-04-03 Jeffrey A Law (law@redhat.com)
1479 Hans-Peter Nilsson <hp@bitrange.com>
1481 * combine.c (simplify_comparison): Avoid narrowing a comparison
1482 with a paradoxical subreg when doing so would drop signficant bits.
1484 2002-04-02 Steve Ellcey <sje@cup.hp.com>
1486 * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
1487 if POINTERS_EXTEND_UNSIGNED is defined.
1489 2002-04-02 Richard Henderson <rth@redhat.com>
1492 * local-alloc.c (contains_replace_regs): LO_SUM may contain
1495 2002-04-02 Richard Henderson <rth@redhat.com>
1497 * doc/standards.texi: Document required freestanding libc entry points.
1499 2002-04-02 Alan Modra <amodra@bigpond.net.au>
1501 * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
1502 associated splitter. Remove MQ constraint.
1503 (ctrdi_internal4): Correct CCmode clobber.
1505 2002-04-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
1507 * milli64.S ($$dyncall): New function.
1508 * t-linux (LIB1ASMFUNCS): Revise module list.
1509 (LIB1ASMSRC): Use pa/milli64.S.
1511 2002-04-02 Richard Henderson <rth@redhat.com>
1513 * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
1514 rename solaris_sys_varargs_h.
1516 Tue Apr 2 06:47:40 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1518 * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
1519 the same mode as its component.
1521 2002-04-02 Richard Henderson <rth@redhat.com>
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.
1528 2002-04-02 Richard Henderson <rth@redhat.com>
1531 * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
1533 2002-04-01 Richard Henderson <rth@redhat.com>
1536 * fixinc/inclhack.def (solaris_sys_varargs_h): New.
1537 * fixinc/fixincl.x: Rebuild.
1539 2002-04-01 Richard Henderson <rth@redhat.com>
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.
1554 2002-04-01 Vladimir Makarov <vmakarov@redhat.com>
1556 * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
1557 ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
1559 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
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.
1574 * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1576 2002-04-01 Bob Wilson <bob.wilson@acm.org>
1578 * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
1581 2002-04-01 Bob Wilson <bob.wilson@acm.org>
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).
1586 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
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):
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.
1608 * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1609 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1611 2002-03-31 Richard Henderson <rth@redhat.com>
1613 * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
1614 (desc_frgr_mem): Fix reference to f16-f31.
1616 2002-03-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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.
1624 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
1626 * diagnostic.c: Include langhooks-def.h.
1627 * Makefile.in (diagnostic.o): Update.
1629 2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
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):
1651 * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1652 LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1654 2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
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.
1667 2002-03-31 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1669 * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
1670 (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
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.
1678 Sun Mar 31 14:43:24 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1680 * emit-rtl.c (adjust_address_1, offset_address): Cast value to
1681 unsigned HOST_WIDE_INT, not unsigned int.
1683 2002-03-31 Jakub Jelinek <jakub@redhat.com>
1685 PR middle-end/6096, middle-end/6098, middle-end/6099
1686 * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
1688 (fill_slots_from_thread): Likewise.
1690 2002-03-31 Jakub Jelinek <jakub@redhat.com>
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.
1696 2002-03-31 Hans-Peter Nilsson <hp@bitrange.com>
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.
1705 2002-03-31 Jakub Jelinek <jakub@redhat.com>
1708 * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
1710 (output_v9branch): Likewise.
1712 2002-03-31 Alexandre Oliva <aoliva@redhat.com>
1714 * gcc.c: Revert previous patch for now.
1715 * config/i386/djgpp.h: Likewise.
1717 2002-03-31 Hans-Peter Nilsson <hp@bitrange.com>
1719 * config/mmix/crti.asm (_init): Register _fini with atexit.
1720 * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
1722 2002-03-31 Richard Henderson <rth@redhat.com>
1725 * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
1726 (ASM_OUTPUT_DEF_FROM_DECLS): New.
1728 2002-03-31 Richard Henderson <rth@redhat.com>
1730 * libgcc2.c (__bb_exit_func): Make static.
1732 * config/alpha/alpha.md (trap): New.
1734 2002-03-31 Richard Henderson <rth@redhat.com>
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.
1745 2002-03-31 Alexandre Oliva <aoliva@redhat.com>
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'.
1754 2002-03-30 David S. Miller <davem@redhat.com>
1756 * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1757 * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
1759 2002-03-30 Roger Sayle <roger@eyesopen.com>
1760 Richard Henderson <rth@redhat.com>
1762 * regmove.c (combine_stack_adjustments_for_block): Avoid
1763 emitting a stack adjustment of zero bytes. Let delete_insn
1766 2002-03-30 Richard Henderson <rth@redhat.com>
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.
1785 2002-03-30 Daniel Berlin <dan@dberlin.org>
1787 * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
1788 CPP will start the file for us.
1790 2002-03-30 Richard Henderson <rth@redhat.com>
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.
1799 Sat Mar 30 23:48:41 CET 2002 Jan Hubicka <jh@suse.cz>
1801 * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
1803 2002-03-30 Richard Henderson <rth@redhat.com>
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.
1817 2002-03-30 Jakub Jelinek <jakub@redhat.com>
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.
1824 Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz>
1826 * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
1827 when not optimizing.
1829 * toplev.c (rest_of_compilation): Cann mark_constant_function
1830 only when optimizing.
1832 * flow.c (calculate_global_regs_live): Ensure that all AUX fields
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.
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.
1844 2002-03-29 Richard Henderson <rth@redhat.com>
1847 * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
1849 2002-03-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1851 * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
1852 for aggregate and TFmode types.
1854 2002-03-29 Hans-Peter Nilsson <hp@bitrange.com>
1856 * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
1858 2002-03-29 Richard Henderson <rth@redhat.com>
1861 * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
1862 * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
1864 2002-03-29 Richard Henderson <rth@redhat.com>
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
1872 * docs/invoke.texi: Update -mno-fancy-math-387 docs.
1874 2002-03-29 Dale Johannesen <dalej@apple.com>
1876 * loop.c (combine_movables): Do allow combination of pseudos.
1878 2002-03-29 Loren J. Rittle <ljrittle@acm.org>
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.
1886 2002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
1888 * Makefile.in (convert.o, calls.o, expmed.o): Update.
1889 * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
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):
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):
1900 * c-typeck.c (common_type, comptypes, default_conversion):
1902 * calls.c: Include langhooks.h.
1903 (emit_library_call_value_1): Use new hooks. Avoid redundant
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.
1926 * objc-act.c (handle_impent): Update.
1927 * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
1930 2002-03-29 Steve Ellcey <sje@cup.hp.com>
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.
1937 2002-03-29 Hans-Peter Nilsson <hp@bitrange.com>
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.
1943 2002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
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.
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.
1968 2002-03-29 Jakub Jelinek <jakub@redhat.com>
1971 * config/sparc/sparc.md (empty_delay_slot, branch_type): New
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.
1985 2002-03-29 Jakub Jelinek <jakub@redhat.com>
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.
1995 2002-03-28 Richard Henderson <rth@redhat.com>
1998 * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
1999 to GAS. Correct drift between alternatives.
2001 2002-03-28 Richard Henderson <rth@redhat.com>
2004 * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
2006 2002-03-28 Alexandre Oliva <aoliva@redhat.com>
2008 * config/i386/freebsd.h (LINK_SPEC): Don't pass default
2009 emulation to the linker.
2011 2002-03-28 Loren J. Rittle <ljrittle@acm.org>
2013 * config/alpha/freebsd.h (LINK_SPEC): Likewise.
2014 * config/sparc/freebsd.h (LINK_SPEC): Likewise.
2016 Thu Mar 28 16:35:31 2002 Jeffrey A Law (law@redhat.com)
2018 * combine.c (simplify_and_const_int): Make sure to apply mask
2019 when force_to_mode returns a constant integer. PR3311.
2021 2002-03-28 John David Anglin <dave@hiauly1.hia.nrc.ca>
2023 * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
2025 2002-03-28 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2027 * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
2028 and Objective-C Dialect Options.
2030 2002-03-28 Richard Henderson <rth@redhat.com>
2032 * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
2033 comparison should be done vs !=0 not >0 return code. Tidy cases.
2035 2002-03-28 Richard Henderson <rth@redhat.com>
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.
2042 Thu Mar 28 19:13:36 CET 2002 Jan Hubicka <jh@suse.cz>
2044 * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
2046 Thu Mar 28 13:21:53 CET 2002 Jan Hubicka <jh@suse.cz>
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.
2054 2002-03-27 Zack Weinberg <zack@codesourcery.com>
2056 * mips.md: Use dconst1, not 1.0, as first argument of
2057 REAL_VALUE_LDEXP. Don't use union real_extract.
2059 2002-03-28 Alan Modra <amodra@bigpond.net.au>
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.
2070 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
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.
2082 * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
2084 2002-03-27 Andreas Schwab <schwab@suse.de>
2086 * config/i386/i386.c (classify_argument): Also check for
2089 2002-03-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2091 * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
2094 Wed Mar 27 23:19:30 CET 2002 Jan Hubicka <jh@suse.cz>
2096 * i960.md (ret): Set PC.
2097 (nonlocal_goto): Fix expander.
2098 * builtins.c (epxand_builin_longjmp): Check that we've emitted
2101 Wed Mar 27 23:11:35 CET 2002 Jan Hubicka <jh@suse.cz>
2103 * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
2106 Wed Mar 27 22:54:14 CET 2002 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2108 * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
2109 assigning to BLOCK_FOR_INSN directly.
2111 Wed Mar 27 22:33:05 CET 2002 Jan Hubicka <jh@suse.cz>
2113 * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
2115 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
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.
2130 * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
2132 2002-03-27 Richard Henderson <rth@redhat.com>
2135 * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
2136 TARGET_CONST_GP. Simplify conditions.
2138 2002-03-27 Richard Henderson <rth@redhat.com>
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.
2144 2002-03-27 Danny Smith <dannysmith@users.sourceforge.net>
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.
2154 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
2156 * gcc-common.c (lang_mark_false_label_stack): Remove.
2157 * ggc.h (lang_mark_false_label_stack): Similarly.
2159 2002-03-26 Vladimir Makarov <vmakarov@redhat.com>
2161 * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
2163 * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
2164 or __rtems_ is defined.
2166 2002-03-26 Richard Henderson <rth@redhat.com>
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.
2173 2002-03-26 Richard Henderson <rth@redhat.com>
2175 * config.gcc (sparc*-solaris): Use float_format=sparc.
2177 2002-03-26 Richard Henderson <rth@redhat.com>
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.
2185 2002-03-26 Richard Henderson <rth@redhat.com>
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.
2192 2002-03-26 Richard Henderson <rth@redhat.com>
2194 * expr.h (ADD_PARM_SIZE): One more convert for INC.
2196 2002-03-26 Phil Edwards <pme@gcc.gnu.org>
2198 * gcc.c (cpp_options): Preserve relative ordering of -pedantic
2199 and warning switches.
2200 (cc1_options): Likewise.
2202 2002-03-26 Hans Boehm <Hans_Boehm@hp.com>
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.
2212 2002-03-26 David Edelsohn <edelsohn@gnu.org>
2214 * config/rs6000/aix51.h (WCHAR_TYPE): Define.
2216 2002-03-26 Bob Wilson <bob.wilson@acm.org>
2218 * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
2220 2002-03-26 Richard Earnshaw <rearnsha@arm.com>
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
2227 2002-03-26 Bob Wilson <bob.wilson@acm.org>
2229 * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
2230 a register into the MAC16 accumulator.
2232 2002-03-26 Andrew Cagney <ac131313@redhat.com>
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
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.
2244 2002-03-26 Richard Earnshaw <rearnsha@arm.com>
2246 * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
2247 (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
2248 (reload_muladdsi_compare0_scratch): Delete.
2250 2002-03-26 Loren J. Rittle <ljrittle@acm.org>
2252 * doc/install.texi (*-*-freebsd*): Update.
2254 2002-03-26 Richard Henderson <rth@redhat.com>
2256 * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
2257 (SUB_PARM_SIZE): Cast DEC to ssizetype.
2259 * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
2260 types from the normal argument frame.
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.
2266 2002-03-26 Hartmut Penner <hpenner@de.ibm.com>
2268 * config/s390/s390.c (s390_emit_epilogue): Change epilogue
2269 code to not restoring global registers.
2271 2002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
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.
2285 * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
2287 2002-03-25 Zack Weinberg <zack@codesourcery.com>
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
2299 * doc/cppopts.texi: Cross-reference the environment variables
2300 section, not the specific environment variable, for consistency.
2302 2002-03-25 Richard Henderson <rth@redhat.com>
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.
2309 2002-03-26 Alan Modra <amodra@bigpond.net.au>
2311 * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
2312 test for overflow of constant.
2314 2002-03-25 Richard Earnshaw <rearnsha@arm.com>
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.
2321 2002-03-25 Danny Smith <dannysmith@sourceforge.users.net>
2323 * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
2326 2002-03-25 Zack Weinberg <zack@codesourcery.com>
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.
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
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.
2344 * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
2346 * tsystem.h: Include float.h here...
2347 * libgcc2.c: ... not here.
2349 2002-03-25 Nick Clifton <nickc@cambridge.redhat.com>
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
2358 2002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
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.
2370 2002-03-25 Jakub Jelinek <jakub@redhat.com>
2372 * regrename.c (build_def_use): Move recog_memoized
2373 before extract_insn.
2375 2002-03-25 Jakub Jelinek <jakub@redhat.com>
2378 * expr.c (emit_group_store): Handle storing into CONCAT.
2380 2002-03-25 Jakub Jelinek <jakub@redhat.com>
2382 * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
2383 corresponding MATCH_DUP.
2385 2002-03-24 Richard Henderson <rth@redhat.com>
2387 * unroll.c (unroll_loop): Zero label_map.
2389 * gcse.c: Include except.h.
2390 * Makefile.in (gcse.o): Update.
2392 2002-03-24 Richard Henderson <rth@redhat.com>
2394 * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
2395 Do resolve_unique_section before shared data clause.
2397 2002-03-24 Richard Henderson <rth@redhat.com>
2399 * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
2401 2002-03-24 Richard Henderson <rth@redhat.com>
2403 * recog.c (peephole2_optimize): Split blocks when EH insns are
2404 generated in the middle of a block. Do global life update if
2407 2002-03-24 Richard Henderson <rth@redhat.com>
2409 * mips.c (mips_function_value): Only promote_mode for non-libcalls.
2411 2002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
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.
2418 2002-03-24 Andrew Cagney <ac131313@redhat.com>
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
2425 2002-03-24 Stephane Carrez <Stephane.Carrez@worldnet.fr>
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.
2432 2002-03-24 Stephane Carrez <Stephane.Carrez@worldnet.fr>
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.
2442 2002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
2444 * cppinit.c (cpp_handle_option): Set warn_endif_labels if
2446 (cpp_post_options): ... not here.
2448 2002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
2449 Aldy Hernandez <aldyh@redhat.com>
2451 Removal of separate preprocessor cpp0.
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):
2468 * tradcpp.c (main): Ignore -quiet.
2470 * lang-specs.h (default_compilers): Preprocess with cc1obj.
2472 2002-03-24 Richard Henderson <rth@redhat.com>
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.
2483 2002-03-23 Richard Henderson <rth@redhat.com>
2485 * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
2486 * config/sparc/sparc-protos.h: Update.
2487 * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
2489 2002-03-23 Richard Henderson <rth@redhat.com>
2491 * config/sparc/gmon-sol2.c (internal_mcount): Assume either
2492 _start or _init begins the text segment.
2494 2002-03-23 David Edelsohn <edelsohn@gnu.org>
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.
2500 2002-03-23 Richard Earnshaw <rearnsha@arm.com>
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
2510 2002-03-23 Andrew Cagney <ac131313@redhat.com>
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
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.
2523 2002-03-23 Alan Modra <amodra@bigpond.net.au>
2525 * real.h (N): Special case 128 bit doubles.
2527 * combine.c (simplify_comparison): When widening modes, ignore
2528 sign extension on CONST_INTs.
2530 2002-03-22 Bob Wilson <bob.wilson@acm.org>
2532 * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
2533 passed to adjust_address. Fix comment formatting.
2536 2002-03-22 Zack Weinberg <zack@codesourcery.com>
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.
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.
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
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.
2564 * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
2565 (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
2567 * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
2568 Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
2570 * real.c (earith): Test INFINITY rather than REAL_INFINITY;
2571 NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
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.
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
2584 * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
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.
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
2600 * doc/rtl.texi: Adjust cross reference.
2602 2002-03-22 Bob Wilson <bob.wilson@acm.org>
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.
2616 2002-03-22 Neil Booth <neil@daikokuya.demon.co.uk>
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.
2624 * doc/cpp.texi: Update to match.
2626 2002-03-22 Jakub Jelinek <jakub@redhat.com>
2628 PR optimization/5854
2629 * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
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, ...)
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
2642 (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
2643 require scratch register for setting 0 into regs/non-pushable memory.
2645 2002-03-22 Alexandre Oliva <aoliva@redhat.com>
2647 * config/mips/mips.h (MASK_RETURN_ADDR): Define.
2648 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
2650 2002-03-22 Phil Edwards <pme@gcc.gnu.org>
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.
2661 2002-03-22 Lars Brinkhoff <lars@nocrew.org>
2663 * config/i386/i386.c, config/i386/i386.md: Change all occurences
2664 of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
2666 2002-03-22 Alexandre Oliva <aoliva@redhat.com>
2668 * flow.c (calculate_global_regs_live): Clear aux fields of
2671 2002-03-22 Jakub Jelinek <jakub@redhat.com>
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.
2680 2002-03-22 Richard Henderson <rth@redhat.com>
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.
2689 2002-03-22 Andrew MacLeod <amacleod@redhat.com>
2691 * expr.c (expand_expr): A RESULT_DECL is part of a call.
2693 Fri Mar 22 16:30:42 CET 2002 Jan Hubicka <jh@suse.cz>
2695 * toplev.c (flag_loop_optimize, flag_crossjumping):
2696 New static variables.
2697 (rest_of_compilation): Conditionalize crossjumping and
2699 (parse_options_and_default_flags): Default loop_optimize and
2701 (lang_independent_options): Add -fcrossjumping and -floop-optimize
2702 * invoke.texi (crossjumping, loop-optimize): Document.
2704 2002-03-22 Richard Sandiford <rsandifo@redhat.com>
2706 * real.c (eiisneg): Move outside #ifdef NANS.
2708 Fri Mar 22 12:08:36 CET 2002 Jan Hubicka <jh@suse.cz>
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
2714 * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
2716 (split_edge): Likewise.
2718 * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
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
2725 2002-03-22 Richard Sandiford <rsandifo@redhat.com>
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.
2754 2002-03-22 Richard Sandiford <rsandifo@redhat.com>
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.
2762 2002-03-22 Neil Booth <neil@daikokuya.demon.co.uk>
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.
2770 2002-03-21 DJ Delorie <dj@redhat.com>
2772 * bb-reorder.c (make_reorder_chain_1): Protect against
2773 when redundant edges are omitted.
2774 * predict.c (dump_prediction): Likewise.
2776 2002-03-21 Richard Henderson <rth@redhat.com>
2779 * fixinc/inclhack.def (solaris_stdio_tag): New.
2780 * fixinc/fixincl.x: Regenerate.
2782 2002-03-21 Eric Botcazou <ebotcazou@multimania.com>
2785 * c-typeck.c (process_init_element): Flag non-static
2786 initialization of a flexible array member as illegal.
2788 2002-03-22 Alan Modra <amodra@bigpond.net.au>
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.
2798 2002-03-21 Aldy Hernandez <aldyh@redhat.com>
2800 * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
2801 flag_really_no_inline instead of optimize == 0.
2803 * c-objc-common.c (c_cannot_inline_tree_fn): Same.
2805 * cp/tree.c (cp_cannot_inline_tree_fn): Same.
2807 * flags.h (flag_really_no_inline): New.
2809 * c-common.c (c_common_post_options): Initialize
2810 flag_really_no_inline.
2812 * toplev.c (flag_really_no_inline): New.
2814 2002-03-21 Jakub Jelinek <jakub@redhat.com>
2816 * config/avr/avr.md (length): Fix length computation for
2817 conditional branches.
2819 2002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
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
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
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.
2856 2002-03-21 Richard Henderson <rth@redhat.com>
2858 * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
2859 constants in .data when -fpic.
2861 2002-03-21 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2863 * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
2866 2002-03-21 Tom Tromey <tromey@redhat.com>
2868 * config/i386/sol2.h (ASM_QUAD): Undef. Fixes PR bootstrap/5948.
2870 Thu Mar 21 09:50:48 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2872 * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
2874 * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
2876 2002-03-21 Eric Botcazou <ebotcazou@multimania.com>
2877 Richard Henderson <rth@redhat.com>
2880 * c-common.c (c_expand_expr): Preserve result of a statement
2881 expression if needed.
2883 2002-03-21 Jakub Jelinek <jakub@redhat.com>
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.
2890 Thu Mar 21 01:55:06 EST 2002 John Wehle (john@feith.com)
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.
2901 2002-03-21 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2903 * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
2905 * fixinc/fixincl.x: Regenerate.
2907 2002-03-20 Jason Merrill <jason@redhat.com>
2909 * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
2911 2002-03-20 Michael Meissner <meissner@redhat.com>
2913 * doc/invoke.texi (Optimize Options): Document that -O2 sets
2916 2002-03-20 Bob Wilson <bob.wilson@acm.org>
2918 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
2919 ".literal_position" directive before the constant pool.
2921 2002-03-20 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2923 * doc/contrib.texi (Contributors): Update Geoffrey Keating.
2924 Add Craig Rodrigues.
2925 Add Brad Lucier to testers.
2927 2002-03-20 Jakub Jelinek <jakub@redhat.com>
2930 * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
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.
2936 2002-03-20 Jakub Jelinek <jakub@redhat.com>
2939 * config/fr30/fr30.md (jump): Remove clobber of fixed register.
2941 * genemit.c (output_added_clobbers_hard_reg_p): Only output return
2942 stmt if some case has been output.
2944 2002-03-20 Jakub Jelinek <jakub@redhat.com>
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
2955 2002-03-20 Philip Blundell <pb@nexus.co.uk>
2957 * config/arm/arm.c (arm_output_epilogue): Don't generate separate
2958 return instruction if PC was popped.
2960 2002-03-20 Bob Wilson <bob.wilson@acm.org>
2962 * config/xtensa/xtensa.md: Remove unused type attributes.
2963 (adddi_carry, subddi_carry): Change type attribute to "multi".
2965 2002-03-19 Dale Johannesen <dalej@apple.com>
2967 PR optimization/5999, middle-end/5731
2968 * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
2969 multiplications by reciprocals.
2971 2002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
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.
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.
2997 2002-03-19 Jim Blandy <jimb@redhat.com>
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.
3002 2002-03-19 Richard Henderson <rth@redhat.com>
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.
3008 * config/ia64/ia64.c (ia64_eh_uses): New.
3009 * config/ia64/ia64-protos.h: Update.
3010 * config/ia64/ia64.h (EH_USES): New.
3012 2002-03-19 Richard Henderson <rth@redhat.com>
3014 * varasm.c (output_constant_def): Fix stupid typo.
3016 2002-03-19 Richard Henderson <rth@redhat.com>
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.
3024 2002-03-19 Olivier Hainque <hainque@act-europe.fr>
3026 * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
3029 2002-03-19 Richard Henderson <rth@redhat.com>
3032 * config/ia64/ia64.c: Revert 2002-03-01 patch.
3033 * config/ia64/ia64.h (INIT_EXPANDERS): New.
3035 2002-03-19 Jim Blandy <jimb@redhat.com>
3037 * cppmacro.c (cpp_macro_definition): Emit a space after the macro
3038 name, even if the replacement list contains no tokens, as required
3041 2002-03-19 Jason Merrill <jason@redhat.com>
3043 * varasm.c (globalize_decl): Get the name from the RTL, not
3044 DECL_ASSEMBLER_NAME.
3046 * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
3048 2002-03-19 Bob Wilson <bob.wilson@acm.org>
3050 * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
3051 subdi_carry): Define.
3053 2002-03-19 David Edelsohn <edelsohn@gnu.org>
3055 * config/rs6000/rs6000.c (rs6000_override_options): Only warn
3056 about -fpic/-fPIC if extra_warnings set.
3058 2002-03-19 David Edelsohn <edelsohn@gnu.org>
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.
3064 Tue Mar 19 14:12:32 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3066 * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
3067 in favor of SP if FRAME_POINTER_REQUIRED is false.
3069 2002-03-19 Lars Brinkhoff <lars@nocrew.org>
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),
3078 * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
3079 Use it instead of GEN_INT (trunc_int_for_mode (...)).
3081 2002-03-19 Jakub Jelinek <jakub@redhat.com>
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):
3088 * langhooks-def.h: Likewise.
3089 * objc/objc-lang.c: Likewise.
3090 * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
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.
3097 2002-03-18 Mark Mitchell <mark@codesourcery.com>
3099 * calls.c (precompute_arguments): Do not assume that temporaries
3100 can be destroyed after expanding the argument.
3101 (expand_call): Likewise.
3103 2002-03-15 Eric Christopher <echristo@redhat.com>
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.
3113 2002-03-18 Alexandre Oliva <aoliva@redhat.com>
3115 * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
3117 (anddi3, iorsi3): Likewise.
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
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.
3134 2002-03-18 Bob Wilson <bob.wilson@acm.org>
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.
3140 2002-03-18 Jakub Jelinek <jakub@redhat.com>
3143 * expr.c (emit_group_load): Use extract_bit_field if
3144 needed for CONCAT arguments.
3146 2002-03-18 Richard Earnshaw <rearnsha@arm.com>
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
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.
3161 2002-03-18 Bernd Schmidt <bernds@redhat.com>
3163 * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
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.
3176 2002-03-18 Aldy Hernandez <aldyh@redhat.com>
3178 * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
3181 2002-03-17 Richard Henderson <rth@redhat.com>
3183 * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
3186 2002-03-17 Hans-Peter Nilsson <hp@bitrange.com>
3188 * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
3189 (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
3191 2002-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3193 * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
3195 * predict.c (estimate_bb_frequencies): Delete unused variables.
3197 2002-03-17 Richard Henderson <rth@redhat.com>
3199 * config/ia64/ia64.c (ia64_attribute_table): Move before
3200 targetm definition. Make static.
3202 2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
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.
3218 2002-03-17 Hans-Peter Nilsson <hp@bitrange.com>
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.
3225 * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
3227 2002-03-16 Alexandre Oliva <aoliva@redhat.com>
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.
3234 * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
3235 * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
3237 * config/mips/mips.md (addsi3, adddi3): Use scratch register to
3238 add register to non-constant into sp.
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.
3256 2002-03-16 Neil Booth <neil@daikokuya.demon.co.uk>
3258 * cppinit.c: Revert -MD removal.
3260 2002-03-16 Stephane Carrez <Stephane.Carrez@worldnet.fr>
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.
3270 2002-03-16 Stephane Carrez <Stephane.Carrez@worldnet.fr>
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.
3285 2002-03-16 Stephane Carrez <Stephane.Carrez@worldnet.fr>
3287 * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
3288 allocating QImode in address registers.
3289 ("*movqi_m68hc11"): Likewise.
3291 Sat Mar 16 12:57:28 CET 2002 Jan HUbicka <jh@suse.cz>
3293 * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
3295 2002-03-16 Neil Booth <neil@daikokuya.demon.co.uk>
3297 * cppinit.c (print_help): Display -MD and -MMD.
3298 Don't display usage string. Update assertion syntax and
3300 (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
3301 (cpp_handle_option): Update.
3303 2002-03-15 Chris Demetriou <cgd@broadcom.com>
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."
3311 2002-03-15 Richard Henderson <rth@redhat.com>
3313 * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
3316 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
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.
3326 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
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.
3333 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
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.
3343 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
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
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
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.
3369 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
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.
3379 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
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
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.
3395 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
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.
3402 2002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
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
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.
3414 2002-03-15 Mark Mitchell <mark@codesourcery.com>
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.
3426 2002-03-15 Jakub Jelinek <jakub@redhat.com>
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.
3433 2002-03-15 Jason Merrill <jason@redhat.com>
3435 * varasm.c (assemble_variable): Call resolve_unique_section before
3436 checking DECL_SECTION_NAME. Use zeros for a decl with DECL_INITIAL
3439 2002-03-15 Richard Earnshaw <rearnsha@arm.com>
3442 * arm.md (split pattern for thumb shiftable immediates): Add comment
3443 explaining non-obvious test.
3445 2002-03-15 Richard Earnshaw <rearnsha@arm.com>
3448 * arm.md (movaddr, movaddr_insn): Delete.
3450 2002-03-15 Jason Merrill <jason@redhat.com>
3452 * toplev.c (wrapup_global_declarations): Clarify variable handling.
3453 -fkeep-static-consts doesn't apply to comdats.
3455 2002-03-14 Richard Henderson <rth@redhat.com>
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.
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