OSDN Git Service

* config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index f42ea1c..d967aca 100644 (file)
@@ -1,3 +1,384 @@
+2005-05-07  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
+       ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
+       Handle moved operand being in special register.
+       ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
+       presumed working insn.
+       (mover2side): Add FIXME.
+
+2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
+
+       * integrate.c (get_func_hard_reg_initial_val): Delete.
+       (has_func_hard_reg_initial_val): Delete.
+       (get_hard_reg_initial_val): Inline the old implementation of
+       get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
+       instead of has_func_hard_reg_initial_val to test for an existing
+       pseudo.  Only create an rtx if a new initial value entry is needed.
+       (has_hard_reg_initial_val): Scan the initial value list directly.
+       Don't create an rtx.
+
+2005-05-07  David Edelsohn  <edelsohn@gnu.org>
+
+       * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
+       from extra_options.
+       * config.in (HAVE_AS_POPCNTB): New.
+       * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
+       (HAVE_AS_POPCNTB): New.
+       * configure: Regenerated.
+       * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
+       * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
+       MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
+       and rs6000_sched_costly_dep.
+       * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
+       (TARGET_XL_COMPAT): Delete.
+       * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
+       (popcount<mode>2): New.
+       (popcntb<mode>2): New.
+       * config/rs6000/rs6000.opt (mpopcntb): New.
+
+       * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
+       if variable name exists.
+
+2005-05-07  Matt Kraai  <kraai@ftbfs.org>
+
+       * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
+
+2005-05-07  Richard Henderson  <rth@redhat.com>
+
+       PR target/21412
+       * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
+       with constant offsets.
+
+2005-05-07  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/v850/v850.c (print_operand): Use gcc_assert and
+       gcc_unreachable, as appropriate.
+       (print_operand_address, v850_handle_data_area_attribute,
+       v850_encode_data_area, construct_restore_jr, construct_save_jarl,
+       v850_insert_attributes, construct_prepare_instruction): Likewise.
+       * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
+       * config/v850/v850.md (movsicc, *sasf_1): Likewise.
+
+2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
+       config/rs6000/rs6000.h: Fix comment typos.
+
+2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
+
+       * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
+       * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
+       (mips_scalar_mode_supported_p): Delete.
+
+2005-05-06  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips.opt: Remove -mint64 option.
+       * config/mips/mips.c (override_options): Remove -mint64
+       handling.
+       * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
+       * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
+       64-bit integer handling.
+       * doc/invoke.texi (Option Summary): Remove -mint64 for
+       mips.
+
+2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR tree-optimization/19401
+       * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
+       * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
+       (estimated_unrolled_size): New function.
+       (try_unroll_loop_completely, canonicalize_loop_induction_variables,
+       tree_unroll_loops_completely): Always unroll loops if the code size
+       does not increase.
+       * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
+       loops should be unrolled completely.
+       (gate_tree_complete_unroll): Run complete unrolling unconditionally.
+
+2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR rtl-optimization/21254
+       * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
+       assumptions for loops that otherwise do not roll.
+       (find_simple_exit): Prefer # of iterations that is guaranteed
+       not to be infinite.
+       * loop-unroll.c (decide_peel_once_rolling,
+       decide_peel_completely): Check whether the loop is infinite.
+
+2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
+
+       * config/rs6000/sysv4.opt: Fix typo.
+
+2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/21329
+       * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
+       for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
+       Don't use rep; movs{l,q} if the repetition count is really small,
+       instead use a sequence of movs{l,q} instructions.
+
+2005-05-06  Jeff Law  <law@redhat.com>
+
+       PR tree-optimization/21380
+       * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
+       thread through a block with no preds.
+
+2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
+       ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
+       add_call_read_ops): Use VEC instead of VARRAY.
+
+2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/mcore/mcore.c (mcore_print_operand_address): Use
+       gcc_assert and gcc_unreachable as appropriate.
+       (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
+       mcore_output_andn, output_inline_const, mcore_output_move,
+       mcore_output_movedouble, mcore_expand_block_move,
+       layout_mcore_frame, mcore_initial_elimination_offset,
+       mcore_expand_prolog, mcore_mark_dllexport,
+       mcore_mark_dllimport): Likewise.
+       * config/mcore/mcore.h (switch_to_section): Likewise.
+       * config/mcore/mcore.md: Likewise.
+
+2005-05-06  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
+       TARGET_PROFILE_KERNEL.
+
+       * config/rs6000/rs6000.c (output_profile_hook): Add comment to
+       TARGET_PROFILE_KERNEL use.
+
+2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
+       and gcc_unreachable, as appropriate.
+       (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
+       m32r_expand_prologue, m32r_output_function_epilogue,
+       m32r_legitimize_pic_address, m32r_print_operand_address,
+       emit_cond_move, m32r_function_symbol,
+       m32r_output_block_move): Likewise.
+       * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
+       * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
+       *rev_zero_branch_insn): Likewise.
+       
+2005-05-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/20961
+       * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
+       if both NEWDECL and OLDDECL are already weak.
+
+2005-05-06  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
+
+2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
+           Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
+       and plus_constant.
+
+2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
+           David Edelsohn  <edelsohn@gnu.org>
+
+       * config.gcc: Add .opt magic for the rs6000 ports.
+
+       * doc/invoke.texi: Document -mabi= option properly.  Document
+       -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
+       -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
+       -misel=.
+
+       * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
+       SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
+       TARGET_XL_COMPAT.
+
+       * config/rs6000/aix.opt: New.
+       * config/rs6000/aix41.opt: New.
+       * config/rs6000/aix64.opt: New.
+       * config/rs6000/darwin.opt: New.
+       * config/rs6000/linux64.opt: New.
+       * config/rs6000/rs6000.opt: New.
+       * config/rs6000/sysv4.opt: New.
+
+       * config/rs6000/sysv4.h: Delete definitions of MASK_* and
+       associated TARGET_*.  Remove SUBTARGET_OPTIONS,
+       SUBTARGET_SWITCHES.
+       Define TARGET_USES_SYSV4_OPT.
+       * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
+       * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
+       TARGET_USES_AIX64_OPT.
+       * config/rs6000/aix51.h: Same.
+       * config/rs6000/aix52.h: Same.
+       * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
+       MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
+       Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
+       Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
+       * config/rs6000/linux64.h: Use
+       rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
+
+       * config/rs6000/rs6000.c: Remove definitions of
+       rs6000_sched_restricted_insns_priority,
+       rs6000_long_double_size_string, rs6000_altivec_vrsave,
+       rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
+       rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
+       rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
+       rs6000_alignment_string.  Define rs6000_explicit_options.
+       (rs6000_parse_abi_options): Remove.
+       (rs6000_parse_alignment_option): Remove.
+       (rs6000_parse_float_gprs_option): Remove.
+       (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
+       TARGET_DEFAULT_TARGET_FLAGS.
+       (rs6000_override_options): Revamp to use new .opt machinery.
+
+       * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
+       of new .opt machinery.  Remove target_flags.  Redefine
+       TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
+       SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
+       rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
+       rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
+       rs6000_longcall_switch, rs6000_default_long_calls,
+       rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
+       rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
+       TARGET_ALTIVEC_VRSAVE.
+
+2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
+
+       * config.gcc (hppa1.1-*-rtems*): Remove.
+       * config/pa/rtems.h: Remove.
+
+2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
+
+       * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
+       Exclude roe/603e multilib variants.
+
+2005-05-04  Denis Chertykov  <denisc@overta.ru>
+
+       PR target/21284
+       * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
+       for output.
+
+2005-05-05  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
+       arm/pe.opt to $extra_options.
+       * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
+       (target_float_abi_name, target_float_switch, target_abi_name)
+       (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
+       (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
+       (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
+       (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
+       (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
+       (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
+       (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
+       (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
+       (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
+       (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
+       (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
+       (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
+       (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
+       (TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
+       (arm_pic_register_string): Delete.
+       (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
+       TARGET_TPCS_FRAME.
+       (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
+       * config/arm/coff.h (TARGET_DEFAULT): Likewise.
+       * config/arm/elf.h (TARGET_DEFAULT): Likewise.
+       * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
+       * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
+       * config/arm/semi.h (TARGET_DEFAULT): Likewise.
+       * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
+       * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
+       * config/arm/pe.h (TARGET_DEFAULT): Likewise.
+       (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
+       (SUBTARGET_SWITCHES): Delete.
+       * config/arm/arm.c (target_float_switch): Delete.
+       (arm_cpu_select): Moved from config/arm/arm.h.
+       (target_fpu_name, target_fpe_name, target_float_abi_name)
+       (target_abi_name, structure_size_string, arm_pic_register_string)
+       (arm_select): Make static.
+       (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
+       (arm_handle_option): New function.
+       (arm_override_options): Update target_flags checks for new mask names.
+       Remove target_float_switch code.
+       (arm_expand_prologue, thumb_expand_prologue): Check
+       !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
+       * config/arm/arm.opt, config/arm/pe.opt: New files.
+
+2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
+       gcc_unreachable as appropriate.
+       (arc_double_limm_p, arc_setup_incoming_varargs,
+       arc_compute_function_type, arc_output_function_prologue,
+       arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
+       output_shift, arc_print_operand, arc_print_operand_address,
+       arc_final_prescan_insn): Likewise.
+       * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
+
+2005-05-04  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
+       comparing Pmode.
+       (SDI): New.
+       (cmp): Delete.
+       (wd): New.
+       (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
+       add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
+       clz<mode>2, ctz<mode>2, ffs<mode>2): New.
+       (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
+       (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
+       (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
+       (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
+       (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
+
+2005-05-05  Paul Brook  <paul@codesourcery.com>
+
+       * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
+       cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
+       regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
+       and tree-data-ref.h with *_H variables.
+
+2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
+
+2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
+
+2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
+
+       * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
+
+2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
+
+       * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
+       setting of vrsave register for current function after
+       call to save_world is emitted.
+
+2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
+
+       * config/mmix/predicates.md: New file.
+       * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
+       (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
+       (mmix_foldable_comparison_operator, mmix_comparison_operator)
+       (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
+       * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
+       Don't define.
+       * config/mmix/mmix.md: Include predicates.md.
+       ("call", "call_value"): Force address to register if it isn't a
+       mmix_symbolic_or_address_operand.
+
+2005-05-04  Andrew MacLeod  <amacleod@redhat.com>
+
+       * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
+       the flags are of appropriate types.
+       (num_ssa_operands): Generalize using the generic interface.
+       * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
+       iterator.
+
 2005-05-04  Richard Sandiford  <rsandifo@redhat.com>
 
        * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)