+2019-06-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/90819
+ * trans-mem.c (tm_memopt_compute_available): Add assertion
+ that blocks is not empty. Formatting fix.
+
+2019-06-11 Martin Liska <mliska@suse.cz>
+
+ PR c++/87847
+ * hash-table.h: Extend create_gcc, add one parameter
+ that is passed into hash_table::hash_table.
+
+2019-06-10 Uroš Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
+ New prototype.
+ * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
+ Emit clobber also for non-sse operations.
+ (ix86_split_fp_absneg_operator): New function.
+ * config/i386/i386.md (SSEMODEF): New mode iterator.
+ (ssevecmodef): New mode attribute.
+ (<code>tf2): Use absneg code iterator.
+ (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
+ Add three-operand AVX alternatives.
+ (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
+ Use absneg code iterator and X87MODEF mode iterator.
+ (absneg fp_reg non-sse splitter): Call absneg code iterator
+ and X87MODEF mode iterator.
+ (absneg general_reg non-sse splitter): Use absneg code iterator
+ and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator.
+ (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg
+ code iterator. Add three-operand AVX alternative.
+ (absneg sse_reg splitter): Use absneg code iterator
+ and SSEMODEF mode iterator. Handle AVX operands.
+ (absneg fp_reg splitter): Use absneg code iterator
+ and MODEF mode iterator.
+ (absneg general_reg splitter): Merge splitters using MODEF mode
+ iterator. Use absneg code iterator. Call
+ ix86_split_fp_absneg_operator.
+ (*<code><mode>2_i387): Rename from *<code><mode>2_1.
+ Do not enable for non-sse modes before reload.
+ (CSGNMODE): Remove.
+ (CSGNVMODE): Ditto.
+ (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
+ ssevecmodef mode attribute instaed of CSGNVMODE.
+ (copysign<mode>3_const): Ditto.
+ (copysign<mode>3_var): Ditto.
+ * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
+ Use absneg code iterator. Simplify code using std::swap.
+ * config/i386/predicates.md (absneg_operator): Remove.
+
+2019-06-10 Martin Sebor <msebor@redhat.com>
+
+ * gimple-fold.c (get_range_strlen): Update comment that didn't
+ make it into r267503 or related commits.
+
+2019-06-10 Vladislav Ivanishin <vlad@ispras.ru>
+
+ * gcov-tool.c (merge_usage, rewrite_usage): Mark with
+ ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
+
+2019-06-10 Jakub Jelinek <jakub@redhat.com>
+
+ * tree.def (OMP_SCAN): New tree code.
+ * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
+ OMP_CLAUSE_EXCLUSIVE.
+ * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
+ (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
+ * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
+ OMP_CLAUSE_{IN,EX}CLUSIVE.
+ (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
+ * tree-nested.c (convert_nonlocal_reference_stmt,
+ convert_local_reference_stmt, convert_gimple_call): Handle
+ GIMPLE_OMP_SCAN.
+ * tree-pretty-print.c (dump_omp_clause): Handle
+ OMP_CLAUSE_{IN,EX}CLUSIVE.
+ (dump_generic_node): Handle OMP_SCAN.
+ * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
+ * gimple.h (gomp_scan): New type.
+ (is_a_helper <gomp_scan *>::test,
+ is_a_helper <const gomp_scan *>::test): New templates.
+ (gimple_build_omp_scan): Declare.
+ (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
+ gimple_omp_scan_set_clauses): New inline functions.
+ (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
+ * gimple.c (gimple_build_omp_scan): New function.
+ (gimple_copy): Handle GIMPLE_OMP_SCAN.
+ * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
+ * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
+ GIMPLE_OMP_TASKGROUP.
+ (dump_gimple_omp_scan): New function.
+ (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
+ * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
+ * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
+ * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
+ (is_gimple_stmt): Handle OMP_SCAN.
+ (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
+ other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
+ (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
+ mentioned in nested #pragma omp scan. Handle
+ OMP_CLAUSE_{IN,EX}CLUSIVE.
+ (gimplify_expr): Handle OMP_SCAN.
+ * omp-low.c (check_omp_nesting_restrictions): For parent context,
+ look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in
+ simd constructs.
+ (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
+ GIMPLE_OMP_SCAN.
+
+2019-06-10 Martin Liska <mliska@suse.cz>
+
+ * ipa-cp.c (ignore_edge_p): New function.
+ (build_toporder_info): Use it.
+ * ipa-inline.c (ignore_edge_p): New function.
+ (inline_small_functions): Use it.
+ * ipa-pure-const.c (ignore_edge_for_nothrow):
+ Verify opt_for_fn for caller and callee.
+ (ignore_edge_for_pure_const): Likewise.
+ * ipa-reference.c (ignore_edge_p): Extend to check
+ for opt_for_fn.
+ * ipa-utils.c (searchc): Refactor.
+ * ipa-utils.h: Fix coding style.
+
+2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc.c (arc_rtx_costs): Update costs.
+
+2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * config/arc/arc-protos.h (arc_check_ior_const): Declare.
+ (arc_split_ior): Likewise.
+ (arc_check_mov_const): Likewise.
+ (arc_split_mov_const): Likewise.
+ * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
+ (arc_rtx_costs): Replace check Crr with Cax constraint.
+ (prepare_move_operands): Cleanup, remove unused code.
+ (arc_split_ior): New function.
+ (arc_check_ior_const): Likewise.
+ (arc_split_mov_const): Likewise.
+ (arc_check_mov_const): Likewise.
+ * config/arc/arc.md (movsi_insn): Restructure it, and convert it
+ in define_insn_and_split pattern.
+ (iorsi3): Likewise.
+ (mulsi3_v2): Add new matching variant.
+ (andsi3_i): Cleanup pattern.
+ (rotrsi3_cnt1): Update pattern.
+ (rotrsi3_cnt8): New pattern.
+ (ashlsi2_cnt8): Likewise.
+ (ashlsi2_cnt16): Likewise.
+ * config/arc/constraints.md (C0p): Update constraint.
+ (Crr): Remove it.
+ (C0x): New pattern.
+ (Cax): New pattern.
+
+2019-06-10 Martin Liska <mliska@suse.cz>
+
+ * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
+ Update coding style.
+ (sem_item_optimizer::dump_cong_classes):
+ Print how many items are in a non-singular class. Improve
+ coding style.
+
+2019-06-10 Martin Liska <mliska@suse.cz>
+
+ * value-prof.c (dump_histogram_value): Change dump format.
+ (gimple_mod_subtract_transform): Remove legacy comment.
+
+2019-06-10 Martin Liska <mliska@suse.cz>
+
+ * value-prof.c (dump_histogram_value): Print histogram values
+ only if present.
+
+2019-06-10 Martin Liska <mliska@suse.cz>
+
+ * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
+ (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
+ * ipa-profile.c (ipa_profile_generate_summary):
+ Use get_most_common_single_value.
+ * tree-profile.c (gimple_init_gcov_profiler):
+ Instrument with __gcov_one_value_profiler_v2
+ and __gcov_indirect_call_profiler_v4.
+ * value-prof.c (dump_histogram_value):
+ Print all values for HIST_TYPE_SINGLE_VALUE.
+ (stream_out_histogram_value): Update assert for
+ N values.
+ (stream_in_histogram_value): Set number of
+ counters for HIST_TYPE_SINGLE_VALUE.
+ (get_most_common_single_value): New.
+ (gimple_divmod_fixed_value_transform):
+ Use get_most_common_single_value.
+ (gimple_ic_transform): Likewise.
+ (gimple_stringops_transform): Likewise.
+ (gimple_find_values_to_profile): Set number
+ of counters for HIST_TYPE_SINGLE_VALUE.
+ * value-prof.h (get_most_common_single_value):
+ New.
+
+2019-06-10 Martin Liska <mliska@suse.cz>
+
+ * hash-map.h: Pass default value to hash_table ctor.
+ * hash-table.h: Add default value to call of a ctor.
+
+2019-06-08 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/invoke.texi (C Dialect Options): Minor grammatical change.
+ (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
+
+2019-06-07 John David Anglin <danglin@gcc.gnu.orig>
+
+ PR target/90751
+ * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
+ Call pa_output_function_label.
+ (TARGET_ASM_FUNCTION_PROLOGUE): define.
+ * config/pa/pa-protos.h (pa_output_function_label): Declare.
+ * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
+ to declaration.
+ (pa_linux_output_function_prologue): Declare.
+ (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
+ (pa_output_function_label): New.
+ (pa_output_function_prologue): Revise to use pa_output_function_label.
+ (pa_linux_output_function_prologue): New.
+ * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
+
+2019-06-07 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree-vrp.h (value_range_base::intersect): New.
+ (value_range::intersect_helper): Move from here...
+ (value_range_base::intersect_helper): ...to here.
+ * tree-vrp.c (value_range::intersect_helper): Rename to...
+ (value_range_base::intersect_helper): ...this, and rewrite to
+ return a value instead of modifying THIS in place.
+ Also, move equivalence handling...
+ (value_range::intersect): ...here, while calling intersect_helper.
+ * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
+ calling intersect.
+ * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
+ Same.
+ * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
+
+2019-06-07 Jakub Jelinek <jakub@redhat.com>
+
+ * Makefile.in (genprogerr): Add condmd.
+ (genprog): Remove it here.
+
+2019-06-07 Andrew Stubbs <ams@codesourcery.com>
+
+ * doc/invoke.texi (AMD GCN Options): Add gfx906.
+
+2019-06-07 Richard Biener <rguenther@suse.de>
+
+ PR debug/90574
+ * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
+ that appear after user labels.
+
+2019-06-07 Martin Liska <mliska@suse.cz>
+
+ * cselib.c (cselib_init): Disable hash table
+ sanitization.
+ * hash-set.h: Pass new default argument to m_table.
+ * hash-table.c: Add global variable with hash table
+ sanitization limit.
+ * hash-table.h (Allocator>::hash_table): Add new argument
+ to ctor.
+ (hashtab_chk_error): New.
+ * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
+ * toplev.c (process_options): Set hash_table_sanitize_eq_limit
+ from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
+
+2019-06-07 Jan Hubicka <hubicka@ucw.cz>
+
+ * common.opt (flto-odr-type-merging): Ignore.
+ * invoke.texi (-flto-odr-type-merging): Remove.
+ * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
+ (can_be_vtable_hashed_p): Remove.
+ (hash_odr_vtable): Remove.
+ (odr_vtable_hasher::hash): Remove.
+ (types_same_for_odr): Remove.
+ (types_odr_comparable): Remove.
+ (odr_vtable_hasher::equal): Remove.
+ (odr_vtable_hash_type, odr_vtable_hash): Remove.
+ (add_type_duplicate): Do not synchronize vtable and name hashtables.
+ (get_odr_type): Do not use vtable hash.
+ (dump_odr_type): Remove commented out code.
+ (build_type_inheritance_graph): Do not allocate vtable hash.
+ (rebuild_type_inheritance_graph): Do not delete vtable hash.
+ * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
+ (odr_type_p): Likewise.
+ * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
+ test.
+
+2019-06-07 Jan Hubicka <hubicka@ucw.cz>
+
+ * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
+ immediately after same_types_for_tbaa_p returns -1 and continue
+ looking for possible exact match; if matching types are arrays
+ watch for partial overlaps.
+ (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
+ (indirect_refs_may_alias_p): Do type based disambiguation first;
+ update comment.
+
2019-06-07 Richard Sandiford <richard.sandiford@arm.com>
* fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.