OSDN Git Service

PR middle-end/19616
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 087ce7d..ef8f274 100644 (file)
@@ -1,3 +1,345 @@
+2005-01-26  Steven Bosscher  <stevenb@suse.de>
+
+       PR middle-end/19616     
+       * tree.h (CALL_EXPR_TAILCALL): Add comment.
+       * calls.c (check_sibcall_argument_overlap_1): Revert the change
+       to this function from 2004-07-10.
+       * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
+       the current function for tail call optimizations if the address
+       of one of it its arguments is taken.
+
+2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cse.c (fold_rtx): Call equiv_constant only when necessary.
+
+2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * function.c (expand_function_end): If current_function_calls_alloca,
+       emit stack restore in a place that is reached when the function falls
+       through at the end.
+
+2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
+
+       * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
+       rule to avoid matching inappropriate suffix rule.
+
+2005-01-26  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/19241
+       * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
+
+2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
+       -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
+       of doubling.
+       (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
+       <sim*>: Always use crt1.o, regardless of N in simN.
+       <!sim>: Drop support for -pg and -p variants; always use crt0.o.
+       (ENDFILE_SPEC): Add crtn.o, after crtend.o.
+       (CRT_CALL_STATIC_FUNCTION): Remove.
+       * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
+       use crt1.o, regardless of N in simN.
+       <!sim>: Drop support for -pg and -p variants; always use crt0.o.
+       (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
+       (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
+       case isystem setting.
+       (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
+
+2005-01-25  Ian Lance Taylor  <ian@airs.com>
+
+       * gimple-low.c (block_may_fallthru): Correct handling of
+       SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
+
+2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
+       handlers to match indentation; nested under the mtune=* handler.
+       Similar for mcpu= and march=.
+
+2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
+       * config/mips/linux64.h (LIB_SPEC): Likewise.
+       * config/mn10300/linux.h (LIB_SPEC): Likewise.
+       * config/sh/linux.h (LIB_SPEC): Likewise.
+
+2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/frv/frv.c (frv_legitimize_tls_address): New.
+       (TARGET_HAVE_TLS): Define.
+       (FRV_SYMBOL_REF_TLS_P): Define.
+       (frv_override_options): Handle new register classes.
+       (frv_legitimate_address_p): Reject tls addresses.
+       (frv_legitimize_address): Handle TLS addresses.
+       (gen_inlined_tls_plt): New.
+       (gen_tlsmoff): New.
+       (frv_legitimize_tls_address): New.
+       (unspec_got_name): Add TLS entries.
+       (got12_operand): Add R_FRV_TLSMOFF12 case.
+       (frv_emit_move): Fixup TLS addresses.
+       (frv_emit_movsi): Legitimize TLS addresses.
+
+       * config/frv/frv.h (MASK_BIG_TLS): New.
+       (TARGET_BIG_TLS): New.
+       (HAVE_AS_TLS): Define.
+       (TARGET_SWITCHES): Add -mTLS and -mtls options.
+       (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
+       (REG_CLASS_NAMES): Same.
+       (REG_CLASS_CONTENTS): Same.
+       (CONSTRAINT_LEN): New.
+       (REG_CLASS_FROM_CONSTRAINT): New.
+       (PREDICATE_CODES): Add symbolic_operand.
+
+       * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
+       UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
+       UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
+       UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
+       R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
+       R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
+       R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
+       GR9_REG, GR14_REG, LRREG.
+       (type): Add load_or_call attribute.
+       ("load_or_call"): New reservation.
+       ("call_gettlsoff"): New.
+       ("tls_indirect_call"): New.
+       ("tls_load_gottlsoff12"): New.
+       ("tlsoff_hilo"): New.
+       ("tls_tlsdesc_ldd"): New.
+       ("tls_tlsoff_ld"): New.
+       ("tls_lddi"): New.
+
+       * config/frv/frv-protos.h (symbolic_operand): Protoize.
+
+       2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
+       * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
+       * config/frv/frv.c (TLS_BIAS): Define.
+       (frv_output_dwarf_dtprel): New.
+
+2005-01-26  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/19579
+       * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
+       both A and B, see if they don't clobber registers the other expr uses.
+
+2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
+
+       * real.c (do_add): Initialize signalling and canonical members.
+
+       * real.c (real_from_integer): Zero out destination.
+
+2005-01-18  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimize/19337
+       * tree-inline.c (initialize_inlined_parameters): Copy
+       saved_static_chain_decl only.
+
+2005-01-25  Richard Henderson  <rth@redhat.com>
+
+       PR target/19556
+       PR target/19584
+       * config/i386/i386.c (x86_inter_unit_moves): Zero.
+       (ix86_preferred_reload_class): Rewrite fp-constant section, with
+       80387 enabled, to return a proper subclass.  Return the subset that
+       overlaps with GENERAL_REGS for PLUS.
+       * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
+
+2005-01-25  Richard Henderson  <rth@redhat.com>
+
+       PR middle-end/19609
+       * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
+
+2005-01-25  Roger Sayle  <roger@eyesopen.com>
+
+       * expmed.c (choose_multiplier): Change interface to return the
+       multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
+       (expand_divmod): Update calls to choose_multiplier.
+
+2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR middle-end/19330
+       * expmed.c (extract_bit_field): Use adjust_address instead of
+       gen_lowpart when op0 is a MEM.
+
+2005-01-24  Steven Bosscher  <stevenb@suse.de>
+
+       * cfgexpand.c (expand_gimple_tailcall): Fix typo.
+
+2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/irix-csr.c: New file.
+       * config/mips/t-iris6 (irix-csr.o): New rule to build it.
+       (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
+       * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
+       executables.
+
+2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR bootstrap/19364
+       * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
+       sparc/elf.h, add sparc/sp-elf.h.
+       (sparc-*-rtems*): Likewise.
+       (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
+       tm-dwarf2.h, add sparc/sp-elf.h.
+       (sparc86x-*-elf): Likewise.
+       (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
+       * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
+       TARGET_OS_CPP_BUILTINS.
+       * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
+       * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
+       Undefine it.
+       * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
+       * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
+       (SWITCH_TAKES_ARG): Likewise.
+       (LOCAL_LABEL_PREFIX): Likewise.
+       (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+       (TARGET_N_FORMAT_TYPES): Delete.
+       (TARGET_FORMAT_TYPES): Likewise.
+       (ASM_DECLARE_FUNCTION_SIZE): Likewise.
+       * config/sparc/elf.h: Delete.
+       * config/sparc/sp-elf.h: New file.
+
+2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-flow-inline.h (phi_arg_from_edge): Remove.
+       * tree-flow.h: Remove the corresponding prototype.
+       * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
+       tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
+
+2005-01-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/17751
+       * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
+       for AIX ABI or ELF -fPIC.
+       (rs6000_emit_load_toc_table): Don't create toc_section here.
+       (rs6000_xcoff_file_start): Nor here.
+
+2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
+
+       * sh.c (ra.h): Don't #include.
+       (hard_regs_intersect_p): New function, resurrected from ra.c.
+
+       * sh.c: Fix 1996 Copyright.
+
+2005-01-24  Richard Henderson  <rth@redhat.com>
+           Aldy Hernandez  <aldyh@redhat.com>
+
+       * regrename.c (note_sets): Handle subregs.
+
+2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR bootstrap/18058
+       * genconditions.c (write_header, write_conditions): Elide file if
+       not GCC >= 3.0.1.
+
+2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
+       config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
+       Update copyright.
+
+2005-01-24  Jakub Jelinek  <jakub@redhat.com>
+
+       * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
+       expand_builtin_printf, expand_builtin_fprintf,
+       expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
+       checking against POINTER_TYPE.
+       (validate_arglist): Handle POINTER_TYPE code by checking
+       POINTER_TYPE_P.
+
+2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
+
+       * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
+       init_rtlanal): New.
+       (for_each_rtx): Call for_each_rtx_1.
+       * rtl.h (init_rtlanal): Declare.
+       * toplev.c (backend_init): Call init_rtlanal.
+
+2005-01-24  Jakub Jelinek  <jakub@redhat.com>
+
+       * flow.c (propagate_one_insn): Formatting.
+
+       PR middle-end/19551
+       * flow.c (libcall_dead_p): Be more conservative if unsure.
+       If there are any instructions between insn and call, see if they are
+       all dead before saying the libcall is dead.
+
+2005-01-24  Uros Bizjak  <uros@kss-loka.si>
+
+       * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
+       operand constraint for operand 0.
+
+2005-01-23  Richard Henderson  <rth@redhat.com>
+
+       PR 19486
+       * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
+       edges leading to join block.
+
+2005-01-23  Roger Sayle  <roger@eyesopen.com>
+
+       * expmed.c (expand_mult_highpart): Make static.  Change type of
+       constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
+       (expand_divmod): Updates calls to expand_mult_highpart by using
+       gen_int_mode to pass a CONST_INT rtx.
+       * rtl.h (expand_mult_highpart): Remove prototype.
+
+2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * flow.c (regset_bytes, regset_size): Remove.
+
+       * cfganal.c: Fix a reference to Harvey's paper.
+
+2005-01-23  Steven Bosscher  <stevenb@suse.de>
+
+       PR rtl-optimization/19464
+       * tree-optimize.c (init_tree_optimization_passes): Add one more
+       copyrename pass just before out-of-ssa.
+
+2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR bootstrap/18058
+       * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
+       * ggc-none.c (ggc_free): Define.
+
+2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cse.c (max_reg, max_insn_uid): Remove.
+       (cse_main): Don't access max_reg or max_insn_uid.
+
+       * c-common.c (explicit_flag_signed_bitfields,
+       lang_statement_code_p, lang_expand_function_end): Remove.
+       * c-common.h: Remove the corresponding declarations.
+       * c-opts.c (c_common_handle_option): Remove all write access
+       to explicit_flag_signed_bitfields.
+
+       * cgraph.c (cgraph_varpool_n_nodes): Remove.
+       (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
+       * cgraph.h: Remove the corresponding declaration.
+
+       * gcse.c (null_pointer_info): Remove.
+
+2005-01-23  Roger Sayle  <roger@eyesopen.com>
+           Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * combine.c (simplify_logical): Only simplify logical expressions
+       of the form ior(and(x,y),z) by the inverse distributive law if the
+       result is cheaper than the original.
+
+2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
+       fold-const.c, gimplify.c, params.h, tree-data-ref.c,
+       tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
+       tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
+       config/freebsd-spec.h, config/arm/arm.h,
+       config/h8300/h8300.md, config/i386/i386.md,
+       config/i386/predicates.md, config/i386/sse.md,
+       config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
+       config/vax/vax.md: Fix comment typos.  Follow spelling
+       conventions.
+
 2005-01-23  Steven Bosscher  <stevenb@suse.de>
 
        * gengtype.c (walk_type): Produce `not equal to' compares for loop
        first label to see if it is a nonlocal label.
 
 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
-            Andrew Pinski  <pinskia@physics.uc.edu>
+           Andrew Pinski  <pinskia@physics.uc.edu>
 
        PR target/19491
        * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
 
        * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
-        Replace i387 with 'i386 compiler' in -mfpmath=sse option.
+       Replace i387 with 'i386 compiler' in -mfpmath=sse option.
 
 2005-01-04  Roger Sayle  <roger@eyesopen.com>