OSDN Git Service

* config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 7247765..0cc0223 100644 (file)
@@ -1,3 +1,227 @@
+2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
+       (*cmpfp_<mode>_cc): Ditto.
+       (*fp_jcc_8<mode>_387): Ditto.
+       (*fop_<MODEF:mode>_2_i387): Ditto.
+       (*fop_<MODEF:mode>_3_i387): Ditto.
+       (*fop_xf_2_i387): Ditto.
+       (*fop_xf_3_i387): Ditto.
+
+2008-06-02  Tomas Bily  <tbily@suse.cz>
+
+       * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
+
+2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips.c (mips_valid_offset_p): New function.
+       (mips_valid_lo_sum_p): Likewise.
+       (mips_classify_address): Use them.
+       (mips_force_address): New function.
+       (mips_legitimize_address): Use it.
+       * config/mips/mips.md (MOVE128): New mode iterator.
+       (movtf): Require TARGET_64BIT.  Remove empty strings.
+       (*movtf_internal): Rename to...
+       (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
+       of "R" and use {,fp}{load,store} attributes instead of "multi".
+       Use a separate define_split.
+       (*movtf_mips16): New pattern.
+
+2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips-protos.h (mips_expand_before_return): Declare.
+       * config/mips/mips.c (mips_expand_before_return): New function.
+       (mips_expand_epilogue): Call it.
+       * config/mips/mips.md (return): Turn into a define_expand.
+       (*return): New insn.
+
+2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
+       * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
+       functions.  Do not emit uses and clobbers of CONCATs; individually
+       use and clobber their operands.
+       * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
+       gen_clobber, emit_use and gen_use.
+       (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
+       (expand_builtin_return): Likewise.
+       * cfgbuild.c (count_basic_blocks): Likewise.
+       * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
+       * explow.c (emit_stack_restore): Likewise.
+       * expmed.c (extract_bit_field_1): Likewise.
+       * expr.c (convert_move, emit_move_complex_parts): Likewise.
+       (emit_move_multi_word, store_constructor): Likewise.
+       * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
+       (thread_prologue_and_epilogue_insns): Likewise.
+       * lower-subreg.c (resolve_simple_move): Likewise.
+       * optabs.c (widen_operand, expand_binop): Likewise.
+       (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
+       * reload.c (find_reloads): Likewise.
+       * reload1.c (eliminate_regs_in_insn): Likewise.
+       * stmt.c (expand_nl_goto_receiver): Likewise.
+       * config/alpha/alpha.md (builtin_longjmp): Likewise.
+       * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
+       * config/arm/arm.c (arm_load_pic_register): Likewise.
+       (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
+       * config/arm/arm.md (untyped_return): Likewise.
+       * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
+       * config/avr/avr.c (expand_prologue): Likewise.
+       * config/bfin/bfin.c (do_unlink): Likewise.
+       * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
+       * config/cris/cris.c (cris_expand_prologue): Likewise.
+       * config/darwin.c (machopic_indirect_data_reference): Likewise.
+       (machopic_legitimize_pic_address): Likewise.
+       * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
+       (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
+       * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
+       (ix86_expand_convert_uns_didf_sse): Likewise.
+       (ix86_expand_vector_init_general): Likewise.
+       * config/ia64/ia64.md (eh_epilogue): Likewise.
+       * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
+       * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
+       * config/m32r/m32r.c (m32r_reload_lr): Likewise.
+       (config/iq2000/iq2000.c): Likewise.
+       * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
+       (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
+       (builtin_longjmp): Likewise.
+       * config/mn10300/mn10300.md (call, call_value): Likewise.
+       * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
+       * config/pdp11/pdp11.md (abshi2): Likewise.
+       * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
+       * config/s390/s390.c (s390_emit_prologue): Likewise.
+       * config/s390/s390.md (movmem_long, setmem_long): Likewise.
+       (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
+       (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
+       * config/sh/sh.c (prepare_move_operands): Likewise.
+       (output_stack_adjust, sh_expand_epilogue): Likewise.
+       (sh_set_return_address, sh_expand_t_scc): Likewise.
+       * config/sparc/sparc.c (load_pic_register): Likewise.
+       * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
+       * config/spu/spu.c (spu_expand_epilogue): Likewise.
+       * config/v850/v850.c (expand_epilogue): Likewise.
+
+2008-05-31  Anatoly Sokolov  <aesok@post.ru>
+
+       * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
+       (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
+       (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
+       * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
+       movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
+       stack pointer register.
+       (output_movhi): Remove code for interrupt specific writing to the 
+       stack pointer register.
+
+2008-05-31  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/34244
+       * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
+       (tree_expr_nonzero_warnv_p): Likewise.
+       * tree-vrp.c (vrp_expr_computes_nonnegative): Call
+       ssa_name_nonnegative_p.
+       (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
+       (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
+       not tree_expr_nonzero_warnv_p.
+
+       PR tree-optimization/36262
+       Revert
+       2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
+
+       PR tree-optimization/34244
+       * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
+       (record_numbers_of_iterations): New function.
+       (execute_vrp): Cache the numbers of iterations of loops.
+       * tree-scalar-evolution.c (scev_reset_except_niters):
+       New function.
+       (scev_reset): Use scev_reset_except_niters.
+       * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
+
+2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
+       __WORKAROUND_RETS when appropriate.
+
+2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
+       *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
+       mode iterator.
+       (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
+       *fop_df_comm_sse insn patterns using MODEF mode iterator.
+       (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
+       *fop_df_comm_i387 insn patterns using MODEF mode iterator.
+       (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
+       *fop_df_1_mixed insn patterns using MODEF mode iterator.
+       (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
+       *fop_df_1_sse insn patterns using MODEF mode iterator.
+       (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
+       *fop_df_1_i387 insn patterns using MODEF mode iterator.
+       (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
+       *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
+       (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
+       *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
+       (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
+       (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
+       (*fop_xf_4_i387): Use <MODE> for mode attribute.
+       (*fop_xf_5_i387): Ditto.
+       (*fop_xf_6_i387): Ditto.
+
+2008-05-30  Richard Guenther  <rguenther@suse.de>
+
+       * builtins.c (build_string_literal): Avoid generating
+       a non-gimple_val result.
+
+2008-05-30  DJ Delorie  <dj@redhat.com>
+
+       * exec-tool.in: Use an environment variable (private) instead of a
+       file (shared) as a semaphore, so as to not break parallel builds.
+
+2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
+
+       * optabs.c (maybe_encapsulate_block): Remove.
+       (emit_libcall_block): Adjust accordingly.
+       * optabs.h (maybe_encapsulate_block): Remove prototype.
+
+       * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
+       Don't use maybe_encapsulate_block.
+
+2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
+
+       * config/rs6000/rs6000.c (rs6000_legitimize_address,
+       rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
+       rtx is a SYMBOL_REF before calling get_pool_constant.
+
+2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
+
+2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
+       rather than OS names to choose INO_T_EQ definition.
+       (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
+       (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
+
+2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
+
+       PR target/36348
+       * config/darwin-f.c: New.
+       * config/t-darwin: Added rule to build darwin-f.o.
+       * config.gcc: Defined new variable, fortran_target_objs.
+       (*-*-darwin*): Set fortran_target_objs.
+       * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
+       * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
+       * configure: Regenerated.
+
+2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/35771
+       * config/i386/i386.c (ix86_function_arg_boundary): Convert to
+       canonical type if needed.
+
+2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
+
 2008-05-29  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/36343
 
        * value-prof.c (tree_ic_transform): Print counts.
        * tree-profile.c (tree_gen_ic_func_profiler):
-       Clear __gcov_indreict_call_callee variable
-       to avoid misattribution of the profile.
+       Clear __gcov_indreict_call_callee variable to avoid misattribution
+       of the profile.
 
 2008-05-28  Rafael Espindola  <espindola@google.com>
 
        (s390_expand_insv): Use rotate and insert selected bits
        instruction for insv when building for z10.
        (print_operand_address): Handle symbol ref addresses.
-       (print_operand): Output modifier 'c' added for signed byte
-       values.
+       (print_operand): Output modifier 'c' added for signed byte values.
        (s390_encode_section_info): Mark symbol refs with
        SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
 
 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
 
        * config/s390/s390.c (z10_cost): New cost function for z10.
-       (s390_handle_arch_option, override_options): Support
-       -march=z10 switch.
+       (s390_handle_arch_option, override_options): Support -march=z10 switch.
        (s390_issue_rate): Adjust issue rate for z10.
        * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
        (processor_flags): Add PF_Z10.
 2008-05-27  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/36245
-       * tree-ssa-address.c (add_to_parts): Deal with non-pointer
-       bases.
+       * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
 
 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
 
        alternatives according to the "enabled" attribute
        * recog.h (struct recog_data): New field alternative_enabled_p.
        (skip_alternative): New inline function.
-       * regclass.c: (record_operand_costs): Check the "enabled"
-       attribute.
+       * regclass.c: (record_operand_costs): Check the "enabled" attribute.
        (record_reg_classes): Skip alternative according to the
        "enabled" attribute.
 
        * recog.c (asm_operand_ok, preprocess_constraints,
        constrain_operands): Likewise.
        * regclass.c (record_reg_classes): Likewise.
-       * reload.c (find_reloads, alternative_allows_const_pool_ref):
-       Likewise.
+       * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
        * reload1.c (maybe_fix_stack_asms): Likewise.
-       * stmt.c (parse_output_constraint, parse_input_constraint):
-       Likewise.
+       * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
        * recog.h: Adjust comment.
        * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
-       * genoutput.c (note_constraint): Don't emit error for 'm'
-       constraint.
+       * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
        * doc/md.texi: Add a note to description of 'm' constraint.
        * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
 
        (cgraph_decide_inlining_incrementally): Likewise.
 
 2008-05-26  Tristan Gingold  <gingold@adacore.com>
-            Anatoly Sokolov  <aesok@post.ru>
+           Anatoly Sokolov  <aesok@post.ru>
 
        * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
        instead of pm_lo8/pm_hi8 to makes this call working on avr6.
 2008-05-26  Richard Guenther  <rguenther@suse.de>
 
        * tree-ssa-sccvn.c (expr_has_constants): Declare.
-       (visit_reference_op_load): Initialize VN_INFO->has_constants
-       properly.
+       (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
 
 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR middle-end/36253
-       * caller-save.c (insert_restore): Verify alignment of spill
-       space.
+       * caller-save.c (insert_restore): Verify alignment of spill space.
        (insert_save): Likewise.
-
        * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
-
        * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
        (STACK_SLOT_ALIGNMENT): Likewise.
-
        * function.c (LOCAL_ALIGNMENT): Removed.
        (get_stack_local_alignment): New.
        (assign_stack_local): Use it.  Set alignment on stack slot.
        (assign_stack_temp_for_type): Use get_stack_local_alignment.
-
        * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
        (STACK_SLOT_ALIGNMENT): New.
-
        * config/i386/i386.c (ix86_local_alignment): Handle caller-save
        stack slot in XFmode.
 
 
 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
 
-        * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
+       * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
        build a trampoline if we don't want one.
        * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
        return zero for nested functions if we don't want a trampoline.
 
 2008-05-24  Richard Guenther  <rguenther@suse.de>
 
-       * tree-dfa.c (refs_may_alias_p): Re-instantiate case that
-       a scalar variable can be only accessed through a pointer
-       or a union.
+       * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
+       variable can be only accessed through a pointer or a union.
 
 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * target.h (gcc_target): Add allocate_stack_slots_for_args.
        * function.c (use_register_for_decl): Use
        targetm.calls.allocate_stack_slots_for_args.
-       * target-def.h (TARGET_CALLS): Add 
-       TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
-       * config/arm/arm.c (arm_allocate_stack_slots_for_args): 
-       New function.
+       * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
+       * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
        (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
 
 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
 
 2008-05-23  Richard Guenther  <rguenther@suse.de>
 
-       * tree-ssa-operands.c (mark_difference_for_renaming): Use
-       bitmap_xor.
+       * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
 
 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
            Jakub Jelinek  <jakub@redhat.com>
 
        * doc/install.texi (Options specification): Document --enable-cld.
        * doc/invoke.texi (Machine Dependent Options)
-        [i386 and x86-64 Options]: Add -mcld option.
-        (Intel 386 and AMD x86-64 Options): Document -mcld option.
+       [i386 and x86-64 Options]: Add -mcld option.
+       (Intel 386 and AMD x86-64 Options): Document -mcld option.
 
 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
        * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
        parameter.
        * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
        (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
-       (MIPS_COMPARE_AND_SWAP_12_ZERO_OP,
-       MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
+       (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
        MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
        MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
        MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
        MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
        MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
        MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
-       MIPS_SYNC_EXCHANGE_12_ZERO_OP,
-       MIPS_SYNC_EXCHANGE_12_NONZERO_OP): New macros.
+       MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
+       New macros.
 
 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
 
 
        * config/i386/i386.c (ix86_expand_vector_init_concat): New.
        (ix86_expand_vector_init_interleave): Likewise.
-       (ix86_expand_vector_init_general): Use them.  Assert word_mode
-       == SImode when n_words == 4.
+       (ix86_expand_vector_init_general): Use them.  Assert
+       word_mode == SImode when n_words == 4.
 
 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>