OSDN Git Service

* config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 561b0ee..2af7e6b 100644 (file)
@@ -1,3 +1,787 @@
+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
+       parameter. Improve warning message.
+       (build_c_cast): Pass location to handle_warn_cast_qual.
+
 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
        (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