2022-05-27 Release Manager * GCC 9.5.0 released. 2022-05-16 Sebastian Pop PR target/105162 * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension of str array. * config/aarch64/aarch64.c (aarch64_atomic_ool_func): Call memmodel_from_int and handle MEMMODEL_SYNC_*. (DEF0): Add __aarch64_*_sync functions. 2022-05-11 Jakub Jelinek Backported from master: 2022-04-27 Jakub Jelinek PR sanitizer/105396 * asan.c (asan_redzone_buffer::emit_redzone_byte): Handle the case where offset is bigger than off but smaller than m_prev_offset + 32 bits by pushing one or more 0 bytes. Sink the m_shadow_bytes.safe_push (value); flush_if_full (); statements from all cases to the end of the function. 2022-05-11 Jakub Jelinek Backported from master: 2022-04-19 Jakub Jelinek PR target/105257 * config/sparc/sparc.c (epilogue_renumber): If ORIGINAL_REGNO, use gen_raw_REG instead of gen_rtx_REG and copy over also ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */. 2022-05-11 Jakub Jelinek Backported from master: 2022-04-12 Jakub Jelinek PR target/105214 * config/i386/i386.c (ix86_emit_i387_log1p): Call do_pending_stack_adjust. 2022-05-11 Jakub Jelinek Backported from master: 2022-04-12 Jakub Jelinek PR rtl-optimization/105211 * builtins.c (expand_builtin_int_roundingfn_2): If mathfn_built_in_1 fails for TREE_TYPE (arg), retry it with TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that fails, emit call normally. 2022-05-11 Jakub Jelinek Backported from master: 2022-04-08 Jakub Jelinek PR tree-optimization/105189 * fold-const.c (make_range_step): Fix up handling of (unsigned) x +[low, -] ranges for signed x if low fits into typeof (x). 2022-05-11 Jakub Jelinek Backported from master: 2022-04-06 Jakub Jelinek PR rtl-optimization/104985 * combine.c (struct undo): Add where.regno member. (do_SUBST_MODE): Rename to ... (subst_mode): ... this. Change first argument from rtx * into int, operate on regno_reg_rtx[regno] and save regno into where.regno. (SUBST_MODE): Remove. (try_combine): Use subst_mode instead of SUBST_MODE, change first argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use regno_reg_rtx[undo->where.regno] instead of *undo->where.r. (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno] instead of *undo->where.r. (simplify_set): Use subst_mode instead of SUBST_MODE, change first argument from regno_reg_rtx[whatever] to whatever. 2022-05-11 Jakub Jelinek Backported from master: 2022-04-03 Jakub Jelinek PR target/105123 * config/i386/i386.c (ix86_expand_vector_init_general): Avoid using word as target for expand_simple_binop when doing ASHIFT and IOR. 2022-05-11 Jakub Jelinek Backported from master: 2022-03-30 Jakub Jelinek PR sanitizer/105093 * ubsan.c (instrument_object_size): If t is equal to inner and is a decl other than global var, punt. When emitting call to UBSAN_OBJECT_SIZE ifn, make sure base is addressable. 2022-05-11 Jakub Jelinek Backported from master: 2022-03-19 Jakub Jelinek PR middle-end/104971 * config/i386/i386.c (ix86_expand_builtin) : If ignore, don't push/pop anything and just return const0_rtx. 2022-05-11 Jakub Jelinek Backported from master: 2022-03-09 Jakub Jelinek PR c/104711 * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value is enabled by it only for C++11 to C++17 rather than for C++03 or later. (-Wshift-negative-value): Similarly (except here we stated that it is enabled for C++11 or later). 2022-05-11 Jakub Jelinek Backported from master: 2022-03-07 Jakub Jelinek PR target/104775 * config/s390/s390.md (*cmp_and_trap_unsigned_int): Use S constraint instead of T in the last alternative. 2022-05-11 Jakub Jelinek Backported from master: 2022-02-25 Jakub Jelinek Marc Glisse PR tree-optimization/104675 * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1): Restrict simplifications to INTEGRAL_TYPE_P. 2022-05-11 Jakub Jelinek Backported from master: 2022-02-25 Jakub Jelinek PR target/104681 * config/rs6000/vector.md (movmisalign): Use rs6000_emit_move. 2022-05-11 Jakub Jelinek Backported from master: 2022-02-25 Jakub Jelinek PR tree-optimization/104675 * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for COMPLEX_TYPE. 2022-05-11 Jakub Jelinek Backported from master: 2022-02-17 Jakub Jelinek PR debug/104557 * valtrack.c (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG if expr has VOIDmode. 2022-05-11 Jakub Jelinek Backported from master: 2022-02-15 Jakub Jelinek PR debug/104517 * omp-low.c (task_cpyfns): New variable. (delete_omp_context): Don't call finalize_task_copyfn from here. (create_task_copyfn): Push task_stmt into task_cpyfns. (execute_lower_omp): Call finalize_task_copyfn here on entries from task_cpyfns vector and release the vector. 2022-05-11 Jakub Jelinek Backported from master: 2022-02-12 Jakub Jelinek PR sanitizer/104449 * asan.c: Include tree-eh.h. (handle_builtin_alloca): Handle the case when __builtin_alloca or __builtin_alloca_with_align can throw. 2022-05-11 Jakub Jelinek Backported from master: 2022-02-12 Jakub Jelinek PR target/104502 * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+ and AVX512VL isn't available, move operands[1] to operands[0] first. 2022-05-11 Jakub Jelinek Backported from master: 2022-02-11 Jakub Jelinek PR middle-end/104446 * combine.c (subst): Don't substitute CONST_INTs into RTX_AUTOINC operands. 2022-05-11 Jakub Jelinek Backported from master: 2022-02-08 Jakub Jelinek PR target/102140 * config/rs6000/rs6000.c (vspltis_shifted): Return false also if split1 pass has finished already. 2022-05-11 Jakub Jelinek Backported from master: 2022-01-21 Jakub Jelinek PR rtl-optimization/102478 * optabs.c (prepare_cmp_insn): If !can_create_pseudo_p (), don't force_reg constants and for -fnon-call-exceptions fail if copy_to_reg would be needed. 2022-05-11 Jakub Jelinek Backported from master: 2022-01-19 Jakub Jelinek PR middle-end/102860 * match.pd (x %[fl] y -> x % y): New simplification for unsigned integral types. * optabs-tree.c (optab_for_tree_code): Return unknown_optab for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE. 2022-05-11 Jakub Jelinek Backported from master: 2022-01-06 Jakub Jelinek PR rtl-optimization/103908 * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with asm goto. 2022-05-11 Jakub Jelinek Backported from master: 2021-12-30 Jakub Jelinek PR rtl-optimization/103860 * shrink-wrap.c (try_shrink_wrapping): Make sure can_get_prologue is called on pro even if nothing further is pushed into vec. 2022-05-11 Jakub Jelinek Backported from master: 2021-12-28 Jakub Jelinek PR rtl-optimization/103837 * loop-invariant.c (can_move_invariant_reg): Ignore DEBUG_INSNs in the decisions whether to return false or continue and right before returning true reset those debug insns that previously caused returning false. 2022-05-11 Jakub Jelinek Backported from master: 2021-11-27 Jakub Jelinek PR tree-optimization/103435 * gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Avoid UB if n->range - rsize == 8, just clear both *cmpnop and *cmpxchg in that case. 2022-05-11 Jakub Jelinek Backported from master: 2021-11-17 Jakub Jelinek PR tree-optimization/103192 * tree-ssa-loop-im.c (move_computations_worker): Use reset_flow_sensitive_info instead of manually clearing SSA_NAME_RANGE_INFO and do it for all SSA_NAMEs, not just ones with integral types. 2022-05-11 Jakub Jelinek Backported from master: 2021-11-15 Jakub Jelinek PR target/103205 * config/i386/sync.md (atomic_bit_test_and_set, atomic_bit_test_and_complement, atomic_bit_test_and_reset): Use OPTAB_WIDEN instead of OPTAB_DIRECT. 2022-05-11 Jakub Jelinek Backported from master: 2021-11-11 Jakub Jelinek PR debug/101378 * dwarf2out.c (field_byte_offset): Do the PCC_BITFIELD_TYPE_MATTERS handling only for DECL_BIT_FIELD_TYPE decls. 2022-05-11 Jakub Jelinek Backported from master: 2021-09-28 Jakub Jelinek PR target/102498 * config/i386/i386.c (standard_80387_constant_p): Don't recognize special 80387 instruction XFmode constants if flag_rounding_math. 2022-05-11 Jakub Jelinek Backported from master: 2021-09-15 Jakub Jelinek PR c++/88578 PR c++/102295 * varasm.c (output_constructor_regular_field): Instead of assertion that array_size_for_constructor result is equal to size of TREE_TYPE (local->val) in bytes, assert that the type size is greater or equal to array_size_for_constructor result and use type size as fieldsize. 2022-05-11 Jakub Jelinek Backported from master: 2021-09-08 Jakub Jelinek PR target/102224 * config/i386/i386.md (xorsign3): If operands[1] is equal to operands[2], emit abs2 instead. (@xorsign3_1): Add early-clobber for output operand. 2022-05-11 Jakub Jelinek Backported from master: 2021-08-23 Jakub Jelinek PR debug/101905 * dwarf2out.c (gen_variable_die): Add DW_AT_location for global register variables already during early_dwarf if possible. 2022-05-11 Jakub Jelinek Backported from master: 2021-07-28 Jakub Jelinek PR middle-end/101624 * ubsan.c (maybe_instrument_pointer_overflow, instrument_object_size): Only test DECL_REGISTER on VAR_DECLs, PARM_DECLs or RESULT_DECLs. * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise. 2022-05-11 Jakub Jelinek Backported from master: 2021-07-23 Jakub Jelinek PR rtl-optimization/101562 * expmed.c (store_integral_bit_field): Only use movstrict_optab if the operand isn't paradoxical. 2022-05-11 Jakub Jelinek Backported from master: 2021-07-21 Jakub Jelinek PR middle-end/101535 * gimplify.c (omp_check_private): Properly skip ORT_TARGET_DATA contexts in which decl isn't privatized and for ORT_TARGET return false if decl is mapped. 2022-05-11 Jakub Jelinek Backported from master: 2021-07-20 Jakub Jelinek PR target/101384 * config/rs6000/rs6000.c (vspltis_constant): Accept EASY_VECTOR_MSB only if step and copies are equal to 1. 2022-05-11 Jakub Jelinek Backported from master: 2021-07-01 Jakub Jelinek PR middle-end/94366 * omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type, use boolean_type_node instead of integer_type_node as NE_EXPR type. (lower_reduction_clauses): Likewise. 2022-05-11 Tobias Burnus Backported from master: 2021-05-04 Tobias Burnus * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle && and || with floating-point and complex arguments. 2022-05-11 Jakub Jelinek Backported from master: 2021-07-14 Jakub Jelinek PR go/101407 * godump.c (godump_str_hash): New type. (godump_container::pot_dummy_types): Use string_hash instead of ptr_hash in the hash_set. 2022-05-11 Jakub Jelinek Backported from master: 2021-07-01 Jakub Jelinek PR debug/101266 * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR. 2022-05-11 Jakub Jelinek Backported from master: 2021-06-29 Jakub Jelinek PR c++/101210 * match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't perform the optimization in GENERIC when sanitizing and x has a reference type. 2022-05-11 Jakub Jelinek Backported from master: 2021-06-23 Jakub Jelinek PR middle-end/101167 * omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set. 2022-05-11 Jakub Jelinek Backported from master: 2021-06-21 Jakub Jelinek PR inline-asm/100785 * cfgexpand.c (expand_asm_stmt): If errors are emitted, remove all inputs, outputs and clobbers from the asm and set template to "". 2022-05-11 Jakub Jelinek Backported from master: 2021-06-18 Jakub Jelinek PR middle-end/101062 * stor-layout.c (finish_bitfield_layout): Don't add bitfield representatives in QUAL_UNION_TYPE. 2022-05-11 Jakub Jelinek Backported from master: 2021-06-16 Jakub Jelinek PR middle-end/101062 * stor-layout.c (finish_bitfield_representative): For fields in unions assume nextf is always NULL. (finish_bitfield_layout): Compute bit field representatives also in unions, but handle it as if each bitfield was the only field in the aggregate. 2022-05-11 Jakub Jelinek Backported from master: 2021-06-15 Jakub Jelinek PR target/101046 * expr.c (expand_expr_real_2) : Clear subtarget when changing mode. 2022-05-11 Jakub Jelinek Backported from master: 2021-06-07 Jakub Jelinek PR middle-end/100898 * tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy should copy any arguments. Don't call gimple_call_num_args on id->call_stmt or call_stmt more than once. 2022-05-11 Jakub Jelinek Backported from master: 2021-06-04 Jakub Jelinek PR target/100887 * config/i386/i386.c (ix86_expand_vector_init): Handle concatenation from half-sized modes with TImode elements. 2022-05-11 Jakub Jelinek Backported from master: 2021-05-12 Jakub Jelinek PR middle-end/100508 * cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector type, don't reuse DECL_RTL if it has different mode, instead force creation of a new DEBUG_EXPR. 2022-05-11 Jakub Jelinek Backported from master: 2021-05-11 Jakub Jelinek PR middle-end/100471 * omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data is 0, bypass the reduction loop including GOMP_taskgroup_reduction_unregister call. 2022-05-10 Eric Botcazou PR target/105292 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Return true only for 8-byte vector modes. 2022-05-06 Richard Biener Backported from master: 2022-04-21 Richard Biener PR tree-optimization/105070 * tree-switch-conversion.h (bit_test_cluster::hoist_edge_and_branch_if_true): Add location argument. * tree-switch-conversion.c (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate cond with location. (bit_test_cluster::emit): Annotate all generated expressions with location. 2022-05-06 Tom de Vries Backported from master: 2021-02-05 Tom de Vries PR debug/98656 * tree-switch-conversion.c (jump_table_cluster::emit): Add loc argument. (bit_test_cluster::emit): Reuse location_t for newly created gswitch statement. (switch_decision_tree::try_switch_expansion): Preserve location_t. * tree-switch-conversion.h: Change function signatures. 2022-05-06 Richard Biener Backported from master: 2022-03-09 Richard Biener PR middle-end/104786 * cfgexpand.c (expand_asm_stmt): Do not generate a copy for VLAs without an upper size bound. 2022-05-06 Richard Biener Backported from master: 2021-11-23 Richard Biener PR tree-optimization/103361 * gimple-loop-jam.c (adjust_unroll_factor): Use lambda_int for the dependence distance. * tree-data-ref.c (print_lambda_vector): Properly print a lambda_int. 2022-05-06 Richard Biener Backported from master: 2022-01-20 Richard Biener PR middle-end/100786 * gimple-fold.c (get_symbol_constant_value): Only return values of compatible type to the symbol. 2022-04-27 Hongyu Wang Backported from master: 2022-04-25 Hongyu Wang PR target/105339 * config/i386/avx512fintrin.h (_mm512_scalef_round_pd): Add parentheses for parameters and djust format. (_mm512_mask_scalef_round_pd): Ditto. (_mm512_maskz_scalef_round_pd): Ditto. (_mm512_scalef_round_ps): Ditto. (_mm512_mask_scalef_round_ps): Ditto. (_mm512_maskz_scalef_round_ps): Ditto. (_mm_scalef_round_sd): Use _mm_undefined_pd. (_mm_scalef_round_ss): Use _mm_undefined_ps. (_mm_mask_scalef_round_sd): New macro. (_mm_mask_scalef_round_ss): Ditto. (_mm_maskz_scalef_round_sd): Ditto. (_mm_maskz_scalef_round_ss): Ditto. 2022-04-06 Alex Coplan PR target/99977 * config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen with negative immediates: ensure we expand cbranchsi4_scratch correctly and ensure we satisfy its constraints. * config/arm/sync.md (@atomic_compare_and_swap_1): Don't attempt to tie two output operands together with constraints; collapse two alternatives. (@atomic_compare_and_swap_1): Likewise. * config/arm/thumb1.md (cbranchsi4_neg_late): New. 2022-03-30 Martin Jambor Backported from master: 2020-10-19 Martin Jambor PR tree-optimization/97456 PR middle-end/105071 * tree-complex.c (set_component_ssa_name): Do not replace ignored decl default definitions with new component vars. Reorder if conditions. 2022-03-16 Richard Biener Backported from master: 2022-02-09 Richard Biener PR target/104453 * config/i386/i386.c (ix86_gimple_fold_builtin): Guard shift folding for NULL LHS. 2022-02-18 Richard Biener Backported from master: 2020-09-14 Richard Biener PR tree-optimization/97043 * tree-vect-slp.c (vect_analyze_slp_instance): Do not elide a load permutation if the current vectorization factor is one. 2022-02-18 Richard Biener Backported from master: 2020-08-27 Richard Biener PR tree-optimization/96522 * tree-ssa-address.c (copy_ref_info): Reset flow-sensitive info of the copied points-to. Transfer bigger alignment via the access type. * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Reset all flow-sensitive info. 2022-02-17 Richard Biener Backported from master: 2021-11-08 Richard Biener PR tree-optimization/102798 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Only copy points-to info to newly generated SSA names. 2022-02-17 Richard Biener Backported from master: 2021-11-22 Richard Biener PR middle-end/103181 PR middle-end/103248 * tree-eh.c (operation_could_trap_helper_p): Properly check vector constants for a zero element for integer division. Separate floating point and integer division code. Properly handle fixed-point RDIV_EXPR. 2022-02-17 Richard Biener Backported from master: 2021-11-15 Richard Biener PR tree-optimization/103237 * tree-vect-loop.c (vect_is_simple_reduction): Fail for double reductions with multiple inner loop LC PHI nodes. 2022-02-10 Uros Bizjak Backported from master: 2022-02-10 Uroš Bizjak PR target/104469 * config/i386/sse.md (vec_unpacks_float_lo_v4si): Change operand 1 constraint to register_operand. 2022-02-09 liuhongt PR target/104451 * config/i386/sse.md (3): lowpart_subreg operands[2] from SImode to QImode. 2022-01-12 Richard Biener Backported from master: 2020-11-26 Richard Biener PR tree-optimization/97953 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::record_ranges_from_incoming_edge): Make sure the condition post-dominates the SSA definition before recording into SSA_NAME_RANGE_INFO. 2022-01-10 Eric Botcazou PR target/103465 * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET. 2022-01-10 Eric Botcazou * doc/invoke.texi (%X): Remove obsolete reference to -Wl. 2021-12-27 Jonathan Wakely PR target/100985 * config/aarch64/arm_acle.h: Remove unclosed extern "C" block. 2021-12-15 Kewen Lin Backported from master: 2021-11-30 Kewen Lin PR target/102347 * config/rs6000/rs6000.c (rs6000_builtin_decl): Remove builtin mask check. 2021-12-01 Martin Jambor PR ipa/103267 * tree-sra.c (scan_function): Also check ECF_LOOPING_CONST_OR_PURE flag. 2021-11-25 Jan Hubicka Backported from master: 2021-11-20 Jan Hubicka PR ipa/103052 * ipa-pure-const.c (propagate_pure_const): Fix merging of loping flag. 2021-11-23 Bill Schmidt PR target/101985 * config/rs6000/altivec.h (vec_cpsgn): Swap operand order. 2021-11-22 Stefan Schulze Frielinghaus Backported from master: 2021-11-19 Stefan Schulze Frielinghaus * config/s390/s390.md (define_peephole2): Variable insn points to the first matched insn. Use peep2_next_insn(1) to refer to the second matched insn. 2021-11-09 Richard Biener Backported from master: 2021-05-19 Richard Biener PR middle-end/100672 * fold-const.c (fold_negate_expr_1): Use element_precision. (negate_expr_p): Likewise. 2021-11-08 Richard Biener Backported from master: 2021-08-17 Richard Biener PR tree-optimization/101373 PR tree-optimization/101868 * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping references when the BB may not return. 2021-11-08 Richard Biener Backported from master: 2021-08-10 Richard Biener PR middle-end/101824 * tree-nested.c (get_frame_field): Mark the COMPONENT_REF as volatile in case the variable was. 2021-11-08 Kewen Lin Backported from master: 2021-10-26 Kewen Lin PR tree-optimization/102789 * tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not update inits of simd_lane_access. 2021-10-26 Piotr Kubaj Backported from master: 2021-10-16 Piotr Kubaj * configure.ac: Treat powerpc64*-*-freebsd* the same as powerpc64-*-freebsd*. * configure: Regenerate. 2021-10-24 John David Anglin * config/pa/pa.md: Don't use 'G' constraint in integer move patterns. 2021-10-21 H.J. Lu Backported from master: 2021-10-21 H.J. Lu PR target/98667 * doc/invoke.texi: Document -fcf-protection requires i686 or new. 2021-10-15 John David Anglin * config/pa/pa.md: Consistently use "rG" constraint for copy instruction in move patterns. 2021-10-14 John David Anglin * config/pa/pa.md (cbranchsf4): Disable if TARGET_SOFT_FLOAT. (cbranchdf4): Likewise. Add missing move patterns for TARGET_SOFT_FLOAT. 2021-10-13 John David Anglin * config/pa/pa.md (muldi3): Add support for inlining 64-bit multiplication on 32-bit PA 1.1 and 2.0 targets. 2021-10-13 Richard Biener Backported from master: 2021-07-07 Richard Biener PR tree-optimization/101173 PR tree-optimization/101280 * gimple-loop-interchange.cc (tree_loop_interchange::valid_data_dependences): Properly guard all dependence checks with DDR_REVERSED_P or its inverse. 2021-10-13 Richard Biener Backported from master: 2021-07-12 Richard Biener PR tree-optimization/101394 * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting copies from abnormals for a full redundancy. 2021-10-13 Richard Biener PR tree-optimization/101105 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Only ignore steps when they are equal or scalar order is preserved. 2021-10-13 Richard Biener Backported from master: 2021-06-14 Richard Biener PR tree-optimization/100934 * tree-ssa-dom.c (pass_dominator::execute): Properly mark irreducible regions. 2021-10-13 Richard Biener Backported from master: 2021-05-11 Richard Biener PR middle-end/100509 * gimple-fold.c (fold_gimple_assign): Only call get_symbol_constant_value on register type symbols. 2021-10-11 Andrew Pinski Backported from master: 2021-10-11 Andrew Pinski PR tree-optimization/102622 * tree-ssa-phiopt.c (conditional_replacement): Set neg to false for one bit signed types. 2021-10-11 Diane Meirowitz Backported from master: 2021-10-11 Diane Meirowitz * doc/invoke.texi: Add link to UndefinedBehaviorSanitizer documentation, mention UBSAN_OPTIONS, similar to what is done for AddressSanitizer. 2021-09-22 Kewen Lin Backported from master: 2021-09-22 Kewen Lin * ipa-fnsummary.c (inline_read_section): Unpack a dummy bit to keep consistent with the side of streaming out. 2021-09-17 Eric Botcazou PR rtl-optimization/102306 * combine.c (try_combine): Abort the combination if we are about to duplicate volatile references. 2021-09-08 Jonathan Wakely Backported from master: 2021-09-08 Jonathan Wakely PR c++/60318 * doc/trouble.texi (Copy Assignment): Fix description of behaviour and fix code in example. 2021-08-31 Thomas Schwinge Backported from master: 2021-08-31 Thomas Schwinge * tree.c (walk_tree_1) : Handle three operands. 2021-08-25 konglin1 PR target/101471 * config/i386/avx512dqintrin.h (_mm512_fpclass_ps_mask): Fix macro define in O0. (_mm512_mask_fpclass_ps_mask): Ditto. 2021-08-23 Richard Earnshaw Backported from master: 2021-08-05 Richard Earnshaw PR target/101723 * config/arm/arm-cpus.in (quirk_no_asmcpu): New feature bit. (ALL_QUIRKS): Add it. (generic-armv7-a): Add quirk to suppress writing .cpu directive in asm output. * config/arm/arm.c (arm_identify_fpu_from_isa): New variable. (arm_last_printed_arch_string): Delete. (arm_last-printed_fpu_string): Delete. (arm_configure_build_target): If use of floating-point/SIMD is disabled, remove all fp/simd related features from the target ISA. (last_arm_targ_options): New variable. (arm_print_asm_arch_directives): Add new parameters. Change order of emitted directives and handle all cases here. (arm_file_start): Always call arm_print_asm_arch_directives, move all generation of .arch/.arch_extension here. (arm_file_end): Call arm_print_asm_arch. (arm_declare_function_name): Call arm_print_asm_arch_directives instead of printing .arch/.fpu directives directly. 2021-08-23 Richard Earnshaw Backported from master: 2021-08-05 Richard Earnshaw * config/arm/arm.c (arm_configure_build_target): Don't call arm_option_reconfigure_globals. (arm_option_restore): Call arm_option_reconfigure_globals after reconfiguring the target. * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. 2021-08-23 Richard Earnshaw Backported from master: 2021-08-05 Richard Earnshaw * config/arm/arm.c (arm_configure_build_target): Ensure the target's arch_name is always set. 2021-08-23 Richard Earnshaw Backported from master: 2019-12-11 Richard Earnshaw * config/arm/arm-cpus.in (ALL_SIMD_EXTERNAL): New fgroup. (ALL_SIMD): Use it. (ALL_FPU_EXTERNAL): New fgroup. (ALL_FP): Use it. (cortex-a55, cortex-a75, cortex-a76): Remove redundant +simd from architecture specification. (neoverse-n1, cortex-a75.cortex-a55): Likewise. * config/arm/arm.c (isa_all_fpubits, fpu_bitlist): Rename to ... (isa_all_fpubits_internal, fpu_bitlist_internal): ... these. (isa_all_fpbits): New bitmap. (arm_option_override): Initialize it. (arm_configure_build_target): If the target isa does not have any FP enabled, do not warn about mismatches in FP-related feature bits. 2021-08-19 Richard Earnshaw Backported from master: 2021-05-27 Richard Earnshaw PR target/100767 * config/arm/arm.c (arm_configure_build_target): Remove parameter opts_set, directly check opts parameters for being non-null. (arm_option_restore): Update call to arm_configure_build_target. (arm_option_override): Likewise. (arm_can_inline_p): Likewise. (arm_valid_target_attribute_tree): Likewise. * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. * config/arm/arm-protos.h (arm_configure_build_target): Adjust prototype. 2021-08-17 Richard Sandiford Backported from master: 2021-08-03 Richard Sandiford * doc/invoke.texi: Document -mtune=neoverse-512tvb and -mcpu=neoverse-512tvb. * config/aarch64/aarch64-cores.def (neoverse-512tvb): New entry. * config/aarch64/aarch64-tune.md: Regenerate. 2021-07-31 Xi Ruoyao Backported from master: 2021-07-30 Xi Ruoyao PR target/94780 * config/mips/mips.c (mips_atomic_assign_expand_fenv): Use TARGET_EXPR instead of MODIFY_EXPR. 2021-07-20 Uroš Bizjak PR target/100182 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu): Remove. (define_peephole2 atomic_loaddi_fpu): Ditto. 2021-07-19 Bill Schmidt PR target/101129 * config/rs6000/rs6000-p8swap.c (has_part_mult): New. (rs6000_analyze_swaps): Insns containing a subreg of a mult are not swappable. 2021-07-19 Segher Boessenkool Backported from master: 2021-04-18 Segher Boessenkool PR rtl-optimization/99927 * combine.c (distribute_notes) [REG_UNUSED]: If the register already is dead, just drop it. 2021-06-24 Uros Bizjak Backported from master: 2021-06-23 Uroš Bizjak PR target/101175 * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX. (bsr): Ditto. (*bsrhi): Remove. (clz2): Update RTX pattern for additions. 2021-06-17 Marius Hillenbrand Backported from master: 2021-06-17 Marius Hillenbrand PR target/100871 * config/s390/vecintrin.h (vec_doublee): Fix to use __builtin_s390_vflls. (vec_floate): Fix to use __builtin_s390_vflrd. 2021-06-01 Release Manager * GCC 9.4.0 released. 2021-05-18 Richard Biener Backported from master: 2021-01-28 Richard Biener PR rtl-optimization/80960 * dse.c (check_mem_read_rtx): Call get_addr on the offsetted address. 2021-05-18 Richard Biener PR tree-optimization/96513 * tree-vect-slp.c (struct vdhs_data): New. (vect_detect_hybrid_slp): New walker. (vect_detect_hybrid_slp): Rewrite. 2021-05-18 Martin Liska PR tree-optimization/96597 * tree-ssa-sccvn.c (vn_reference_lookup_call): Add missing initialization of ::punned. (vn_reference_insert): Use consistently false instead of 0. (vn_reference_insert_pieces): Likewise. 2021-05-18 Richard Biener PR tree-optimization/88240 * tree-ssa-sccvn.h (vn_reference_s::punned): New flag. * tree-ssa-sccvn.c (vn_reference_insert): Initialize punned. (vn_reference_insert_pieces): Likewise. (visit_reference_op_call): Likewise. (visit_reference_op_load): Track whether a ref was punned. * tree-ssa-pre.c (do_hoist_insertion): Refuse to perform hoist insertion on punned floating point loads. 2021-05-17 Richard Biener Backported from master: 2021-05-12 Richard Biener PR tree-optimization/100566 * tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle allow_back for all edge queries. 2021-05-12 Alex Coplan Backported from master: 2021-05-11 Alex Coplan PR target/99988 * config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New. (rest_of_insert_bti): Avoid inserting duplicate bti j insns for jump table targets. 2021-05-11 Geng Qi Backported from master: 2021-04-30 Geng Qi * config/riscv/riscv.opt (march=,mabi=): Negative itself. 2021-05-07 Kyrylo Tkachov PR target/99037 PR target/100441 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_): Use aarch64_simd_or_scalar_imm_zero to match zeroes. Remove pattern matching const_int 0. (move_lo_quad_internal_be_): Likewise. (move_lo_quad_): Update for the above. * config/aarch64/iterators.md (VQ_2E): Delete. 2021-05-06 Roman Zhuykov Backported from master: 2021-04-30 Roman Zhuykov PR rtl-optimization/100225 PR rtl-optimization/84878 * modulo-sched.c (sms_schedule): Use note_stores to skip loops where we have an instruction which touches (writes) any hard register from df->regular_block_artificial_uses set. Allow not-single-set instruction only right before basic block tail. 2021-05-05 Eric Botcazou PR target/100402 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target, always return the establisher frame for __builtin_frame_address (0). 2021-05-05 Stefan Schulze Frielinghaus Backported from master: 2021-05-05 Stefan Schulze Frielinghaus PR rtl-optimization/100263 * postreload.c (move2add_valid_value_p): Ensure register can change mode. 2021-05-05 Richard Biener Backported from master: 2021-05-05 Richard Biener PR tree-optimization/98786 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid adding new uses of abnormals. 2021-05-04 Alex Coplan Backported from master: 2021-04-23 Alex Coplan PR rtl-optimization/100230 * early-remat.c (early_remat::sort_candidates): Use delete[] instead of delete for array allocated with new[]. 2021-05-04 Richard Biener Backported from master: 2021-04-13 Richard Biener PR tree-optimization/100053 * tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do not use optimistic dominance queries for backedges to validate predicated values. (dominated_by_p_w_unex): Add parameter to ignore executable state on backedges. (rpo_elim::eliminate_avail): Adjust. 2021-05-04 Richard Biener Backported from master: 2021-01-29 Richard Biener PR rtl-optimization/98144 * df.h (df_mir_bb_info): Add con_visited member. * df-problems.c (df_mir_alloc): Initialize con_visited, do not fully populate IN and OUT. (df_mir_reset): Likewise. (df_mir_confluence_0): Set con_visited. (df_mir_confluence_n): Properly handle implicitely fully populated IN and OUT as designated by con_visited and update con_visited accordingly. 2021-05-04 Jakub Jelinek Backported from master: 2021-05-02 Jakub Jelinek PR target/100375 * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use NULL instead of 0 as first argument of pseudo_node_t constructors. 2021-05-04 Jakub Jelinek Backported from master: 2021-04-29 Jakub Jelinek PR target/100302 * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use absu_hwi instead of abs_hwi. 2021-05-04 Jakub Jelinek Backported from master: 2021-04-27 Jakub Jelinek PR rtl-optimization/100254 * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns. 2021-05-04 Jakub Jelinek Backported from master: 2021-04-26 Jakub Jelinek PR debug/100255 * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block, vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove register keywords. 2021-05-04 Jakub Jelinek Backported from master: 2021-04-21 Jakub Jelinek PR rtl-optimization/100148 * cprop.c (constprop_register): Use next_nondebug_insn instead of NEXT_INSN. 2021-05-04 Martin Sebor PR tree-optimization/91914 * expr.c (string_constant): Pass argument type to fold_ctor_reference to guide it. 2021-05-01 Iain Sandoe Jakub Jelinek PR target/97865 * configure: Regenerate. 2021-05-01 Iain Sandoe Backported from master: 2020-12-23 Iain Sandoe * config/darwin-driver.c (validate_macosx_version_min): Allow MACOSX_DEPLOYMENT_TARGET=11. (darwin_default_min_version): Adjust warning spelling to avoid an apostrophe. 2021-05-01 Iain Sandoe Backported from master: 2020-12-21 Iain Sandoe * config/darwin-driver.c (darwin_find_version_from_kernel): Compute the minor OS version from the minor kernel version. 2021-05-01 Iain Sandoe Backported from master: 2020-11-06 Iain Sandoe * config/darwin-c.c: Allow for Darwin20 to correspond to macOS 11. * config/darwin-driver.c: Likewise. 2021-05-01 Iain Sandoe Backported from master: 2020-11-01 Iain Sandoe * config/host-darwin.c: Align pch_address_space to 16384. 2021-05-01 Iain Sandoe Backported from master: 2021-03-01 Iain Sandoe PR target/44107 PR target/48097 * config/darwin-protos.h (darwin_should_restore_cfa_state): New. * config/darwin.c (darwin_should_restore_cfa_state): New. * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New. * doc/tm.texi: Regenerated. * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE. * dwarf2cfi.c (connect_traces): If the target requests, restore the CFA expression after a DW_CFA_restore. * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook. 2021-05-01 Iain Sandoe Backported from master: 2021-04-03 Iain Sandoe * config/darwin.c (machopic_legitimize_pic_address): Check that the current pic register is one of the hard reg set before setting liveness. 2021-05-01 Iain Sandoe Backported from master: 2020-11-22 Iain Sandoe * config/darwin-c.c (struct f_align_stack): Rename to type from align_stack to f_align_stack. (push_field_alignment): Likewise. (pop_field_alignment): Likewise. 2021-05-01 Iain Sandoe Backported from master: 2020-09-07 Iain Sandoe * config/darwin.c (darwin_libc_has_function): Report sincos available from 10.9. 2021-05-01 Iain Sandoe * config/darwin.c: Lookup Objective C metadata and force indirection for IVAR refs. 2021-05-01 Iain Sandoe * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make ubsan_{data,type},ASAN symbols linker-visible. 2021-04-30 Prathamesh Kulkarni Backported from master: 2019-11-21 Prathamesh Kulkarni PR tree-optimization/92608 * tree-ssa-loop-unswitch.c (find_loop_guard): Use safe_dyn_cast instead of dyn_cast. 2021-04-30 James Clarke PR bootstrap/87338 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL. 2021-04-28 Uros Bizjak Backported from master: 2021-04-23 Uroš Bizjak PR target/100182 * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2): Copy operand 3 to operand 4. Use sse_reg_operand as operand 3 predicate. (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto. (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto. (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto. (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Copy operand 1 to operand 0. (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto. (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto. (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto. 2021-04-28 Richard Biener PR tree-optimization/99954 * tree-loop-distribution.c: Include tree-affine.h. (generate_memcpy_builtin): Try using tree-affine to prove non-overlap. (loop_distribution::classify_builtin_ldst): Always classify as PKIND_MEMMOVE. 2021-04-25 Richard Sandiford Backported from master: 2021-04-14 Richard Sandiford PR rtl-optimization/99929 * rtl.h (same_vector_encodings_p): New function. * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding. * cselib.c (rtx_equal_for_cselib_1): Likewise. * jump.c (rtx_renumbered_equal_p): Likewise. * lra-constraints.c (operands_match_p): Likewise. * reload.c (operands_match_p): Likewise. * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise. 2021-04-25 Richard Sandiford Backported from master: 2021-03-30 Richard Sandiford PR target/98136 * config/aarch64/aarch64.md (mov): Pass multi-instruction CONST_INTs to aarch64_expand_mov_immediate when called after RA. 2021-04-25 Richard Sandiford PR rtl-optimization/96796 * lra-constraints.c (in_class_p): Add a default-false allow_all_reload_class_changes_p parameter. Do not treat reload moves specially when the parameter is true. (get_reload_reg): Try to narrow the class of an existing OP_OUT reload if we're reloading a reload pseudo in a reload instruction. 2021-04-25 Richard Sandiford Backported from master: 2020-12-31 Richard Sandiford PR tree-optimization/98302 * tree-vect-patterns.c (vect_determine_precisions_from_users): Make sure that the precision remains greater than the shift count. 2021-04-25 Richard Sandiford Backported from master: 2020-07-08 Richard Sandiford PR middle-end/95694 * expr.c (expand_expr_real_2): Get the mode from the type rather than the rtx, and assert that it is consistent with the mode of the rtx (where known). Optimize all constant integers, not just those that can be represented in poly_int64. 2021-04-20 Jakub Jelinek Backported from master: 2021-04-20 Jakub Jelinek PR target/99767 * tree-vect-loop.c (vect_transform_loop): Don't remove just dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace them by their last argument. 2021-04-20 Jakub Jelinek Backported from master: 2021-04-20 Jakub Jelinek PR rtl-optimization/99905 * combine.c (expand_compound_operation): If pos + len > modewidth, perform the right shift by pos in inner_mode and then convert to mode, instead of trying to simplify a shift of rtx with inner_mode by pos as if it was a shift in mode. 2021-04-20 Jakub Jelinek Backported from master: 2021-04-20 Jakub Jelinek PR debug/99830 * combine.c (simplify_and_const_int_1): Don't optimize varop away if it has side-effects. 2021-04-20 Jakub Jelinek Backported from master: 2021-04-20 Jakub Jelinek PR lto/99849 * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs. 2021-04-20 Jakub Jelinek Backported from master: 2021-04-20 Jakub Jelinek PR rtl-optimization/98601 * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size not just for BLKmode, but also for VOIDmode. For STRICT_ALIGNMENT unaligned_mems handle VOIDmode like BLKmode. 2021-04-20 Jakub Jelinek Backported from master: 2021-04-20 Jakub Jelinek PR rtl-optimization/99863 * dse.c (replace_read): Drop regs_live argument. Instead of regs_live, use store_insn->fixed_regs_live if non-NULL, otherwise punt if insns sequence clobbers or sets any hard registers. 2021-04-20 Jakub Jelinek Backported from master: 2021-03-30 Jakub Jelinek PR tree-optimization/99777 * fold-const.c (extract_muldiv_1): For conversions, punt on casts from types other than scalar integral types. 2021-04-20 Jakub Jelinek Backported from master: 2021-03-30 Jakub Jelinek PR debug/99334 * dwarf2out.h (struct dw_fde_node): Add rule18 member. * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp) assignment with drap_reg active, queue reg save for hfp with offset 0 and flush queued reg saves. When handling a push with rule18, defer queueing reg save for hfp and just assert the offset is 0. (scan_trace): Assert that fde->rule18 is false. 2021-04-20 Jakub Jelinek Backported from master: 2021-03-30 Jakub Jelinek PR debug/99388 * dwarf2out.c (insert_float): Change return type from void to unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size. (mem_loc_descriptor, loc_descriptor, add_const_value_attribute): Adjust callers. 2021-04-20 Jakub Jelinek Backported from master: 2021-03-19 Jakub Jelinek PR target/99542 * config/aarch64/aarch64.c (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function definition, walk TYPE_ARG_TYPES list if non-NULL for argument types instead of DECL_ARGUMENTS. Ignore types for uniform arguments. 2021-04-20 Jakub Jelinek Backported from master: 2021-03-19 Jakub Jelinek PR middle-end/93235 * expmed.c (store_bit_field_using_insv): Return false of xop0 is a SUBREG and a SUBREG to op_mode can't be created. 2021-04-20 Jakub Jelinek Backported from master: 2021-03-19 Jakub Jelinek PR tree-optimization/99225 * fold-const.c (fold_binary_loc) : In (x & (1 << y)) != 0 to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of build_int_cst (..., 1). Formatting fixes. 2021-04-20 Jakub Jelinek Backported from master: 2021-03-19 Jakub Jelinek PR tree-optimization/99204 * fold-const.c (fold_read_from_constant_string): Check that tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST. 2021-04-20 Jakub Jelinek Backported from master: 2021-03-19 Jakub Jelinek PR ipa/99034 * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing pad or non-local label, put FORCED_LABELs from bb b after that label rather than before it. 2021-04-20 Jakub Jelinek Backported from master: 2021-03-19 Jakub Jelinek PR tree-optimization/99079 * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check. Instead require both type and TREE_TYPE (@1) to be integral types and either type having smaller or equal precision, or TREE_TYPE (@1) being unsigned type, or type being signed type. If TREE_TYPE (@1) doesn't have wrapping overflow, perform the subtraction of one in unsigned type. 2021-04-20 Jakub Jelinek Backported from master: 2021-03-19 Jakub Jelinek PR c++/99035 * varasm.c (declare_weak): For -fsyntax-only, allow even TREE_ASM_WRITTEN function decls. 2021-04-20 Jakub Jelinek Backported from master: 2021-03-19 Jakub Jelinek PR middle-end/99007 * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions, temporarily disable gimplify_ctxp->into_ssa around gimplify_expr calls. 2021-04-20 Jakub Jelinek Backported from master: 2021-03-19 Jakub Jelinek PR middle-end/97487 * ifcvt.c (noce_can_force_operand): New function. (noce_emit_move_insn): Use it. (noce_try_sign_mask): Likewise. Formatting fix. 2021-04-20 Jakub Jelinek Backported from master: 2021-03-19 Jakub Jelinek PR middle-end/97971 * lra-constraints.c (process_alt_operands): For inline asm, don't call fatal_insn, but instead return false. 2021-04-20 Jakub Jelinek Backported from master: 2021-01-29 Jakub Jelinek PR debug/98331 * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing a BARRIER. 2021-04-20 Jakub Jelinek Backported from master: 2021-01-29 Jakub Jelinek PR target/98853 * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use %w0, %w1 and %2 instead of %0, %1 and %2. 2021-04-20 Jakub Jelinek Backported from master: 2021-01-29 Jakub Jelinek PR target/98681 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p): Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt) and INTVAL (mask). Add && INTVAL (mask) > 0 condition. 2021-04-20 Jakub Jelinek Backported from master: 2021-01-29 Jakub Jelinek PR testsuite/97301 * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute. 2021-04-20 Jakub Jelinek Backported from master: 2021-01-29 Jakub Jelinek PR tree-optimization/90248 * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X), X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove simplifications. (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X), X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications. 2021-04-20 Jakub Jelinek Backported from master: 2021-01-09 Jakub Jelinek PR c++/98556 * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of POINTER_DIFF_EXPR to be any integral type. 2021-04-20 Jakub Jelinek Backported from master: 2021-01-06 Jakub Jelinek PR tree-optimization/98474 * wide-int.cc (wi::to_mpz): If wide_int has MSB set, but type is unsigned and excess negative, append set bits after len until precision. 2021-04-20 Jakub Jelinek Backported from master: 2021-01-06 Jakub Jelinek PR c++/98353 * gimplify.c (gimplify_init_ctor_eval_range): Gimplify value before storing it into cref. 2021-04-20 Jakub Jelinek Backported from master: 2021-01-06 Jakub Jelinek * gimplify.c (struct gimplify_omp_ctx): Add has_depend member. (gimplify_scan_omp_clauses): Set it to true if OMP_CLAUSE_DEPEND appears on OMP_TASK. (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Force GOVD_WRITTEN on shared variables if task construct has depend clause. 2021-04-20 Jakub Jelinek Backported from master: 2021-01-06 Jakub Jelinek PR middle-end/98183 * omp-low.c (lower_omp_target): Don't add OMP_RETURN for data regions. * omp-expand.c (expand_omp_target): Don't try to remove OMP_RETURN for data regions. (build_omp_regions_1, omp_make_gimple_edges): Don't expect OMP_RETURN for data regions. 2021-04-20 Jakub Jelinek Backported from master: 2021-01-06 Jakub Jelinek PR middle-end/98205 * omp-expand.c (expand_omp_for_generic): Fix up broken_loop handling. 2021-04-20 Jakub Jelinek Backported from master: 2021-01-06 Jakub Jelinek PR target/98100 * cfgexpand.c (expand_gimple_basic_block): For vars with vector type, use TYPE_MODE rather than DECL_MODE. 2021-04-20 Jakub Jelinek Backported from master: 2021-01-06 Jakub Jelinek * dwarf2out.c (add_scalar_info): Only use add_AT_wide for 128-bit constants and only in dwarf-5 or later, where DW_FORM_data16 is available. Otherwise use DW_FORM_block*/DW_FORM_exprloc with DW_OP_implicit_value to describe the constant. 2021-04-20 Jakub Jelinek Backported from master: 2021-01-06 Jakub Jelinek PR target/98063 * config/i386/i386.c (ix86_expand_call): Handle non-plt CM_LARGE_PIC calls. 2021-04-20 Jakub Jelinek Backported from master: 2020-11-25 Jakub Jelinek PR debug/97599 * dwarf2out.c (gen_subprogram_die): Call gen_unspecified_parameters_die even if not early dwarf, but only if subr_die is a newly created DIE. 2021-04-20 Jakub Jelinek Backported from master: 2020-11-02 Jakub Jelinek * wide-int.cc (wi::set_bit_large): Call canonize unless setting msb bit and clearing bits above it. 2021-04-20 Jakub Jelinek Backported from master: 2020-10-16 Jakub Jelinek PR rtl-optimization/97386 * combine.c (simplify_shift_const_1): Don't optimize nested ROTATEs if they have different modes. 2021-04-20 Jakub Jelinek Backported from master: 2020-10-16 Jakub Jelinek PR sanitizer/97294 * tree-cfg.c (move_block_to_fn): Call notice_special_calls on call stmts being moved into dest_cfun. * omp-low.c (lower_rec_input_clauses): Set cfun->calls_alloca when adding __builtin_alloca_with_align call without gimplification. 2021-04-19 Eric Botcazou * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with frames larger than the SEH maximum frame size. 2021-04-15 Lili Cui * common/config/i386/i386-common.c (processor_names): Add tigerlake. (processor_alias_table): Ditto. * config.gcc (x86_64_archs): Ditto. * config/i386/driver-i386.c (host_detect_local_cpu): Detect tigerlake, add "has_avx" to classify processor. * config/i386/i386-c.c (ix86_target_macros_internal): Handle PROCESSOR_TIGERLAKE. * config/i386/i386.c (m_TIGERLAKE): Define. (m_CORE_AVX512): Add m_TIGERLAKE. (processor_cost_table): Add skylake_cost for tigerlake. (processor_model): Add M_INTEL_COREI7_TIGERLAKE. (arch_names_table): Add tigerlake. (get_builtin_code_for_version): Handle PROCESSOR_TIGERLAKE. * config/i386/i386.h (TARGET_TIGERLAKE): Define. (enum processor_type): Add PROCESSOR_TIGERLAKE. (PTA_TIGERLAKE): Define. * doc/extend.texi (__builtin_cpu_is): Add tigerlake. * doc/invoke.texi (-march=cpu-type): Ditto. 2021-04-12 Prathamesh Kulkarni Backported from master: 2020-02-24 Prathamesh Kulkarni Kugan Vivekandarajah PR driver/47785 * gcc.c (putenv_COLLECT_AS_OPTIONS): New function. (driver::main): Call putenv_COLLECT_AS_OPTIONS. * opts-common.c (parse_options_from_collect_gcc_options): New function. (prepend_xassembler_to_collect_as_options): Likewise. * opts.h (parse_options_from_collect_gcc_options): Declare prototype. (prepend_xassembler_to_collect_as_options): Likewise. * lto-opts.c (lto_write_options): Stream assembler options in COLLECT_AS_OPTIONS. * lto-wrapper.c (xassembler_options_error): New static variable. (get_options_from_collect_gcc_options): Move parsing options code to parse_options_from_collect_gcc_options and call it. (merge_and_complain): Validate -Xassembler options. (append_compiler_options): Handle OPT_Xassembler. (run_gcc): Append command line -Xassembler options to collect_gcc_options. * doc/invoke.texi: Add documentation about using Xassembler options with LTO. 2021-04-12 Richard Biener Backported from master: 2021-03-22 Richard Biener PR tree-optimization/99694 * tree-ssa-sccvn.c (visit_phi): Ignore edges with the PHI result. 2021-04-12 Richard Biener Backported from master: 2021-02-24 Richard Biener PR c/99224 * builtins.c (fold_builtin_next_arg): Avoid NULL arg. 2021-04-12 Richard Biener Backported from master: 2021-02-08 Richard Biener PR lto/96591 * tree.c (walk_tree_1): Walk VECTOR_CST elements. 2021-04-08 Martin Jambor Backported from master: 2021-04-01 Martin Jambor PR tree-optimization/97009 * tree-sra.c (access_or_its_child_written): New function. (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write test. 2021-04-01 Richard Biener Backported from master: 2021-04-01 Richard Biener PR tree-optimization/99856 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote precision to vector element precision. 2021-03-26 Iain Buclaw Backported from master: 2021-03-26 Iain Buclaw PR ipa/99466 * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak TLS declarations as public. 2021-03-25 Xionghu Luo Backported from master: 2021-03-25 Xionghu Luo PR target/97329 * config/rs6000/rs6000.c (power8_costs): Change l2 cache from 256 to 512. 2021-03-23 H.J. Lu Backported from master: 2021-03-23 H.J. Lu PR target/99704 * config/i386/cpuid.h (__cpuid): Add __volatile__. (__cpuid_count): Likewise. 2021-03-22 Kito Cheng Backported from master: 2021-03-22 Kito Cheng PR target/99702 * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value after type checking. 2021-03-18 Sinan Lin Backported from master: 2021-03-18 Sinan Lin Kito Cheng * config/riscv/riscv.c (riscv_block_move_straight): Change type to unsigned HOST_WIDE_INT for parameter and local variable with HOST_WIDE_INT type. (riscv_adjust_block_mem): Ditto. (riscv_block_move_loop): Ditto. (riscv_expand_block_move): Ditto. 2021-03-17 Kyrylo Tkachov Backported from master: 2021-03-17 Kyrylo Tkachov * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ to compare against CC_REG rather than NE. 2021-03-17 Martin Jambor Backported from master: 2021-03-05 Martin Jambor PR ipa/98078 * cgraph.c (cgraph_edge::set_call_stmt): Do not update all corresponding speculative edges if we are about to resolve speculation. Make edge direct (and so resolve speculations) before removing it from call_site_hash. (cgraph_edge::make_direct): Relax the initial assert to allow calling the function on speculative direct edges. 2021-03-17 Richard Biener Backported from master: 2021-03-03 Richard Biener PR tree-optimization/98758 * tree-data-ref.c (int_divides_p): Use lambda_int arguments. (lambda_matrix_right_hermite): Avoid undefinedness with signed integer abs and multiplication. (analyze_subscript_affine_affine): Use lambda_int. 2021-03-17 Richard Biener Backported from master: 2021-01-12 Richard Biener PR tree-optimization/98282 * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on invariants as VN_NARY. 2021-03-17 Richard Biener Backported from master: 2021-01-11 Richard Biener PR tree-optimization/98117 * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Properly handle degenerate niter when setting the vector loop IV range. 2021-03-17 Richard Biener Backported from master: 2020-03-04 Richard Biener PR tree-optimization/93964 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id): Add intermediate conversion for pointer to integer converts. * graphite-scop-detection.c (assign_parameter_index_in_region): Relax assert. 2021-03-07 John David Anglin PR target/85074 * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as hook_bool_const_tree_hwi_hwi_const_tree_true. (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset. 2021-03-03 Eric Botcazou PR target/99234 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target, point back the hard frame pointer to its default location when the frame is larger than SEH_MAX_FRAME_SIZE. 2021-03-01 Eric Botcazou PR target/99234 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target, point the hard frame pointer to the SSE register save area instead of the general register save area. Perform only minimal adjustment for small frames if it is initially not correctly aligned. (ix86_expand_prologue): Remove early saves for a SEH target. * config/i386/winnt.c (struct seh_frame_state): Document constraint. 2021-02-23 Qian Jianhua Backported from master: 2021-02-23 Qian Jianhua * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New. * config/aarch64/aarch64.c (a64fx_addrcost_table): New. (a64fx_regmove_cost, a64fx_vector_cost): New. (a64fx_tunings): Use the new added cost tables. 2021-02-15 Eric Botcazou * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast. 2021-02-11 Eric Botcazou * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to the cold section, emit a nop before the directive if the previous active instruction can throw. 2021-02-05 Matthias Klose Backported from master: 2020-10-06 Richard Biener PR tree-optimization/97236 * tree-vect-stmts.c (get_group_load_store_type): Keep VMAT_ELEMENTWISE for single-element vectors. 2021-02-03 Jakub Jelinek Backported from master: 2020-11-20 Jakub Jelinek PR target/97528 * config/arm/arm.c (neon_vector_mem_operand): For POST_MODIFY, require first POST_MODIFY operand is a REG and is equal to the first operand of PLUS. 2021-01-29 Richard Biener Backported from master: 2021-01-29 Bin Cheng Richard Biener PR tree-optimization/97627 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): Do not analyze fake edges. 2021-01-21 Wilco Dijkstra Backported from master: 2019-10-16 Wilco Dijkstra PR target/98618 * config/aarch64/aarch64.c (aarch64_classify_symbol): Apply reasonable limit to symbol offsets. 2021-01-13 Samuel Thibault Backported from master: 2021-01-13 Samuel Thibault * config.gcc [$target == *-*-gnu*]: Enable 'default_gnu_indirect_function'. 2021-01-06 2019-07-10 Marc Glisse PR testsuite/90806 Backport from mainline * wide-int.h (wi::lshift): Reject negative values for the fast path. 2020-12-28 Uroš Bizjak PR target/96793 * config/i386/i386.c (ix86_expand_rint): Remove the sign of the intermediate value for flag_rounding_math. 2020-12-28 Piotr Kubaj Backported from master: 2020-12-16 Piotr Kubaj * config.gcc (powerpc*le-*-freebsd*): Add. * configure.ac (powerpc*le-*-freebsd*): Ditto. * configure: Regenerate. * config/rs6000/freebsd64.h (ASM_SPEC_COMMON): Use ENDIAN_SELECT. (DEFAULT_ASM_ENDIAN): Add little endian support. (LINK_OS_FREEBSD_SPEC64): Ditto. 2020-12-27 Uroš Bizjak PR target/96793 * config/i386/i386.c (ix86_expand_truncdf_32): Remove the sign of the intermediate value for flag_rounding_math. 2020-12-24 Roman Zhuykov Backported from master: 2020-12-05 Roman Zhuykov PR rtl-optimization/97421 * modulo-sched.c (generate_prolog_epilog): Remove forward declaration, adjust last argument name and type. (const_iteration_count): Add bool pointer parameter to return whether count register is read in pre-header after its initialization. (sms_schedule): Fix count register initialization adjustment procedure according to what const_iteration_count said. 2020-12-23 Uroš Bizjak PR target/96793 * config/i386/i386.c (ix86_expand_floorceil): Remove the sign of the intermediate value for flag_rounding_math. (ix86_expand_floorceildf_32): Ditto. 2020-12-14 Wilco Dijkstra * config.gcc (aarch64*-*-*): Add --with-tune. Support --with-cpu=native. * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Add --with-tune. 2020-12-14 Sebastian Pop * config.gcc (aarch64*-*-*): Remove --with-{cpu,arch,tune}-32 flags. 2020-12-03 Uroš Bizjak Jakub Jelinek PR target/98086 * config/i386/i386.c (ix86_md_asm_adjustmd): Rewrite zero-extension part to use convert_to_mode. 2020-12-02 Richard Biener Backported from master: 2020-07-06 Richard Biener PR tree-optimization/96075 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use TYPE_SIZE_UNIT of the vector component type instead of DR_STEP for the misalignment calculation for negative step. 2020-12-02 Richard Biener Backported from master: 2020-07-31 Richard Biener PR middle-end/96369 * fold-const.c (fold_range_test): Special-case constant LHS for short-circuiting operations. 2020-12-02 Richard Biener Backported from master: 2020-11-13 Richard Biener PR tree-optimization/97812 * tree-vrp.c (register_edge_assert_for_2): Extend the range according to its sign before seeing whether it fits. 2020-12-02 Richard Biener Backported from master: 2020-10-01 Richard Biener PR tree-optimization/97255 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle VIEW_CONVERT_EXPR. 2020-12-02 Richard Biener Backported from master: 2020-09-18 Richard Biener PR tree-optimization/97081 * tree-vect-patterns.c (vect_recog_rotate_pattern): Use the precision of the shifted operand to determine the mask. 2020-12-02 Richard Biener Backported from master: 2020-08-27 Richard Biener PR tree-optimization/96579 * tree-ssa-reassoc.c (linearize_expr_tree): If we expand rhs via special ops make sure to swap operands. 2020-12-02 Richard Biener Backported from master: 2020-07-30 Richard Biener PR tree-optimization/96370 * tree-ssa-reassoc.c (rewrite_expr_tree): Add operation code parameter and use it instead of picking it up from the stmt that is being rewritten. (reassociate_bb): Pass down the operation code. 2020-12-02 Richard Biener Backported from master: 2020-08-07 Richard Biener PR tree-optimization/96514 * tree-if-conv.c (if_convertible_bb_p): If the last stmt is a call that is control-altering, fail. 2020-12-01 Richard Biener Backported from master: 2020-10-26 Richard Biener PR middle-end/97554 * sbitmap.c (sbitmap_vector_alloc): Use size_t for byte quantities to avoid overflow. 2020-11-30 Stam Markianos-Wright * config/arm/arm-protos.h: New function arm_gen_far_branch prototype. * config/arm/arm.c (arm_gen_far_branch): New function arm_gen_far_branch. * config/arm/arm.md: Update b for Thumb2 range checks. 2020-11-28 Eric Botcazou PR target/97939 * config/sparc/predicates.md (arith_double_add_operand): Comment. * config/sparc/sparc.md (uaddvdi4): Use arith_double_operand. (addvdi4): Use arith_double_add_operand. (addsi3): Remove useless attributes. (addvsi4): Use arith_add_operand. (*cmp_ccv_plus): Likewise and add second alternative accordingly. (*cmp_ccxv_plus): Likewise. (*cmp_ccv_plus_set): Likewise. (*cmp_ccxv_plus_set): Likewise. (*cmp_ccv_plus_sltu_set): Likewise. (usubvdi4): Use arith_double_operand. (subvdi4): Use arith_double_add_operand. (subsi3): Remove useless attributes. (subvsi4): Use arith_add_operand. (*cmp_ccv_minus): Likewise and add second alternative accordingly. (*cmp_ccxv_minus): Likewise. (*cmp_ccv_minus_set): Likewise. (*cmp_ccxv_minus_set): Likewise. (*cmp_ccv_minus_sltu_set): Likewise. (negsi2): Use register_operand. (unegvsi3): Likewise. (negvsi3) Likewise. (*cmp_ccnz_neg): Likewise. (*cmp_ccxnz_neg): Likewise. (*cmp_ccnz_neg_set): Likewise. (*cmp_ccxnz_neg_set): Likewise. (*cmp_ccc_neg_set): Likewise. (*cmp_ccxc_neg_set): Likewise. (*cmp_ccc_neg_sltu_set): Likewise. (*cmp_ccv_neg): Likewise. (*cmp_ccxv_neg): Likewise. (*cmp_ccv_neg_set): Likewise. (*cmp_ccxv_neg_set): Likewise. (*cmp_ccv_neg_sltu_set): Likewise. 2020-11-28 Eric Botcazou PR target/96607 * config/sparc/sparc-protos.h (eligible_for_call_delay): Delete. * config/sparc/sparc.c (eligible_for_call_delay): Likewise. * config/sparc/sparc.md (in_call_delay): Likewise. (tls_delay_slot): New attribute. (define_delay [call]): Use in_branch_delay. (tgd_call): Set type to call_no_delay_slot when tls_delay_slot is false. (tldm_call): Likewise. 2020-11-24 Jason Merrill PR c++/97918 * dwarf2out.c (dwarf2out_early_finish): flush_limbo_die_list after gen_scheduled_generic_parms_dies. 2020-11-17 Sebastian Pop Backported from master: 2020-11-17 Sebastian Pop * config.gcc: add configure flags --with-{cpu,arch,tune}-{32,64} as alias flags for --with-{cpu,arch,tune} on AArch64. * doc/install.texi: Document new flags for aarch64. 2020-11-17 Sebastian Pop Backported from master: 2020-11-17 Sebastian Pop * config.gcc: Add --with-tune to AArch64 configure flags. 2020-11-17 Tamar Christina Backported from master: 2020-10-27 Tamar Christina PR target/97535 * config/aarch64/aarch64.c (aarch64_expand_cpymem): Use unsigned arithmetic in check. 2020-11-17 Monk Chiang Backported from master: 2020-11-14 Monk Chiang PR target/97682 * config/riscv/riscv.h (RISCV_PROLOGUE_TEMP_REGNUM): Change register to t0. (RISCV_CALL_ADDRESS_TEMP_REGNUM): New Marco, define t1 register. (RISCV_CALL_ADDRESS_TEMP): Use it for call instructions. * config/riscv/riscv.c (riscv_legitimize_call_address): Use RISCV_CALL_ADDRESS_TEMP. (riscv_compute_frame_info): Change temporary register to t0 form t1. (riscv_trampoline_init): Adjust comment. 2020-11-16 Cui,Lili * config/i386/i386.h: Add PREFETCHW to march=broadwell. * doc/invoke.texi: Put PREFETCHW back to relation arch. 2020-11-11 liuhongt * config/i386/i386.c (ix86_option_override_internal): Handle PTA_CLDEMOTE, PTA_MOVDIRI, PTA_MOVDIR64B. * config/i386/i386.h (PTA_CLDEMOTE, PTA_MOVDIRI, PTA_MOVDIR64B.): Define. 2020-11-09 Lili Cui PR target/97685 * config/i386/i386.h: (PTA_BROADWELL): Delete PTA_PRFCHW. (PTA_SILVERMONT): Add PTA_PRFCHW. (PTA_KNL): Add PTA_PREFETCHWT1. (PTA_TREMONT): Add PTA_MOVDIRI, PTA_MOVDIR64B, PTA_CLDEMOTE and PTA_WAITPKG. * doc/invoke.texi: Delete PREFETCHW for broadwell, skylake, knl, knm, skylake-avx512, cannonlake, icelake-client, icelake-server, cascadelake, cooperlake, tigerlake and sapphirerapids. Add PREFETCHW for silvermont, goldmont, goldmont-plus and tremont. Add XSAVEC and XSAVES for goldmont, goldmont-plus and tremont. Add MOVDIRI, MOVDIR64B, CLDEMOTE and WAITPKG for tremont. Add KEYLOCKER and HREST for alderlake. Add AMX-BF16, AMX-TILE, AMX-INT8 and UINTR for sapphirerapids. Add KEYLOCKER for tigerlake. 2020-10-22 Andreas Krebbel Backported from master: 2020-10-22 Andreas Krebbel PR rtl-optimization/97439 * dfp.c (decimal_real_maxval): Set the sign flag in the generated number. 2020-10-16 Martin Liska Backported from master: 2020-10-16 Martin Liska PR ipa/97404 * ipa-prop.c (struct ipa_vr_ggc_hash_traits): Compare types of VRP as we can merge ranges of different types. 2020-10-15 Martin Liska Backported from master: 2020-10-15 Martin Liska PR ipa/97295 * profile-count.c (profile_count::to_frequency): Move part of gcc_assert to STATIC_ASSERT. * regs.h (REG_FREQ_FROM_BB): Do not use count.to_frequency for a function that does not have count_max initialized. 2020-10-13 Kyrylo Tkachov * config/aarch64/aarch64.c (neoversen2_tunings): Define. * config/aarch64/aarch64-cores.def (neoverse-n2): Use it. 2020-10-13 Kyrylo Tkachov Backported from master: 2020-10-12 Kyrylo Tkachov PR target/97349 * config/aarch64/arm_neon.h (vdupq_n_p8, vdupq_n_p16, vdupq_n_p64, vdupq_n_s8, vdupq_n_s16, vdupq_n_u8, vdupq_n_u16): Fix argument type. 2020-10-08 Kyrylo Tkachov * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_FRINT32Z, UNSPEC_FRINT32X, UNSPEC_FRINT64Z, UNSPEC_FRINT64X. (aarch64_): New define_insn. * config/aarch64/aarch64.h (TARGET_FRINT): Define. * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define __ARM_FEATURE_FRINT when appropriate. * config/aarch64/aarch64-simd-builtins.def: Add builtins for frint32z, frint32x, frint64z, frint64x. * config/aarch64/arm_acle.h (__rint32zf, __rint32z, __rint64zf, __rint64z, __rint32xf, __rint32x, __rint64xf, __rint64x): Define. * config/aarch64/arm_neon.h (vrnd32z_f32, vrnd32zq_f32, vrnd32z_f64, vrnd32zq_f64, vrnd32x_f32, vrnd32xq_f32, vrnd32x_f64, vrnd32xq_f64, vrnd64z_f32, vrnd64zq_f32, vrnd64z_f64, vrnd64zq_f64, vrnd64x_f32, vrnd64xq_f32, vrnd64x_f64, vrnd64xq_f64): Define. * config/aarch64/iterators.md (VSFDF): Define. (FRINTNZX): Likewise. (frintnzs_op): Likewise. 2020-10-08 Kyrylo Tkachov Backported from master: 2020-10-08 Kyrylo Tkachov PR target/97150 * config/aarch64/arm_neon.h (vqrshlb_u8): Make second argument signed. (vqrshlh_u16): Likewise. (vqrshls_u32): Likewise. (vqrshld_u64): Likewise. (vqshlb_u8): Likewise. (vqshlh_u16): Likewise. (vqshls_u32): Likewise. (vqshld_u64): Likewise. (vshld_u64): Likewise. 2020-10-08 Kyrylo Tkachov Backported from master: 2020-10-08 Kyrylo Tkachov PR target/96313 * config/aarch64/aarch64-simd-builtins.def (sqmovun): Use UNOPUS qualifiers. * config/aarch64/arm_neon.h (vqmovun_s16): Adjust builtin call. Remove unnecessary result cast. (vqmovun_s32): Likewise. (vqmovun_s64): Likewise. (vqmovunh_s16): Likewise. Fix return type. (vqmovuns_s32): Likewise. (vqmovund_s64): Likewise. 2020-10-08 Alan Modra Backported from master: 2020-10-01 Alan Modra * config/rs6000/rs6000.c (rs6000_legitimize_address): Use gen_int_mode for high part of address constant. 2020-10-05 Alex Coplan * config/arm/arm-cpus.in (neoverse-v1): Add missing vendor and part numbers. 2020-10-02 Alex Coplan * config/arm/arm-cpus.in (neoverse-n2): New. * config/arm/arm-tables.opt: Regenerate. * config/arm/arm-tune.md: Regenerate. * doc/invoke.texi: Document support for Neoverse N2. 2020-10-02 Kyrylo Tkachov * config/aarch64/aarch64.c (neoversev1_tunings): Define. * config/aarch64/aarch64-cores.def (zeus): Use it. (neoverse-v1): Likewise. 2020-10-02 Martin Liska Backported from master: 2020-10-02 Martin Liska PR gcov-profile/97193 * coverage.c (coverage_init): GCDA note files should not be mangled and should end in output directory. 2020-10-02 Martin Liska Backported from master: 2020-09-25 Martin Liska PR gcov-profile/64636 * value-prof.c (stream_out_histogram_value): Allow negative values for HIST_TYPE_IOR. 2020-10-02 Martin Liska Backported from master: 2020-09-23 Martin Liska PR gcov-profile/97069 * profile.c (branch_prob): Line number must be at least 1. 2020-10-01 Kyrylo Tkachov * config/aarch64/aarch64-tuning-flags.def (PREFER_ADVSIMD_AUTOVEC): Define. * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Use it. (aarch64_autovectorize_vector_sizes): Likewise. 2020-10-01 Kyrylo Tkachov * config/aarch64/aarch64-cores.def (zeus): Add AARCH64_FL_RNG to features. (neoverse-v1): Likewise. 2020-10-01 Jakub Jelinek Backported from master: 2020-10-01 Jakub Jelinek * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use TARGET_EXPR instead of MODIFY_EXPR for the first assignments to fenv_var and old_fpc. Formatting fixes. 2020-10-01 Alex Coplan * config/aarch64/aarch64-cores.def: Add Neoverse N2. * config/aarch64/aarch64-tune.md: Regenerate. * doc/invoke.texi: Document AArch64 support for Neoverse N2. 2020-09-30 Kyrylo Tkachov Backported from master: 2020-09-25 Kyrylo Tkachov * config/aarch64/aarch64-option-extensions.def (rng): Add cpuinfo string. 2020-09-30 H.J. Lu Backported from master: 2020-09-30 H.J. Lu PR target/97184 * config/i386/i386.md (UNSPECV_MOVDIRI): Renamed to ... (UNSPEC_MOVDIRI): This. (UNSPECV_MOVDIR64B): Renamed to ... (UNSPEC_MOVDIR64B): This. (movdiri): Use SET operation. (@movdir64b_): Likewise. 2020-09-29 Hongyu Wang Backported from master: 2020-09-29 Hongyu Wang PR target/97231 * config/i386/pconfigintrin.h: Add FSF copyright notes. * config/i386/wbnoinvdintrin.h: Ditto. 2020-09-29 Alex Coplan * config/arm/arm-cpus.in (neoverse-v1): New. * config/arm/arm-tables.opt: Regenerate. * config/arm/arm-tune.md: Regenerate. * doc/invoke.texi: Document AArch32 support for Neoverse V1. 2020-09-28 Kyrylo Tkachov Backported from master: 2020-09-23 Kyrylo Tkachov PR target/71233 * config/aarch64/arm_neon.h (vreinterpretq_f64_p128, vreinterpretq_p128_f64): Define. 2020-09-28 Kyrylo Tkachov Backported from master: 2020-09-23 Kyrylo Tkachov PR target/71233 * config/aarch64/aarch64-simd-builtins.def (frintn): Use BUILTIN_VHSDF_HSDF for modes. Remove explicit hf instantiation. * config/aarch64/arm_neon.h (vrndns_f32): Define. 2020-09-28 Kyrylo Tkachov Backported from master: 2020-09-23 Kyrylo Tkachov PR target/71233 * config/aarch64/arm_neon.h (vtrn1q_p64, vtrn2q_p64, vuzp1q_p64, vuzp2q_p64, vzip1q_p64, vzip2q_p64): Define. 2020-09-28 Kyrylo Tkachov Backported from master: 2020-09-23 Kyrylo Tkachov PR target/71233 * config/aarch64/arm_neon.h (vldrq_p128): Define. 2020-09-28 Kyrylo Tkachov Backported from master: 2020-09-23 Kyrylo Tkachov PR target/71233 * config/aarch64/arm_neon.h (vstrq_p128): Define. 2020-09-28 Kyrylo Tkachov Backported from master: 2020-09-22 Kyrylo Tkachov PR target/71233 * config/aarch64/arm_neon.h (vcls_u8, vcls_u16, vcls_u32, vclsq_u8, vclsq_u16, vclsq_u32): Define. 2020-09-28 Kyrylo Tkachov Backported from master: 2020-09-22 Kyrylo Tkachov PR target/71233 * config/aarch64/arm_neon.h (vceqq_p64, vceqz_p64, vceqzq_p64): Define. 2020-09-28 Kyrylo Tkachov Backported from master: 2020-09-22 Kyrylo Tkachov PR target/71233 * config/aarch64/arm_neon.h (vadd_p8, vadd_p16, vadd_p64, vaddq_p8, vaddq_p16, vaddq_p64, vaddq_p128): Define. 2020-09-27 Jakub Jelinek Backported from master: 2020-09-27 Jakub Jelinek PR middle-end/97073 * optabs.c (expand_binop, expand_absneg_bit, expand_unop, expand_copysign_bit): Check reg_overlap_mentioned_p between target and operand(s) and if it returns true, force a pseudo as target. 2020-09-25 Kyrylo Tkachov PR target/71233 * config/aarch64/aarch64.md (UNSPEC_RNDR, UNSPEC_RNDRRS): Define. (aarch64_rndr): New define_insn. (aarch64_rndrrs): Likewise. * config/aarch64/aarch64.h (AARCH64_ISA_RNG): Define. (TARGET_RNG): Likewise. * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add AARCH64_BUILTIN_RNG_RNDR, AARCH64_BUILTIN_RNG_RNDRRS. (aarch64_init_rng_builtins): Define. (aarch64_init_builtins): Call aarch64_init_rng_builtins. (aarch64_expand_rng_builtin): Define. (aarch64_expand_builtin): Use IGNORE argument, handle RNG builtins. * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define __ARM_FEATURE_RNG when TARGET_RNG. * config/aarch64/arm_acle.h (__rndr, __rndrrs): Define. 2020-09-24 H.J. Lu Backported from master: 2020-09-16 H.J. Lu PR target/97032 * cfgexpand.c (asm_clobber_reg_kind): Set sp_is_clobbered_by_asm to true if the stack pointer is clobbered by asm statement. * emit-rtl.h (rtl_data): Add sp_is_clobbered_by_asm. * config/i386/i386.c (ix86_get_drap_rtx): Set need_drap to true if the stack pointer is clobbered by asm statement. 2020-09-24 Kyrylo Tkachov Backported from master: 2020-08-04 Kyrylo Tkachov Andrea Corallo PR target/71233 * config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define. (aarch64_fjcvtzs): New define_insn. * config/aarch64/aarch64.h (TARGET_JSCVT): Define. * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add AARCH64_JSCVT. (aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs. (aarch64_expand_builtin): Handle AARCH64_JSCVT. * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define __ARM_FEATURE_JCVT where appropriate. * config/aarch64/arm_acle.h (__jcvt): Define. * doc/sourcebuild.texi (aarch64_fjcvtzs_hw) Document new target supports option. 2020-09-24 Alex Coplan * config/aarch64/aarch64-cores.def: Add Neoverse V1. * config/aarch64/aarch64-tune.md: Regenerate. * doc/invoke.texi: Document support for Neoverse V1. 2020-09-18 Jakub Jelinek Backported from master: 2020-09-16 Jakub Jelinek PR tree-optimization/97053 * gimple-ssa-store-merging.c (check_no_overlap): Add FIRST_ORDER, START, FIRST_EARLIER and LAST_EARLIER arguments. Return false if any stores between FIRST_EARLIER inclusive and LAST_EARLIER exclusive has order in between FIRST_ORDER and LAST_ORDER and overlaps the to be merged store. (imm_store_chain_info::try_coalesce_bswap): Add FIRST_EARLIER argument. Adjust check_no_overlap caller. (imm_store_chain_info::coalesce_immediate_stores): Add first_earlier and last_earlier variables, adjust them during iterations. Adjust check_no_overlap callers, call check_no_overlap even when extending overlapping stores by extra INTEGER_CST stores. 2020-09-18 Richard Sandiford Backported from master: 2020-04-29 Richard Sandiford * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Use TARGET_EXPR instead of MODIFY_EXPR for the first assignments to fenv_var and new_fenv_var. 2020-09-17 Segher Boessenkool Backported from master: 2020-04-24 Segher Boessenkool PR target/94710 * config/rs6000/vector.md (vec_shr_ for VEC_L): Correct little endian byteshift_val calculation. 2020-09-17 liuhongt * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX_UNSET): Remove OPTION_MASK_ISA_XSAVE_UNSET. (OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_AVX_UNSET. 2020-09-16 Jakub Jelinek Backported from master: 2020-08-26 Jakub Jelinek PR debug/96729 * dwarf2out.c (dwarf2out_next_real_insn): Adjust function comment. (dwarf2out_var_location): Look for next_note only if next_real is non-NULL, in that case look for the first non-deleted NOTE_INSN_VAR_LOCATION between loc_note and next_real, if any. 2020-09-16 Jakub Jelinek Backported from master: 2020-08-25 Jakub Jelinek PR tree-optimization/96722 * gimple.c (infer_nonnull_range): Formatting fix. (infer_nonnull_range_by_dereference): Return false for clobber stmts. 2020-09-16 Jakub Jelinek Backported from master: 2020-08-08 Jakub Jelinek PR fortran/93553 * tree-nested.c (convert_nonlocal_omp_clauses): For OMP_CLAUSE_REDUCTION, OMP_CLAUSE_LASTPRIVATE and OMP_CLAUSE_LINEAR save info->new_local_var_chain around walks of the clause gimple sequences and declare_vars if needed into the sequence. 2020-09-16 Jakub Jelinek Backported from master: 2020-08-05 Jakub Jelinek PR middle-end/96459 * omp-low.c (lower_omp_taskreg): Call lower_reduction_clauses even in for host teams. 2020-09-16 Jakub Jelinek Backported from master: 2020-08-04 Jakub Jelinek PR middle-end/96426 * tree-vect-generic.c (expand_vector_conversion): Replace .VEC_CONVERT call with GIMPLE_NOP if there is no lhs. 2020-09-16 Jakub Jelinek Backported from master: 2020-07-15 Jakub Jelinek PR target/96174 * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask, _mm512_mask_cmpeq_pd_mask, _mm512_cmplt_pd_mask, _mm512_mask_cmplt_pd_mask, _mm512_cmple_pd_mask, _mm512_mask_cmple_pd_mask, _mm512_cmpunord_pd_mask, _mm512_mask_cmpunord_pd_mask, _mm512_cmpneq_pd_mask, _mm512_mask_cmpneq_pd_mask, _mm512_cmpnlt_pd_mask, _mm512_mask_cmpnlt_pd_mask, _mm512_cmpnle_pd_mask, _mm512_mask_cmpnle_pd_mask, _mm512_cmpord_pd_mask, _mm512_mask_cmpord_pd_mask, _mm512_cmpeq_ps_mask, _mm512_mask_cmpeq_ps_mask, _mm512_cmplt_ps_mask, _mm512_mask_cmplt_ps_mask, _mm512_cmple_ps_mask, _mm512_mask_cmple_ps_mask, _mm512_cmpunord_ps_mask, _mm512_mask_cmpunord_ps_mask, _mm512_cmpneq_ps_mask, _mm512_mask_cmpneq_ps_mask, _mm512_cmpnlt_ps_mask, _mm512_mask_cmpnlt_ps_mask, _mm512_cmpnle_ps_mask, _mm512_mask_cmpnle_ps_mask, _mm512_cmpord_ps_mask, _mm512_mask_cmpord_ps_mask): Move outside of __OPTIMIZE__ guarded section. 2020-09-16 Jakub Jelinek Backported from master: 2020-07-02 Jakub Jelinek PR tree-optimization/95857 * tree-cfg.c (group_case_labels_stmt): When removing an unreachable base_bb, remember all forced and non-local labels on it and later treat those as if they have NULL label_to_block. Formatting fix. Fix a comment typo. 2020-09-16 Jakub Jelinek Backported from master: 2020-06-24 Jakub Jelinek PR middle-end/95810 * fold-const.c (fold_cond_expr_with_comparison): Optimize A <= 0 ? A : -A into (type)-absu(A) rather than -abs(A). 2020-09-16 Jakub Jelinek Backported from master: 2020-05-14 Jakub Jelinek PR middle-end/95108 * omp-simd-clone.c (struct modify_stmt_info): Add after_stmt member. (ipa_simd_modify_stmt_ops): For PHIs, only add before first stmt in entry block if info->after_stmt is NULL, otherwise add after that stmt and update it after adding each stmt. (ipa_simd_modify_function_body): Initialize info.after_stmt. 2020-09-16 Jakub Jelinek Backported from master: 2020-05-13 Jakub Jelinek PR debug/95080 * cfgrtl.c (purge_dead_edges): Skip over debug and note insns even if the last insn is a note. 2020-09-16 Jakub Jelinek Backported from master: 2020-05-07 Jakub Jelinek PR target/94950 * config/riscv/riscv-builtins.c (riscv_atomic_assign_expand_fenv): Use TARGET_EXPR instead of MODIFY_EXPR for first assignment to old_flags. 2020-09-16 Jakub Jelinek Backported from master: 2020-05-07 Jakub Jelinek PR rtl-optimization/94873 * combine.c (combine_instructions): Don't optimize using REG_EQUAL note if SET_SRC (set) has side-effects. 2020-09-16 Jakub Jelinek Backported from master: 2020-05-02 Jakub Jelinek * config/tilegx/tilegx.md (insn_stnt_add): Use rather than just . 2020-09-16 Jakub Jelinek Backported from master: 2020-04-29 Jakub Jelinek PR target/94832 * config/i386/avx512bwintrin.h (_mm512_alignr_epi8, _mm512_mask_alignr_epi8, _mm512_maskz_alignr_epi8): Wrap macro operands used in casts into parens. * config/i386/avx512fintrin.h (_mm512_cvt_roundps_ph, _mm512_cvtps_ph, _mm512_mask_cvt_roundps_ph, _mm512_mask_cvtps_ph, _mm512_maskz_cvt_roundps_ph, _mm512_maskz_cvtps_ph, _mm512_mask_cmp_epi64_mask, _mm512_mask_cmp_epi32_mask, _mm512_mask_cmp_epu64_mask, _mm512_mask_cmp_epu32_mask, _mm512_mask_cmp_round_pd_mask, _mm512_mask_cmp_round_ps_mask, _mm512_mask_cmp_pd_mask, _mm512_mask_cmp_ps_mask): Likewise. * config/i386/avx512vlbwintrin.h (_mm256_mask_alignr_epi8, _mm256_maskz_alignr_epi8, _mm_mask_alignr_epi8, _mm_maskz_alignr_epi8, _mm256_mask_cmp_epu8_mask): Likewise. * config/i386/avx512vlintrin.h (_mm_mask_cvtps_ph, _mm_maskz_cvtps_ph, _mm256_mask_cvtps_ph, _mm256_maskz_cvtps_ph): Likewise. * config/i386/f16cintrin.h (_mm_cvtps_ph, _mm256_cvtps_ph): Likewise. * config/i386/shaintrin.h (_mm_sha1rnds4_epu32): Likewise. 2020-09-16 Jakub Jelinek Backported from master: 2020-04-29 Jakub Jelinek PR target/94832 * config/i386/avx2intrin.h (_mm_mask_i32gather_pd, _mm256_mask_i32gather_pd, _mm_mask_i64gather_pd, _mm256_mask_i64gather_pd, _mm_mask_i32gather_ps, _mm256_mask_i32gather_ps, _mm_mask_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64, _mm_mask_i32gather_epi64, _mm256_i32gather_epi64, _mm256_mask_i32gather_epi64, _mm_i64gather_epi64, _mm_mask_i64gather_epi64, _mm256_i64gather_epi64, _mm256_mask_i64gather_epi64, _mm_i32gather_epi32, _mm_mask_i32gather_epi32, _mm256_i32gather_epi32, _mm256_mask_i32gather_epi32, _mm_i64gather_epi32, _mm_mask_i64gather_epi32, _mm256_i64gather_epi32, _mm256_mask_i64gather_epi32): Surround macro parameter uses with parens. (_mm_i32gather_pd, _mm256_i32gather_pd, _mm_i64gather_pd, _mm256_i64gather_pd, _mm_i32gather_ps, _mm256_i32gather_ps, _mm_i64gather_ps, _mm256_i64gather_ps): Likewise. Don't use as mask vector containing -1.0 or -1.0f elts, but instead vector with all bits set using _mm*_cmpeq_p? with zero operands. * config/i386/avx512fintrin.h (_mm512_i32gather_ps, _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_mask_i32gather_pd, _mm512_i64gather_ps, _mm512_mask_i64gather_ps, _mm512_i64gather_pd, _mm512_mask_i64gather_pd, _mm512_i32gather_epi32, _mm512_mask_i32gather_epi32, _mm512_i32gather_epi64, _mm512_mask_i32gather_epi64, _mm512_i64gather_epi32, _mm512_mask_i64gather_epi32, _mm512_i64gather_epi64, _mm512_mask_i64gather_epi64, _mm512_i32scatter_ps, _mm512_mask_i32scatter_ps, _mm512_i32scatter_pd, _mm512_mask_i32scatter_pd, _mm512_i64scatter_ps, _mm512_mask_i64scatter_ps, _mm512_i64scatter_pd, _mm512_mask_i64scatter_pd, _mm512_i32scatter_epi32, _mm512_mask_i32scatter_epi32, _mm512_i32scatter_epi64, _mm512_mask_i32scatter_epi64, _mm512_i64scatter_epi32, _mm512_mask_i64scatter_epi32, _mm512_i64scatter_epi64, _mm512_mask_i64scatter_epi64): Surround macro parameter uses with parens. * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd, _mm512_prefetch_i32gather_ps, _mm512_mask_prefetch_i32gather_pd, _mm512_mask_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd, _mm512_prefetch_i64gather_ps, _mm512_mask_prefetch_i64gather_pd, _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd, _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd, _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd, _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd, _mm512_mask_prefetch_i64scatter_ps): Likewise. * config/i386/avx512vlintrin.h (_mm256_mmask_i32gather_ps, _mm_mmask_i32gather_ps, _mm256_mmask_i32gather_pd, _mm_mmask_i32gather_pd, _mm256_mmask_i64gather_ps, _mm_mmask_i64gather_ps, _mm256_mmask_i64gather_pd, _mm_mmask_i64gather_pd, _mm256_mmask_i32gather_epi32, _mm_mmask_i32gather_epi32, _mm256_mmask_i32gather_epi64, _mm_mmask_i32gather_epi64, _mm256_mmask_i64gather_epi32, _mm_mmask_i64gather_epi32, _mm256_mmask_i64gather_epi64, _mm_mmask_i64gather_epi64, _mm256_i32scatter_ps, _mm256_mask_i32scatter_ps, _mm_i32scatter_ps, _mm_mask_i32scatter_ps, _mm256_i32scatter_pd, _mm256_mask_i32scatter_pd, _mm_i32scatter_pd, _mm_mask_i32scatter_pd, _mm256_i64scatter_ps, _mm256_mask_i64scatter_ps, _mm_i64scatter_ps, _mm_mask_i64scatter_ps, _mm256_i64scatter_pd, _mm256_mask_i64scatter_pd, _mm_i64scatter_pd, _mm_mask_i64scatter_pd, _mm256_i32scatter_epi32, _mm256_mask_i32scatter_epi32, _mm_i32scatter_epi32, _mm_mask_i32scatter_epi32, _mm256_i32scatter_epi64, _mm256_mask_i32scatter_epi64, _mm_i32scatter_epi64, _mm_mask_i32scatter_epi64, _mm256_i64scatter_epi32, _mm256_mask_i64scatter_epi32, _mm_i64scatter_epi32, _mm_mask_i64scatter_epi32, _mm256_i64scatter_epi64, _mm256_mask_i64scatter_epi64, _mm_i64scatter_epi64, _mm_mask_i64scatter_epi64): Likewise. 2020-09-16 Jakub Jelinek Backported from master: 2020-04-29 Jakub Jelinek PR target/94826 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Use TARGET_EXPR instead of MODIFY_EXPR for first assignment to fenv_var, fenv_clear and old_fenv variables. For fenv_addr take address of TARGET_EXPR of fenv_var with void_node initializer. Formatting fixes. 2020-09-16 Haijian Zhang Backported from master: 2020-04-29 Haijian Zhang PR target/94820 * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv): Use TARGET_EXPR instead of MODIFY_EXPR for first assignment to fenv_cr, fenv_sr and new_fenv_var. 2020-09-16 Jakub Jelinek Backported from master: 2020-04-28 Jakub Jelinek PR tree-optimization/94809 * tree.c (build_call_expr_internal_loc_array): Call process_call_operands. 2020-09-16 Jakub Jelinek Backported from master: 2020-04-27 Jakub Jelinek PR target/94780 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Use TARGET_EXPR instead of MODIFY_EXPR for first assignment to sw_var, exceptions_var, mxcsr_orig_var and mxcsr_mod_var. 2020-09-16 Jakub Jelinek Backported from master: 2020-04-23 Jakub Jelinek PR target/94710 * optabs.c (expand_vec_perm_const): For shift_amt const0_rtx just return v2. 2020-09-16 Jakub Jelinek Backported from master: 2020-04-23 Jakub Jelinek PR c/94705 * attribs.c (decl_attribute): Don't diagnose attribute exclusions if last_decl is error_mark_node or has such a TREE_TYPE. 2020-09-16 Jakub Jelinek Backported from master: 2020-04-21 Jakub Jelinek PR c/94641 * stor-layout.c (place_field, finalize_record_size): Don't emit -Wpadded warning on TYPE_ARTIFICIAL rli->t. * ubsan.c (ubsan_get_type_descriptor_type, ubsan_get_source_location_type, ubsan_create_data): Set TYPE_ARTIFICIAL. * asan.c (asan_global_struct): Likewise. 2020-09-16 Jakub Jelinek Backported from master: 2020-04-17 Jakub Jelinek PR rtl-optimization/94618 * cfgrtl.c (delete_insn_and_edges): Set purge not just when insn is the BB_END of its block, but also when it is only followed by DEBUG_INSNs in its block. 2020-09-16 Jakub Jelinek Backported from master: 2020-04-17 Jakub Jelinek PR tree-optimization/94621 * tree-inline.c (remap_type_1): Don't dereference NULL TYPE_DOMAIN. Move id->adjust_array_error_bounds check first in the condition. 2020-09-16 Gustavo Romero Backported from master: 2020-04-15 Gustavo Romero PR bootstrap/89494 * dumpfile.c (selftest::temp_dump_context::temp_dump_context): Don't construct a dump_context temporary to call static method. 2020-09-16 Jakub Jelinek Backported from master: 2020-04-08 Jakub Jelinek PR tree-optimization/94524 * tree-vect-generic.c (expand_vector_divmod): If any elt of op1 is negative for signed TRUNC_MOD_EXPR, multiply with absolute value of op1 rather than op1 itself at the end. Punt for signed modulo by most negative constant. * tree-vect-patterns.c (vect_recog_divmod_pattern): Punt for signed modulo by most negative constant. 2020-09-16 Jakub Jelinek Backported from master: 2020-04-08 Jakub Jelinek PR target/94438 * config/i386/i386.c (ix86_get_mask_mode): Only use int mask for elem_size 1, 2, 4 and 8. 2020-09-16 Sylvia Taylor Backported from master: 2019-08-22 Sylvia Taylor * config/aarch64/aarch64-simd-builtins.def: (ld1x4): New. (st1x4): Likewise. * config/aarch64/aarch64-simd.md: (aarch64_ld1x4): New pattern. (aarch64_st1x4): Likewise. (aarch64_ld1_x4_): Likewise. (aarch64_st1_x4_): Likewise. * config/aarch64/arm_neon.h: (vld1_s8_x4): New function. (vld1q_s8_x4): Likewise. (vld1_s16_x4): Likewise. (vld1q_s16_x4): Likewise. (vld1_s32_x4): Likewise. (vld1q_s32_x4): Likewise. (vld1_u8_x4): Likewise. (vld1q_u8_x4): Likewise. (vld1_u16_x4): Likewise. (vld1q_u16_x4): Likewise. (vld1_u32_x4): Likewise. (vld1q_u32_x4): Likewise. (vld1_f16_x4): Likewise. (vld1q_f16_x4): Likewise. (vld1_f32_x4): Likewise. (vld1q_f32_x4): Likewise. (vld1_p8_x4): Likewise. (vld1q_p8_x4): Likewise. (vld1_p16_x4): Likewise. (vld1q_p16_x4): Likewise. (vld1_s64_x4): Likewise. (vld1_u64_x4): Likewise. (vld1_p64_x4): Likewise. (vld1q_s64_x4): Likewise. (vld1q_u64_x4): Likewise. (vld1q_p64_x4): Likewise. (vld1_f64_x4): Likewise. (vld1q_f64_x4): Likewise. (vst1_s8_x4): Likewise. (vst1q_s8_x4): Likewise. (vst1_s16_x4): Likewise. (vst1q_s16_x4): Likewise. (vst1_s32_x4): Likewise. (vst1q_s32_x4): Likewise. (vst1_u8_x4): Likewise. (vst1q_u8_x4): Likewise. (vst1_u16_x4): Likewise. (vst1q_u16_x4): Likewise. (vst1_u32_x4): Likewise. (vst1q_u32_x4): Likewise. (vst1_f16_x4): Likewise. (vst1q_f16_x4): Likewise. (vst1_f32_x4): Likewise. (vst1q_f32_x4): Likewise. (vst1_p8_x4): Likewise. (vst1q_p8_x4): Likewise. (vst1_p16_x4): Likewise. (vst1q_p16_x4): Likewise. (vst1_s64_x4): Likewise. (vst1_u64_x4): Likewise. (vst1_p64_x4): Likewise. (vst1q_s64_x4): Likewise. (vst1q_u64_x4): Likewise. (vst1q_p64_x4): Likewise. (vst1_f64_x4): Likewise. (vst1q_f64_x4): Likewise. 2020-09-15 Will Schmidt * config/rs6000/rs6000.c (rs6000_init_builtin): Update V2DI_type_node and unsigned_V2DI_type_node definitions. 2020-09-15 Jakub Jelinek Backported from master: 2020-09-15 Jakub Jelinek PR target/97028 * config/i386/sse.md (mul3_bcs, _div3_bcst): Use instead of <>. 2020-09-11 Richard Biener Backported from master: 2020-05-07 Richard Biener PR ipa/94947 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Use DECL_EXTERNAL || TREE_PUBLIC instead of externally_visible. (refered_from_nonlocal_var): Likewise. (ipa_pta_execute): Likewise. 2020-09-11 Richard Biener Backported from master: 2020-05-05 Richard Biener PR ipa/94947 * tree-ssa-structalias.c (ipa_pta_execute): Use varpool_node::externally_visible_p (). (refered_from_nonlocal_var): Likewise. 2020-09-11 Richard Biener Backported from master: 2020-05-06 Richard Biener PR middle-end/94964 * cfgloopmanip.c (create_preheader): Require non-complex preheader edge for CP_SIMPLE_PREHEADERS. 2020-09-11 Richard Biener Backported from master: 2020-05-11 Richard Biener PR tree-optimization/95049 * tree-ssa-sccvn.c (set_ssa_val_to): Reject lattice transition between different constants. 2020-09-11 Richard Biener Backported from master: 2020-05-15 Richard Biener PR tree-optimization/95133 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_paths): Check for normal edges. 2020-09-11 Richard Biener Backported from master: 2020-06-17 Richard Biener PR tree-optimization/95717 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Move BB SSA updating before exit/latch PHI current def copying. 2020-09-02 Kewen Lin Backported from master: 2019-12-30 Peter Bergner PR target/92923 * config/rs6000/rs6000-builtin.def (VAND, VANDC, VNOR, VOR, VXOR): Delete. (EQV_V16QI_UNS, EQV_V8HI_UNS, EQV_V4SI_UNS, EQV_V2DI_UNS, EQV_V1TI_UNS, NAND_V16QI_UNS, NAND_V8HI_UNS, NAND_V4SI_UNS, NAND_V2DI_UNS, NAND_V1TI_UNS, ORC_V16QI_UNS, ORC_V8HI_UNS, ORC_V4SI_UNS, ORC_V2DI_UNS, ORC_V1TI_UNS, VAND_V16QI_UNS, VAND_V16QI, VAND_V8HI_UNS, VAND_V8HI, VAND_V4SI_UNS, VAND_V4SI, VAND_V2DI_UNS, VAND_V2DI, VAND_V4SF, VAND_V2DF, VANDC_V16QI_UNS, VANDC_V16QI, VANDC_V8HI_UNS, VANDC_V8HI, VANDC_V4SI_UNS, VANDC_V4SI, VANDC_V2DI_UNS, VANDC_V2DI, VANDC_V4SF, VANDC_V2DF, VNOR_V16QI_UNS, VNOR_V16QI, VNOR_V8HI_UNS, VNOR_V8HI, VNOR_V4SI_UNS, VNOR_V4SI, VNOR_V2DI_UNS, VNOR_V2DI, VNOR_V4SF, VNOR_V2DF, VOR_V16QI_UNS, VOR_V16QI, VOR_V8HI_UNS, VOR_V8HI, VOR_V4SI_UNS, VOR_V4SI, VOR_V2DI_UNS, VOR_V2DI, VOR_V4SF, VOR_V2DF, VXOR_V16QI_UNS, VXOR_V16QI, VXOR_V8HI_UNS, VXOR_V8HI, VXOR_V4SI_UNS, VXOR_V4SI, VXOR_V2DI_UNS, VXOR_V2DI, VXOR_V4SF, VXOR_V2DF): Add definitions. * config/rs6000/rs6000-c.c (altivec_overloaded_builtins) : Remove. : Add definitions. : Change unsigned usages to use the new *_UNS definition names. * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin) : Use new definition names. (builtin_function_type) : Handle unsigned builtins. 2020-08-27 Christophe Lyon Backported from master: 2020-08-24 Christophe Lyon PR target/94538 PR target/94538 * config/arm/thumb1.md: Disable set-constant splitter when TARGET_HAVE_MOVT. (thumb1_movsi_insn): Fix -mpure-code alternative. 2020-08-21 Richard Sandiford Backported from master: 2020-08-21 Richard Sandiford * doc/extend.texi: Update links to Arm docs. * doc/invoke.texi: Likewise. 2020-08-21 Tamar Christina Backported from master: 2020-08-03 Tamar Christina * config/aarch64/driver-aarch64.c (readline): Check return value fgets. 2020-08-21 Tamar Christina Backported from master: 2020-07-17 Tamar Christina * doc/sourcebuild.texi (dg-set-compiler-env-var, dg-set-target-env-var): Document. 2020-08-21 Tamar Christina Backported from master: 2020-07-17 Tamar Christina * config/arm/driver-arm.c (host_detect_local_cpu): Add GCC_CPUINFO. 2020-08-21 Tamar Christina Backported from master: 2020-07-17 Tamar Christina * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Add GCC_CPUINFO. 2020-08-21 Tamar Christina Backported from master: 2020-07-17 Tamar Christina * config/aarch64/driver-aarch64.c (INCLUDE_SET): New. (parse_field): Use std::string. (split_words, readline, find_field): New. (host_detect_local_cpu): Fix truncation issues. 2020-08-18 Uroš Bizjak PR target/96536 * config/i386/i386.md (restore_stack_nonlocal): Add missing compare RTX. 2020-08-07 Richard Sandiford Backported from master: 2020-08-06 Richard Sandiford PR target/96191 * config/arm/arm.md (arm_stack_protect_test_insn): Zero out operand 2 after use. * config/arm/thumb1.md (thumb1_stack_protect_test_insn): Likewise. 2020-08-07 Richard Sandiford Backported from master: 2020-08-05 Richard Sandiford PR target/96191 * config/aarch64/aarch64.md (stack_protect_test_): Set the CC register directly, instead of a GPR. Replace the original GPR destination with an extra scratch register. Zero out operand 3 after use. (stack_protect_test): Update accordingly. 2020-08-07 Qian Jianhua Backported from master: 2020-08-03 Qian jianhua * config/aarch64/aarch64-cores.def (a64fx): New core. * config/aarch64/aarch64-tune.md: Regenerated. * config/aarch64/aarch64.c (a64fx_prefetch_tune, a64fx_tunings): New. * doc/invoke.texi: Add a64fx to the list. 2020-08-07 Richard Sandiford Backported from master: 2020-04-16 Richard Sandiford PR rtl-optimization/94605 * early-remat.c (early_remat::process_block): Handle insns that set multiple candidate registers. 2020-08-07 Richard Sandiford Backported from master: 2020-07-13 Richard Sandiford PR middle-end/95114 * tree.h (virtual_method_call_p): Add a default-false parameter that indicates whether the function is being called from dump routines. (obj_type_ref_class): Likewise. * tree.c (virtual_method_call_p): Likewise. * ipa-devirt.c (obj_type_ref_class): Likewise. Lazily add ODR type information for the type when the parameter is false. * tree-pretty-print.c (dump_generic_node): Update calls to virtual_method_call_p and obj_type_ref_class accordingly. 2020-08-04 Matthew Malcomson * config/aarch64/aarch64-protos.h (aarch64_indirect_call_asm): New declaration. * config/aarch64/aarch64.c (aarch64_regno_regclass): Handle new stub registers class. (aarch64_class_max_nregs): Likewise. (aarch64_register_move_cost): Likewise. (aarch64_sls_shared_thunks): Global array to store stub labels. (aarch64_sls_emit_function_stub): New. (aarch64_create_blr_label): New. (aarch64_sls_emit_blr_function_thunks): New. (aarch64_sls_emit_shared_blr_thunks): New. (aarch64_asm_file_end): New. (aarch64_indirect_call_asm): New. (TARGET_ASM_FILE_END): Use aarch64_asm_file_end. (TARGET_ASM_FUNCTION_EPILOGUE): Use aarch64_sls_emit_blr_function_thunks. * config/aarch64/aarch64.h (STB_REGNUM_P): New. (enum reg_class): Add STUB_REGS class. (machine_function): Introduce `call_via` array for function-local stub labels. * config/aarch64/aarch64.md (*call_insn, *call_value_insn): Use aarch64_indirect_call_asm to emit code when hardening BLR instructions. * config/aarch64/constraints.md (Ucr): New constraint representing registers for indirect calls. Is GENERAL_REGS usually, and STUB_REGS when hardening BLR instruction against SLS. * config/aarch64/predicates.md (aarch64_general_reg): STUB_REGS class is also a general register. 2020-08-04 Matthew Malcomson * config/aarch64/aarch64-protos.h (aarch64_sls_barrier): New. * config/aarch64/aarch64.c (aarch64_output_casesi): Emit speculation barrier after BR instruction if needs be. (aarch64_trampoline_init): Handle ptr_mode value & adjust size of code copied. (aarch64_sls_barrier): New. (aarch64_asm_trampoline_template): Add needed barriers. * config/aarch64/aarch64.h (AARCH64_ISA_SB): New. (TARGET_SB): New. (TRAMPOLINE_SIZE): Account for barrier. * config/aarch64/aarch64.md (indirect_jump, *casesi_dispatch, simple_return, *do_return, *sibcall_insn, *sibcall_value_insn): Emit barrier if needs be, also account for possible barrier using "sls_length" attribute. (sls_length): New attribute. (length): Determine default using any non-default sls_length value. 2020-08-04 Matthew Malcomson * config/aarch64/aarch64-protos.h (aarch64_harden_sls_retbr_p): New. (aarch64_harden_sls_blr_p): New. * config/aarch64/aarch64.c (enum aarch64_sls_hardening_type): New. (aarch64_harden_sls_retbr_p): New. (aarch64_harden_sls_blr_p): New. (aarch64_validate_sls_mitigation): New. (aarch64_override_options): Parse options for SLS mitigation. * config/aarch64/aarch64.opt (-mharden-sls): New option. * doc/invoke.texi: Document new option. 2020-08-03 Jonathan Wakely Backported from master: 2020-08-03 Jonathan Wakely * doc/cpp.texi (Variadic Macros): Use the exact ... token in code examples. 2020-07-23 David Edelsohn Backported from master: 2020-03-06 David Edelsohn PR target/94065 * config/rs6000/aix61.h (TARGET_NO_SUM_IN_TOC): Set to 1 for cmodel=large. (TARGET_NO_FP_IN_TOC): Same. * config/rs6000/aix71.h: Same. * config/rs6000/aix72.h: Same. 2020-07-17 Romain Naour Backported from master: 2020-07-17 Romain Naour * Makefile.in (SELFTEST_DEPS): Move before including language makefile fragments. 2020-07-16 Szabolcs Nagy Backported from master: 2020-07-13 Szabolcs Nagy * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_PAC_DEFAULT support. 2020-07-16 Szabolcs Nagy Backported from master: 2020-07-13 Szabolcs Nagy PR target/94891 * doc/extend.texi: Update the text for __builtin_return_address. 2020-07-16 Szabolcs Nagy Backported from master: 2020-07-13 Szabolcs Nagy PR target/94891 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled): Disable return address signing if __builtin_eh_return is used. 2020-07-16 Szabolcs Nagy Backported from master: 2020-07-13 Szabolcs Nagy PR target/94891 PR target/94791 * config/aarch64/aarch64-protos.h (aarch64_return_addr_rtx): Declare. * config/aarch64/aarch64.c (aarch64_return_addr_rtx): New. (aarch64_return_addr): Use aarch64_return_addr_rtx. * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise. 2020-07-16 Stefan Schulze Frielinghaus Backported from master: 2020-06-16 Stefan Schulze Frielinghaus * config.in: Regenerate. * config/s390/s390.c (print_operand): Emit vector alignment hints for target z13, if AS accepts them. For other targets the logic stays the same. * config/s390/s390.h (TARGET_VECTOR_LOADSTORE_ALIGNMENT_HINTS): Define macro. * configure: Regenerate. * configure.ac: Check HAVE_AS_VECTOR_LOADSTORE_ALIGNMENT_HINTS_ON_Z13. 2020-07-10 Will Schmidt * config/rs6000/altivec.h (vec_vmsumudm): New define. * config/rs6000/altivec.md (UNSPEC_VMSUMUDM): New unspec. (altivec_vmsumudm): New define_insn. * config/rs6000/rs6000-builtin.def (altivec_vmsumudm): New BU_ALTIVEC_3 entry. (vmsumudm): New BU_ALTIVEC_OVERLOAD_3 entry. * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries for ALTIVEC_BUILTIN_VMSUMUDM variants of vec_msum. * doc/extend.texi: Add document for vmsumudm behind vmsum. 2020-07-10 Bin Cheng Backported from master: 2020-07-09 Bin Cheng PR tree-optimization/95804 * tree-loop-distribution.c (break_alias_scc_partitions): Force negative post order to reduction partition. 2020-07-10 Bin Cheng Backported from master: 2020-06-20 Bin Cheng PR tree-optimization/95638 * tree-loop-distribution.c (pg_edge_callback_data): New field. (loop_distribution::break_alias_scc_partitions): Record and restore postorder information. Fix memory leak. 2020-07-06 Will Schmidt PR target/94954 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Update. * config/rs6000/altivec.md (UNSPEC_CONVERT_4F32_8F16): New unspec. (convert_4f32_8f16): New define_expand * config/rs6000/rs6000-builtin.def (convert_4f32_8f16): New builtin define and overload. * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_CONVERT_4F32_8F16): New overloaded builtin entry. * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPHP): New unspec. (vsx_xvcvsphp): New define_insn. 2020-06-30 Alex Coplan Backported from master: 2020-05-18 Alex Coplan * config/arm/arm.c (output_move_double): Fix codegen when loading into a register pair with an odd base register. 2020-06-25 H.J. Lu Backported from master: 2020-06-25 H.J. Lu PR target/95874 * config/i386/i386.h (PTA_ICELAKE_CLIENT): Remove PTA_CLWB. (PTA_ICELAKE_SERVER): Add PTA_CLWB. 2020-06-17 Thomas Schwinge Backported from master: 2020-06-17 Thomas Schwinge * hsa-gen.c (gen_hsa_insns_for_call): Move 'function_decl == NULL_TREE' check earlier. 2020-06-12 Martin Liska Jakub Jelinek PR sanitizer/95634 * asan.c (asan_emit_stack_protection): Fix emission for ilp32 by using Pmode instead of ptr_mode. 2020-06-12 Martin Liska PR sanitizer/94910 * asan.c (asan_emit_stack_protection): Emit also **SavedFlagPtr(FakeStack, class_id) = 0 in order to release a stack frame. 2020-06-06 Carl Love PR target/94833 * config/rs6000/vsx.md (define_expand): Fix instruction generation for first_match_index_. 2020-06-05 H.J. Lu * config/i386/driver-i386.c (host_detect_local_cpu): Support Intel Airmont, Tremont, Comet Lake, Ice Lake and Tiger Lake processor families. 2020-06-02 Kyrylo Tkachov * config/aarch64/aarch64-cores.def (zeus): Define. * config/aarch64/aarch64-tune.md: Regenerate. * doc/invoke.texi (AArch64 Options): Document zeus -mcpu option. 2020-05-31 Gerald Pfeifer * config/i386/i386-c.c (ix86_target_macros): Define _ILP32 and __ILP32__ for 32-bit targets. 2020-05-29 Alex Coplan PR target/94591 * config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match identity permutation. 2020-05-29 Dong JianQiang PR gcov-profile/95332 * gcov-io.c (gcov_var::endian): Move field. (from_file): Add IN_GCOV_TOOL check. * gcov-io.h (gcov_magic): Ditto. 2020-05-26 Alexandre Oliva PR target/94812 * config/rs6000/rs6000.md (rs6000_mffsl): Copy result to output operand in emulation. Don't overwrite pseudos. 2020-05-24 H.J. Lu PR target/95258 * config/i386/driver-i386.c (host_detect_local_cpu): Detect AVX512VPOPCNTDQ. 2020-05-22 Bin Cheng Backport from master PR tree-optimization/94969 2020-05-13 Bin Cheng * tree-data-ref.c (constant_access_functions): Rename to... (invariant_access_functions): ...this. Add parameter. Check for invariant access function, rather than constant. (build_classic_dist_vector): Call above function. * tree-loop-distribution.c (pg_add_dependence_edges): Add comment. 2020-05-21 Martin Liska * common/config/aarch64/aarch64-common.c (aarch64_handle_option): Use MASK_OUTLINE_ATOMICS for x_target_flags. 2020-05-21 Martin Liska * common/config/aarch64/aarch64-common.c (aarch64_handle_option): Handle OPT_moutline_atomics. * config/aarch64/aarch64.c: Add outline-atomics to aarch64_attributes. * doc/extend.texi: Document the newly added target attribute. 2020-05-14 Szabolcs Nagy Backport from mainline. 2020-04-30 Szabolcs Nagy PR target/94748 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Remove the check for NOTE_INSN_DELETED_LABEL. 2020-05-14 Szabolcs Nagy Backport from mainline. 2020-04-23 Szabolcs Nagy PR target/94697 * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Swap bti c and bti j handling. 2020-05-14 Szabolcs Nagy Backport from mainline. 2020-04-27 Szabolcs Nagy PR target/94515 * dwarf2cfi.c (struct GTY): Add ra_mangled. (cfi_row_equal_p): Check ra_mangled. (dwarf2out_frame_debug_cfa_window_save): Remove the argument, this only handles the sparc logic now. (dwarf2out_frame_debug_cfa_toggle_ra_mangle): New function for the aarch64 specific logic. (dwarf2out_frame_debug): Update to use the new subroutines. (change_cfi_row): Check ra_mangled. 2020-05-12 David Edelsohn Backport from mainline 2020-04-08 Clement Chigot * config/rs6000/aix61.h (LIB_SPEC): Add -lc128 with -mlong-double-128. * config/rs6000/aix71.h (LIB_SPEC): Likewise. * config/rs6000/aix72.h (LIB_SPEC): Likewise. 2020-05-12 David Edelsohn Backport from mainline 2020-05-04 Clement Chigot David Edelsohn * config/rs6000/rs6000.c (rs6000_init_builtins): Override explicit for fmodl, frexpl, ldexpl and modfl builtins. 2020-05-11 Xiong Hu Luo Backport from master. 2020-04-27 Xiong Hu Luo PR target/91518 * config/rs6000/rs6000.c (frame_pointer_needed_indeed): New variable. (rs6000_emit_prologue_components): Check with frame_pointer_needed_indeed. (rs6000_emit_epilogue_components): Likewise. (rs6000_emit_prologue): Likewise. (rs6000_emit_epilogue): Set frame_pointer_needed_indeed. 2020-05-07 Uroš Bizjak * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use TARGET_EXPR instead of MODIFY_EXPR for the first assignments to fenv_var and new_fenv_var. 2020-05-05 Andreas Krebbel Backport from mainline 2020-04-30 Andreas Krebbel * config/s390/constraints.md ("j>f", "jb4"): New constraints. * config/s390/vecintrin.h (vec_load_len_r, vec_store_len_r): Fix macro definitions. * config/s390/vx-builtins.md ("vlrlrv16qi", "vstrlrv16qi"): Add a separate expander. ("*vlrlrv16qi", "*vstrlrv16qi"): Add alternative for vl/vst. Change constraint for vlrl/vstrl to jb4. 2020-05-04 Andreas Krebbel Backport from mainline 2020-04-20 Andreas Krebbel * config/s390/vector.md ("popcountv8hi2_vx", "popcountv4si2_vx") ("popcountv2di2_vx"): Use simplify_gen_subreg. 2020-05-04 Andreas Krebbel Backport from mainline 2020-04-20 Andreas Krebbel PR target/94613 * config/s390/s390-builtin-types.def: Add 3 new function modes. * config/s390/s390-builtins.def: Add mode dependent low-level builtin and map the overloaded builtins to these. * config/s390/vx-builtins.md ("vec_selV_HW"): Rename to ... ("vsel PR tree-optimization/93674 Backport from master 2020-04-09 Bin Cheng * tree-ssa-loop-ivopts.c (langhooks.h): New include. (add_iv_candidate_for_use): For iv_use of non integer or pointer type, or non-mode precision type, add candidate in unsigned type with the same precision. 2020-05-01 Alan Modra PR target/94145 Backport from master 2020-03-27 Alan Modra * config/rs6000/rs6000.c (rs6000_longcall_ref): Use unspec_volatile for PLT16_LO. * config/rs6000/rs6000.md (UNSPEC_PLT16_LO): Remove. (UNSPECV_PLT16_LO): Define. (pltseq_plt16_lo_): Use unspec_volatile. 2020-04-30 Carl Love * config/rs6000/emmintrin.h (_mm_movemask_epi8): Fix comment. 2020-04-29 H.J. Lu Backport from master 2020-04-29 H.J. Lu PR target/93654 * config/i386/i386.c (ix86_set_indirect_branch_type): Allow -fcf-protection with -mindirect-branch=thunk-extern and -mfunction-return=thunk-extern. * doc/invoke.texi: Update notes for -fcf-protection=branch with -mindirect-branch=thunk-extern and -mindirect-return=thunk-extern. 2020-04-21 Martin Jambor Backport from master 2020-04-09 Martin Jambor Richard Biener PR tree-optimization/94482 * tree-sra.c (create_access_replacement): Dump new replacement with TDF_UID. (sra_modify_expr): Fix handling of cases when the original EXPR writes to only part of the replacement. * tree-ssa-forwprop.c (pass_forwprop::execute): Properly verify the first operand of combinations into REAL/IMAGPART_EXPR and BIT_FIELD_REF. 2020-04-20 H.J. Lu Backport from master 2020-04-13 H.J. Lu PR target/94556 * config/i386/i386.c (ix86_expand_epilogue): Restore the frame pointer in word_mode for eh_return epilogues. 2020-04-20 Andrea Corallo Backport from mainline. 2020-04-15 Andrea Corallo PR target/94530 * config/aarch64/falkor-tag-collision-avoidance.c (valid_src_p): Check for aarch64_address_info type before accessing base field. 2020-04-20 Tamar Christina Backport from mainline. 2020-04-03 Tamar Christina PR target/94396 * common/config/aarch64/aarch64-common.c (aarch64_get_extension_string_for_isa_flags): Handle default flags. 2020-04-20 Martin Liska Backport from mainline 2020-04-17 Martin Liska Jonathan Yong <10walls@gmail.com> PR gcov-profile/94570 * coverage.c (coverage_init): Use separator properly. 2020-04-17 H.J. Lu Backport from master 2020-04-08 H.J. Lu PR target/94417 * config/i386/i386.c (rest_of_insert_endbranch): Insert ENDBR at function entry if function will be called indirectly. 2020-04-17 Kewen Lin Backport from mainline 2020-04-03 Kewen Lin PR tree-optimization/94443 * tree-vect-loop.c (vectorizable_live_operation): Use gsi_insert_seq_before to replace gsi_insert_before. 2020-04-17 Kewen Lin Backport from mainline 2020-04-01 Kewen Lin PR tree-optimization/94043 * tree-vect-loop.c (vectorizable_live_operation): Generate loop-closed phi for vec_lhs and use it for lane extraction. 2020-04-16 Michael Meissner PR target/94557 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Fix regression caused by PR target/93932 backport. Mask variable vector extract index so it does not go beyond the vector when extracting a vector element from memory. 2020-04-16 Richard Biener Backport from mainline 2020-04-07 Richard Biener PR middle-end/94479 * gimplify.c (gimplify_addr_expr): Also consider generated MEM_REFs. 2020-04-15 Max Filippov Backport from mainline. 2020-04-14 Max Filippov PR target/94584 * config/xtensa/xtensa.md (zero_extendhisi2, zero_extendqisi2) (extendhisi2_internal): Add %v1 before the load instructions. 2020-04-15 Max Filippov Backport from mainline. 2019-09-26 Max Filippov * config/xtensa/xtensa.c (hwloop_optimize): Insert zero overhead loop instruction into new basic block before the loop when basic block that precedes the loop is empty. 2020-04-15 Uroš Bizjak PR target/94603 * config/i386/i386-builtin.def (__builtin_ia32_movq128): Require OPTION_MASK_ISA_SSE2. 2020-04-11 Uroš Bizjak PR target/94494 * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE2 condition for V4SI, V8HI and V16QI modes. 2020-04-10 Claudiu Zissulescu Backport from trunk 2020-0-31 Vineet Gupta * config/arc/linux.h: GLIBC_DYNAMIC_LINKER support BE/arc700. 2020-04-09 Michael Meissner Back port from trunk 2020-02-26 Michael Meissner PR target/93932 * config/rs6000/vsx.md (vsx_extract__var, VSX_D iterator): Split the insn into two parts. This insn only does variable extract from a register. (vsx_extract__var_load, VSX_D iterator): New insn, do variable extract from memory. (vsx_extract_v4sf_var): Split the insn into two parts. This insn only does variable extract from a register. (vsx_extract_v4sf_var_load): New insn, do variable extract from memory. (vsx_extract__var, VSX_EXTRACT_I iterator): Split the insn into two parts. This insn only does variable extract from a register. (vsx_extract__var_load, VSX_EXTRACT_I iterator): New insn, do variable extract from memory. 2020-04-07 Will Schmidt Backport from mainline. 2020-03-23 Will Schmidt * config/rs6000/rs6000-call.c altivec_init_builtins(): Remove code to skip defining builtins based on builtin_mask. 2020-04-07 Jakub Jelinek PR target/94509 * config/i386/i386.c (expand_vec_perm_pshufb): Fix the check for inter-lane permutation for 64-byte modes. PR target/94488 * config/aarch64/aarch64-simd.md (ashl3, lshr3, ashr3): Force operands[2] into reg whenever it is not CONST_INT. Assume it is a REG after that instead of testing it and doing FAIL otherwise. Formatting fix. Backported from mainline 2020-04-04 Hannes Domani Jakub Jelinek PR debug/94459 * dwarf2out.c (gen_subprogram_die): Look through references, pointers, arrays, pointer-to-members, function types and qualifiers when checking if in-class DIE had an 'auto' or 'decltype(auto)' return type to emit type again on definition. 2020-04-03 Jakub Jelinek PR target/94460 * config/i386/sse.md (avx2_phwv16hi3, avx2_phdv8si3): Fix up RTL pattern to do second half of first lane from first lane of second operand and first half of second lane from second lane of first operand. 2020-04-01 Jakub Jelinek PR middle-end/94423 * tree-object-size.c (pass_object_sizes::execute): Don't call replace_uses_by for SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs, instead call replace_call_with_value. 2020-03-31 Marc Glisse Jakub Jelinek PR middle-end/94412 * fold-const.c (fold_binary_loc) : Use ANY_INTEGRAL_TYPE_P instead of INTEGRAL_TYPE_P. 2020-03-30 Jakub Jelinek PR target/93069 * config/i386/sse.md (vec_extract_lo_): Use instead of m in output operand constraint. (vec_extract_hi_): Use instead of %{%3%}. 2020-03-28 Jakub Jelinek PR tree-optimization/94329 * tree-ssa-reassoc.c (reassociate_bb): When calling reassoc_remove_stmt on the last stmt in a bb, make sure gsi_prev isn't done immediately after gsi_last_bb. 2020-03-25 Jakub Jelinek PR middle-end/94303 * varasm.c (output_constructor_array_range): If local->index RANGE_EXPR doesn't start at the current location in the constructor, skip needed number of bytes using assemble_zeros or assert we don't go backwards. 2020-03-25 Richard Biener Jakub Jelinek PR debug/94283 * tree-if-conv.c (ifcvt_local_dce): Delete dead statements backwards. 2020-03-24 Jakub Jelinek PR debug/94283 * tree-if-conv.c (ifcvt_local_dce): For gimple debug stmts, just set GF_PLF_2, but don't add them to worklist. Don't add an assigment to worklist or set GF_PLF_2 just because it is used in a debug stmt in another bb. Formatting improvements. PR debug/94277 * cgraphunit.c (check_global_declaration): For DECL_EXTERNAL and non-TREE_PUBLIC non-DECL_ARTIFICIAL FUNCTION_DECLs, set TREE_PUBLIC regardless of whether TREE_NO_WARNING is set on it or whether warn_unused_function is true or not. 2020-03-19 Jakub Jelinek PR tree-optimization/94211 * tree-ssa-phiopt.c (value_replacement): Use estimate_num_insns_seq instead of estimate_num_insns for bb_seq (middle_bb). Rename emtpy_or_with_defined_p variable to empty_or_with_defined_p, adjust all uses. 2020-04-07 Kyrylo Tkachov PR target/94518 2019-09-23 Richard Sandiford * config/aarch64/atomics.md (aarch64_store_exclusive_pair): Fix memmodel index. 2020-04-07 Jakub Jelinek PR target/94500 * config/i386/i386.c (emit_reduc_half): For V{64QI,32HI}mode handle i < 64 using avx512bw_lshrv4ti3. Formatting fixes. 2020-04-02 Martin Jambor PR tree-optimization/93435 * params.def (PARAM_SRA_MAX_PROPAGATIONS): New parameter. * tree-sra.c (propagation_budget): New variable. (budget_for_propagation_access): New function. (propagate_subaccesses_across_link): Use it. (propagate_all_subaccesses): Set up and destroy propagation_budget. * doc/invoke.texi (sra-max-propagations): New. 2020-04-03 Martin Liska Backport from mainline 2020-04-03 Martin Liska PR ipa/94445 * ipa-icf-gimple.c (func_checker::compare_gimple_call): Compare type attributes for gimple_call_fntypes. 2020-04-02 Fritz Reese Backport from master. 2020-04-02 Fritz Reese PR fortran/85982 * fortran/decl.c (match_attr_spec): Lump COMP_STRUCTURE/COMP_MAP into attribute checking used by TYPE. 2020-04-02 Richard Biener Backport from mainline 2020-03-12 Richard Biener PR tree-optimization/94103 * tree-ssa-sccvn.c (visit_reference_op_load): Avoid type punning when the mode precision is not sufficient. 2020-03-18 Richard Biener PR middle-end/94206 * gimple-fold.c (gimple_fold_builtin_memset): Avoid using partial int modes or not mode-precision integer types for the store. 2020-04-02 Jakub Jelinek PR target/94435 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): For y_mode E_[QH]Imode and y being a CONST_INT, change y_mode to SImode. 2020-04-01 Zackery Spytz * doc/extend.texi: Fix a typo in the documentation of the copy function attribute. 2020-04-01 Kyrylo Tkachov Backport from mainline 2020-03-31 Jakub Jelinek PR target/94368 * config/aarch64/constraints.md (Uph): New constraint. * config/aarch64/atomics.md (cas_short_expected_imm): New mode attr. (@aarch64_compare_and_swap): Use it instead of n in operand 2's constraint. 2020-04-01 Kyrylo Tkachov Backport from mainline 2020-01-17 Wilco Dijkstra PR target/92692 * config/aarch64/atomics.md (aarch64_compare_and_swap) Use epilogue_completed rather than reload_completed. 2020-04-01 Kyrylo Tkachov Backport from mainline 2019-09-19 Richard Henderson * config/aarch64/aarch64.opt (-moutline-atomics): New. * config/aarch64/aarch64.c (aarch64_atomic_ool_func): New. (aarch64_ool_cas_names, aarch64_ool_swp_names): New. (aarch64_ool_ldadd_names, aarch64_ool_ldset_names): New. (aarch64_ool_ldclr_names, aarch64_ool_ldeor_names): New. (aarch64_expand_compare_and_swap): Honor TARGET_OUTLINE_ATOMICS. * config/aarch64/atomics.md (atomic_exchange): Likewise. (atomic_): Likewise. (atomic_fetch_): Likewise. (atomic__fetch): Likewise. * doc/invoke.texi: Document -moutline-atomics. 2020-04-01 Kyrylo Tkachov Backport from mainline 2019-09-19 Richard Henderson * config/aarch64/aarch64 (aarch64_split_compare_and_swap): Disable strong_zero_p for aarch64_track_speculation; unify some code paths; use aarch64_gen_compare_reg instead of open-coding. 2020-04-01 Kyrylo Tkachov Backport from mainline 2019-09-19 Richard Henderson * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Add support for NE comparison of TImode values. (aarch64_emit_load_exclusive): Add support for TImode. (aarch64_emit_store_exclusive): Likewise. (aarch64_split_compare_and_swap): Disable strong_zero_p for TImode. * config/aarch64/atomics.md (@atomic_compare_and_swap): Change iterator from ALLI to ALLI_TI. (@atomic_compare_and_swap): New. (@atomic_compare_and_swap_lse): New. (aarch64_load_exclusive_pair): New. (aarch64_store_exclusive_pair): New. * config/aarch64/iterators.md (JUST_TI): New. 2020-04-01 Kyrylo Tkachov Backport from mainline 2019-09-19 Richard Henderson * config/aarch64/aarch64.c (aarch64_print_operand): Allow integer registers with %R. 2020-03-31 Carl Love Backport of: commit e97929e20b2f52e6cfc046c1302324d1b24d95e3 Author: Carl Love Date: Wed Mar 25 18:33:37 2020 -0500 PR target/93819 * gcc/config/rs6000/altivec.h: Fixed swapped arguments for vec_rlnm define. 2020-03-31 Carl Love Backport from mainline commit 68dd57808f7c0147acdb5ca72c88ff655afcb0ce Author: Carl Love Date: Fri Mar 20 18:15:05 2020 -0500 with ChangeLog typo fixed. PR target/87583 * gcc/config/rs6000/rs6000.c (rs6000_option_override_internal): Add check for TARGET_FPRND for Power 7 or newer. 2020-03-24 John David Anglin PR lto/94249 * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Define __BIG_ENDIAN__. 2020-03-24 Tamar Christina PR target/94052 * config/aarch64/aarch64-simd.md (mov): Remove paradoxical subregs of VSTRUCT modes. 2020-03-24 Bin Cheng Backport from mainline 2020-03-16 Bin Cheng PR tree-optimization/94125 * tree-loop-distribution.c (loop_distribution::break_alias_scc_partitions): Update post order number for merged scc. 2020-03-23 Will Schmidt Backport from mainline 2020-03-10 Will Schmidt PR target/90763 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add clause to handle P9V_BUILTIN_VEC_LXVL with const arguments. 2020-03-23 Iain Sandoe Backport from master. 2020-03-22 Iain Sandoe * config/i386/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Remove references to Darwin. * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): Define this unconditionally and comment on why. 2020-03-19 Jonathan Wakely Backport from mainline 2020-01-13 Jonathan Wakely PR driver/92757 * doc/invoke.texi (Warning Options): Add caveat about some warnings depending on optimization settings. 2020-03-19 Jiufu Guo PR target/93709 * gcc/config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): Check NAN and SIGNED_ZEROR for smax/smin. 2020-03-17 Jakub Jelinek PR middle-end/94189 * builtins.c (expand_builtin_strnlen): Do return NULL_RTX if we would emit a warning if it was enabled and don't depend on TREE_NO_WARNING for code-generation. Backported from mainline 2020-03-16 Jakub Jelinek PR debug/94167 * tree-inline.c (insert_init_stmt): Don't gimple_regimplify_operands DEBUG_STMTs. 2020-03-14 Jakub Jelinek PR middle-end/93566 * tree-nested.c (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Handle {,in_,task_}reduction clauses with C/C++ array sections. 2020-03-13 Jakub Jelinek PR target/94121 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use gen_int_mode instead of GEN_INT. 2020-03-12 Jakub Jelinek * doc/tm.texi.in (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change ASM_OUTPUT_ALIGNED_DECL in description to ASM_OUTPUT_ALIGNED_LOCAL and ASM_OUTPUT_DECL to ASM_OUTPUT_LOCAL. * doc/tm.texi: Regenerated. PR tree-optimization/94130 * tree-ssa-dse.c: Include gimplify.h. (increment_start_addr): If stmt has lhs, drop the lhs from call and set it after the call to the original value of the first argument. Formatting fixes. (decrement_count): Formatting fix. 2020-03-11 Jakub Jelinek PR target/94134 * config/pdp11/pdp11.c (pdp11_asm_output_var): Call switch_to_section at the start to switch to data section. Don't print extra newline if .globl directive has not been emitted. PR target/94121 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use absu_hwi instead of abs_hwi, change moffset type to unsigned HOST_WIDE_INT. PR middle-end/94111 * dfp.c (decimal_to_binary): Only use decimal128ToString if from->cl is rvc_normal, otherwise use real_to_decimal to print the number to string. PR tree-optimization/94114 * tree-loop-distribution.c (generate_memset_builtin): Call rewrite_to_non_trapping_overflow even on mem. (generate_memcpy_builtin): Call rewrite_to_non_trapping_overflow even on dest and src. 2020-03-05 Jakub Jelinek PR middle-end/93399 * tree-pretty-print.h (pretty_print_string): Declare. * tree-pretty-print.c (pretty_print_string): Remove forward declaration, no longer static. Change nbytes parameter type from unsigned to size_t. * print-rtl.c (print_value) : Use pretty_print_string and for shrink way too long strings. 2020-03-04 Jakub Jelinek PR debug/93888 * tree-inline.c (copy_decl_to_var): Copy DECL_BY_REFERENCE flag. PR tree-optimization/94001 * tree-tailcall.c (process_assignment): Before comparing op1 to *ass_var, verify *ass_var is non-NULL. 2020-03-13 Richard Biener PR tree-optimization/94163 * tree-ssa-pre.c (create_expression_by_pieces): Check whether alignment would be zero. 2020-03-13 Eric Botcazou PR rtl-optimization/94119 * resource.h (clear_hashed_info_until_next_barrier): Declare. * resource.c (clear_hashed_info_until_next_barrier): New function. * reorg.c (add_to_delay_list): Fix formatting. (relax_delay_slots): Call clear_hashed_info_until_next_barrier on the next instruction after removing a BARRIER. 2020-03-12 Bill Schmidt Backport from master 2020-03-02 Bill Schmidt PR target/87560 * rs6000-cpus.def (OTHER_ALTIVEC_MASKS): New #define. * rs6000.c (rs6000_disable_incompatible_switches): Add table entry for OPTION_MASK_ALTIVEC. 2020-03-12 Richard Earnshaw Backport from master 2020-02-10 Richard Earnshaw PR target/91913 * config/arm/arm.md (movsi_compare0): Allow SP as a source register in Thumb state and also as a destination in Arm state. Add T16 variants. 2020-03-12 Martin Liska Backport from mainline 2020-03-09 Martin Liska PR target/93800 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove set of str_align_loops and str_align_jumps as these should be set in previous 2 conditions in the function. 2020-03-12 Jakub Jelinek * BASE-VER: Set to 9.3.1. 2020-03-12 Release Manager * GCC 9.3.0 released. 2020-03-05 Jakub Jelinek PR target/94046 * config/i386/avx2intrin.h (_mm_mask_i32gather_ps): Fix first cast of SRC and MASK arguments to __m128 from __m128d. (_mm256_mask_i32gather_ps): Fix first cast of MASK argument to __m256 from __m256d. (_mm_mask_i64gather_ps): Fix first cast of MASK argument to __m128 from __m128d. * config/i386/xopintrin.h (_mm_permute2_pd): Fix first cast of C argument to __m128i from __m128d. (_mm256_permute2_pd): Fix first cast of C argument to __m256i from __m256d. (_mm_permute2_ps): Fix first cast of C argument to __m128i from __m128. (_mm256_permute2_ps): Fix first cast of C argument to __m256i from __m256. 2020-03-05 Richard Earnshaw PR target/90311 Backport from master 2019-07-18 Richard Earnshaw * config/arm/predicates.md (arm_borrow_operation): New predicate. * config/arm/arm.c (subdi3_compare1): Use CCmode for the split. (arm_subdi3, subdi_di_zesidi, subdi_di_sesidi): Likewise. (subdi_zesidi_zesidi): Likewise. (negdi2_compare, negdi2_insn): Likewise. (negdi_extensidi): Likewise. (negdi_zero_extendsidi): Likewise. (arm_cmpdi_insn): Likewise. (subsi3_carryin): Use arm_borrow_operation. (subsi3_carryin_const): Likewise. (subsi3_carryin_const0): Likewise. (subsi3_carryin_compare): Likewise. (subsi3_carryin_compare_const): Likewise. (subsi3_carryin_compare_const0): Likewise. (subsi3_carryin_shift): Likewise. (rsbsi3_carryin_shift): Likewise. (negsi2_carryin_compare): Likewise. 2020-03-04 Marek Polacek Backport from mainline 2020-01-26 Marek Polacek PR sanitizer/93436 * sanopt.c (sanitize_rewrite_addressable_params): Avoid crash on null DECL_NAME. 2020-03-03 Jakub Jelinek PR rtl-optimization/94002 * explow.c (plus_constant): Punt if cst has VOIDmode and get_pool_mode is different from mode. 2020-03-02 Jason Merrill PR c++/92601 * tree.c (verify_type_variant): Only verify TYPE_NEEDS_CONSTRUCTING of complete types. 2020-02-29 Peter Bergner Revert 2020-02-20 Peter Bergner PR target/93658 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX vector modes. 2020-02-05 Michael Meissner PR target/93568 * config/rs6000/rs6000.c (get_vector_offset): Fix Q constraint assert to use "mem". Backport from master 2020-02-03 Michael Meissner * config/rs6000/rs6000.c (get_vector_offset): New helper function to calculate the offset in memory from the start of a vector of a particular element. Add code to keep the element number in bounds if the element number is variable. (rs6000_adjust_vec_address): Move calculation of offset of the vector element to get_vector_offset. (rs6000_split_vec_extract_var): Do not do the initial AND of element here, move the code to get_vector_offset. 2020-01-06 Michael Meissner * config/rs6000/vsx.md (vsx_extract__var, VSX_D iterator): Use 'Q' for doing vector extract from memory. (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from memory. (vsx_extract__var, VSX_EXTRACT_I iterator): Use 'Q' for doing vector extract from memory. (vsx_extract__mode_var): Use 'Q' for doing vector extract from memory. 2020-02-28 Martin Liska Backport from mainline 2020-02-28 Martin Liska PR other/93965 * configure.ac: Improve detection of ld_date by requiring either two dashes or none. * configure: Regenerate. 2020-02-27 Jakub Jelinek PR c/93949 * gimplify.c (gimplify_init_constructor): Don't promote readonly DECL_REGISTER variables to TREE_STATIC. 2020-02-27 Jakub Jelinek PR tree-optimization/93945 * tree-ssa-sccvn.c (vn_reference_lookup_3): For memset with non-zero second operand, require ref->size to be a multiple of BITS_PER_UNIT. 2020-02-26 Carl Love PR target/91276 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available on ISA 3.0): The builtin-function name __builtin_crypto_vpmsumb is only for the vector unsigned short arguments. It is also listed as the name of the built-in for arguments vector unsigned short, vector unsigned int and vector unsigned long long built-ins. The name of the builtins for these arguments should be: __builtin_crypto_vpmsumh, __builtin_crypto_vpmsumw and __builtin_crypto_vpmsumd respectively. 2020-02-26 Jason Merrill PR c++/92003 * symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has non-zero address even if weak and not yet defined. 2020-02-26 Jiufu Guo PR target/93047 * config/rs6000/rs6000.md (untyped_call): Add emit_clobber. 2020-02-26 Jakub Jelinek PR tree-optimization/93820 * gimple-ssa-store-merging.c (check_no_overlap): Change RHS_CODE argument to ALL_INTEGER_CST_P boolean. (imm_store_chain_info::try_coalesce_bswap): Adjust caller. (imm_store_chain_info::coalesce_immediate_stores): Likewise. Handle adjacent INTEGER_CST store into merged_store->only_constants like overlapping one. 2020-02-25 Christophe Lyon Backport from mainline 2020-02-25 Christophe Lyon * config/arm/arm.md (required_for_purecode): New attribute. (enabled): Handle required_for_purecode. * config/arm/thumb1.md (thumb1_movsi_insn): Add alternative to work with -mpure-code. 2020-02-25 Christophe Lyon Backport from mainline 2019-12-17 Christophe Lyon * config/arm/arm-protos.h (thumb1_gen_const_int): Add new prototype. * config/arm/arm.c (arm_option_check_internal): Remove restriction on MOVT for -mpure-code. (thumb1_gen_const_int): New function. (thumb1_legitimate_address_p): Support -mpure-code. (thumb1_rtx_costs): Likewise. (thumb1_size_rtx_costs): Likewise. (arm_thumb1_mi_thunk): Likewise. * config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Likewise. * config/arm/thumb1.md (thumb1_movsi_symbol_ref): New. (*thumb1_movhf): Support -mpure-code. * doc/invoke.texi (-mpure-code): Remove restriction on MOVT. 2020-02-25 Jakub Jelinek PR rtl-optimization/93908 * combine.c (find_split_point): For store into ZERO_EXTRACT, and src with mask. 2019-02-25 Eric Botcazou * dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode. 2020-02-25 Roman Zhuykov Backport from master 2020-02-24 Roman Zhuykov * doc/install.texi (--enable-checking): Properly document current behavior. (--enable-stage1-checking): Minor clarification about bootstrap. 2020-02-24 Richard Sandiford Backport from mainline 2020-02-19 Richard Sandiford PR tree-optimization/93767 * tree-vect-data-refs.c (vect_compile_time_alias): Remove the access-size bias from the offset calculations for negative strides. 2020-02-24 Bernd Edlinger * collect2.c (tool_cleanup): Avoid calling not signal-safe functions. (maybe_run_lto_and_relink): Avoid possible signal handler access to unintialzed memory (lto_o_files). 2020-02-23 Peter Bergner Backport from master 2020-02-20 Peter Bergner PR target/93658 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX vector modes. 2020-02-23 Peter Bergner Backport from master 2020-02-05 Michael Meissner PR target/93568 * config/rs6000/rs6000.c (get_vector_offset): Fix Q constraint assert to use "mem". Backport from master 2020-02-03 Michael Meissner * config/rs6000/rs6000.c (get_vector_offset): New helper function to calculate the offset in memory from the start of a vector of a particular element. Add code to keep the element number in bounds if the element number is variable. (rs6000_adjust_vec_address): Move calculation of offset of the vector element to get_vector_offset. (rs6000_split_vec_extract_var): Do not do the initial AND of element here, move the code to get_vector_offset. 2020-02-23 Peter Bergner Backport from master 2020-01-06 Michael Meissner * config/rs6000/vsx.md (vsx_extract__var, VSX_D iterator): Use 'Q' for doing vector extract from memory. (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from memory. (vsx_extract__var, VSX_EXTRACT_I iterator): Use 'Q' for doing vector extract from memory. (vsx_extract__mode_var): Use 'Q' for doing vector extract from memory. 2020-02-21 John David Anglin * gcc/config/pa/pa.c (pa_function_value): Fix check for word and double-word size when handling aggregate return values. * gcc/config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate that homogeneous SFmode and DFmode aggregates are passed and returned in general registers. 2020-02-20 Uroš Bizjak PR target/93828 * config/i386/mmx.md (*vec_extractv2sf_1): Match source operand to destination operand for shufps alternative. (*vec_extractv2si_1): Ditto. 2020-02-20 H.J. Lu Backport from master 2020-02-13 H.J. Lu PR target/93656 * config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at the target function entry. 2020-02-18 Richard Sandiford Backport from mainline 2019-12-05 Richard Sandiford PR middle-end/92768 * tree-core.h (OEP_BITWISE): New flag. * fold-const.c (operand_compare::operand_equal_p): Handle it. * tree-vector-builder.h (tree_vector_builder::equal_p): Pass it. 2020-02-18 Richard Sandiford Backport from mainline 2019-08-09 Richard Sandiford PR middle-end/90313 * tree-tailcall.c (find_tail_calls): Reject calls that might read from an escaped RESULT_DECL. 2020-02-18 Richard Sandiford Backport from mainline 2020-01-28 Richard Sandiford PR tree-optimization/93434 * tree-predcom.c (split_data_refs_to_components): Record which components have had aliasing loads removed. Prevent store-store commoning for all such components. 2020-02-18 Richard Sandiford Backport from mainline 2019-11-29 Richard Sandiford PR tree-optimization/92710 * tree-vect-stmts.c (vectorizable_simd_clone_call): Reject vector mask arguments. 2020-02-18 Richard Sandiford Backport from mainline 2019-11-11 Richard Sandiford PR tree-optimization/92420 * tree-vect-stmts.c (get_negative_load_store_type): Move further up file. (get_group_load_store_type): Use it for reversed SLP accesses. 2020-02-18 Richard Sandiford Backport from mainline 2019-08-21 Prathamesh Kulkarni PR target/90724 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y in reg if it fails aarch64_plus_operand predicate. 2020-02-14 Hongtao Liu PR target/93724 * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32, _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, _m512_shrdi_epi64, _m512_mask_shrdi_epi64, _m512_maskz_shrdi_epi64, _mm512_shldi_epi16, _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, _mm512_shldi_epi32, _mm512_mask_shldi_epi32, _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo of lacking a closing parenthesis. * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32, _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, _m256_shrdi_epi64, _m256_mask_shrdi_epi64, _m256_maskz_shrdi_epi64, _mm256_shldi_epi16, _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16, _mm256_shldi_epi32, _mm256_mask_shldi_epi32, _mm256_maskz_shldi_epi32, _mm256_shldi_epi64, _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, _mm_shrdi_epi16, _mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi32, _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi64, _mm_mask_shrdi_epi64, _m_maskz_shrdi_epi64, _mm_shldi_epi16, _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, _mm_shldi_epi32, _mm_mask_shldi_epi32, _mm_maskz_shldi_epi32, _mm_shldi_epi64, _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto. 2020-02-16 Uroš Bizjak PR target/93743 * config/i386/i386.md (atan2xf3): Swap operands 1 and 2. (atan23): Update operand order in the call to gen_atan2xf3. 2020-02-15 Jakub Jelinek PR tree-optimization/93744 * match.pd (((m1 >/=/<= m2) * d -> (m1 >/=/<= m2) ? d : 0): For GENERIC, make sure @2 in the first and @1 in the other patterns has no side-effects. 2020-02-14 Eric Botcazou PR target/93704 * config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in conjunction with TARGET_GNU_TLS in early return. 2020-02-14 Alexander Monakov Backport from mainline PR rtl-optimization/88879 * sel-sched.c (sel_target_adjust_priority): Remove assert. 2020-02-14 Richard Biener Backport from mainline 2020-02-05 Richard Biener PR middle-end/90648 * genmatch.c (dt_node::gen_kids_1): Emit number of argument checks before matching calls. 2020-02-14 Richard Biener Backport from mainline 2020-01-22 Richard Biener PR tree-optimization/93381 * tree-ssa-structalias.c (find_func_aliases): Assume offsetting throughout, handle all conversions the same. 2020-02-14 Richard Biener Backport from mainline 2020-01-28 Richard Biener PR tree-optimization/93439 * tree-parloops.c (create_loop_fn): Move clique bookkeeping... * tree-cfg.c (move_sese_region_to_fn): ... here. (verify_types_in_gimple_reference): Verify used cliques are tracked. 2020-02-14 Richard Biener Backport from mainline 2020-01-09 Richard Biener PR middle-end/93054 * gimplify.c (gimplify_expr): Deal with NOP definitions. 2020-02-14 Richard Biener Backport from mainline 2020-01-20 Richard Biener PR debug/92763 * dwarf2out.c (prune_unused_types): Unconditionally mark called function DIEs. 2020-02-14 Richard Biener Backport from mainline 2019-11-29 Richard Biener PR tree-optimization/92704 * tree-if-conv.c (combine_blocks): Deal with virtual PHIs in loops performing only loads. 2020-02-14 Richard Biener Backport from mainline 2019-11-27 Richard Biener PR middle-end/92674 * tree-inline.c (expand_call_inline): Delay purging EH/abnormal edges and instead record blocks in bitmap. (gimple_expand_calls_inline): Adjust. (fold_marked_statements): Delay EH cleanup until all folding is done. (optimize_inline_calls): Do EH/abnormal cleanup for calls after inlining finished. 2020-02-13 Jakub Jelinek PR target/93696 * config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8, _mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8, _mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8, _mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W, pass __A to the builtin followed by __W instead of __A followed by __B. * config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32, _mm512_mask_popcnt_epi64): Likewise. * config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32, _mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64, _mm256_mask_popcnt_epi64): Likewise. PR target/93673 * config/i386/sse.md (k): Drop mode from last operand and use const_0_to_255_operand predicate instead of immediate_operand. (avx512dq_fpclass, avx512dq_vmfpclass, vgf2p8affineinvqb_, vgf2p8affineqb_): Drop mode from const_0_to_255_operand predicated operands. Backported from mainline 2020-02-12 Jakub Jelinek PR target/93670 * config/i386/sse.md (VI48F_256_DQ): New mode iterator. (avx512vl_vextractf128): Use it instead of VI48F_256. Remove TARGET_AVX512DQ from condition. (vec_extract_lo_): Use instead of in condition. If TARGET_AVX512DQ is false, emit vextract*64x4 instead of vextract*32x8. (vec_extract_lo_): Drop from condition. 2020-02-10 Jakub Jelinek PR target/93637 * config/i386/sse.md (VI_256_AVX2): New mode iterator. (vcond_mask_): Use it instead of VI_256. Change condition from TARGET_AVX2 to TARGET_AVX. 2020-02-08 Uroš Bizjak Jakub Jelinek PR target/65782 * config/i386/i386.h (CALL_USED_REGISTERS): Make xmm16-xmm31 call-used even in 64-bit ms-abi. 2020-02-06 Jakub Jelinek PR libgomp/93515 * omp-low.c (use_pointer_for_field): For nested constructs, also look for map clauses on target construct. (scan_omp_1_stmt) : Bump temporarily taskreg_nesting_level. PR libgomp/93515 * gimplify.c (gimplify_scan_omp_clauses) : If adding shared clause, call omp_notice_variable on outer context if any. 2020-02-05 Jakub Jelinek PR middle-end/93555 * omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or simd_clone_create failed when i == 0, adjust clone->nargs by clone->inbranch. 2020-01-30 Jakub Jelinek PR middle-end/93505 * combine.c (simplify_comparison) : Punt on out of range rotate counts. 2020-01-28 Jakub Jelinek PR target/93418 * config/i386/i386.c (ix86_fold_builtin) : If mask is not -1 or is_vshift is true, use new_vector with number of elts npatterns rather than new_unary_operation. 2020-01-23 Jakub Jelinek PR rtl-optimization/93402 * postreload.c (reload_combine_recognize_pattern): Don't try to adjust USE insns. 2020-02-11 Tamar Christina Backport from mainline 2020-01-31 Tamar Christina PR rtl-optimization/91838 * simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case to truncate if allowed or reject combination. 2020-02-07 H.J. Lu Backport from mainline 2020-02-07 H.J. Lu PR target/85667 * config/i386/i386.c (function_arg_ms_64): Add a type argument. Don't return aggregates with only SFmode and DFmode in SSE register. (ix86_function_arg): Pass type to function_arg_ms_64. 2020-01-30 John David Anglin * config/pa/pa.c (pa_elf_select_rtx_section): Place function pointers without a DECL in .data.rel.ro.local. 2020-01-30 Kito Cheng Backport from mainline 2020-01-21 Kito Cheng PR target/93304 * config/riscv/riscv-protos.h (riscv_hard_regno_rename_ok): New. * config/riscv/riscv.c (riscv_hard_regno_rename_ok): New. * config/riscv/riscv.h (HARD_REGNO_RENAME_OK): Defined. 2020-01-29 Szabolcs Nagy Backport from mainline 2020-01-21 Szabolcs Nagy PR target/92424 * config/aarch64/aarch64.c (aarch64_declare_function_name): Set cfun->machine->label_is_assembled. (aarch64_print_patchable_function_entry): New. (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define. * config/aarch64/aarch64.h (struct machine_function): New field, label_is_assembled. 2020-01-27 Wilco Dijkstra PR target/92692 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap) Add assert to ensure prolog has been emitted. (aarch64_split_atomic_op): Likewise. * config/aarch64/atomics.md (aarch64_compare_and_swap) Use epilogue_completed rather than reload_completed. (aarch64_atomic_exchange): Likewise. (aarch64_atomic_): Likewise. (atomic_nand): Likewise. (aarch64_atomic_fetch_): Likewise. (atomic_fetch_nand): Likewise. (aarch64_atomic__fetch): Likewise. (atomic_nand_fetch): Likewise. 2020-01-22 Jakub Jelinek PR target/93335 * config/aarch64/aarch64.c (aarch64_expand_subvti): Only use gen_subdi3_compare1_imm if low_in2 satisfies aarch64_plus_immediate predicate, not whenever it is CONST_INT. Otherwise, force_reg it. Call force_reg on high_in2 unconditionally. PR target/91298 * output.h (assemble_name_resolve): Declare. * varasm.c (assemble_name_resolve): New function. (assemble_name): Use it. * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define. Backported from mainline 2020-01-21 Jakub Jelinek PR target/93333 * config/riscv/riscv.c (riscv_rtx_costs) : Verify the last two operands are CONST_INT_P before using them as such. PR target/93073 * config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for compare_mode other than SFmode or DFmode. 2020-01-15 Jakub Jelinek PR target/93009 * config/i386/sse.md (*fma_fmadd__bcst_1, *fma_fmsub__bcst_1, *fma_fnmadd__bcst_1, *fma_fnmsub__bcst_1): Use just a single alternative instead of two, make operands 1 and 2 commutative. 2020-01-09 Jakub Jelinek PR inline-asm/93202 * config/riscv/riscv.c (riscv_print_operand_reloc): Use output_operand_lossage instead of gcc_unreachable. * doc/md.texi (riscv f constraint): Fix typo. 2020-01-03 Jakub Jelinek PR rtl-optimization/93088 * loop-iv.c (find_single_def_src): Punt after looking through 128 reg copies for regs with single definitions. Move definitions to first uses. 2020-01-02 Jakub Jelinek PR ipa/93087 * predict.c (compute_function_frequency): Don't call warn_function_cold on functions that already have cold attribute. 2020-01-20 Richard Biener Backport from mainline PR middle-end/93246 * alias.c (record_component_aliases): Take superset to record into, recurse for alias-set zero fields. (record_component_aliases): New oveerload wrapping around the above. 2020-01-19 Eric S. Raymond Sandra Loosemore Backport from mainline: 2020-01-19 Eric S. Raymond * doc/contribute.texi: Update for SVN -> Git transition. * doc/install.texi: Likewise. 2020-01-15 Uroš Bizjak PR target/93254 * config/i386/i386.md (*movsf_internal): Require SSE2 ISA for alternatives 9 and 10. Do not require SSE2 ISA for alternatives 14 and 15. 2020-01-14 Martin Jambor Backport from mainline 2020-01-13 Martin Jambor PR ipa/93223 * ipa-cp.c (devirtualization_time_bonus): Check whether isummary is NULL. 2020-01-10 Martin Jambor Backport from mainline 2019-12-17 Martin Jambor PR ipa/92971 * Ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix definition of values, release memory on exit. 2020-01-10 Przemyslaw Wirkus Backport from trunk PR target/93188 * config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants when only building rm-profile multilibs. 2020-01-10 Przemyslaw Wirkus Backport from trunk * config/arm/t-multilib: Use arm->thumb multilib reuse rules on a-profile. 2020-01-09 Martin Liska Backport from mainline 2019-12-12 Jan Hubicka * ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering of execution of function call parameters. 2020-01-08 Georg-Johann Lay Backport from 2020-01-08 trunk r279995. Add -nodevicespecs option for avr. PR target/93182 * config/avr/avr.opt (-nodevicespecs): New driver option. * config/avr/driver-avr.c (avr_devicespecs_file): Only issue "-specs=device-specs/..." if that option is not set. * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document. 2020-01-06 John David Anglin * config/pa/pa.md: Revert change to use ordered_comparison_operator instead of cmpib_comparison_operator in cmpib patterns. * config/pa/predicates.md (cmpib_comparison_operator): Revert removal of cmpib_comparison_operator. Revise comment. 2020-01-01 John David Anglin PR target/67834 * config/pa/pa.c (pa_elf_select_rtx_section): New. Put references to COMDAT group function labels in .data.rel.ro.local section. * config/pa/pa32-linux.h (TARGET_ASM_SELECT_RTX_SECTION): Define. PR target/93111 * config/pa/pa.md (scc): Use ordered_comparison_operator instead of comparison_operator in B and S integer comparisons. Likewise, use ordered_comparison_operator instead of cmpib_comparison_operator in cmpib patterns. * config/pa/predicates.md (cmpib_comparison_operator): Remove. 2019-12-25 Iain Sandoe Backport from mainline. 2019-12-14 Iain Sandoe * config/darwin.h (DARWIN_EXTRA_SPECS): Add new bundle spec. (DARWIN_BUNDLE1_SPEC): New. (STARTFILE_SPEC): Use darwin bundle spec. * config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New. (DARWIN_DYLIB1_SPEC): Delete duplicate. 2019-12-20 Jakub Jelinek PR fortran/92756 * omp-low.c (check_omp_nesting_restrictions): If lang_GNU_Fortran, diagnose teams not closely nested inside of target. Backported from mainline 2019-12-14 Jakub Jelinek PR ipa/92357 * ipa-fnsummary.c (ipa_fn_summary_write): Use lto_symtab_encoder_iterator with lsei_start_function_in_partition and lsei_next_function_in_partition instead of walking all cgraph nodes in encoder. PR tree-optimization/92930 * ipa-pure-const.c (special_builtin_state): Don't handle BUILT_IN_APPLY. 2019-12-12 Jakub Jelinek PR target/92904 * config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and not need_temp, decrease alignment of the read because the GPR save area only guarantees 8-byte alignment. 2019-12-11 Jakub Jelinek PR target/92723 * tree-vect-patterns.c (vect_recog_rotate_pattern): If dt is not vect_internal_def, use oprnd1 as is, without trying to cast it. Formatting fix. 2019-11-27 Jakub Jelinek PR debug/92664 * dwarf2out.c (lookup_filename): Use "" instead of "". 2019-11-26 Jakub Jelinek PR tree-optimization/92644 * tree-ssa-phiopt.c (minmax_replacement): Add INTEGRAL_TYPE_P check next to INTEGER_CST checks. 2019-11-23 Jakub Jelinek PR target/92615 * config/i386/i386.c (ix86_md_asm_adjust): If dest_mode is GET_MODE (dest), is not QImode, using ZERO_EXTEND and dest is not register_operand, force x into register before storing it into dest. Formatting fix. 2019-12-20 Roman Zhuykov Backport from mainline 2019-12-13 Roman Zhuykov PR rtl-optimization/92591 * modulo-sched.c (ps_add_node_check_conflicts): Improve checking for history > 0 case. * params.def (sms-dfa-history): Limit to 16. 2019-12-19 Georg-Johann Lay Backport support for some AVR devices from avrxmega3 family from SVN trunk r279309, r278387, r278389, r278478. PR target/92545 * config/avr/avr-arch.h (avr_mcu_t) : New field. * config/avr/avr-devices.c (avr_mcu_types): Adjust initializers. * config/avr/avr-mcus.def (AVR_MCU): Add respective field. * config/avr/gen-avr-mmcu-specs.c (print_mcu) <*cpp, *cpp_mcu, *cpp_avrlibc, *link_pm_base_address>: Emit code for spec definitions. * config/avr/gen-avr-mmcu-texi.c: Rewrite. * doc/avr-mmcu.texi: Regenerate. 2019-12-17 Andreas Krebbel Backport from mainline 2019-12-16 Andreas Krebbel PR target/92950 * config/s390/vector.md ("mov" for V_8): Replace lh, lhy, and lhrl with llc. 2019-12-12 Vineet Gupta Backport from mainline * config/arc/arc-modes.def (CC_FPUE): New Mode CC_FPUE which helps codegen generate exceptions even for quiet NaN. * config/arc/arc.c (arc_init_reg_tables): Handle New CC_FPUE mode. (get_arc_condition_code): Likewise. (arc_select_cc_mode): LT, LE, GT, GE to use the New CC_FPUE mode. * config/arc/arc.h (REVERSE_CONDITION): Handle New CC_FPUE mode. * config/arc/predicates.md (proper_comparison_operator): Likewise. * config/arc/fpu.md (cmpsf_fpu_trap): New Pattern for CC_FPUE. (cmpdf_fpu_trap): Likewise. 2019-12-12 Claudiu Zissulescu Backport from mainline * config/arc/arc.md (iterator SDF): Check TARGET_FP_DP_BASE. (cstoredi4): Use TARGET_HARD_FLOAT. 2019-12-10 Kewen Lin Backport from mainline 2019-11-27 Kewen Lin PR tree-optimization/91790 * gcc/tree-vect-stmts.c (vectorizable_load): Use the adjusted DR for vect_setup_realignment when first_stmt_info is different from first_stmt_info_for_drptr. 2019-12-09 Eric Botcazou * tree.c (build_array_type_1): Add SET_CANONICAL parameter and compute TYPE_CANONICAL from the element type only if it is true. Remove a few obsolete lines and adjust recursive call. (fld_process_array_type): Adjust call to build_array_type_1. (build_array_type): Likewise. (build_nonshared_array_type): Likewise. 2019-12-02 Sandra Loosemore Fix bugs relating to flexibly-sized objects in nios2 backend. PR target/92499 * config/nios2/nios2.c (nios2_in_small_data_p): Do not consider objects of flexible types to be small if they have internal linkage or are declared extern. * config/nios2/nios2.h (ASM_OUTPUT_ALIGNED_LOCAL): Replace with... (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ...this. Use targetm.in_small_data_p instead of the size of the object initializer. * tree.c (flexible_array_type_p): Move from C front end, and generalize to handle fields in non-C structures. * tree.h (flexible_array_type_p): Declare. 2019-12-02 Li Jia He Partial backport from mainline PR target/92098 2019-11-08 Kewen Lin PR target/92132 * config/rs6000/predicates.md (signed_or_equality_comparison_operator): New predicate. (unsigned_or_equality_comparison_operator): Likewise. * config/rs6000/rs6000.md (one_cmpl2): Remove expand. (one_cmpl3_internal): Rename to one_cmpl2. * config/rs6000/vector.md (vcond_mask_ for VEC_I and VEC_I): New expand. (vec_cmp for VEC_I and VEC_I): Likewise. (vec_cmpu for VEC_I and VEC_I): Likewise. 2019-11-27 Richard Biener Backport from mainline 2019-10-25 Richard Biener PR tree-optimization/92222 * tree-vect-slp.c (_slp_oprnd_info::first_pattern): Remove. (_slp_oprnd_info::second_pattern): Likewise. (_slp_oprnd_info::any_pattern): New. (vect_create_oprnd_info): Adjust. (vect_get_and_check_slp_defs): Compute whether any stmt is in a pattern. (vect_build_slp_tree_2): Avoid building up a node from scalars if any of the operand defs, not just the first, is in a pattern. 2019-11-21 Jakub Jelinek PR tree-optimization/91355 * tree-ssa-sink.c (select_best_block): Use >= rather than > for early_bb scaled count with best_bb count comparison. 2019-11-21 Richard Biener Revert 2019-09-17 Richard Biener PR tree-optimization/91790 * tree-vect-stmts.c (vectorizable_load): For BB vectorization use the correct DR for setting up realignment. 2019-11-20 Peter Bergner Backport from mainline 2019-11-07 Peter Bergner PR other/92090 * config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT modes for integer constants. 2019-11-20 Michael Matz Backport from mainline PR middle-end/90796 * gimple-loop-jam.c (any_access_function_variant_p): New function. (adjust_unroll_factor): Use it to constrain safety, new parameter. (tree_loop_unroll_and_jam): Adjust call and profitable unroll factor. 2019-11-20 Joseph Myers * doc/invoke.texi (-Wc11-c2x-compat): Document. 2019-11-20 Jakub Jelinek PR middle-end/90840 * expmed.c (store_bit_field_1): Handle the case where op0 is not a MEM and has a mode that doesn't have corresponding integral type. PR target/90867 * config/i386/i386.c (ix86_valid_target_attribute_tree): Don't clear opts->x_ix86_isa_flags{,2} here... (ix86_valid_target_attribute_inner_p): ... but here when seeing arch=. Also clear opts->x_ix86_isa_flags{,2}_explicit. PR c/90898 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Remove assertion. (insert_clobbers_for_var): Fix a typo in function comment. 2019-11-19 Jakub Jelinek PR middle-end/91450 * internal-fn.c (expand_mul_overflow): For s1 * s2 -> ur, if one operand is negative and one non-negative, compare the non-negative one against 0 rather than comparing s1 & s2 against 0. Otherwise, don't compare (s1 & s2) == 0, but compare separately both s1 == 0 and s2 == 0, unless one of them is known to be negative. Remove tem2 variable, use tem where tem2 has been used before. 2019-11-19 Eric Botcazou * doc/invoke.texi (-gno-internal-reset-location-views): Fix typo. 2019-11-18 Segher Boessenkool Backport from trunk 2019-11-12 Segher Boessenkool * config/rs6000/rs6000.md (rs6000_set_fpscr_drn): Use ULL on big hexadecimal literal. 2019-11-15 Tamar Christina Backport from mainline 2019-09-24 Stamatis Markianos-Wright * config/aarch64/aarch64-option-extensions.def (fp16fml): Update hwcap string for fp16fml. 2019-11-15 Ilya Leoshkevich Backport from mainline PR rtl-optimization/92430 * cfgcleanup.c (pass_jump_after_combine::gate): New function. (pass_jump_after_combine::execute): Free dominance info at the beginning. 2019-11-13 Claudiu Zissulescu Backport from mainline * config/arc/arc.md (movsi_ne): Reorder instruction variants and use new register constraint letters. * config/arc/arc.c (arc_legitimize_pic_address): Consider UNSPECs as well, if interesting recover the symbol and re-legitimize the pic address. 2019-11-14 Martin Liska Backport from mainline 2019-11-14 Martin Liska PR target/92389 * config/i386/i386.h: Add PTA_AVX512VPOPCNTDQ to PTA_ICELAKE_CLIENT which is later interited by PTA_ICELAKE_SERVER and PTA_TIGERLAKE. 2019-11-13 Dragan Mladjenovic Backport from mainline * config/mips/mips.md (rotr3): Sanitize the constant argument instead of asserting its value. 2019-11-11 Richard Biener Backport from mainline 2019-06-25 Richard Biener PR tree-optimization/90930 * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression into parallel form in the last pass instance. 2019-11-11 H.J. Lu Backport from trunk: PR target/87833 * config/i386/intelmic-mkoffload.c (prepare_target_image): Put -fPIC and -shared the last to create offload image. 2019-11-11 Thomas Schwinge Backport from trunk: * gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead of 'offset'. Backport from trunk: * Makefile.in (LANG_CONFIGUREFRAGS): Define. (config.status): Use/depend on it. * configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'. * configure: Regenerate. 2019-11-09 John David Anglin Backport from mainline 2019-11-07 John David Anglin * config/pa/pa.md (memory_barrier): Revise to use ldcw barriers. Enhance comment. (memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New insn patterns using ldcw instruction. (memory_barrier): Remove insn pattern using sync instruction. * config/pa/pa.opt (coherent-ldcw): New option. (ordered): New option. 2019-11-08 Jakub Jelinek PR c++/92384 * function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm slot. (assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type force creation of a unique data.stack_parm slot. Backported from mainline 2019-10-31 Jakub Jelinek PR middle-end/92231 * tree.h (fndecl_built_in_p): Use fndecl_built_in_p instead of DECL_BUILT_IN in comment. Remove redundant ()s around return argument. * tree.c (free_lang_data_in_decl): Check if var is FUNCTION_DECL before calling fndecl_built_in_p. * gimple-fold.c (gimple_fold_stmt_to_constant_1): Check if TREE_OPERAND (fn, 0) is a FUNCTION_DECL before calling fndecl_built_in_p on it. PR c++/90947 * tree.h (type_initializer_zero_p): Remove. * tree.c (type_initializer_zero_p): Remove. 2019-10-29 Jakub Jelinek * doc/install.texi (--enable-offload-targets): Fix up a typo in the example, use actual names of supported offload targets. 2019-11-08 Eric Botcazou PR target/92095 * config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare. * config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest change. (got_helper_needed): New static variable. (output_load_pcrel_sym): New function. (get_pc_thunk_name): Remove after inlining... (load_got_register): ...here. Rework the initialization of the GOT register and of the GOT helper. (save_local_or_in_reg_p): Test the REGNO of the GOT register. (sparc_file_end): Test got_helper_needed to decide whether the GOT helper must be emitted. Use output_asm_insn instead of fprintf. (sparc_init_pic_reg): In PIC mode, always initialize the PIC register if optimization is enabled. * config/sparc/sparc.md (load_pcrel_sym): Emit the assembly by calling output_load_pcrel_sym. 2019-11-06 Ilya Leoshkevich Backport from mainline * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP (*op0, 1) instead of XEXP (*op1, 0). 2019-11-05 Segher Boessenkool Backport from trunk 2019-10-24 Segher Boessenkool * config/rs6000/altivec.md (altivec_vavgu): Rename to... (uavg3_ceil): ... This. (altivec_vavgs): Rename to... (avg3_ceil): ... This. * config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH, VAVGUW, VAVGSW): Adjust. 2019-11-05 Segher Boessenkool Backport from trunk 2019-10-26 Segher Boessenkool PR target/91289 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't add an immediate to r0; use r11 instead. Save and restore r11 to r0 around this. 2019-11-05 Andreas Krebbel Backport from mainline 2019-11-05 Andreas Krebbel * config/s390/s390.c (s390_vector_alignment): Check if the value fits into uhwi before using it. 2019-11-01 John David Anglin Backport from mainline 2019-10-03 John David Anglin * config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence. (pa_attr_length_call): Adjust length for 64-bit plabel sequence. 2019-11-01 John David Anglin Backport from mainline 2019-10-03 John David Anglin * config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust. 2019-10-30 Iain Sandoe Backport from mainline 2019-10-13 Iain Sandoe * config/darwin.c (machopic_indirection_name): Rework the function to emit linker-visible symbols only for indirections in the data section. Clean up the code and update comments. 2019-10-30 Iain Sandoe Backport from mainline 2019-10-09 Iain Sandoe * config/darwin.c (darwin_override_options): Make the check for Objective-C ABI version more specific for 64bit code. Backport from mainline 2019-10-06 Iain Sandoe * config/darwin.c (darwin_override_options): Adjust objective-c ABI version error messages to avoid punctuation and contracted negations. 2019-10-30 Iain Sandoe Backport from mainline 2019-07-03 Iain Sandoe * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin. (STARTFILE_SPEC): Split crt3 into a separate spec. (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec. (DARWIN_CRT2_SPEC): New. (DARWIN_CRT3_SPEC): New. (MIN_LD64_OMIT_STUBS): Revise to 62.1. * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions. (DARWIN_CRT3_SPEC): New. 2019-10-30 Iain Sandoe Backport from mainline 2019-06-27 Iain Sandoe * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the spec. Backport from mainline 2019-06-25 Iain Sandoe * config/rs6000/darwin.h (ENDFILE_SPEC): New. 2019-10-30 Iain Sandoe Backport from mainline 2019-06-18 Iain Sandoe * config/darwin.c (darwin_emit_unwind_label): New. (darwin_override_options): Set darwin_emit_unwind_label as needed. 2019-10-30 Iain Sandoe Backport from mainline 2019-08-13 Iain Sandoe * config/darwin.c (machopic_indirect_call_target): Rename symbol stub flag. (darwin_override_options): Likewise. * config/darwin.h: Likewise. * config/darwin.opt: Likewise. * config/i386/i386.c (output_pic_addr_const): Likewise. * config/rs6000/darwin.h: Likewise. * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise. * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ... ... this TARGET_MACHO_SYMBOL_STUBS. (FUNCTION_PROFILER):Likewise. * config/i386/i386.h: Likewise. Backport from mainline 2019-06-16 Iain Sandoe * config/darwin.c (machopic_indirect_call_target): Use renamed darwin_picsymbol_stubs to decide on output. (darwin_override_options): Handle darwin_picsymbol_stubs. * config/darwin.h (MIN_LD64_OMIT_STUBS): New. (LD64_VERSION): Revise default. * config/darwin.opt: (mpic-symbol-stubs): New option. (darwin_picsymbol_stubs): New variable. * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS): rename to TARGET_MACHO_PICSYM_STUBS. * config/i386/i386.c (output_pic_addr_const): Likewise. * config/i386/i386.h Likewise. * config/rs6000/darwin.h: Likewise. * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed darwin_picsymbol_stubs. 2019-10-30 Dragan Mladjenovic Backport from mainline 2019-07-09 Dragan Mladjenovic * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal for both call instructions. 2019-10-30 Thomas Schwinge Backport from trunk: 2019-05-06 Richard Biener * dwarf2out.c (mem_loc_descriptor): Initialize int_mode. 2019-10-28 Uroš Bizjak PR target/92225 * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE4_2 condition for V2DImode. 2019-10-28 Ilya Leoshkevich Backport from mainline PR rtl-optimization/92007 * cfgcleanup.c (thread_jump): Add an assertion that we don't call it after reload if hot/cold partitioning has been done. (class pass_postreload_jump): Rename to pass_jump_after_combine. (make_pass_postreload_jump): Rename to make_pass_jump_after_combine. * passes.def(pass_postreload_jump): Move before reload, rename to pass_jump_after_combine. * tree-pass.h (make_pass_postreload_jump): Rename to make_pass_jump_after_combine. 2019-10-28 Peter Bergner Jiufu Guo PR target/70010 * config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if the callee explicitly disables some isa_flags the caller is using. 2019-10-27 Iain Sandoe Backport from mainline 2019-10-17 Iain Sandoe PR target/65342 * config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete. (movdi_low_st): Delete. * config/rs6000/rs6000.c (darwin_rs6000_legitimate_lo_sum_const_p): New. (mem_operand_gpr): Validate Mach-O LO_SUM cases separately. * config/rs6000/rs6000.md (movsi_low): Delete. 2019-10-27 Iain Sandoe Backport from mainline 2019-10-12 Iain Sandoe PR target/67183 * config/darwin.c (machopic_indirection): New field to flag non-lazy-symbol-pointers in the data section. (machopic_indirection_name): Compute if an indirection should appear in the data section. (machopic_output_data_section_indirection): New callback split from machopic_output_indirection. (machopic_output_stub_indirection): Likewise. (machopic_output_indirection): Retain the code for non-lazy symbol pointers in their regular section. (machopic_finish): Use the new callbacks to order the indirection output. 2019-10-27 Iain Sandoe Backport from mainline 2019-10-12 Iain Sandoe * config/darwin-protos.h (machopic_finish): Delete. * config/darwin.c (machopic_finish): Make static. Backport from mainline 2019-10-09 Iain Sandoe * config/darwin.c (machopic_indirect_data_reference): Set flag to indicate that the new symbol is an indirection. (machopic_indirect_call_target): Likewise. * config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New. (MACHO_SYMBOL_INDIRECTION_P): New. (MACHO_SYMBOL_FLAG_STATIC): Adjust bit number. Backport from mainline 2019-10-08 Iain Sandoe * config/darwin.c (machopic_indirect_data_reference): Check for required indirections before making direct access to defined values. (machopic_output_indirection): Place the indirected pointes for required indirections into the non-lazy symbol pointers section. (darwin_encode_section_info): * config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New. (MACHO_SYMBOL_MUST_INDIRECT_P): New. Backport from mainline 2019-10-07 Iain Sandoe * config/darwin.c (machopic_output_indirection): Don't put hidden symbol indirections into the .data section, use the non-lazy symbol pointers section as normal. (darwin_encode_section_info): Record if a symbol is hidden. * config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New. (MACHO_SYMBOL_HIDDEN_VIS_P): New. Backport from mainline 2019-10-07 Iain Sandoe * config/darwin.c (machopic_symbol_defined_p): Use symbol flag predicates instead of accessing bits directly. (machopic_indirect_call_target): Likewise. (machopic_output_indirection): Likewise. (darwin_encode_section_info): Improve description. Use renamed symbol flags. Use predicate macros for variables and functions. * config/darwin.h: Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE. Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED. Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC. (MACHO_SYMBOL_VARIABLE_P): New. (MACHO_SYMBOL_DEFINED_P):New. (MACHO_SYMBOL_STATIC_P): New. * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete. (SYMBOL_FLAG_SUBT_DEP): New. * config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New. 2019-10-25 Jan Hubicka Backport from mainline 2019-10-11 Jan Hubicka * gimple-streamer-out.c (output_gimple_stmt): Add explicit function parameter. * lto-streamer-out.c: Include tree-dfa.h. (output_cfg): Do not use cfun. (lto_prepare_function_for_streaming): New. (output_function): Do not push cfun; do not initialize loop optimizer. * lto-streamer.h (lto_prepare_function_for_streaming): Declare. * passes.c (ipa_write_summaries): Use it. (ipa_write_optimization_summaries): Do not modify bodies. * tree-dfa.c (renumber_gimple_stmt_uids): Add function parameter. * tree.dfa.h (renumber_gimple_stmt_uids): Update prototype. * tree-ssa-dse.c (pass_dse::execute): Update use of renumber_gimple_stmt_uids. * tree-ssa-math-opts.c (pass_optimize_widening_mul::execute): Likewise. 2019-10-12 Jan Hubicka * lto-streamer-out.c (collect_block_tree_leafs): Renumber statements so non-virutal are before virutals. (output_function): Avoid body modifications. 2019-10-25 Richard Earnshaw Backport from mainline 2019-05-08 Mihail Ionescu Richard Earnshaw PR target/88167 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New function. (thumb1_epilogue_unused_call_clobbered_lo_regs): New function. (thumb1_compute_save_core_reg_mask): Don't force a spare work register if both the epilogue and prologue can use call-clobbered regs. (thumb1_unexpanded_epilogue): Use thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for picking temporaries for restoring high regs to match that of the prologue where possible. (thumb1_expand_prologue): Add any usable call-clobbered low registers to the list of work registers. Detect if the return address is still live at the end of the prologue and avoid using it for a work register if so. If the return address is not live, add LR to the list of pushable regs after the first pass. 2019-10-25 Jan Hubicka Backport from mainline 2019-10-24 Jan Hubicka * symbols-summary.h (fast_function_summary::release, fast_call_summary::release): Free m_vector. 2019-10-25 Jan Hubicka Backport from mainline 2019-10-18 Jakub Jelinek PR middle-end/92153 * ggc-page.c (release_pages): Read g->alloc_size before free rather than after it. 2019-10-11 Jan Hubicka * ggc-page.c (release_pages): Output statistics when !quiet_flag. (ggc_collect): Dump later to not interfere with release_page dump. (ggc_trim): New function. * ggc-none.c (ggc_trim): New. * ggc.h (ggc_trim): Declare. 2019-10-24 Mihail Ionescu Backport from mainline 2019-10-18 Andre Vieira * config/arm/t-multilib: Add new multilib variants and new mappings. 2019-10-24 Iain Sandoe Backport from mainline 2019-10-23 Iain Sandoe * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard against out of range max skip or log values. 2019-10-23 Peter Bergner Backport from mainline 2019-10-08 Tulio Magno Quites Machado Filho * config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain. 2019-10-23 Martin Liska Backport from mainline 2019-09-26 Martin Liska PR tree-optimization/91885 * tree-vectorizer.c (try_vectorize_loop_1): Add TODO_update_ssa_only_virtuals similarly to what slp pass does. 2019-10-23 Eric Botcazou PR tree-optimization/92131 * tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting range would be symbolic, drop to varying for any explicit overflow in the constant part or if neither range is a singleton. 2019-10-23 Richard Biener Backport from mainline 2019-10-17 Richard Biener PR debug/91887 * dwarf2out.c (gen_formal_parameter_die): Also try to match context_die against a DW_TAG_GNU_formal_parameter_pack parent. 2019-10-21 Jakub Jelinek Backported from mainline 2019-10-17 Jakub Jelinek PR tree-optimization/92056 * tree-object-size.c (cond_expr_object_size): Return early if then_ processing resulted in unknown size. 2019-10-05 Jakub Jelinek PR tree-optimization/91734 * generic-match-head.c: Include fold-const-call.h. * match.pd (sqrt(x) cmp c): Check the boundary value and in case inexact computation of c*c affects comparison of the boundary, turn LT_EXPR into LE_EXPR, GE_EXPR into GT_EXPR, LE_EXPR into LT_EXPR or GT_EXPR into GE_EXPR. Punt for sqrt comparisons against NaN and for -frounding-math. For c2, try the next smaller or larger floating point constant depending on comparison code and if it has the same sqrt as c2, use it instead of c2. 2019-09-29 Jakub Jelinek PR bootstrap/90543 * optc-save-gen.awk: Fix up printing string option differences. 2019-09-27 Jakub Jelinek PR middle-end/91920 * gimplify.c (omp_default_clause): Predetermine DECL_IN_CONSTANT_POOL variables as shared. 2019-09-11 Jakub Jelinek PR tree-optimization/91723 * tree-vect-stmts.c (vectorizable_call): Use types_compatible_p check instead of pointer equality when checking if argument vectypes are the same. 2019-09-07 Jakub Jelinek PR tree-optimization/91665 * tree-vect-loop.c (vectorizable_reduction): Punt if base has type incompatible with the type of PHI result. 2019-09-06 Jakub Jelinek * function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P before testing TYPE_TRANSPARENT_AGGR. * calls.c (initialize_argument_information, load_register_parameters): Likewise. 2019-09-05 Jakub Jelinek PR middle-end/91001 PR middle-end/91105 PR middle-end/91106 * calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR types, use type of their first field instead of type of args[i].tree_value. 2019-09-02 Jakub Jelinek PR go/91617 * fold-const.c (range_check_type): For enumeral and boolean type, pass 1 to type_for_size langhook instead of TYPE_UNSIGNED (etype). Return unsigned_type_for result whenever etype isn't TYPE_UNSIGNED INTEGER_TYPE. (build_range_check): Don't call unsigned_type_for for pointer types. * match.pd (X / C1 op C2): Don't call unsigned_type_for on range_check_type result. 2019-09-01 Jakub Jelinek PR middle-end/91623 * optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only EQ_EXPR/NE_EXPR is supported, verify that op0 only contains zeros or negative elements and use NE_EXPR instead of LT_EXPR against zero vector. PR lto/91572 * tree.c (find_decls_types_in_node): Also walk TREE_PURPOSE of GIMPLE_ASM TREE_LIST operands. 2019-08-29 Jakub Jelinek PR tree-optimization/91351 * tree-cfg.c (generate_range_test): Use range_check_type instead of unsigned_type_for. * tree-cfgcleanup.c (convert_single_case_switch): Punt if range_check_type returns NULL. * tree-switch-conversion.c (switch_conversion::build_one_array): Use range_check_type instead of unsigned_type_for, don't perform linear opt if it returns NULL. (bit_test_cluster::find_bit_tests): Formatting fix. (bit_test_cluster::emit): Use range_check_type instead of unsigned_type_for. (switch_decision_tree::try_switch_expansion): Punt if range_check_type returns NULL. 2019-10-18 Georg-Johann Lay Backport from 2019-10-18 trunk r277143. PR target/86040 * config/avr/avr.c (avr_out_lpm): Do not shortcut-return. 2019-10-18 Iain Sandoe Backport from mainline 2019-10-05 Iain Sandoe PR target/59888 * config/darwin.c (darwin_rodata_section): Add relocation flag, choose const_data section for constants with relocations. (machopic_select_section): Pass relocation flag to darwin_rodata_section (). 2019-10-18 Iain Sandoe Backport from mainline 2019-09-21 Iain Sandoe * config/darwin.c (machopic_legitimize_pic_address): Check for lra, rather than reload. 2019-10-17 John David Anglin * config/pa/pa.c (pa_output_indirect_call): Fix typos in last change. 2019-10-17 Richard Earnshaw Backport from mainline 2019-05-03 Richard Earnshaw PR target/89400 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1. Restrict 'all' variant to 32-bit configurations. (unaligned_loadhiu): Likewise. (unaligned_storehi): Likewise. (unaligned_storesi): Likewise. (unaligned_loadhis): Disable when compiling for thumb1. 2019-10-16 Iain Sandoe Backport from mainline 2019-10-03 Iain Sandoe PR target/87243 * config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New. (darwin_driver_init): Use the sysroot provided by SDKROOT when that is available and the user has not set one on the command line. 2019-10-16 Iain Sandoe Backport from mainline 2019-07-03 Iain Sandoe * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases. (RDYNAMIC): Rename to, DARWIN_RDYNAMIC. (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker clauses. (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and DARWIN_NOPIE_SPEC. Backport from mainline 2019-06-19 Iain Sandoe * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC and DARWIN_NOPIE_SPEC. (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC. (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h. (DARWIN_NOPIE_SPEC): Collate from darwin10.h. (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h (DARWIN_EXPORT_DYNAMIC): Delete. * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind and pie options processing to darwin.h. * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h 2019-10-16 Richard Biener Backport from mainline 2019-10-04 Richard Biener PR lto/91968 * tree.c (find_decls_types_r): Do not remove LABEL_DECLs from BLOCK_VARS. 2019-09-19 Richard Biener PR tree-optimization/91812 * tree-ssa-phiprop.c (propagate_with_phi): Do not replace volatile loads. 2019-09-17 Richard Biener PR debug/91772 * dwarf2out.c (dwarf2out_late_global_decl): If early dwarf was missing generate locations only once. 2019-09-17 Richard Biener PR tree-optimization/91790 * tree-vect-stmts.c (vectorizable_load): For BB vectorization use the correct DR for setting up realignment. 2019-10-14 Will Schmidt Backport from trunk 2019-09-26 Will Schmidt * config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX, LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI, LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI, LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF, LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI, LD_ELEMREV_V16QI): Use the PURE attribute. 2019-10-10 Uroš Bizjak PR target/92022 * config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN. 2019-10-10 Oleg Endo Backport from mainline 2019-10-10 Oleg Endo PR target/88630 * config/sh/sh.h (TARGET_FPU_SH4_300): New macro. * config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns also for TARGET_FPU_SH4_300. (sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of TARGET_SH4_300. * config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition. (negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr. (*negsf2_i): Split into ... (negsf2_fpscr, negsf2_no_fpscr): ... these new patterns. (abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc. (**abssf2_i): Split into ... (abssf2_fpscr, abssf2_no_fpscr): ... these new patterns. (negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr. (*negdf2_i): Split into ... (negdf2_fpscr, negdf2_no_fpscr): ... these new patterns. (absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc. (**abssf2_i): Split into ... (absdf2_fpscr, absdf2_no_fpscr): ... these new patterns. 2019-10-10 Andreas Krebbel Backport from mainline 2019-10-10 Andreas Krebbel * common/config/s390/s390-common.c (PF_ARCH13): Rename to... (PF_Z15): ... this. * config.gcc: Add z15 as option for --with-arch and --with-tune configure switches. * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Add error reporting for unsupported builtins. * config/s390/s390-opts.h (enum processor_type): Rename PROCESSOR_8561_ARCH13 to PROCESSOR_8561_Z15. * config/s390/8561.md: Rename arch13 to z15 throughout the file. * config/s390/driver-native.c (s390_host_detect_local_cpu): Likewise. * config/s390/s390-builtins.def: Likewise. * config/s390/s390.c (processor_table): Add z15 as option and keep arch13 as alternative. (s390_expand_builtin): Add missing check for unsupported builtins. (s390_canonicalize_comparison): Rename TARGET_ARCH13 to TARGET_Z15. (s390_rtx_costs): Likewise. (s390_get_sched_attrmask): Rename arch13 to z15. (s390_get_unit_mask): Likewise. (s390_is_fpd): Likewise. (s390_is_fxd): Likewise. * config/s390/s390.h (enum processor_flags): Likewise. * config/s390/s390.md: Likewise. * config/s390/vector.md: Likewise. * config/s390/vx-builtins.md: Likewise. * config/s390/s390.opt: Add z15 to processor_type value. 2019-10-07 Bill Schmidt Backport from mainline 2019-10-01 Bill Schmidt PR target/91275 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap vpmsumd. 2019-10-05 Andrea Corallo Backport from mainline 2019-10-03 Andrea Corallo * gcc/ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum when finished. * ipa-prop.c (ipcp_free_transformation_sum): New function. * ipa-prop.h (ipcp_free_transformation_sum): Add declaration. 2019-10-04 Dragan Mladjenovic Backport from mainline 2019-10-03 Dragan Mladjenovic PR target/91769 * config/mips/mips.c (mips_split_move): Use reg_overlap_mentioned_p instead of REGNO equality check on addr.reg. 2019-10-04 Dragan Mladjenovic Backport from mainline 2019-07-07 Richard Sandiford * config/mips/mips.c (mips_split_move): Zero-initialize addr and check whether addr.reg is nonnull before using it. 2019-10-02 Bernd Edlinger Backport from mainline 2019-09-13 Bernd Edlinger PR fortran/91716 * trans-array.c (gfc_conv_array_initializer): Always assign the array type of the field to the string constant. 2019-10-01 Oleg Endo Backport from mainline 2019-10-01 Oleg Endo PR target/88562 * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use sh_check_add_incdec_notes to preserve REG_INC notes when replacing a memory access insn. 2019-10-01 Kyrylo Tkachov Backport from mainline 2019-09-24 Kyrylo Tkachov * config/aarch64/aarch64.md (mov): Don't call aarch64_split_dimode_const_store on volatile MEM. 2019-10-01 Kyrylo Tkachov Backport from mainline 2019-09-26 Matt Turner PR driver/69471 * config/aarch64/aarch64.opt (march=): Add Negative(march=). (mtune=): Add Negative(mtune=). (mcpu=): Add Negative(mcpu=). * config/arm/arm.opt: Likewise. 2019-09-28 Oleg Endo Backport from mainline 2019-09-28 Oleg Endo PR target/86805 * config/sh/sh.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define. 2019-09-28 Oleg Endo Backport from mainline 2019-09-28 Oleg Endo PR target/80672 * config/sh/sh.c (parse_validate_atomic_model_option): Use std::string::compare instead of std::string::find. 2019-09-25 Kyrylo Tkachov Backport from mainline 2019-08-22 Kyrylo Tkachov * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32 intrinsics if __ARM_FP. Use __ARM_FEATURE_CRC32 ifdef guard. 2019-09-23 Max Filippov Backport from mainline 2019-06-18 Max Filippov * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack pointer adjustment for the case of no callee-saved registers and stack frame bigger than 128 bytes. 2019-09-22 Iain Sandoe Backport from mainline 2019-06-16 Iain Sandoe * config/darwin.opt (prebind, noprebind, seglinkedit, noseglinkedit): Add RejectNegative. Backport from mainline 2019-06-14 Iain Sandoe * config/darwin.opt: Add RejectNegative where needed, reorder and add minimal functional descriptions. 2019-09-20 John David Anglin * config/pa/pa.c (pa_trampoline_init): Remove spurious extended character. 2019-09-20 Andreas Krebbel Backport from mainline 2019-06-06 Andreas Krebbel PR rtl-optimization/88751 * ira.c (ira): Use the number of the actually referenced registers when calculating the threshold. 2019-09-20 Kito Cheng Backport from mainline 2019-09-18 Jim Wilson PR target/91683 * config/riscv/riscv-protos.h (riscv_split_symbol): New bool parameter. (riscv_move_integer): Likewise. * config/riscv/riscv.c (riscv_split_integer): Pass FALSE for new riscv_move_integer arg. (riscv_legitimize_move): Likewise. (riscv_force_temporary): New parameter in_splitter. Don't call force_reg if true. (riscv_unspec_offset_high): Pass FALSE for new riscv_force_temporary arg. (riscv_add_offset): Likewise. (riscv_split_symbol): New parameter in_splitter. Pass to riscv_force_temporary. (riscv_legitimize_address): Pass FALSE for new riscv_split_symbol arg. (riscv_move_integer): New parameter in_splitter. New local can_create_psuedo. Don't call riscv_split_integer or force_reg when in_splitter TRUE. (riscv_legitimize_const_move): Pass FALSE for new riscv_move_integer, riscv_split_symbol, and riscv_force_temporary args. * config/riscv/riscv.md (low+1): Pass TRUE for new riscv_move_integer arg. (low+2): Pass TRUE for new riscv_split_symbol arg. 2019-09-20 Eric Botcazou PR target/91269 * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define. 2019-09-19 Kito Cheng Backport from mainline 2019-09-05 Jakub Jelinek Jim Wilson PR target/91635 * config/riscv/riscv.md (zero_extendsidi2, zero_extendhi2, extend2): Don't split if paradoxical_subreg_p (operands[0]). (*lshrsi3_zero_extend_3+1, *lshrsi3_zero_extend_3+2): Add clobber and use as intermediate value. 2019-09-11 Eric Botcazou PR rtl-optimization/89795 * rtlanal.c (nonzero_bits1) : Do not propagate results from inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set. 2019-09-09 Jakub Jelinek PR target/87853 * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi instead of __v16qs. PR target/91704 * config/i386/avxintrin.h (__v32qs): New typedef. * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs instead of __v32qi. 2019-09-04 Wilco Dijkstra Backport from mainline 2019-08-13 Wilco Dijkstra PR target/81800 * gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF operand is larger than a long int. 2019-09-03 Jakub Jelinek PR tree-optimization/91597 * tree-vrp.c (extract_range_from_binary_expr): Remove unsafe BIT_AND_EXPR optimization for pointers, even if both operand ranges don't include NULL, the result can be NULL. 2019-09-02 Martin Liska Backport from mainline 2019-09-02 Martin Liska PR gcov-profile/91601 * gcov.c (path_contains_zero_cycle_arc): Rename to ... (path_contains_zero_or_negative_cycle_arc): ... this and handle also negative edges. (circuit): Handle also negative edges as they can happen in some situations. 2019-09-01 Eric Botcazou PR target/91472 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true during LRA/reload in PIC mode if the PIC register hasn't been used yet. (sparc_pic_register_p): Test reload_in_progress for consistency's sake. 2019-08-31 Iain Sandoe Backport from mainline 2019-08-23 Iain Sandoe PR pch/61250 * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure and issue any diagnostics needed before collecting the pre-PCH state. 2019-08-30 Segher Boessenkool Backport from trunk 2019-08-22 Segher Boessenkool PR target/91481 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, and UNSPEC_DARN_RAW. (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and UNSPECV_DARN_RAW. (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32. (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW. (darn): Use an unspec_volatile, and UNSPECV_DARN. 2019-08-30 Segher Boessenkool Backport from trunk 2019-08-22 Segher Boessenkool * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to... * config/rs6000/rs6000.md (unspec): ... here. * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb, *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, cmpeqb, *cmpeqb_internal): Delete, move to... * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb, *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, cmpeqb, *cmpeqb_internal): ... here. 2019-08-30 Richard Biener Backport from mainline 2019-04-29 Richard Biener PR tree-optimization/90278 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean EH on comparison simplification. 2019-08-29 Richard Biener PR tree-optimization/91568 * tree-vectorizer.h (_slp_tree::max_nunits): Add. (vect_update_max_nunits): Add overload for poly_uint64. * tree-vect-slp.c (vect_create_new_slp_node): Initialize it. (vect_build_slp_tree): Record max_nunits into the subtree and merge it upwards. (vect_print_slp_tree): Print max_nunits. 2019-08-28 Richard Biener Backport from mainline 2019-05-27 Richard Biener PR tree-optimization/90637 * tree-ssa-sink.c (statement_sink_location): Honor the computed sink location for single-uses. 2019-08-26 Xiong Hu Luo Backport r274411 from trunk to gcc-9-branch. 2019-08-14 Xiong Hu Luo PR lto/91287 * builtins.c (builtin_with_linkage_p): New function. * builtins.h (builtin_with_linkage_p): New function. * symtab.c (write_symbol): Remove redundant assert. * lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p): Remove FIXME and use builtin_with_linkage_p. 2019-08-25 Uroš Bizjak PR target/91533 Backport from mainline 2019-06-30 Uroš Bizjak * config/i386/sse.md (ssse3_abs2): Rename from abs2. * config/i386/i386-builtin.def (__builtin_ia32_pabsb): Use CODE_FOR_ssse3_absv8qi2. (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2. (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2. 2019-08-23 Mihailo Stojanovic Backport from mainline 2019-08-23 Mihailo Stojanovic * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI machine mode for unspec_volatile operand. 2019-08-23 Martin Liska PR ipa/91508 Backport from mainline 2019-08-15 Martin Liska PR ipa/91438 * cgraph.c (cgraph_node::remove): When setting n->origin = NULL for all nested functions, reset also next_nested. 2019-08-23 Martin Liska Backport from mainline 2019-08-15 Martin Liska * cgraph.c (cgraph_node::verify_node): Verify origin, nested and next_nested. 2019-08-23 Martin Liska Backport from mainline 2019-08-15 Martin Liska PR ipa/91404 * passes.c (order): Remove. (uid_hash_t): Likewise). (remove_cgraph_node_from_order): Remove from set of pointers (cgraph_node *). (insert_cgraph_node_to_order): New. (duplicate_cgraph_node_to_order): New. (do_per_function_toporder): Register all 3 cgraph hooks. Skip removed_nodes now as we know about all of them. 2019-08-21 Iain Sandoe Backport from mainline 2019-08-18 Iain Sandoe * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts for cpu and machine. Factor 64/32b builtins. 2019-08-20 Eric Botcazou PR rtl-optimization/91347 * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls before reload if HARD_FRAME_POINTER_IS_ARG_POINTER. 2019-08-19 Richard Earnshaw Backport from mainline 2019-09-09 Richard Earnshaw PR target/91386 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx to preserve the contents of the original insns. 2019-08-16 Bernd Edlinger Backport from mainline 2019-08-16 Bernd Edlinger PR tree-optimization/91109 * lra-int.h (lra_need_for_scratch_reg_p): Declare. * lra.c (lra): Use lra_need_for_scratch_reg_p. * lra-spills.c (lra_need_for_scratch_reg_p): New function. 2019-08-07 Bernd Edlinger PR tree-optimization/91109 * lra-remat.c (update_scratch_ops): Remove assignment of the hard register. 2019-08-15 Steve Ellcey Backport from mainline 2019-08-02 Steve Ellcey * omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to build_distinct_type_copy. (simd_clone_adjust_argument_types): Ditto. (simd_clone_adjust): Call build_distinct_type_copy here. (expand_simd_clones): Ditto. 2019-08-15 Richard Biener PR tree-optimization/91445 Backport from mainline 2019-07-05 Richard Biener PR tree-optimization/91091 * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter. (walk_non_aliased_vuses): Likewise. * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p. (get_continuation_for_phi): New tbaa_p parameter and pass it down. (walk_non_aliased_vuses): Likewise. * tree-ssa-pre.c (translate_vuse_through_block): Likewise. * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Likewise. * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag. (vn_reference_lookup_3): Handle and pass down tbaa_p flag. (vn_reference_lookup_pieces): Adjust. (vn_reference_lookup): Remove alias-set altering, instead pass down false as tbaa_p. 2019-07-04 Richard Biener * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr argument. * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move globals into... (struct vn_walk_cb_data): New callback data struct. (vn_reference_lookup_2): Adjust. (vn_reference_lookup_3): Likewise. (vn_reference_lookup_pieces): Likewise. (vn_reference_lookup): Likewise, get last_vuse_ptr argument. (visit_reference_op_load): Adjust. 2019-08-14 Martin Sebor Backport from mainline 2019-08-01 Martin Sebor PR c++/90947 * tree.c (type_initializer_zero_p): Define. * tree.h (type_initializer_zero_p): New function. 2019-08-05 Martin Sebor * doc/extend.texi (Common Variable Attributes): Document alias attribute. 2019-08-12 Richard Biener Backport from mainline 2019-08-12 Richard Biener PR lto/91375 * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on flag_devirtualize. 2019-08-12 Richard Biener PR driver/91130 * lto-wrapper.c (get_options_from_collect_gcc_options): Remove lang_mask option, always use CL_DRIVER. (find_and_merge_options): Adjust. (run_gcc): Likewise. 2019-08-07 Richard Earnshaw PR driver/91130 * lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when processing COLLECT_GCC_OPTIONS. (run_gcc): Likewise. 2019-08-12 Jakub Jelinek * BASE-VER: Set to 9.2.1. 2019-08-12 Release Manager * GCC 9.2.0 released. 2019-08-05 Kito Cheng Backport from mainline 2019-08-05 Kito Cheng * config/riscv/riscv.c (riscv_promote_function_mode): New. (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode. 2019-08-05 Alan Modra PR target/91349 * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC), (LINK_GCC_C_SEQUENCE_SPEC): Undef. 2019-08-04 Segher Boessenkool Backport from trunk 2019-05-02 Segher Boessenkool * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the correct numbers for TFHAR, TFIAR, TEXASR. 2019-08-03 Iain Sandoe Backport from mainline 2019-07-24 Iain Sandoe PR bootstrap/87030 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749. PR bootstrap/87030 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here... * config/i386/darwin32-biarch.h .. to here. * config/i386/darwin64-biarch.h: Adjust comments. * config/rs6000/darwin32-biarch.h: Likewise. * config/rs6000/darwin64-biarch.h: Likewise. * config.gcc: Missed commit from r273746 (*-*-darwin*): Don't include CPU t-darwin here. (i[34567]86-*-darwin*): Adjust to use biarch files. Produce an error message if i686-darwin configuration is attempted for Darwin >= 18. Backport from mainline 2019-07-23 Iain Sandoe PR bootstrap/87030 * config.gcc (*-*-darwin*): Don't include CPU t-darwin here. (i[34567]86-*-darwin*): Adjust to use biarch files. Produce an error message if i686-darwin configuration is attempted for Darwin >= 18. (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18. (powerpc-*-darwin*): Use biarch files where needed. (powerpc64-*-darwin*): Likewise. * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file. (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single arch case. * config/i386/darwin32-biarch.h: New. * config/i386/darwin64.h: Rename. * gcc/config/i386/darwin64-biarch.h: To this. * config/i386/t-darwin: Rename. * gcc/config/i386/t-darwin32-biarch: To this. * config/i386/t-darwin64: Rename. * gcc/config/i386/t-darwin64-biarch: To this. * config/rs6000/darwin32-biarch.h: New. * config/rs6000/darwin64.h: Rename. * config/rs6000/darwin64-biarch.h: To this. (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single arch case. * config/rs6000/t-darwin8: Rename. * config/rs6000/t-darwin32-biarch: To this. * config/rs6000/t-darwin64 Rename. * config/rs6000/t-darwin64-biarch: To this. 2019-08-03 Iain Sandoe Backport from mainline 2019-07-07 Iain Sandoe * config/darwin.c (darwin_override_options): Make a final check on PIC options. 2019-08-03 Iain Sandoe Backport from mainline 2019-07-07 Iain Sandoe * config/darwin.c (darwin_override_options): Don't jam symbol stubs on for kernel code. 2019-08-03 Iain Sandoe Backport from mainline 2019-06-28 Iain Sandoe * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove override on extra_headers. 2019-08-03 Iain Sandoe Backport from mainline 2019-06-27 Iain Sandoe * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour user-specified float mode choice for kernel mode code. 2019-08-03 Iain Sandoe Backport from mainline 2019-06-27 Iain Sandoe * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not use longcall for 64b code. 2019-08-03 Iain Sandoe Backport from mainline 2019-06-23 Iain Sandoe * config/rs6000/darwin.h: Handle GCC target pragma. 2019-08-03 Iain Sandoe Backport from mainline 2019-06-23 Iain Sandoe * config/rs6000/darwin.h: (__PPC__, __PPC64__): New. 2019-08-02 Martin Sebor Backport from mainline 2019-07-09 Martin Sebor PR tree-optimization/90989 * tree-ssa-strlen.c (handle_char_store): Constrain a single character optimization to just single character stores. 2019-08-02 Iain Sandoe Backport from mainline 2019-06-19 Iain Sandoe * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors in computing the number of options to be moved. Backport from mainline 2019-06-13 Iain Sandoe * config/darwin-driver.c (validate_macosx_version_min): New. (darwin_default_min_version): Cleanup and validate supplied version. (darwin_driver_init): Likewise and push cleaned version into opts. 2019-08-02 Iain Sandoe Backport from mainline 2019-05-31 Iain Sandoe * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New. 2019-08-02 Iain Sandoe Backport from mainline 2019-05-18 Iain Sandoe * config/darwin-c.c (darwin_register_objc_includes): Do not prepend the sysroot when building gnu-runtime header search paths. 2019-08-02 Iain Sandoe Backport from mainline 2019-05-18 Iain Sandoe * config/darwin.c (darwin_file_end): Use switch_to_section () instead of direct output of the asm. 2019-08-02 Richard Biener Backport from mainline 2019-07-31 Richard Biener PR tree-optimization/91280 * tree-ssa-structalias.c (get_constraint_for_component_ref): Decompose MEM_REF manually for offset handling. 2019-07-31 Richard Biener PR tree-optimization/91293 * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands of reduction stmts. 2019-08-02 Richard Biener Backport from mainline 2019-07-31 Richard Biener PR tree-optimization/91178 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Use tail-recursion. 2019-07-17 Richard Biener PR tree-optimization/91178 * tree-ssa.c (release_defs_bitset): Iterate from higher to lower SSA names to avoid quadratic behavior in the common case. * tree-data-ref.c (split_constant_offset): Add limit argument and pass it down. Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT. (split_constant_offset_1): Add limit argument and use it to limit SSA def walking. Optimize the common plus/minus case. 2019-07-12 Martin Sebor * doc/invoke.texi (ssa-name-def-chain-limit): Document new --param. * params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param. * tree-vrp.c (vrp_prop::check_mem_ref): Use PARAM_SSA_NAME_DEF_CHAIN_LIMIT. 2019-08-01 Jakub Jelinek Backported from mainline 2019-07-31 Jakub Jelinek PR middle-end/91301 * gimplify.c (gimplify_omp_for): If for class iterator on distribute parallel for there is no data sharing clause on inner_for_stmt, look for private clause on combined parallel too and if found, move it to inner_for_stmt. 2019-07-30 Jakub Jelinek PR middle-end/91216 * omp-low.c (global_nonaddressable_vars): New variable. (use_pointer_for_field): For global decls, if they are non-addressable, remember it in the global_nonaddressable_vars bitmap, if they are addressable and in the global_nonaddressable_vars bitmap, ignore their TREE_ADDRESSABLE bit. (omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of vars in global_nonaddressable_vars bitmap. (execute_lower_omp): Free global_nonaddressable_vars bitmap. PR target/91150 * config/i386/i386.c (expand_vec_perm_blend): Change mask type from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast comparison to unsigned HOST_WIDE_INT before shifting it left. 2019-07-17 Jakub Jelinek PR tree-optimization/91157 * tree-vect-generic.c (expand_vector_comparison): Handle lhs being a vector boolean with scalar mode. (expand_vector_condition): Handle first operand being a vector boolean with scalar mode. (expand_vector_operations_1): For comparisons, don't bail out early if the return type is vector boolean with scalar mode, but comparison operand type is not. 2019-08-01 Alan Modra PR target/91135 * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't define. * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi. (GNU_USER_TARGET_D_OS_VERSIONS): Don't define. 2019-07-31 Jonathan Wakely Backport from mainline 2019-06-24 Jonathan Wakely * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG) (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN) (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17. 2019-07-31 Richard Biener Backport from mainline 2019-07-19 Richard Biener PR tree-optimization/91200 * tree-ssa-phiopt.c (cond_store_replacement): Check we have no PHI nodes in middle-bb. 2019-07-15 Richard Biener PR middle-end/91162 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI node make sure to replace all uses with something valid. 2019-07-12 Richard Biener PR tree-optimization/91145 * tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction chain check. 2019-07-11 Richard Biener PR middle-end/91131 * gimplify.c (gimplify_compound_literal_expr): Force a temporary when the object is volatile and we have not cleared it even though there are no nonzero elements. 2019-07-10 Richard Biener PR tree-optimization/91126 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust native encoding offset for BYTES_BIG_ENDIAN. (vn_reference_lookup_3): Likewise. 2019-07-30 Jan Hubicka Backport from mainline 2019-07-23 Jan Hubicka * i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2. * config/i386/znver1.md: Enable patterns for znver2 and add store variants which use extra AGU unit. 2019-07-30 Jan Hubicka Backport from mainline 2019-07-23 Jan Hubicka * config/i386/i386.c (ix86_option_override_internal): Default PARAM_AVOID_FMA_MAX_BITS to 256 for znver2. * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set for ZNVER2. 2019-07-30 Jan Hubicka Backport from mainline 2019-07-23 Jan Hubicka * config/i386/x86-tune-costs.h (znver2_memcpy): Update. (znver2_costs): Update 256 bit SSE costs and multiplication. 2019-07-24 Bin Cheng Backport from mainline 2019-07-18 Bin Cheng PR tree-optimization/91137 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field. (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize): Init, use and fini the above new field. (determine_base_object_1): New function. (determine_base_object): Reimplement using walk_tree. 2019-07-23 Matthew Beliveau Backported from mainline 2019-07-16 Jeff Law PR rtl-optimization/91173 * tree-ssa-address.c (addr_for_mem_ref): If the base is an SSA_NAME with a constant value, fold its value into the offset and clear the base before calling gen_addr_rtx. * g++.dg/pr91173.C: New test. 2019-07-23 Richard Biener PR debug/91231 * lto-streamer-in.c (input_function): Drop inline-entry markers that ended up with an unknown location block. 2019-07-22 Paul A. Clarke Backport from mainline * config/rs6000/smmintrin.h (_mm_blend_epi16): New. (_mm_blendv_epi8): New. 2019-07-22 Martin Liska Backport from mainline 2019-07-22 Martin Liska PR driver/91172 * opts-common.c (decode_cmdline_option): Decode argument of -Werror and check it for a wrong language. * opts-global.c (complain_wrong_lang): Remove such case. 2019-07-22 Claudiu Zissulescu Backport from mainline. * config/arc/arc.c (prepare_move_operands): Always use an intermediate register when storing a TLS symbols. 2019-07-20 Richard Sandiford Backport from mainline 2019-07-10 Richard Sandiford * fold-const.c (fold_relational_const): Fix folding of vector-to-scalar NE_EXPRs. (test_vector_folding): Add more tests. 2019-07-19 Jason Merrill PR c++/82081 - tail call optimization breaks noexcept * tree-tailcall.c (find_tail_calls): Don't turn a call from a nothrow function to a might-throw function into a tail call. 2019-07-18 Kito Cheng Backport from mainline 2019-07-08 Andrew Waterman Jim Wilson * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1] bitsize instead of BITS_PER_WORD. gcc/testsuite/ 2019-07-17 John David Anglin * config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant data into data section when generating PIC code. (pa_select_section): Use pa_reloc_rw_mask() to qualify relocs. (pa_reloc_rw_mask): Return 3 when generating PIC code and when generating code for SOM targets earlier than HP-UX 11. Otherwise, return 2 for SOM and 0 for other targets. 2019-07-17 Andreas Krebbel Backport from mainline 2019-07-01 Andreas Krebbel * config/s390/vector.md: Fix shift count operand printing. 2019-07-16 Wilco Dijkstra Backport from mainline 2019-05-30 Wilco Dijkstra PR driver/90684 * gcc/opts.c (parse_and_check_align_values): Allow 4 alignment values. 2019-07-14 Jakub Jelinek Backported from mainline 2019-07-04 Jakub Jelinek PR middle-end/78884 * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member. (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE. (gimplify_adjust_omp_clauses): Add safelen (1) clause if ctx->add_safelen1 is set. PR rtl-optimization/90756 * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it for VECTOR_TYPE_P. 2019-07-12 Richard Biener Backport from mainline 2019-07-04 Jakub Jelinek PR tree-optimization/91063 * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove stmt from stmts sequence before calling vect_init_vector_1. Formatting fix. 2019-07-04 Richard Biener PR ipa/91062 * tree-pass.h (execute_all_ipa_transforms): Add a flag parameter whether to disable GC collection. * passes.c (execute_one_ipa_transform_pass): Likewise, and honor it. (execute_all_ipa_transforms): Likewise and pass it down. * cgraph.c (cgraph_node::get_body): Do not invoke garbage collection from applying IPA transforms. * cgraphunit.c (cgraph_node::expand): Allow garbage collection from applying IPA transforms. 2019-06-26 Richard Biener PR ipa/90982 * tree-inline.c (remap_ssa_name): Copy SSA range info. 2019-06-24 Richard Biener PR tree-optimization/90972 * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P in common code, dealing with STRING_CST properly. 2019-06-21 Richard Biener PR debug/90914 * dwarf2out.c (prune_unused_types_walk): Always consider function-local extern declarations as used. 2019-06-18 Richard Biener PR debug/90900 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL as if optimized away. 2019-05-07 Richard Biener PR lto/90369 * lto-wrapper.c (debug_objcopy): Use the original filename including archive offset for the filename used for -save-temps. 2019-07-12 Eric Botcazou PR rtl-optimization/91136 * df-core.c (ACCESSING REFS): Fix typos in comment. * resource.c (mark_target_live_reg): Add artificial defs that occur at the beginning of the block to the initial set of live registers. 2019-07-11 Uroš Bizjak Backport from mainline 2019-07-06 Richard Sandiford * config/i386/sse.md (*andnot3_bcst): Fix VI/VI48_AVX512VL typo. 2019-07-11 Segher Boessenkool * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Handle Modula-2. 2019-07-08 Richard Biener PR tree-optimization/91108 * tree-ssa-sccvn.c: Include builtins.h. (vn_reference_lookup_3): Use only alignment constraints to verify same-valued store disambiguation. 2019-07-05 Szabolcs Nagy Backport from mainline 2019-06-03 Szabolcs Nagy * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare. (aarch64_asm_output_external): Declare. * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New. (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs. (aarch64_asm_output_alias): New. (aarch64_asm_output_external): New. * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define. (ASM_OUTPUT_EXTERNAL): Define. 2019-06-04 Szabolcs Nagy * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove const. * config/aarch64/aarch64.c (aarch64_asm_output_external): Call default_elf_asm_output_external. 2019-07-04 Martin Liska Backport from mainline 2019-07-03 Martin Liska PR tree-optimization/90892 * builtins.c (inline_expand_builtin_string_cmp): Handle '\0' in string constants. 2019-07-04 Martin Liska Backport from mainline 2019-07-03 Martin Liska PR middle-end/90899 * multiple_target.c (create_dispatcher_calls): Add to comdat group only if set for ifunc. 2019-07-03 Eric Botcazou * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE if it has the DW_AT_data_member_location attribute. 2019-07-02 Andrew Stubbs Backport from mainline: 2019-07-02 Andrew Stubbs * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn with inlined save and restore. 2019-07-01 Eric Botcazou PR middle-end/64242 * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last. Add frame clobber and schedule blockage. 2019-06-29 Jakub Jelinek Backported from mainline 2019-06-27 Jakub Jelinek PR c++/91024 * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT statements. 2019-06-26 Jakub Jelinek PR target/90991 * config/i386/sse.md (*_vinsert_0): Use vmovupd, vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned insns if operands[2] is misaligned_operand. 2019-06-12 Jakub Jelinek PR c/90760 * symtab.c (symtab_node::set_section): Allow being called on aliases as long as they aren't analyzed yet. 2019-06-28 Jeff Law Backport from mainline 2019-06-21 Jeff Law PR tree-optimization/90949 * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info. * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state. 2019-06-28 Andrew Stubbs Backport from mainline: 2019-05-22 Andrew Stubbs * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5. 2019-06-26 Martin Jambor Backport from mainline 2019-06-25 Martin Jambor PR ipa/90939 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert. 2019-06-26 Rainer Orth Backport from mainline 2019-06-17 Rainer Orth * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for alternative Solaris 11.4 format. * configure: Regenerate. 2019-06-25 Claudiu Zissulescu Backport from mainline 2019-06-25 Claudiu Zissulescu * config/arc/arc.c (arc_symbol_binds_local_p): New function. (arc_legitimize_pic_address): Simplify and cleanup the function. (SYMBOLIC_CONST): Remove. (prepare_pic_move): Likewise. (prepare_move_operands): Handle complex mov cases here. (arc_legitimize_address_0): Remove call to arc_legitimize_pic_address. (arc_legitimize_address): Remove call to arc_legitimize_tls_address. * config/arc/arc.md (movqi_insn): Allow Cm3 match. (movhi_insn): Likewise. 2019-06-25 Andrew Stubbs Backport from mainline 2019-05-24 Andrew Stubbs * config/gcn/gcn-run.c (main): Set a non-zero return value if the kernel does not exit cleanly. * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb. 2019-06-25 Andrew Stubbs Backport from mainline 2019-05-24 Andrew Stubbs * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry for lo-part. 2019-06-21 Richard Biener PR tree-optimization/90930 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited flag on new stmts to avoid re-processing them. 2019-06-24 Richard Biener PR tree-optimization/90930 PR tree-optimization/90316 * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing decrement of limit. 2019-06-16 Jeff Law Backport from mainline 2019-06-16 Prachi Godbole Robert Suchanek * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st and 3rd operands of the fmadd/fmsub/maddv builtin. 2019-06-16 John David Anglin PR middle-end/64242 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add frame clobbers and schedule block. (builtin_longjmp): Likewise. 2019-06-11 Jakub Jelinek PR target/90811 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d instead of and.u%d. 2019-06-07 John David Anglin 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-06 Richard Biener Backport from mainline 2019-05-22 Richard Biener PR tree-optimization/90450 * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed. (mem_ref_hasher::equal): Check it. (mem_ref_alloc): Initialize it. (gather_mem_refs_stmt): Set it. 2019-05-13 Richard Biener PR tree-optimization/90402 * tree-if-conv.c (tree_if_conversion): Value number only the loop body by making the latch an exit of the region as well. * tree-ssa-sccvn.c (process_bb): Add flag whether to skip processing PHIs. (do_rpo_vn): Deal with multiple edges into the entry block that are not backedges inside the region by skipping PHIs of the entry block. 2019-05-06 Richard Biener PR tree-optimization/90328 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest. * tree-data-ref.c (dr_may_alias_p): Check whether the clique is valid in the loop nest before using it. (initialize_data_dependence_relation): Adjust. * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing loop as loop-nest to dr_may_alias_p. 2019-06-05 Eric Botcazou * fold-const.c (extract_muldiv_1) : Do not distribute a multiplication by a power-of-two value. (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value and turn the modulo operation into a masking operation. 2019-06-05 Jakub Jelinek PR debug/90733 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs with VOIDmode inner operands. 2019-06-05 Iain Sandoe Backport from mainline. 2019-05-23 Iain Sandoe * doc/sourcebuild.texi: Document mfentry target support. 2019-05-30 Jakub Jelinek * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght to length. 2019-05-30 Iain Sandoe Backport from mainline. 2019-05-23 Iain Sandoe * config/i386/darwin.h: Reject -mfentry*. 2019-05-30 Iain Sandoe Backport from mainline. 2019-05-12 Iain Sandoe PR target/82920 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for Darwin. 2019-05-30 Iain Sandoe Backport from mainline. 2019-05-12 Iain Sandoe PR target/82920 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New. (ix86_output_indirect_branch_via_reg): Use output mechanism accounting for __USER_LABEL_PREFIX__. (ix86_output_indirect_branch_via_push): Likewise. (ix86_output_function_return): Likewise. (ix86_output_indirect_function_return): Likewise. 2019-05-29 Jakub Jelinek PR fortran/90329 * lto-streamer.h (LTO_minor_version): Bump to 1. Backported from mainline 2019-05-16 Jakub Jelinek PR fortran/90329 * tree-core.h (struct tree_decl_common): Document decl_nonshareable_flag for PARM_DECLs. * tree.h (DECL_HIDDEN_STRING_LENGTH): Define. * calls.c (expand_call): Don't try tail call if caller has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be passed on the stack and callee needs to pass any arguments on the stack. * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use else if instead of series of mutually exclusive ifs. Handle DECL_HIDDEN_STRING_LENGTH for PARM_DECLs. * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. 2019-05-29 Jakub Jelinek PR bootstrap/90543 * optc-save-gen.awk: In cl_optimization_print, use correct condition for var_opt_string printing. In cl_optimization_print_diff, print (null) instead of invoking undefined behavior if one of the var_opt_string pointers is NULL and use && instead of first || in the guarding condition. For var_target_other options, handle const char * target variables similarly to const char * optimize node variables. 2019-05-28 John David Anglin * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment. 2019-05-27 Eric Botcazou * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index and DW_OP_GNU_const_index opcodes. 2019-05-24 John David Anglin PR target/90530 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from DImode to SImode in floating-point registers on 64-bit target. * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to register_operand in xmpyu patterns. 2019-05-24 Martin Liska Backport from mainline 2019-05-23 Martin Liska PR sanitizer/90570 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target expression similarly to gimplify_decl_expr. 2019-05-22 Uroš Bizjak Backported from mainline 2019-05-21 Uroš Bizjak * config/i386/cpuid.h (__cpuid): For 32bit targets, zero %ebx and %ecx bafore calling cpuid with leaf 1 or non-constant leaf argument. 2019-05-21 Uroš Bizjak PR target/90547 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): Avoid calling gen_lowpart with CONST operand. 2019-05-21 Sebastian Huber Backported from mainline 2019-05-16 Sebastian Huber * config/arm/t-rtems: Replace ARMv7-M multilibs with Cortex-M multilibs. 2019-05-20 Jeff Law Backported from mainline 2019-05-17 Dragan Mladjenovic * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64 and fpxx modes. 2019-05-17 Jakub Jelinek Backported from mainline 2019-05-16 Jakub Jelinek PR c++/90484 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that sz0 is equal to sz1, instead return false in that case. * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF has non-constant expression, force sctx.lane and use two argument IFN_GOMP_SIMD_LANE instead of single argument. * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE two argument IFN_GOMP_SIMD_LANE without lhs. * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond member. (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND): Define. (LOOP_REQUIRES_VERSIONING): Or in LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND. * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize simd_if_cond. (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0. * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check from simd if clause if needed. 2019-05-15 Jakub Jelinek * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set max_vf to 1. * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear safelen_int and set loop->dont_vectorize. 2019-05-10 Jakub Jelinek PR tree-optimization/90385 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME arguments of the exit phis. PR c++/90383 * tree-inline.h (struct copy_body_data): Add do_not_fold member. * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if id->do_not_fold. (copy_tree_body_r): Likewise. (copy_fn): Set id.do_not_fold to true. 2019-05-03 Jakub Jelinek PR tree-optimization/90303 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode. 2019-05-17 Richard Biener Backport from mainline 2019-05-07 Richard Biener PR tree-optimization/90316 * tree-ssa-alias.h (get_continuation_for_phi): Take walking limit by reference. (walk_non_aliased_vuses): Take walking limit argument. * tree-ssa-alias.c (maybe_skip_until): Take limit and abort walking if it is reached instead of just counting. (get_continuation_for_phi): Likewise. (walk_non_aliased_vuses): Likewise, instead of leaving counter limiting to the callback. * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust. (vn_reference_lookup_3): Likewise. (vn_reference_lookup_pieces): Likewise. (vn_reference_lookup): Likewise. * tree-ssa-pre.c (translate_vuse_through_block): Limit walking. * tree-ssa-scopedtables.c (vuse_eq): Adjust. (avail_exprs_stack::lookup_avail_expr): Likewise. 2019-05-06 Richard Biener PR tree-optimization/90316 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB, compute target on demand. (get_continuation_for_phi): Remove code walking stmts to get to a target virtual operand which could end up being quadratic. 2019-05-15 Li Jia He Backport from mainline. 2019-05-07 Li Jia He * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter detection. 2019-05-14 Martin Liska Backport from mainline 2019-05-13 Martin Liska PR tree-optimization/90416 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate string instead of passing the second part as va_arg argument. 2019-05-14 Martin Liska Backport from mainline 2019-05-13 Martin Liska PR gcov-profile/90380 * gcov.c (handle_cycle): Do not support zero cycle count, it should not be possible. (path_contains_zero_cycle_arc): New function. (circuit): Ignore zero cycle arc counts. 2019-05-14 Martin Liska Backport from mainline 2019-05-13 Martin Liska PR gcov-profile/90380 * gcov.c (enum loop_type): Remove the enum and the operator. (handle_cycle): Assert that we should not reach a negative count. (circuit): Use loop_found instead of a tri-state loop_type. (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't happen. 2019-05-14 Chenghua Xu Backport from mainline. 2019-05-14 Chenghua Xu PR target/90357 * config/mips/mips.c (mips_split_move): Skip forward SRC into next insn when the SRC reg is dead. 2019-05-11 Andreas Tobler Backport from mainline. 2019-04-25 Andreas Tobler * config/i386/freebsd64.h: Add bits for 32-bit multilib support. * config/i386/t-freebsd64: New file. * config.gcc: Add the t-freebsd64 for multilib support. 2019-05-10 Kelvin Nilsen Backport from mainline. 2019-05-07 Kelvin Nilsen PR target/89765 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic to compute vector element selector for both constant and variable operands. 2019-05-10 Richard Biener * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id. (do_rpo_vn): Initialize next_value_id. 2019-05-09 Thomas Schwinge * cif-code.def (CHKP): Remove. 2019-05-07 Kelvin Nilsen Backport from mainline. 2019-05-06 Kelvin Nilsen PR target/89424 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add handling of V1TImode. 2019-05-06 Martin Liska Backport from mainline 2019-05-06 Martin Liska PR sanitizer/90312 * config/i386/i386-options.c (ix86_option_override_internal): Error only when -mabi is selected to a non-default version. 2019-05-04 Michael Meissner * ChangeLog.ibm: Delete unintentional commit on the wrong branch. * REVISION: Likewise. 2019-05-03 Richard Biener PR tree-optimization/90316 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries before running VN. 2019-05-03 Jakub Jelinek * BASE-VER: Set to 9.1.1. 2019-05-03 Release Manager * GCC 9.1.0 released. 2019-04-30 Ramana Radhakrishnan Backport from mainline. 2019-04-30 Ramana Radhakrishnan PR target/86538 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define __ARM_FEATURE_ATOMICS. 2019-04-30 Martin Liska Backport from mainline 2019-04-30 Martin Liska PR translation/90274 * opts.c (print_filtered_help): Wrap string in _(...). 2019-04-30 Martin Liska Backport from mainline 2019-04-27 Martin Liska PR middle-end/90258 * opt-suggestions.c (option_proposer::build_option_suggestions): When get_valid_option_values returns empty values, add the misspelling candidate. 2019-04-30 Richard Biener PR tree-optimization/90273 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate useless debug stmts. 2019-04-27 Iain Buclaw * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h, varasm.h, and netbsd-protos.h. 2019-04-26 Segher Boessenkool PR other/90257 Revert the revert: 2019-04-21 H.J. Lu PR target/90178 Revert: 2018-11-21 Uros Bizjak Revert the revert: 2013-10-26 Vladimir Makarov Revert: 2013-10-25 Vladimir Makarov * lra-spills.c (lra_final_code_change): Remove useless move insns. 2019-04-25 Jakub Jelinek PR tree-optimization/90240 Revert: 2019-04-23 Bin Cheng PR tree-optimization/90078 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add checks for infinite_cost overflow. 2019-04-25 Jakub Jelinek * DEV-PHASE: Set to prerelease. 2019-04-25 Richard Biener PR middle-end/89765 * gimplify.c (gimplify_expr): Avoid turning a lvalue VIEW_CONVERT_EXPR into one operating on an rvalue. 2019-04-25 H.J. Lu PR target/89929 * config/i386/i386.c (feature_priority): Moved to file scope. (processor_features): Likewise. (processor_model): Likewise. (_arch_names_table): Likewise. (arch_names_table): Likewise. (_feature_list): Removed. (feature_list): Likewise. (_isa_names_table): Moved to file scope. Add priority. (isa_names_table): Likewise. (get_builtin_code_for_version): Replace feature_list with isa_names_table. Update error message for P_ZERO priority. 2019-04-25 Richard Biener * tree-pass.h (make_pass_phi_only_cprop): Remove. * timevar.def (TV_TREE_PHI_CPROP): Likewise. 2019-04-24 Jeff Law PR tree-optimization/90037 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c * passes.def: Replace all instance of phi-only cprop with the lattice propagator. Move propagation pass from after erroneous path isolation to before erroneous path isolation. * tree-ssa-phionlycprop.c: Remove. 2019-04-24 Richard Biener PR middle-end/90213 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication by size and BITS_PER_UNIT on poly-wide-ints. 2019-04-25 Richard Biener PR middle-end/90194 * match.pd: Add pattern to simplify view-conversion of an empty constructor. 2019-04-24 Clement Chigot * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags for Go on 32 bit AIX. * config/rs6000/aix72.h: Likewise. 2019-04-24 Jakub Jelinek PR target/90193 * rtl.c (classify_insn): Return JUMP_INSN for asm goto. * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET. 2019-04-24 Andreas Krebbel PR target/89952 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also for restored hard frame pointer. (s390_sched_dependencies_evaluation): Implement new target hook. (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition. 2019-04-24 Claudiu Zissulescu * config/arc/arc-options.def: Fix typos and spelling mistakes. * config/arc/arc.c (arc_init): Cleanup warning message. (arc_override_options): Likewise. 2019-04-24 Jakub Jelinek PR target/90187 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into a register if both if_true and if_false are MEMs. PR tree-optimization/90208 * tree-cfg.c (remove_bb): Move forced labels from removed bbs after labels of new_bb, not before them. PR tree-optimization/90211 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments which are not SSA_NAMEs. 2018-04-23 Sudakshina Das * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for AArch64. (aarch64_file_end_indicate_exec_stack): Add gnu note section. 2019-04-23 Roman Zhuykov PR rtl-optimization/87979 * modulo-sched.c (sms_schedule): Start ii value "mii" should not equal zero. 2019-04-23 Roman Zhuykov PR rtl-optimization/84032 * modulo-sched.c (ps_insn_find_column): Change condition so that branch will always be the last insn in a row inside partial schedule. 2019-04-23 Richard Biener PR debug/90131 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add dest_single_pred_p argument. (remove_forwarder_block): Adjust. (remove_forwarder_block_with_phi): Likewise. 2019-04-23 Ramana Radhakrishnan Bernd Edlinger Jakub Jelinek PR target/89093 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose if used with general-regs-only. (arm_conditional_register_usage): Don't add non-general regs if general-regs-only. (arm_valid_target_attribute_rec): Handle general-regs-only. * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if general-regs-only. (TARGET_HARD_FLOAT_SUB): Define. (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB. (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY. (TARGET_REALLY_IWMMXT2): Likewise. * config/arm/arm.opt: Add -mgeneral-regs-only. * doc/extend.texi: Document ARM general-regs-only target. * doc/invoke.texi: Document ARM -mgeneral-regs-only. 2019-04-23 Bin Cheng PR tree-optimization/90078 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add checks for infinite_cost overflow. 2019-04-23 Bin Cheng PR tree-optimization/90021 * tree-chrec.c (evolution_function_is_univariate_p): New parameter and check univariate against it. * tree-chrec.h (evolution_function_is_univariate_p): New parameter. * tree-data-ref.c (add_other_self_distances): Pass new argument. 2019-04-21 H.J. Lu PR target/90178 Revert: 2018-11-21 Uros Bizjak Revert the revert: 2013-10-26 Vladimir Makarov Revert: 2013-10-25 Vladimir Makarov * lra-spills.c (lra_final_code_change): Remove useless move insns. 2019-04-21 Iain Sandoe * config/rs6000/rs6000.md (group_end_nop): Emit insn register names using operand format, rather than hard-wired. (speculation_barrier): Likewise. 2019-04-19 Segher Boessenkool PR tree-optimization/88055 * tree-call-cdce.c (comparison_code_if_no_nans): New function. (gen_one_condition): Use it if !HONOR_NANS. 2019-04-19 Jakub Jelinek PR middle-end/90139 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return assign_temp instead of gen_reg_rtx. 2019-04-19 Christophe Lyon PR translation/90118 * config/aarch64/aarch64.c (aarch64_override_options_internal): Add missing space before %<. 2019-04-18 Peter Bergner PR rtl-optimization/87871 * ira-lives.c (make_object_dead): Don't add conflicts to TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts. 2019-04-18 Martin Sebor PR middle-end/89797 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U. * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid assuming type size fits in SHWI. 2019-04-18 Jan Hubicka PR ipa/85051 * ipa-inline.c (flatten_function): New parameter UPDATE. (ipa_inline, early_inliner): Use it. 2019-04-18 Richard Sandiford * fold-const.c (int_const_binop): Return early on failure. 2019-04-18 Richard Sandiford PR middle-end/85164 * combine.c (force_int_to_mode): Cast the argument rather than the result of known_alignment. * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p. 2019-04-18 Richard Biener PR debug/90131 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split out from ... (remove_forwarder_block): ... here. (remove_forwarder_block_with_phi): Also move debug stmts here. 2019-04-18 Jakub Jelinek PR translation/79183 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of inform where appropriate. 2019-04-18 Richard Biener * tree.c (get_qualified_type): Put found type variants at the head of the variant list. 2018-04-17 Segher Boessenkool * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo. 2019-04-17 Hongtao Liu PR target/90125 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3. 2019-04-17 Peter Bergner * ira-conflicts.c (print_allocno_conflicts): Always print something, even for allocno's with no conflicts. (print_conflicts): Print an extra newline. 2019-04-17 Segher Boessenkool * auto-inc-dec.c (attempt_change): Set the alignment of the temporary memory to that of the original. 2019-04-17 Joao Moreira * targhooks.c (default_print_patchable_function_entry): Emit __patchable_function_entries section with writable flags to allow relocation resolution. 2019-04-17 Jonny Grant * collect2.c (main): Change gcc.gnu.org URL to HTTPS. 2019-04-17 Jakub Jelinek PR middle-end/90095 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P on lowpart SUBREGs. 2019-04-17 Claudiu Zissulescu * config/arc/arc.c (arc_init): Format diagnostic string. (arc_override_options): Likewise. (check_if_valid_regno_const): Likewise. (arc_reorg): Likewise. 2019-04-17 Segher Boessenkool PR target/17108 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern name. (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern name. * config/rs6000/rs6000.md (bits): Add entries for SF and DF. (*movdi_update1): Use Pmode. (movdi__update): Fix argument to avoiding_indexed_address_p. (movdi__update_stack): Rename to ... (movdi_update_stack): ... this. Fix comment. Change condition. Don't use Pmode. (*movsi_update1): Use Pmode. (*movsi_update2): Use Pmode. (movsi_update): Rename to ... (movsi__update): ... this. Use Pmode. (movsi_update_stack): Fix condition. (*movhi_update1): Use Pmode. Fix argument to avoiding_indexed_address_p. (*movhi_update2): Ditto. (*movhi_update3): Ditto. (*movhi_update4): Ditto. (*movqi_update1): Ditto. (*movqi_update2): Ditto. (*movqi_update3): Ditto. (*movsf_update1, *movdf_update1): Merge, rename to... (*mov_update1): This. Use Pmode. Fix argument to avoiding_indexed_address_p. Add "size" attribute. (*movsf_update2, *movdf_update2): Merge, rename to... (*mov_update2): This. Ditto. (*movsf_update3): Use Pmode. Fix argument to avoiding_indexed_address_p. (*movsf_update4): Ditto. (allocate_stack): Simplify condition. Adjust pattern names. 2019-04-17 Jakub Jelinek PR target/89093 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip whitespace at the start of target attribute string. 2019-04-16 Pat Haugen PR target/84369 * config/rs6000/power9.md: Add store forwarding bypass. 2019-04-16 Alexandre Oliva PR debug/89528 * valtrack.c (dead_debug_insert_temp): Reset debug references to the return value of a call being removed. 2019-04-16 Claudiu Zissulescu * config/arc/arc-protos.h (arc_register_move_cost): Remove. * config/arc/arc.c (arc_register_move_cost): Re-purpose it to implement target hook. (arc_memory_move_cost): New function. (TARGET_REGISTER_MOVE_COST): Define. (TARGET_MEMORY_MOVE_COST): Likewise. * config/arc/arc.h (REGISTER_MOVE_COST): Remove. (MEMORY_MOVE_COST): Likewise. 2019-04-16 Claudiu Zissulescu * config/arc/arc.md (sibcall_insn): Use Rcd constraint. (sibcall_value_insn): Likewise. * config/arc/constraints.md (Rs5): Remove. 2019-04-16 Claudiu Zissulescu * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes for last two fake registers. (arc_conditional_register_usage): Make sure fake frame and arg pointer regs are in general regs class. (FRAME_POINTER_MASK): Remove. (RETURN_ADDR_MASK): Remove. (arc_must_save_register): Use hard frame regnum. (frame_restore_reg): Use hard_frame_pointer_rtx. (arc_save_callee_saves): Likewise. (arc_restore_callee_saves): Likewise. (arc_save_callee_enter): Likewise. (arc_restore_callee_leave): Likewise. (arc_save_callee_milli): Likewise. (arc_eh_return_address_location): Likewise. (arc_check_multi): Use hard frame regnum. (arc_can_eliminate): Likewise. * config/arc/arc.h (FIXED_REGISTERS): Make FP register available for register allocator. (REG_CLASS_CONTENTS): Update GENERAL_REGS. (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM. (FRAME_POINTER_REGNUM): Change it to a fake register. (HARD_FRAME_POINTER_REGNUM): Defined. (ARG_POINTER_REGNUM): Change it to a new fake register. (ELIMINABLE_REGS): Update. (REGISTER_NAMES): Update names. * config/arc/arc.md (LP_START): Remove. (LP_END): Likewise. (shift_si3_loop): Update pattern. 2019-04-16 Claudiu Zissulescu * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless to avoid delay slot scheduling. (arc_must_save_register): Don't save SP. * config/arc/arc.md (stack_tie): Remove. (UNSPEC_ARC_STKTIE): Likewise. 2019-04-16 Kito Cheng Shiva Chen * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong code gen with large shift amount. 2019-04-16 Chung-Ju Wu * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle subreg. 2019-04-16 Jakub Jelinek PR target/90096 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only print -m64/-mx32/-m32 if it is true. (ix86_debug_options, ix86_function_specific_print): Pass true as ADD_ABI_P to ix86_target_string. (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32. PR rtl-optimization/90082 * dce.c (can_delete_call): New function. (deletable_insn_p, mark_insn): Use it. PR tree-optimization/90090 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can throw internally. (is_division_by_square): Likewise. Formatting fix. 2019-04-16 Richard Biener PR tree-optimization/56049 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set equality check if alias-set zero will prevail. 2019-04-15 Jeff Law * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat size and alignment as unsigned. 2019-04-15 Richard Biener PR debug/90074 * tree-loop-distribution.c (destroy_loop): Preserve correct debug info. 2019-04-15 Richard Biener PR tree-optimization/90071 * tree-ssa-reassoc.c (init_range_entry): Do not pick up abnormal operands from def stmts. 2019-04-15 Segher Boessenkool PR rtl-optimization/89794 * combine.c (count_auto_inc): New function. (try_combine): Count how many auto_inc expressions there were in the original instructions. Ensure we have the same number in the new instructions. Remove the code that tried to ensure auto_inc side effects on i1 and i0 are not lost. 2019-04-15 Richard Biener PR ipa/88936 * tree.h (auto_var_p): Declare. * tree.c (auto_var_p): New function, split out from ... (auto_var_in_fn_p): ... here. * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid member. (new_var_info): Initialize it. (set_uids_in_ptset): Also set the shadow variable uid if required. (ipa_pta_execute): Postprocess points-to solutions assigning shadow variable uids for locals that may reach their containing function recursively. * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not assert but instead check whether the points-to solution is a singleton. 2019-04-15 Martin Jambor PR ipa/pr89693 * cgraph.c (clone_of_p): Loop over clone chain for each step in the thunk chain. 2019-04-15 Monk Chiang * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes. 2019-04-15 Monk Chiang Kito Cheng Shiva Chen * config/nds32/nds32-md-auxiliary.c (nds32_legitimize_pic_address): Use new PIC pattern. (nds32_legitimize_tls_address): Use new TLS pattern. (nds32_output_symrel): New. * config/nds32/nds32-protos.h (nds32_output_symrel): Declare. (nds32_alloc_relax_group_id): Ditto. * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New. (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use relax_group_id. (nds32_group_tls_insn): Ditto. (nds32_group_float_insns): Ditto. * config/nds32/nds32.md (tls_le): New. (sym_got): Ditto. 2019-04-15 Chung-Ju Wu * configure: Add nds32 target for dwarf2 debug_line checking. * configure.ac: Regenerated. 2019-04-14 Jan Hubicka PR lto/89358 * ipa-devirt.c (skip_in_fields_list_p): New. (odr_types_equivalent_p): Use it. 2019-04-13 Jakub Jelinek PR target/89093 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp instead of strncmp when checking for thumb and arm. Formatting fixes. 2019-04-12 Iain Buclaw * doc/install.texi: Document --with-target-system-zlib. 2019-04-12 Martin Sebor PR c/88383 PR c/89288 PR c/89798 PR c/89797 * targhooks.c (default_vector_alignment): Avoid assuming argument fits in SHWI. * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in a shift expression. * doc/extend.texi (__builtin_has_attribute): Add a clarifying note. 2019-04-12 Jakub Jelinek PR rtl-optimization/89965 * dce.c: Include rtl-iter.h. (struct check_argument_load_data): New type. (check_argument_load): New function. (find_call_stack_args): Check for loads from stack slots still tracked in sp_bytes and punt if any is found. * config/mips/loongson-mmiintrin.h: Fix up #error message. 2019-04-12 Jan Hubicka * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter. * doc/invoke.texi (max-lto-streaming-paralellism): New --param. 2019-04-12 Martin Liska PR middle-end/89970 * multiple_target.c (create_dispatcher_calls): Wrap ifunc in error message. (separate_attrs): Handle multiple 'default's. (expand_target_clones): Rework error handling code. 2019-04-12 Kelvin Nilsen PR target/87532 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner mode of vector rather than mode of destination for move instruction. * config/rs6000/vsx.md (*vsx_extract__mode_var): Use QI inner mode with V16QI vector mode. 2019-04-12 Jakub Jelinek PR target/52726 * config/tilepro/tilepro.c (tilepro_print_operand): Use just "invalid %%t operand" in output_operand_lossage message. 2019-04-12 Andreas Krebbel * config/s390/predicates.md (permute_pattern_operand): New predicate. * config/s390/vector.md ("*vec_splats_bswap_vec"): Add USE operand for the permute pattern. ("*vec_perm"): New insn definition. ("bswap"): Generate the permute pattern operand in the expander and perform the operand reloads for pre arch13 level already. ("*bswap_emu"): Rename to ... ("*bswap"): ... this. And make the splitter vxe2 only. * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap"): Add the USE operand for the permute pattern. ("*vec_set_bswap_vec"): Likewise. 2019-04-12 Jakub Jelinek PR c/89946 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p and gcc_unreachable if it fails, just call tree_to_uhwi which verifies that too. Test TREE_CHAIN instead of list_length > 1. Start warning message with a lower-case letter. Formatting fixes. PR rtl-optimization/90026 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no successors, look for BARRIERs inside of the whole BB_FOOTER chain rather than just at the start of it. If e->src BB_FOOTER is not NULL in cfglayout mode, use emit_barrier_after_bb. 2018-04-11 Steve Ellcey PR rtl-optimization/87763 * config/aarch64/aarch64.md (*aarch64_bfi4_noshift_alt): New Instruction. 2019-04-11 Tom de Vries * doc/extend.texi (@node Statement Exprs): Note variable shadowing at max macro using statement expression. 2019-04-11 David Edelsohn * xcoffout.h (xcoff_private_rodata_section_name): Declare. * xcoffout.c (xcoff_private_rodata_section_name): Define. * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create read_only_private_data_section using xcoff_private_rodata_section_name. (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name. 2019-04-11 Christophe Lyon PR target/90016 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'. 2019-04-11 Jakub Jelinek PR rtl-optimization/89965 * dce.c (sp_based_mem_offset): New function. (find_call_stack_args): Use sp_based_mem_offset. 2019-04-11 Jonathan Wakely * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs. 2019-04-11 Richard Biener PR tree-optimization/90020 * tree-ssa-sccvn.c (vn_reference_may_trap): New function. * tree-ssa-sccvn.h (vn_reference_may_trap): Declare. * tree-ssa-pre.c (compute_avail): Use it to not put possibly trapping references after a call that might not return into EXP_GEN. * gcse.c (compute_hash_table_work): Do not elide marking a block containing a call if the call might not return. 2019-04-11 Richard Biener PR tree-optimization/90018 * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Test both SLP and interleaving variants. 2019-04-11 Robin Dapp * config/s390/8561.md: New file. * config/s390/driver-native.c (s390_host_detect_local_cpu): Add arch13 cpu model. * config/s390/s390-opts.h (enum processor_type): Likewise. * config/s390/s390.c (s390_get_sched_attrmask): Add arch13. (s390_get_unit_mask): Likewise. (s390_is_fpd): Likewise. (s390_is_fxd): Likewise. * config/s390/s390.h (s390_tune_attr): Likewise. * config/s390/s390.md: Include arch13 pipeline description. * config/s390/s390.opt: Add arch13. 2018-04-10 Steve Ellcey PR rtl-optimization/87763 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p): New prototype. * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p): New function. * config/aarch64/aarch64.md (*aarch64_bfi5_shift): New instruction. (*aarch64_bfi5_shift_alt): Ditto. (*aarch64_bfi4_noand): Ditto. (*aarch64_bfi4_noand_alt): Ditto. (*aarch64_bfi4_noshift): Ditto. 2019-04-10 Jonathan Wakely * doc/invoke.texi (Optimize Options): Change "Nevertheless" to "Although" in -fipa-icf documentation. * doc/invoke.texi (Debugging Options): Explicitly state the semantics of using multiple -g options. 2019-04-10 Martin Liska PR gcov-profile/89959 * doc/gcov.texi: Make documentation of -x option more precise. 2019-04-10 Richard Biener * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt member. (DR_GROUP_SAME_DR_STMT): Remove. * tree-vect-stmts.c (vectorizable_load): Remove unreachable code. * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise, replace with assert. (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison. (vect_record_grouped_load_vectors): Remove unreachable code. 2019-04-10 Richard Earnshaw PR target/90016 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and obsolete reference to N. 2019-04-10 Jakub Jelinek PR middle-end/90025 * expr.c (store_expr): Set properly size on the MEM passed to clear_storage. PR c++/90010 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr with strlen in between hostsz-3 and hostsz-1 inclusive when no translation is needed, and when translation is needed, only append ... if the string length is hostsz or more bytes long. Avoid using strncpy or strcat. 2019-04-09 Matthew Malcomson PR target/90024 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter. * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint into three. * config/arm/neon.md (*neon_mov): Account for TImode and DImode differences directly. (*smax3_neon, vashl3, vashr3_imm): Use Dm constraint. 2019-04-09 Jakub Jelinek PR translation/90011 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces from diagnostics. * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p diagnostics. * config/riscv/freebsd.h (LINK_SPEC): Likewise. * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise. * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove trailing space from -gsplit-dwarf diagnostics. PR tree-optimization/89998 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type instead of integer_type_node if possible, don't add ranges if return type is not compatible with int. * gimple-fold.c (gimple_fold_builtin_sprintf, gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded integer_type_node. 2019-04-09 Martin Liska * Makefile.in: Use GENERATOR_CFLAGS for all generators. * doc/install.texi: Document the new config. 2019-04-09 Richard Sandiford * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always use gimple_expr_type for load and store calls. Skip over the condition argument in a conditional internal function. Protect use of TREE_INT_CST_LOW. 2019-04-09 Jakub Jelinek PR target/90015 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo. (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove trailing period from it too. 2019-04-08 wu yuan * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model. * config/aarch64/aarch64.md : Add "tsv110.md" * config/aarch64/tsv110.md: New file. 2019-04-08 Richard Biener PR tree-optimization/90006 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle calls like lrint. 2019-04-08 Andrea Corallo PR target/83033 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy construction. (fma_root_node): Likewise. (func_fma_steering): Likewise. 2019-04-08 Jakub Jelinek PR rtl-optimization/89865 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z. PR rtl-optimization/89865 * config/i386/i386.md (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand numbers not to clash with the additional operands[4]. (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s with extra register copy in the middle. 2019-04-08 Martin Liska PR gcov-profile/89961 * doc/gcov.texi: Document data_file. * gcov.c (generate_results): Add data_info into JSON output. 2019-04-01 Bin Cheng PR tree-optimization/89725 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer loop's chrec as invariant symbol. * tree-chrec.h (chrec_contains_symbols): New parameter. * tree-data-ref.c (analyze_miv_subscript): Pass new argument. (build_classic_dist_vector_1, add_other_self_distances): Bypass access function of loops not in DDR's loop_nest. * tree-data-ref.h (index_in_loop_nest): Add unreachable check. 2019-04-08 Chenghua Xu PR target/89623 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of Mask. 2019-04-07 Uroš Bizjak PR target/89945 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand. 2019-04-05 Joern Rennecke * sched-deps.c (sched_macro_fuse_insns): Check return value of targetm.fixed_condition_code_regs. 2019-04-05 Richard Biener PR debug/89892 PR debug/89905 * tree-cfgcleanup.c (remove_forwarder_block): Always move debug bind stmts but reset them if they are not valid at the destination. 2019-04-05 Martin Liska PR translation/89936 * collect-utils.c (collect_execute): Use %< and %>, or %qs in order to wrap keywords or arguments. * collect2.c (main): Likewise. (scan_prog_file): Likewise. (scan_libraries): Likewise. * common/config/riscv/riscv-common.c (riscv_subset_list::parsing_subset_version): Likewise. (riscv_subset_list::parse_std_ext): Likewise. * config/aarch64/aarch64.c (aarch64_override_options_internal): Likewise. * config/arm/arm.c (arm_option_override): Likewise. * config/cris/cris.c (cris_print_operand): Likewise. * config/darwin-c.c (darwin_pragma_options): Likewise. (darwin_pragma_unused): Likewise. (darwin_pragma_ms_struct): Likewise. * config/ft32/ft32.c (ft32_print_operand): Likewise. * config/i386/i386.c (print_reg): Likewise. (ix86_print_operand): Likewise. * config/i386/xm-djgpp.h: Likewise. * config/iq2000/iq2000.c (iq2000_print_operand): Likewise. * config/m32c/m32c.c (m32c_option_override): Likewise. * config/msp430/msp430.c (msp430_option_override): Likewise. * config/nds32/nds32.c (nds32_option_override): Likewise. * config/nvptx/mkoffload.c (main): Likewise. * config/rx/rx.c (rx_print_operand): Likewise. (valid_psw_flag): Likewise. * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise. (vms_pragma_nomember_alignment): Likewise. (vms_pragma_extern_model): Likewise. * lto-wrapper.c (compile_offload_image): Likewise. * omp-offload.c (oacc_parse_default_dims): Likewise. * symtab.c (symtab_node::verify_base): Likewise. * tlink.c (recompile_files): Likewise. (start_tweaking): Likewise. * tree-profile.c (parse_profile_filter): Likewise. 2019-04-05 Richard Sandiford PR tree-optimization/89956 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against multiple negates of the same value. 2019-04-04 Martin Sebor PR middle-end/89957 PR middle-end/89911 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands have the same precision since the function crashes otherwise. * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call has non-zero arguments. 2019-04-04 Martin Sebor PR middle-end/89934 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail out if the number of arguments is less than expected. 2019-04-04 Jeff Law PR rtl-optimization/89399 * ree.c (combine_set_extension): Use single_set rather than digging into PATTERN for items on the candidate list. (combine_reaching_defs): Likewise. 2019-04-04 Richard Sandiford PR rtl-optimization/46590 * loop-invariant.c (find_defs): Move df_remove_problem and df_process_deferred_rescans to move_invariants. Move df_live_add_problem and df_live_set_all_dirty calls to move_invariants. (move_invariants): Likewise. (move_loop_invariants): Likewise, making the df_live calls conditional on -O. Remove the problem again if we added it locally. 2019-04-03 qing zhao PR tree-optimization/89730 * ipa-inline.c (can_inline_edge_p): Delete the checking for -flive-patching=inline-only-static. (can_inline_edge_by_limits_p): Add the checking for -flive-patching=inline-only-static and grant always_inline even when -flive-patching=inline-only-static is specified. 2019-04-03 Jeff Law PR rtl-optimization/81025 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER. 2019-04-03 Richard Biener PR tree-optimization/84101 * tree-vect-stmts.c: Include explow.h for hard_function_value, regs.h for hard_regno_nregs. (cfun_returns): New helper. (vect_model_store_cost): When vectorizing a store to a decl we return and the function ABI returns in a multi-reg location account for the possible spilling that will happen. 2019-04-03 Andreas Krebbel * config/s390/s390.c (s390_legitimate_address_p): Reject long displacement addresses for vector mode operands. 2019-04-03 Claudiu Zissulescu * config/arc/arc.c (GMASK_LEN): Define. (arc_restore_callee_saves): Restore first blink when !optimize_size. 2019-04-03 Sudakshina Das * doc/extend.texi: Add deprecated comment on sign-return-address function attribute and add mbranch-protection. * doc/invoke.texi: Add bti to the options for mbranch-protection. 2019-04-03 Richard Biener PR lto/89896 * lto-wrapper.c (run_gcc): Avoid implicit rules making the all target phony. 2019-04-02 Uroš Bizjak PR target/89902 PR target/89903 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Return false for variable DImode shifts. (dimode_scalar_chain::compute_convert_gain): Do not handle register count operand in variable DImode shifts. (dimode_scalar_chain::make_vector_copies): Remove support to copy count argument of a variable shift instruction to a vector register. (dimode_scalar_chain::convert_reg): Remove support to convert count argument of a variable shift instruction. 2019-04-02 Andrey Belevantsev PR rtl-optimization/84206 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when iterating over loop headers. 2019-04-02 Andrey Belevantsev PR rtl-optimization/85876 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn beyond the original fence. 2019-04-02 Ulrich Weigand * config.gcc: Mark spu* targets as deprecated/obsolete. 2019-04-02 Andreas Krebbel * config/s390/s390-builtin-types.def: New builtin function type definitions. Remove unused types. * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb) (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions. (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New overloaded builtins. (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb) (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins. * config/s390/vecintrin.h (vec_float): New builtin macro definition. (vec_double, vec_signed, vec_unsigned): Define to use the new overloaded builtins. * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"): Remove expanders. 2019-04-02 Andreas Krebbel * config/s390/s390-builtin-types.def: New builtin function type definitions. * config/s390/s390-builtins.def (s390_vec_search_string_cc) (s390_vec_search_string_until_zero_cc): New overloaded builtins. (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb) (s390_vstrszh, s390_vstrszf): New low-level builtins. * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New constant definitions. * config/s390/vecintrin.h (vec_search_string_cc) (vec_search_string_until_zero_cc): New builtin name definitions. * config/s390/vx-builtins.md ("vstrs", "vstrsz"): New expanders. ("vec_vstrs"): New insn definition. 2019-04-02 Andreas Krebbel * config/s390/s390-builtin-types.def: Add new builtin function types. * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb): New overloaded builtins. (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and s390_vsrd. * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ... (UNSPEC_VEC_SLDBYTE): ... this. (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions. * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name definitions. * config/s390/vx-builtins.md ("vec_sld", "vec_sldw"): Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE. ("vec_sldb", "vec_srdb"): New insn definitions. 2019-04-02 Andreas Krebbel ("*vec_splats_bswap_vec", "*vec_splats_bswap_elem"): New insn definition. * config/s390/vx-builtins.md (V_HW_HSD): Move to ... * config/s390/vector.md (V_HW_HSD): ... here. 2019-04-02 Andreas Krebbel * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler. * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap") ("*vec_set_bswap_elem", "*vec_set_bswap_vec") ("*vec_extract_bswap_vec", "*vec_extract_bswap_elem"): New insn definitions. 2019-04-02 Andreas Krebbel * config/s390/s390-builtin-types.def: Add new builtin function type. * config/s390/s390-builtins.def: Add overloaded builtin s390_vec_reve and low-level builtins for s390_vler and s390_vster. * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition. * config/s390/vecintrin.h (vec_reve): New builtin name definition. * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator. ("eltswap"): New expander. ("*eltswapv16qi", "*eltswap", "*eltswap_emu"): New insn definitions. 2019-04-02 Andreas Krebbel * config/s390/s390-builtin-types.def: Add new builtin function types. * config/s390/s390-builtins.def: Add overloaded builtin s390_vec_revb. Add low-level builtins for vlbr and vstbr instructions. * config/s390/vecintrin.h (vec_revb): New builtin name definition. * config/s390/vector.md (VT_HW_HSDT): New mode iterator. ("bswap"): New expander. ("*bswap", "*bswap_emu"): New insn definitions. 2019-04-02 Andreas Krebbel * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition. * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment vector builtin version number in __VEC__. 2019-04-02 Andreas Krebbel * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode iterators. (SFSI): New mode attribute. ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13") ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and rename to ... ("*fixuns_trunc2_z13") ("*fix_trunc2_bfp_z13") ("*floatuns2_z13"): ... these. ("floatsi2"): Add wcefb instruction. 2019-04-02 Andreas Krebbel * config/s390/s390.md ("xde"): Extend mode attribute to vector types. * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New mode iterators. ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2") ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also support 32 bit fp-int conversions. Rename to ... ("float2") ("floatuns2") ("fix_trunc2") ("fixuns_trunc2"): ... to these. 2019-04-02 Andreas Krebbel * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for if-then-else constructs if we can use the select instruction. * config/s390/s390.md ("*movcc"): Add the new instructions. 2019-04-02 Andreas Krebbel * config/s390/s390.md ("*popcountdi_arch13_cc") ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn definition. ("*popcount", "popcountdi2", "popcountsi2", "popcounthi2"): Append _z196 to make it ... ("*popcount_z196", "popcountdi2_z196", "popcountsi2_z196") ("popcounthi2_z196"): ... this. ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition. ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders. 2019-04-02 Andreas Krebbel * config/s390/s390.c (s390_canonicalize_comparison): Convert certain compares for arch13 in order to make use of the condition code result produced by the new instructions. (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk, nxrk, and nxgrk instruction patterns. * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name) (inv_no): Add new code iterator together with some attributes. ("*andc_split_"): Disable splitter for arch13. ("*c_cc") ("*c_cconly") ("*c") ("*n_cc") ("*n_cconly") ("*n", "*nxor_cc") ("*nxor_cconly", "*nxor"): New insn definitions. 2019-04-02 Andreas Krebbel * common/config/s390/s390-common.c (processor_flags_table): New entry for arch13. * config.gcc: Support arch13 with the --with-arch= configure flag. * config/s390/driver-native.c (s390_host_detect_local_cpu): * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13. * config/s390/s390.c (s390_get_sched_attrmask) (s390_get_unit_mask): Add PROCESSOR_ARCH13. * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13. * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P) (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13) (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro definitions. * config/s390/s390.opt: Support arch13 as processor type in command line options. 2019-04-02 Martin Liska PR translation/89912 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): Fix param description of graphite-max-arrays-per-scop. 2019-04-02 Eric Botcazou * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro. (ASAN_CC1_SPEC): Use it in 64-bit mode. * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon. 2019-04-01 Andrey Belevantsev PR rtl-optimization/85412 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before sel_sched_region_1, not after. 2019-04-01 Andrey Belevantsev PR rtl-optimization/86928 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke compute_live if necessary. (sel_redirect_edge_and_branch): Likewise. 2019-04-01 Vladimir Makarov PR rtl-optimization/89865 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard register if it is a part of small class. 2019-04-01 Andrey Belevantsev PR rtl-optimization/87273 * sel-sched-ir.c (merge_fences): Remove assert. 2019-04-01 Richard Biener PR tree-optimization/46590 * domwalk.h (dom_walker::dom_walker): Consolidate constructors. (dom_walker::m_reachability): Add in place of... (dom_walker::m_skip_unreachable_blocks): ...this. * domwalk.c (dom_walker::dom_walker): Consoliate constructors. Move complex initialization ... (dom_walker::walk): Here. Especially compute m_bb_to_rpo lazily and initialize edge flags on each invocation. (dom_walker::bb_reachable): Use m_reachability. 2019-04-01 Martin Liska PR driver/89861 * opt-suggestions.c (option_proposer::build_option_suggestions): Add variant without any argument in order to provide better hints. 2019-04-01 Richard Biener PR c/71598 * gimple.c: Include langhooks.h. (gimple_get_alias_set): Treat enumeral types as the underlying integer type. 2019-03-29 Kugan Vivekanandarajah Eric Botcazou PR rtl-optimization/89862 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations that operates on the full registers for WORD_REGISTER_OPERATIONS architectures. 2019-03-29 Jim Wilson * common/config/riscv/riscv-common.c (riscv_parse_arch_string): Clear MASK_RVC and then set if C subset supported. 2019-03-29 Jakub Jelinek PR c/89872 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a non-addressable complit into its initializer if it is volatile. 2019-03-29 Roman Zhuykov * opts-common.c (integral_argument): Set errno properly in one case. 2019-03-29 Martin Liska * doc/invoke.texi: Remove -Wchkp from documentation. 2019-03-29 Martin Liska * dbgcnt.c (print_limit_reach): New function. (dbg_cnt): Use it. 2019-03-29 Martin Liska * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style. (dbg_cnt_process_opt): Parse first tokens aas dbg_cnt_process_single_pair is also using strtok. 2019-03-29 Jakub Jelinek PR rtl-optimization/87485 * function.c (expand_function_end): Move stack_protect_epilogue before loading of return value into hard register(s). 2019-03-28 Jakub Jelinek PR middle-end/89621 * tree-inline.h (struct copy_body_data): Add dont_remap_vla_if_no_change flag. * tree-inline.c (remap_type_3, remap_type_2): New functions. (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change and remap_type_2 returns false. * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change. Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx only from where it is copied to nested contexts. 2019-03-28 Uroš Bizjak PR target/89865 * config/i386/i386.md (RMW operation with LEA peephole): Use LEAMODE mode attribute instead of SWI mode iterator for LEA pattern. 2019-03-28 Uroš Bizjak PR target/89848 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies): Also process XEXP (src, 0) of a shift insn. 2019-03-28 David Malcolm PR middle-end/89725 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json): Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl. 2019-03-28 Jakub Jelinek * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P test. (cprop_hardreg_bb, cprop_hardreg_debug): New functions. (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing immediately after first one with df_analyze in between, but rather process all bbs, queueing ones that need second pass in a worklist, df_analyze, process queued debug insn changes and if second pass is needed, process bbs from worklist, df_analyze, process queued debug insns again. * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P or CALL_P instead of INSN_P && !DEBUG_INSN_P. (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P. 2019-03-28 Jonathan Wakely PR c/79022 * gengtype.h (create_nested_ptr_option): Fix parameter names to match definition. 2019-03-27 Mateusz B PR target/85667 * config/i386/i386.c (ix86_function_value_1): Call the newly added function for 32-bit MS_ABI. (function_value_ms_32): New function. 2019-03-27 Andrew Stubbs * config/gcn/gcn.md (CC_SAVE_REG): New constant. (movdi): Call gen_movdi_symbol_save_scc. (gen_movdi_symbol_save_scc): New insn and split. 2019-03-27 Peter Bergner PR rtl-optimization/89313 * function.c (matching_constraint_num): New static function. (match_asm_constraints_1): Use it. Fixup white space and comment. Don't replace inputs with non-matching constraints which conflict with early clobber outputs. 2019-03-27 Jeff Law PR rtl-optimization/87761 PR rtl-optimization/89826 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test slightly later. (pass_cprop_hardreg::execute): Call df_analyze after adding the note problem to get REG_DEAD/REG_UNUSED notes updated. 2019-03-27 Richard Biener PR tree-optimization/89463 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to queue edges to remove. (eliminate_unnecessary_stmts): Remove dead PHIs alongside dead stmts. Delay edge removal until PHIs are removed to make debug-stmt creation not confused by seemingly degenerate PHIs. 2019-03-27 Alan Modra * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS throughout file. * config/rs6000/darwin.h: Likewise. * config/rs6000/rs6000.c: Likewise. 2019-03-27 Alan Modra * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting. 2019-03-26 Andrew Waterman Jim Wilson * config/riscv/generic.md (generic_alu, generic_load, generic_store) (generic_xfer, generic_branch, generic_imul, generic_idivsi) (generic_idivdi, generic_fmul_single, generic_fmul_double) (generic_fdiv, generic_fsqrt): Add check for generic tune. (generic_alu): Add auipc to type list. * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New. (riscv_microarchitecture): Declare. * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare. * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture field. (riscv_microarchitecture): New. (sifive_7_tune_info): New. (riscv_cpu_info_table): Add microarchitecture value for rocket and size. Add sifive-3-series, sifive-5-series, and sifive-7-series entries. (riscv_store_data_bypass_p): New. (riscv_option_override): Set riscv_microarchitecture from cpu->microarchitecture. * config/riscv/riscv.md: Include sifive-7.md. (type): Add auipc. (tune): New. (auipc): Change type to auipc. (restore_stack_nonlocal): New. * config/riscv/sifive-7.md: New. * doc/invoke.texi (RISC-V Options): Update mtune docs. 2019-03-26 Uroš Bizjak PR target/89827 * config/i386/i386.c (dimode_scalar_chain::convert_reg): Also process XEXP (src, 0) of a shift insn. 2019-03-26 Richard Biener * tree-inline.c (remap_gimple_stmt): Cache gimple_block. (copy_debug_stmt): Likewise. (expand_call_inline): Likewise. (copy_bb): Avoid redundant lookup & set of gimple_block. * gimple-low.c (lower_gimple_return): Likewise. (lower_builtin_setjmp): Likewise. 2019-03-26 Jakub Jelinek * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS is constant 0, turn into static const data member initialized to false. (hash_table::hash_table): Only initialize m_gather_mem_stats #if GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param. 2019-03-26 Jason Merrill Jakub Jelinek * mem-stats.h (mem_alloc_description::unregister_descriptor): New method. (mem_alloc_description::release_object_overhead): Fix comment typos. * hash-table.h (hash_table::~hash_table): Call release_instance_overhead only if m_entries is non-NULL, otherwise call unregister_descriptor. 2019-03-26 Bin Cheng PR tree-optimization/81740 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): In case of outer loop vectorization, check for backward dependence at the inner loop if outer loop dependence is reversed. 2019-03-26 Alan Modra * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct rs6000_vector_mem init. Correct wI and wJ comment. 2019-03-25 Alexander Monakov PR rtl-optimization/88347 PR rtl-optimization/88423 * sched-deps.c (sched_analyze_insn): Take into account that for tablejumps the barrier appears after a label and a jump_table_data. 2019-03-25 Martin Sebor PR c/89812 * c-common.c (check_user_alignment): Rename local. Correct maximum alignment in diagnostic. Avoid assuming argument fits in SHWI, convert it to UHWI when it fits. 2019-03-25 Johan Karlsson PR debug/86964 * dwarf2out.c (premark_used_variables): New function. (prune_unused_types_walk): Do not mark not premarked external variables. (prune_unused_types): Call premark_used_variables. 2019-03-25 Vladimir Makarov PR rtl-optimization/89676 * lra-constraints.c (curr_insn_transform): Do match reload for early clobbers when the match was successful only for different registers. 2019-03-25 Martin Sebor * doc/extend.texi (Common Type Attributes): Document vector_size. (Common Variable Attributes): Mention size constraint. Correct quoting and typos. (Vector Extensions): Use @dfn when defining bas type. Clarify base type and size constraints. 2019-03-25 Richard Biener PR tree-optimization/89789 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice changes from non-undefined back to undefined. 2019-03-25 Thomas Otto * dwarf2out.c (comp_dir_string): cached_wd could be set to both a heap string and a gc string, but since this variable is unknown to ggc the gc string might get reused and corrupted. Fixed by always using a heap string. 2019-03-25 Richard Biener PR tree-optimization/89779 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return to remove IV defs, delay actual removal. (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset. (tree_ssa_iv_optimize): Remove eliminated IV defs at the very end, properly also reset loop control IV information. 2019-03-25 Richard Biener PR tree-optimization/89802 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly move EH data to folded stmt. 2019-03-25 Andreas Krebbel * config/s390/s390-builtin-types.def: Remove few unused types and fix sort order for others. 2019-03-25 Andreas Krebbel * config/s390/s390-c.c (s390_fn_types_compatible): Print the expected and found types with -mdebug during builtin matching. 2019-03-25 Richard Biener PR middle-end/89790 * fold-const.c (operand_equal_p): Revert last change with updated comment. 2019-03-24 Segher Boessenkool * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL notes for the result of the __tls_get_addr calls. * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New. 2019-03-24 Jeff Law * config/bfin/bfin.md (movpdi): Fix length for alternative 1. PR rtl-optimization/87761 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET, not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan as needed. (pass_cprop_hardreg::execute): Add df note problem and defer insn rescans. Reprocess blocks as needed, calling df_analyze before reprocessing. Always call df_analyze before fixing up debug bind insns. 2019-03-23 Segher Boessenkool * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit big endian. 2019-03-22 Andrew Pinski * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type attrribute for uxtw. 2019-03-26 Jeff Law PR rtl-optimization/87761 * config/mips/mips-protos.h (mips_split_move): Add new argument. (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move. (mips_split_move): Accept new INSN argument. Try to forward SRC into the next instruction. (mips_split_move_insn): Pass INSN through to mips_split_move. 2019-03-22 Vladimir Makarov PR rtl-optimization/89676 * lra-constraints.c (curr_insn_transform): Do match reload for early clobbers even if the match was successful. 2019-03-22 Jakub Jelinek PR c++/87481 * doc/invoke.texi (-fconstexpr-ops-limit=): Document. 2019-03-22 Bill Schmidt * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo. 2019-03-22 Jakub Jelinek * config/i386/sse.md (_fmadd__mask3, _fmsub__mask3, _fnmadd__mask3, _fnmsub__mask3, avx512f_vmfmadd__mask3, avx512f_vmfmsub__mask3, *avx512f_vmfnmadd__mask3): Use instead of register_operand and %v instead of v for match_operand 1. (avx512f_vmfnmsub__mask3): Rename to ... (*avx512f_vmfnmsub__mask3): ... this. Use instead of register_operand and %v instead of v for match_operand 1. * config/i386/sse.md (_fmadd__mask, _fmadd__mask3, _fmsub__mask, _fmsub__mask3, _fnmadd__mask, _fnmadd__mask3, _fnmsub__mask, _fnmsub__mask3, _fmaddsub__mask, _fmaddsub__mask3, _fmsubadd__mask, _fmsubadd__mask3): Use instead of nonimmediate_operand. (fmai_vmfmadd_, fmai_vmfmsub_, fmai_vmfnmadd_, fmai_vmfnmsub_): Use register_operand instead of for the operand that needs to match output. (*fmai_fmadd_, *fmai_fmsub_, *fmai_fnmadd_, *fmai_fnmsub_): Likewise. Formatting fixes. PR target/89784 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3. * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask, __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, __builtin_ia32_vfmsubss3_mask3): New builtins. * config/i386/sse.md (avx512f_vmfmadd__mask, avx512f_vmfmadd__mask3, avx512f_vmfmadd__maskz_1, *avx512f_vmfmsub__mask, avx512f_vmfmsub__mask3, *avx512f_vmfmasub__maskz_1, *avx512f_vmfnmadd__mask, *avx512f_vmfnmadd__mask3, *avx512f_vmfnmadd__maskz_1, *avx512f_vmfnmsub__mask, avx512f_vmfnmsub__mask3, *avx512f_vmfnmsub__maskz_1): New define_insns. (avx512f_vmfmadd__maskz): New define_expand. * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss, _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd, _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss, _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd, _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss, _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd, _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss, _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd, _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss, _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss, _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss, _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss, _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss, _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss, _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss, _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss, _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss, _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss, _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss, _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics. 2019-03-21 Martin Sebor PR tree-optimization/89350 * builtins.c (compute_objsize): Also ignore offsets whose upper bound is negative. * gimple-ssa-warn-restrict.c (builtin_memref): Add new member. (builtin_memref::builtin_memref): Initialize new member. Allow EXPR to be null. (builtin_memref::extend_offset_range): Replace local with a member. Avoid assuming pointer offsets are unsigned. (builtin_memref::set_base_and_offset): Determine base object before computing offset range. (builtin_access::builtin_access): Handle memset. (builtin_access::generic_overlap): Replace local with a member. (builtin_access::strcat_overlap): Same. (builtin_access::overlap): Same. (maybe_diag_overlap): Same. (maybe_diag_access_bounds): Same. (wrestrict_dom_walker::check_call): Handle memset. (check_bounds_or_overlap): Same. 2019-03-21 Jan Hubicka Jakub Jelinek PR lto/89692 * tree.c (fld_type_variant, fld_incomplete_type_of, fld_process_array_type): Call fld->pset.add and don't call add_tree_to_fld_list if it returns true. (free_lang_data_in_type): Similarly with self-recursive call. Purge non-marked types from TYPE_NEXT_VARIANT list. (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t). 2019-03-21 Jakub Jelinek * hash-table.h (hash_table): Add Lazy template parameter defaulted to false, if true, don't alloc_entries during construction, but defer it to the first method that needs m_entries allocated. (hash_table::hash_table, hash_table::~hash_table, hash_table::alloc_entries, hash_table::find_empty_slot_for_expand, hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow, hash_table::clear_slot, hash_table::traverse_noresize, hash_table::traverse, hash_table::iterator::slide): Adjust all methods. * hash-set.h (hash_set): Add Lazy template parameter defaulted to false. (hash_set::contains): If Lazy is true, use find_slot_with_hash with NO_INSERT instead of find_with_hash. (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter, hash_set::m_table): Add Lazy to template params of hash_table. (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param. * attribs.c (test_attribute_exclusions): Likewise. * hash-set-tests.c (test_set_of_strings): Add iterator tests for hash_set. Add tests for hash_set with Lazy = true. 2019-03-21 Richard Biener PR tree-optimization/89779 * tree.c (tree_nop_conversion): Consolidate and fix defensive checks with respect to released SSA names now having error_mark_node type. * fold-const.c (operand_equal_p): Likewise. 2019-03-20 Andreas Krebbel PR target/89775 * config/s390/s390.c (global_not_special_regno_p): Move to make it available to ... (s390_optimize_register_info): Use global_not_special_regno_p to check for global regs. 2019-03-20 Jakub Jelinek PR target/89752 * lra-constraints.c (process_alt_operands) : For BLKmode, don't update this_alternative nor this_alternative_set. 2019-03-19 Jim Wilson PR target/89411 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals align, size, offset. Use them to handle a BLKmode reference. Update comment. (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p. 2019-03-19 Jakub Jelinek PR rtl-optimization/89768 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode instead of GEN_INT. (unroll_loop_runtime_iterations): Likewise. 2019-03-19 Martin Sebor PR tree-optimization/89644 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p rather than endptr as an indicator of nul-termination. PR tree-optimization/89644 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated arrays in determining sequence sizes in strncpy and stpncpy. 2019-03-19 Martin Liska PR middle-end/89737 * predict.c (combine_predictions_for_bb): Empty likely_edges and unlikely_edges if there's an edge that belongs to both these sets. 2018-03-19 Segher Boessenkool PR target/89746 * config/rs6000/rs6000.md (fix_truncsi2_stfiwx): If we have a non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned, go via a stack temporary. 2019-03-19 Jakub Jelinek PR target/89378 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart instead of gen_rtx_SUBREG. * config/mips/mips-msa.md (vec_extract): Likewise. 2019-03-19 Richard Biener PR debug/88389 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO. 2019-03-19 Jan Hubicka PR lto/87809 PR lto/89335 * tree.c (free_lang_data_in_decl): Do not free context of C++ destrutors. 2019-03-19 Jakub Jelinek PR target/89506 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use subs for the first alternative except when operands[3] is 1. PR target/89752 * gimplify.c (gimplify_asm_expr): For output argument with TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise diagnose error. 2019-03-19 Eric Botcazou PR rtl-optimization/89753 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for explicit unrolling factor even more robust. 2019-03-19 Jakub Jelinek PR target/89726 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil compensation use x2 += 1 instead of x2 -= -1 and when honoring signed zeros, do another copysign after the compensation. 2019-03-18 Martin Sebor PR tree-optimization/89720 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min more conservatively, the same as anti-range. 2019-03-18 Richard Biener PR middle-end/88945 * tree-ssanames.c (release_ssa_name_fn): For released SSA names use a TREE_TYPE of error_mark_node to avoid ICEs when dumping basic-blocks that are removed. Remove restoring SSA_NAME_VAR. * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking. 2019-03-18 Andrew Stubbs * config/gcn/gcn-run.c (struct output): Make next_output unsigned. Extend queue to 1024 entries. Add "consumed" field. (gomp_print_output): Remove print_index parameter. Add final parameter. Change limit to unsigned. Use consumed field to implement circular buffer. Detect interrupted print in final pass. Flush output at the end. (run): Update gomp_print_output usage. (main): Initialize kernargs->output_data.consumed. 2019-03-18 Richard Sandiford * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the calculation of the minimum number of scalar iterations for fully-predicated loops. 2019-03-18 Martin Jambor PR tree-optimization/89546 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if any propagation to its children took place. 2019-03-18 Andrew Burgess PR target/89627 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset parameter, and make use of it. (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single. 2019-03-18 Claudiu Zissulescu * config/arc/arc.opt (mcode-density-frame): Get the inital value from TARGET_CODE_DENSITY_FRAME_DEFAULT. * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define. * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define. * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to match what the ops is doing. (push_multi_fp_blink): Likewise. * config/arc/arc.c (arc_override_options): Enable enter/leave when compiling for size and elf target. (arc_save_callee_enter): Adjust note to match what enter/leave operation does. 2019-03-18 Claudiu Zissulescu * config/arc/arc.md (tst_movb): Fix constraint. 2019-03-18 Claudiu Zissulescu * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define. 2019-03-18 Claudiu Zissulescu * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare. * config/arc/arc.c (arc_conditional_register_usage): Remove all reg_alloc_order references. (size_alloc_order): Define. (arc_adjust_reg_alloc_order): New function. * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register order. (ADJUST_REG_ALLOC_ORDER): Define. (HONOR_REG_ALLOC_ORDER): Likewise. 2019-03-18 Richard Biener PR target/87561 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided loads and stores a bit more. 2019-03-18 Richard Biener PR target/87561 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided load pessimization to stores as well. 2019-03-18 Andrey Belevantsev PR middle-end/86979 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible successor, use NULL as its av set. 2019-03-15 Segher Boessenkool PR rtl-optimization/89721 * lra-constraints (invariant_p): Return false if side_effects_p holds. 2019-03-15 Kelvin Nilsen PR target/87532 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): When handling vec_extract, use modular arithmetic to allow constant selectors greater than vector length. * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow V1TImode vectors to have constant selector values greater than 0. Use modular arithmetic to compute vector index. (rs6000_split_vec_extract_var): Use modular arithmetic to compute index for in-memory vectors. Correct code generation for in-register vectors. (altivec_expand_vec_ext_builtin): Use modular arithmetic to compute index. 2019-03-15 Alexandre Oliva PR c++/88534 PR c++/88537 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of VAR_DECL args. 2019-03-15 Jakub Jelinek PR c++/89709 * tree.c (inchash::add_expr): Strip any location wrappers. * fold-const.c (operand_equal_p): Move stripping of location wrapper after hash verification. PR debug/89704 * dwarf2out.c (add_const_value_attribute): Return false for MINUS, SIGN_EXTEND and ZERO_EXTEND. 2019-03-14 Jason Merrill Jakub Jelinek * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather than if is_empty (*slot). * hash-set-tests.c (test_set_of_strings): Add tests for addition of existing elt and for elt removal. * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal of already removed elt. 2019-03-15 H.J. Lu PR target/89650 * config/i386/i386.c (remove_partial_avx_dependency): Handle REG_EH_REGION note. 2019-03-14 Martin Liska PR other/89712 * doc/invoke.texi: Remove -fdump-class-hierarchy option. 2019-03-14 Richard Biener PR target/89711 * config/i386/i386.c (make_resolver_func): Properly set DECL_CONTEXT on the RESULT_DECL. * config/rs6000/rs6000.c (make_resolver_func): Likewise. 2019-03-14 Richard Biener * gimple-pretty-print.c: Include cfgloop.h. (dump_gimple_phi): Adjust. (dump_gimple_bb_header): Dump loop header for GIMPLE. (pp_cfg_jump): Adjust. (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well. * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call. (lower_phi_internal_fn): Remove. (verify_gimple_call): Remove IFN_PHI special-casing. (dump_function_to_file): Dump IL state. * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes done to deal with PHI nodes being present in non-SSA state. 2019-03-14 Jakub Jelinek PR ipa/89684 * multiple_target.c (create_dispatcher_calls): Change references_to_redirect from vector of ipa_ref * to vector of ipa_ref. In the node->iterate_referring loop, push *ref rather than ref, call ref->remove_reference () and always pass 0 to iterate_referring. PR rtl-optimization/89679 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it would contain a paradoxical SUBREG. 2019-03-14 Richard Biener PR tree-optimization/89710 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use safe_dyn_cast. 2019-03-14 Martin Liska * coverage.c (coverage_begin_function): Stream also end_column. * doc/gcov.texi: Document 2 new fields in JSON file. Improve documentation about function declaration location. * gcov-dump.c (tag_function): Print whole range of function declaration. * gcov.c (struct function_info): Add end_column field. (function_info::function_info): Initialize it. (output_json_intermediate_file): Output {start,end}_column fields. (read_graph_file): Read end_column. 2019-03-14 Richard Biener PR middle-end/89698 * fold-const.c (operand_equal_p): For INDIRECT_REF check that the access types are similar. 2019-03-14 Jakub Jelinek PR tree-optimization/89703 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types aren't compatible also with builtin_decl_explicit. Check pure or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}} and BUILT_IN_STPNCPY{,_CHK}. 2019-03-14 H.J. Lu PR target/89523 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add addr32 prefix to VSIB address for X32. * config/i386/sse.md (*avx512pf_gatherpfsf_mask): Prepend "%M2" to opcode. (*avx512pf_gatherpfdf_mask): Likewise. (*avx512pf_scatterpfsf_mask): Likewise. (*avx512pf_scatterpfdf_mask): Likewise. (*avx2_gathersi): Prepend "%M3" to opcode. (*avx2_gathersi_2): Prepend "%M2" to opcode. (*avx2_gatherdi): Prepend "%M3" to opcode. (*avx2_gatherdi_2): Prepend "%M2" to opcode. (*avx2_gatherdi_3): Prepend "%M3" to opcode. (*avx2_gatherdi_4): Prepend "%M2" to opcode.` (*avx512f_gathersi): Prepend "%M4" to opcode. (*avx512f_gathersi_2): Prepend "%M3" to opcode. (*avx512f_gatherdi): Prepend "%M4" to opcode. (*avx512f_gatherdi_2): Prepend "%M3" to opcode. (*avx512f_scattersi): Prepend "%M0" to opcode. (*avx512f_scatterdi): Likewise. 2019-03-13 Vladimir Makarov PR target/85860 * lra-constraints.c (inherit_in_ebb): Update potential_reload_hard_regs along with live_hard_regs. 2019-03-13 Jakub Jelinek PR debug/89498 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use DWARF_OFFSET_SIZE. (value_format): For dw_val_class_view_list never use DW_FORM_loclistx. 2019-03-13 Martin Sebor PR tree-optimization/89662 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type has a size. 2019-03-13 Richard Biener PR middle-end/89677 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not throw FP expressions at tree-affine. 2019-03-14 Richard Biener * tree-pretty-print.c (dump_generic_node): For -gimple properly dump negative integer constants using _Literal (type) -num. 2019-03-13 Jakub Jelinek * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove nonlocal_value member. PR middle-end/88588 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args. (ipa_simd_modify_function_body): Handle PHIs. 2019-03-12 Robin Dapp * config/s390/s390.c (s390_option_override_internal): Use more aggressive inlining parameters. 2019-03-12 Robin Dapp * config/s390/3906.md: New file. * config/s390/s390.c (MAX_SCHED_UNITS): Increase. (LONGRUNNING_THRESHOLD): Remove. (MAX_SCHED_MIX_SCORE): Decrease. (MAX_SCHED_MIX_DISTANCE): Decrease. (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely. (struct s390_sched_state): New struct to hold scheduling state. (S390_SCHED_STATE_NORMAL): Remove. (S390_SCHED_STATE_CRACKED): Remove. (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add. (s390_get_sched_attrmask): Use new attribute. (s390_get_unit_mask): Use new units. (s390_is_fpd): New function. (s390_is_fxd): New function. (s390_is_longrunning): New function. (s390_sched_score): Use new functions. (s390_sched_reorder): Likewise. (s390_sched_variable_issue): Rework and use new functions. (s390_sched_init): Use new functions. * config/s390/s390.h (s390_tune_attr): Add z14. * config/s390/s390.md: Add z14. 2019-03-12 Robin Dapp * config/s390/2964.md: Update pipeline description. * config/s390/s390.c (MAX_SCHED_UNITS): Increase. (LONGRUNNING_THRESHOLD): Remove. (LATENCY_FACTOR): Remove. (s390_get_unit_mask): Add unit. (s390_sched_score): Use fxd/fpd. (s390_sched_variable_issue): Use fxd/fpd. 2019-03-12 Martin Liska * config/i386/i386.c: Reword an error message. 2019-03-12 Martin Jambor * cgraph.c (cgraph_node::dump): Dump more info for former thunks, terminate with newline. 2019-03-12 Jakub Jelinek PR target/52726 * config/s390/s390.md (tabort): Use %wd instead of HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital letters and periods. * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace 's with %< and %>. PR middle-end/89663 * builtins.c (expand_builtin_int_roundingfn, expand_builtin_int_roundingfn_2): Return NULL_RTX instead of gcc_unreachable if validate_arglist fails. 2019-03-12 Richard Biener PR tree-optimization/89664 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly free the occurance tree after the early out. 2019-03-11 Jakub Jelinek PR middle-end/89655 PR bootstrap/89656 * vr-values.c (vr_values::update_value_range): If old_vr->varying_p (), don't update it, make new_vr also VARYING and return false. 2019-03-11 Martin Liska * config/aarch64/aarch64.c (aarch64_override_options_internal): Fix double string quoting. 2019-03-11 Martin Liska * collect-utils.c (collect_wait): Wrap apostrophes in gcc internal format with %'. * collect2.c (main): Likewise. (scan_prog_file): Likewise. (scan_libraries): Likewise. * config/i386/i386.c (ix86_expand_call): Likewise. (ix86_handle_interrupt_attribute): Likewise. * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise. * config/nds32/nds32.c (nds32_insert_attributes): Likewise. * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise. * lto-wrapper.c (find_crtoffloadtable): Likewise. * symtab.c (symtab_node::verify_base): Likewise. * tree-cfg.c (verify_gimple_label): Likewise. * tree.c (verify_type_variant): Likewise. 2019-03-11 Martin Liska * builtins.c (expand_builtin_thread_pointer): Wrap an option name in a string format message and fix GNU coding style. (expand_builtin_set_thread_pointer): Likewise. * common/config/aarch64/aarch64-common.c (aarch64_rewrite_selected_cpu): Likewise. * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise. * common/config/arc/arc-common.c (arc_handle_option): Likewise. * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise. * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise. * common/config/i386/i386-common.c (ix86_handle_option): Likewise. * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise. * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise. * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise. * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise. * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option): Likewise. * common/config/riscv/riscv-common.c (riscv_subset_list::parsing_subset_version): Likewise. (riscv_subset_list::parse_std_ext): Likewise. (riscv_subset_list::parse_sv_or_non_std_ext): Likewise. (riscv_subset_list::parse): Likewise. * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise. * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise. (aarch64_override_options_internal): Likewise. (aarch64_validate_mcpu): Likewise. (aarch64_validate_march): Likewise. (aarch64_validate_mtune): Likewise. (aarch64_override_options): Likewise. * config/alpha/alpha.c (alpha_option_override): Likewise. * config/arc/arc.c (arc_init): Likewise. (parse_mrgf_banked_regs_option): Likewise. (arc_override_options): Likewise. (arc_expand_builtin_aligned): Likewise. * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise. (arm_expand_builtin): Likewise. * config/arm/arm.c (arm_option_check_internal): Likewise. (arm_configure_build_target): Likewise. (arm_option_override): Likewise. (arm_options_perform_arch_sanity_checks): Likewise. (arm_handle_cmse_nonsecure_entry): Likewise. (arm_handle_cmse_nonsecure_call): Likewise. (arm_tls_referenced_p): Likewise. (thumb1_expand_prologue): Likewise. * config/avr/avr.c (avr_option_override): Likewise. * config/bfin/bfin.c (bfin_option_override): Likewise. * config/c6x/c6x.c (c6x_option_override): Likewise. * config/cr16/cr16.c (cr16_override_options): Likewise. * config/cris/cris.c (cris_option_override): Likewise. * config/csky/csky.c (csky_handle_isr_attribute): Likewise. * config/darwin-c.c (macosx_version_as_macro): Likewise. * config/darwin.c (darwin_override_options): Likewise. * config/frv/frv.c (frv_expand_builtin): Likewise. * config/h8300/h8300.c (h8300_option_override): Likewise. * config/i386/i386.c (parse_mtune_ctrl_str): Likewise. (ix86_option_override_internal): Likewise. (warn_once_call_ms2sysv_xlogues): Likewise. (ix86_expand_prologue): Likewise. (split_stack_prologue_scratch_regno): Likewise. (ix86_warn_parameter_passing_abi): Likewise. * config/ia64/ia64.c (fix_range): Likewise. * config/m68k/m68k.c (m68k_option_override): Likewise. * config/microblaze/microblaze.c (microblaze_option_override): Likewise. * config/mips/mips.c (mips_emit_probe_stack_range): Likewise. (mips_set_compression_mode): Likewise. * config/mmix/mmix.c (mmix_option_override): Likewise. * config/mn10300/mn10300.c (mn10300_option_override): Likewise. * config/msp430/msp430.c (msp430_option_override): Likewise. * config/nds32/nds32.c (nds32_option_override): Likewise. * config/nios2/nios2.c (nios2_custom_check_insns): Likewise. (nios2_option_override): Likewise. (nios2_expand_custom_builtin): Likewise. * config/nvptx/mkoffload.c (main): Likewise. * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise. * config/pa/pa.c (fix_range): Likewise. (pa_option_override): Likewise. * config/riscv/riscv.c (riscv_parse_cpu): Likewise. (riscv_option_override): Likewise. * config/rl78/rl78.c (rl78_option_override): Likewise. * config/rs6000/aix61.h: Likewise. * config/rs6000/aix71.h: Likewise. * config/rs6000/aix72.h: Likewise. * config/rs6000/driver-rs6000.c (elf_platform): Likewise. * config/rs6000/freebsd64.h: Likewise. * config/rs6000/linux64.h: Likewise. * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise. (rs6000_expand_zeroop_builtin): Likewise. (rs6000_expand_mtfsb_builtin): Likewise. (rs6000_expand_set_fpscr_rn_builtin): Likewise. (rs6000_expand_set_fpscr_drn_builtin): Likewise. (rs6000_invalid_builtin): Likewise. (rs6000_expand_split_stack_prologue): Likewise. * config/rs6000/rtems.h: Likewise. * config/rx/rx.c (valid_psw_flag): Likewise. (rx_expand_builtin): Likewise. * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise. * config/s390/s390.c (s390_expand_builtin): Likewise. (s390_function_profiler): Likewise. (s390_option_override_internal): Likewise. (s390_option_override): Likewise. * config/sh/sh.c (sh_option_override): Likewise. (sh_builtin_saveregs): Likewise. (sh_fix_range): Likewise. * config/sh/vxworks.h: Likewise. * config/sparc/sparc.c (sparc_option_override): Likewise. * config/spu/spu.c (spu_option_override): Likewise. (fix_range): Likewise. * config/visium/visium.c (visium_option_override): Likewise. (visium_handle_interrupt_attr): Likewise. * config/xtensa/xtensa.c (xtensa_option_override): Likewise. * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise. (dbg_cnt_process_opt): Likewise. * dwarf2out.c (output_dwarf_version): Likewise. * except.c (expand_eh_return): Likewise. * gcc.c (defined): Likewise. (driver_handle_option): Likewise. (process_command): Likewise. (compare_files): Likewise. (driver::prepare_infiles): Likewise. (driver::do_spec_on_infiles): Likewise. (driver::maybe_run_linker): Likewise. * omp-offload.c (oacc_parse_default_dims): Likewise. * opts-global.c (handle_common_deferred_options): Likewise. * opts.c (parse_sanitizer_options): Likewise. (common_handle_option): Likewise. (enable_warning_as_error): Likewise. * passes.c (enable_disable_pass): Likewise. * plugin.c (parse_plugin_arg_opt): Likewise. (default_plugin_dir_name): Likewise. * targhooks.c (default_expand_builtin_saveregs): Likewise. (default_pch_valid_p): Likewise. * toplev.c (init_asm_output): Likewise. (process_options): Likewise. (toplev::run_self_tests): Likewise. * tree-cfg.c (verify_gimple_call): Likewise. * tree-inline.c (inline_forbidden_p_stmt): Likewise. (tree_inlinable_function_p): Likewise. * var-tracking.c (vt_find_locations): Likewise. 2019-03-11 Andreas Krebbel * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not only on the else branch. 2019-03-11 Martin Liska * gcov.c (output_intermediate_json_line): Print function name of each line. (output_json_intermediate_file): Add new argument. * doc/gcov.texi: Document the change. 2019-03-11 Eric Botcazou PR rtl-optimization/89588 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for explicit unrolling factor more robust. 2019-03-11 Richard Biener PR tree-optimization/89649 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype. * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize on the prolog and epilog loops. (vect_loop_versioning): Return copy of loop. * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize on the non-vectorized version of the loop. 2019-03-10 Uroš Bizjak PR target/68924 * config/i386/sse.md (*vec_extractv2di_0_sse): Add (=r,x) alternative and corresponding splitter. 2019-03-10 Martin Jambor PR tree-optimization/85762 PR tree-optimization/87008 PR tree-optimization/85459 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool it points to if there is a type changing MEM_REF. Adjust all callers. (build_accesses_from_assign): Disable total scalarization if contains_vce_or_bfcref_p returns true through the new parameter, for both rhs and lhs. 2019-03-09 Jakub Jelinek PR c/88568 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT. PR target/79645 * common.opt (fdiagnostics-show-labels, fdiagnostics-show-line-numbers, fdiagnostics-format=, fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support, gas-locview-support, ginline-points, ginternal-reset-location-views): Terminate description text with a dot. * config/microblaze/microblaze.opt (mxl-prefetch): Likewise. * config/mcore/mcore.opt (m210, m340): Likewise. * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove, mnops=): Start description text with a capital letter. * config/arc/arc.opt (msize-level=): Likewise. * config/sh/sh.opt (minline-ic_invalidate): Likewise. * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib, mnewlib): Likewise. * config/ft32/ft32.opt (msim): Likewise. (mft32b, mcompress): Likewise. Terminate description text with a dot. (mnodiv, mnopm): Terminate description text with a dot. * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with a colon. * config/i386/i386.opt (prefer_vector_width, instrument_return): Likewise. * config/rx/rx.opt (nofpu): Remove trailing spaces from description text. PR rtl-optimization/89634 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1 are modified in BB_END (e->src) instruction. 2019-03-08 David Malcolm PR target/79926 * config/i386/i386.c (ix86_set_current_function): Make "sorry" messages more amenable to translation, and improve wording. 2019-03-08 Bill Schmidt * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild ud- and du-chains between phases. 2019-03-08 Richard Sandiford PR debug/89631 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT instead of POLY_INT_CST. 2019-03-08 Andre Vieira * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE requirement. 2019-03-08 Uroš Bizjak PR target/68924 PR target/78782 PR target/87558 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic. (_mm_storeu_si64): Ditto. 2019-03-08 Martin Liska PR target/86952 * config/i386/i386.c (ix86_option_override_internal): Disable jump tables when retpolines are used. 2019-03-08 Jan Hubicka PR go/63560 * ipa-split.c (execute_split_functions): Do not split 'noinline' or 'section' function. 2019-03-08 Jakub Jelinek PR target/79846 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of HOST_WIDE_INT_PRINT_DEC. Formatting fixes. PR ipa/80000 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces from diagnostics. Formatting fixes. PR target/85665 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in warn_odr diagnostics. PR other/80058 * lra-constraints.c (process_alt_operands): Avoid one space before " at the end of line and another after " on another line in a string literal. * attribs.c (handle_dll_attribute): Likewise. * config/avr/avr-devices.c (avr_texinfo): Likewise. * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap warning_at or inform messages in G_() if there is no ?:. PR tree-optimization/89550 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at returned true. Formatting fixes. (expand_builtin_strnlen): Formatting fixes. * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING if warning_at returned true. * tree-cfg.c (pass_warn_function_return::execute): Likewise. 2019-03-08 Richard Biener PR middle-end/89578 * cfgloop.h (struct loop): Add owned_clique field. * cfgloopmanip.c (copy_loop_info): Copy it. * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique cliques. * tree-inline.c (copy_loops): Remap owned_clique. * lto-streamer-in.c (input_cfg): Stream owned_clique. * lto-streamer-out.c (output_cfg): Likewise. 2019-03-08 Jakub Jelinek PR target/80190 * config/darwin.c: Include intl.h. (darwin_build_constant_cfstring): Improve i18n of diagnostics by not composing the message out of two separate parts. 2019-03-07 Jakub Jelinek PR target/80003 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics doesn't start with a capital letter and doesn't end with a dot. (ix86_function_arg_boundary): Make sure diagnostics doesn't start with a capital letter. (ix86_mangle_function_version_assembler_name): Likewise. (ix86_generate_version_dispatcher_body): Likewise. (fold_builtin_cpu): Likewise. (get_builtin_code_for_version): Likewise. Remove extraneous space. (ix86_handle_interrupt_attribute): Make the diagnostics easier for translators, wrap full type name in %qs. PR translation/79999 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about depend clause with source (or sink) modifier. * omp-expand.c (expand_omp_ordered_sink): Likewise. PR target/89602 * config/i386/sse.md (avx512f_mov_mask, *avx512f_load_mask, avx512f_store_mask): New define_insns. (avx512f_load_mask): New define_expand. * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask, __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask, __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask, __builtin_ia32_movess_mask): New builtins. * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss, _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss, _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd, _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics. 2019-03-07 Martin Jambor PR lto/87525 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit for extern inline functions. 2019-03-07 Martin Jambor PR ipa/88235 * cgraph.h (cgraph_node): New inline method former_thunk_p. * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk. (clone_of_p): Treat expanded thunks like thunks, be optimistic if they have multiple callees. At the end check if declarations match as opposed to cgraph_nodes. 2019-03-07 Martin Liska * cgraph.c (cgraph_node::verify_node): Verify with a neighbour which is equivalent to searching for this in clones chain. * symtab.c (symtab_node::verify_base): Similarly compare ASM names with a neighbour and special case first node in a chain. 2019-01-25 Jason Merrill PR c++/80916 - spurious "static but not defined" warning. * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false for an internal symbol with DECL_EXTERNAL. 2019-04-07 Richard Biener PR middle-end/89618 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields. * tree-inline.c (copy_loops): Simplify. 2019-03-07 Martin Liska * dwarf2out.c (add_AT_vms_delta): Revert function removal. 2019-03-07 Richard Biener PR tree-optimization/89595 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take stmt iterator as reference, take boolean output parameter to indicate whether the stmt was removed and thus the iterator already advanced. (dom_opt_dom_walker::before_dom_children): Re-iterate over stmts created by folding. 2019-03-07 Jakub Jelinek PR c++/89585 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed at toplevel. 2019-03-06 Peter Bergner PR rtl-optimization/88845 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during LRA. * lra.c (remove_scratches_1): New function. (remove_scratches): Use it. (lra_emit_move): Likewise. 2019-03-06 Claudiu Zissulescu * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on unaligned_access variable. * config/arc/arc.c (arc_override_options): Set unaligned access default on for HS CPUs. * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic. 2019-03-06 Martin Liska PR gcov-profile/89577 * doc/gcov.texi: Prefer to use --coverage. * doc/sourcebuild.texi: Likewise. 2019-03-02 Jason Merrill PR c++/86485 - -Wmaybe-unused with empty class ?: * gimplify.c (gimplify_cond_expr): Use INIT_EXPR. 2019-03-05 Jakub Jelinek PR target/89587 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only if_multiarch. PR middle-end/89590 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have exactly one argument. 2019-03-05 Jakub Jelinek Richard Sandiford PR tree-optimization/89570 * match.pd (vec_cond into cond_op simplification): Don't use get_conditional_internal_fn, use as_internal_fn (cond_op). 2019-03-05 Wilco Dijkstra PR target/89222 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem to decide when to split off a non-zero offset from a symbol. * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets in function symbols. 2019-03-05 Richard Biener PR tree-optimization/89594 * tree-if-conv.c (pass_if_conversion::execute): Handle case where .LOOP_VECTORIZED_FUNCTION was removed. 2019-03-05 Jakub Jelinek PR bootstrap/89560 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer, instead alloca it only when needed with the needed size. PR tree-optimization/89570 * match.pd (vec_cond into cond_op simplification): Guard with vectorized_internal_fn_supported_p test and #if GIMPLE. PR tree-optimization/89566 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed. Punt if get_user_idx_format succeeds, but idx_format argument is not provided or doesn't have pointer type, or if idx_args is above number of provided arguments. 2019-03-04 Wilco Dijkstra PR tree-optimization/89437 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications. 2019-03-04 Richard Biener PR middle-end/89572 * tree-scalar-evolution.c: (get_loop_exit_condition): Use safe_dyn_cast. 2019-03-04 Bin Cheng PR tree-optimization/89487 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New. (create_rdg_vertices): Compute has_nonaddressable_dataref_p. (distribute_loop): Don't do runtime alias check if there is non- addressable data reference. * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL is a register variable. 2019-03-02 Jakub Jelinek PR target/89506 * config/arm/arm.md (cmpsi2_addneg): Use trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...). If operands[2] is 0 or INT_MIN, force use of subs. (*compare_scc splitter): Use gen_int_mode. (*negscc): Likewise. * config/arm/thumb2.md (*thumb2_negscc): Likewise. 2019-03-01 Kito Cheng Monk Chiang * common/config/riscv/riscv-common.c: Include sstream. (riscv_subset_list::to_string): New. (riscv_arch_str): Likewise. * config.gcc (riscv*-*-*): Handle --with-riscv-attribute= * config.in: Regen. * config/riscv/riscv-protos.h (riscv_arch_str): New. * config/riscv/riscv.c (INCLUDE_STRING): Defined. (riscv_emit_attribute): New. (riscv_file_start): Emit attribute if needed. (riscv_option_override): Init riscv_emit_attribute_p. * config/riscv/riscv.opt (mriscv-attribute): New option. * configure.ac (riscv*-*-*): Check binutils is supporting ELF * configure: Regen. * doc/install.texi: Document --with-riscv-attribute. * doc/invoke.texi: Document -mriscv-attribute. * common/config/riscv/riscv-common.c: Include config/riscv/riscv-protos.h. (INCLUDE_STRING): Defined. (RISCV_DONT_CARE_VERSION): Defined. (riscv_subset_t): Declare. (riscv_subset_t::riscv_subset_t): New. (riscv_subset_list): Declare. (riscv_subset_list::riscv_subset_list): New. (riscv_subset_list::~riscv_subset_list): Likewise. (riscv_subset_list::parsing_subset_version): Likewise. (riscv_subset_list::parse_std_ext): Likewise. (riscv_subset_list::parse_sv_or_non_std_ext): Likewise. (riscv_subset_list::add): Likewise. (riscv_subset_list::lookup): Likewise. (riscv_subset_list::xlen): Likewise. (riscv_subset_list::parse): Likewise. (riscv_supported_std_ext): Likewise. (current_subset_list): Likewise. (riscv_parse_arch_string): Using riscv_subset_list::parse to parse. 2019-03-01 Segher Boessenkool * config/rs6000/rs6000.c (rs6000_option_override_internal): If rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index. * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option. 2019-03-01 Alexander Monakov PR rtl-optimization/85899 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for fallthru edges leading to the exit block. 2019-03-01 Tamar Christina PR target/89517 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16, rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line. 2019-03-01 Richard Sandiford PR tree-optimization/89535 * tree-vect-stmts.c (vectorizable_call): Record the vector types for each operand. Calculate the fallback choice for mask operands and pass it to vect_get_vec_def_for_operand. 2019-03-01 Richard Biener PR middle-end/89541 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may get virtual operands. (get_expr_operands): Handle CONST_DECL like other decls. 2019-03-01 Jakub Jelinek PR middle-end/89503 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit on DECL_P and EXPR_P. 2019-03-01 Richard Biener PR middle-end/89497 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags argument, defaulted to zero. * passes.c (execute_function_todo): Pass down SSA update flags to cleanup_tree_cfg. * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h. (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA form if requested. (cleanup_tree_cfg): Get and pass down SSA update flags. 2019-03-01 Jakub Jelinek PR bootstrap/89539 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to early_lto_debug argument. 2019-02-28 Eric Botcazou PR tree-optimization/89536 * tree-ssa-dom.c (edge_info::derive_equivalences) : Test only whether bit #0 of the value is 0 instead of the entire value. 2019-02-28 Marek Polacek PR c++/87068 - missing diagnostic with fallthrough statement. * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found at the end of a seq, save its location to walk_stmt_info. (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of a switch. 2019-02-28 Jan Hubicka PR lto/88585 * tree.c (find_atomic_core_type): Move ahead in file. (check_base_type): Correctly compare alignments of atomic types. 2019-02-28 H.J. Lu PR target/89455 * config/i386/i386.c (get_builtin_code_for_version): Identify Westmere from PCLMUL, instead of AES. 2019-02-28 Jakub Jelinek PR target/89434 * config/arm/arm.md (*subsi3_carryin_compare_const): Use trunc_int_for_mode (-INTVAL (...), SImode), just instead of -UINTVAL (...). 2019-02-28 Tamar Christina PR target/88530 * config/aarch64/aarch64-option-extensions.def: Document it. * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature if empty hwcaps. 2019-02-28 Jakub Jelinek PR c/89520 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for builtins if they don't have a single scalar floating point argument. Formatting fixes. 2019-02-27 Bernd Edlinger PR rtl-optimization/89490 * varasm.c (get_block_for_section): Bail out for mergeable sections. (default_use_anchors_for_symbol_p, output_object_block): Assert the block section is not mergeable. 2019-02-27 Jakub Jelinek PR target/70341 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename old define_insn to ... (*arm_casesi_internal): ... this. Add mode to LABEL_REFs. * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand. Rename old define_insn to ... (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs. (thumb2_casesi_internal_pic): New define_expand. Rename old define_insn to ... (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs. * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it. 2019-02-27 Richard Biener PR debug/88878 * dwarf2out.c (use_debug_types): Disable when in_lto_p. 2019-02-27 Richard Biener * passes.c (should_skip_pass_p): Do not skip cgraph-edge building. 2019-02-27 Richard Biener PR debug/88878 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug parameter, prefix section name with .gnu.debuglto_ if true. (dwarf2out_finish): Pass false to output_comdat_type_unit. (dwarf2out_early_finish): Pass true to output_comdat_type_unit. 2019-02-27 Richard Biener PR debug/89514 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p rather than on use_debug_types, doing what output_die does. (value_format): Likewise. 2019-02-27 Martin Jambor Martin Sebor * doc/invoke.texi (Warning Options): Reword description of -Wno-absolute-value. 2019-02-27 Jakub Jelinek PR tree-optimization/89280 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p, builtin_setjmp_setup_bb): New functions. (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges. When visiting __builtin_setjmp_setup block, queue in special setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks from visited after the loop if they don't have any visited successor blocks. 2018-02-26 Steve Ellcey * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name): New function. (TARGET_GET_MULTILIB_ABI_NAME): New macro. 2019-02-26 Jakub Jelinek PR c++/89507 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs with types other than sizetype/ssizetype. 2019-02-26 Eric Botcazou * config/sparc/sparc-opts.h (enum processor_type): Rename to... (enum sparc_processor_type): ...this. (enum sparc_code_model_type): New enumeration type. (enum sparc_memory_model_type): Tweak comments. * config/sparc/sparc.opt (mcpu): Adjust to above renaming. (mtune): Likewise. (mcmodel): Use sparc_code_model enumeration and variable. (sparc_code_model): New enumeration. (mdebug): Add Undocumented marker. * config/sparc/sparc.h (enum cmodel): Delete. (sparc_cmodel): Likewise. (TARGET_CM_MEDLOW): Adjust to above renaming. (TARGET_CM_MEDMID): Likewise. (TARGET_CM_MEDANY): Likewise. (TARGET_CM_EMBMEDANY): Likewise. * config/sparc/sparc.c (sparc_cmodel): Delete. (sparc_option_override): Remove string/value mapping support for the code model. Move code and memory model support to after the handling of target flags. Do private machine setup last. (sparc_emit_set_symbolic_const64): Use sparc_code_model. (sparc_legitimize_reload_address): Likewise. (sparc_output_mi_thunk): Likewise. * config/sparc/sparc.md (cpu): Adjust comment to above renaming. 2019-02-26 Jakub Jelinek PR tree-optimization/89500 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment. (handle_builtin_strlen): Remove noncst_bound variable. Always optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to cst if the first cst bytes starting at x are known to be non-zero, even if the string is not zero terminated. Don't try to modify *si for strnlen. Update strlen_to_stridx only for strlen or if we can prove strnlen returns the same value as strlen would. 2019-02-26 Martin Liska * alloc-pool.h (struct pool_usage): Remove extra print_dash_line. * bitmap.h (struct bitmap_usage): Likewise. * ggc-common.c (struct ggc_usage): Likewise. * mem-stats.h (struct mem_usage): Likewise. (mem_alloc_description::dump): Print dash lines here and repeat header at the end of a table report. It's then more readable. * tree-phinodes.c (phinodes_print_statistics): Make horizontal alignment. * tree-ssanames.c (ssanames_print_statistics): Likewise. * vec.c (struct vec_usage): Remove extra print_dash_line. * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT. 2019-02-26 Uroš Bizjak * doc/extend.texi (__builtin_object_size): Use @pxref instead of @xref inside parenthesis. (__builtin_has_attribute): Add missing comma after @xref. (__builtin_object_size): Ditto. * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i]. * fortran/invoke.texi (-ffpe-trap): Use @var for every item in the list. 2019-02-26 Jeff Law PR rtl-optimization/87761 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to detect obviously dead insns and delete them. 2019-02-26 Richard Biener PR tree-optimization/89505 * tree-ssa-structalias.c (compute_dependence_clique): Make sure to handle restrict pointed-to vars with multiple subvars correctly. 2019-02-26 Richard Biener PR tree-optimization/89489 * tree-parloops.c (create_loop_fn): Copy over last_clique. 2019-02-26 Eric Botcazou * tree-ssa-dom.c (edge_info::derive_equivalences) : Fix and move around comment. : Likewise. : Add specific handling for boolean types. 2019-02-26 Jakub Jelinek PR target/89474 * config/i386/i386.c (remove_partial_avx_dependency): Call df_analyze etc. before creation of the v4sf_const0 pseudo, rather than after changing possibly many instructions to use that pseudo. Fix up insertion of v4sf_const0 setter at the start of bb. 2019-02-25 Sandra Loosemore PR c/80409 * doc/extend.texi (Variadic Pointer Args): New section. 2019-02-25 Sandra Loosemore Martin Sebor * common.opt (Wattribute-alias): Likewise. * doc/invoke.texi (Option Summary): List general form of -Wattribute-alias=. List positive form of -Wmissing-attributes. (-Wmissing-attributes): Invert entry, rewrite and correct default. Add cross-references. (-Wattribute-alias): Rewrite and correct default. Mention considered attributes (same as for -Wmissing-attributes). 2019-02-25 Paul A. Clarke * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian. (_mm_cvtpd_ps): Likewise. (_mm_cvttpd_epi32): Likewise. PR target/89338 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch. (_mm_cvt_ss2si): Fix type mismatch and 32-bit. PR target/89339 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit. 2019-02-25 Tamar Christina PR target/88530 * common/config/aarch64/aarch64-common.c (struct aarch64_option_extension): Add is_synthetic. (all_extensions): Use it. (TARGET_OPTION_INIT_STRUCT): Define hook. (struct gcc_targetm_common): Moved to end. (all_extensions_by_on): New. (opt_ext_cmp, typedef opt_ext): New. (aarch64_option_init_struct): New. (aarch64_contains_opt): New. (aarch64_get_extension_string_for_isa_flags): Output smallest set. * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto. (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3, sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres): Set is_synthetic to false. (crypto): Set is_synthetic to true. * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add SYNTHETIC. 2019-02-25 Tamar Christina * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32, vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32, vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32, vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32, vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32, vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32, vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32): Rename ... (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16, vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16, vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16, vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16, vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16, vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16, vfmlsl_laneq_high_f16): ... To this. * config/arm/neon.md: Update comments. 2019-02-25 Tamar Christina * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32, vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32, vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32, vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32, vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32, vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32): Rename ... (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16, vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16, vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16, vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16, vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16, vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16, vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16, vfmlslq_laneq_high_f16): ... To this. 2019-02-25 Alexander Monakov PR rtl-optimization/86096 * df-scan.c (df_mw_compare): Do not check mw_reg fields when comparing mw_order values. 2019-02-25 Jakub Jelinek PR target/89434 * config/arm/arm.md (*subsi3_carryin_const): Use arm_neg_immediate_operand predicate instead of arm_not_immediate_operand, "L" constraint instead of "K" and print it using %n2 instead of %B2. (*subsi3_carryin_const0): New define_insn. (*subsi3_carryin_compare_const): Use const_int_I_operand predicate instead of arm_not_operand and "I" constraint instead of "K" and print it using %n3 instead of %B2. Instead of using match_dup 2 add another match_operand and in the condition check that it is negation of operands[2]. (*subsi3_carryin_compare_const0): New define_ins. (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of *subsi3_carryin_const. (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const, split into *subsi3_carryin_compare_const0 if the highpart is zero. PR target/89438 * config/arm.vfp.md (*negdf2_vfp): Use gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000). * config/arm/neon.md (neon_copysignf): Likewise. 2019-02-24 Jakub Jelinek PR rtl-optimization/89445 * simplify-rtx.c (simplify_ternary_operation): Don't use simplify_merge_mask on operands that may trap. * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of SCALAR_FLOAT_MODE_P checks. For integral division by zero, if second operand is CONST_VECTOR, check if any element could be zero. Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless their operands can trap. 2019-02-23 Martin Sebor * gimple-ssa-sprintf.c (target_strtol): Rename... (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX. (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to check for range error. 2019-02-23 H.J. Lu PR driver/69471 * opts-common.c (prune_options): Also prune joined switches with Negative and RejectNegative. * config/i386/i386.opt (march=): Add Negative(march=). (mtune=): Add Negative(mtune=). * doc/options.texi: Document Negative used together with Joined and RejectNegative. 2019-02-22 Martin Sebor * doc/extend.texi (Other Builtins): Add __builtin_is_constant_evaluated. 2019-02-22 Richard Biener PR tree-optimization/87609 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques. 2019-02-22 Jeff Law PR rtl-optimization/87761 * config/mips/mips.md: Add new combiner pattern to recognize a bitfield extraction using (ashiftrt (truncate (ashift (...)))). 2019-02-22 Matthew Malcomson PR target/89324 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on destination register in peepholes generating patterns for ADDS/SUBS. (add3_compare0, *addsi3_compare0_uxtw, add3_compareC, add3_compareV_imm, add3_compareV, *adds__, *subs__, *adds__shift_, *subs__shift_, *adds__multp2, *subs__multp2, *sub3_compare0, *subsi3_compare0_uxtw, sub3_compare1): Allow stack pointer for source register. * config/aarch64/predicates.md (aarch64_general_reg): New predicate. 2019-02-22 Martin Sebor PR tree-optimization/88993 PR tree-optimization/88853 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func): New helper. (sprintf_dom_walker::call_info::is_string_func): New helper. (format_directive): Only issue "may exceed" 4095/INT_MAX warnings for formatted string functions. (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment. 2019-02-22 Martin Sebor PR c/89425 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in unreachable subexpressions. 2019-02-22 H.J. Lu Hongtao Liu Sunil K Pandey PR target/87007 * config/i386/i386-passes.def: Add pass_remove_partial_avx_dependency. * config/i386/i386-protos.h (make_pass_remove_partial_avx_dependency): New. * config/i386/i386.c (make_pass_remove_partial_avx_dependency): New function. (pass_data_remove_partial_avx_dependency): New. (pass_remove_partial_avx_dependency): Likewise. (make_pass_remove_partial_avx_dependency): Likewise. * config/i386/i386.md (avx_partial_xmm_update): New attribute. (*extendsfdf2): Add avx_partial_xmm_update. (truncdfsf2): Likewise. (*float2): Likewise. (SF/DF conversion splitters): Disabled for TARGET_AVX. 2019-02-22 Aldy Hernandez PR middle-end/85598 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop analysis for pass. 2019-02-22 Thiago Macieira PR target/89444 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES. (PTA_SKYLAKE): Add PTA_AES. (PTA_GOLDMONT): Likewise. 2019-02-22 Sudakshina Das * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti instruction if enabled. (aarch64_override_options): Remove reference to return address key. 2019-02-22 Richard Biener PR tree-optimization/89440 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove not necessary assert. 2019-02-22 Thomas Schwinge PR fortran/72741 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into... (oacc_replace_fn_attrib_attr): ... this new function. * omp-general.h (oacc_replace_fn_attrib_attr): New prototype. * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround. 2019-02-22 Kyrylo Tkachov * config/arm/arm-cpus.in (ares): Rename to... (neoverse-n1): ... This. Add ares as alias. * config/arm/arm-tables.opt: Regenerate. * config/arm/arm-tune.md: Likewise. * doc/invoke.txt (ARM Options): Document neoverse-n1. 2019-02-22 Kyrylo Tkachov * config/aarch64/aarch64-cores.def (neoverse-e1): Define. * config/aarch64/aarch64-tune.md: Regenerate. * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option. 2019-02-22 Kyrylo Tkachov * config/aarch64/aarch64.c (ares_tunings): Rename to... (neoversen1_tunings): ... This. * config/aarch64/aarch64-cores.def (ares): Change tuning to the above. (neoverse-n1): New CPU. * config/aarch64/aarch64-tune.md: Regenerate. * doc/invoke.txt (AArch64 Options): Document neoverse-n1. 2019-02-22 Richard Biener PR middle-end/87609 * cfghooks.h (dependence_hash): New typedef. (struct copy_bb_data): New type. (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument. (duplicate_block): Likewise. * cfghooks.c (duplicate_block): Pass down copy_bb_data. (copy_bbs): Create and pass down copy_bb_data. * cfgrtl.c (cfg_layout_duplicate_bb): Adjust. (rtl_duplicate_bb): Likewise. * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL remap dependence info. 2019-02-22 Richard Biener PR tree-optimization/87609 * tree-core.h (tree_base): Document special clique values. * tree-inline.c (remap_dependence_clique): Do not use the special clique value of one. (maybe_set_dependence_info): Use clique one. (clear_dependence_clique): New callback. (compute_dependence_clique): Clear clique one from all refs before assigning it (again). 2019-02-21 Martin Sebor * doc/extend.texi (__clear_cache): Correct signature. 2019-02-21 Ian Lance Taylor PR go/89170 * varasm.c (decode_addr_const): Call lookup_constant_def rather than output_constant_def. (add_constant_to_table): New static function. (output_constant_def): Call add_constant_to_table. (tree_output_constant_def): Likewise. 2019-02-21 Jakub Jelinek PR c++/89285 * builtins.c (fold_builtin_arith_overflow): If first two args are INTEGER_CSTs, set intres and ovfres to constants rather than calls to ifn. 2019-02-21 H.J. Lu PR target/87412 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an error for -mindirect-branch/-mfunction-return with incompatible -fcf-protection. 2019-02-21 Jakub Jelinek PR bootstrap/88714 * constraints.md (q): Remove. * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint instead of q. 2019-02-21 Martin Jambor PR hsa/89302 * omp-general.c (omp_extract_for_data): Removed a duplicate call to omp_adjust_for_condition, moved NE_EXPR code_cond processing... (omp_adjust_for_condition): ...here. Added necessary parameters. * omp-general.h (omp_adjust_for_condition): Updated declaration. * omp-grid.c (grid_attempt_target_gridification): Adjust to pass proper values to new parameters of omp_adjust_for_condition. 2019-02-20 Jakub Jelinek PR middle-end/89412 * expr.c (expand_assignment): If result is a MEM, use change_address instead of simplify_gen_subreg. 2019-02-20 Jakub Jelinek David Malcolm PR middle-end/89091 * fold-const.c (decode_field_reference): Return NULL_TREE if lang_hooks.types.type_for_size returns NULL. Check it before overwriting *exp_. Use return NULL_TREE instead of return 0. 2019-02-20 Jakub Jelinek PR middle-end/88074 PR middle-end/89415 * toplev.c (do_compile): Double the emin/emax exponents to workaround buggy mpc_norm. 2019-02-20 Uroš Bizjak PR target/89397 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check TARGET_SSE in addition to TARGET_SSE_MATH. (ix86_excess_precision): Ditto. (ix86_float_exceptions_rounding_supported_p): Ditto. (use_rsqrt_p): Ditto. * config/i386/sse.md (rsqrt2): Ditto. 2019-02-20 David Malcolm PR c/89410 * diagnostic-show-locus.c (layout::calculate_line_spans): Use linenum_arith_t when determining if two adjacent line spans are close enough to merge. (diagnostic_show_locus): Use linenum_arith_t when iterating over lines within each line_span. 2019-02-20 Andre Vieira PR target/86487 * lra-constraints.c(uses_hard_regs_p): Fix handling of paradoxical SUBREGS. 2019-02-20 Li Jia He PR target/88100 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin) : Don't convert the operand before range checking it. 2019-02-19 Jonathan Wakely * config/gcn/gcn.c (print_operand): Fix typo. 2019-02-19 Richard Biener PR middle-end/88074 * toplev.c (do_compile): Initialize mpfr's exponent range based on available float modes. 2019-02-19 Eric Botcazou * rtlanal.c (get_initial_register_offset): Fall back to the estimate as long as the epilogue isn't completed. 2019-02-18 Martin Sebor * doc/cpp.texi (Conditional syntax): Add __has_attribute, __has_cpp_attribute, and __has_include. 2019-02-18 Martin Sebor * doc/invoke.texi (-Wreturn-type): Correct and expand. 2019-02-18 Martin Sebor PR middle-end/89294 * tree.c (valid_constant_size_p): Avoid assuming size is a constant expression. * tree.h (cst_size_error): Add the cst_size_not_constant enumerator. 2019-02-18 Richard Biener PR tree-optimization/89296 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting of no-warning flag to cases that might emit the bogus warning. 2019-02-18 Jakub Jelinek PR bootstrap/88714 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of "q" constraint. * config/arm/vfp.md (*movdi_vfp): Likewise. * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of "q" constraint for operands[0]. PR target/89369 * config/s390/s390.md (*rsbg__srl_bitmask, *rsbg__sll, *rsbg__srl): Don't construct pattern in a temporary buffer. (*rsbg_sidi_srl): Likewise. Always use 32 as I3 rather than 64-operands[2]. PR target/89361 * config/s390/s390.c (s390_indirect_branch_attrvalue, s390_indirect_branch_settings): Define unconditionally. (s390_set_current_function): Likewise, but guard the whole body except the s390_indirect_branch_settings call with #if S390_USE_TARGET_ATTRIBUTE. (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally. * config/s390/s390.md (*_ior_and_sr_ze, *__ior_and_lshiftrt, *_sidi_ior_and_lshiftrt): Use HOST_WIDE_INT_M1U instead of ~(0ULL). (*_and_subregdi_rotr, *_and_subregdi_rotl): Use HOST_WIDE_INT_1U instead of 1ULL. (*pre_z10_extzv, *pre_z10_extv): Change mask type from int to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul. (*insv_appendbitsleft, z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U instead of 1UL. (*insv_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U instead of 1ul. 2019-02-18 Martin Jambor PR tree-optimization/89209 * tree-sra.c (create_access_replacement): New optional parameter reg_tree. Use it as a type if non-NULL and access type is not of a register type. (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it to create_access_replacement. (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name. Check lacc is non-NULL before attempting to re-create it on the RHS. 2019-02-18 Martin Liska PR ipa/89306 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1 by default. (symbol_table::free_edge): Recycle m_summary_id. * cgraph.h (get_summary_id): New. (symbol_table::release_symbol): Set m_summary_id to -1 by default. (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id. * ipa-fnsummary.c (ipa_fn_summary_t): Switch from function_summary to fast_function_summary. * ipa-fnsummary.h (ipa_fn_summary_t): Likewise. * ipa-pure-const.c (class funct_state_summary_t): Switch from function_summary to fast_function_summary. * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise. (class ipa_ref_opt_summary_t): Switch from function_summary to fast_function_summary. * symbol-summary.h (class function_summary_base): New class that is created from base of former function_summary. (function_summary_base::unregister_hooks): New. (class function_summary): Inherit from function_summary_base. (class call_summary_base): New class that is created from base of former call_summary. (class call_summary): Inherit from call_summary_base. (struct is_same): New. (class fast_function_summary): New summary class. (class fast_call_summary): New summary class. * vec.h (vec_safe_grow_cleared): New function. 2019-02-18 Martin Liska * config/i386/i386.c (ix86_get_multilib_abi_name): New function. (TARGET_GET_MULTILIB_ABI_NAME): New macro defined. * doc/tm.texi: Document new target hook. * doc/tm.texi.in: Likewise. * target.def: Add new target macro. * gcc.c (find_fortran_preinclude_file): Do not search multilib suffixes. 2019-02-17 Alan Modra PR target/89271 * config/rs6000/rs6000.md (_ split): Check for an int output reg on add insn. (tf_ split): Likewise. Match predicates with insn. 2019-02-16 H.J. Lu PR target/89372 * config/i386/sse.md (ssedoublemode): Remove V4HI. (PMULHRSW): Likewise. (_pmulhrsw3): Require TARGET_SSSE3, not TARGET_AVX2. (ssse3_pmulhrswv4hi3): New expander. 2019-02-16 H.J. Lu * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require MMX. Add isa attribute. 2019-02-16 Jakub Jelinek PR rtl-optimization/66152 * builtins.h (c_readstr): Declare. * builtins.c (c_readstr): Remove forward declaration. Add null_terminated_p argument, if false, read all bytes from the string instead of stopping after '\0'. * expr.c (string_cst_read_str): New function. (store_expr): Use string_cst_read_str instead of builtin_strncpy_read_str. Try to store by pieces the whole exp_len first, and only if that fails, split it up into store by pieces followed by clear_storage. Formatting fix. * config/i386/i386.md (*movqi_internal): Remove static from buf variable. Use output_asm_insn (buf, operands); return ""; instead of return buf;. * config/i386/sse.md (_andnot3, *3, *andnot3, *andnottf3, *3, *tf3, 3): Likewise. 2019-02-15 Eric Botcazou * config/sparc/linux.h (ASAN_CC1_SPEC): Define. (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC. * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise. (CC1_SPEC): Likewise. * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit. 2019-02-15 Eric Botcazou * asan.c (asan_emit_stack_protection): Use full-sized mask to align the base address on 64-bit strict-alignment platforms. 2019-02-15 H.J. Lu * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'. 2019-02-15 Uroš Bizjak * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define. 2019-02-15 Aaron Sawdey PR rtl-optimization/88308 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts on copied instruction. 2019-02-15 Eric Botcazou * final.c (insn_current_reference_address): Replace test on JUMP_P with test on jump_to_label_p. * config/visium/visium-passes.def: New file. * config/visium/t-visium (PASSES_EXTRA): Define. * config/visium/visium-protos.h (make_pass_visium_reorg): Declare. * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust. (TRAMPOLINE_ALIGNMENT): Define. * config/visium/visium.c (visium_option_override): Do not register the machine-specific reorg pass here. (visium_trampoline_init): Align the BRA insn on a 64-bit boundary for the GR6. (output_branch): Adjust threshold for long branch instruction. * config/visium/visium.md (cpu): Move around. (length): Adjust for the GR6. 2019-02-15 Richard Biener Jakub Jelinek PR tree-optimization/89278 * tree-loop-distribution.c: Include tree-eh.h. (generate_memset_builtin, generate_memcpy_builtin): Call rewrite_to_non_trapping_overflow on builtin->size before passing it to force_gimple_operand_gsi. 2019-02-15 Jakub Jelinek PR other/89342 * optc-save-gen.awk: Handle optimize_fast like optimize_size or optimize_debug. * opth-gen.awk: Likewise. 2019-02-15 Uroš Bizjak * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT): Enable MMX, SSE and SSE2 by default. * config/i386/i386.c (ix86_option_override_internal): Do not explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here. 2019-02-14 Jakub Jelinek PR rtl-optimization/89354 * combine.c (make_extraction): Punt if extraction_mode is narrower than len bits. 2019-02-14 Maya Rashish * config.gcc (*-*-netbsd*): Add netbsd-d.o. * config/netbsd-d.c: New file. * config/t-netbsd: Add netbsd-d.o 2018-02-14 Steve Ellcey * config/aarch64/aarch64.c (aarch64_attribute_table): Change affects_type_identity to true for aarch64_vector_pcs. (aarch64_comp_type_attributes): New function. (TARGET_COMP_TYPE_ATTRIBUTES): New macro. 2019-02-14 Tamar Christina PR target/88850 * config/arm/iterators.md (ANY64): Add V4HF. 2019-02-14 Martin Liska PR rtl-optimization/89242 * dce.c (delete_unmarked_insns): Call free_dominance_info we process a transformation. 2019-02-14 Jakub Jelinek PR tree-optimization/89314 * fold-const.c (fold_binary_loc): Cast strlen argument to const char * before dereferencing it. Formatting fixes. PR middle-end/89284 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized. 2019-02-13 Ian Lance Taylor * optc-save-gen.awk: Set var_opt_hash for initial optimizations and set current index for other optimizations. 2019-02-13 Uroš Bizjak * config/i386/sse.md (vec_set_0): Use nonimmediate_operand as operand 2 predicate. (vec_set_0): Ditto. (vec_set_0): Ditto. (*vec_concatv2si): Remove alternative 2. (*vec_concatv4si_0): Use vm constraint for alternative 0. (*vec_concatv4si_0): Remove preferred_for_speed attribute. (vec_concatv2di): Split alternatives 4,5,6 to ... (*vec_concatv2di_0) ... new pattern. 2019-02-13 Wilco Dijkstra PR target/89190 * config/arm/arm.c (ldm_stm_operation_p) Set addr_reg_in_reglist correctly for first register. (load_multiple_sequence): Remove dead base check. (gen_ldm_seq): Correctly set write_back for Thumb-1. 2019-02-13 Tamar Christina PR target/88847 * config/aarch64/aarch64-sve.md (*pred_mov, pred_mov): Expose as @aarch64_pred_mov. * config/aarch64/aarch64.c (aarch64_classify_address): Use expand_insn which legitimizes operands. 2019-02-13 Martin Liska * builtins.h (expand_builtin_with_bounds): Remove declaration. * calls.c (struct arg_data): Remove special_slot, pointer_arg and pointer_offset fields. (initialize_argument_information): Remove usage of dead fields. * cgraph.h (struct cgraph_thunk_info): Remove add_pointer_bounds_args. * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead fields. (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead fields. * config/i386/i386.c (ix86_function_arg_advance): Remove unrelated comment. (struct builtin_isa): Remove leaf_p and nothrow_p fields. (def_builtin): Remove usage of dead fields. (ix86_add_new_builtins): Likewise. * ipa-fnsummary.c (compute_fn_summary): Likewise. * ipa-icf.c (sem_function::equals_wpa): Likewise. (sem_function::init): Likewise. (sem_variable::merge): Likewise. * ipa-visibility.c (function_and_variable_visibility): Likewise. * ipa.c (symbol_table::remove_unreachable_nodes): Likewise. * lto-cgraph.c (lto_output_node): Likewise. (lto_output_varpool_node): Likewise. (input_node): Likewise. (input_varpool_node): Likewise. * lto-streamer-out.c (lto_output): Likewise. * tree-inline.c (expand_call_inline): Remove usage of assign_stmts. * tree-inline.h (struct copy_body_data): Likewise. * varpool.c (varpool_node::dump): Likewise. 2019-02-13 Jakub Jelinek PR middle-end/89303 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var into pt->vars_contains_escaped_heap instead of setting pt->vars_contains_escaped_heap to it. PR middle-end/89281 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of INTVAL (size), compare it to GET_MODE_MASK instead of 1 << GET_MODE_BITSIZE. PR target/89290 * config/i386/predicates.md (x86_64_immediate_operand): Allow TLS UNSPECs offsetted by signed 32-bit CONST_INT even with -mcmodel=large. 2019-02-13 Martin Liska PR lto/88858 * cfgrtl.c (remove_barriers_from_footer): New function. (try_redirect_by_replacing_jump): Use it. (cfg_layout_redirect_edge_and_branch): Likewise. 2019-02-13 Xiong Hu Luo * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be, vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines. * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator. (crypto_vsbox_, crypto__): New define_insns. * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1. (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE): New BU_CRYPTO_2. * config/rs6000/rs6000.c (builtin_function_type) : New switch options. * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New builtin functions. 2019-02-12 Pat Haugen * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate -maltivec. Delete -maltivec=be and -maltivec=le documentation. 2019-02-12 H.J. Lu PR target/89229 * config/i386/i386.md (*movoi_internal_avx): Revert revision 268678 and revision 268657. (*movti_internal): Likewise. 2019-02-12 Ilya Leoshkevich PR target/89233 * config/s390/s390.c (s390_decompose_address): Update comment. (s390_check_qrst_address): Reject invalid address forms after LRA. 2019-02-12 Martin Liska PR lto/88876 * ipa-pure-const.c (propagate_pure_const): Revert hunk as we need default values of funct_state for a function that is not optimized. 2019-02-12 Eric Botcazou * asan.c (asan_expand_mark_ifn): Take into account the alignment of the object to pick the size of stores on strict-alignment platforms. * config/sparc/sparc.md (*movsi_insn): Minor tweak. (*movdi_insn_sp32): Likewise. (*movdi_insn_sp64): Likewise. 2019-02-12 Jan Hubicka PR lto/88677 * cgraphunit.c (analyze_functions): Clear READONLY flag for external types that needs constructiong. * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING. 2019-02-12 Richard Biener PR tree-optimization/89253 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can duplicate the loop. 2019-02-11 David Malcolm PR lto/88147 * input.c (selftest::test_line_offset_overflow): New selftest. (selftest::input_c_tests): Call it. 2019-02-11 Martin Sebor PR tree-optimization/88771 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable when -Wstringop-overflow is set. (builtin_memref::builtin_memref): Adjust excessive upper bound only when lower bound is not excessive. (maybe_diag_overlap): Detect and diagnose excessive bounds via -Wstringop-ovefflow. (maybe_diag_offset_bounds): Rename... (maybe_diag_access_bounds): ...to this. (check_bounds_or_overlap): Adjust for name change above. 2019-02-11 Martin Sebor PR c++/87996 * builtins.c (max_object_size): Move from here... * builtins.h (max_object_size): ...and here... * tree.c (max_object_size): ...to here... * tree.h (max_object_size): ...and here. 2019-02-11 Bill Schmidt * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right and shift-left vector built-ins need to include a TRUNC_MOD_EXPR for correct semantics. 2019-02-11 Alan Modra * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention -mlongcall and -mpltseq. (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls. (RS/6000 and PowerPC Options <-mpltseq>): Document. * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define. * config/rs6000/sysv4.opt (mpltseq): New option. * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine. (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler support is lacking. Don't allow -mpltseq with -mbss-plt. * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if -mpltseq given for ELFv1. * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ. Only use UNSPEC_PLTSEQ for inline PLT calls. (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only use UNSPEC_PLTSEQ for inline PLT calls. (rs6000_indirect_call_template_1, rs6000_longcall_ref), (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying. * config/rs6000/rs6000.md (pltseq_tocsave_), (pltseq_plt16_ha_, pltseq_plt16_lo_), (pltseq_mtctr_): Likewise. 2019-02-11 Rainer Orth * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with Solaris ld. * configure: Regenerate. 2019-02-11 Jakub Jelinek PR bootstrap/88714 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint instead of r. 2019-02-11 Hans-Peter Nilsson * function.c (assign_parm_setup_block): Use the stored size, not the passed size, when allocating stack-space, also for a parameter with alignment larger than MAX_SUPPORTED_STACK_ALIGNMENT. 2019-02-11 Martin Liska PR ipa/89009 * ipa-cp.c (build_toporder_info): Remove usage of a param. * ipa-inline.c (inline_small_functions): Likewise. * ipa-pure-const.c (propagate_pure_const): Likewise. (propagate_nothrow): Likewise. * ipa-reference.c (propagate): Likewise. * ipa-utils.c (struct searchc_env): Remove unused field. (searchc): Always search across AVAIL_INTERPOSABLE. (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as the only called IPA pure const can properly not propagate across interposable boundary. * ipa-utils.h (ipa_reduced_postorder): Remove param. 2019-02-11 Chung-Ju Wu * config/nds32/nds32.md (call_internal, call_value_internal, sibcall_internal, sibcall_value_internal): Use SImode for mem rtx. 2019-02-11 Hans-Peter Nilsson * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name typo. 2019-02-10 H.J. Lu * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ in comments 2019-02-10 Chung-Ju Wu * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly. 2019-02-10 Jakub Jelinek PR tree-optimization/89268 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only if preds is non-NULL. 2019-02-09 Jan Hubicka PR lto/89272 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for polymorphic types. 2019-02-10 Monk Chiang * config/nds32/nds32.md (trap): New pattern. 2019-02-10 Monk Chiang * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register dwarf span. 2019-02-10 Chung-Ju Wu * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support to split POST_INC. 2019-02-09 Jan Hubicka * ipa-visibility.c (localize_node): Also do not localize LDPR_PREVAILING_DEF_IRONLY_EXP. 2019-02-09 Jan Hubicka PR lto/87957 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P instead of type_with_linkage. 2019-02-09 Jan Hubicka PR ipa/88755 * params.def (uninlined-function-insns, uninlined-function-time, uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper bound so we don't get overflows. 2019-02-09 Aaron Sawdey * config/rs6000/rs6000-string.c (expand_compare_loop, expand_block_compare): Insert REG_BR_PROB notes in inline expansion of memcmp/strncmp. 2019-02-09 Jakub Jelinek PR middle-end/89246 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): If !node->definition and TYPE_ARG_TYPES is non-NULL, use TYPE_ARG_TYPES instead of DECL_ARGUMENTS. 2019-02-09 Alan Modra PR target/88343 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return case. Match logic in rs6000_emit_prologue emitting pic_offset_table setup. 2019-02-08 Vladimir Makarov PR middle-end/88560 * lra-constraints.c (process_alt_operands): Don't increase reject for memory when offset memory is required. 2019-02-08 Robin Dapp * config/s390/vector.md: Implement vector copysign. 2019-02-08 H.J. Lu * expr.c (expand_constructor): Correct indentations. 2019-02-08 Richard Biener PR tree-optimization/89247 * tree-if-conv.c: Include tree-cfgcleanup.h. (version_loop_for_if_conversion): Record LOOP_VECTORIZED call. (tree_if_conversion): Pass through predicate vector. (pass_if_conversion::execute): Do CFG cleanup and SSA update inline, see if any if-converted loops we refrece in LOOP_VECTORIZED calls vanished and fixup. * tree-if-conv.h (tree_if_conversion): Adjust prototype. 2019-02-08 Ilya Leoshkevich * config/s390/constraints.md (jdd): New constraint. 2019-02-08 H.J. Lu PR target/89229 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for upper 16 vector registers without TARGET_AVX512VL. (*movti_internal): Likewise. 2019-02-08 Jakub Jelinek PR rtl-optimization/89234 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P. (copy_reg_eh_region_note_backward): Likewise. 2019-02-08 Richard Biener PR middle-end/89223 * tree-data-ref.c (initialize_matrix_A): Fail if constant doesn't fit in HWI. (analyze_subscript_affine_affine): Handle failure from initialize_matrix_A. 2019-02-08 Jakub Jelinek * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of cfun everywhere. 2019-02-07 David Malcolm PR tree-optimization/86637 PR tree-optimization/89235 * tree-vect-loop.c (optimize_mask_stores): Add an auto_purge_vect_location sentinel to ensure that vect_location is purged on exit. * tree-vectorizer.c (auto_purge_vect_location::~auto_purge_vect_location): New dtor. (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel to ensure that vect_location is purged on exit. (pass_slp_vectorize::execute): Likewise, replacing the manual reset. * tree-vectorizer.h (class auto_purge_vect_location): New class. 2019-02-07 Kyrylo Tkachov * config/aarch64/iterators.md (max_opp): New code_attr. (USMAX): New code iterator. * config/aarch64/predicates.md (aarch64_smin): New predicate. (aarch64_smax): Likewise. * config/aarch64/aarch64-simd.md (abd_3): Rename to... (*aarch64_abd_3): ... Change RTL representation to MINUS (MAX MIN). 2019-02-07 H.J. Lu PR target/89229 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI for TARGET_AVX512VL. (*movti_internal): Set mode to TI for TARGET_AVX512VL. 2019-02-07 Andreas Krebbel * config/s390/s390-builtin-types.def: Add new types. * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2) (s390_vec_xlw4): Make the memory operand into a const pointer. (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision float. * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate a new vector type with the alignment of the scalar memory operand. 2019-02-07 Matthew Malcomson Jakub Jelinek PR bootstrap/88714 * config/arm/arm-protos.h (valid_operands_ldrd_strd, arm_count_ldrdstrd_insns): New declarations. * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of MINUS. (valid_operands_ldrd_strd): New function. (arm_count_ldrdstrd_insns): New function. * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode sets instead of single DImode set and define new insns to match this. 2019-02-07 Tamar Christina * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data): Make it a C initializer. 2019-02-07 Tamar Christina PR/target 88850 * config/arm/neon.md (*neon_mov): Add r -> r case. 2019-02-07 Kyrylo Tkachov * config/arm/neon.md (neon_dot): Use neon_dot for type. (neon_dot_lane): Likewise. 2019-02-07 Kyrylo Tkachov * config/aarch64/aarch64-simd.md (aarch64_dot): Use neon_dot for type. (aarch64_dot_lane): Likewise. (aarch64_dot_laneq): Likewise. 2019-02-06 Vladimir Makarov PR rtl-optimization/89225 * lra-constaints.c (simplify_operand_subreg): Add subreg mode sizes check. 2019-02-06 Eric Botcazou * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage after restoring registers saved to allocate the frame on Windows. 2019-02-06 Richard Biener PR tree-optimization/89182 * graphite.h (cached_scalar_evolution_in_region): Declare. * graphite.c (struct seir_cache_key): New. (struct sese_scev_hash): Likewise. (seir_cache): New global. (cached_scalar_evolution_in_region): New function. (graphite_transform_loops): Allocate and release seir_cache. * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use cached_scalar_evolution_in_region. * graphite-scop-detection.c (scop_detection::can_represent_loop): Simplify. (scop_detection::graphite_can_represent_expr: Use cached_scalar_evolution_in_region. (scop_detection::stmt_simple_for_scop_p): Likewise. (find_params_in_bb): Likewise. (gather_bbs::before_dom_children): Likewise. * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise. (add_loop_constraints): Likewise. 2019-02-06 Jakub Jelinek PR middle-end/89210 * fold-const-call.c (fold_const_vec_convert): Pass true as last operand to new_unary_operation only if both element types are integral and it isn't a widening conversion. Return NULL_TREE if new_unary_operation failed. 2019-02-05 Andreas Krebbel PR target/88856 * config/s390/s390.md: Remove load and test FP splitter. 2019-02-05 Aaron Sawdey PR target/89112 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence, expand_compare_loop, expand_block_compare_gpr, expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add #include "profile-count.h" and "predict.h" for types and functions needed to work with REG_BR_PROB notes. 2019-02-05 Aaron Sawdey PR target/89112 * config/rs6000/rs6000.md (tf_): Generate a local label for the long branch case. 2019-02-05 Jakub Jelinek PR target/89188 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they can throw, non-call exceptions are enabled and we can't delete dead exceptions or alter cfg. Set must_clean if delete_insn_and_edges returns true, don't set it blindly for calls. Assert that delete_unreachable_blocks is called only if can_alter_cfg. PR rtl-optimization/89195 * combine.c (make_extraction): For MEMs, don't extract bytes outside of the original MEM. 2019-02-05 Martin Liska PR gcov-profile/89000 * gcov.c (function_summary): Remove argument. (file_summary): New function. (print_usage): Replace tabs with spaces. (generate_results): Use new function file_summary. 2019-02-05 Jakub Jelinek PR target/89186 * optabs.c (prepare_cmp_insn): Pass x and y to emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0). 2019-02-05 Richard Biener PR middle-end/89150 * bitmap.h (struct bitmap_obstack): Do not mark GTY. (struct bitmap_element): Drop chain_prev so we properly recurse on the prev member, supporting tree views. (struct bitmap_head): GTY skip the obstack member. 2019-02-04 Alexander Monakov PR c/88698 * doc/extend.texi (Vector Extensions): Add an example of using vector types together with x86 intrinsics. 2019-02-04 Alan Modra * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase str[] size to 160, and comment. 2019-02-04 Alan Modra * config/rs6000/rs6000.c (rs6000_indirect_call_template_1), (rs6000_pltseq_template): Guard output of TLS markers with TARGET_TLS_MARKERS. (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv), (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding to use inline PLT sequences. * config/rs6000/rs6000.md (pltseq_tocsave_), (pltseq_plt16_ha_, pltseq_plt16_lo_), (pltseq_mtctr_): Don't test TARGET_TLS_MARKERS in predicate. 2019-02-04 Martin Liska PR ipa/88985 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail out when ipa_fn_summaries does not contain entry for callee. 2019-02-04 Eric Botcazou * config/sparc/sparc.h: Remove superfluous blank lines. * config/sparc/sparc.c (global_offset_table_rtx): Rename into... (got_register_rtx): ...this. (sparc_got): Adjust to above renaming. (sparc_tls_got): Likewise. (sparc_delegitimize_address): Likewise. (sparc_output_mi_thunk): Likewise. (sparc_init_pic_reg): Likewise. (save_local_or_in_reg_p): Fix test on the GOT register. (USE_HIDDEN_LINKONCE): Move around. (get_pc_thunk_name): Likewise. (gen_load_pcrel_sym): Likewise. (load_got_register): Likewise. 2019-02-04 Kito Cheng * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule of the dynamic linker: "ld-linux-nds32[le|be][f].so.1". 2019-02-04 Chung-Ju Wu * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model into consideration. 2019-02-04 Chung-Ju Wu * config.gcc (with_nds32_lib, glibc): Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting. * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete. (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete. 2019-02-03 Uroš Bizjak PR target/89071 * config/i386/i386.md (*sqrt2_sse): Add (v,0) alternative. Do not prefer (v,v) alternative for non-AVX targets and (m,v) alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set. (*rcpsf2_sse): Ditto. (*rsqrtsf2_sse): Ditto. (sse4_1_round PR debug/87295 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as orig. 2019-02-02 Jakub Jelinek PR middle-end/87887 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): Punt with warning on aggregate return or argument types. Ignore type/mode checking for uniform arguments. 2019-02-01 Segher Boessenkool * combine.c (try_combine): Do not print "Can't combine" messages unless printing failed combination attempts. 2019-02-01 Martin Jambor PR hsa/87863 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group segment and global segment variables before making them static. 2019-02-01 Martin Jambor * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two missed optimization dump with dump_enabled_p. 2019-02-01 Richard Biener PR middle-end/88597 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up the instantiate cache. (instantiate_scev_binary): Elide second operand procesing if equal to the first. * tree-chrec.c (chrec_contains_symbols): Add visited set. (chrec_contains_undetermined): Likewise. (tree_contains_chrecs): Likewise. 2019-02-01 Jan Hubicka * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200. 2019-02-01 Jakub Jelinek PR tree-optimization/89143 * wide-int-range.h (wide_int_range_absu): Declare. * wide-int-range.cc (wide_int_range_absu): New function. * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR. PR tree-optimization/88107 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument, instead of assertion that eh_region_outermost is non-NULL, if it is NULL, set *ALL to true and return NULL. (move_sese_region_to_fn): Adjust caller, if all is set, call duplicate_eh_regions with NULL region. 2019-02-01 Richard Biener PR rtl-optimization/88593 * mode-switching.c (optimize_mode_switching): Free dominators before calling cleanup_cfg. 2019-02-01 Bin Cheng PR tree-optimization/88932 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order. 2019-01-31 Jakub Jelinek PR middle-end/89137 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid bogus clang warning. 2019-01-31 Uroš Bizjak PR target/89071 * config/i386/i386.md (*extendsfdf2): Split out reg->reg alternative to avoid partial SSE register stall for TARGET_AVX. (truncdfsf2): Ditto. (sse4_1_round2): Ditto. 2018-01-31 Bill Schmidt PR tree-optimization/89008 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't process anything of the form X * 0. 2019-01-31 Richard Biener PR tree-optimization/89135 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks with abnormal preds. 2019-01-31 Jakub Jelinek PR sanitizer/89124 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining always_inline callees into no_sanitize_address callers. 2019-01-31 Richard Biener PR rtl-optimization/89115 * lra.c (lra_rtx_hash): Properly hash CONST_INT values. 2019-01-30 Martin Sebor PR other/89106 * doc/extend.texi (cast to a union): Correct and expand. 2019-01-30 Vladimir Makarov PR rtl-optimization/87246 * lra-constraints.c (simplify_operand_subreg): Reload memory in subreg if the address became invalid. 2019-01-30 Bill Schmidt PR target/87064 * config/rs6000/vsx.md (*vsx_reduc__v4sf_scalar): Disable for little-endian. 2019-01-30 Richard Biener PR rtl-optimization/89115 * opts.c (default_options_optimization): Reduce PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1. Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative to the default. 2019-01-30 Kelvin Nilsen * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin): Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to type of vector element when vec_extract is implemented by direct move. 2019-01-30 Thomas Schwinge * doc/invoke.texi (C Language Options): List "-fopenacc-dim". 2019-01-30 Richard Biener PR tree-optimization/89111 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict canonicalization to appropriately sized access types. 2019-01-30 Jakub Jelinek PR c++/89105 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn for arguments to functions that are TU-local and shouldn't be referenced by assembly. 2019-01-30 Ulrich Drepper * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears after '='. 2019-01-29 Martin Sebor PR c/88956 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays. 2019-01-29 Jakub Jelinek PR c++/66676 PR ipa/89104 * omp-simd-clone.c (simd_clone_clauses_extract) : Ignore clauses with NULL OMP_CLAUSE_ALIGNED_ALIGNMENT. 2019-01-29 Vineet Gupta * config.gcc: Force .init_array for ARC. 2019-01-29 Richard Biener PR debug/87295 * dwarf2out.c (collect_skeleton_dies): New helper. (copy_decls_for_unworthy_types): Call it. (build_abbrev_table): Assert we do not try to replace DW_AT_signature refs with local refs. 2019-01-28 Jakub Jelinek PR middle-end/89002 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ for lastprivate/linear IV, push gimplify context around gimplify_assign and, if it needed any temporaries, pop it into a gimple bind around the sequence. 2019-01-28 Bernd Edlinger * common.opt (-Wattribute-alias): Remove "no-" from name. Make -Wattribute-alias command line option and #pragma GCC diagnostic ignored "-Wattribute-alias" work again. 2019-01-28 Jakub Jelinek PR target/89073 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx, -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document x86 ISA options. (bmi2): Add missing @opindex. * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2, avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd, avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi, avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2, cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase, fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig, pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf, sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave, xsavec, xsaveopt and xsaves options. 2019-01-28 Richard Biener PR debug/89076 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX support removal. 2019-01-28 Richard Biener PR tree-optimization/88739 * tree-cfg.c (verify_types_in_gimple_reference): Verify BIT_FIELD_REFs only are applied to mode-precision operands when they are integral. (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR. * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating BIT_FIELD_REFs of non-mode-precision integral operands. 2019-01-27 Jakub Jelinek PR target/87214 * config/i386/sse.md (avx512dq_shuf_64x2_1, avx512f_shuf_64x2_1): Ensure the first constants in pairs are multiples of 2. Formatting fixes. (avx512vl_shuf_32x4_1, avx512vl_shuf_32x4_1): Ensure the first constants in each quadruple are multiples of 4. Formatting fixes. 2019-01-26 Martin Jambor PR ipa/88933 * tree-inline.c: Include tree-cfgcleanup.h. (delete_unreachable_blocks_update_callgraph): Move... * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph): ...here, make externally visible, make second argument bool, adjust all callers. * tree-cfgcleanup.c: Include cgraph.h. * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph): Declare. * ipa-prop.c: Include tree-cfgcleanup.h. (ipcp_transform_function): Call delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG. 2019-01-25 Vladimir Makarov PR rtl-optimization/88846 * ira.c (process_set_for_memref_referenced_p): New. (memref_referenced_p): Add new param. Use process_set_for_memref_referenced_p. Add new switch cases. (memref_used_between_p): Pass new arg to memref_referenced_p. 2019-01-25 Richard Earnshaw PR target/88469 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new argument ABI_BREAK. Set to true if the calculated alignment has changed in gcc-9. Check bit-fields for their base type alignment. (aarch64_layout_arg): Warn if argument passing has changed in gcc-9. (aarch64_function_arg_boundary): Likewise. (aarch64_gimplify_va_arg_expr): Likewise. 2019-01-25 Richard Sandiford PR middle-end/89037 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi instead of accessing TREE_INT_CST_ELT directly. 2019-01-25 Christophe Lyon * doc/sourcebuild.texi (Environment attributes): Add fenv and fenv_exceptions description. 2019-01-25 Wilco Dijkstra PR rtl-optimization/87763 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow SUBREG when matching CC_NZmode compare. 2019-01-25 Richard Biener PR tree-optimization/89049 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Look at the pattern stmt to determine if the stmt is vectorized. 2019-01-25 Richard Sandiford * config/aarch64/aarch64-sve.md (*pred_mov) (pred_mov): Handle all-register forms using both a new alternative and a split. 2019-01-25 Richard Biener PR tree-optimization/86865 * graphite-scop-detection.c (scop_detection::can_represent_loop): Reject non-do-while loops. 2019-01-24 Peter Bergner * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P. * config/rs6000/constraints.md (Q constraint): Use REG_P. * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P. * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P. * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. * config/rs6000/predicates.md (altivec_register_operand, vint_operand, vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand, vlogical_operand, gpc_reg_operand, int_reg_operand, int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P. (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand, cc_reg_not_cr0_operand, input_operand): Use SUBREG_P. (save_world_operation, restore_world_operation, lmw_operation, stmw_operation): Use MEM_P and REG_P. (tie_operand): Use MEM_P. (vrsave_operation, crsave_operation): Use REG_P. (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P. (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P. (quad_int_reg_operand): Use HARD_REGISTER_NUM_P. (call_operand): Use HARD_REGISTER_P. (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand): Use CONST_INT_P. (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P. * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p, quad_aligned_load_p, replace_swapped_aligned_store, recombine_lvx_pattern, replace_swapped_aligned_load, recombine_stvx_pattern): Use MEM_P. (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant): Use MEM_P and SYMBOL_REF_P. (rtx_is_swappable_p): Use REG_P and CONST_INT_P. (insn_is_swappable_p): Use REG_P and MEM_P. (insn_is_swap_p, (alignment_mask): Use CONST_INT_P. * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move): Use CONST_INT_P. * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove): Use CONST_DOUBLE_P. (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and CONST_WIDE_INT_P. (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P, CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P. (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P, HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and reg_or_subregno: (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P. (easy_altivec_constant, rs6000_legitimate_offset_address_p, rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin, rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare, rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner, rs6000_split_logical_di): Use CONST_INT_P. (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P, REG_P and SYMBOL_REF_P. (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P. (print_operand): Use CONST_INT_P, MEM_P and REG_P. (virtual_stack_registers_memory_p, rs6000_legitimate_address_p, mems_ok_for_quad_peep): Use CONST_INT_P and REG_P. (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P. (small_data_operand, print_operand_address): Use CONST_INT_P and SYMBOL_REF_P. (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P. (rs6000_init_hard_regno_mode_ok, direct_move_p): Use HARD_REGISTER_NUM_P. (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P. (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P, SUBREG_P and SYMBOL_REF_P. (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P and HARD_REGISTER_NUM_P. (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and reg_or_subregno. (rs6000_adjust_cost, find_mem_ref): Use MEM_P. (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use MEM_P and REG_P. (legitimate_indirect_address_p, legitimate_lo_sum_address_p, registers_ok_for_quad_peep, rs6000_output_function_epilogue, find_addr_reg): Use REG_P. (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P. (rs6000_emit_le_vsx_move): Use SUBREG_P. (offsettable_ok_by_alignment, constant_pool_expr_p, legitimate_small_data_p, rs6000_output_dwarf_dtprel, rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p, rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra, rs6000_assemble_integer, create_TOC_reference, rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info, rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P. (rs6000_split_vec_extract_var): Use reg_or_subregno. * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P. * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P. (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P. (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P. (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P. * config/rs6000/rs6000.md (define_expands strlensi, mod3 and cbranch4): Use CONST_INT_P. (multiple define_splits): Use REG_P and SUBREG_P. (define_expands call, call_value): Use MEM_P. (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P. (define insn *mtcrfsi): Use CONST_INT_P and REG_P. * config/rs6000/vsx.md (*vsx_le_perm_load_, *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P and HARD_REGISTER_NUM_P. (multiple define_splits): Use HARD_REGISTER_NUM_P. 2019-01-24 Uroš Bizjak PR rtl-optimization/88948 * rtl.h (prepare_copy_insn): New prototype. * gcse.c (prepare_copy_insn): New function, split out from process_insert_insn. (process_insert_insn): Use prepare_copy_insn. * store-motion.c (replace_store_insn): Use prepare_copy_insn instead of gen_move_insn. 2019-01-24 Jakub Jelinek PR debug/89006 * config/i386/i386.c (ix86_pic_register_p): Return true for UNSPEC_SET_GOT too. PR tree-optimization/88964 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also punt if HONOR_SNANS (chrec). PR middle-end/89015 * tree-nested.c (convert_nonlocal_reference_stmt, convert_local_reference_stmt, convert_tramp_reference_stmt, convert_gimple_call) : Treat gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK. PR tree-optimization/89027 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers for "omp simd array" variables. 2019-01-24 Richard Earnshaw PR target/88469 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8 force the alignment of m_val. 2019-01-24 Richard Biener PR lto/87187 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): When in "legacy" debug mode make sure to reset self-origins. 2019-01-24 Martin Liska PR gcov-profile/88994 * gcov-io.c (mangle_path): Do not allocate a bigger buffer, result will be always smaller or equal to the original. * gcov.c (mangle_name): Fix else branch where we should also copy to PTR and shift the pointer. 2019-01-24 Xiong Hu Luo * tree-ssa-dom.c (test_for_singularity): Fix a comment typo. * vr-values.c (find_case_label_ranges): Fix a comment typo. 2019-01-23 Bin Cheng Steve Ellcey PR target/85711 * recog.c (address_operand): Return false on wrong mode for address. (constrain_operands): Check for mode with 'p' constraint. 2019-01-23 Uroš Bizjak PR target/88998 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives. Disparage MMX alternative. (sse2_cvtpd2pi): Ditto. (sse2_cvttpd2pi): Ditto. 2019-01-23 David Malcolm PR driver/89014 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix use-after-free of the result of aarch64_get_extension_string_for_isa_flags. 2019-01-23 Jakub Jelinek PR c/44715 * doc/extend.texi: Document break and continue behavior in statement expressions. 2019-01-23 Richard Biener PR tree-optimization/89008 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do not leave another stray operand. 2019-01-23 Jakub Jelinek * BASE-VER: Bump to 9.0.1. 2019-01-23 Eric Botcazou * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE thunk that returns by reference, use the type of the return object of the thunk instead of that of the alias to build the dereference. 2019-01-23 Vineet Gupta * config/arc/atomic.md: Add operand to DMB instruction. 2019-01-23 Jakub Jelinek PR tree-optimization/88964 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use build_zero_cst instead of build_int_cst. Return false for loop invariants which honor signed zeros. 2019-01-22 Segher Boessenkool * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3. 2019-01-22 Jakub Jelinek PR target/88965 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h. (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first. PR middle-end/88968 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with non-integral DECL_BIT_FIELD_REPRESENTATIVEs. PR target/87064 * config/rs6000/vsx.md (*vsx_reduc__v2df_scalar): Disable for little endian. 2019-01-22 Richard Earnshaw PR target/88469 * config/arm/arm.c (arm_needs_double_word_align): Check DECL_BIT_FIELD_TYPE. 2019-01-22 Hongtao Liu H.J. Lu PR target/88909 * config/i386/i386-builtin.def: Add mask2 to all builtin initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and SPECIAL_ARGS. * config/i386/i386.c (BDESC): Add mask2 to the definition. (BDESC_FIRST): Likewise. (define_builtin): Add an argument for mask2. Updated to handle both ix86_isa_flags and ix86_isa_flags2. (define_builtin_const): Likewise. (define_builtin_pure): Likewise. (define_builtin2): Deleted. (define_builtin_const2): Likewise. (builtin_description): Add a member, mask2. (bdesc_*): Add mask2 to builtin initializations. (ix86_init_mmx_sse_builtins): Update calls to def_builtin, def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2 support. (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support. 2019-01-22 H.J. Lu PR target/88954 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check noplt attribute. 2019-01-22 Richard Earnshaw PR target/88469 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's alignment is dominated by a bitfield with 64-bit aligned base type. (arm_function_arg): Emit a warning if the alignment has changed since earlier GCC releases. (arm_function_arg_boundary): Likewise. (arm_setup_incoming_varargs): Likewise. 2019-01-22 Richard Biener PR tree-optimization/88862 * graphite-scop-detection.c (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR. 2019-01-22 Andrew Stubbs * doc/extend.tex (AMD GCN Function Attributes): New section. * doc/install.texi (amdgcn-unknown-amdhsa): New instructions. * doc/invoke.texi (AMD GCN Options): New section. * doc/md.texi (Constraints for Particular Machines): Add AMD GCN. 2019-01-22 Eric Botcazou * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT register and decoded HIGH/LO_SUM combinations for labels in PIC mode. 2019-01-22 Jakub Jelinek PR tree-optimization/88044 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition is false in the first iteration, but !every_iteration, return false instead of true with niter->niter zero. PR rtl-optimization/88904 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention any nonequal registers before processing BB_END (b). PR target/88905 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of GET_MODE (op0). (expand_binop_directly, expand_doubleword_clz, expand_doubleword_popcount, expand_ctz, expand_ffs, expand_unop_direct, maybe_emit_unop_insn): Adjust callers. PR rtl-optimization/49429 PR target/49454 PR rtl-optimization/86334 PR target/88906 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs addressable from here... (emit_block_op_via_libcall): ... to here. 2019-01-22 Richard Biener * tree-vect-loop.c (vect_analyze_loop_operations): Use auto_vec for cost vector to fix memleak. (vectorize_fold_left_reduction): Properly gather SLP defs. (vectorizable_comparison): Do not swap operands to properly gather SLP defs. 2019-01-22 Alan Modra PR target/88614 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg stays a reg. Allow a const_int. * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare. * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define. (IS_NOMARK_TLSGETADDR): Define. * config/rs6000/rs6000.c (edit_tls_call_insn): Delete. (rs6000_output_tlsargs): New function. (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS __tls_get_addr call takes an arg. (rs6000_call_sysv): Generate sysv4 secure plt call pattern here.. * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here, delete split.. (call_value_nonlocal_sysv): ..or here, delete split. (tls_gdld_nomark): Delete. (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2 predicate. Call rs6000_output_tlsargs. Adjust length to suit. (call_value_nonlocal_sysv): Likewise. (call_value_nonlocal_sysv_secure): Likewise. (call_value_nonlocal_aix): Likewise. (call_value_indirect_aix): Likewise. (call_value_indirect_elfv2): Likewise. (call_value_local32, call_value_local64): Disable for no-mark tls. (call_value_local_aix): Likewise. 2019-01-21 Uroš Bizjak PR target/88938 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32, case IX86_BUILTIN_BEXTRI64]: Sanitize operands. 2019-01-21 Michael Ploujnikov * hash-map-tests.c (test_map_of_strings_to_int): Show how to use string contents as hash_map keys. 2019-01-21 Bernd Edlinger PR c/88928 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter for rvalue context. Handle rvalues correctly. Use min_align_of_type instead of TYPE_ALIGN. (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly. Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL pointer from TYPE_STUB_DECL. 2019-01-21 Richard Biener PR tree-optimization/88934 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look at the possibly non-constant operand. (vect_get_constant_vectors): Adjust. 2019-01-21 H.J. Lu PR target/71659 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED. * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED instead of _X86INTRIN_H_INCLUDED. * onfig/i386/clwbintrin.h: Likewise. * config/i386/pkuintrin.h: Likewise. * config/i386/prfchwintrin.h: Likewise. * config/i386/rdseedintrin.h: Likewise. * config/i386/wbnoinvdintrin.h: Likewise. * config/i386/xsavecintrin.h: Likewise. * config/i386/xsavesintrin.h: Likewise. * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check. * config/i386/xsaveintrin.h: Likewise. * config/i386/xsaveoptintrin.h: Likewise. * config/i386/x86intrin.h: Move "#include" , , , , , , , , , , and to ... * config/i386/immintrin.h: Here. 2019-01-20 Martin Jambor PR ipa/87615 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked with aa_walk_budget. * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add aa_walk_budget_p parameter. * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA walk. Updated all callers. (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1. (eliminated_by_inlining_prob): New parameter fbi, pass it on to unmodified_parm. (will_be_nonconstant_expr_predicate): New parameter fbi, removed parameter info. Extract info from fbi. Pass fbi to recursive calls and to unmodified_parm. (phi_result_unknown_predicate): New parameter fbi, removed parameter info, updated call to will_be_nonconstant_expr_predicate. (param_change_prob): New parameter fbi, limit AA walking. (analyze_function_body): Initialize aa_walk_budget in fbi. Update calls to various above functions. * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p parameter. Use it to limit AA walking. * ipa-prop.c (detect_type_change_from_memory_writes): New parameter fbi, limit AA walk. (detect_type_change): New parameter fbi, pass it on to detect_type_change_from_memory_writes. (detect_type_change_ssa): Likewise. (aa_overwalked): Removed. (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line accordingly, adjust to the neew AA limiting scheme. (parm_ref_data_preserved_p): Likewise. (ipa_compute_jump_functions_for_edge): Adjust call to get_dynamic_type. (ipa_analyze_call_uses): Likewise. (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa. (ipa_analyze_node): Initialize aa_walk_budget. (ipcp_transform_function): Likewise. * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call to get_dynamic_type. 2019-01-19 Jakub Jelinek * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move outside of #if CHECKING_P code. 2019-01-19 Richard Sandiford * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood): New function, split out from... (loop_versioning::analyze_stride): ...here. (loop_versioning::find_per_loop_multiplication): Use gassign. (loop_versioning::analyze_term_using_scevs): Return a success code. (loop_versioning::analyze_arbitrary_term): New function. (loop_versioning::analyze_address_fragment): Use analyze_arbitrary_term if all else fails. 2019-01-18 Segher Boessenkool PR target/88892 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register operands. 2019-01-18 Richard Biener PR tree-optimization/88903 * tree-vect-stmts.c (vectorizable_shift): Verify we see all scalar stmts a SLP shift amount is composed of when detecting shifts by scalars. 2019-01-18 Richard Earnshaw PR target/88799 * config/arm/arm-cpus.in (mp): New feature. (sec): New feature. (fgroup ARMv7ve): Add mp and sec features. (arch armv7-a): Add options to allow mp and sec extensions. (cpu generic-armv7-a): Add options to allow mp and sec extensions. (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec extenstions to the base architecture. (cpu cortex-a8): Add sec extension to the base architecture. (cpu marvell-pj4): Add mp and sec extensions to the base architecture. * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch variants down to the base v7-a varaint. * config/arm/t-multilib (v7_a_arch_variants): New variable. * doc/invoke.texi (ARM Options): Add +mp and +sec to the list of permitted extensions for -march=armv7-a and for -mcpu=generic-armv7-a. 2019-01-18 Martin Liska * params.def: Fix comment. * tree-profile.c (gimple_init_gcov_profiler): Bump function name. (gimple_gen_ic_func_profiler): Likewise. 2019-01-18 Ramana Radhakrishnan * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle and put in error checks for stack protector guard options. (aarch64_stack_protect_guard): New. (TARGET_STACK_PROTECT_GUARD): Define. * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New. (reg_stack_protect_address): New. (stack_protect_set): Adjust for SSP_GLOBAL. (stack_protect_test): Likewise. * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New. (-mstack-protector-guard): Likewise. (-mstack-protector-guard-offset): Likewise. 2019-01-18 Jakub Jelinek PR tree-optimization/86214 * tree-inline.h (struct copy_body_data): Add add_clobbers_to_eh_landing_pads member. * tree-inline.c (add_clobbers_to_eh_landing_pad): New function. (copy_edges_for_bb): Call it if EH edge destination is < id->add_clobbers_to_eh_landing_pads. Fix a comment typo. (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads if flag_stack_reuse != SR_NONE and clear it afterwards. 2019-01-18 Christophe Lyon PR target/85596 * doc/install.texi (with-multilib-list): Document for aarch64. 2019-01-18 Jakub Jelinek PR target/88734 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace (("..."))) with ("..."). 2019-01-18 Sebastian Huber * doc/extend.texi (Built-in Functions for Memory Model Aware Atomic Operations): Document atomic fetch and nand. 2019-01-18 Martin Liska Richard Biener PR middle-end/88587 * cgraph.h (create_version_clone_with_body): Add new argument with attributes. * cgraphclones.c (cgraph_node::create_version_clone): Add DECL_ATTRIBUTES to a newly created decl. And call valid_attribute_p so that proper cl_target_optimization_node is set for the newly created declaration. * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES for declaration. (expand_target_clones): Do not call valid_attribute_p, it must be already done. * tree-inline.c (copy_decl_for_dup_finish): Reset mode for vector types. 2019-01-17 Jakub Jelinek PR target/88734 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics. 2019-01-17 Martin Sebor PR middle-end/88273 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): Handle anti-ranges the same as no range at all. 2018-01-17 Steve Ellcey * config/aarch64/aarch64.c (cgraph.h): New include. (intl.h): New include. (supported_simd_type): New function. (currently_supported_simd_type): Ditto. (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto. (aarch64_simd_clone_adjust): Ditto. (aarch64_simd_clone_usable): Ditto. (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro. (TARGET_SIMD_CLONE_ADJUST): Ditto. (TARGET_SIMD_CLONE_USABLE): Ditto. * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check. * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust call. 2019-01-17 Martin Sebor PR tree-optimization/88800 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking NO_WARNING bit here. Avoid folding out-of-bounds calls. * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove redundant argument. Add new argument and issue diagnostics under its control. Detect out-of-bounds access even with warnings disabled. (check_bounds_or_overlap): Change return type. Add argument. (wrestrict_dom_walker::check_call): Adjust. * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument. * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in check_bounds_or_overlap's return value. (handle_builtin_stxncpy): Same. (handle_builtin_strcat): Same. 2019-01-17 Andrew Stubbs Kwok Cheung Yeung Julian Brown Tom de Vries * doc/sourcebuild.texi: Document dg-add-options sqrt_insn. 2019-01-17 Andrew Stubbs * doc/sourcebuild.texi: Document dg-require-effective-target llvm_binutils and offload_gcn. 2019-01-17 Andrew Stubbs Kwok Cheung Yeung Julian Brown Tom de Vries * doc/sourcebuild.texi: Document dg-required-effective-target exceptions. 2019-01-17 Andrew Stubbs Kwok Cheung Yeung Julian Brown Tom de Vries Jan Hubicka Martin Jambor * config.gcc: Add amdgcn*-*-amdhsa configuration. * configure.ac: Check for dlopen. * configure: Regenerate. 2019-01-17 Andrew Stubbs Kwok Cheung Yeung Julian Brown Tom de Vries Jan Hubicka Martin Jambor * common/config/gcn/gcn-common.c: New file. * config/gcn/driver-gcn.c: New file. * config/gcn/gcn-builtins.def: New file. * config/gcn/gcn-hsa.h: New file. * config/gcn/gcn-modes.def: New file. * config/gcn/gcn-opts.h: New file. * config/gcn/gcn-passes.def: New file. * config/gcn/gcn-protos.h: New file. * config/gcn/gcn-run.c: New file. * config/gcn/gcn-tree.c: New file. * config/gcn/gcn.c: New file. * config/gcn/gcn.h: New file. * config/gcn/gcn.opt: New file. * config/gcn/t-gcn-hsa: New file. 2019-01-17 Andrew Stubbs Kwok Cheung Yeung Julian Brown Tom de Vries Jan Hubicka Martin Jambor * config/gcn/constraints.md: New file. * config/gcn/gcn-valu.md: New file. * config/gcn/gcn.md: New file. * config/gcn/predicates.md: New file. 2019-01-17 Eric Botcazou * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace flag_non_call_exceptions with cfun->can_throw_non_call_exceptions. (stmt_uses_0_or_null_in_undefined_way): Likewise. * tree-ssa-alias.c (same_addr_size_stores_p): Likewise. 2019-01-17 Tamar Christina PR target/88851 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New. * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use it and document registers. 2019-01-17 Kyrylo Tkachov * config/aarch64/aarch64.c (ares_tunings): Define. * config/aarch64/aarch64-cores.def (ares): Use the above. 2019-01-17 Wei Xiao PR target/88794 Revert: 2018-11-06 Wei Xiao * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics. (_mm512_fixupimm_round_pd): Update parameters and builtin. (_mm512_maskz_fixupimm_round_pd): Ditto. (_mm512_fixupimm_round_ps): Ditto. (_mm512_maskz_fixupimm_round_ps): Ditto. (_mm_fixupimm_round_sd): Ditto. (_mm_maskz_fixupimm_round_sd): Ditto. (_mm_fixupimm_round_ss): Ditto. (_mm_maskz_fixupimm_round_ss): Ditto. (_mm512_fixupimm_pd): Ditto. (_mm512_maskz_fixupimm_pd): Ditto. (_mm512_fixupimm_ps): Ditto. (_mm512_maskz_fixupimm_ps): Ditto. (_mm_fixupimm_sd): Ditto. (_mm_maskz_fixupimm_sd): Ditto. (_mm_fixupimm_ss): Ditto. (_mm_maskz_fixupimm_ss): Ditto. (_mm512_mask_fixupimm_round_pd): Update builtin. (_mm512_mask_fixupimm_round_ps): Ditto. (_mm_mask_fixupimm_round_sd): Ditto. (_mm_mask_fixupimm_round_ss): Ditto. (_mm512_mask_fixupimm_pd): Ditto. (_mm512_mask_fixupimm_ps): Ditto. (_mm_mask_fixupimm_sd): Ditto. (_mm_mask_fixupimm_ss): Ditto. * config/i386/avx512vlintrin.h: (_mm256_fixupimm_pd): Update parameters and builtin. (_mm256_maskz_fixupimm_pd): Ditto. (_mm256_fixupimm_ps): Ditto. (_mm256_maskz_fixupimm_ps): Ditto. (_mm_fixupimm_pd): Ditto. (_mm_maskz_fixupimm_pd): Ditto. (_mm_fixupimm_ps): Ditto. (_mm_maskz_fixupimm_ps): Ditto. (_mm256_mask_fixupimm_pd): Update builtin. (_mm256_mask_fixupimm_ps): Ditto. (_mm_mask_fixupimm_pd): Ditto. (_mm_mask_fixupimm_ps): Ditto. * config/i386/i386-builtin-types.def: Add new types and remove useless ones. * config/i386/i386-builtin.def: Update builtin definitions. * config/i386/i386.c: Handle new builtin types and remove useless ones. * config/i386/sse.md: Update VFIXUPIMM* patterns. (_fixupimm_maskz): Update. (_fixupimm): Update. (_fixupimm_mask): Update. (avx512f_sfixupimm_maskz): Update. (avx512f_sfixupimm): Update. (avx512f_sfixupimm_mask): Update. * config/i386/subst.md: (round_saeonly_sd_mask_operand4): Add new subst_attr. (round_saeonly_sd_mask_op4): Ditto. (round_saeonly_expand_operand5): Ditto. (round_saeonly_expand): Update. 2019-01-17 Wei Xiao PR target/88794 Revert: 2018-11-12 Wei Xiao * config/i386/sse.md: Combine VFIXUPIMM* patterns (_fixupimm_maskz): Update. (_fixupimm): Update. (_fixupimm_mask): Remove. (avx512f_sfixupimm_maskz): Update. (avx512f_sfixupimm): Update. (avx512f_sfixupimm_mask): Remove. 2019-01-17 Wei Xiao PR target/88794 Revert: 2018-12-15 Jakub Jelinek PR target/88489 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator. (avx512f_sfixupimm): Use it instead of UNSPEC_FIXUPIMM. 2019-01-17 Richard Biener PR lto/86736 * dwarf2out.c (want_pubnames): Never generate pubnames sections and friends for the LTO part of debug info. 2019-01-17 Jakub Jelinek PR tree-optimization/86214 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts if x == y. PR rtl-optimization/88870 * dce.c (deletable_insn_p): Never delete const/pure calls that can throw if we can't alter the cfg or delete dead exceptions. (mark_insn): Don't call find_call_stack_args for such calls. 2019-01-17 Kewen Lin * doc/extend.texi: Add four new prototypes for vec_ld and seven new prototypes for vec_st. * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries for scalar address type variants of altivec_vec_ld/altivec_vec_st, mainly on signed/unsigned long long and double. 2019-01-16 David Malcolm PR target/88861 * combine.c (delete_noop_moves): Convert to "bool" return, returning true if any edges are eliminated. (combine_instructions): Also return true if delete_noop_moves returns true. 2019-01-16 Tamar Christina * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use correct max nunits for endian swap. (aarch64_expand_fcmla_builtin): Correct subreg code. * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane, aarch64_fcmla_laneqv4hf, aarch64_fcmlaq_lane): Correct lane endianness. 2019-01-16 Uroš Bizjak * config/alpha/alpha.c (alpha_gimplify_va_arg): Handle split indirect COMPLEX_TYPE arguments. 2019-01-16 Richard Earnshaw PR target/86891 * config/aarch64/aarch64-modes.def: Add comment about how the carry bit is set by add and compare. (CC_ADC): New CC_MODE. * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables to cache the code and mode of X. Adjust the shape of a CC_Cmode comparison. Add detection for CC_ADCmode. (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add CC_ADCmode. * config/aarch64/aarch64.md (uaddv4): Use LTU with CCmode. (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU. (add3_compareC_cconly_imm): Delete. Merge into... (add3_compareC_cconly): ... this. Restructure the comparison to eliminate the need for zero-extending the operands. (add3_compareC_imm): Delete. Merge into ... (add3_compareC): ... this. Restructure the comparison to eliminate the need for zero-extending the operands. (add3_carryin): Use LTU for the overflow detection. (add3_carryinC): Use CC_ADCmode for the result of the carry out. Reexpress comparison for overflow. (add3_carryinC_zero): Update for change to add3_carryinC. (add3_carryinC): Likewise. (add3_carryinV): Use LTU for carry between partials. * config/aarch64/predicates.md (aarch64_carry_operation): Update handling of CC_Cmode and add CC_ADCmode. (aarch64_borrow_operation): Likewise. 2019-01-16 Tamar Christina * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode. * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise. * config/arm/neon.md (neon_vcmla_lane, neon_vcmla_laneq, neon_vcmlaq_lane): Remove endianness conversion. 2019-01-16 Martin Liska * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR for GCC driver. * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as a new argument. * gcc.c (add_sysrooted_hdrs_prefix): New function. (path_prefix_reset): Move up in the source file. (find_fortran_preinclude_file): Make complex search for the fortran header files. 2019-01-15 Nikhil Benesch * godump.c (go_output_typedef): When outputting a typedef, refer to the underlying type by its name and not its structure. 2019-01-15 David Malcolm PR c++/88795 * tree.c (build_function_type): Assert that arg_types is not error_mark_node. 2019-01-15 Richard Sandiford PR inline-asm/52813 * doc/extend.texi: Document that listing the stack pointer in the clobber list of an asm is a deprecated feature. * common.opt (Wdeprecated): Moved from c-family/c.opt. * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated warning instead of an error for clobbers of the stack pointer. Add a note explaining why. 2019-01-15 Richard Biener PR debug/88046 * dwarf2out.c (gen_member_die): Do not generate inheritance DIEs late. 2019-01-15 Richard Biener PR tree-optimization/88855 * tree-if-conv.c (combine_blocks): Collect SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals. 2019-01-15 Tom de Vries PR target/80547 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle lhs == NULL_TREE for gang-level reduction. 2019-01-15 Richard Biener Prathamesh Kulkarni PR ipa/88788 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and return true if SSA_NAME is already marked in visited bitmap. (malloc_candidate_p): Pass visited to malloc_candidate_p_1. 2019-01-15 Jakub Jelinek PR tree-optimization/88775 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize equal == 0 equality pointer comparisons some more if compared in integral types and either one points to an automatic var and the other to a global, or we can prove at least one points to the middle or both point to start or both point to end. 2019-01-14 Andi Kleen * Makefile.in: Lower autofdo sampling rate by 10x. * Makefile.tpl: Dito. 2019-01-14 Tom Honermann * defaults.h: Define CHAR8_TYPE. 2019-01-14 Martin Sebor PR target/88638 * doc/extend.texi (Darwin Format Checks): Clarify. 2019-01-14 Richard Biener * genmatch.c (dt_simplify::gen_1): Change dumping dependent on whether we are in (simplify ...) or (match ...) context. 2019-01-14 Jakub Jelinek PR rtl-optimization/88796 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field. * cfgexpand.c (stack_protect_prologue): Initialize crtl->stack_protect_guard_decl. * function.c (stack_protect_epilogue): Use it instead of calling targetm.stack_protect_guard again. * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from MEMs with MEM_EXPR equal to crtl->stack_protect_guard or crtl->stack_protect_guard_decl. * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE on the returned MEM_EXPR. 2019-01-12 Tom de Vries * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting vector length using -fopenacc-dim. 2019-01-12 Tom de Vries * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector lengths into account. 2019-01-12 Svante Signell * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define. (TARGET_CAN_SPLIT_STACK): Define. (TARGET_THREAD_SPLIT_STACK_OFFSET): Define. 2019-01-05 Jan Hubicka * params.def (inline-unit-growth): Set to 40. 2019-01-12 Jakub Jelinek * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo. 2019-01-12 Tom de Vries * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading region calling vector-partitionable routine, set default_vector_length to WARP_SIZE. 2019-01-12 Tom de Vries * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new variable default_vector_length. 2019-01-12 Tom de Vries PR middle-end/88703 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults from oacc_default_dims, as oacc_validate_dims would do it, and apply dimensions limits. 2019-01-12 Tom de Vries * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1) (nvptx_goacc_validate_dims): Add used parameter. * doc/tm.texi: Regenerate. * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add argument to call to targetm.goacc.validate_dims. (default_goacc_validate_dims): Add used parameter. * target.def (validate_dims): Add used parameter in DEFHOOK. * targhooks.h (default_goacc_validate_dims): Add used parameter. 2019-01-11 Jakub Jelinek PR middle-end/85956 PR lto/88733 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds field. * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with a dummy "omp dummy var" variable if id->adjust_array_error_bounds. * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds. 2019-01-11 Vladimir Makarov PR rtl-optimization/87305 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky_transforms): Add code for little endian pseudos used as paradoxical subreg. 2019-01-11 Jakub Jelinek PR tree-optimization/88693 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p for STRING_CSTs that don't contain any NUL characters in the first TREE_STRING_LENGTH bytes. 2019-01-11 Alan Modra PR 88777 PR 88614 * genattrtab.c (min_fn): Don't translate values. (min_attr_value): Return INT_MAX when the value can't be calculated. Return minimum among any values that can be calculated. (max_attr_value): Adjust. 2019-01-11 Jakub Jelinek * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H). 2019-01-11 Steve Ellcey * config/aarch64/aarch64.c (aarch64_simd_call_p): New function. (aarch64_hard_regno_call_part_clobbered): Add insn argument. (aarch64_return_call_with_max_clobbers): New function. (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro. * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn argument. * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto. * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto. * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto. * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto. * cselib.c (cselib_process_insn): Add argument to targetm.hard_regno_call_part_clobbered call. * ira-conflicts.c (ira_build_conflicts): Ditto. * ira-costs.c (ira_tune_allocno_costs): Ditto. * lra-constraints.c (inherit_reload_reg): Ditto. * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field. * lra-lives.c (check_pseudos_live_through_calls): Add call_insn argument. Call targetm.return_call_with_max_clobbers. Add argument to targetm.hard_regno_call_part_clobbered call. (calls_have_same_clobbers_p): New function. (process_bb_lives): Add call_insn and last_call_insn variables. Pass call_insn to check_pseudos_live_through_calls. Modify if stmt to check targetm.return_call_with_max_clobbers. Update setting of flush variable. (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p to false. * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL. * regcprop.c (copyprop_hardreg_forward_1): Add argument to targetm.hard_regno_call_part_clobbered call. * reginfo.c (choose_hard_reg_mode): Ditto. * regrename.c (check_new_reg_p): Ditto. * reload.c (find_equiv_reg): Ditto. * reload1.c (emit_reload_insns): Ditto. * sched-deps.c (deps_analyze_insn): Ditto. * sel-sched.c (init_regs_for_mode): Ditto. (mark_unavailable_hard_regs): Ditto. * targhooks.c (default_dwarf_frame_reg_mode): Ditto. * target.def (hard_regno_call_part_clobbered): Add insn argument. (return_call_with_max_clobbers): New target function. * doc/tm.texi: Regenerate. * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook. * hooks.c (hook_bool_uint_mode_false): Change to hook_bool_insn_uint_mode_false. * hooks.h (hook_bool_uint_mode_false): Ditto. 2019-01-11 Steve Ellcey * config/aarch64/aarch64.c (aarch64_simd_call_p): New function. (aarch64_remove_extra_call_preserved_regs): New function. (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro. * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook. * doc/tm.texi: Regenerate. * final.c (get_call_reg_set_usage): Call new hook. * target.def (remove_extra_call_preserved_regs): New hook. * targhooks.c (default_remove_extra_call_preserved_regs): New function. * targhooks.h (default_remove_extra_call_preserved_regs): New function. 2019-01-11 Jakub Jelinek PR bootstrap/88714 * passes.c (finish_optimization_passes): Call print_combine_total_stats inside of pass_combine_1 dump rather than pass_profile_1. 2019-01-11 Tom de Vries * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER) (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER) (PTX_NUM_PER_WORKER_BARRIERS): Define. (nvptx_apply_dim_limits): Prevent vector_length 64 and num_workers 16. 2019-01-11 Tom de Vries * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up. 2019-01-11 Jan Beulich * config/i386/i386.md (rex64suffix): Add L suffix for SI. * config/i386/sse.md (cvtusi232, sse2_cvtsi2sd): Add {l}. (sse2_cvtsi2sdq): Make q conditional upon AT&T syntax. 2019-01-10 Jakub Jelinek PR target/88785 * config/i386/sse.md (floatv2div2sf2): Turn into define_expand. (*floatv2div2sf2): New define_insn. (floatv2div2sf2_mask): Turn into define_expand. (*floatv2div2sf2_mask): New define_insn. (*floatv2div2sf2_mask_1): Replace subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with match_operands with "const0_operand" "C". 2019-01-10 Tamar Christina * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins... (aarch64_init_simd_builtins): ...Here 2019-01-10 Vladimir Makarov PR rtl-optimization/87305 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky_transforms): Check allocation for big endian pseudos used as paradoxical subregs and spill them if it is wrong. * lra-constraints.c (lra_constraints): Add a comment. 2019-01-10 Richard Biener PR tree-optimization/88792 * tree-ssa-pre.c (get_representative_for): Do not return a value-number here. 2019-01-10 Jakub Jelinek PR middle-end/84877 PR bootstrap/88450 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes. (assign_parm_setup_block): Do the argument slot realignment here instead. 2019-01-10 Stefan Agner PR target/88648 * config/arm/arm.c (arm_option_override_internal): Force opts->x_inline_asm_unified to true only if TARGET_THUMB2_P. 2019-01-10 Jakub Jelinek PR c/88568 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting DECL_EXTERNAL. 2019-01-10 Tamar Christina * config/arm/arm-builtins.c (enum arm_type_qualifiers): Add qualifier_lane_pair_index. (MAC_LANE_PAIR_QUALIFIERS): New. (arm_expand_builtin_args): Use it. (arm_expand_builtin_1): Likewise. * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New. * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New. * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX. * config/arm/arm_neon.h: (vcadd_rot90_f16): New. (vcaddq_rot90_f16): New. (vcadd_rot270_f16): New. (vcaddq_rot270_f16): New. (vcmla_f16): New. (vcmlaq_f16): New. (vcmla_lane_f16): New. (vcmla_laneq_f16): New. (vcmlaq_lane_f16): New. (vcmlaq_laneq_f16): New. (vcmla_rot90_f16): New. (vcmlaq_rot90_f16): New. (vcmla_rot90_lane_f16): New. (vcmla_rot90_laneq_f16): New. (vcmlaq_rot90_lane_f16): New. (vcmlaq_rot90_laneq_f16): New. (vcmla_rot180_f16): New. (vcmlaq_rot180_f16): New. (vcmla_rot180_lane_f16): New. (vcmla_rot180_laneq_f16): New. (vcmlaq_rot180_lane_f16): New. (vcmlaq_rot180_laneq_f16): New. (vcmla_rot270_f16): New. (vcmlaq_rot270_f16): New. (vcmla_rot270_lane_f16): New. (vcmla_rot270_laneq_f16): New. (vcmlaq_rot270_lane_f16): New. (vcmlaq_rot270_laneq_f16): New. (vcadd_rot90_f32): New. (vcaddq_rot90_f32): New. (vcadd_rot270_f32): New. (vcaddq_rot270_f32): New. (vcmla_f32): New. (vcmlaq_f32): New. (vcmla_lane_f32): New. (vcmla_laneq_f32): New. (vcmlaq_lane_f32): New. (vcmlaq_laneq_f32): New. (vcmla_rot90_f32): New. (vcmlaq_rot90_f32): New. (vcmla_rot90_lane_f32): New. (vcmla_rot90_laneq_f32): New. (vcmlaq_rot90_lane_f32): New. (vcmlaq_rot90_laneq_f32): New. (vcmla_rot180_f32): New. (vcmlaq_rot180_f32): New. (vcmla_rot180_lane_f32): New. (vcmla_rot180_laneq_f32): New. (vcmlaq_rot180_lane_f32): New. (vcmlaq_rot180_laneq_f32): New. (vcmla_rot270_f32): New. (vcmlaq_rot270_f32): New. (vcmla_rot270_lane_f32): New. (vcmla_rot270_laneq_f32): New. (vcmlaq_rot270_lane_f32): New. (vcmlaq_rot270_laneq_f32): New. * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90, vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New. * config/arm/neon.md (neon_vcmla_lane, neon_vcmla_laneq, neon_vcmlaq_lane): New. * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New. * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New. (arm_option_reconfigure_globals): Use them. * config/arm/iterators.md (VDF, VQ_HSF): New. (VCADD, VCMLA): New. (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF. * config/arm/neon.md (neon_vcadd, neon_vcmla): New. * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270, UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New. 2019-01-10 Tamar Christina * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index. (emit-rtl.h): Include. (TYPES_QUADOP_LANE_PAIR): New. (aarch64_simd_expand_args): Use it. (aarch64_simd_expand_builtin): Likewise. (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New. (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE, AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data, aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New. (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins. (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF. * config/aarch64/iterators.md (FCMLA_maybe_lane): New. * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX. * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New. * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane, aarch64_fcmla_laneqv4hf, aarch64_fcmlaq_lane, aarch64_fcadd, aarch64_fcmla): New. * config/aarch64/arm_neon.h: (vcadd_rot90_f16): New. (vcaddq_rot90_f16): New. (vcadd_rot270_f16): New. (vcaddq_rot270_f16): New. (vcmla_f16): New. (vcmlaq_f16): New. (vcmla_lane_f16): New. (vcmla_laneq_f16): New. (vcmlaq_lane_f16): New. (vcmlaq_rot90_lane_f16): New. (vcmla_rot90_laneq_f16): New. (vcmla_rot90_lane_f16): New. (vcmlaq_rot90_f16): New. (vcmla_rot90_f16): New. (vcmlaq_laneq_f16): New. (vcmla_rot180_laneq_f16): New. (vcmla_rot180_lane_f16): New. (vcmlaq_rot180_f16): New. (vcmla_rot180_f16): New. (vcmlaq_rot90_laneq_f16): New. (vcmlaq_rot270_laneq_f16): New. (vcmlaq_rot270_lane_f16): New. (vcmla_rot270_laneq_f16): New. (vcmlaq_rot270_f16): New. (vcmla_rot270_f16): New. (vcmlaq_rot180_laneq_f16): New. (vcmlaq_rot180_lane_f16): New. (vcmla_rot270_lane_f16): New. (vcadd_rot90_f32): New. (vcaddq_rot90_f32): New. (vcaddq_rot90_f64): New. (vcadd_rot270_f32): New. (vcaddq_rot270_f32): New. (vcaddq_rot270_f64): New. (vcmla_f32): New. (vcmlaq_f32): New. (vcmlaq_f64): New. (vcmla_lane_f32): New. (vcmla_laneq_f32): New. (vcmlaq_lane_f32): New. (vcmlaq_laneq_f32): New. (vcmla_rot90_f32): New. (vcmlaq_rot90_f32): New. (vcmlaq_rot90_f64): New. (vcmla_rot90_lane_f32): New. (vcmla_rot90_laneq_f32): New. (vcmlaq_rot90_lane_f32): New. (vcmlaq_rot90_laneq_f32): New. (vcmla_rot180_f32): New. (vcmlaq_rot180_f32): New. (vcmlaq_rot180_f64): New. (vcmla_rot180_lane_f32): New. (vcmla_rot180_laneq_f32): New. (vcmlaq_rot180_lane_f32): New. (vcmlaq_rot180_laneq_f32): New. (vcmla_rot270_f32): New. (vcmlaq_rot270_f32): New. (vcmlaq_rot270_f64): New. (vcmla_rot270_lane_f32): New. (vcmla_rot270_laneq_f32): New. (vcmlaq_rot270_lane_f32): New. (vcmlaq_rot270_laneq_f32): New. * config/aarch64/aarch64.h (TARGET_COMPLEX): New. * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270, UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New. (FCADD, FCMLA): New. (rot): New. * config/arm/types.md (neon_fcadd, neon_fcmla): New. 2019-01-09 Sandra Loosemore PR other/16615 * config/pa/pa.c: Change "can not" to "cannot". * gimple-ssa-evrp-analyze.c: Likewise. * ipa-icf.c: Likewise. * ipa-polymorphic-call.c: Likewise. * ipa-pure-const.c: Likewise. * lra-constraints.c: Likewise. * lra-remat.c: Likewise. * reload1.c: Likewise. * reorg.c: Likewise. * tree-ssa-uninit.c: Likewise. 2019-01-09 Sandra Loosemore PR other/16615 * Makefile.in: Mechanically replace "can not" with "cannot". * alias.c: Likewise. * builtins.c: Likewise. * calls.c: Likewise. * cgraph.c: Likewise. * cgraph.h: Likewise. * cgraphclones.c: Likewise. * cgraphunit.c: Likewise. * combine-stack-adj.c: Likewise. * combine.c: Likewise. * common/config/i386/i386-common.c: Likewise. * config/aarch64/aarch64.c: Likewise. * config/alpha/sync.md: Likewise. * config/arc/arc.c: Likewise. * config/arc/predicates.md: Likewise. * config/arm/arm-c.c: Likewise. * config/arm/arm.c: Likewise. * config/arm/arm.h: Likewise. * config/arm/arm.md: Likewise. * config/arm/cortex-r4f.md: Likewise. * config/csky/csky.c: Likewise. * config/csky/csky.h: Likewise. * config/darwin-f.c: Likewise. * config/epiphany/epiphany.md: Likewise. * config/i386/i386.c: Likewise. * config/i386/sol2.h: Likewise. * config/m68k/m68k.c: Likewise. * config/mcore/mcore.h: Likewise. * config/microblaze/microblaze.md: Likewise. * config/mips/20kc.md: Likewise. * config/mips/sb1.md: Likewise. * config/nds32/nds32.c: Likewise. * config/nds32/predicates.md: Likewise. * config/pa/pa.c: Likewise. * config/rs6000/e300c2c3.md: Likewise. * config/rs6000/rs6000.c: Likewise. * config/s390/s390.h: Likewise. * config/sh/sh.c: Likewise. * config/sh/sh.md: Likewise. * config/spu/vmx2spu.h: Likewise. * cprop.c: Likewise. * dbxout.c: Likewise. * df-scan.c: Likewise. * doc/cfg.texi: Likewise. * doc/extend.texi: Likewise. * doc/fragments.texi: Likewise. * doc/gty.texi: Likewise. * doc/invoke.texi: Likewise. * doc/lto.texi: Likewise. * doc/md.texi: Likewise. * doc/objc.texi: Likewise. * doc/rtl.texi: Likewise. * doc/tm.texi: Likewise. * dse.c: Likewise. * emit-rtl.c: Likewise. * emit-rtl.h: Likewise. * except.c: Likewise. * expmed.c: Likewise. * expr.c: Likewise. * fold-const.c: Likewise. * genautomata.c: Likewise. * gimple-fold.c: Likewise. * hard-reg-set.h: Likewise. * ifcvt.c: Likewise. * ipa-comdats.c: Likewise. * ipa-cp.c: Likewise. * ipa-devirt.c: Likewise. * ipa-fnsummary.c: Likewise. * ipa-icf.c: Likewise. * ipa-inline-transform.c: Likewise. * ipa-inline.c: Likewise. * ipa-polymorphic-call.c: Likewise. * ipa-profile.c: Likewise. * ipa-prop.c: Likewise. * ipa-pure-const.c: Likewise. * ipa-reference.c: Likewise. * ipa-split.c: Likewise. * ipa-visibility.c: Likewise. * ipa.c: Likewise. * ira-build.c: Likewise. * ira-color.c: Likewise. * ira-conflicts.c: Likewise. * ira-costs.c: Likewise. * ira-int.h: Likewise. * ira-lives.c: Likewise. * ira.c: Likewise. * ira.h: Likewise. * loop-invariant.c: Likewise. * loop-unroll.c: Likewise. * lower-subreg.c: Likewise. * lra-assigns.c: Likewise. * lra-constraints.c: Likewise. * lra-eliminations.c: Likewise. * lra-lives.c: Likewise. * lra-remat.c: Likewise. * lra-spills.c: Likewise. * lra.c: Likewise. * lto-cgraph.c: Likewise. * lto-streamer-out.c: Likewise. * postreload-gcse.c: Likewise. * predict.c: Likewise. * profile-count.h: Likewise. * profile.c: Likewise. * recog.c: Likewise. * ree.c: Likewise. * reload.c: Likewise. * reload1.c: Likewise. * reorg.c: Likewise. * resource.c: Likewise. * rtl.def: Likewise. * rtl.h: Likewise. * rtlanal.c: Likewise. * sched-deps.c: Likewise. * sched-ebb.c: Likewise. * sched-rgn.c: Likewise. * sel-sched-ir.c: Likewise. * sel-sched.c: Likewise. * shrink-wrap.c: Likewise. * simplify-rtx.c: Likewise. * symtab.c: Likewise. * target.def: Likewise. * toplev.c: Likewise. * tree-call-cdce.c: Likewise. * tree-cfg.c: Likewise. * tree-complex.c: Likewise. * tree-core.h: Likewise. * tree-eh.c: Likewise. * tree-inline.c: Likewise. * tree-loop-distribution.c: Likewise. * tree-nrv.c: Likewise. * tree-profile.c: Likewise. * tree-sra.c: Likewise. * tree-ssa-alias.c: Likewise. * tree-ssa-dce.c: Likewise. * tree-ssa-dom.c: Likewise. * tree-ssa-forwprop.c: Likewise. * tree-ssa-loop-im.c: Likewise. * tree-ssa-loop-ivcanon.c: Likewise. * tree-ssa-loop-ivopts.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-phionlycprop.c: Likewise. * tree-ssa-phiopt.c: Likewise. * tree-ssa-propagate.c: Likewise. * tree-ssa-threadedge.c: Likewise. * tree-ssa-threadupdate.c: Likewise. * tree-ssa-uninit.c: Likewise. * tree-ssanames.c: Likewise. * tree-streamer-out.c: Likewise. * tree.c: Likewise. * tree.h: Likewise. * vr-values.c: Likewise. 2019-01-09 Uroš Bizjak * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype. (ix86_split_xorsign): Ditto. * config/i386/i386.c (ix86_expand_xorsign): New function. (ix86_split_xorsign): Ditto. * config/i386/i386.md (UNSPEC_XORSIGN): New unspec. (xorsign3): New expander. (xorsign3_1): New insn_and_split pattern. * config/i386/sse.md (xorsign3): New expander. 2019-01-09 Eric Botcazou * config/sparc/sparc.md (*tablejump_sp32): Merge into... (*tablejump_sp64): Likewise. (*tablejump): ...this. (*call_address_sp32): Merge into... (*call_address_sp64): Likewise. (*call_address): ...this. (*call_symbolic_sp32): Merge into... (*call_symbolic_sp64): Likewise. (*call_symbolic): ...this. (call_value): Remove constraint and add predicate. (*call_value_address_sp32): Merge into... (*call_value_address_sp64): Likewise. (*call_value_address): ...this. (*call_value_symbolic_sp32): Merge into... (*call_value_symbolic_sp64): Likewise. (*call_value_symbolic): ...this. (*sibcall_symbolic_sp32): Merge into... (*sibcall_symbolic_sp64): Likewise. (*sibcall_symbolic): ...this. (sibcall_value): Remove constraint and add predicate. (*sibcall_value_symbolic_sp32): Merge into... (*sibcall_value_symbolic_sp64): Likewise. (*sibcall_value_symbolic): ...this. (window_save): Minor tweak. (*branch_sp32): Merge into... (*branch_sp64): Likewise. (*branch): ...this. 2019-01-09 Eric Botcazou James Clarke PR target/84010 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode consistently in TLS address generation and adjust code to the renaming of patterns. Mark calls to __tls_get_addr as const. * config/sparc/sparc.md (tgd_hi22): Turn into... (tgd_hi22): ...this and use Pmode throughout. (tgd_lo10): Turn into... (tgd_lo10): ...this and use Pmode throughout. (tgd_add32): Merge into... (tgd_add64): Likewise. (tgd_add): ...this and use Pmode throughout. (tldm_hi22): Turn into... (tldm_hi22): ...this and use Pmode throughout. (tldm_lo10): Turn into... (tldm_lo10): ...this and use Pmode throughout. (tldm_add32): Merge into... (tldm_add64): Likewise. (tldm_add): ...this and use Pmode throughout. (tldm_call32): Merge into... (tldm_call64): Likewise. (tldm_call): ...this and use Pmode throughout. (tldo_hix22): Turn into... (tldo_hix22): ...this and use Pmode throughout. (tldo_lox10): Turn into... (tldo_lox10): ...this and use Pmode throughout. (tldo_add32): Merge into... (tldo_add64): Likewise. (tldo_add): ...this and use Pmode throughout. (tie_hi22): Turn into... (tie_hi22): ...this and use Pmode throughout. (tie_lo10): Turn into... (tie_lo10): ...this and use Pmode throughout. (tie_ld64): Use DImode throughout. (tie_add32): Merge into... (tie_add64): Likewise. (tie_add): ...this and use Pmode throughout. (tle_hix22_sp32): Merge into... (tle_hix22_sp64): Likewise. (tle_hix22): ...this and use Pmode throughout. (tle_lox22_sp32): Merge into... (tle_lox22_sp64): Likewise. (tle_lox22): ...this and use Pmode throughout. (*tldo_ldub_sp32): Merge into... (*tldo_ldub_sp64): Likewise. (*tldo_ldub): ...this and use Pmode throughout. (*tldo_ldub1_sp32): Merge into... (*tldo_ldub1_sp64): Likewise. (*tldo_ldub1): ...this and use Pmode throughout. (*tldo_ldub2_sp32): Merge into... (*tldo_ldub2_sp64): Likewise. (*tldo_ldub2): ...this and use Pmode throughout. (*tldo_ldsb1_sp32): Merge into... (*tldo_ldsb1_sp64): Likewise. (*tldo_ldsb1): ...this and use Pmode throughout. (*tldo_ldsb2_sp32): Merge into... (*tldo_ldsb2_sp64): Likewise. (*tldo_ldsb2): ...this and use Pmode throughout. (*tldo_ldub3_sp64): Use DImode throughout. (*tldo_ldsb3_sp64): Likewise. (*tldo_lduh_sp32): Merge into... (*tldo_lduh_sp64): Likewise. (*tldo_lduh): ...this and use Pmode throughout. (*tldo_lduh1_sp32): Merge into... (*tldo_lduh1_sp64): Likewise. (*tldo_lduh1): ...this and use Pmode throughout. (*tldo_ldsh1_sp32): Merge into... (*tldo_ldsh1_sp64): Likewise. (*tldo_ldsh1): ...this and use Pmode throughout. (*tldo_lduh2_sp64): Use DImode throughout. (*tldo_ldsh2_sp64): Likewise. (*tldo_lduw_sp32): Merge into... (*tldo_lduw_sp64): Likewise. (*tldo_lduw): ...this and use Pmode throughout. (*tldo_lduw1_sp64): Use DImode throughout. (*tldo_ldsw1_sp64): Likewise. (*tldo_ldx_sp64): Likewise. (*tldo_stb_sp32): Merge into... (*tldo_stb_sp64): Likewise. (*tldo_stb): ...this and use Pmode throughout. (*tldo_sth_sp32): Merge into... (*tldo_sth_sp64): Likewise. (*tldo_sth): ...this and use Pmode throughout. (*tldo_stw_sp32): Merge into... (*tldo_stw_sp64): Likewise. (*tldo_stw): ...this and use Pmode throughout. (*tldo_stx_sp64): Use DImode throughout. 2018-01-09 Sudakshina Das * config/aarch64/aarch64.c (aarch64_override_options): Add case to check configure option to set BTI and Return Address Signing. * configure.ac: Add --enable-standard-branch-protection and --disable-standard-branch-protection. * configure: Regenerated. * doc/install.texi: Document the same. 2018-01-09 Sudakshina Das Ramana Radhakrishnan * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o. * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE. * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update if bti is enabled. * config/aarch64/aarch64-bti-insert.c: New file. * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti pass. * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the new bti pass. * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG, UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC. (bti_noarg, bti_j, bti_c, bti_jc): New define_insns. * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o. 2018-01-09 Sudakshina Das * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare. * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection): Disable bti for -mbranch-protection=none. (aarch64_handle_standard_branch_protection): Enable bti for -mbranch-protection=standard. (aarch64_handle_bti_protection): Enable bti for "bti" in the string to -mbranch-protection. (aarch64_bti_enabled): Check if bti is enabled. * config/aarch64/aarch64.opt: Declare target variable. * doc/invoke.texi: Add bti to the -mbranch-protection documentation. 2018-01-09 Sudakshina Das * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM. (aarch64_expand_epilogue): Likewise. (aarch64_output_mi_thunk): Likewise * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change TAILCALL_ADDR_REGS to x16 and x17. * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM. 2018-01-09 Sudakshina Das * config/aarch64/aarch64-option-extensions.def: Define AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres. * config/aarch64/aarch64.h (AARCH64_FL_RNG): New. (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New. (AARCH64_FL_PREDRES): New. (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and AARCH64_FL_PREDRES by default. * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres. 2018-01-09 Sudakshina Das * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for ARMv8.5-A. * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New. (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New. * doc/invoke.texi: Document ARMv8.5-A. 2019-01-09 Alejandro Martinez * config/aarch64/aarch64-sve.md (copysign3): New define_expand. (xorsign3): Likewise. 2019-01-09 Jelinek PR middle-end/88758 * tree.c (initializer_each_zero_or_onep) : Use vector_cst_elt instead of VECTOR_CST_ENCODED_ELT. PR rtl-optimization/88331 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if not currently_expanding_to_rtl. 2019-01-09 Eric Botcazou * doc/invoke.texi (-Os): Remove trailing spaces. (-finline-functions): Remove reference to -O2. 2019-01-08 Jakub Jelinek PR rtl-optimization/79593 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2. * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize UNSPEC_FUSION_GPR to its argument. Formatting fixes. 2019-01-08 Eric Botcazou PR bootstrap/88721 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING to -1 on entry. PR debug/88723 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked UNSPECs and UNSPEC_MOVE_GOTDATA specifically. 2019-01-08 H.J. Lu PR target/88717 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call ix86_avx_u128_mode_entry. 2019-01-08 Martin Liska PR tree-optimization/88753 * tree-switch-conversion.c (switch_conversion::build_one_array): Come up with local variable constructor. Convert first to type of constructor values. 2019-01-08 Richard Biener PR tree-optimization/86554 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim, rpo_avail): Move earlier. (visit_nary_op): When value-numbering to expressions with different overflow behavior make sure there's an available expression on the path. 2019-01-08 Sam Tebbs * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX, aarch64_parse_branch_protection, struct aarch64_branch_protect_type, aarch64_handle_no_branch_protection, aarch64_handle_standard_branch_protection, aarch64_validate_mbranch_protection, aarch64_handle_pac_ret_protection, aarch64_handle_attr_branch_protection, accepted_branch_protection_string, aarch64_pac_ret_subtypes, aarch64_branch_protect_types, aarch64_handle_pac_ret_leaf): Define. (aarch64_override_options_after_change_1, aarch64_override_options): Add check for accepted_branch_protection_string. (aarch64_option_save): Save accepted_branch_protection_string. (aarch64_option_restore): Save accepted_branch_protection_string. * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection. * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate msign-return-address. * doc/invoke.texi: Add mbranch-protection. 2019-01-08 Alan Modra PR target/88614 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value): Delete "unknownp" parameter. Adjust callers. Handle CONST_INT, PLUS, MINUS, and MULT. (attr_value_aligned): Renamed from or_attr_value. (min_attr_value): Return INT_MIN for unhandled rtl case.. (min_fn): ..and translate to INT_MAX here. (write_length_unit_log): Modify to cope without "unknown". (write_attr_value): Handle IF_THEN_ELSE. 2019-01-07 Richard Sandiford * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset optimization for masked stores. 2019-01-07 Richard Sandiford PR middle-end/88567 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the output vector directly to duplicate_and_interleave instead of going through a temporary. Postpone insertion of ctor_seq to the end of the loop. 2019-01-07 Richard Earnshaw PR target/86891 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter unsigned_p. Handle signed and unsigned overflow correction as required. * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update prototype. * config/aarch64/aarch64.md (addv4): Use aarch64_plus_operand for operand 2. (add3_compareV_imm): Make this callable for expanding. (subv4): Use register_operand for operand 1. Use aarch64_plus_operand for operand 2. (subv_insn): New insn pattern. (subv_imm): Likewise. (negv3): New expand pattern. (negv_insn): New insn pattern. (negv_cmp_only): Likewise. (cmpv_insn): Likewise. (subvti4): Use register_operand for operand 1. Update call to aarch64_expand_subvti. (usubvti4): Likewise. (negvti3): New expand pattern. (negdi_carryout): New insn pattern. (negvdi_carryinV): New insn pattern. (sub_compare1_imm): Delete named insn pattern, make anonymous version the named version. (peepholes to convert to sub_compare1_imm): Adjust order of operands. (usub3_carryinC, usub3_carryinC_z1): New insn patterns. (usub3_carryinC_z2, usub3_carryinC): New insn patterns. (sub3_carryinCV, sub3_carryinCV_z1_z2): Delete. (sub3_carryinCV_z1, sub3_carryinCV_z2): Delete. (sub3_carryinCV): Delete. (sub3_carryinV): New expand pattern. sub3_carryinV, sub3_carryinV_z2): New insn patterns. 2019-01-07 Richard Biener * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor of tree_operand_hash. 2019-01-07 Richard Sandiford PR tree-optimization/88598 * tree.h (single_nonzero_element): Declare. * tree.c (single_nonzero_element): New function. * match.pd: Fold certain reductions of X & CST to X[I] & CST[I] if I is the only nonzero element of CST. 2019-01-07 Richard Sandiford PR tree-optimization/88598 * tree.h (initializer_each_zero_or_onep): Declare. * tree.c (initializer_each_zero_or_onep): New function. (signed_or_unsigned_type_for): Handle float types too. (unsigned_type_for, signed_type_for): Update comments accordingly. * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to x & { 0 or -1, 0 or -1, ... }. 2019-01-07 Jonathan Wakely * doc/install.texi: Replace references to x86_64-unknown-linux-gnu with x86_64-pc-linux-gnu. 2019-01-07 Tom de Vries PR target/85486 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New function. (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable routines. 2019-01-07 Jakub Jelinek * config/i386/sse.md (vec_extract): Use V_256_512 iterator instead of V_512 and TARGET_AVX instead of TARGET_AVX512F as condition. PR debug/88723 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to const_not_ok_for_debug_p target hook. (mem_loc_descriptor) : Only call const_ok_for_output_1 on UNSPEC and subexpressions thereof if all subexpressions of the UNSPEC are CONSTANT_P. PR tree-optimization/88676 * tree-ssa-phiopt.c (two_value_replacement): New function. (tree_ssa_phiopt_worker): Call it. PR sanitizer/88619 * cfgexpand.c (expand_stack_vars): Only align prev_offset to ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb. PR c++/85052 * tree-vect-generic.c: Include insn-config.h and recog.h. (expand_vector_piecewise): Add defaulted ret_type argument, if non-NULL, use that in preference to type for the result type. (expand_vector_parallel): Formatting fix. (do_vec_conversion, do_vec_narrowing_conversion, expand_vector_conversion): New functions. (expand_vector_operations_1): Call expand_vector_conversion for VEC_CONVERT ifn calls. * internal-fn.def (VEC_CONVERT): New internal function. * internal-fn.c (expand_VEC_CONVERT): New function. * fold-const-call.c (fold_const_vec_convert): New function. (fold_const_call): Use it for CFN_VEC_CONVERT. * doc/extend.texi (__builtin_convertvector): Document. 2019-01-07 Tom de Vries * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare. * config/nvptx/nvptx.c (vector_red_size, vector_red_align, vector_red_partition, vector_red_sym): New global variables. (nvptx_option_override): Initialize vector_red_sym. (nvptx_declare_function_name): Restore red_partition register. (nvptx_file_end): Emit code to declare the vector reduction variables. (nvptx_output_red_partition): New function. (nvptx_expand_shared_addr): Add vector argument. Use it to handle large vector reductions. (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR. (nvptx_init_builtins): Add VECTOR_ADDR. (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr. Handle nvptx_expand_shared_addr. (nvptx_get_shared_red_addr): Add vector argument and handle large vectors. (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle large vectors. (nvptx_goacc_reduction_init): Likewise. (nvptx_goacc_reduction_fini): Likewise. (nvptx_goacc_reduction_teardown): Likewise. (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup, init,fini,teardown}. (nvptx_init_axis_predicate): Initialize vector_red_partition. (nvptx_set_current_function): Init vector_red_partition. * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv. (nvptx_red_partition): New insn. * config/nvptx/nvptx.h (struct machine_function): Add red_partition. 2019-01-07 Tom de Vries PR target/85381 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for empty loops. 2019-01-07 Tom de Vries * config/nvptx/nvptx.c (oacc_bcast_partition): Declare. (nvptx_option_override): Init oacc_bcast_partition. (nvptx_init_oacc_workers): New function. (nvptx_declare_function_name): Call nvptx_init_oacc_workers. (nvptx_needs_shared_bcast): New function. (nvptx_find_par): Generalize to enable vectors to use shared-memory to propagate state. (nvptx_shared_propagate): Initialize vector bcast partition and synchronization state. (nvptx_single): Generalize to enable vectors to use shared-memory to propagate state. (nvptx_process_pars): Likewise. (nvptx_set_current_function): Initialize oacc_broadcast_partition. * config/nvptx/nvptx.h (struct machine_function): Add bcast_partition and sync_bar members. 2019-01-07 Tom de Vries * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p) (nvptx_apply_dim_limits): New function. (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than PTX_WARP_SIZE. 2019-01-07 Tom de Vries * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to as late as possible. 2019-01-07 Tom de Vries * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove. (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define. (nvptx_goacc_validate_dims_1, nvptx_dim_limit) (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH. 2019-01-07 Tom de Vries * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts. 2019-01-07 Tom de Vries * omp-offload.c (oacc_get_min_dim): New function. * omp-offload.h (oacc_get_min_dim): Declare. 2018-12-26 Mateusz B PR target/88521 * config/i386/i386.c (function_value_ms_64): Return small sturct in AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes. 2019-01-05 Jan Hubicka PR tree-opt/86020 Revert: 2017-05-22 Jan Hubicka * ipa-inline.c (edge_badness): Use inlined_time instead of inline_summaries->get. 2019-01-05 Jan Hubicka * opts.c (enable_fdo_optimizations): Enable version-loops-for-strides, loop-interchange, unrol-and-jam and tree-loop-distribution. * invoke.texi: Document newly enabled options. 2019-01-05 Jan Hubicka * doc/invoke.texi (max-inline-insns-small): New parameters. * ipa-inline.c (want_early_inline_function_p): simplify. (want_inline_small_function_p): Fix pasto from previous patch; use max-inline-insns-small bound. * params.def (max-inline-insns-small): New param. * ipa-fnsummary.c (analyze_function_body): Initialize time/size variables correctly. 2019-01-05 Jan Hubicka * doc/invoke.texi: Document max-inline-insns-size, uninlined-function-insns, uninlined-function-time, uninlined-thunk-insns and uninlined-thunk-time. * params.def: Add max-inline-insns-size, uninlined-function-insns, uninlined-function-time, uninlined-thunk-insns and uninlined-thunk-time. * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use new parameters. * ipa-inline.c (can_inline_edge_by_limits_p, want_inline_small_function_p): Use new parameters. 2019-01-05 Jan Hubicka * ipa-fnsummary.c (analyze_function_body): Fix accounting of time. 2019-01-05 Jakub Jelinek PR middle-end/82564 PR target/88620 * expr.c (expand_assignment): For calls returning VLA structures if to_rtx is not a MEM, force it into a stack temporary. PR debug/88635 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument. Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of both operands. (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the subrtxes are CONSTANT_P. * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert 2018-11-09 changes. 2019-01-04 Jan Hubicka * params.def (hot-bb-count-ws-permille): Set to 990. 2019-01-04 Martin Sebor PR c/88546 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute leaf. 2019-01-04 Martin Sebor PR c/88363 * doc/extend.texi (attribute alloc_align, alloc_size): Update. 2019-01-04 Jakub Jelinek * gdbinit.in: Turn off pagination for the skip commands, restore it to previous state afterwards. 2019-01-04 Jakub Jelinek PR target/88594 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead of GET_MODE (opN) as modes of the libcall arguments. 2019-01-04 Jan Beulich * config/i386/sse.md (_cmp3, _cmp3, _ucmp3, _ucmp3, avx512f_vmcmp3, avx512f_vmcmp3_mask, avx512f_maskcmp3, _cvt2mask, _cvt2mask, *_cvtmask2, *_cvtmask2, _eq3_1, _eq3_1, _gt3, _gt3, _testm3, _testnm3, *_testm3_zext, *_testm3_zext_mask, *_testnm3_zext, *_testnm3_zext_mask, avx512cd_maskb_vec_dup, avx512cd_maskw_vec_dup, avx512dq_fpclass, avx512dq_vmfpclass, avx512vl_vpshufbitqmb): Use =k instead of =Yk. 2019-01-03 Martin Sebor PR tree-optimization/88659 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set. 2019-01-03 Aaron Sawdey * config/rs6000/rs6000-string.c (expand_block_move): Don't use unaligned vsx and avoid lxvd2x/stxvd2x. (gen_lvx_v4si_move): New function. 2019-01-03 Tom de Vries * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define. (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New function. * config/nvptx/nvptx.h (struct machine_function): Add axis_dims. 2019-01-03 Tom de Vries * config/nvptx/nvptx.c (struct offload_attrs): New. (populate_offload_attrs): New function. Factor mask extraction out of nvptx_reorg. Add extraction of dimensions. (nvptx_reorg): Use populate_offload_attrs. 2019-01-03 Tom de Vries * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out cases for oacc_min_dims_p and routine_p. Add asserts for oacc_default_dims_p and offload_region_p. 2019-01-03 Tom de Vries * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function, factored out of ... (nvptx_goacc_validate_dims): ... here. 2019-01-03 Jan Hubicka PR tree-optimization/85574 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused structure. (struct ssa_equip_hash_traits): Declare. (val_ssa_equiv): Use custom hash traits using operand_equal_p. 2019-01-03 Jakub Jelinek PR debug/88644 * dwarf2out.c (modified_type_die): If type is equal to sizetype, change it to qualified_type. 2019-01-03 Jan Hubicka * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ... (ipa_merge_profiles): ... here; do not ICE on thunks and aliases. 2019-01-02 Martin Sebor Jeff Law * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2. (get_range_strlen_tree): Update appropriately. (get_range_strlen) * gimple-fold.h (get_range_strlen): Drop unused last argument. * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range rather than set_range_info. * tree-ssa-strlen.c (set_strlen_range): Extracted from maybe_set_strlen_range. Handle potentially boundary crossing cases more conservatively. (maybe_set_strlen_range): Parts refactored into set_strlen_range. Call set_strlen_range. * tree-ssa-strlen.h (set_strlen_range): Add prototype. PR middle-end/88663 * gimple-fold.c (get_range_strlen): Update prototype to no longer need the flexp argument. (get_range_strlen_tree): Drop flexp argument. Drop flexp argument from calls to get_range_strlen. Update comments. Just update VAL for an unterminated const char array and let the reset of the code handle it normally. No longer try to set *flexp. Adjust return value. (get_range_strlen): Update for the new get_range_strlen API. (get_maxval_strlen): Similarly. (gimple_fold_builtin_strlen): Handle update meaning of return value from get_range_strlen. * gimple-ssa-sprintf.c (get_string_length): Update for the new get_range_strlen API. 2019-01-02 Jan Hubicka PR lto/88130 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return false at WPA time when body was removed. 2019-01-02 Martin Liska PR tree-optimization/88650 * predict.c (set_even_probabilities): Calculate probability remainer only when really used. 2019-01-02 Richard Biener PR middle-end/88651 * tree-data-ref.c (analyze_subscript_affine_affine): Use widest_ints when mangling max_stmt_execution results. 2019-01-02 Richard Biener PR tree-optimization/88621 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid bitfields when canoncalizing. 2019-01-02 Richard Biener PR target/87545 * config/i386/x86-tune-costs.h (intel_cost): Adjust cost of cheap SSE instruction. 2019-01-02 Richard Biener PR ipa/85574 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare. * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New function. (sem_item_optimizer::do_congruence_step_f): Sort the congruence set after UIDs before splitting them. 2019-01-01 Martin Sebor Jeff Law * gimple-fold.c (get_range_strlen_tree): Record if the computed length is optimistic. If it is, then arrange to compute the conservative length as well. * gimple-fold.h (get_range_strlen): Update prototype. * builtins.c (check_access): Update call to get_range_strlen to use c_strlen_data pointer. Change various variable accesses to instead pull data from the c_strlen_data structure. (check_strncat_sizes, expand_builtin_strncat): Likewise. * calls.c (maybe_warn_nonstring_arg): Likewise. * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset minimum length if maximum lengh is unknown. * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code that used c_strlen, it's no longer needed. Restructure slightly. (format_string): Set unlikely range appropriately. * gimple-fold.c (get_range_strlen): Update comments. Fix minor formatting issues. (get_range_strlen): Accept c_strlen_data pointer for external call sites as well. Pass through to call to internal get_range_strlen. Adjust minlen, maxlen and maxbound as needed. (get_maxval_strlen): Update comments. (gimple_fold_builtin_strlen): Update call to get_range_strlen to use c_strlen_data pointer. Change variable accesses to instead use c_strlen_data data members. * gimple-fold.c (get_range_strlen): Update prototype. (get_range_strlen_tree): Update prototype. Drop minlen/maxlen local variables. Use pdata to return information to caller. Update calls to get_range_strlen. Update pdata->maxbound. (get_range_strlen -- static version): Similarly. (get_range_strlen -- extern version): Update for internal get_range_strlen API change. Convert to external data format. (get_maxval_strlen): Similarly. 2019-01-01 Jan Hubicka * coverage.c (get_coverage_counts): Use current_function_decl. * profile.c (read_thunk_profile): New function. (branch_prob): Add THUNK parameter. * tree-profile.c (tree_profiling): Handle thunks. * value-prof.c (init_node_map): Handle thunks. * value-prof.h (branch_prob): Upate prototype. (read_thunk_profile): Declare. 2019-01-01 Jakub Jelinek Update copyright years. * gcc.c (process_command): Update copyright notice dates. * gcov-dump.c (print_version): Ditto. * gcov.c (print_version): Ditto. * gcov-tool.c (print_version): Ditto. * gengtype.c (create_file): Ditto. * doc/cpp.texi: Bump @copying's copyright year. * doc/cppinternals.texi: Ditto. * doc/gcc.texi: Ditto. * doc/gccint.texi: Ditto. * doc/gcov.texi: Ditto. * doc/install.texi: Ditto. * doc/invoke.texi: Ditto. Copyright (C) 2019 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.