+2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ M68K TLS support.
+ * configure.ac (m68k-*-*): Check if binutils support TLS.
+ * configure: Regenerate.
+ * config/m68k/predicates.md (symbolic_operand): Extend comment.
+ * config/m68k/constraints.md (Cu): New constraint.
+ * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
+ (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
+ (movsi): Handle TLS symbols.
+ (addsi3_5200): Handle XTLS symbols, indent.
+ * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
+ (m68k_tls_reference_p): Declare.
+ (m68k_legitimize_address): Declare.
+ (m68k_unwrap_symbol): Declare.
+ * config/m68k/m68k.opt (mxtls): New option.
+ * config/m68k/m68k.c (ggc.h): Include.
+ (m68k_output_dwarf_dtprel): Implement hook.
+ (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
+ (m68k_expand_prologue): Load GOT pointer when function needs it.
+ (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
+ (m68k_legitimate_constant_address_p): Same.
+ (m68k_decompose_address): Handle TLS references.
+ (m68k_get_gp): New static function.
+ (enum m68k_reloc): New contants.
+ (TLS_RELOC_P): New macro.
+ (m68k_wrap_symbol): New static function.
+ (m68k_unwrap_symbol): New function.
+ (m68k_final_prescan_insn_1): New static function.
+ (m68k_final_prescan_insn): New function.
+ (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
+ functions.
+ (legitimize_pic_address): Handle TLS references..
+ (m68k_tls_get_addr, m68k_get_tls_get_addr)
+ (m68k_libcall_value_in_a0_p)
+ (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
+ (m68k_call_m68k_read_tp): Helper variables and functions for ...
+ (m68k_legitimize_tls_address): Handle TLS references.
+ (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
+ New functions.
+ (m68k_legitimize_address): Handle TLS symbols.
+ (m68k_get_reloc_decoration): New static function.
+ (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
+ UNSPEC_RELOC32.
+ (m68k_output_dwarf_dtprel): Implement hook.
+ (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
+ (m68k_libcall_value): Return result in A0 instead of D0 when asked by
+ m68k_call_* routines.
+ (sched_attr_op_type): Handle TLS symbols.
+ (gt-m68k.h): Include.
+ * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
+ (LEGITIMATE_PIC_OPERAND_P): Support TLS.
+
+2009-05-18 Martin Jambor <mjambor@suse.cz>
+
+ * ipa-prop.c (ipa_check_stmt_modifications): Removed.
+ (visit_store_addr_for_mod_analysis): New function.
+ (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
+ (determine_cst_member_ptr): Use gimple_assign_single_p.
+ (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
+ (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
+ operands. Don't check number of operands of a NOP_EXPR.
+
+2009-05-18 Eric Fisher <joefoxreal@gmail.com>
+
+ * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
+
+2009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR c/40172
+ * c-common.c (warn_logical_operator): Don't warn if one of
+ expression isn't always true or false.
+
+2009-05-17 Kai Tietz <kai.tietz@onevision.com>
+
+ * config/i386/biarch32.h: New file.
+ * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
+
+2009-05-17 Adam Nemet <anemet@caviumnetworks.com>
+
+ * config/mips/mips.md (*zero_extend<mode>_trunchi,
+ *zero_extend<mode>_truncqi): Merge these into ...
+ (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
+ Name the pattern following this as *zero_extendhi_truncqi.
+
+2009-05-16 Brad Lucier <lucier@math.purdue.edu>
+
+ PR middle-end/39301
+ * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
+ * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
+ (output_info): Make field HOST_WIDEST_INT.
+ (print_statistics): Use HOST_WIDEST_INT_PRINT.
+ (dump_bitmat_statistics): Same.
+
+2009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
+
+ * config.gcc (use_gcc_stdint): Set to wrap.
+ * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
+ INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
+ UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
+ INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
+ UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
+ INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
+ UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
+ UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
+
+2009-05-16 Joseph Myers <joseph@codesourcery.com>
+
+ * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
+ tune_64.
+ * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
+ Move definitions earlier.
+ (OPT_ARCH64, OPT_ARCH32): Define.
+ (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
+ and tune_64.
+
+2009-05-16 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/40153
+ * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
+ implies.
+
+2009-05-16 Richard Earnshaw <rearnsha@arm.com>
+
+ * arm.md (movdi2): Copy non-reg values to DImode registers.
+
+2009-05-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/39942
+ * final.c (label_to_max_skip): New function.
+ (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
+ CODE_LABEL_NUMBER <= max_labelno.
+ * output.h (label_to_max_skip): New prototype.
+ * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
+ (ix86_avoid_jump_mispredicts): ... this. Don't define if
+ ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
+ Handle CODE_LABELs with >= 16 byte alignment or with
+ max_skip == (1 << align) - 1.
+ (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
+ ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
+
+ PR target/39942
+ * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
+ .p2align 3 if MAX_SKIP is smaller than 7.
+ * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
+
+2009-05-15 Ian Lance Taylor <iant@google.com>
+
+ * alias.c (struct alias_set_entry_d): Rename from struct
+ alias_set_entry. Change all uses.
+ * except.c (struct call_site_record_d): Rename from struct
+ call_site_record. Change all uses.
+ * except.h (struct eh_region_d): Rename from struct eh_region.
+ Change all uses.
+ * gcse.c (struct hash_table_d): Rename from struct hash_table.
+ Change all uses.
+ * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
+ ivtype_map_elt. Change all uses.
+ (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
+ Change all uses.
+ (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
+ * graphite.h (struct name_tree_d): Rename from struct name_tree.
+ Change all uses.
+ (struct sese_d): Rename from struct sese. Change all uses.
+ * omega.h (struct eqn_d): Rename from struct eqn. Change all
+ uses.
+ (struct omega_pb_d): Rename from struct omega_pb. Change all
+ uses.
+ * optabs.h (struct optab_d): Rename from struct optab. Change all
+ uses.
+ (struct convert_optab_d): Rename from struct convert_optab.
+ Change all uses.
+ * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
+ ipa_opt_pass. Change all uses.
+ * tree-predcom.c (struct dref_d): Rename from struct dref. Change
+ all uses.
+
+ * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
+ defined as a typedef.
+ (grokdeclarator): If -Wc++-compat, warn if a typedef is already
+ defined as a tag.
+
+2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR 16302
+ * fold-const.c (make_range,build_range_check,merge_ranges): Move
+ declaration to...
+ (merge_ranges): Returns bool.
+ * tree.h (make_range): .. to here.
+ (build_range_check): Likewise.
+ (merge_ranges): Likewise. Renamed from merge_ranges.
+ * c-typeck.c (parser_build_binary_op): Update calls to
+ warn_logical_operator.
+ * c-common.c (warn_logical_operator): Add new warning.
+ * c-common.h (warn_logical_operator): Update declaration.
+
+2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * ira-conflicts.c (add_insn_allocno_copies): Fix wrong
+ conditional.
+
+2009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * doc/install.texi: Document MPC requirements, flags etc.
+
+ * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
+ (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
+ Evaluate constant arguments.
+ (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
+ (fold_builtin_1): Likewise, also evaluate constant arguments.
+ Remove superfluous break.
+ (do_mpc_ckconv): New.
+ * real.h: Include mpc.h.
+ * toplev.c (print_version): Output MPC version info if available.
+
+2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
+
+ * fold-const.c (fold_convert_const_real_from_real): Check for
+ overflow.
+
+2009-05-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
+ only once.
+
+2009-05-15 Jan Hubicka <jh@suse.cz>
+
+ * doc/invoke.texi (max-early-inliner-iterations): New flag.
+ * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
+ (try_inline): Fix return value.
+ (cgraph_decide_inlining_incrementally): Honor new value.
+ (cgraph_early_inlining): Handle indirect inlining.
+ * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
+
+2009-05-15 Jan Hubicka <jh@suse.cz>
+
+ * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
+ * cgraphunit.c (cgraph_finalize_function): Set it.
+ (cgraph_expand_function): Use it.
+
+2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
+
+ * real.c (encode_ieee_half): Define.
+ (decode_ieee_half): Define.
+ (ieee_half_format): Define.
+ (arm_half_format): Define.
+ * real.h (ieee_half_format): Declare.
+ (arm_half_format): Declare.
+
+2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
+
+ * optabs.c (prepare_float_lib_cmp): Test that the comparison,
+ swapped, and reversed optabs exist before trying to use them.
+
+2009-05-15 Paul Brook <paul@codesourcery.com>
+ Sandra Loosemore <sandra@codesourcery.com>
+
+ * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
+ loads. Allow PRE_DEC.
+ (output_move_neon): Handle PRE_DEC.
+ (arm_print_operand): Add 'A' for neon structure loads.
+ * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
+ * config/arm/neon.md (neon_mov): Update comment.
+ * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
+ calls.
+ (Um): New constraint.
+
+2009-05-15 Jan Hubicka <jh@suse.cz>
+
+ Revert the following patch until testsuite fallout is fixed:
+ * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
+ * cgraph.h (struct inline_summary): New filed self_wize,
+ size_inlining_benefit, self_time and time_inlining_benefit.
+ (struct cgraph_global_info): Replace insns by time ans size fields.
+ * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
+ (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
+ (ipcp_update_callgraph): Do not touch function bodies.
+ * ipa-inline.c: Include except.h
+ MAX_TIME: New constant.
+ (overall_insns): Remove
+ (overall_size, max_benefit): New static variables.
+ (cgraph_estimate_time_after_inlining): New function.
+ (cgraph_estimate_size_after_inlining): Rewrite using benefits.
+ (cgraph_clone_inlined_nodes): Update size.
+ (cgraph_mark_inline_edge): Update size.
+ (cgraph_estimate_growth): Use size info.
+ (cgraph_check_inline_limits): Check size.
+ (cgraph_default_inline_p): Likewise.
+ (cgraph_edge_badness): Compute badness based on benefit and size cost.
+ (cgraph_decide_recursive_inlining): Check size.
+ (cgraph_decide_inlining_of_small_function): Update size; dump sizes and times.
+ (cgraph_decide_inlining): Likewise.
+ (cgraph_decide_inlining_incrementally): Likewise; honor PARAM_EARLY_INLINING_INSNS.
+ (likely_eliminated_by_inlining_p): New predicate.
+ (estimate_function_body_sizes): New function.
+ (compute_inline_parameters): Use it.
+ * except.c (must_not_throw_labels): New function.
+ * except.h (must_not_throw_labels): Declare.
+ * tree-inline.c (init_inline_once): Kill inlining_weigths
+ * tree-ssa-structalias.c: Avoid uninitialized warning.
+ * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
+ (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
+ (PARAM_INLINE_CALL_COST): Remove.
+ (PARAM_EARLY_INLINING_INSNS): New.
+
+2009-05-15 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
+ not TODO_update_ssa.
+
+2009-05-15 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/39999
+ * gimple.h (gimple_expr_type): Use the expression type looking
+ through useless conversions.
+ * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
+ (vn_nary_op_insert_stmt): Likewise.
+ (simplify_binary_expression): Likewise.
+
+2009-05-15 Richard Guenther <rguenther@suse.de>
+
+ * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
+ New options, enabled by default.
+ * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
+ Document.
+ * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
+ * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
+ * tree-ssa-structalias.c (gate_tree_pta): New function.
+ (pass_build_alias): Use it.
+
+2009-05-15 Joseph Myers <joseph@codesourcery.com>
+
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
+ recurse on an invariant address if a conversion from a pointer
+ type to a wider integer type is involved.
+
2009-05-15 Jan Hubicka <jh@suse.cz>
* cgraph.c (dump_cgraph_node): Dump size/time/benefit.