ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
[gcc.git] / gcc / ChangeLog
index 3e991812c9ba95a217748dee54097ab649bc9e26..9464a9505562257a370a9b13ae7492e15713299b 100644 (file)
@@ -1,3 +1,217 @@
+2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
+
+       * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
+       (dump_inline_summary): Dump it.
+       (fp_expression_p): New predicate.
+       (estimate_function_body_sizes): Use it.
+       (inline_merge_summary): Merge fp_expressions.
+       (inline_read_section): Read fp_expressions.
+       (inline_write_summary): Write fp_expressions.
+       * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
+       codegen boundary if either caller or callee is !fp_expressions.
+       * ipa-inline.h (inline_summary): Add fp_expressions.
+       * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
+       to fp_expressions be sure the fp generation flags are updated.
+
+2016-05-02  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/70467
+       * cse.c (cse_insn): Handle no-op MEM moves after folding.
+
+       PR rtl-optimization/70467
+       * ipa-pure-const.c (check_call): Handle internal calls even in
+       ipa mode like in local mode.
+
+2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+
+       * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
+
+2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
+
+       * match.pd (X u< X, X u> X): New transformations.
+
+2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
+
+       * flag-types.h (enum warn_strict_overflow_code): Move ...
+       * coretypes.h: ... here.
+       * fold-const.h (fold_overflow_warning): Declare.
+       * fold-const.c (fold_overflow_warning): Make non-static.
+       (fold_comparison): Move the transformation of X +- C1 CMP C2
+       into X CMP C2 -+ C1 ...
+       * match.pd: ... here.
+       * gimple-fold.c (fold_stmt_1): Protect with
+       fold_defer_overflow_warnings.
+
+2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * omp-low.c (struct oacc_loop): Add 'inner' field.
+       (new_oacc_loop_raw): Initialize it to zero.
+       (oacc_loop_fixed_partitions): Initialize it.
+       (oacc_loop_auto_partitions): Partition outermost loop to outermost
+       available partitioning.
+
+2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
+
+       * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
+       register_operand.
+       (umulsidi3): Likewise.
+       (indirect_jump): Fix jump instruction assembly patterns.
+
+2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
+
+       PR target/70860
+       * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
+       (nvptx_function_value): Assert non-NULL cfun.
+
+2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR rtl-optimization/70886
+       * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
+
+       * cselib.h (rtx_equal_for_cselib_1): Declare.
+       (rtx_equal_for_cselib_p: New inline function.
+       * cselib.c (rtx_equal_for_cselib_p): Delete.
+       (rtx_equal_for_cselib_1): Make public.
+
+2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
+       (register_mixssei387nonimm_operand): Remove predicate.
+       * config/i386/i386.md (*fop_<mode>_comm): Merge from
+       *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
+       alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
+       for TARGET_MIX_SSE_I387 alternatives.
+       (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
+       Disable unsupported alternatives using "enabled" attribute.  Use
+       nonimm_ssenomem_operand as operand 1 predicate.  Also check
+       X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
+       * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
+       (register_mixssei387nonimm_operand): Remove predicate.
+
+2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree.c (cst_and_fits_in_hwi): Simplify.
+
+2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree.h (wi::to_wide): New function.
+       * expr.c (expand_expr_real_1): Use wi::to_wide.
+       * fold-const.c (int_const_binop_1): Likewise.
+       (extract_muldiv_1): Likewise.
+
+2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * wide-int.h: Update offset_int and widest_int documentation.
+       (WI_SIGNED_SHIFT_RESULT): New macro.
+       (wi::binary_shift): Define signed_shift_result_type for
+       shifts on offset_int- and widest_int-like types.
+       (generic_wide_int): Support <<= and >>= if << and >> are supported.
+       * tree.h (int_bit_position): Use shift operators instead of wi::
+        shifts.
+       * alias.c (adjust_offset_for_component_ref): Likewise.
+       * expr.c (get_inner_reference): Likewise.
+       * fold-const.c (fold_comparison): Likewise.
+       * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
+       * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
+       * tree-dfa.c (get_ref_base_and_extent): Likewise.
+       * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
+       (stmt_kills_ref_p): Likewise.
+       * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
+       * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
+       * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
+       (ao_ref_init_from_vn_reference): Likewise.
+
+2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * wide-int.h: Update offset_int and widest_int documentation.
+       (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
+       (wi::binary_traits): Allow ordered comparisons between offset_int and
+       offset_int, between widest_int and widest_int, and between either
+       of these types and basic C types.
+       (operator <, <=, >, >=): Define for the same combinations.
+       * tree.h (tree_int_cst_lt): Use comparison operators instead
+       of wi:: comparisons.
+       (tree_int_cst_le): Likewise.
+       * gimple-fold.c (fold_array_ctor_reference): Likewise.
+       (fold_nonarray_ctor_reference): Likewise.
+       * gimple-ssa-strength-reduction.c (record_increment): Likewise.
+       * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
+       * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
+       * tree-sra.c (completely_scalarize): Likewise.
+       * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
+       * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
+       * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
+       (check_for_binary_op_overflow): Likewise.
+       (search_for_addr_array): Likewise.
+       * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
+
+2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
+
+       * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
+       (arc_save_restore): Likewise.
+       (arc_dwarf_register_span): Likewise.
+       (arc_output_pic_addr_const): Initialize suffix variable.
+
+2016-05-02  Martin Liska  <mliska@suse.cz>
+
+       * symbol-summary.h (function_summary::function_summary):
+       Remove checking assert for all cgraph nodes.
+       (function_summary::get): Check summary_uid.
+       (symtab_insertion): Check summary_uid.
+
+2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
+
+       * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
+       * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
+       bmaskn instruction.
+       (arc_dwarf_register_span): Remove enum keyword.
+       (compact_memory_operand_p): New function.
+       * config/arc/arc.h (reg_class): Add code density register classes.
+       (REG_CLASS_NAMES): Likewise.
+       (REG_CLASS_CONTENTS): Likewise.
+       * config/arc/arc.md (*movqi_insn): Add code density instructions.
+       (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
+       (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
+       (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
+       * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
+       constraints.
+       (h, Rcd, Rsd, Rzd): New register constraints.
+       (T): Use compact_memory_operand_p function.
+       * config/arc/predicates.md (compact_load_memory_operand): Remove.
+
+2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       * config/sh/sh.md (*negnegt, *movtt): Remove.
+
+2016-05-02  Marek Polacek  <polacek@redhat.com>
+           Tom de Vries  <tom@codesourcery.com>
+
+       PR tree-optimization/70700
+       * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
+       bigger than FIRST_REF_NODE.
+
+2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/52898
+       * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
+       TARGET_CMPEQDI_T.
+       (prepare_cbranch_operands): Don't use scratch register.  Assume that
+       function is used when pseudos can be created.
+       (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
+       * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
+       (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
+       define_expand.  Allow it only when pseudos can be created.
+       * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
+
+2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/constraints.md (BC): Only allow -1 operands.
+       * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
+       Add "enabled" attribute.  Update XI mode attribute calculation.
+       * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
+       (*movoi_internal_avx): Update XI mode attribute calculation.
+       (*movti_internal): Ditto.
+
 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
 
        * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,