OSDN Git Service

Reassociate multiply expression with an adjacent non-multiply expression.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 924c0fa..61813c4 100644 (file)
@@ -1,3 +1,438 @@
+2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
+
+        * fold-const.c (fold): Reassociate multiply expression
+        with an adjacent non-multiply expression to use
+        architecture's multiply-add instruction.
+
+2004-03-30  Zack Weinberg  <zack@codesourcery.com>
+
+       * gengtype.c (create_option): New function.
+       * gengtype.h: Prototype it.
+       * gengtype-yacc.y (stringseq): New rule.
+       (option): Use create_option.  Add new bare ID production.  Use
+       stringseq, not STRING directly.
+
+       * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
+       * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
+       * varray.h, config/alpha/alpha.c:
+       Use new shorter form of GTY markers.
+
+       * doc/gty.texi: Rewrite.
+
+2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * config/darwin.c (machopic_function_base_name):
+       Remove current_name and getting the name of the
+       current function.
+
+2004-03-30  Nick Clifton  <nickc@redhat.com>
+
+       * config/arm/arm.md (thumb_jump): Reduce the backward branch
+       range, and increase the forward branch range, to allow for
+       the fact that the PC will be off by 4.
+
+2004-03-30  Alan Modra  <amodra@bigpond.net.au>
+
+       * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
+
+2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
+
+       * config/rs6000/rs6000.c (output_vec_const_move):
+       Find all cases of EASY_VECTOR_15_ADD_SELF.
+       (easy_vector_constant_add_self): Accept
+       all vector constant loadable by vsplt* and vadd*.
+       (easy_vector_same): Use easy_vector_splat_const.
+       (easy_vector_const): Use easy_vector_splat_const.
+       (easy_vector_splat_const): New function.
+       (gen_easy_vector_constant_add_self): New function.
+
+       * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
+       New prototype.
+
+       * config/rs6000/altivec.md (movv4si splitter): Change to
+       emit move insn with halfed vector constant.
+       (*movv8hi splitter): Likewise.
+       (*movv16qi splitter): Likewise.
+
+2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
+
+       PR 11591
+       * config/rs6000/rs6000.c (rs6000_legitimate_address):
+       Allow any offset to argument pointer in no-strict case.
+
+2004-03-30  Jan Hubicka  <jh@suse.cz>
+
+       * toplev.c (backend_init): Add missing call to inint_optimization_passes.
+       * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
+       dump file in non-unit-at-a-time mode.
+
+2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.h: Correct #ifdef to test for
+       HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
+       HAVE_AS_MUL_BUG_ABORT_OPTION.
+
+2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
+       the address inside the old RTL.
+
+2004-03-28  Zack Weinberg  <zack@codesourcery.com>
+
+       * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
+       (struct c_binding, struct c_scope): Add chain_next
+       attributes to GTY markers.
+       (struct lang_identifier, struct lang_tree_node): Define
+       here...
+       * c-tree.h: ... not here.  No longer need to declare struct
+       c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
+       * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
+       to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
+
+       PR 14734, 11944
+       * c-decl.c (get_parm_info): If error_mark_node is encountered
+       in the bindings chain, unbind and discard it; don't abort.
+
+2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
+           Dorit Naishlos <dorit@il.ibm.com>
+
+       * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
+       one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
+
+2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
+
+       * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
+       (m68hc11_attribute_table): New attribute "page0" to mark a global
+       variable as being allocated from within page0 section.
+       (m68hc11_encode_label): New function.
+       (m68hc11_strip_name_encoding): New function.
+       (m68hc11_page0_symbol_p): New function.
+       (m68hc11_indirect_p): Accept global variables marked in page0.
+       (m68hc11_encode_section_info): Lookup "page0" attribute.
+
+       * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
+       represents access to page0 variables.
+
+       * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
+       ("*logicalsi3_silshl16_zext"): Likewise.
+       ("*ashldi3_const32"): Likewise.
+       (peephole2 ashift): Likewise.
+
+2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * c-tree.h (C_DECL_REGISTER): New.
+       * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
+       finish_decl, grokdeclarator, get_parm_info), c-typeck.c
+       (build_array_ref, c_mark_addressable): Set and use it.
+       * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
+       Allow structures with volatile fields to be declared register.
+       Don't check TREE_ADDRESSABLE before warning about taking address
+       of register.
+       * c-decl.c (finish_decl): Don't allow structures with volatile
+       fields to be placed in named register.
+       * doc/trouble.texi: Remove reference to structures with volatile
+       fields in registers.
+
+2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * function.c (thread_prologue_and_epilogue): Move
+       NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
+       before the epilogue.
+
+2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * expr.c (store_constructor): Use gen_int_mode to correctly
+       sign-extend CONST_INT value.
+
+2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
+       * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
+       * doc/extend.texi: Likewise.
+
+2004-03-26  Diego Novillo  <dnovillo@redhat.com>
+
+       * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
+         with TYPE_ORIG_SIZE_TYPE.
+
+2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
+
+       PR 14219
+       * c-typeck.c (build_binary_op): Do not allow comparisons of
+       vectors.
+
+2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
+
+       * config.gcc: Remove sparc-tti-*.
+       * config/sparc/pbd.h: Delete.
+
+       * config/sparc/sol2.h: Remove note about Sun OS 4.x.
+       * config/sparc/aout.h: Likewise.
+
+       * config/sparc/sparc.h: Remove if 0'd code.
+       * config/sparc/sparc.md (call): Remove if 0'd code.
+       (call_value): Likewise.
+       (nonlocal_goto): Likewise.
+       (unimp_insn): Delete.
+
+2004-03-25  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
+       BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
+
+2004-03-25  Richard Henderson  <rth@redhat.com>
+
+       PR 11527
+       * c-typeck.c (pop_init_level): Emit pending init elements earlier
+       rather than later.
+
+2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (fold_builtin): Fix error in last change.
+
+2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h: Formatting fix.
+
+2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.def: Add ctype builtins.
+       * doc/extend.texi: Likewise.
+
+2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (fold_builtin): Add new builtin optimizations for
+       sqrt and/or cbrt.
+       * fold-const.c (fold): Likewise.
+
+2004-03-25  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
+       (rs6000_sched_groups): New variable.
+       (processor_target_table): Add power5.
+       (rs6000_override_options): Set rs6000_sched_insert_nops,
+       rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
+       from rs6000_sched_groups.
+       (output_cbranch): Use rs6000_always_hint.
+       (rs6000_variable_issue): Use rs6000_sched_groups.
+       (rs6000_adjust_cost): Add CPU_POWER5.
+       (is_microcoded_insn): Use rs6000_sched_groups.
+       (is_dispatch_slot_restricted): Use rs6000_sched_groups.
+       Return 2 for POWER5 cracked instructions.
+       (is_cracked_insn): Use rs6000_sched_groups.
+       (is_branch_slot_insn): Use rs6000_sched_groups.
+       (rs6000_issue_rate): Add CPU_POWER5.
+       (rs6000_sched_finish): Use rs6000_sched_groups.
+       (rs6000_rtx_costs): Add PROCESSOR_POWER5.
+       * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
+       (DEFAULT_SCHED_COSTLY_DEP): Delete.
+       (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
+       (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
+       * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
+       * config/rs6000/power5.md: New file.
+       * doc/invoke.texi: Add power5 option.
+
+2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
+       config/arm/arm.c, objc/objc-act.c: Fix comment typos.
+       * doc/invoke.texi: Fix a typo.
+
+2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
+
+       PR optimization/9707.
+       * stmt.c (emit_case_nodes): Emit equality comparisons instead
+       of recursing if both children are single-valued cases with no
+       children.
+
+2004-03-25  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.c (vfp_print_multi): Remove.
+       (arm_output_fldmx): New function.
+       (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
+       (arm_expand_prologue): Update to match.
+       (arm_get_vfp_saved_size): New Function.
+       (arm_get_frame_offsets): Use it.
+       (arm_output_epilogue): Use new functions.
+
+2004-03-24  Richard Henderson  <rth@redhat.com>
+
+       * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
+       (reg_known_value, reg_known_value_size): Likewise; make static.
+       (reg_known_equiv_p): Make static.
+       (clear_reg_alias_info): Update for new indexing.
+       (get_reg_known_value, set_reg_known_value): New.
+       (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
+       (canon_rtx): Use them.
+       (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
+       Don't play queer offsetting games with reg_known_value and
+       reg_known_equiv_p.
+       (end_alias_analysis): Free reg_known_value with gc.
+       * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
+       * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
+       (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
+       functions instead.
+
+2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
+       config/i386/mmintrin.h: Update copyright.
+
+2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * configure.ac: Add --enable-werror-always (for top level bootstrap
+       support).
+       * configure: Regenerate.
+
+2004-03-24  Ziemowit Laski  <zlaski@apple.com>
+
+       * objc/objc-act.c (objc_comptypes): Treat comparisons
+       between 'Class' and '<class> *' as explicitly invalid.
+
+2004-03-24  David Edelsohn  <edelsohn@gnu.org>
+
+       * doc/invoke.texi (-frename-registers: Add enabled at -O3.
+       (-fprofile-values): Add enabled with profile-{generate,use}.
+       (-fvpt): Same.
+       (-ftracer): Add enabled with profile-use.
+       (-funit-at-a-time): Add enabled at -O2,-O3.
+       (-funroll-loops): Add enabled with profile-use.
+       (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
+       (max-gcse-passes): Mention default.
+       (max-cse-path-length): Mention default.
+
+2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * Makefile.in (STRICT2_WARN): Reorder.
+       * configure.ac: Check for -Wold-style-definition, and use it
+       in strict1_warn if it's available.
+       * configure: Regnerate.
+
+2004-03-24  Paul Brook  <paul@nowt.org>
+
+       * config.gcc <arm>: Add --with-abi=
+       * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
+       thumb_far_jump_used): Remove prototypes.
+       (arm_needs_doubleword_align): Add prototype.
+       (thumb_compute_initial_elimination_offset): Ditto.
+       * config/arm/arm.c (arm_get_frame_offsets): New function.
+       (use_return_insn, output_return_instruction, arm_output_epilogue,
+       arm_output_function_epilogue, arm_compute_initial_elimination_offset,
+       arm_expand_prologue, thumb_expand_epilogue): Use it.
+       (arm_abi, target_abi_name, all_arm_abis): New variables.
+       (arm_override_options): Set them.  Set structure padding for AAPCS.
+       (arm_return_in_memory): Update ABI check.
+       (arm_init_cumulative_args): Initialize can_split.
+       (arm_needs_doubleword_align): New function.
+       (arm_function_arg): Don't split args after pushing to stack. Handle
+       doubleword/even reg alignment.
+       (arm_va_arg): Handle all doubleword aligned args.
+       (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
+       on ABI, not CPU.
+       (arm_compute_save_reg0_reg12_mask): Fix comment.
+       (thumb_get_frame_size, thumb_get_frame_size): Remove.
+       (thumb_jump_far_used_p): Remove superfluous argument.  Return save
+       value for alignment.
+       (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
+       to match.
+       (thumb_compute_initial_elimination_offset): New function.
+       (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
+       unneccessary rounding.
+       * config/arm/arm.h (target_abi_name): Declare.
+       (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
+       arm_abi_type, ARM_DEFAULT_ABI): Define.
+       (ARM_FLAG_ATPCS): Remove.
+       (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
+       (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
+       (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
+       TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
+       (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
+       Contitionalize on ABI, not CPU.
+       (struct arm_stack_offsets): Define.
+       (struct machine_function): Add stack_offsets.  Remove frame_size.
+       (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
+       pushed.
+       (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
+       doubleword alignment.
+       (THUMB_INITIAL_ELIMINATION_OFFSET,
+       ARM_INITIAL_ELIMINATION_OFFSET): Remove.
+       (INITIAL_ELIMINATION_OFFSET): Call functions directly.
+       * config/arm/arm.md (align_8): Enable for all targets.
+       * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
+       (ARM_DEFAULT_ABI): Define.
+       * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
+       -mstructure-size-boundary.
+
+2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * configure.ac: Check for -Wno-variadic-macros; don't use
+       -pedantic (in stage 1 or a simple 'make all') unless it's available,
+       and if it's available, use it.  Also, clean up check for
+       -Wno-long-long.
+       * configure: Regenerate.
+
+2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
+       * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
+       (MULTILIB_DEFAULTS): Use it.
+       (MIPS_CPU_STRING_DEFAULT): Remove.
+       (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
+       (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
+       EABI64 -mlong32 the default ABI.  Enforce the default architecture.
+       * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
+       march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
+       (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
+       (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
+       accordingly.
+
+2004-03-24  DJ Delorie  <dj@redhat.com>
+           Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
+       (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
+       (ASM_SPEC): Pass down -mfix-vr4122-bugs.
+       * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
+       in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
+       (mips_init_libfuncs): Use special functions for divsi3 and modsi3
+       if TARGET_FIX_VR4122.
+       * config/mips/mips.md (define_attr length): Account for nops inserted
+       after macc and dmult when using -mfix-vr4122-bugs.
+       (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
+       * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
+       LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
+       * config/mips/vr4122-div.S: New file.
+       * doc/invoke.texi: Document -mfix-vr4122-bugs.
+
+2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
+       (TARGET_MIPS4130): New macro.
+       (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
+       * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
+       (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
+       with PROCESSOR_R4130.
+       * config/mips/mips.md (define_attr cpu): Add r4130.
+       * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
+
+2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+           Richard Sandiford  <rsandifo@redhat.com>
+
+       * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
+
+2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR preprocessor/14438
+       * cpplib.c (do_pragma): Remove line_change call after pragma
+       handler.
+
+2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * doc/extend.texi (ARM Built-in Functions): Replace with correct
+       declarations.
+
 2004-03-23  Roger Sayle  <roger@eyesopen.com>
 
        * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND