+2010-06-20 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/44546
+ * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
+ New predicate.
+ * config/i386/i386.md (*fp_jcc_8<mode>_387): Use
+ ix86_swapped_fp_comparsion_operator instead of
+ ix86_fp_comparison_operator.
+
+ (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
+ (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
+ (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
+ (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
+ (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
+ (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
+
+2010-06-20 Joseph Myers <joseph@codesourcery.com>
+
+ PR other/32998
+ * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
+ OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
+ * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
+ (decode_cmdline_option): Update for this return value. Set
+ orig_option_with_args_text field. Set arg field for unknown
+ options. Make static.
+ (decode_cmdline_options_to_array): New.
+ (prune_options): Update handling of find_opt return value.
+ * opts.c (read_cmdline_option): Take decoded option. Return void.
+ (read_cmdline_options): Take decoded options.
+ (decode_options): Add parameters for decoded options. Use
+ decode_cmdline_options_to_array. Use decoded options for -O
+ scan. Use integral_argument for -O parameters. Update call to
+ read_cmdline_options.
+ (enable_warning_as_error): Update handling of find_opt return value.
+ * opts.h: Update comment on unknown options.
+ (struct cl_decoded_option): Update comments on opt_index and arg.
+ Add orig_option_with_args_text.
+ (decode_cmdline_option): Remove.
+ (decode_cmdline_options_to_array): Declare.
+ (decode_options): Update prototype.
+ * toplev.c (save_argv): Remove.
+ (save_decoded_options, save_decoded_options_count): New.
+ (read_integral_parameter): Remove.
+ (print_switch_values): Use decoded options.
+ (toplev_main): Don't set save_argv. Update call to decode_options.
+ * toplev.h (read_integral_parameter): Remove.
+ * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
+
+2010-06-19 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/44072
+ * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
+ immediate.
+ * constraints.md (Pw, Px): New constraints.
+ * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
+
+2010-06-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/sse.md (fma4modesuffixf4): Removed.
+ (ssemodesuffixf2s): Likewise.
+ (ssemodesuffixf4): Likewise.
+ (ssemodesuffixf2c): Likewise.
+ (ssescalarmodesuffix2s): Likewise.
+ (avxmodesuffixf2c): Likewise.
+ (ssemodesuffix): New.
+ (ssescalarmodesuffix): Likewise.
+ Update patterns with ssemodesuffix and ssescalarmodesuffix.
+
+2010-06-19 Philip Herron <herron.philip@googlemail.com>
+
+ * c-decl.c (c_write_global_declarations): Don't check
+ flag_syntax_only.
+
+2010-06-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * stor-layout.c (debug_rli): Remove unused local variables.
+
+2010-06-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR rtl-optimization/40900
+ * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line. Save the
+ original expression for later reuse.
+ <expand_decl_rtl>: Use promote_function_mode to compute the signedness
+ of the promoted RTL for a SSA_NAME on the LHS of a call statement.
+
+2010-06-18 Anatoly Sokolov <aesok@post.ru>
+
+ * double-int.h (double_int_to_shwi, double_int_to_uhwi,
+ double_int_fits_in_uhwi_p): Implement as static inline.
+ (double_int_xor): New inline function.
+ (double_int_lrotate, double_int_rrotate, double_int_max,
+ double_int_umax, double_int_smax, double_int_min, double_int_umin,
+ double_int_smin): Declare.
+ (lrotate_double, rrotate_double): Remove declaration.
+ * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
+ double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
+ (double_int_lrotate, double_int_rrotate, double_int_max,
+ double_int_umax, double_int_smax, double_int_min, double_int_umin,
+ double_int_smin): New function.
+ * fold-const.c (int_const_binop): Clean up, use double_int_*
+ functions.
+ * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
+ double_int_* and immed_double_int_const functions.
+
+2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
+
+ * function.h (types_used_by_cur_var_decl): Change type to a VEC.
+ * function.c (types_used_by_cur_var_decl): Likewise.
+ (used_types_insert): Adjust for new type of
+ types_used_by_cur_var_decl.
+
+2010-06-18 Nathan Froyd <froydnj@codesourcery.com>
+
+ * tree.h (record_layout_info): Change type of pending_statics field
+ to a VEC.
+ * stor-layout.c (start_record_layout): Store NULL into
+ pending_statics.
+ (debug_rli): Call debug_vec_tree instead of debug_tree.
+ (place_field): Likewise.
+ (finish_record_layout): Likewise.
+
+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
(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_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.
+ (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.
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.
+ * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
(vec_extract_lo_v16hi): Likewise.
(vec_extract_lo_v32qi): Likewise.
(build_call_expr): New function.
PR tree-optimization/44508
- * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE
- argument.
+ * 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
2010-06-14 Ira Rosen <irar@il.ibm.com>
- PR tree-optimization/44507
+ 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-12 Kazu Hirata <kazu@codesourcery.com>
- * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*,
- mips*-*-linux*): Add crtfastmath.o to extra_parts.
+ * 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-11 Joseph Myers <joseph@codesourcery.com>
* common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
- flto-compression-level=, ftree-parallelize-loops=): Add
- RejectNegative.
+ flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
2010-06-11 Joseph Myers <joseph@codesourcery.com>
PR target/44481
* config/i386/i386.md (UNSPEC_PARITY): New unspec.
- (paritydi2_cmp): Use UNSPEC_PARITY unspec insted of parity RTX.
+ (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
(partiysi2_cmp): Ditto.
(*partiyhi2_cmp): Ditto.
(*parityqi2_cmp): Remove.
(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>
+ Eric Botcazou <ebotcazou@adacore.com>
* tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
computed cost.
2010-05-29 Jan Hubicka <jh@suse.cz>
* cgraphunit.c (cgraph_materialize_clone): Only remove calles,
- refs and body; not the whole node for masters of materialized
- clones.
+ refs and body; not the whole node for masters of materialized clones.
2010-05-29 Mike Stump <mikestump@comcast.net>
* gcc.c (inform, warning, inform): New functions.
(fatal_ice): Rename to internal_error; change cmsgid parameter to
gmsgid. All callers changed.
- (notice): Rename to fnotice; add parameter fp. All callers
- changed.
+ (notice): Rename to fnotice; add parameter fp. All callers changed.
(fatal_error): Rename to fatal_signal. All users changed.
(fatal): Rename to fatal_error; change cmsgid parameter to
gmsgid. All callers changed.
(warning): Declare.
* config/darwin-driver.c (darwin_default_min_version): Use warning
instead of fprintf for warnings.
- * cppspec.c (lang_specific_driver): Use fatal_error instead of
- fatal.
+ * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
2010-05-28 Julian Brown <julian@codesourcery.com>