Do not gather mem stats in run_exit_handles (PR
[gcc.git] / gcc / ChangeLog
index 6d2a4bd255bcb030b20271bf3dbbdd163c900262..0414e0970130dbcc7e913e3485adac758b1a7b62 100644 (file)
@@ -1,3 +1,491 @@
+2016-02-25  Martin Liska  <mliska@suse.cz>
+
+       PR middle-end/69919
+       * alloc-pool.c (after_memory_report): New variable.
+       * alloc-pool.h (base_pool_allocator ::release): Do not use
+       the infrastructure if after_memory_report.
+       * toplev.c (toplev::main): Mark after memory report.
+
+2016-02-25  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/48795
+       * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
+
+2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
+
+       PR driver/68463
+       * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
+       offloading is enabled and -fopenacc or -fopenmp is specified.
+       (CRTOFFLOADEND): Likewise.
+       (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
+       (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
+       * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
+       (offload_objects_file_name): New static var.
+       (tool_cleanup): Remove offload_objects_file_name file.
+       (find_offloadbeginend): Replace with ...
+       (find_crtoffloadtable): ... this.
+       (run_gcc): Remove offload_argc and offload_argv.
+       Get offload_objects_file_name from -foffload-objects=... option.
+       Read names of object files with offload from this file, pass them to
+       compile_images_for_offload_targets.  Don't call find_offloadbeginend and
+       don't pass offloadbegin and offloadend to the linker.  Don't pass
+       offload non-LTO files to the linker, because now they're not claimed.
+
+2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
+
+       PR ipa/69630
+       * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
+       on builtin_unreachable.
+
+2016-02-25  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/69896
+       * regcprop.c: Include cfgrtl.h.
+       (copyprop_hardreg_forward_1): If noop_p insn uses narrower
+       than remembered mode, either delete it (if noop_move_p), or
+       treat like copy_p but not noop_p instruction.
+
+2016-02-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/69705
+       * dwarf2out.c (gen_variable_die): Work around buggy LTO
+       - allow NULL decl for Fortran DW_TAG_common_block variables.
+
+2016-02-24  Jason Merrill  <jason@redhat.com>
+
+       * common.opt (flifetime-dse): Add -flifetime-dse=1.
+
+2016-02-24  Richard Biener  <rguenther@suse.de>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/69760
+       * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
+       conditionally executed ops to well-defined overflow behavior.
+
+2016-02-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/69915
+       * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
+       elements.
+
+2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR rtl-optimization/69886
+       * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
+       argument.  Use it when checking validity of set instructions.
+       (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
+       (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
+       callsite.
+       * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
+       * store-motion.c (find_moveable_store): Update
+       can_assign_to_reg_without_clobbers_p callsite.
+
+2016-02-24  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/68963
+       * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
+       bogus check.
+       (record_nonwrapping_iv): Do not fall back to the low/high bound
+       for non-constant IV bases if the stmt is not always executed.
+
+2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/arm/arm-cores.def (cortex-a32): New entry.
+       * config/arm/arm-tables.opt: Regenerate.
+       * config/arm/arm-tune.md: Regenerate.
+       * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
+       * config/arm/t-aprofile: Handle mcpu=cortex-a32.
+       * doc/invoke.texi (ARM Options): Document cortex-a32 as value
+       for -mcpu and -mtune.
+
+2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR target/69875
+       * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
+       * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
+       * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
+       (atomic_loaddi_1): Delete.
+       (atomic_loaddi): Rewrite expander using the above changes.
+
+2016-02-24  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/69918
+       * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
+       2 to 3.
+
+2016-02-24  Jakub Jelinek  <jakub@redhat.com>
+           Richard Biener  <rguenth@suse.de>
+
+       PR middle-end/69909
+       * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
+       set_mem_attributes if tem is SSA_NAME which got expanded
+       as a MEM.
+
+2016-02-24  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/69907
+       * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
+       end of permutations for BB vectorization.
+
+2016-02-24  Christian Bruel  <christian.bruel@st.com>
+
+       * config/arm/arm-c.c (arm_option_override): Initialize
+       target_option_current_node.
+       * config/arm/arm.c (arm_pragma_target_parse): Replace
+       build_target_option_node call by target_option_current_node.
+       Set target_option_current_node.
+       Fix comments.
+
+2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
+
+       PR target/69810
+       * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
+       define_insn_and_split to define_insn.
+       (zero_extendqi<mode>2_dot2): Same.
+       (extendqi<mode>2_dot): Same.
+       (extendqi<mode>2_dot2): Same.
+
+2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
+
+       * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
+       and add bypass for AES{D,E} and AESMC pairs.
+       * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
+       and AESMC pairs.
+
+2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
+
+        * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
+        series for reciprocal square root in Exynos M1.
+
+2016-02-23  Martin Sebor  <msebor@redhat.com>
+
+       PR c/69759
+       * doc/extend.texi (Other Builtins): Document __builtin_alloca and
+       __builtin_alloca_with_align.
+
+2016-02-23  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
+       (ix86_register_pragmas): Remove __seg_tls.
+       * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
+       * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
+       (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
+       (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
+       (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
+       * doc/extend.texi (__seg_tls): Remove item.
+
+2016-02-23  Richard Biener  <rguenther@suse.de>
+
+       * alloc-pool.h (struct allocation_object): Make id member
+       conditional on CHECKING_P again.
+       (get_instance): Adjust.
+       (base_pool_allocator): Likewise.
+
+2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
+
+       * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
+       (parallelize_loops): In OpenACC kernels mode, set n_threads to
+       zero.
+       (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
+       flag_openacc.
+       * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
+
+2016-02-23  Richard Biener  <rguenther@suse.de>
+
+       * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
+       * bitmap.h (struct bitmap_usage): Likewise.
+       (bitmap_move): Declare.
+       * bitmap.c (register_overhead): Take size_t argument.
+       (bitmap_move): New function.
+       * df-problems.c (df_rd_transfer_function): Use bitmap_move
+       to properly account overhead.
+       * tree.c (free_node): Use tree_size.
+
+2016-02-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/69902
+       * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
+       when inverting comparison.
+
+       PR c/69900
+       * common.opt (Wunreachable-code): Add Warning flag.
+
+2016-02-23  Mark Wielaard  <mjw@redhat.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/69911
+       * cgraphunit.c (check_global_declaration): Check main_input_filename
+       and DECL_SOURCE_FILE are not NULL.
+
+2016-02-23  Martin Jambor  <mjambor@suse.cz>
+
+       PR tree-optimization/69666
+       * tree-sra.c (sra_modify_assign): Do not attempt to create
+       default_def replacements for unscalarizable regions.
+
+2016-02-20  Mark Wielaard  <mjw@redhat.com>
+
+       PR c/28901
+       * cgraphunit.c (check_global_declaration): Check level of
+       warn_unused_const_variable and main_input_filename.
+       * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
+       (-Wunused-variable): For C implies -Wunused-const-variable=1.
+       (-Wunused-const-variable): Explain levels 1 and 2.
+
+2016-02-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/69888
+       * config/i386/i386.c (decide_alg): Ensure we don't recurse with
+       identical arguments.  Formatting and spelling fixes.
+
+       PR target/69885
+       * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
+       be specified.
+
+       PR target/69894
+       PR target/69895
+       * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
+       and m68k-devices.def.
+       * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
+       * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
+
+2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
+
+       * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
+       and HImode registers.
+
+2016-02-22  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/69882
+       * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
+       preserve permutations present because of gaps.
+       (vect_supported_load_permutation_p): Always continue checking
+       permutations after vect_attempt_slp_rearrange_stmts.
+
+2016-02-22  Bin Cheng  <bin.cheng@arm.com>
+
+       * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
+       min_profitable_estimate, rather than min_profitable_iters.
+
+2016-02-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/69885
+       * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
+       SImode for last match_operand.
+
+2016-02-22  Martin Liska  <mliska@suse.cz>
+
+       * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
+       return bitsize - 1 as the return value.
+
+2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
+
+       PR target/69806
+       PR target/54089
+       * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
+       Handle negative shift counts.
+       * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
+       force_reg on the shift constant.
+       (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
+       (lshrsi3_d): Handle negative shift counts.
+
+2016-02-22  Richard Biener  <rguenther@suse.de>
+           Tom de Vries  <tom@codesourcery.com>
+
+       * graph.c: Include dumpfile.h.
+       (print_graph_cfg): Split into three overloads.
+       * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
+
+2016-02-22  Tom de Vries  <tom@codesourcery.com>
+
+       * gdbhooks.py (class DumpFn): Add and instantiate, adding command
+       dump-fn.
+
+2016-02-22  Richard Biener  <rguenther@suse.de>
+
+       PR ipa/37448
+       * ipa-inline-transform.c (inline_call): When not updating
+       overall summaries adjust self size by the growth estimate.
+       * ipa-inline.c (inline_to_all_callers_1): Add to the callers
+       hash-set, do not update overall summaries here.  Renamed from ...
+       (inline_to_all_callers): ... this which is now wrapping the
+       above and performing delayed overall summary update.
+       (early_inline_small_functions): Delay updating of the overall
+       summary.
+
+2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
+
+       * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
+       variable.
+
+2016-02-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR driver/69805
+       * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
+       :%* in %:gt() argument.
+       (greater_than_spec_func): Adjust for expecting only numbers,
+       if there are more than two numbers, compare the last two.
+
+2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
+       -Wnarrowing with -std.
+
+2016-02-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/69851
+       * expr.c (store_field): Don't use bit-field path if exp is
+       COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
+       different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
+       and the assignment can be performed by bitwise copy.  Formatting
+       fix.
+
+       PR middle-end/69838
+       * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
+       call copy_reg_eh_region_note_forward on before and/or after sequences
+       and remove note from insn if it no longer can throw.
+
+       PR target/69820
+       * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
+       if TARGET_AVX512BW.
+
+2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/vector.md: Add missing commutative operand markers
+       to the patterns which qualify for one.
+       * config/s390/vx-builtins.md: Likewise.
+
+2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/vector.md (VI, VI_QHS): Add single element vector
+       types to mode iterators.
+       (vec_double): ... and mode attribute.
+       * config/s390/vx-builtins.md (non_vec_int): Likewise.
+
+2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
+       Change the predicate of op2 from nonimmediate to general and let
+       reload fix it if necessary.
+
+2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
+
+2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390.c (s390_expand_vcond): Use the compare operand
+       mode.
+
+2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
+       * config/s390/s390.c (s390_expand_vec_movstr): New function.
+       * config/s390/s390.md ("movstr<P:mode>"): Call
+       s390_expand_vec_movstr.
+
+2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390.md: Add missing output modifier for operand 1
+       to print it as address properly.
+
+2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
+       * config/s390/2964.md: New file.
+       * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
+       of insn grouping attributes depending on the CPU level.
+       (s390_get_unit_mask): New function.
+       (s390_sched_score): Remove the OOO from the scheduling macros.
+       Add loop to calculate a score for the instruction mix.
+       (s390_sched_reorder): Likewise plus improve debug output.
+       (s390_sched_variable_issue): Rename macros as above.  Calculate
+       the unit distances after actually scheduling an insn.  Improve
+       debug output.
+       (s390_sched_init): Clear last_scheduled_unit_distance array.
+       * config/s390/s390.md: Include 2964.md.
+
+2016-02-18  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/69671
+       * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
+       *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
+       *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
+       *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
+       *avx512f_<code>v8div16qi2_mask_1): New insns.
+
+2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/68404
+       * config/rs6000/predicates.md (fusion_gpr_addis): Revert
+       2016-02-09 change.
+
+       * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
+       earlyclobber from target.  Use wF constraint for fused memory
+       address.
+       (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
+
+2016-02-18  Jakub Jelinek  <jakub@redhat.com>
+           Martin Liska  <mliska@suse.cz>
+
+       PR sanitizer/69863
+       * cfgexpand.c (asan_sanitize_stack_p): New function.
+       (partition_stack_vars): Use the function.
+       (expand_stack_vars): Likewise.
+       (defer_stack_allocation): Likewise.
+       (expand_used_vars): Likewise.
+
+2016-02-18  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/69553
+       * fold-const.c (operand_equal_p): Properly compare offsets for
+       IMAGPART_EXPR and ARRAY_REF.
+
+2016-02-18  Nick Clifton  <nickc@redhat.com>
+
+       PR target/62254
+       PR target/69610
+       * config/arm/arm.c (arm_option_override_internal): Disable
+       interworking if the target does not support thumb instructions.
+       (arm_reload_in_hi): Handle the case where a register to register
+       move needs reloading because there is no simple pattern to handle
+       it.
+       (arm_reload_out_hi): Likewise.
+
+2016-02-18  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/69854
+       * match.pd: Don't use fold_binary or fold_unary for folding
+       constants.
+
+2016-02-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/69850
+       * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
+       on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
+       * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
+       warn on gimple_no_warning_p statements.
+
+2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
+
+       * doc/extend.texi (C++ Attributes): Correct description of
+       warn_unused type attribute.
+
+2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
+
+       * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
+       correct instruction.
+
+2016-02-17  Richard Biener  <rguenther@suse.de>
+
+       PR rtl-optimization/69609
+       * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
+       (find_traces_1_round): When ending a trace update cached priority
+       of successors.
+       (bb_to_key): Use cached priority when available.
+       (copy_bb): Initialize cached priority.
+       (reorder_basic_blocks_software_trace_cache): Likewise.
+
 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        PR target/69161