| 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com> |
| |
| PR rtl-optimization/88308 |
| * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts |
| on copied instruction. |
| |
| 2019-02-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * 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 <rguenther@suse.de> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| 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 <jakub@redhat.com> |
| |
| 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 <ubizjak@gmail.com> |
| |
| * 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 <jakub@redhat.com> |
| |
| PR rtl-optimization/89354 |
| * combine.c (make_extraction): Punt if extraction_mode is narrower |
| than len bits. |
| |
| 2019-02-14 Maya Rashish <coypu@sdf.org> |
| |
| * 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 <sellcey@marvell.com> |
| |
| * 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 <tamar.christina@arm.com> |
| |
| PR target/88850 |
| * config/arm/iterators.md (ANY64): Add V4HF. |
| |
| 2019-02-14 Martin Liska <mliska@suse.cz> |
| |
| PR rtl-optimization/89242 |
| * dce.c (delete_unmarked_insns): Call free_dominance_info we |
| process a transformation. |
| |
| 2019-02-14 Jakub Jelinek <jakub@redhat.com> |
| |
| 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 <iant@golang.org> |
| |
| * optc-save-gen.awk: Set var_opt_hash for initial optimizations |
| and set current index for other optimizations. |
| |
| 2019-02-13 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use |
| nonimmediate_operand as operand 2 predicate. |
| (vec_set<VF2_512_256:mode>_0): Ditto. |
| (vec_set<VI8_AVX_AVX512F:mode>_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 <wdijkstr@arm.com> |
| |
| 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 <tamar.christina@arm.com> |
| |
| PR target/88847 |
| * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>): |
| Expose as @aarch64_pred_mov. |
| * config/aarch64/aarch64.c (aarch64_classify_address): |
| Use expand_insn which legitimizes operands. |
| |
| 2019-02-13 Martin Liska <mliska@suse.cz> |
| |
| * 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 <jakub@redhat.com> |
| |
| 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 <mliska@suse.cz> |
| |
| 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 <luoxhu@linux.vnet.ibm.com> |
| |
| * 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_<mode>, crypto_<CR_insn>_<mode>): 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) |
| <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE, |
| CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE, |
| CRYPTO_BUILTIN_VNCIPHERLAST_BE>: 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 <pthaugen@us.ibm.com> |
| |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate |
| -maltivec. Delete -maltivec=be and -maltivec=le documentation. |
| |
| 2019-02-12 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89229 |
| * config/i386/i386.md (*movoi_internal_avx): Revert revision |
| 268678 and revision 268657. |
| (*movti_internal): Likewise. |
| |
| 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com> |
| |
| 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 <mliska@suse.cz> |
| |
| 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 <ebotcazou@adacore.com> |
| |
| * 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 <hubicka@ucw.cz> |
| |
| 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 <rguenther@suse.de> |
| |
| PR tree-optimization/89253 |
| * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can |
| duplicate the loop. |
| |
| 2019-02-11 David Malcolm <dmalcolm@redhat.com> |
| |
| PR lto/88147 |
| * input.c (selftest::test_line_offset_overflow): New selftest. |
| (selftest::input_c_tests): Call it. |
| |
| 2019-02-11 Martin Sebor <msebor@redhat.com> |
| |
| 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 <msebor@redhat.com> |
| |
| 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 <wschmidt@linux.ibm.com> |
| |
| * 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 <amodra@gmail.com> |
| |
| * 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_<mode>), |
| (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>), |
| (pltseq_mtctr_<mode>): Likewise. |
| |
| 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with |
| Solaris ld. |
| * configure: Regenerate. |
| |
| 2019-02-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/88714 |
| * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint |
| instead of r. |
| |
| 2019-02-11 Hans-Peter Nilsson <hp@axis.com> |
| |
| * 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 <mliska@suse.cz> |
| |
| 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 <jasonwucj@gmail.com> |
| |
| * 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 <hp@axis.com> |
| |
| * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name |
| typo. |
| |
| 2019-02-10 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ |
| in comments |
| |
| 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly. |
| |
| 2019-02-10 Jakub Jelinek <jakub@redhat.com> |
| |
| 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 <hubicka@ucw.cz> |
| |
| PR lto/89272 |
| * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for |
| polymorphic types. |
| |
| 2019-02-10 Monk Chiang <sh.chiang04@gmail.com> |
| |
| * config/nds32/nds32.md (trap): New pattern. |
| |
| 2019-02-10 Monk Chiang <sh.chiang04@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register |
| dwarf span. |
| |
| 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support |
| to split POST_INC. |
| |
| 2019-02-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-visibility.c (localize_node): Also do not localize |
| LDPR_PREVAILING_DEF_IRONLY_EXP. |
| |
| 2019-02-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| 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 <hubicka@ucw.cz> |
| |
| 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 <acsawdey@linux.ibm.com> |
| |
| * 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 <jakub@redhat.com> |
| |
| 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 <amodra@gmail.com> |
| |
| 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 <vmakarov@redhat.com> |
| |
| 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 <rdapp@linux.ibm.com> |
| |
| * config/s390/vector.md: Implement vector copysign. |
| |
| 2019-02-08 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * expr.c (expand_constructor): Correct indentations. |
| |
| 2019-02-08 Richard Biener <rguenther@suse.de> |
| |
| 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 <iii@linux.ibm.com> |
| |
| * config/s390/constraints.md (jdd): New constraint. |
| |
| 2019-02-08 H.J. Lu <hongjiu.lu@intel.com> |
| |
| 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 <jakub@redhat.com> |
| |
| 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 <rguenther@suse.de> |
| |
| 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 <jakub@redhat.com> |
| |
| * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of |
| cfun everywhere. |
| |
| 2019-02-07 David Malcolm <dmalcolm@redhat.com> |
| |
| 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 <kyrylo.tkachov@arm.com> |
| |
| * 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<mode>_3): Rename to... |
| (*aarch64_<su>abd<mode>_3): ... Change RTL representation to |
| MINUS (MAX MIN). |
| |
| 2019-02-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| 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 <krebbel@linux.ibm.com> |
| |
| * 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 <matthew.malcomson@arm.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| 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 <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data): |
| Make it a C initializer. |
| |
| 2019-02-07 Tamar Christina <tamar.christina@arm.com> |
| |
| PR/target 88850 |
| * config/arm/neon.md (*neon_mov<mode>): Add r -> r case. |
| |
| 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/neon.md (neon_<sup>dot<vsi2qi>): |
| Use neon_dot<q> for type. |
| (neon_<sup>dot_lane<vsi2qi>): Likewise. |
| |
| 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): |
| Use neon_dot<q> for type. |
| (aarch64_<sur>dot_lane<vsi2qi>): Likewise. |
| (aarch64_<sur>dot_laneq<vsi2qi>): Likewise. |
| |
| 2019-02-06 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/89225 |
| * lra-constaints.c (simplify_operand_subreg): Add subreg mode |
| sizes check. |
| |
| 2019-02-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * 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 <rguenther@suse.de> |
| |
| 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 <jakub@redhat.com> |
| |
| 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 <krebbel@linux.ibm.com> |
| |
| PR target/88856 |
| * config/s390/s390.md: Remove load and test FP splitter. |
| |
| 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com> |
| |
| 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 <acsawdey@linux.ibm.com> |
| |
| PR target/89112 |
| * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label |
| for the long branch case. |
| |
| 2019-02-05 Jakub Jelinek <jakub@redhat.com> |
| |
| 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 <mliska@suse.cz> |
| |
| 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 <jakub@redhat.com> |
| |
| 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 <rguenther@suse.de> |
| |
| 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 <amonakov@ispras.ru> |
| |
| PR c/88698 |
| * doc/extend.texi (Vector Extensions): Add an example of using vector |
| types together with x86 intrinsics. |
| |
| 2019-02-04 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase |
| str[] size to 160, and comment. |
| |
| 2019-02-04 Alan Modra <amodra@gmail.com> |
| |
| * 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_<mode>), |
| (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>), |
| (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate. |
| |
| 2019-02-04 Martin Liska <mliska@suse.cz> |
| |
| 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 <ebotcazou@adacore.com> |
| |
| * 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 <kito.cheng@gmail.com> |
| |
| * 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 <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model |
| into consideration. |
| |
| 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * 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 <ubizjak@gmail.com> |
| |
| PR target/89071 |
| * config/i386/i386.md (*sqrt<mode>2_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<mode<2): Ditto. |
| |
| 2019-02-03 Richard Biener <rguenther@suse.de> |
| |
| PR debug/87295 |
| * dwarf2out.c (copy_ancestor_tree): Register non-stubs as |
| orig. |
| |
| 2019-02-02 Jakub Jelinek <jakub@redhat.com> |
| |
| 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 <segher@kernel.crashing.org> |
| |
| * combine.c (try_combine): Do not print "Can't combine" messages unless |
| printing failed combination attempts. |
| |
| 2019-02-01 Martin Jambor <mjambor@suse.cz> |
| |
| 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 <mjambor@suse.cz> |
| |
| * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two |
| missed optimization dump with dump_enabled_p. |
| |
| 2019-02-01 Richard Biener <rguenther@suse.de> |
| |
| 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 <hubicka@ucw.cz> |
| |
| * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200. |
| |
| 2019-02-01 Jakub Jelinek <jakub@redhat.com> |
| |
| 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 <rguenth@suse.de> |
| |
| PR rtl-optimization/88593 |
| * mode-switching.c (optimize_mode_switching): Free dominators before |
| calling cleanup_cfg. |
| |
| 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/88932 |
| * tree-predcom.c (try_combine_chains): Get loop bbs in dom order. |
| |
| 2019-01-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/89137 |
| * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid |
| bogus clang warning. |
| |
| 2019-01-31 Uroš Bizjak <ubizjak@gmail.com> |
| |
| 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_round<mode>2): Ditto. |
| |
| 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| 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 <rguenther@suse.de> |
| |
| PR tree-optimization/89135 |
| * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks |
| with abnormal preds. |
| |
| 2019-01-31 Jakub Jelinek <jakub@redhat.com> |
| |
| 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 <rguenther@suse.de> |
| |
| PR rtl-optimization/89115 |
| * lra.c (lra_rtx_hash): Properly hash CONST_INT values. |
| |
| 2019-01-30 Martin Sebor <msebor@redhat.com> |
| |
| PR other/89106 |
| * doc/extend.texi (cast to a union): Correct and expand. |
| |
| 2019-01-30 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/87246 |
| * lra-constraints.c (simplify_operand_subreg): Reload memory |
| in subreg if the address became invalid. |
| |
| 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| PR target/87064 |
| * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar): |
| Disable for little-endian. |
| |
| 2019-01-30 Richard Biener <rguenther@suse.de> |
| |
| 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 <kelvin@gcc.gnu.org> |
| |
| * 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 <thomas@codesourcery.com> |
| |
| * doc/invoke.texi (C Language Options): List "-fopenacc-dim". |
| |
| 2019-01-30 Richard Biener <rguenther@suse.de> |
| |
| 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 <jakub@redhat.com> |
| |
| 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 <drepper@redhat.com> |
| |
| * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears |
| after '='. |
| |
| 2019-01-29 Martin Sebor <msebor@redhat.com> |
| |
| PR c/88956 |
| * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays. |
| |
| 2019-01-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/66676 |
| PR ipa/89104 |
| * omp-simd-clone.c (simd_clone_clauses_extract) |
| <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL |
| OMP_CLAUSE_ALIGNED_ALIGNMENT. |
| |
| 2019-01-29 Vineet Gupta <vgupta@synopsys.com> |
| |
| * config.gcc: Force .init_array for ARC. |
| |
| 2019-01-29 Richard Biener <rguenther@suse.de> |
| |
| 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 <jakub@redhat.com> |
| |
| 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 <bernd.edlinger@hotmail.de> |
| |
| * 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 <jakub@redhat.com> |
| |
| 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 <rguenther@suse.de> |
| |
| PR debug/89076 |
| * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX |
| support removal. |
| |
| 2019-01-28 Richard Biener <rguenther@suse.de> |
| |
| 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 <jakub@redhat.com> |
| |
| PR target/87214 |
| * config/i386/sse.md |
| (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>, |
| avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the |
| first constants in pairs are multiples of 2. Formatting fixes. |
| (avx512vl_shuf_<shuffletype>32x4_1<mask_name>, |
| avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the |
| first constants in each quadruple are multiples of 4. Formatting fixes. |
| |
| 2019-01-26 Martin Jambor <mjambor@suse.cz> |
| |
| 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 <vmakarov@redhat.com> |
| |
| 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 <rearnsha@arm.com> |
| |
| 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 <richard.sandiford@arm.com> |
| |
| 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 <christophe.lyon@linaro.org> |
| |
| * doc/sourcebuild.texi (Environment attributes): Add fenv and |
| fenv_exceptions description. |
| |
| 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR rtl-optimization/87763 |
| * config/aarch64/aarch64.c (aarch64_select_cc_mode): |
| Allow SUBREG when matching CC_NZmode compare. |
| |
| 2019-01-25 Richard Biener <rguenther@suse.de> |
| |
| 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 <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*pred_mov<mode>) |
| (pred_mov<mode>): Handle all-register forms using both a new |
| alternative and a split. |
| |
| 2019-01-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/86865 |
| * graphite-scop-detection.c (scop_detection::can_represent_loop): |
| Reject non-do-while loops. |
| |
| 2019-01-24 Peter Bergner <bergner@linux.ibm.com> |
| |
| * 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, mod<mode>3 |
| and cbranch<mode>4): 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_<mode>, |
| *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 <ubizjak@gmail.com> |
| |
| 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 <jakub@redhat.com> |
| |
| 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) <case GIMPLE_OMP_TEAMS>: 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 <rearnsha@arm.com> |
| |
| 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 <rguenther@suse.de> |
| |
| 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 <mliska@suse.cz> |
| |
| 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 <luoxhu@linux.vnet.ibm.com> |
| |
| * 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 <bin.cheng@arm.com> |
| Steve Ellcey <sellcey@marvell.com> |
| |
| 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 <ubizjak@gmail.com> |
| |
| 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 <dmalcolm@redhat.com> |
| |
| 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 <jakub@redhat.com> |
| |
| PR c/44715 |
| * doc/extend.texi: Document break and continue behavior in |
| statement expressions. |
| |
| 2019-01-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89008 |
| * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do |
| not leave another stray operand. |
| |
| 2019-01-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * BASE-VER: Bump to 9.0.1. |
| |
| 2019-01-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * 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 <vgupta@synopsys.com> |
| |
| * config/arc/atomic.md: Add operand to DMB instruction. |
| |
| 2019-01-23 Jakub Jelinek <jakub@redhat.com> |
| |
| 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 <segher@kernel.crashing.org> |
| |
| * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3. |
| |
| 2019-01-22 Jakub Jelinek <jakub@redhat.com> |
| |
| 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_<VEC_reduc_name>_v2df_scalar): |
| Disable for little endian. |
| |
| 2019-01-22 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/88469 |
| * config/arm/arm.c (arm_needs_double_word_align): Check |
| DECL_BIT_FIELD_TYPE. |
| |
| 2019-01-22 Hongtao Liu <hongtao.liu@intel.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| |
| 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 <hongjiu.lu@intel.com> |
| |
| PR target/88954 |
| * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check |
| noplt attribute. |
| |
| 2019-01-22 Richard Earnshaw <rearnsha@arm.com> |
| |
| 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 <rguenther@suse.de> |
| |
| PR tree-optimization/88862 |
| * graphite-scop-detection.c |
| (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR. |
| |
| 2019-01-22 Andrew Stubbs <ams@codesourcery.com> |
| |
| * 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 <ebotcazou@adacore.com> |
| |
| * 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 <jakub@redhat.com> |
| |
| 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 <rguenther@suse.de> |
| |
| * 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 <amodra@gmail.com> |
| |
| 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 <ubizjak@gmail.com> |
| |
| 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 <michael.ploujnikov@oracle.com> |
| |
| * 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 <bernd.edlinger@hotmail.de> |
| |
| 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 <rguenther@suse.de> |
| |
| 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 <hongjiu.lu@intel.com> |
| |
| 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" <rdseedintrin.h>, |
| <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>, |
| <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>, |
| <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>, |
| <wbnoinvdintrin.h> and <pkuintrin.h> to ... |
| * config/i386/immintrin.h: Here. |
| |
| 2019-01-20 Martin Jambor <mjambor@suse.cz> |
| |
| 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 <jakub@redhat.com> |
| |
| * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move |
| outside of #if CHECKING_P code. |
| |
| 2019-01-19 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * 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 <segher@kernel.crashing.org> |
| |
| PR target/88892 |
| * config/rs6000/rs6000.md (*movsi_from_df): Allow only register |
| operands. |
| |
| 2019-01-18 Richard Biener <rguenther@suse.de> |
| |
| 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 <rearnsha@arm.com> |
| |
| 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 <mliska@suse.cz> |
| |
| * 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 <ramana.radhakrishnan@arm.com> |
| |
| * 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<mode>): 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 <jakub@redhat.com> |
| |
| 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 <christophe.lyon@linaro.org> |
| |
| PR target/85596 |
| * doc/install.texi (with-multilib-list): Document for aarch64. |
| |
| 2019-01-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88734 |
| * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace |
| (("..."))) with ("..."). |
| |
| 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * doc/extend.texi (Built-in Functions for Memory Model Aware |
| Atomic Operations): Document atomic fetch and nand. |
| |
| 2019-01-18 Martin Liska <mliska@suse.cz> |
| Richard Biener <rguenther@suse.de> |
| |
| 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 <jakub@redhat.com> |
| |
| 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 <msebor@redhat.com> |
| |
| 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 <sellcey@cavium.com> |
| |
| * 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 <msebor@redhat.com> |
| |
| 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 <ams@codesourcery.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Julian Brown <julian@codesourcery.com> |
| Tom de Vries <tom@codesourcery.com> |
| |
| * doc/sourcebuild.texi: Document dg-add-options sqrt_insn. |
| |
| 2019-01-17 Andrew Stubbs <ams@codesourcery.com> |
| |
| * doc/sourcebuild.texi: Document dg-require-effective-target |
| llvm_binutils and offload_gcn. |
| |
| 2019-01-17 Andrew Stubbs <ams@codesourcery.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Julian Brown <julian@codesourcery.com> |
| Tom de Vries <tom@codesourcery.com> |
| |
| * doc/sourcebuild.texi: Document dg-required-effective-target |
| exceptions. |
| |
| 2019-01-17 Andrew Stubbs <ams@codesourcery.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Julian Brown <julian@codesourcery.com> |
| Tom de Vries <tom@codesourcery.com> |
| Jan Hubicka <hubicka@ucw.cz> |
| Martin Jambor <mjambor@suse.cz> |
| |
| * config.gcc: Add amdgcn*-*-amdhsa configuration. |
| * configure.ac: Check for dlopen. |
| * configure: Regenerate. |
| |
| 2019-01-17 Andrew Stubbs <ams@codesourcery.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Julian Brown <julian@codesourcery.com> |
| Tom de Vries <tom@codesourcery.com> |
| Jan Hubicka <hubicka@ucw.cz> |
| Martin Jambor <mjambor@suse.cz> |
| |
| * 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 <ams@codesourcery.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Julian Brown <julian@codesourcery.com> |
| Tom de Vries <tom@codesourcery.com> |
| Jan Hubicka <hubicka@ucw.cz> |
| Martin Jambor <mjambor@suse.cz> |
| |
| * 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 <ebotcazou@adacore.com> |
| |
| * 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 <tamar.christina@arm.com> |
| |
| 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 <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (ares_tunings): Define. |
| * config/aarch64/aarch64-cores.def (ares): Use the above. |
| |
| 2019-01-17 Wei Xiao <wei3.xiao@intel.com> |
| |
| PR target/88794 |
| Revert: |
| 2018-11-06 Wei Xiao <wei3.xiao@intel.com> |
| |
| * 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. |
| (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. |
| (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. |
| (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update. |
| (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. |
| (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. |
| (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): 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 <wei3.xiao@intel.com> |
| |
| PR target/88794 |
| Revert: |
| 2018-11-12 Wei Xiao <wei3.xiao@intel.com> |
| |
| * config/i386/sse.md: Combine VFIXUPIMM* patterns |
| (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. |
| (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. |
| (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove. |
| (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. |
| (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. |
| (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove. |
| |
| 2019-01-17 Wei Xiao <wei3.xiao@intel.com> |
| |
| PR target/88794 |
| Revert: |
| 2018-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88489 |
| * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator. |
| (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it |
| instead of UNSPEC_FIXUPIMM. |
| |
| 2019-01-17 Richard Biener <rguenther@suse.de> |
| |
| 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 <jakub@redhat.com> |
| |
| 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 <linkw@gcc.gnu.org> |
| |
| * 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 <dmalcolm@redhat.com> |
| |
| 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 <tamar.christina@arm.com> |
| |
| * 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<rot><mode>, |
| aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct |
| lane endianness. |
| |
| 2019-01-16 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.c (alpha_gimplify_va_arg): |
| Handle split indirect COMPLEX_TYPE arguments. |
| |
| 2019-01-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| 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 (uaddv<mode>4): Use LTU with CCmode. |
| (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU. |
| (add<mode>3_compareC_cconly_imm): Delete. Merge into... |
| (add<mode>3_compareC_cconly): ... this. Restructure the comparison |
| to eliminate the need for zero-extending the operands. |
| (add<mode>3_compareC_imm): Delete. Merge into ... |
| (add<mode>3_compareC): ... this. Restructure the comparison to |
| eliminate the need for zero-extending the operands. |
| (add<mode>3_carryin): Use LTU for the overflow detection. |
| (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out. |
| Reexpress comparison for overflow. |
| (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC. |
| (add<mode>3_carryinC): Likewise. |
| (add<mode>3_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 <tamar.christina@arm.com> |
| |
| * 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<rot><mode>, neon_vcmla_laneq<rot><mode>, |
| neon_vcmlaq_lane<rot><mode>): Remove endianness conversion. |
| |
| 2019-01-16 Martin Liska <mliska@suse.cz> |
| |
| * 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 <nikhil.benesch@gmail.com> |
| |
| * 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 <dmalcolm@redhat.com> |
| |
| PR c++/88795 |
| * tree.c (build_function_type): Assert that arg_types is not |
| error_mark_node. |
| |
| 2019-01-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| 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 <rguenther@suse.de> |
| |
| PR debug/88046 |
| * dwarf2out.c (gen_member_die): Do not generate inheritance |
| DIEs late. |
| |
| 2019-01-15 Richard Biener <rguenther@suse.de> |
| |
| 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 <tdevries@suse.de> |
| |
| PR target/80547 |
| * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle |
| lhs == NULL_TREE for gang-level reduction. |
| |
| 2019-01-15 Richard Biener <rguenther@suse.de> |
| Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| 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 <jakub@redhat.com> |
| |
| 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 <ak@linux.intel.com> |
| |
| * Makefile.in: Lower autofdo sampling rate by 10x. |
| * Makefile.tpl: Dito. |
| |
| 2019-01-14 Tom Honermann <tom@honermann.net> |
| |
| * defaults.h: Define CHAR8_TYPE. |
| |
| 2019-01-14 Martin Sebor <msebor@redhat.com> |
| |
| PR target/88638 |
| * doc/extend.texi (Darwin Format Checks): Clarify. |
| |
| 2019-01-14 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (dt_simplify::gen_1): Change dumping dependent on |
| whether we are in (simplify ...) or (match ...) context. |
| |
| 2019-01-14 Jakub Jelinek <jakub@redhat.com> |
| |
| 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 <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting |
| vector length using -fopenacc-dim. |
| |
| 2019-01-12 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector |
| lengths into account. |
| |
| 2019-01-12 Svante Signell <svante.signell@gmail.com> |
| |
| * 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 <hubicka@ucw.cz> |
| |
| * params.def (inline-unit-growth): Set to 40. |
| |
| 2019-01-12 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo. |
| |
| 2019-01-12 Tom de Vries <tdevries@suse.de> |
| |
| * 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 <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new |
| variable default_vector_length. |
| |
| 2019-01-12 Tom de Vries <tdevries@suse.de> |
| |
| 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 <tdevries@suse.de> |
| |
| * 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 <jakub@redhat.com> |
| |
| 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 <vmakarov@redhat.com> |
| |
| 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 <jakub@redhat.com> |
| |
| 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 <amodra@gmail.com> |
| |
| 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 <jakub@redhat.com> |
| |
| * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H). |
| |
| 2019-01-11 Steve Ellcey <sellcey@marvell.com> |
| |
| * 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 <sellcey@marvell.com> |
| |
| * 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 <jakub@redhat.com> |
| |
| 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 <tdevries@suse.de> |
| |
| * 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 <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up. |
| |
| 2019-01-11 Jan Beulich <jbeulich@suse.com> |
| |
| * config/i386/i386.md (rex64suffix): Add L suffix for SI. |
| * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>, |
| sse2_cvtsi2sd): Add {l}. |
| (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T |
| syntax. |
| |
| 2019-01-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88785 |
| * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into |
| define_expand. |
| (*float<floatunssuffix>v2div2sf2): New define_insn. |
| (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand. |
| (*float<floatunssuffix>v2div2sf2_mask): New define_insn. |
| (*float<floatunssuffix>v2div2sf2_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 <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c |
| (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins... |
| (aarch64_init_simd_builtins): ...Here |
| |
| 2019-01-10 Vladimir Makarov <vmakarov@redhat.com> |
| |
| 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 <rguenther@suse.de> |
| |
| PR tree-optimization/88792 |
| * tree-ssa-pre.c (get_representative_for): Do not return a |
| value-number here. |
| |
| 2019-01-10 Jakub Jelinek <jakub@redhat.com> |
| |
| 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 <stefan@agner.ch> |
| |
| 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 <jakub@redhat.com> |
| |
| PR c/88568 |
| * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting |
| DECL_EXTERNAL. |
| |
| 2019-01-10 Tamar Christina <tamar.christina@arm.com> |
| |
| * 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<rot><mode>, |
| neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): 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<rot><mode>, neon_vcmla<rot><mode>): New. |
| * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270, |
| UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New. |
| |
| 2019-01-10 Tamar Christina <tamar.christina@arm.com> |
| |
| * 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<rot><mode>, |
| aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>, |
| aarch64_fcmla<rot><mode>): 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 <sandra@codesourcery.com> |
| |
| 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 <sandra@codesourcery.com> |
| |
| 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 <ubizjak@gmail.com> |
| |
| * 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. |
| (xorsign<mode>3): New expander. |
| (xorsign<mode>3_1): New insn_and_split pattern. |
| * config/i386/sse.md (xorsign<mode>3): New expander. |
| |
| 2019-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.md (*tablejump_sp32): Merge into... |
| (*tablejump_sp64): Likewise. |
| (*tablejump<P:mode>): ...this. |
| (*call_address_sp32): Merge into... |
| (*call_address_sp64): Likewise. |
| (*call_address<P:mode>): ...this. |
| (*call_symbolic_sp32): Merge into... |
| (*call_symbolic_sp64): Likewise. |
| (*call_symbolic<P:mode>): ...this. |
| (call_value): Remove constraint and add predicate. |
| (*call_value_address_sp32): Merge into... |
| (*call_value_address_sp64): Likewise. |
| (*call_value_address<P:mode>): ...this. |
| (*call_value_symbolic_sp32): Merge into... |
| (*call_value_symbolic_sp64): Likewise. |
| (*call_value_symbolic<P:mode>): ...this. |
| (*sibcall_symbolic_sp32): Merge into... |
| (*sibcall_symbolic_sp64): Likewise. |
| (*sibcall_symbolic<P:mode>): ...this. |
| (sibcall_value): Remove constraint and add predicate. |
| (*sibcall_value_symbolic_sp32): Merge into... |
| (*sibcall_value_symbolic_sp64): Likewise. |
| (*sibcall_value_symbolic<P:mode>): ...this. |
| (window_save): Minor tweak. |
| (*branch_sp32): Merge into... |
| (*branch_sp64): Likewise. |
| (*branch<P:mode>): ...this. |
| |
| 2019-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| James Clarke <jrtc27@jrtc27.com> |
| |
| 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<P:mode>): ...this and use Pmode throughout. |
| (tgd_lo10): Turn into... |
| (tgd_lo10<P:mode>): ...this and use Pmode throughout. |
| (tgd_add32): Merge into... |
| (tgd_add64): Likewise. |
| (tgd_add<P:mode>): ...this and use Pmode throughout. |
| (tldm_hi22): Turn into... |
| (tldm_hi22<P:mode>): ...this and use Pmode throughout. |
| (tldm_lo10): Turn into... |
| (tldm_lo10<P:mode>): ...this and use Pmode throughout. |
| (tldm_add32): Merge into... |
| (tldm_add64): Likewise. |
| (tldm_add<P:mode>): ...this and use Pmode throughout. |
| (tldm_call32): Merge into... |
| (tldm_call64): Likewise. |
| (tldm_call<P:mode>): ...this and use Pmode throughout. |
| (tldo_hix22): Turn into... |
| (tldo_hix22<P:mode>): ...this and use Pmode throughout. |
| (tldo_lox10): Turn into... |
| (tldo_lox10<P:mode>): ...this and use Pmode throughout. |
| (tldo_add32): Merge into... |
| (tldo_add64): Likewise. |
| (tldo_add<P:mode>): ...this and use Pmode throughout. |
| (tie_hi22): Turn into... |
| (tie_hi22<P:mode>): ...this and use Pmode throughout. |
| (tie_lo10): Turn into... |
| (tie_lo10<P:mode>): ...this and use Pmode throughout. |
| (tie_ld64): Use DImode throughout. |
| (tie_add32): Merge into... |
| (tie_add64): Likewise. |
| (tie_add<P:mode>): ...this and use Pmode throughout. |
| (tle_hix22_sp32): Merge into... |
| (tle_hix22_sp64): Likewise. |
| (tle_hix22<P:mode>): ...this and use Pmode throughout. |
| (tle_lox22_sp32): Merge into... |
| (tle_lox22_sp64): Likewise. |
| (tle_lox22<P:mode>): ...this and use Pmode throughout. |
| (*tldo_ldub_sp32): Merge into... |
| (*tldo_ldub_sp64): Likewise. |
| (*tldo_ldub<P:mode>): ...this and use Pmode throughout. |
| (*tldo_ldub1_sp32): Merge into... |
| (*tldo_ldub1_sp64): Likewise. |
| (*tldo_ldub1<P:mode>): ...this and use Pmode throughout. |
| (*tldo_ldub2_sp32): Merge into... |
| (*tldo_ldub2_sp64): Likewise. |
| (*tldo_ldub2<P:mode>): ...this and use Pmode throughout. |
| (*tldo_ldsb1_sp32): Merge into... |
| (*tldo_ldsb1_sp64): Likewise. |
| (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout. |
| (*tldo_ldsb2_sp32): Merge into... |
| (*tldo_ldsb2_sp64): Likewise. |
| (*tldo_ldsb2<P:mode>): ...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<P:mode>): ...this and use Pmode throughout. |
| (*tldo_lduh1_sp32): Merge into... |
| (*tldo_lduh1_sp64): Likewise. |
| (*tldo_lduh1<P:mode>): ...this and use Pmode throughout. |
| (*tldo_ldsh1_sp32): Merge into... |
| (*tldo_ldsh1_sp64): Likewise. |
| (*tldo_ldsh1<P:mode>): ...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<P:mode>): ...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<P:mode>): ...this and use Pmode throughout. |
| (*tldo_sth_sp32): Merge into... |
| (*tldo_sth_sp64): Likewise. |
| (*tldo_sth<P:mode>): ...this and use Pmode throughout. |
| (*tldo_stw_sp32): Merge into... |
| (*tldo_stw_sp64): Likewise. |
| (*tldo_stw<P:mode>): ...this and use Pmode throughout. |
| (*tldo_stx_sp64): Use DImode throughout. |
| |
| 2018-01-09 Sudakshina Das <sudi.das@arm.com> |
| |
| * 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 <sudi.das@arm.com> |
| Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * 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 <sudi.das@arm.com> |
| |
| * 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 <sudi.das@arm.com> |
| |
| * 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 <sudi.das@arm.com> |
| |
| * 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 <sudi.das@arm.com> |
| |
| * 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 <alejandro.martinezvicente@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand. |
| (xorsign<mode>3): Likewise. |
| |
| 2019-01-09 Jelinek <jakub@redhat.com> |
| |
| PR middle-end/88758 |
| * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: 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 <ebotcazou@adacore.com> |
| |
| * doc/invoke.texi (-Os): Remove trailing spaces. |
| (-finline-functions): Remove reference to -O2. |
| |
| 2019-01-08 Jakub Jelinek <jakub@redhat.com> |
| |
| 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 <ebotcazou@adacore.com> |
| |
| 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 <hongjiu.lu@intel.com> |
| |
| PR target/88717 |
| * config/i386/i386.c (ix86_avx_u128_mode_exit): Call |
| ix86_avx_u128_mode_entry. |
| |
| 2019-01-08 Martin Liska <mliska@suse.cz> |
| |
| 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 <rguenther@suse.de> |
| |
| 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 <sam.tebbs@arm.com> |
| |
| * 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 <amodra@gmail.com> |
| |
| 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 <richard.sandiford@arm.com> |
| |
| * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset |
| optimization for masked stores. |
| |
| 2019-01-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| 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 <rearnsha@arm.com> |
| |
| 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 (addv<mode>4): Use aarch64_plus_operand |
| for operand 2. |
| (add<mode>3_compareV_imm): Make this callable for expanding. |
| (subv<GPI:mode>4): Use register_operand for operand 1. Use |
| aarch64_plus_operand for operand 2. |
| (subv<GPI:mode>_insn): New insn pattern. |
| (subv<GPI:mode>_imm): Likewise. |
| (negv<GPI:mode>3): New expand pattern. |
| (negv<GPI:mode>_insn): New insn pattern. |
| (negv<GPI:mode>_cmp_only): Likewise. |
| (cmpv<GPI:mode>_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<mode3>_compare1_imm): Delete named insn pattern, make anonymous |
| version the named version. |
| (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of |
| operands. |
| (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn |
| patterns. |
| (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn |
| patterns. |
| (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete. |
| (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete. |
| (sub<mode>3_carryinCV): Delete. |
| (sub<GPI:mode>3_carryinV): New expand pattern. |
| sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns. |
| |
| 2019-01-07 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor |
| of tree_operand_hash. |
| |
| 2019-01-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| 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 <richard.sandiford@arm.com> |
| |
| 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 <jwakely@redhat.com> |
| |
| * doc/install.texi: Replace references to x86_64-unknown-linux-gnu |
| with x86_64-pc-linux-gnu. |
| |
| 2019-01-07 Tom de Vries <tdevries@suse.de> |
| |
| 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 <jakub@redhat.com> |
| |
| * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): 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) <case UNSPEC>: 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 <tdevries@suse.de> |
| |
| * 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 <tdevries@suse.de> |
| |
| PR target/85381 |
| * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for |
| empty loops. |
| |
| 2019-01-07 Tom de Vries <tdevries@suse.de> |
| |
| * 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 <tdevries@suse.de> |
| |
| * 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 <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to |
| as late as possible. |
| |
| 2019-01-07 Tom de Vries <tdevries@suse.de> |
| |
| * 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 <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts. |
| |
| 2019-01-07 Tom de Vries <tdevries@suse.de> |
| |
| * omp-offload.c (oacc_get_min_dim): New function. |
| * omp-offload.h (oacc_get_min_dim): Declare. |
| |
| 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl> |
| |
| 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 <hubicka@ucw.cz> |
| |
| PR tree-opt/86020 |
| Revert: |
| 2017-05-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline.c (edge_badness): Use inlined_time instead of |
| inline_summaries->get. |
| |
| 2019-01-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * 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 <hubicka@ucw.cz> |
| |
| * 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 <hubicka@ucw.cz> |
| |
| * 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 <hubicka@ucw.cz> |
| |
| * ipa-fnsummary.c (analyze_function_body): Fix accounting of time. |
| |
| 2019-01-05 Jakub Jelinek <jakub@redhat.com> |
| |
| 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 <hubicka@ucw.cz> |
| |
| * params.def (hot-bb-count-ws-permille): Set to 990. |
| |
| 2019-01-04 Martin Sebor <msebor@redhat.com> |
| |
| PR c/88546 |
| * attribs.c (decls_mismatched_attributes): Avoid warning for attribute |
| leaf. |
| |
| 2019-01-04 Martin Sebor <msebor@redhat.com> |
| |
| PR c/88363 |
| * doc/extend.texi (attribute alloc_align, alloc_size): Update. |
| |
| 2019-01-04 Jakub Jelinek <jakub@redhat.com> |
| |
| * gdbinit.in: Turn off pagination for the skip commands, restore |
| it to previous state afterwards. |
| |
| 2019-01-04 Jakub Jelinek <jakub@redhat.com> |
| |
| 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 <jbeulich@suse.com> |
| |
| * config/i386/sse.md |
| (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>, |
| <avx512>_cmp<mode>3<mask_scalar_merge_name>, |
| <avx512>_ucmp<mode>3<mask_scalar_merge_name>, |
| <avx512>_ucmp<mode>3<mask_scalar_merge_name>, |
| avx512f_vmcmp<mode>3<round_saeonly_name>, |
| avx512f_vmcmp<mode>3_mask<round_saeonly_name>, |
| avx512f_maskcmp<mode>3, |
| <avx512>_cvt<ssemodesuffix>2mask<mode>, |
| <avx512>_cvt<ssemodesuffix>2mask<mode>, |
| *<avx512>_cvtmask2<ssemodesuffix><mode>, |
| *<avx512>_cvtmask2<ssemodesuffix><mode>, |
| <avx512>_eq<mode>3<mask_scalar_merge_name>_1, |
| <avx512>_eq<mode>3<mask_scalar_merge_name>_1, |
| <avx512>_gt<mode>3<mask_scalar_merge_name>, |
| <avx512>_gt<mode>3<mask_scalar_merge_name>, |
| <avx512>_testm<mode>3<mask_scalar_merge_name>, |
| <avx512>_testnm<mode>3<mask_scalar_merge_name>, |
| *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext, |
| *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask, |
| *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext, |
| *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask, |
| avx512cd_maskb_vec_dup<mode>, |
| avx512cd_maskw_vec_dup<mode>, |
| avx512dq_fpclass<mode><mask_scalar_merge_name>, |
| avx512dq_vmfpclass<mode>, |
| avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k |
| instead of =Yk. |
| |
| 2019-01-03 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/88659 |
| * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set. |
| |
| 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com> |
| |
| * 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 <tdevries@suse.de> |
| |
| * 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 <tdevries@suse.de> |
| |
| * 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 <tdevries@suse.de> |
| |
| * 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 <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function, |
| factored out of ... |
| (nvptx_goacc_validate_dims): ... here. |
| |
| 2019-01-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| 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 <jakub@redhat.com> |
| |
| PR debug/88644 |
| * dwarf2out.c (modified_type_die): If type is equal to sizetype, |
| change it to qualified_type. |
| |
| 2019-01-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * 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 <msebor@redhat.com> |
| Jeff Law <law@redhat.com> |
| |
| * 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 <hubicka@ucw.cz> |
| |
| 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 <mliska@suse.cz> |
| |
| PR tree-optimization/88650 |
| * predict.c (set_even_probabilities): Calculate probability |
| remainer only when really used. |
| |
| 2019-01-02 Richard Biener <rguenther@suse.de> |
| |
| 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 <rguenther@suse.de> |
| |
| PR tree-optimization/88621 |
| * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid |
| bitfields when canoncalizing. |
| |
| 2019-01-02 Richard Biener <rguenther@suse.de> |
| |
| PR target/87545 |
| * config/i386/x86-tune-costs.h (intel_cost): Adjust |
| cost of cheap SSE instruction. |
| |
| 2019-01-02 Richard Biener <rguenther@suse.de> |
| |
| 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 <msebor@redhat.com> |
| Jeff Law <law@redhat.com> |
| |
| * 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 <hubicka@ucw.cz> |
| |
| * 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 <jakub@redhat.com> |
| |
| 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. |