diff options
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r-- | gcc/ChangeLog | 1011 |
1 files changed, 1011 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b38ccbb2896..73b478e6558 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,1014 @@ +2008-08-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + PR c/28152 + * c-parser.c (c_lex_one_token): Do not store the canonical spelling + for keywords. + +2008-08-14 Dorit Nuzman <dorit@il.ibm.com> + + * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an + additional argument. Support reduction when duplication is needed due + to data-types of different sizes in the loop. + (get_initial_def_for_induction): Fix printout. + (vect_get_vec_def_for_stmt_copy): Support case where the + vec_stmt_for_operand is a phi node. + (vectorizable_reduction): Support reduction when duplication is needed + due to data-types of different sizes in the loop. + (vectorizable_call): Remove restriction to not vectorize in case we + have data-types of different sizes in the loop. + (vectorizable_conversion): Likewise. + (vectorizable_operation): Likewise. + (vectorizable_type_demotion): Likewise. + (vectorizable_type_promotion): Likewise. + (vectorizable_induction): Add restriction to not vectorize in case + we have data-types of different sizes in the loop. + +2008-08-14 Christophe Saout <christophe@saout.de> + Uros Bizjak <ubizjak@gmail.com> + + PR target/37101 + * config/i386/sse.md (vec_concatv2di): Remove movlps alternative. + (*vec_concatv2di_rex64_sse4_1): Ditto. + (*vec_concatv2di_rex64_sse): Ditto. + +2008-08-14 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/37103 + * fold-const.c (fold_widened_comparison): Do not allow + sign changes that change the result even if shorter type + is wider than arg1_unw's type. + +2008-08-13 Kazu Hirata <kazu@codesourcery.com> + + * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c: + Skip if the multilib testing specifies -march that does not + agree with the one specified in the testcase. + +2008-08-13 Joseph Myers <joseph@codesourcery.com> + + * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or + zero extend SImode values being converted to TFmode before passing + to libcalls. + +2008-08-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> + + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine + __PPU__ when targeting the Cell/B.E. PPU processor. + +2008-08-13 Eric Botcazou <ebotcazou@adacore.com> + + * gimple.h (gimple_call_set_chain): Accept SSA variables. + * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>: + Rematerialize the static chain, if any. + * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the + static chain. + +2008-08-13 H.J. Lu <hongjiu.lu@intel.com> + + * dwarf2out.c (dwarf_stack_op_name): Remove prototype. + (new_loc_descr): Likewise. + (add_loc_descr): Likewise. + (size_of_loc_descr): Likewise. + (size_of_locs): Likewise. + (output_loc_operands): Likewise. + (output_loc_sequence): Likewise. + (new_reg_loc_descr): New. + (build_cfa_loc): Use it. + (build_cfa_aligned_loc): Likewise. + (one_reg_loc_descriptor): Likewise. + (based_loc_descr): Likewise. + +2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + PR 30551 + * doc/invoke.texi (Wmain): Update. + * c-decl.c (start_decl): warn_main is only 0 or 1. + (start_function): Likewise. Fix formatting. + (finish_function): Delete redundant warning. + * c.opt (Wmain): Add Var(warn_main) and Init(-1). + * c-opts (c_common_handle_option): -Wall only has effect if + warn_main is uninitialized. OPT_Wmain is automatically + handled. -pedantic also enables Wmain. + (c_common_post_options): Handle all logic for Wmain here. + * c-common.c (warn_main): Delete. + (check_main_parameter_types): Make pedwarns conditional on + OPT_Wmain. + * c-common.h (warn_main): Delete. + +2008-08-13 H.J. Lu <hongjiu.lu@intel.com> + + PR middle-end/36701 + * expr.c (emit_group_store): Allocate stack temp with the + largest alignment when copying from register to stack. + +2008-08-13 Richard Guenther <rguenther@suse.de> + + * tree.h (maybe_fold_offset_to_address): Declare. + * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit. + (ccp_fold): Handle pointer conversions the same as fold_stmt. + Likewise for POINTER_PLUS_EXPR. + (maybe_fold_offset_to_reference): Enable disabled code. + (maybe_fold_offset_to_address): New function. + (fold_stmt_r): Use it. + (fold_gimple_assign): Likewise. + * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address. + (gimplify_expr): Likewise. + +2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + * toplev.h (pedwarn_at): Fix declaration. + +2008-08-13 Joseph Myers <joseph@codesourcery.com> + + * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC, + LINK_SPEC): Use %R in -Y P argument. + +2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + PR c/15236 + * diagnostic.c (pedwarn_at): New. + * toplev.h (pedwarn_at): Declare. + * c-tree.h (build_enumerator): Update declaration. + * c-decl.c (finish_enum): Update comment. + (build_enumerator): Take a location parameter. Give a pedwarn but do + not perform any conversion. + * c-parser.c (c_parser_enum_specifier): Set correct location for + enumerator. + +2008-08-13 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + PR 35635 + * c-common.c (conversion_warning): Use a switch. Ignore boolean + expressions except for conversions to signed:1 bitfields. Handle + COND_EXPR with constant operands. + +2008-08-13 Richard Guenther <rguenther@suse.de> + + PR tree-optimization/15255 + * tree-ssa-reassoc.c (linearize_expr_tree): Declare. + (struct oecount_s): New struct and VEC types. + (cvec): New global. + (oecount_hash): New function. + (oecount_eq): Likewise. + (oecount_cmp): Likewise. + (zero_one_operation): New function. + (build_and_add_sum): Likewise. + (undistribute_ops_list): Perform un-distribution of multiplication + and division on the chain of summands. + (should_break_up_subtract): Also break up subtracts for factors. + (reassociate_bb): Delete dead visited statements. + Call undistribute_ops_list. Re-sort and optimize if it did something. + * passes.c (init_optimization_passes): Move DSE before + reassociation. + * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle + PHI nodes. + +2008-08-12 Janis Johnson <janis187@us.ibm.com> + + * doc/invoke.texi (-fipa-pta): Say the option is experimental. + + * doc/invoke.texi: Revert unintended checkin. + +2008-08-12 Nathan Froyd <froydnj@codesourcery.com> + + PR libgomp/26165 + * gcc.c (include_spec_function): Tweak call to find_a_file. + +2008-08-12 Jakub Jelinek <jakub@redhat.com> + + PR middle-end/37014 + * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR + and TRUTH_ORIF_EXPR. + * dojump.c (do_jump): Likewise. + + PR tree-optimization/37084 + * tree-inline.c (copy_bb): Call gimple_regimplify_operands + if id->regimplify, don't assume stmt is a cast assignment. + +2008-08-12 Anatoly Sokolov <aesok@post.ru> + + * final.c (final_scan_insn): Use app_enable/app_disable functions. + +2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> + + PR bootstrap/37097 + * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced + by last change. + +2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> + + * defaults.h (TARGET_FLOAT_FORMAT): Remove. + (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove. + + * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove. + * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove. + * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove. + * config/score/score.h (TARGET_FLOAT_FORMAT): Remove. + * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove. + + * doc/tm.texi (Storage Layout): Remove documentation for + TARGET_FLOAT_FORMAT. + + * simplify-rtx.c (simplify_binary_operation_1): Replace + TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks. + +2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> + + * real.h (struct real_format): New member has_sign_dependent_rounding. + * real.c (ieee_single_format, mips_single_format, motorola_single_format, + spu_single_format, ieee_double_format, mips_double_format, + motorola_double_format, ieee_extended_motorola_format, + ieee_extended_intel_96_format, ieee_extended_intel_128_format, + ieee_extended_intel_96_round_53_format, ibm_extended_format, + mips_extended_format, ieee_quad_format, mips_quad_format, + vax_f_format, vax_d_format, vax_g_format): Initialize it. + * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise. + + * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES, + MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove. + * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES, + MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove. + (ROUND_TOWARDS_ZERO): Likewise. + + * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion. + (FLOAT_MODE_FORMAT): New macro. + (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ... + (MODE_COMPOSITE_P): ... this new macro. + (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS, + MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros. + * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode. + + * flags.h: Include "real.h". + + * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of + REAL_MODE_FORMAT_COMPOSITE_P. + * simplify-rtx.c (simplify_const_binary_operation): Likewise. + + * doc/tm.texi (Storage Layout): Remove documentation of + MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS, + MODE_HAS_SIGN_DEPENDENT_ROUNDING. Update documentation of + ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify + they only apply to libgcc2.a. + +2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> + + * config/spu/float_disf.c: New file. + * config/spu/float_unsdisf.c: New file. + * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them. + (LIB2FUNCS_EXCLUDE): Define. + +2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> + Trevor Smigiel <trevor_smigiel@playstation.sony.com> + + * real.h (struct real_format): New member round_towards_zero. + * real.c (round_for_format): Respect fmt->round_towards_zero. + (ieee_single_format, mips_single_format, motorola_single_format, + spu_single_format, ieee_double_format, mips_double_format, + motorola_double_format, ieee_extended_motorola_format, + ieee_extended_intel_96_format, ieee_extended_intel_128_format, + ieee_extended_intel_96_round_53_format, ibm_extended_format, + mips_extended_format, ieee_quad_format, mips_quad_format, + vax_f_format, vax_d_format, vax_g_format): Initialize it. + * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise. + + * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of + real_format to choose rounding mode when calling MPFR functions. + (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise. + (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise. + + * real.h (real_to_decimal_for_mode): Add prototype. + * real.c (real_to_decimal_for_mode): Renames old real_to_decimal. + Respect target rounding mode when generating decimal representation. + (real_to_decimal): New stub for backwards compatibility. + * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use + real_to_decimal_for_mode instead of real_to_decimal. + + * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New. + +2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> + Trevor Smigiel <trevor_smigiel@playstation.sony.com> + + * real.c (spu_single_format): New variable. + * real.h (spu_single_format): Declare. + + * config/spu/spu.c (spu_override_options): Install SFmode format. + (spu_split_immediate): Use integer mode to operate on pieces of + floating-point values in all cases. + + * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New. + ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND. + ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE. + +2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> + + * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA. + +2008-08-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> + + * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define. + +2008-08-12 Jakub Jelinek <jakub@redhat.com> + + PR c++/36688 + * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY + on the VAR_DECL instead of TYPE_READONLY on its type. + +2008-08-12 Ira Rosen <irar@il.ibm.com> + + * tree-vectorizer.c: Depend on langhooks.h. + (supportable_widening_operation): Add two arguments. Support double + type conversions. + (supportable_narrowing_operation): Likewise. + * tree-vectorizer.h (supportable_widening_operation): Add two + arguments. + (supportable_narrowing_operation): Likewise. + * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call + supportable_widening_operation with correct arguments. + * tree-vect-transform.c (vectorizable_conversion): Likewise. + (vectorizable_type_demotion): Support double type conversions. + (vectorizable_type_promotion): Likewise. + * Makefile.in (tree-vectorizer.o): Depend on langhooks.h. + +2008-08-11 Michael Matz <matz@suse.de> + + * i386/i386.c (override_options): Move initialisation from + flag_schedule_insns_after_reload to here from ... + (optimization_options): ... here. + +2008-08-11 Jakub Jelinek <jakub@redhat.com> + + PR rtl-optimization/36998 + * dwarf2out.c (compute_barrier_args_size_1, + compute_barrier_args_size): Temporarily remove assertions. + +2008-08-10 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + PR middle-end/20644 + * tree-ssa.c (struct walk_data): Add new flag + warn_possibly_uninitialized. + (warn_uninitialized_var): Use it. + (warn_uninitialized_vars): New. + (execute_early_warn_uninitialized): Call it. + (execute_late_warn_uninitialized): Likewise. + +2008-08-09 Andrew Pinski <andrew_pinski@playstation.sony.com> + + PR middle-end/36238 + * reload1.c (gen_reload): Guard calls to get_secondary_mem + for memory subregs. + +2008-08-09 Jan Hubicka <jh@suse.cz> + + PR target/37055 + * optabs.c (maybe_emit_unop_insn): Remove produced code if + expansion failed. + (expand_fix): Be prepared for expansion to fail. + (expand_sfix_optab): Remove instructions if expansion failed. + +2008-08-09 Anatoly Sokolov <aesok@post.ru> + + * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to + avr31 architecture. + * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.). + * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). + +2008-08-09 Richard Sandiford <rdsandiford@googlemail.com> + + * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add + mips/t-libgcc-mips16 to tmake_file. + * config/mips/mips-protos.h (mips_call_type): New enum. + (mips_pic_base_register, mips_got_load): Declare. + (mips_restore_gp): Take an rtx argument. + (mips_use_pic_fn_addr_reg_p): Declare. + (mips_expand_call): Replace the sibcall_p argument with + a mips_call_type argument. Add a lazy_p parameter. + (mips_split_call): Declare. + * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro. + (MIPS16_PIC_TEMP): Likewise. + (reg_class): Delete M16_NA_REGS. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly. + (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros. + (mips_split_hi_p): Declare. + * config/mips/mips.c (mips_split_hi_p): New array. + (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS. + (mips_got_symbol_type_p): New function. + (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P. + (mips16_stub_function_p): New function. + (mips16_local_function_p): Likewise. + (mips_use_pic_fn_addr_reg_p): Likewise. + (mips_cannot_force_const_mem): Return false for HIGHs. + Extend CONST_INT and symbolic handling to MIPS16, using + mips_symbol_insns to check that the base symbol type is a + legitimate constant. Reject GOT-based constants if + TARGET_MIPS16_PCREL_LOADS. + (mips_const_insns): Check targetm.cannot_force_const_mem when + decomposing a symbolic base and a large offset. + (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters. + When calling a function that needs $25 from MIPS16 code, + move the target address into $25 separately and add a USE + to the call insn. + (mips16_gp_pseudo_reg): Insert the initializer immediately + before the first real insn. + (mips_pic_base_register, mips_got_load): New functions. + (mips_split_symbol): Generalize the name of the LO_SUM_OUT + parameter to LOW_OUT. Say that it can be any valid SET_SRC + when splitting a load-address operation. Split SYMBOL_GOT_DISP + constants and highs of SYMBOL_GOT_PAGE_OFST constants. + (mips_call_tls_get_addr): Update the call to mips_expand_call, + also passing NULL_RTX rather than const0_rtx as the aux argument. + (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p + instead of TARGET_EXPLICIT_RELOCS. + (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P. + (mips_load_call_address): Replace the sibcall_p argument with + a mips_call_type argument. Use mips_got_load. + (mips16_local_alias): New structure. + (mips16_local_aliases): New variable. + (mips16_local_aliases_hash): New function. + (mips16_local_aliases_eq): Likewise. + (mips16_local_alias): Likewise. + (mips16_stub_function): Likewise. + (mips16_build_function_stub): Create a local alias for the target + function. Handle TARGET_ABICALLS. For PIC abicalls, emit a + .cpload directive and an R_MIPS_NONE relocation for the target + function, then load the alias rather than the function itself. + Wrap the non-PIC abicalls version in ".option pic0/.option pic2". + (mips16_copy_fpr_return_value): Use mips16_stub_function and + mips_expand_call. Set SYMBOL_REF_BIND_NOW on the symbol. + (mips16_build_call_stub): Replace the FN parameter with an + FN_PTR parameter. Force the address into a register if it + isn't a call_insn_operand; don't rely on the caller to do this. + If a call to a locally-defined and locally-binding MIPS16 + function must be made indirectly, redirect the call to the + function's local alias. Use mips16_stub_function_p, + mips16_stub_function, mips_expand_call and use_reg. + Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols. + Use explicit %hi and %lo accesses where possible. + Use MIPS_CALL to generate the correct code form of a + jal instruction. Add clobbers of $18 instead of uses. + Update the call to mips_emit_call_insn. + (mips_expand_call): Replace the SIBCALL_P argument with a + mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value. + Take a LAZY_P parameter. Call mips16_build_call_stub first, + allowing it to modify the call address. Update the calls to + mips_load_call_address and mips_emit_call_insn. + (mips_split_call): New function. + (mips_init_relocs): Clear mips_split_hi_p. Only use %gp_rel if + !TARGET_MIPS16. Split SYMBOL_GOT_DISP, and the high parts of + SYMBOL_GOT_PAGE_OFST, for MIPS16 code. + (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p. + (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM + if TARGET_MIPS16. + (mips_cprestore_slot): New function. + (mips_restore_gp): Take a TEMP parameter. Handle TARGET_MIPS16 + and use mips_cprestore_slot. + (mips_output_function_prologue): Handle TARGET_MIPS16 for + LOADGP_OLDABI. + (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16, + then use a copygp_mips16 instruction to set up $28. + (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too. + (mips16_lay_out_constants): Call split_all_insns_noflow. + (mips_reorg_process_insns): Explicitly set all_noreorder_p to + false if TARGET_MIPS16. + (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16. + (mips_output_mi_thunk): Use mips_got_symbol_type_p. Use the + mips_dangerous_for_la25_p approach for MIPS16 PIC calls too. + (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for + MIPS16 code. Allow MIPS16 o32 PIC. + (mips_override_options): Allow MIPS16 o32 PIC. + * config/mips/mips.md: Lower CONST_GP_P moves into register moves + after reload if TARGET_USE_GOT. + (UNSPEC_COPYGP): New constant. + (length): Use a default length of 8 for MIPS16 GOT loads. + (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT. + (*got_page<mode>): Check mips_split_hi_p. + (*got_disp<mode>, *got_page<mode>): Use mips_got_load. + (unspec_got<mode>, unspec_call<mode>): New expanders. + (load_got<mode>, load_call<mode>): Remove the length attributes. + Use a got attribute instead of a type attribute. + (copygp_mips16): New insn. + (restore_gp): Add a scratch clobber and pass it to mips_restore_gp. + (load_call<mode>): Use a "d" constraint instead of an "r" constraint. + (sibcall, sibcall_value, call, call_value): Update the calls + to mips_expand_call. + (call_internal, call_value_internal): Use mips_split_call. + (call_value_multiple_internal): Likewise. + (call_split): Move after call_internal (the insn it is split from). + (call_internal_direct, call_value_internal_direct): Turn into + define_insn_and_splits. Split if TARGET_SPLIT_CALLS. + (call_direct_split, call_value_direct_split): New patterns. + * config/mips/constraints.md (c): Handle TARGET_MIPS16 first + and use M16_REGS instead of M16_NA_REGS. + * config/mips/predicates.md (const_call_insn_operand): Replace + the TARGET_ABSOLUTE_ABICALLS-based check with a more general + mips_use_pic_fn_addr_reg_p check. + (move_operand): Reject HIGHs if mips_split_hi_p. + * config/mips/mips16.S: Assembly as empty if the ABI is not suitable. + (__mips16_floatunsisf): Inline __mips16_floatsisf. + (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25. + * config/mips/libgcc-mips16.ver: New file. + * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add + $(srcdir)/config/mips/libgcc-mips16.ver. + +2008-08-09 Richard Sandiford <rdsandiford@googlemail.com> + + * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file. + (mips_unspec_address, mips_unspec_offset_high): Likewise. + (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise. + (mips16_cfun_returns_in_fpr_p): Likewise. + +2008-08-09 Richard Sandiford <rdsandiford@googlemail.com> + + * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary. + * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2 + rather than 4 to PC. + +2008-08-09 Richard Sandiford <rdsandiford@googlemail.com> + + * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15. + (FUNCTION_PROFILER): Save the static chain pointer into $2 + beforehand and restore it aftewards. + (TRAMPOLINE_TEMPLATE): Adjust accordingly. Load the target + address directly into $25 and call the function through $25; + do not clobber $3. Pad the DImode version to cover the space + left by the deleted $25 <- $3 move. + (TRAMPOLINE_SIZE): Adjust the size of the SImode version after + the removal of the $25 <- $3 move. + (INITIALIZE_TRAMPOLINE): Update offsets accordingly. + * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h. + +2008-08-09 Richard Sandiford <rdsandiford@googlemail.com> + Daniel Jacobowitz <dan@codesourcery.com> + + * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete. + * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete. + (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete. + * config/mips/mips.c (mips_start_function_definition): New function. + (mips_end_function_definition): Likewise. + (mips_output_function_prologue): Use mips_start_function_definition. + (mips_output_function_epilogue): Use mips_end_function_definition. + (build_mips16_function_stub): Use mips_start_function_definition + and mips_end_function_definition. + (build_mips16_call_stub): Likewise. + +2008-08-09 Richard Guenther <rguenther@suse.de> + + * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn. + * gimple.h (gimple_call_fn): Adjust comment. + (gimple_call_set_fndecl): New function. + (gimple_call_fndecl): Adjust for GIMPLE_CALL no + longer having bare FUNCTION_DECL operand. + (gimple_call_return_type): Likewise. + * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL. + + * value-prof.c (gimple_divmod_fixed_value): Do not emit labels. + (gimple_mod_pow2): Likewise. + (gimple_mod_subtract): Likewise. + (gimple_ic): Likewise. + (gimple_stringop_fixed_value): Likewise. + (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no + longer having bare FUNCTION_DECL operand. + * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl. + * omp-low.c (optimize_omp_library_calls): Likewise. + * cgraphunit.c (update_call_expr): Likewise. + * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise. + (execute_convert_to_rsqrt): Likewise. + * cfgexpand.c (gimple_to_tree): Simplify. + (release_stmt_tree): Fix for GIMPLE_CALL no longer having + bare FUNCTION_DECL operand. + * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type. + (convert_gimple_call): Use gimple_call_fndecl. + * c-common.c (c_warn_unused_result): Likewise. + +2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + PR c/17880 + * c-typeck.c (digest_init): Call verify_sequence_points from here. + (c_finish_return): Likewise. + (c_start_case): Likewise. + * c-common.c (warn_for_collisions_1): Use explicit location in + warning. + * c-parser.c (c_parser_condition): New. Call + verify_sequence_points. + (c_parser_paren_condition): Call c_parser_condition. + (c_parser_for_statement): Call c_parser_condition. + +2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + PR 36901 + * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New. + * diagnostic.c (pedantic_warning_kind, permissive_error_kind): + Moved from diagnostic.h + (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and + DK_PERMERROR. + (emit_diagnostic): New. + (warning0, pedwarn0): Delete. + (warning, warning_at, pedwarn, permerror): Return bool. + * diagnostic.h (pedantic_warning_kind, permissive_error_kind): + Moved to diagnostic.c. + (struct diagnostic_context): Use correct type for + classify_diagnostic. + (diagnostic_report_diagnostic): Update declaration. + (emit_diagnostic): Declare. + * errors.c (warning): Return bool. + * errors.h (warning): Update declaration. + * toplev.h (warning0, pedwarn0): Delete. + (warning, warning_at, pedwarn, permerror): Return bool. + * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN. + * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use + inform. Update all calls. + (diagnose_mismatched_decls): Check return value of warning/pedwarn + before giving informative note. + (implicit_decl_warning): Likewise. + * c-typeck.c (build_function_call): Likewise. + * tree-sssa.c (warn_uninit): Likewise. + * builtins.c (gimplify_va_arg_expr): Likewise. + +2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + PR 7651 + * doc/invoke.texi (-Wextra): Move warning from here... + (-Wuninitialized): ... to here. + +2008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + PR 28875 + * flags.h (set_Wunused): Delete + * toplev.c (process_options): Handle Wunused flags here. + * opts.c (maybe_warn_unused_parameter): Delete. + (common_handle_option): Replace set_Wunused by warn_unused. + (set_Wextra): Do not handle Wunused-parameter here. + (set_Wunused): Delete. + * c-opts.c (c_common_handle_option): Replace set_Wunused by + warn_unused. + * common.opt (Wunused): Add Var and Init. + (Wunused-function): Likewise. + (Wunused-label): Likewise. + (Wunused-parameter): Likewise. + (Wunused-value): Likewise. + (Wunused-variable): Likewise. + +2008-08-08 Peter Bergner <bergner@vnet.ibm.com> + + * doc/invoke.texi: Add cpu_type power7. + * config.in (HAVE_AS_VSX): New. + * config.gcc: Add cpu_type power7. + * configure.ac (HAVE_AS_VSX): Check for assembler support of the + VSX instructions. + * configure: Regenerate. + * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to + power5. + * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define. + (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7. + (EXTRA_SPECS): Add asm_cpu_power7 spec string. + +2008-08-08 Dorit Nuzman <dorit@il.ibm.com> + + * tree-vect-transform.c (vectorizable_conversion): Pass the integral + type to vectorize.builtin_conversion. + (vectorizable_conversion): Likewise. + * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes + integral type as input. + * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for + FIX_TRUNC_EXPR. + (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS + and ALTIVEC_BUILTIN_VCTSXS. + (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix + formatting. + +2008-08-08 Richard Guenther <rguenther@suse.de> + + * tree-ssa-ccp.c (likely_value): Calls are not all varying. + (surely_varying_stmt_p): Calls are varying only if they are + non-builtin and not indirect or have no result. + (ccp_fold): Re-instantiate code before the tuples merge. + +2008-08-08 Richard Guenther <rguenther@suse.de> + + PR tree-optimization/37056 + * gimple.h (gimple_assign_rhs_class): New helper function. + * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle + unary operations properly. + +2008-08-07 Jan Hubicka <jh@suse.cz> + + * i386.h (ix86_size_cost): Declare. + (ix86_cur_cost): New function macro. + * i386.md (peepholes expanding size and splitters): Predicate by + optimize_insn_for_speed_p. + (peepholes reduce size and splitters): Predicate by + optimize_insn_for_size_p. + * i386.c (ix86_size_cost): Rename from ... + (size_cost): This one. + (override_options): Update. + (decide_alg): Likewise. + (ix86_expand_clear): Use RTL profile. + (ix86_pad_returns): Use RTL profile. + +2008-08-07 Jan Hubicka <jh@suse.cz> + + * recog.c (split_all_insns): Set RTL profile + (peephole2_optimize): Likewise. + * function.c (thread_prologue_and_epilogue_insns): Likewise. + * combine.c (combine_instructions): Likewise. + +2008-08-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * c-common.c (c_common_reswords): Also warn about keyword "bool". + +2008-08-07 Bob Wilson <bob.wilson@acm.org> + + * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming + value in a6 after the set_frame_ptr insn. + +2008-08-07 Richard Henderson <rth@redhat.com> + + PR debug/37033 + * gcc.c (cpp_options): Pass along -g*. + +2008-08-07 Joseph Myers <joseph@codesourcery.com> + + * config/arm/arm.c (output_move_neon): Update comment describing + big-endian vector layout. + (arm_assemble_integer): Do not handle big-endian NEON vectors + specially. + * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>, + neon_vget_lane<mode>_sext_internal, + neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust + element indices for big-endian. + +2008-08-07 Richard Henderson <rth@redhat.com> + + * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New. + * configure, config.in: Rebuild. + * debug.h (dwarf2out_do_cfi_asm): Declare. + * c-cppbuiltin.c (c_cpp_builtins): Use it. + * dwarf2out.c (dwarf2out_do_cfi_asm): New. + (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info, + dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it. + +2008-08-07 Joseph Myers <joseph@codesourcery.com> + + * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal, + movv2si_internal): Combine into mov<mode>_internal. + (movv2si_internal_2): Remove. + +2008-08-07 Jan Hubicka <jh@suse.cz> + + PR target/37048 + * i386.md (single stringop patterns): Enable unconditionally. + +2008-08-07 H.J. Lu <hongjiu.lu@intel.com> + + PR target/36992 + * config/i386/emmintrin.h (_mm_move_epi64): Use + __builtin_ia32_movq128. + + * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128. + (bdesc_args): Add IX86_BUILTIN_MOVQ128. + + * config/i386/sse.md (sse2_movq128): New. + + * doc/extend.texi: Document __builtin_ia32_movq128. + +2008-08-07 Richard Guenther <rguenther@suse.de> + + PR middle-end/37042 + * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all + pointers can access anything. + +2008-08-06 Jan Hubicka <jh@suse.cz> + + * optabs.c (emit_unop_insn): Break out to ... + (maybe_emit_unop_insn): ... this one. + (expand_sfix_optab): Use maybe variant. + * optabs.h (maybe_emit_unop_insn): Declare. + + * i386.md (mov0 patterns): Enable by default. + (FP conversion expanders): Disable expansion of code expanding + sequences when instruction should be optimized for size. + (single strinop patterns): Enable when optimizing for size. + (string expanders): Disable expanding of code expanding sequences + when optimizning instruction for size. + * i386.c (ix86_expand_vector_move_misalign): Do code size optimization + per BB basis. + (ix86_fp_comparison_sahf_cost): Likewise. + (ix86_expand_branch): Likewise. + (ix86_expand_ashl_const): Likewise. + (ix86_split_ashl): Likewise. + (ix86_expand_strlen): Likewise. + (ix86_emit_fp_unordered_jump): Likewie. + +2008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * c-common.c: Fix typo. + (c_common_reswords): Activate more C++ keyword warnings. + + * matrix-reorg.c (compute_offset): Avoid C++ keywords. + +2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + PR 26785 + * diagnostic.c (permerror_at): New. + * toplev.h (permerror_at): Declare. + +2008-08-06 Victor Kaplansky <victork@il.ibm.com> + Ira Rosen <irar@il.ibm.com> + + * tree-vect-transform.c (vect_model_simple_cost): Return + immediately if stmt is pure SLP. + (vect_model_store_cost): Ditto. + (vect_model_load_cost): Ditto. + (vectorizable_store): Remove PURE_SLP check before call + to vect_model_store_cost. + (vect_model_store_cost): When checking whether stmt describe + strided access, add a check that it is not slp_node. + +2008-08-06 Manuel Lopez-Ibanez <manu@gcc.gnu.org> + + PR 8715 + * c-common.c (warn_for_sign_compare): New. Handle separately the + case that 'constant' is zero. + * c-typeck.c (build_binary_op): Move code to c-common.c + +2008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * config/alpha/alpha.c (alpha_preferred_reload_class, + alpha_secondary_reload, alpha_emit_set_const_1, function_value, + alpha_output_mi_thunk_osf): Avoid C++ keywords. + * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise. + * config/arm/arm.md: Likewise. + * config/avr/avr-protos.h (preferred_reload_class, + test_hard_reg_class, avr_simplify_comparison_p, + out_shift_with_cnt, class_max_nregs): Likewise. + * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p, + output_movqi, output_movhi, output_movsisf, out_shift_with_cnt, + preferred_reload_class, test_hard_reg_class): Likewise. + * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok, + bfin_memory_move_cost, bfin_secondary_reload, + bfin_output_mi_thunk): Likewise. + * config/crx/crx.c (crx_secondary_reload_class, + crx_memory_move_cost): Likewise. + * config/frv/frv-protos.h (frv_secondary_reload_class, + frv_class_likely_spilled_p, frv_class_max_nregs): Likewise. + * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg, + frv_secondary_reload_class, frv_class_likely_spilled_p, + frv_class_max_nregs): Likewise. + * config/h8300/h8300.c (h8300_classify_operand, + h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count): + Likewise. + * config/i386/winnt.c (i386_pe_declare_function_type): Likewise. + * config/ia64/ia64.c (ia64_preferred_reload_class, + ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise. + * config/iq2000/iq2000.c (gen_int_relational): Likewise. + * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare): + Likewise. + * config/m68hc11/m68hc11.c (preferred_reload_class, + m68hc11_memory_move_cost): Likewise. + * config/mcore/mcore.c (mcore_secondary_reload_class, + mcore_reload_class): Likewise. + * config/mips/mips.c (mips_hard_regno_mode_ok_p, + mips_class_max_nregs, mips_cannot_change_mode_class, + mips_preferred_reload_class, mips_secondary_reload_class, + mips_output_mi_thunk): Likewise. + * config/mmix/mmix.c (mmix_preferred_reload_class, + mmix_preferred_output_reload_class, mmix_secondary_reload_class): + Likewise. + * config/mn10300/mn10300.c (mn10300_secondary_reload_class): + Likewise. + * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions, + pa_can_combine_p, pa_cannot_change_mode_class): Likewise. + * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise. + * config/rs6000/rs6000.c (paired_expand_vector_init, + rs6000_secondary_reload_class, rs6000_output_mi_thunk, + compare_section_name, rs6000_memory_move_cost): Likewise. + * config/s390/s390.c (s390_emit_compare_and_swap, + s390_preferred_reload_class, s390_secondary_reload, + legitimize_pic_address, legitimize_tls_address, + legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic, + s390_class_max_nregs): Likewise. + * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise. + * config/s390/s390.md: Likewise. + * config/score/score-protos.h (score_secondary_reload_class, + score_preferred_reload_class): Likewise. + * config/score/score.c (score_preferred_reload_class, + score_secondary_reload_class): Likewise. + * config/score/score3.c (score3_output_mi_thunk, + score3_preferred_reload_class, score3_secondary_reload_class, + score3_hard_regno_mode_ok): Likewise. + * config/score/score3.h (score3_preferred_reload_class, + score3_secondary_reload_class): Likewise. + * config/score/score7.c (score7_output_mi_thunk, + score7_preferred_reload_class, score7_secondary_reload_class, + score7_hard_regno_mode_ok): Likewise. + * config/score/score7.h (score7_preferred_reload_class, + score7_secondary_reload_class): Likewise. + * config/sh/sh.c (prepare_move_operands, output_far_jump, + output_branchy_insn, add_constant, gen_block_redirect, + sh_insn_length_adjustment, sh_cannot_change_mode_class, + sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload): + Likewise. + * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. + * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi, + xstormy16_output_cbranch_si, xstormy16_secondary_reload_class, + xstormy16_preferred_reload_class): Likewise. + * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap, + xtensa_expand_atomic, override_options, + xtensa_preferred_reload_class, xtensa_secondary_reload_class): + Likewise. + * reorg.c (try_merge_delay_insns): Likewise. + * tree.c (merge_dllimport_decl_attributes): Likewise. + + * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA. + +2008-08-06 Michael Matz <matz@suse.de> + + * Makefile.in (write_entries_to_file): Quote words. + * gengtype.c: (read_input_line): Skip over leading white-space. + +2008-08-06 Marc Gauthier <marc@tensilica.com> + + * config.gcc: Match more processor names for Xtensa. + * configure.ac: Likewise. + * doc/install.texi (Specific): Likewise. + * configure: Regenerate. + +2008-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * builtins.c (expand_builtin_profile_func): Avoid C++ keywords. + * calls.c (avoid_likely_spilled_reg): Likewise. + * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise. + * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise. + * config/i386/i386.c (ix86_expand_special_args_builtin, + ix86_secondary_reload): Likewise. + * except.c (struct eh_region, gen_eh_region_catch, + remove_unreachable_regions, duplicate_eh_regions, + assign_filter_values, build_post_landing_pads, + sjlj_find_directly_reachable_regions, remove_eh_handler, + reachable_next_level, foreach_reachable_handler, + can_throw_internal_1, can_throw_external_1, + collect_one_action_chain): Likewise. + * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise. + * fold-const.c (twoval_comparison_p, eval_subst): Likewise. + * function.c (update_temp_slot_address, instantiate_new_reg, + instantiate_virtual_regs_in_rtx, + instantiate_virtual_regs_in_insn): Likewise. + * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise. + * gimplify.c (gimplify_call_expr, gimplify_init_constructor, + gimplify_cleanup_point_expr): Likewise. + * ipa-cp.c (ipcp_lattice_changed): Likewise. + * passes.c (next_pass_1): Likewise. + * print-tree.c (print_node_brief, print_node): Likewise. + * profile.c (branch_prob): Likewise. + * tree-dump.c (dump_register): Likewise. + * tree-eh.c (replace_goto_queue_cond_clause, lower_catch): + Likewise. + * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks, + copy_statement_list, remap_gimple_op_r, copy_tree_body_r, + copy_edges_for_bb, copy_cfg_body, copy_tree_r, + copy_arguments_for_versioning, copy_static_chain): Likewise. + * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl, + add_new_name_mapping, register_new_name_mapping): Likewise. + * tree-mudflap.c (mf_xform_derefs): Likewise. + * tree-predcom.c (struct chain, dump_chain, replace_ref_with, + get_init_expr, combine_chains): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + * tree-ssa-structalias.c (create_variable_info_for): Likewise. + * tree-vrp.c (simplify_cond_using_ranges): Likewise. + * tree.c (substitute_in_expr, iterative_hash_expr): Likewise. + * value-prof.c (gimple_duplicate_stmt_histograms): Likewise. + +2008-08-06 H.J. Lu <hongjiu.lu@intel.com> + + PR middle-end/37010 + * calls.c (expand_call): Use the biggest preferred stack + boundary. + +2008-08-06 Michael Matz <matz@suse.de> + + PR target/36613 + * reload.c (push_reload): Merge in,out,in_reg,out_reg members + for reused reload, instead of overwriting them. + +2008-08-06 H.J. Lu <hongjiu.lu@intel.com> + + PR middle-end/37009 + * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary + for incoming stack boundary. + + * function.c (assign_parm_find_entry_rtl): Update + parm_stack_boundary. + + * function.h (rtl_data): Add parm_stack_boundary. + + * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check + parm_stack_boundary for incoming stack boundary. + +2008-08-06 Joseph Myers <joseph@codesourcery.com> + + * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset + for unrepresentable subregs or treat them as equal to other regs + or subregs with the same register number. + 2008-08-06 Aldy Hernandez <aldyh@redhat.com> PR middle-end/35432 |