+2010-06-18 Alan Modra <amodra@gmail.com>
+
+ * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
+
+2010-06-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/43740
+ config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag for
+ SET source operand from SET destination operand.
+
+2010-06-17 Bernd Schmidt <bernds@codesourcery.com>
+
+ PR rtl-optimization/39871
+ * reload1.c (init_eliminable_invariants): For flag_pic, disable
+ equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
+ (function_invariant_p): Rule out a plus of frame or arg pointer with
+ a SYMBOL_REF.
+ * ira.c (find_reg_equiv_invariant_const): Likewise.
+
+2010-06-17 Gunther Nikl <gnikl@users.sourceforge.net>
+
+ * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
+ print_operand_address and puts to output the operand for CONST.
+
+2010-06-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/44572
+ * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
+ hook.
+
+2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
+
+ * v850-protos.h (print_operand): Delete.
+ (print_operand_address): Delete.
+ * v850.h (PRINT_OPERAND): Delete.
+ (PRINT_OPERAND_PUNCT_VALID_P): Delete.
+ (PRINT_OPERAND_ADDRESS): Delete.
+ * v850.c (print_operand_address): Rename to...
+ (v850_print_operand_address): ...this. Make static. Call
+ v850_print_operand.
+ (print_operand): Rename to...
+ (v850_print_operand): ...this. Make static. Call
+ v850_print_operand_address.
+ (v850_print_operand_punct_valid_p): New function.
+ (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
+ (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
+
+2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/sh/sh-protos.h (print_operand): Delete.
+ (print_operand_address): Delete.
+ * config/sh/sh.h (PRINT_OPERAND): Delete.
+ (PRINT_OPERAND_PUNCT_VALID_P): Delete.
+ (PRINT_OPERAND_ADDRESS): Delete.
+ * config/sh/sh.c (sh_print_operand_address): Make static.
+ (sh_print_operand): Make static. Call sh_print_operand_address
+ and sh_print_operand.
+ (sh_print_operand_punct_valid_p): New function.
+ (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
+ (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
+
+2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
+ (mcore_print_operand_address): Delete.
+ * config/mcore/mcore.h (PRINT_OPERAND): Delete.
+ (PRINT_OPERAND_PUNCT_VALID_P): Delete.
+ (PRINT_OPERAND_ADDRESS): Delete.
+ * config/mcore/mcore.c (mcore_print_operand_address): Make static.
+ (mcore_print_operand): Make static.
+ (mcore_print_operand_punct_valid_p): New function.
+ (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
+ (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
+
+2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
+ (print_operand_address): Delete.
+ * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
+ (PRINT_OPERAND_ADDRESS): Delete.
+ * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
+ static.
+ (m68hc11_print_operand): Make static.
+ (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
+
+2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
+ (m32r_print_operand_address): Delete.
+ * config/m32r/m32r.h (m32r_punct_chars): Delete.
+ (PRINT_OPERAND): Delete.
+ (PRINT_OPERAND_PUNCT_VALID_P): Delete.
+ (PRINT_OPERAND_ADDRESS): Delete.
+ * config/m32r/m32r.c (m32r_punct_chars): Make static.
+ (m32r_print_operand_address): Make static.
+ (m32r_print_operand): Make static.
+ (m32r_print_operand_punct_valid_p): New function.
+ (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
+ (TARGET_PRINT_OPERAND_ADDRESS): Define.
+
+2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/iq2000/iq2000-protos.h (print_operand): Delete.
+ (print_operand_address): Delete.
+ * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
+ (PRINT_OPERAND_PUNCT_VALID_P): Delete.
+ (PRINT_OPERAND_ADDRESS): Delete.
+ (iq2000_print_operand_punct): Delete.
+ * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
+ (iq2000_print_operand_address): Make static.
+ (iq2000_print_operand): Make static.
+ (iq2000_print_operand_punct_valid_p): New function.
+ (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
+ (TARGET_PRINT_OPERAND_ADDRESS): Define.
+
+2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/frv/frv-protos.h (frv_print_operand): Delete.
+ (frv_print_operand_address): Delete.
+ * config/frv/frv.h (PRINT_OPERAND): Delete.
+ (PRINT_OPERAND_PUNCT_VALID_P): Delete.
+ (PRINT_OPERAND_ADDRESS): Delete.
+ * config/frv/frv.c (frv_print_operand_address): Make static.
+ (frv_print_operand): Make static.
+ (frv_print_operand_punct_valid_p): New function.
+ (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
+ (TARGET_PRINT_OPERAND_ADDRESS): Define.
+
+2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.h (vec_member): Declare.
+ * tree.c (vec_member): Define.
+
+2010-06-17 Richard Guenther <rguenther@suse.de>
+
+ * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
+ * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
+
+2010-06-17 Richard Guenther <rguenther@suse.de>
+
+ * tree-inline.c (declare_return_variable): Remove bogus code.
+
+2010-06-17 Richard Guenther <rguenther@suse.de>
+
+ * gimplify.c (gimplify_bind_expr): Always promote complex
+ and vector variables to registers if possible.
+
+2010-06-17 Richard Guenther <rguenther@suse.de>
+
+ * expr.c (get_inner_reference): Use double_int for bit_offset
+ calculation.
+
+2010-06-16 DJ Delorie <dj@redhat.com>
+
+ * common.opt (-fstrict-volatile-bitfields): new.
+ * doc/invoke.texi: Document it.
+ * fold-const.c (optimize_bit_field_compare): For volatile
+ bitfields, use the field's type to determine the mode, not the
+ field's size.
+ * expr.c (expand_assignment): Likewise.
+ (get_inner_reference): Likewise.
+ (expand_expr_real_1): Likewise.
+ * expmed.c (store_fixed_bit_field): Likewise.
+ (extract_bit_field_1): Likewise.
+ (extract_fixed_bit_field): Likewise.
+
+2010-06-16 Richard Guenther <rguenther@suse.de>
+
+ * tree-inline.c (remap_gimple_op_r): Recurse using
+ remap_gimple_op_r.
+
+2010-06-16 Douglas B Rupp <rupp@gnat.com>
+
+ * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
+ (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
+ * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
+ * debug.c: Likewise.
+ * sdbout.c: Likewise.
+ * vmsdbgout.c: Likewise.
+ * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
+ * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
+ * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
+ (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
+ * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
+ * dwarf2out.c (dw_fde_struct): New fields
+ dw_fde_vms_{end,begin}_prologue.
+ (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
+ (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
+ (dwarf2out_vms_end_prologue): New function.
+ (dwarf2out_vms_begin_epilogue): New function.
+ (dw_val_struct): New value dw_val_class_vms_delta.
+ (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
+ begin_epilogue for VMS.
+ (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
+ new static functions.
+ (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
+ (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
+ static functions.
+ (print_die): New case dw_val_class_vms_delta.
+ (attr_checksum): Likewise.
+ (same_dw_val_p: Likewise.
+ (size_of_die): Likewise.
+ (value_format): Likewise.
+ (output_die): Likewise.
+ (gen_subprogram_die): Call add_AT_vms_delta on VMS.
+ (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
+ * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
+ dwarf2out_cfi_begin_epilogue
+ * final.c (final_scan_insn): Likewise. Call begin_epilogue.
+
+2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/cris/cris-protos.h (cris_print_operand): Delete.
+ (cris_print_operand_address): Delete.
+ * config/cris/cris.h (PRINT_OPERAND): Delete.
+ (PRINT_OPERAND_PUNCT_VALID_P): Delete.
+ (PRINT_OPERAND_ADDRESS): Delete.
+ * config/cris/cris.c (cris_print_operand_address): Make static.
+ (cris_print_operand): Make static.
+ (cris_print_operand_punct_valid_p): New function.
+ (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
+ (TARGET_PRINT_OPERAND_ADDRESS): Define.
+
+2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/arm/arm-protos.h (arm_print_operand): Delete.
+ (arm_print_operand_address): Delete.
+ * config/arm/arm.h (PRINT_OPERAND): Delete.
+ (PRINT_OPERAND_PUNCT_VALID_P): Delete.
+ (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
+ (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
+ * config/arm/arm.c (arm_print_operand_address): ...here. New
+ function.
+ (arm_print_operand): Make static.
+ (arm_print_operand_punct_valid_p): New function.
+ (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
+ (TARGET_PRINT_OPERAND_ADDRESS): Define.
+
+2010-06-16 Nick Clifton <nickc@redhat.com>
+
+ * config/rx/constraints.md (NEGint4): New constraint.
+ * config/rx/rx.md (attr cc): Add set_zsc.
+ (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
+ initialised.
+ (cmpsf): Likewise.
+ (call_internal): Clobber the cc0 register.
+ (call_value_internal): Likewise.
+ (cstoresi4): Likewise.
+ (movsieq): Likewise.
+ (movsine): Likewise.
+ (addsi3): Add alternative to handle small negative constants.
+ (sunsi3): Likewise.
+ (addsi3): Do not set the O bit in the cc0 register.
+ (adddi3): Likewise.
+ (subsi3): Likewise.
+ (subdi3): Likewise.
+ (andsi3): Reorder alternatives to prefer shorter forms.
+ (mulsi3): Likewise.
+ (iorsi3): Likewise.
+ (negsi2): Note that the cc0 flags are set.
+ (rotlsi3): Note that only the Z and S bits are set in cc0.
+ (lshrsi3): Likewise.
+ (ashlsi3): Likewise.
+ (subsf3): Use %Q for the MEM operand.
+ (fix_truncsfsi2): Likewise.
+ (floatsisf2): Likewise.
+ (bitset): Remove early clobber from destination.
+ (bitset_in_memory): Likewise.
+ (lrintsf2): Clobber the cc0 register.
+ * config/rx/rx.c (rx_notice_update_cc):
+ Handle CC_SET_ZSC.
+ (rx_print_operand): Handle %N.
+
+2010-06-16 Jan Hubicka <jh@suse.cz>
+
+ * df-core.c (df_compact_blocks): Free problem_temps vector.
+
+2010-06-16 Martin Jambor <mjambor@suse.cz>
+
+ PR tree-optimization/43905
+ * tree-sra.c: Include tree-inline.h.
+ (create_abstract_origin): Removed.
+ (modify_function): Version the call graph node instead of creating
+ abstract origins and dealing with same_body aliases.
+ * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
+ function is versionable.
+ * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
+
+2010-06-16 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
+ (CHOOSE_DYNAMIC_LINKER): Update.
+
+2010-06-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.c (*prefetch_sse_<mode>): Macroize insn from
+ *prefetch_sse and *prefetch_sse_rex using P mode iterator.
+ (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
+ *prefetch_3dnow_rex.
+
+2010-06-15 Anatoly Sokolov <aesok@post.ru>
+
+ * target.h (struct asm_out):Add declare_constant_name field.
+ * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
+ (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
+ * output.h (default_asm_declare_constant_name): Declare.
+ (assemble_label): Update prototype.
+ * varasm.c (assemble_constant_contents): Use
+ targetm.asm_out.declare_constant_name target hook.
+ (assemble_label): Add 'file' argument.
+ (default_asm_declare_constant_name): New function.
+ * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
+ * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
+ (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
+
+ * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
+ * config/darwin.c (darwin_asm_declare_constant_name): New function.
+ (machopic_output_indirection): Update assemble_label argument list.
+ * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
+ (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
+
+2010-06-15 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/44391
+ * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
+ size_one_node for pointer types. Do not call gmp_cst_to_tree.
+
+2010-06-15 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
+
+2010-06-15 Paul Brook <paul@codesourcery.com>
+
+ * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
+ hard-float ABI.
+
+2010-06-15 Alexandre Oliva <aoliva@redhat.com>
+
+ * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
+ don't get a vector type for output.
+
+2010-06-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR fortran/44536
+ * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
+ * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
+ (LANG_HOOKS_DECLS): Add it.
+ * gimplify.c (omp_notice_variable): Call
+ lang_hooks.decls.omp_report_decl.
+
+2010-06-15 Martin Jambor <mjambor@suse.cz>
+
+ PR lto/44464
+ * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
+ on the newly dead SSA name.
+
+2010-06-15 Alan Modra <amodra@gmail.com>
+
+ * doc/invoke.texi: Add mcmodel to powerpc options.
+ * configure.ac: Add HAVE_LD_LARGE_TOC test.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * config/rs6000/linux64.opt (mcmodel): New.
+ * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
+ (TARGET_CMODEL, SET_CMODEL): Define.
+ (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
+ select CMODEL_MEDIUM default.
+ * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
+ (TARGET_CMODEL): Define default.
+ * config/rs6000/rs6000.c (cmodel): New variable.
+ (rs6000_explicit_options): Add cmodel field.
+ (rs6000_handle_option): Handle -mcmodel.
+ (create_TOC_reference): Add largetoc_reg param. Generate high,
+ lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers.
+ (rs6000_delegitimize_address): Recognise new toc reference rtl
+ and minimal-toc rtl.
+ (rs6000_legitimize_reload_address): Handle new toc references.
+ (print_operand_address): Handle legitimate_constant_pool_address_p
+ match before lo_sum.
+ (rs6000_eliminate_indexed_memrefs): Tidy.
+ (rs6000_emit_move): Tweak threshold for inlining constants.
+ Keep rs6000_emit_allocate_stack large stack frame offsets
+ loaded into r0 inline.
+ (rs6000_generate_compare <cmptf_internal2>): One more clobber.
+ (tocrel_base, tocrel_offset): New variables.
+ (toc_relative_expr_p): Set them here.
+ (print_operand_address): Skip over any offset on constant pool address.
+ (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
+ (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
+ (offsettable_ok_by_alignment): New function.
+ (rs6000_emit_move): Address suitably aligned local symbol_refs
+ relative to the toc pointer for -mcmodel=medium.
+ (legitimate_constant_pool_address_p): Make param const_rtx. Add
+ strict param. Allow lo_sum version of addressing. Verify reg
+ used for -mminimal-toc and -mcmodel != small. Update all callers.
+ * config/rs6000/constraints.md: Update for above change.
+ * config/rs6000/predicates.md: Likewise.
+ * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
+ code.
+ (tls_gd): Split for -mcmodel=medium/large.
+ (tls_gd_high, tls_gd_low): New.
+ (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
+ (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
+ (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
+ (largetoc_high, largetoc_low): New.
+ (cmptf_internal2): Add clobber.
+ * config/rs6000/rs6000-protos.h: Update.
+
+2010-06-14 Changpeng Fang <changpeng.fang@amd.com>
+
+ * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New. Return
+ true if no prefetch is going to be generated for a given group.
+ (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
+ estimate the prefetch_count.
+ (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
+ prefetch count by considering the unroll_factor and prefetch_mod
+ for is_loop_prefetching_profitable.
+
+2010-06-14 Andreas Schwab <schwab@linux-m68k.org>
+
+ * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
+ anything if the argument is not a MEM.
+
+2010-06-14 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/43650
+ PR debug/44181
+ PR debug/44247
+ * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
+ debug stmts.
+ (canonicalize_loop_ivs): Likewise.
+
+2010-06-14 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/43656
+ * haifa-sched.c (setup_insn_reg_pressure_info,
+ update_register_pressure): Reject debug insns.
+ (ready_sort): Don't setup reg pressure for debug insns.
+ (schedule_insn): Don't update reg pressure for debug insns.
+
+2010-06-14 Richard Guenther <rguenther@suse.de>
+
+ * lto-streamer.c (cached_bp): Remove.
+ (bitpack_delete): Likewise.
+ (bitpack_create): Likewise.
+ (bp_get_next_word): Likewise.
+ (bp_pack_value, bp_unpack_value): Move ...
+ * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
+ Re-implement.
+ (struct bitpack_d): Likewise.
+ (bitpack_create, lto_output_bitpack, lto_input_bitpack):
+ New inline functions.
+ * lto-streamer-out.c (lto_output_bitpack): Remove.
+ (pack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
+ (pack_value_fields): Adjust.
+ (lto_write_tree): Likewise.
+ (output_gimple_stmt): Likewise.
+ (output_function): Likewise.
+ * lto-streamer-in.c (input_gimple_stmt): Adjust.
+ (input_function): Likewise.
+ (unpack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
+ (lto_input_bitpack): Remove.
+ (lto_materialize_tree): Adjust.
+ * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
+ * lto-cgraph.c (lto_output_edge): Adjust.
+ (lto_output_node): Likewise.
+ (lto_output_varpool_node): Likewise.
+ (lto_output_ref): Likewise.
+ (input_node): Likewise.
+ (input_varpool_node): Likewise.
+ (input_ref): Likewise.
+ (input_edge): Likewise.
+ (output_node_opt_summary): Likewise.
+ (input_node_opt_summary): Likewise.
+ * ipa-pure-const.c (pure_const_write_summary): Likewise.
+ (pure_const_read_summary): Likewise.
+ * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
+ (ipa_read_indirect_edge_info): Likewise.
+ (ipa_write_node_info): Likewise.
+ (ipa_read_node_info): Likewise.
+
+2010-06-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/44534
+ * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
+ (vec_extract_lo_v16hi): Likewise.
+ (vec_extract_lo_v32qi): Likewise.
+
+2010-06-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/44426
+ * tree.h (build_call_expr): Don't define as vararg macro, instead
+ add a prototype.
+ * builtins.c (build_call_nofold): Remove.
+ (expand_builtin_int_roundingfn, expand_builtin_pow,
+ expand_builtin_mempcpy_args, expand_builtin_stpcpy,
+ expand_builtin_memset_args, expand_builtin_strcmp,
+ expand_builtin_strncmp, expand_builtin_memory_chk): Use
+ build_call_nofold_loc instead of build_call_nofold.
+ (build_call_expr): New function.
+
+ PR tree-optimization/44508
+ * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
+ * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
+ don't eliminate trivially dead stmts.
+ * tree-vrp.c (vrp_finalize): Pass false as last argument
+ to substitute_and_fold.
+ * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
+ to substitute_and_fold.
+ * tree-ssa-ccp.c (ccp_finalize): Likewise.
+
+ PR bootstrap/44509
+ * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
+ * c-family/c-cppbuiltin.c: Include gt-c-family-c-cppbuiltin.h.
+ (lazy_hex_fp_values, lazy_hex_fp_value_count): Add GTY(()) markers.
+ (lazy_hex_fp_value, builtin_define_with_hex_fp_value): Use
+ ggc_strdup instead of xstrdup.
+
+2010-06-14 Ira Rosen <irar@il.ibm.com>
+
+ PR tree-optimization/44507
+ * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
+ to build initial vector for BIT_AND_EXPR.
+ * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
+
+2010-06-14 Jakub Jelinek <jakub@redhat.com>
+
+ * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
+ adjust z10prop set_attr.
+
+2010-06-13 Jan Hubicka <jh@suse.cz>
+
+ * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
+ bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
+ bitmap_ior_into, bitmap_xor, bitmap_xor_into,
+ bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
+ datastructure checks into checking asserts.
+ * rtlanal.c (find_reg_note): Use gcc_checking_assert.
+ * tree-ssa-sccvn.c (VN_INFO): Likewise.
+ * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
+ df_ref_create_structure): Likewise.
+ * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
+ pool_free): Use gcc_checking_assert.
+ * alias.c (get_alias_set): Likewise.
+ * var-tracking.c (variable_htab_free, shared_hash_copy,
+ canonicalize_values_mark, variable_merge_over_cur): Likewise.
+ * lto-streamer.c (bp_unpack_value): Likewise.
+
+2010-06-13 Richard Guenther <rguenther@suse.de>
+
+ * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
+ Do not stream but initialize TYPE_CANONICAL to NULL.
+ (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
+ * gimple.c (gimple_types_compatible_p): Disregard
+ TYPE_STRUCTURAL_EQUALITY_P.
+ (gimple_register_type): Use TYPE_CANONICAL as cache.
+ * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
+ before registering common types.
+ * config/i386/i386.c (ix86_function_arg_boundary): Do not
+ use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
+ * tree.h (TYPE_CANONICAL): Clarify documentation.
+
+2010-06-13 Anatoly Sokolov <aesok@post.ru>
+
+ * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
+ LIBCALL_VALUE): Remove macros.
+ * config/ia64/ia64-protos.h (ia64_function_value): Remove.
+ * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
+ TARGET_FUNCTION_VALUE_REGNO_P): Define.
+ (ia64_libcall_value, ia64_function_value_regno_p): New functions.
+ (ia64_function_value): Make static. Handle receiving the function
+ type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
+
+2010-06-12 Jan Hubicka <jh@suse.cz>
+
+ * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
+ at correct place.
+
+2010-06-12 Bernd Schmidt <bernds@codesourcery.com>
+
+ * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
+
+2010-06-12 Jan Hubicka <jh@suse.cz>
+
+ * df-core.c (df_clear_bb_info): New function.
+ (df_set_blocks): bb_info is always allocated.
+ (df_get_bb_info): Use block_info_elt_size.
+ (df_set_bb_info): Likewise.
+ (df_compact_blocks): Update for new block_info.
+ (grow_bb_info): New function.
+ * df-problems.c (df_grow_bb_info): Move to df-core.c
+ (df_rd_set_bb_info): Remove.
+ (df_rd_free_bb_info): Do not free block pool.
+ (df_rd_alloc): Do not create pool, use check for
+ obstack presence instead of NULL pointer for new blocks.
+ (df_rd_free): DO not free alloc pool; clear block_info.
+ (problem_RD): Add size of block info structure.
+ (df_lr_set_bb_info): Remove.
+ (df_lr_free_bb_info): Do not free block pool.
+ (df_lr_alloc): Do not create pool, use check for
+ obstack presence instead of NULL pointer for new blocks.
+ (df_lr_free): DO not free alloc pool; clear block_info.
+ (problem_LR): Add size of block info structure.
+ (df_live_set_bb_info): Remove.
+ (df_live_free_bb_info): Do not free block pool.
+ (df_live_alloc): Do not create pool, use check for
+ obstack presence instead of NULL pointer for new blocks.
+ (df_live_free): DO not free alloc pool; clear block_info.
+ (problem_LIVE): Add size of block info structure.
+ (problem_CHAIN): Add size of block info structure.
+ (df_byte_lr_set_bb_info): Remove.
+ (df_byte_lr_free_bb_info): Do not free block pool.
+ (df_byte_lr_alloc): Do not create pool, use check for
+ obstack presence instead of NULL pointer for new blocks.
+ (df_byte_lr_free): DO not free alloc pool; clear block_info.
+ (problem_BYTE_LR): Add size of block info structure.
+ (problem_NOTE): Add size of block info structure.
+ (df_byte_MD_set_bb_info): Remove.
+ (df_byte_MD_free_bb_info): Do not free block pool.
+ (df_byte_MD_alloc): Do not create pool, use check for
+ obstack presence instead of NULL pointer for new blocks.
+ (df_byte_MD_free): DO not free alloc pool; clear block_info.
+ (problem_BD): Add size of block info structure.
+ * df-scan.c (df_scan_free_internal): Free block pool.
+ (df_scan_set_bb_info): Remove.
+ (df_scan_free_bb_info): Check for artificial_defs instead
+ of bb_info being non-NULL.
+ (df_scan_alloc): DO not create df_scan_block pool.
+ (problem_SCAN): Set size of block info.
+ (df_bb_refs_record): Do not allocate bb_info.
+ * df.h (df_problem): Add block_info_elt_size.
+ (struct dataflow): Change block_info to void *.
+ (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
+ df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
+ in-line structures.
+
+2010-06-12 Jan Hubicka <jh@suse.cz>
+
+ PR tree-optimize/44485
+ * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
+ containing use of return value of noreturn function.
+
+2010-06-12 Anatoly Sokolov <aesok@post.ru>
+
+ * targhooks.c (default_function_value): Don't use
+ FUNCTION_OUTGOING_VALUE.
+ * system.h (FUNCTION_OUTGOING_VALUE): Poison.
+ * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
+
+2010-06-12 Kazu Hirata <kazu@codesourcery.com>
+
+ * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
+ Add crtfastmath.o to extra_parts.
+ * config/mips/crtfastmath.c: New.
+ * config/mips/linux.h (ENDFILE_SPEC): New.
+
+2010-06-12 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
+ old_type in parameter.
+ (gcc_type_for_value): Update call to gcc_type_for_interval.
+ (compute_type_for_level_1): Renamed compute_type_for_level.
+ Update call to gcc_type_for_interval.
+
+2010-06-11 Joseph Myers <joseph@codesourcery.com>
+
+ * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
+ flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
+
+2010-06-11 Joseph Myers <joseph@codesourcery.com>
+
+ * opts-common.c: Include options.h.
+ (integral_argument): Move from opts.c.
+ (decode_cmdline_option): New. Based on read_cmdline_option.
+ * opts.c (integral_argument): Move to opts-common.c.
+ (read_cmdline_option): Move most contents to
+ decode_cmdline_option. Use %qs in diagnostics.
+ * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
+ CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
+ decode_cmdline_option): New.
+
+2010-06-11 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/44481
+ * config/i386/i386.md (UNSPEC_PARITY): New unspec.
+ (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
+ (partiysi2_cmp): Ditto.
+ (*partiyhi2_cmp): Ditto.
+ (*parityqi2_cmp): Remove.
+
+2010-06-11 Jan Hubicka <jh@suse.cz>
+
+ * bitmap.h (bmp_iter_next_bit): New.
+ (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
+
+2010-06-11 Sandra Loosemore <sandra@codesourcery.com>
+ Eric Botcazou <ebotcazou@adacore.com>
+
+ * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
+ computed cost.
+
+2010-06-11 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (unspec): New define_c_enum.
+ (unspecv): Ditto.
+
+2010-06-10 Jakub Jelinek <jakub@redhat.com>
+
+ * c-family/c-cppbuiltin.c: Include cpp-id-data.h.
+ (lazy_hex_fp_values, lazy_hex_fp_value_count): New variables.
+ (lazy_hex_fp_value): New function.
+ (builtin_define_with_hex_fp_value): Provide definitions lazily.
+ * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
+
+2010-06-11 Sebastian Pop <sebastian.pop@amd.com>
+
+ PR middle-end/44483
+ * tree-if-conv.c (bb_predicate_s): New struct.
+ (bb_predicate_p): New.
+ (bb_has_predicate): New.
+ (bb_predicate): New.
+ (set_bb_predicate): New.
+ (bb_predicate_gimplified_stmts): New.
+ (set_bb_predicate_gimplified_stmts): New.
+ (add_bb_predicate_gimplified_stmts): New.
+ (init_bb_predicate): New.
+ (free_bb_predicate): New.
+ (is_predicated): Use bb_predicate.
+ (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
+ (predicate_bbs): Same. Gimplify the condition of the basic blocks
+ before processing their successors.
+ (clean_predicate_lists): Removed.
+ (find_phi_replacement_condition): Use bb_predicate.
+ (process_phi_nodes): Renamed ifconvert_phi_nodes. Avoid useless
+ computations.
+ (insert_gimplified_predicates): New.
+ (combine_blocks): Call insert_gimplified_predicates.
+ (tree_if_conversion): Call free_bb_predicate instead of
+ clean_predicate_lists.
+
+2010-10-11 Paul Brook <paul@codesourcery.com>
+
+ * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
+ * config/arm/arm.c (all_architectures): Change v7e-m default to
+ cortexm4.
+ * config/arm/arm-cores.def: Add cortex-m4.
+ * config/arm/arm-tune.md: Regenerate.
+
+2010-06-11 Jan Hubicka <jh@suse.cz>
+
+ * ipa-pure-const.c (special_builtlin_state): New function.
+ (check_call): Use it instead of special casign BUILT_IN_RETURN.
+ (propagate_pure_const): Use it.
+
+2010-06-11 Jan Hubicka <jh@suse.cz>
+
+ * df-problems.c (df_live_scratch): Convert to bitmap_head.
+ (df_live_alloc): Initialize df_live_scratch when initializing
+ problem_data.
+ (df_live_transfer_function): Update uses of df_live_scratch.
+ (df_live_free): Free problem_data; clear df_live_scratch before
+ releasing the obstack.
+ (df_md_free): Free problem data.
+
+2010-06-11 Jan Hubicka <jh@suse.cz>
+
+ * doc/invoke.texi (Wsuggest-attribute): Document.
+ (Wmissing-noreturn): Remove.
+ * ipa-pure-const.c (warn_function_noreturn): New function.
+ * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
+ warn_missing_noreturn.
+ * common.opt (Wsuggest-attribute=noreturn): New.
+ * tree-flow.h (warn_function_noreturn): Declare.
+ * tree-cfg.c (execute_warn_function_noreturn): Use
+ warn_function_noreturn.
+ (gate_warn_function_noreturn): New.
+ (pass_warn_function_noreturn): Update.
+
2010-06-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
* c-typeck.c (handle_warn_cast_qual): Add loc
(UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
(UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
(UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
- (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Moved from mips-ps-3d.md.
+ (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
(UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
(UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
(UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
(UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
(UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
(UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
- (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD, UNSPEC_LOONGSON_PSADBH)
+ (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
+ UNSPEC_LOONGSON_PSADBH)
(UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
(UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
(UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
(UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
(UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
(UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
- (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved to mips-loongson2ef.md.
+ (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
(cpu): Update comment.
* config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
(UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
(UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
(UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
- * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ)
- (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
+ * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
+ UNSPEC_LOONGSON_PCMPEQ)
+ (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
+ UNSPEC_LOONGSON_PINSR_0)
(UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
(UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
(UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
(UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
- (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD, UNSPEC_LOONGSON_PSADBH)
+ (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
+ UNSPEC_LOONGSON_PSADBH)
(UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
(UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
(UNSPEC_LOONGSON_PSUBD): Moved from mips.md