+2010-08-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
+
+2010-08-30 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/45449
+ * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
+ variables.
+
+2010-08-30 Joseph Myers <joseph@codesourcery.com>
+
+ * opts.h (CL_ERR_NEGATIVE): Define.
+ * opts.c (unknown_option_callback): Don't postpone warnings for
+ options marked with CL_ERR_NEGATIVE.
+ * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
+ for negative versions of CL_REJECT_NEGATIVE options.
+
+2010-08-30 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (zero_extendsidi2_1): Rename from
+ zero_extendsidi2_32.
+ (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
+ using SWI12 mode iterator.
+ (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
+ to define_insn_and_split pattern.
+ (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
+ using SWI24 mode iterator.
+ (*zero_extendqi<mode>2_and): Macroize insn from
+ *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
+ (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
+ *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
+ SWI24 mode iterator.
+ (*zero_extendqi<mode>2_movzbl): Ditto from
+ *zero_extendqi{hi,si}2_movzbl.
+ (extendsidi2_1): Rename from extendsidi2_32.
+ (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
+ SWI12 mode iterator.
+
+2010-08-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
+ general purpose registers.
+ (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
+ * config/ia64/ia64.md (*movcci): Change to named pattern. Deal
+ with general purpose registers and memory operands. Add associated
+ CCImode post-reload splitter.
+ * config/ia64/div.md: Change BImode to CCImode throughout.
+
+2010-08-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/ia64/ia64.md (cstorebi4): Fix thinko.
+
+2010-08-28 Hariharan Sandanagobalane <hariharan@picochip.com>
+
+ * config/picochip/picochip.c (reorder_var_tracking_notes): This
+ function was dropping debug insns which caused PR45299.
+
+2010-08-28 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/sse.md (extsuffix): New code attribute.
+ (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
+ and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
+ (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
+ and sse4_1_zero_extendv4qiv4si2.
+ (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
+ and sse4_1_zero_extendv2qiv2di2.
+ (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
+ and sse4_1_zero_extendv4hiv4si2.
+ (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
+ and sse4_1_zero_extendv2hiv2di2.
+ (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
+ and sse4_1_zero_extendv2siv2di2
+
+ (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
+ using any_extend code iterator.
+ (*avx_<s>mulv8hi3_highpart): Macroize insn from
+ *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
+ (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
+
+ * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
+ gen_sse4_1_sign_extend* functions.
+ (struct builtin_description bdesc_args): Ditto.
+
+2010-08-27 Xinliang David Li <davidxl@google.com>
+
+ PR/45422
+ * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
+ (iv_ca_set_no_cp): Update used inv expr count.
+ (iv_ca_set_cp): Ditto.
+ (iv_ca_new): Initialize new member.
+ (iv_ca_free): Free memory.
+
+2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/sh/sh-protos.h (sh_function_arg): Delete.
+ (sh_function_arg_advance): Delete.
+ * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
+ (PASS_IN_REG_P): Eliminate cast.
+ * config/sh/sh.c (sh_function_arg_advance): Make static. Take a
+ const_tree and a bool.
+ (sh_function_arg): Likewise.
+ (sh_output_mi_thunk): Call sh_function_arg_advance) and
+ sh_function_arg.
+ (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-08-27 Naveen H.S <naveen.S@kpitcummins.com>
+ Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (push_regs): Emit movml for interrupt handler
+ when possible.
+ (sh_expand_epilogue): Likewise.
+ * config/sh/sh.md (movml_push_banked): New insn.
+ (movml_pop_banked): Likewise.
+
+2010-08-28 Bernd Schmidt <bernds@codesourcery.com>
+
+ * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
+ gen_regexp_oneof, gen_regexp_sequence): Use the string found
+ in vector element 0 rather than the original string when there's
+ only one element.
+ (gen_regexp): Remove extra semicolon.
+
+ * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
+ thumb2_movsf_vfp): Set attribute "insn".
+ * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
+ not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
+ thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
+ arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
+ arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
+ thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
+ thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
+ movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
+ if_not_move, if_shift_move, if_move_shift, if_shift_shift,
+ if_not_arith, if_arith_not, cond_move_not): Likewise.
+
+2010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
+ New declaration.
+ (rs6000_allocate_stack_temp): Ditto.
+ (rs6000_expand_convert_si_to_sfdf): Ditto.
+
+ * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
+ line. Update the options set if power6 or power7 server/embedded
+ type options are used. If we give a warning for no vsx under
+ -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
+ (rs6000_allocate_stack_temp): New function to allocate a stack
+ tempoary and adjust the address so it meets either REG+OFFSET or
+ REG+REG addressing requirements.
+ (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
+ that they can be used with the LFIWAX/LFIWZX instrucitons.
+ (rs6000_expand_convert_si_to_sfdf): New helper funciton for
+ converting signed/unsigned SImode to either SFmode/DFmode.
+
+ * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
+ whether certain instructions can be generated.
+ (TARGET_FCTIDZ): Ditto.
+ (TARGET_STFIWX): Ditto.
+ (TARGET_LFIWAX): Ditto.
+ (TARGET_LFIWZX): Ditto.
+ (TARGET_FCFIDS): Ditto.
+ (TARGET_FCFIDU): Ditto.
+ (TARGET_FCFIDUS): Ditto.
+ (TARGET_FCTIDUZ): Ditto.
+ (TARGET_FCTIWUZ): Ditto.
+
+ * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
+ (UNSPEC_FCTID): Ditto.
+ (UNSPEC_LFIWAX): Ditto.
+ (UNSPEC_LFIWZX): Ditto.
+ (UNSPEC_FCTIWUZ): Ditto.
+ (rreg): Use correct constraints.
+ (SI_CONVERT_FP): New mode attribute for floating point conversion
+ tests.
+ (E500_CONVERT): Ditto.
+ (lfiwax): New insns for converting from integer to floating point
+ utilizing newer instructions. Attempt to optimize conversions
+ that come from memory so that we don't load the value into a GPR,
+ spill it to the stack and reload it into a FPR.
+ (floatsi<mode>2_lfiwax): Ditto.
+ (floatsi<mode>2_lfiwax_mem): Ditto.
+ (floatsi<mode>2_lfiwax_mem2): Ditto.
+ (lfiwzx): Ditto.
+ (floatunssi<mode>2_lfiwzx): Ditto.
+ (floatunssi<mode>2_lfiwzx_mem): Ditto.
+ (floatunssi<mode>2_lfiwzx_mem2): Ditto.
+ (floatdidf2_mem): Ditto.
+ (floatunsdidf2_fcfidu): Ditto.
+ (floatunsdidf2_mem): Ditto.
+ (floatunsdisf2): Ditto.
+ (floatunsdisf2_fcfidus): Ditto.
+ (floatunsdisf2_mem): Ditto.
+ (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
+ Use FCFID on 32-bit hosts that support it.
+ (floatsidf2_internal): Ditto.
+ (floatunssisf2): Ditto.
+ (floatunssidf2): Ditto.
+ (floatunssidf2_internal): Ditto.
+ (floatsisf2): Ditto.
+ (floatdidf2): Ditto.
+ (floatdidf2_fpr): Ditto.
+ (floatunsdidf2): Ditto.
+ (floatdisf2): Ditto.
+ (floatdisf2_fcfids): Ditto.
+ (floatdisf2_internal1): Ditto.
+ (fixuns_truncsfsi2): Delete, merge into common pattern for both
+ SF/DF. Add power7 support.
+ (fix_truncsfsi2): Ditto.
+ (fixuns_truncdfsi2): Ditto.
+ (fixuns_truncdfdi2): Ditto.
+ (fix_truncdfsi2): Ditto.
+ (fix_truncdfsi2_internal): Ditto.
+ (fix_truncdfsi2_internal_gfxopt): Ditto.
+ (fix_truncdfsi2_mfpgpr): Ditto.
+ (fctiwz): Ditto.
+ (btruncdf2): Ditto.
+ (btruncdf2_fpr): Ditto.
+ (btructsf2): Ditto.
+ (ceildf2): Ditto.
+ (ceildf2_fpr): Ditto.
+ (ceilsf2): Ditto.
+ (floordf2): Ditto.
+ (floordf2_fpr): Ditto.
+ (floorsf2): Ditto.
+ (rounddf2): Ditto.
+ (rounddf2_fpr): Ditto.
+ (roundsf2): Ditto.
+ (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
+ (fix_trunc<mode>di2): Ditto.
+ (fixuns_trunc<mode>si2): Ditto.
+ (fixuns_trunc<mode>di2): Ditto.
+ (fctiwz_<mode>): Ditto.
+ (btrunc<mode>2): Ditto.
+ (btrunc<mode>2_fpr): Ditto.
+ (ceil<mode>2): Ditto.
+ (ceil<mode>2_fpr): Ditto.
+ (floor<mode>2): Ditto.
+ (float<mode>2_fpr): Ditto.
+ (round<mode>2): Ditto.
+ (round<mode>2_fpr): Ditto.
+ (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
+ (fixuns_trunc<mode>si2_stfiwx): Ditto.
+ (fix_truncdfsi2_internal): Ditto.
+ (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
+ converted value on stack, loaded into GPR, and then stored into
+ the final destination.
+ (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
+ FCTIDZ.
+ (lrint<mode>di2): New insn, provide the lrint builtin functions.
+ (ftruncdf2): Delete, unused.
+ (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
+
+ * config/rs6000/vsx.md (toplevel): Update copyright year.
+ (VSr2): Use "ws" contraint for DFmode, not "!r#r".
+ (VSr3): Ditto.
+
+2010-08-27 Basile Starynkevitch <basile@starynkevitch.net>
+ Jeremie Salvucci <jeremie.salvucci@free.fr>
+
+ * gengtype.c (output_type_enum): Test the right union member.
+
+2010-08-27 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/41484
+ * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
+ operands for operand 1.
+ (sse4_1_extendv4qiv4si2): Ditto.
+ (sse4_1_extendv2qiv2di2): Ditto.
+ (sse4_1_extendv4hiv4si2): Ditto.
+ (sse4_1_extendv2hiv2di2): Ditto.
+ (sse4_1_extendv2siv2di2): Ditto.
+ (sse4_1_zero_extendv8qiv8hi2): Ditto.
+ (sse4_1_zero_extendv4qiv4si2): Ditto.
+ (sse4_1_zero_extendv2qiv2di2): Ditto.
+ (sse4_1_zero_extendv4hiv4si2): Ditto.
+ (sse4_1_zero_extendv2hiv2di2): Ditto.
+ (sse4_1_zero_extendv2siv2di2): Ditto.
+ (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
+ (*sse4_1_extendv4qiv4si2): Ditto.
+ (*sse4_1_extendv2qiv2di2): Ditto.
+ (*sse4_1_extendv4hiv4si2): Ditto.
+ (*sse4_1_extendv2hiv2di2): Ditto.
+ (*sse4_1_extendv2siv2di2): Ditto.
+ (*sse4_1_zero_extendv8qiv8hi2): Ditto.
+ (*sse4_1_zero_extendv4qiv4si2): Ditto.
+ (*sse4_1_zero_extendv2qiv2di2): Ditto.
+ (*sse4_1_zero_extendv4hiv4si2): Ditto.
+ (*sse4_1_zero_extendv2hiv2di2): Ditto.
+ (*sse4_1_zero_extendv2siv2di2): Ditto.
+
2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
* config/mips/mips-protos.h (mips_function_arg_advance): Delete
(rs6000_parm_start): Likewise.
(rs6000_arg_size): Likewise.
(rs6000_darwin64_record_arg_advance_recurse): Likewise.
- (rs6000_darwin64_record_arg): Likewise. Take a bool instead of
- an int.
+ (rs6000_darwin64_record_arg): Likewise. Take a bool instead of an int.
(rs6000_mixed_function_arg): Likewise.
(function_arg): Rename to...
(rs6000_function_arg): ...this.
2010-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/arm.md (enabled): Test the value of arch_enabled
- rather than just using it.
+ rather than just using it.
2010-08-27 Olivier Hainque <hainque@adacore.com>
- Eric Botcazou <ebotcazou@adacore.com>
+ Eric Botcazou <ebotcazou@adacore.com>
* dse.c (group_info.base_mem, get_group_info): Use BLKmode to
cover all the possible offsets from this base.
2010-08-26 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45255
- * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P
- statics and externals are also invariant.
+ * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
+ and externals are also invariant.
2010-08-25 Jakub Jelinek <jakub@redhat.com>
2010-08-25 Richard Guenther <rguenther@suse.de>
- * alias.c (get_alias_set): Assign a single alias-set to
- all pointers.
+ * alias.c (get_alias_set): Assign a single alias-set to all pointers.
* gimple.c (gimple_get_alias_set): Remove special handling
for pointers.
* config/arm/iterators.md (VU, SE, V_widen_l): New.
(V_unpack, US): New.
- * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for
- vmovl.
+ * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
(vec_unpack<US>_lo_<mode>): Likewise.
(neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
(neon_vec_unpack<US>_lo_<mode>): Likewise.
TARGET_MEM_REF more properly.
(indirect_ref_may_alias_decl_p): Likewise.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
- * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more
- properly.
+ * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
2010-08-23 Anatoly Sokolov <aesok@post.ru>
* tree-flow.h (may_be_nonaddressable_p): New definition. Make the
existing static function global.
- *tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
+ * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
is changed to global.
- *tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
+ * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
may_be_nonaddressable_p on base, and don't collect this reference
if the address of the base could not be taken.
(build_cdtor): Move to ipa.c; add code avoiding construction
when target have ctors/dtors and there is only one ctor/dtor at given
priority.
- (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize sort;
- reverse order of constructors.
- (cgraph_build_cdtor_fns):Move to ipa.c; rename to build_cdtor_fns.
+ (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
+ sort; reverse order of constructors.
+ (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
(cgraph_finalize_function): Do not call record_cdtor_fn.
(cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
(cgraph_build_static_cdtor): Move to ipa.c.
build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
pass_ipa_cdtor_merge): New.
* passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
- * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of bounds access.
+ * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
+ bounds access.
2010-08-20 Jan Hubicka <jh@suse.cz>
2010-08-20 Jan Hubicka <jh@suse.cz>
- * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of flag_wpa.
+ * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
+ flag_wpa.
* lto-streamer-out.c (lto_output): Likewise.
- * passes.c (ipa_write_optimization_summaries): Initialize statement uids.
+ * passes.c (ipa_write_optimization_summaries): Initialize statement
+ uids.
2010-08-20 Olivier Hainque <hainque@adacore.com>
revert r163410, partially revert r163267.
* config/rs6000/darwin.h (LIB_SPEC): Remove.
- * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
+ * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
Darwin versions.
-
+
2010-08-20 Jakub Jelinek <jakub@redhat.com>
PR middle-end/44974
2010-08-20 Uros Bizjak <ubizjak@gmail.com>
- * config/i386/i386.md (ashift RSP splitter): Remove splitter.
+ * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
(pro_epilogue_adjust_stack_di_2): Use "l" constraint for
alternative 1 of operand 2.