| 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/darwin.h: Handle GCC target pragma. |
| |
| 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/darwin.h: (__PPC__, __PPC64__): New. |
| |
| 2019-06-22 Jeff Law <law@redhat.com> |
| |
| * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. |
| |
| 2019-06-22 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not |
| give up on bitfields; continue searching for different refs |
| appearing later. |
| |
| 2019-06-21 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle |
| even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR |
| containing the offset as possible simd lane access. Look through |
| widening conversion. Move the |
| TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent. |
| |
| 2019-06-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90930 |
| * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited |
| flag on new stmts to avoid re-processing them. |
| |
| 2019-06-21 Matthew Beliveau <mbelivea@redhat.com> |
| |
| PR c++/90875 - added -Wswitch-outside-range option |
| * doc/invoke.texi (Wswitch-outside-range): Document. |
| |
| 2019-06-21 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/90949 |
| * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info. |
| * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state. |
| |
| 2019-06-21 Richard Biener <rguenther@suse.de> |
| |
| PR debug/90914 |
| * dwarf2out.c (prune_unused_types_walk): Always consider |
| function-local extern declarations as used. |
| |
| 2019-06-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90913 |
| * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use |
| the scalar variant of if-conversion versioning. |
| |
| 2019-06-21 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument, |
| create another "omp scan inscan exclusive" array if |
| !ctx->scan_inclusive. |
| (lower_rec_input_clauses): Handle exclusive scan inscan reductions. |
| (lower_omp_scan): Likewise. |
| * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of |
| 2-bit bitfield for simd_lane_access_p member. |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle |
| aux == (void *)-4 as simd lane access. |
| * tree-vect-stmts.c (check_scan_store): Handle exclusive scan. Update |
| comment with permutations to show the canonical permutation order. |
| (vectorizable_scan_store): Handle exclusive scan. |
| (vectorizable_store): Call vectorizable_scan_store even for |
| STMT_VINFO_SIMD_LANE_ACCESS_P > 3. |
| |
| * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle |
| "omp simd array" arrays with one byte elements. |
| |
| 2019-06-20 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.md (@unaligned_store<mode>): |
| Rename from unaligned_store<mode>. |
| (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned. |
| * config/alpha/sync.md (@load_locked_<mode>): Rename |
| from load_locked_<mode>. |
| (@store_conditional_<mode>): Rename from store_conditional_<mode>. |
| (@atomic_compare_and_swap<mode>_1): Rename |
| from atomic_compare_and_swap<mode>_1. |
| (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1. |
| * config/alpha/alpha.c (alpha_expand_mov_nobwx): |
| Use gen_reload_in_aligned and gen_unaligned_store. |
| (emit_load_locked): Remove. |
| (emit_store_conditional): Ditto. |
| (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional. |
| (alpha_split_compare_and_swap): Ditto. |
| (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1. |
| (alpha_split_compare_and_swap_12): Use gen_load_locked |
| and gen_store_conditional. |
| (alpha_split_atomic_exchange): Ditto. |
| (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1. |
| (alpha_split_atomic_exchange_12): Use gen_load_locked |
| and gen_store_conditional. |
| |
| 2019-06-20 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/aarch64/aarch64-errata.h: New file. |
| * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete. |
| (CA53_ERR_843419_SPEC): Delete. |
| (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above. |
| * config/aarch64/aarch64-linux.h: Likewise. |
| * config/aarch64/aarch64-netbsd.h: Likewise. |
| * config/aarch64/aarch64-freebsd.h: Likewise. |
| |
| 2019-06-20 Marek Polacek <polacek@redhat.com> |
| |
| * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name. |
| |
| 2019-06-20 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/rs6000.md (isa attribute): Add support for |
| for a future processor. |
| |
| 2019-06-20 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/54855 |
| * config/i386/i386-expand.c (ix86_expand_vector_set): Generate |
| standard scalar operation pattern for V2DF. |
| * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New. |
| (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise. |
| (*ieee_<ieee_maxmin><mode>3): Likewise. |
| (vec_setv2df_0): Likewise. |
| |
| 2019-06-20 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl |
| parameter; it has no use in gimple memory model. |
| (indirect_ref_may_alias_decl_p): Update. |
| |
| 2019-06-20 Martin Liska <mliska@suse.cz> |
| |
| * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease |
| to 10. |
| |
| 2019-06-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-stmts.c (enum scan_store_kind): New type. |
| (scan_store_can_perm_p): Change last argument from int * to |
| vec<enum scan_store_kind> *, record precisely which permutations |
| need whole vector left shift or that plus VEC_COND_EXPR. |
| (vectorizable_scan_store): Adjust caller, use whole vector left shift |
| and additional VEC_COND_EXPR only for those iterations that need it. |
| |
| 2019-06-20 Alexandre Oliva <oliva@adacore.com> |
| |
| * config.gcc: Fix ARM --with-fpu checking and error message. |
| |
| 2019-06-19 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/60364 - noreturn after first decl not diagnosed. |
| * attribs.c (get_attribute_namespace): No longer static. |
| (decl_attributes): Avoid shadowing. Preserve the C++11 form for C++11 |
| attributes. |
| (attr_noreturn_exclusions): Make it extern. |
| * attribs.h (get_attribute_namespace): Declare. |
| * tree-inline.c (function_attribute_inlinable_p): Use |
| get_attribute_name. |
| |
| 2019-06-19 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/90626 |
| * tree-ssa-strlen.c (strxcmp_unequal): Fix typos. |
| |
| PR tree-optimization/90626 |
| * tree-ssa-strlen.c (strxcmp_unequal): New function. |
| (handle_builtin_string_cmp): Call it. |
| |
| 2019-06-19 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC |
| and DARWIN_NOPIE_SPEC. |
| (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC. |
| (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h. |
| (DARWIN_NOPIE_SPEC): Collate from darwin10.h. |
| (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h |
| (DARWIN_EXPORT_DYNAMIC): Delete. |
| * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind |
| and pie options processing to darwin.h. |
| * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h |
| |
| 2019-06-19 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors |
| in computing the number of options to be moved. |
| |
| 2019-06-19 Maya Rashish <coypu@sdf.org> |
| |
| * config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition. |
| (CLEAR_INSN_CACHE) Use it. |
| |
| 2019-06-19 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (cmpstrnsi): Remove dead code. |
| |
| 2019-06-19 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR middle-end/84521 |
| * builtins.c (expand_builtin_setjmp_setup): Save |
| hard_frame_pointer_rtx. |
| (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we |
| restore fp. |
| * function.c (expand_function_start): Save hard_frame_pointer_rtx for |
| non-local goto. |
| * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp |
| elimination code. |
| (remove_reg_equal_offset_note): Remove unused function. |
| * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination |
| code. |
| * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. |
| (arc_builtin_setjmp_frame_value): Remove function. |
| * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. |
| (avr_builtin_setjmp_frame_value): Remove function. |
| * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. |
| (ix86_builtin_setjmp_frame_value): Remove function. |
| * config/pa/pa.md (nonlocal_goto): Remove FP adjustment. |
| * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. |
| (sparc_builtin_setjmp_frame_value): Remove function. |
| * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. |
| (vax_builtin_setjmp_frame_value): Remove function. |
| * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame |
| pointer if has_nonlocal_label. |
| |
| 2019-06-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/md.texi: Document vec_shl_<mode> pattern. |
| * optabs.def (vec_shl_optab): New optab. |
| * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab |
| argument, if == vec_shl_optab, check for left whole vector shift |
| pattern rather than right shift. |
| (expand_vec_perm_const): Add vec_shl_optab support. |
| * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab |
| in the comment. |
| * tree-vect-generic.c (lower_vec_perm): Support permutations which |
| can be handled by vec_shl_optab. |
| * tree-vect-stmts.c (scan_store_can_perm_p): New function. |
| (check_scan_store): Use it. |
| (vectorizable_scan_store): If target can't do normal permutations, |
| try to use whole vector left shifts and if needed a VEC_COND_EXPR |
| after it. |
| * config/i386/sse.md (vec_shl_<mode>): New expander. |
| |
| * omp-low.c (lower_rec_input_clauses): Handle references properly |
| in inscan clauses. |
| (lower_omp_scan): Likewise. |
| |
| 2019-06-19 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * tree-ssa-address.c (preferred_mem_scale_factor): Handle when |
| mem_mode is BLKmode. |
| |
| 2019-06-18 Max Filippov <jcmvbkbc@gmail.com> |
| |
| PR target/90922 |
| * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack |
| pointer adjustment for the case of no callee-saved registers and |
| stack frame bigger than 128 bytes. |
| |
| 2019-06-18 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR middle-end/90862 |
| * omp-low.c (check_omp_nesting_restrictions): Handle |
| GF_OMP_TARGET_KIND_OACC_DECLARE. |
| |
| 2019-06-18 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1. |
| (@add<mode>3_carry): Rename from add<mode>3_carry. |
| (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc. |
| (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz. |
| (@copysign<mode>3_const): Rename from copysign<mode>3_const. |
| (@copysign<mode>3_var): Rename from copysign<mode>3_var. |
| (@xorsign<mode>3_1): Rename from xorsign<mode>3_1. |
| (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1. |
| (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2. |
| (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3. |
| (cmpstrnsi): Use gen_cmp_1. |
| (lwp_slwpcb): Use gen_lwp_slwpcb_1. |
| (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1. |
| (@umonitor_<mode>): Rename from umonitor_<mode>. |
| * config/i386/i386-expand.c (ix86_expand_copysign): |
| Use gen_copysign3_const and gen_copysign3_var. |
| (ix86_expand_xorsign): Use gen_xorsign3_1. |
| (ix86_expand_branch): Use gen_sub3_carry_ccc, |
| gen_sub3_carry_ccgz and gen_cmp1. |
| (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry. |
| (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2. |
| (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3. |
| (ix86_split_lshr): Ditto. |
| (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor. |
| |
| 2019-06-18 Jason Merrill <jason@redhat.com> |
| |
| * tree.c (build_constructor): Add MEM_STAT_DECL. |
| |
| 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE. |
| * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc) |
| (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>) |
| (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>) |
| (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc) |
| (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>) |
| (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4): |
| Use CC_NZC instead of CC. |
| * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions. |
| * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable. |
| (aarch64_print_operand): Handle E_CC_NZCmode. |
| (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead |
| of gen_set_clobber_cc. |
| |
| 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md: Tabify file. |
| |
| 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare. |
| * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function. |
| * config/aarch64/aarch64-sve.md: Use it. |
| |
| 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare. |
| * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions. |
| (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move) |
| (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local) |
| (aarch64_expand_sve_vec_cmp_int): Use it. |
| (aarch64_expand_sve_vec_cmp_float): Likewise. |
| * config/aarch64/aarch64-sve.md: Likewise throughout. |
| |
| 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kuganv@linaro.org> |
| |
| * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete. |
| (*cond_<optab><mode>_z): Fold into... |
| (*cond_<optab><mode>_any): ...here. Also handle cases in which |
| operand 4 can be tied to operand 0 (either inherently or via RA). |
| |
| 2019-06-18 Richard Biener <rguenther@suse.de> |
| |
| PR debug/90900 |
| * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL |
| as if optimized away. |
| |
| 2019-06-18 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove. |
| * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove. |
| * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"): |
| Rename to ... |
| (define_insn "@set_softstack_<mode>"): ... this. |
| (define_insn "omp_simt_enter_<mode>"): Rename to ... |
| (define_insn "@omp_simt_enter_<mode>"): ... this. |
| (define_insn "omp_simt_exit_<mode>"): Rename to ... |
| (define_insn "@omp_simt_exit_<mode>"): ... this. |
| |
| 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove |
| vf parameter. Restore the previous iv step of nscalars_step, |
| but give it iv_type rather than compare_type. Tweak code order |
| to match the comments. |
| (vect_set_loop_condition_masked): Update accordingly. |
| * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int" |
| for iv_precision. Tweak comment formatting. |
| |
| 2019-06-18 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c: Strip trailing whitespace. |
| |
| 2019-06-18 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (darwin_emit_unwind_label): New default to false. |
| (darwin_override_options): Set darwin_emit_unwind_label as needed. |
| |
| 2019-06-18 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/90889 |
| * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the |
| caller does not have flag_ipa_cp set. |
| |
| 2019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed |
| from "*fold_left_plus_<mode>", updated operands order. |
| * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab. |
| * internal-fn.c (mask_fold_left_direct): New define. |
| (expand_mask_fold_left_optab_fn): Likewise. |
| (direct_mask_fold_left_optab_supported_p): Likewise. |
| * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function. |
| * optabs.def (mask_fold_left_plus_optab): New optab. |
| * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a |
| masked internal_fn for a reduction ifn. |
| (vectorize_fold_left_reduction): Add support for masking reductions. |
| |
| 2019-06-18 Kewen Lin <linkw@gcc.gnu.org> |
| |
| PR middle-end/80791 |
| * target.def (predict_doloop_p): New hook. |
| * targhooks.h (default_predict_doloop_p): New declaration. |
| * targhooks.c (default_predict_doloop_p): New function. |
| * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook. |
| * doc/tm.texi: Regenerate. |
| * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function. |
| (TARGET_PREDICT_DOLOOP_P): New macro. |
| * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function. |
| |
| 2019-06-17 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-low.c (struct omp_context): Add scan_inclusive field. |
| (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive |
| if inclusive scan. |
| (struct omplow_simd_context): Add lastlane member. |
| (lower_rec_simd_input_clauses): Add rvar argument, handle inscan |
| reductions. Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than |
| 1 or 2 argument. |
| (lower_rec_input_clauses): Handle inscan reductions in simd contexts. |
| (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF. |
| (lower_omp_scan): New function. |
| (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan. |
| * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE |
| check 3rd argument if present rather than 2nd. |
| * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member. |
| (struct _stmt_vec_info): Change simd_lane_access_p from bool into |
| 2-bit bitfield. |
| * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize |
| scan_map. For IFN_GOMP_SIMD_LANE check 3rd argument if present rather |
| than 2nd. |
| (_loop_vec_info::~_loop_vec_info): Delete scan_map. |
| * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two |
| different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same |
| init. |
| (vect_find_stmt_data_reference): Encode in ->aux the 2nd |
| IFN_GOMP_SIMD_LANE argument. |
| (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the |
| encoded ->aux value. |
| * tree-vect-stmts.c: Include attribs.h. |
| (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE. |
| (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New |
| functions. |
| (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0. |
| (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1. |
| |
| 2019-06-17 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/62055 |
| * config/i386/i386.md (*nabstf2_1): New insn pattern. |
| (*nabs<mode>2_1): Ditto. |
| (nabs sse-reg splitter): New splitter. |
| * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern. |
| |
| 2019-06-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR bootstrap/90873. |
| * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix |
| TMR index check. |
| |
| 2019-06-17 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare. |
| * config/nvptx/nvptx.c (gen_set_softstack_insn): New function. |
| * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to |
| ... |
| (define_insn "set_softstack_<mode>"): ... this. Use P iterator on |
| match_operand 0. |
| (define_insn "omp_simt_enter_insn"): Rename to ... |
| (define_insn "omp_simt_enter_<mode>"): ... this. Use P iterator on |
| match_operand 0, 1 and 2, as well as the unspec_volatile result. |
| (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and |
| gen_omp_simt_enter_si. |
| (define_expand "omp_simt_exit"): New. |
| (define_insn "omp_simt_exit"): Rename to ... |
| (define_insn "omp_simt_exit_<mode>"): ... this. Use P iterator on |
| match_operand 0. |
| |
| 2019-06-17 Matthew Green <mrg@eterna.com.au> |
| Maya Rashish <coypu@sdf.org> |
| |
| * config.gcc (aarch64*-*-netbsd*): New target. |
| * config/aarch64/aarch64-netbsd.h: New file. |
| * config/aarch64/t-aarch64-netbsd: Likewise. |
| |
| 2019-06-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (aliasing_component_refs_p): Consider only |
| the access path from base to first VIEW_CONVERT_EXPR or |
| BIT_FIELD_REF. |
| |
| 2019-06-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate |
| access path on BIT_FIELD_REFs. |
| |
| 2019-06-17 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/90874 |
| * ipa-utils.h (odr_type_p): Remove dead code. |
| |
| 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for |
| alternative Solaris 11.4 format. |
| * configure: Regenerate. |
| |
| 2019-06-17 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ... |
| (define_insn "call_insn_<mode>"): ... this. Use P iterator on |
| match_operand 0. |
| (define_insn "call_value_insn"): Rename to ... |
| (define_insn "call_value_insn_<mode>"): this. Use P iterator on |
| match_operand 0. |
| (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to |
| DI. |
| |
| 2019-06-16 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR middle-end/64242 |
| * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add |
| frame clobbers and schedule block. |
| (builtin_longjmp): Likewise. |
| |
| 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which |
| describe how to perform MSPABI compliant 64-bit shift. |
| * config/msp430/msp430.md (ashldi3): New define_expand. |
| (ashrdi3): New define_expand. |
| (lshrdi3): New define_expand. |
| |
| 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * doc/sourcebuild.texi: Document new effective target keyword |
| longlong64. |
| |
| 2019-06-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (indirect_ref_may_alias_decl_p, |
| indirect_refs_may_alias_p): Revert accidental commits. |
| |
| * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays |
| at the end of structures. |
| |
| 2019-06-16 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (machopic_indirect_call_target): Use renamed |
| darwin_picsymbol_stubs to decide on output. |
| (darwin_override_options): Handle darwin_picsymbol_stubs. |
| * config/darwin.h (MIN_LD64_OMIT_STUBS): New. |
| (LD64_VERSION): Revise default. |
| * config/darwin.opt: (mpic-symbol-stubs): New option. |
| (darwin_picsymbol_stubs): New variable. |
| * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS): |
| rename to TARGET_MACHO_PICSYM_STUBS. |
| * config/i386/i386.c (output_pic_addr_const): Likewise. |
| * config/i386/i386.h Likewise. |
| * config/rs6000/darwin.h: Likewise. |
| * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed |
| darwin_picsymbol_stubs. |
| |
| 2019-06-16 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.opt (prebind, noprebind, seglinkedit, |
| noseglinkedit): Add RejectNegative. |
| |
| 2019-06-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto |
| in my previous patch. |
| |
| 2019-06-16 Tom de Vries <tdevries@suse.de> |
| |
| PR tree-optimization/89376 |
| * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL. |
| |
| 2019-06-15 Maya Rashish <coypu@sdf.org> |
| |
| * doc/invoke.texi (Spec Files): Update location of the |
| Fortran spec file. |
| |
| 2019-06-15 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/extend.texi (Common Function Attributes): Clarify |
| no_sanitize. Fix grammar. |
| |
| 2019-06-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (alias_stats): Add |
| nonoverlapping_component_refs_p_may_alias, |
| nonoverlapping_component_refs_p_no_alias, |
| nonoverlapping_component_refs_of_decl_p_may_alias, |
| nonoverlapping_component_refs_of_decl_p_no_alias. |
| (dump_alias_stats): Dump them. |
| (nonoverlapping_component_refs_of_decl_p): Add stats. |
| (nonoverlapping_component_refs_p): Add stats; do not stop on first |
| ARRAY_REF. |
| |
| 2019-06-15 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (and<mode>3): Generate zero-extends for |
| TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) |
| only. |
| (*anddi3_doubleword): Split before reload. Merge with |
| anddi->zext pre-reload splitter. |
| (*andndi3_doubleword): Split before reload. |
| (*<code>di3_doubleword): Ditto. |
| (*one_cmpldi2_doubleword): Ditto. |
| |
| 2019-06-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/90779 |
| * gimplify.c: Include omp-offload.h and context.h. |
| (gimplify_bind_expr): Add "omp declare target" attributes |
| to static block scope variables inside of target region or target |
| functions. |
| |
| 2019-06-15 Tom de Vries <tdevries@suse.de> |
| |
| PR tree-optimization/90009 |
| * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path): |
| Return NULL if bb contains IFN_UNIQUE. |
| |
| 2019-06-14 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator. |
| (un): New define_mode_attr. |
| (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ... |
| (isel_<un>signed_<GPR:mode>): ... this. New define_insn. |
| (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete, |
| merge into ... |
| (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn. |
| |
| 2019-06-14 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.opt: Add RejectNegative where needed, reorder |
| and add minimal functional descriptions. |
| |
| 2019-06-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR rtl-optimization/90765 |
| * calls.c (update_stack_alignment_for_call): New function. |
| (expand_call): Call update_stack_alignment_for_call when |
| outgoing parameter is passed in the stack. |
| (emit_library_call_value_1): Likewise. |
| * function.c (locate_and_pad_parm): Don't update |
| stack_alignment_needed and preferred_stack_boundary. |
| |
| 2019-06-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/90877 |
| * config/i386/i386-features.c |
| (dimode_scalar_chain::compute_convert_gain): Replace |
| mmxsse_to_integer with sse_to_integer. |
| * config/i386/i386.c (ix86_register_move_cost): Verify that |
| moves between MMX and non-MMX units require secondary memory. |
| Correct costs of moves between SSE and integer units. |
| * config/i386/i386.h (processor_costs): Rename cost of moving |
| SSE register to integer to sse_to_integer. Rename cost of |
| |
| 2019-06-14 Matt Thomas <matt@3am-software.com> |
| Matthew Green <mrg@eterna.com.au> |
| Nick Hudson <skrll@netbsd.org> |
| Maya Rashish <coypu@sdf.org> |
| Richard Earnshaw <rearnsha@arm.com> |
| |
| * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration. |
| * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD. |
| * config/arm/netbsd-eabi.h: New file. |
| * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before |
| redefining. |
| (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler. |
| * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define. |
| (NETBSD_SUBTARGET_EXTRA_SPECS): New define. |
| (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS. |
| |
| 2019-06-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-loop-distribution.c (classify_partition): Return |
| whether a reduction appeared in all partitions and do not |
| stop builtin detection because of this. |
| (distribute_loop): Sort a non-builtin partition last if |
| there's a reduction in all partitions and make sure the |
| partition prevailing as last is not a builtin. |
| |
| 2019-06-14 Feng Xue <fxue@os.amperecomputing.com> |
| |
| PR ipa/90401 |
| * ipa-prop.c (add_to_agg_contents_list): New function. |
| (clobber_by_agg_contents_list_p): Likewise. |
| (extract_mem_content): Likewise. |
| (get_place_in_agg_contents_list): Delete. |
| (determine_known_aggregate_parts): Renamed from |
| determine_locally_known_aggregate_parts. New parameter |
| aa_walk_budget_p. |
| |
| 2019-06-13 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/90662 |
| * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands |
| to the same type. |
| |
| 2019-06-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR bootstrap/90873 |
| * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that |
| dbase is not TARGET_MEM_REF. |
| |
| 2019-06-13 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x. |
| Update all uses. |
| (and<mode>3): Use gen_extend_insn instead of indirect functions. |
| Do not generate DImode extends for 32bit targets. |
| (and->zext post-reload splitter): Use gen_extend_insn |
| instead of indirect functions. |
| (anddi->zext pre-reload splitter): New. |
| (*zext<mode>_doubleword_and): Remove. |
| (*zext<mode>_doubleword): Ditto. |
| (*zextsi_doubleword): Dittto. |
| |
| 2019-06-13 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_int_sse_cmp): |
| Use gen_sub3_insn instead of indirect function. |
| (ix86_expand_ashl_const): Use gen_add2_insn instead of |
| indirect function. |
| (ix86_adjust_counter): Ditto. |
| |
| 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com> |
| Lijia He <helijia@linux.ibm.com> |
| |
| PR tree-optimization/77820 |
| * tree-ssa-threadedge.c |
| (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New |
| function. |
| (thread_across_edge): Add call to |
| edge_forwards_cmp_to_conditional_jump_through_empty_bb_p. |
| |
| 2019-06-13 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin-driver.c (validate_macosx_version_min): New. |
| (darwin_default_min_version): Cleanup and validate supplied version. |
| (darwin_driver_init): Likewise and push cleaned version into opts. |
| |
| 2019-06-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR tree-optimization/90869 |
| * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view |
| converts in MEM_REF referencing decl rather than view converts |
| from decl type to MEM_REF type. |
| |
| 2019-06-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90856 |
| * tree-sra.c (build_ref_for_model): Only use |
| build_reconstructed_reference when address-spaces are the same. |
| |
| 2019-06-13 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't |
| wrap ei variable name in the declaration in ()s. |
| (nvptx_single): Actually use mode_label variable. Formatting fix. |
| |
| 2019-06-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_loop_vectorized_call): Declare. |
| * tree-vectorizer.c (vect_loop_vectorized_call): Export and |
| also return the condition stmt. |
| * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost |
| loop we can version and version that, reusing the loop version |
| created by if-conversion instead of versioning again. |
| |
| 2019-06-13 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-loop-versioning.cc (prune_loop_conditions): Use |
| may_contain_p. |
| * tree-vrp (value_range_base::may_contain_p): Call into |
| value_inside_range. |
| (value_inside_range): Make private inside value_range_base class. |
| Take min/max from *this. |
| (range_includes_p): Remove. |
| * tree-vrp.h (value_range_base): Add value_inside_range. |
| (range_includes_p): Remove. |
| (range_includes_zero_p): Call may_contain_p. |
| * vr-values.c (compare_range_with_value): Same. |
| |
| 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * doc/extend.texi (ARC Function Attributes): Update info. |
| |
| 2019-06-13 Feng Xue <fxue@os.amperecomputing.com> |
| |
| PR tree-optimization/89713 |
| * doc/invoke.texi (-ffinite-loops): Document new option. |
| * common.opt (-ffinite-loops): New option. |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark |
| IFN_GOACC_LOOP calls as necessary. |
| * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit |
| is finite. |
| * omp-offload.c (oacc_xform_loop): Skip lowering if return value of |
| IFN_GOACC_LOOP call is not used. |
| * opts.c (default_options_table): Enable -ffinite-loops at -O2+. |
| |
| 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| PR target/88838 |
| * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the |
| compare_type is not with Pmode size, we will create an IV with |
| Pmode size with truncated use (i.e. converted to the correct type). |
| * tree-vect-loop.c (vect_verify_full_masking): Find IV type. |
| (vect_iv_limit_for_full_masking): New. Factored out of |
| vect_set_loop_condition_masked. |
| * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New. |
| (vect_iv_limit_for_full_masking): Declare. |
| |
| 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| PR target/88834 |
| * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle |
| IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES. |
| (get_alias_ptr_type_for_ptr_address): Likewise. |
| (add_iv_candidate_for_use): Add scaled index candidate if useful. |
| * tree-ssa-address.c (preferred_mem_scale_factor): New. |
| * config/aarch64/aarch64.c (aarch64_classify_address): Relax |
| allow_reg_index_p. |
| |
| 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/iterators.md (ADDSUB): Fix typo in comment. |
| |
| 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * common/config/pru/pru-common.c: New file. |
| * config.gcc: Add PRU target. |
| * config/pru/alu-zext.md: New file. |
| * config/pru/constraints.md: New file. |
| * config/pru/predicates.md: New file. |
| * config/pru/pru-opts.h: New file. |
| * config/pru/pru-passes.c: New file. |
| * config/pru/pru-pragma.c: New file. |
| * config/pru/pru-protos.h: New file. |
| * config/pru/pru.c: New file. |
| * config/pru/pru.h: New file. |
| * config/pru/pru.md: New file. |
| * config/pru/pru.opt: New file. |
| * config/pru/t-pru: New file. |
| * doc/extend.texi: Document PRU pragmas. |
| * doc/invoke.texi: Document PRU-specific options. |
| * doc/md.texi: Document PRU asm constraints. |
| |
| 2019-06-12 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/90676 |
| * tree-pretty-print.c (dump_mem_ref): New function. Include |
| MEM_REF type in output when different size than operand. |
| (dump_generic_node): Move code to dump_mem_ref and call it. |
| |
| 2019-06-12 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/90662 |
| * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers |
| to arrays. |
| |
| 2019-06-12 Tom de Vries <tdevries@suse.de> |
| |
| PR tree-optimization/90009 |
| * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join. |
| |
| 2019-06-12 Martin Liska <mliska@suse.cz> |
| |
| * ggc-common.c (ggc_prune_overhead_list): Do not sanitize |
| the created map. |
| * hash-map.h: Add sanitize_eq_and_hash into ::hash_map. |
| * mem-stats.h (mem_alloc_description::mem_alloc_description): |
| Do not sanitize created maps. |
| |
| 2019-06-12 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use |
| value_range::singleton_p. |
| * tree-vrp.c (value_range_constant_singleton): Remove. |
| * tree-vrp.h (value_range_constant_singleton): Remove. |
| * vr-values.c (vr_values::singleton): Use |
| value_range::singleton_p. |
| |
| 2019-06-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90811 |
| * cfgexpand.c (align_local_variable): Add really_expand argument, |
| don't SET_DECL_ALIGN if it is false. |
| (add_stack_var): Add really_expand argument, pass it through to |
| align_local_variable. |
| (expand_one_stack_var_1): Pass true as really_expand to |
| align_local_variable. |
| (expand_one_ssa_partition): Pass true as really_expand to |
| add_stack_var. |
| (expand_one_var): Pass really_expand through to add_stack_var. |
| |
| 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/arm/iterators.md (VABAL): New int iterator. |
| * config/arm/neon.md (<sup>sadv16qi): New define_expand. |
| * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S, UNSPEC_VABAL_U |
| values. |
| |
| 2019-06-12 Martin Liska <mliska@suse.cz> |
| |
| * value-prof.c (stream_out_histogram_value): Only first value |
| can't be negative. |
| |
| 2019-06-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/90760 |
| * symtab.c (symtab_node::set_section): Allow being called on aliases |
| as long as they aren't analyzed yet. |
| |
| 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com> |
| |
| * config/mips/mips.c (mips_final_postscan_insn): Modify call |
| to `mips_set_text_contents_type' to indicate whether a |
| non-debug insn follows. |
| |
| 2019-06-11 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete |
| enabling -mpcrel by default. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Update |
| test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so |
| that the test against -mcpu=future is done first. Then test if |
| -mprefixed-addr is on for -mpcrel. |
| (rs6000_disable_incompatible_switches): Add -mcpu=future support. |
| |
| 2019-06-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90811 |
| * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d |
| instead of and.u%d. |
| |
| 2019-06-11 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (X/[ex]4<Y/[ex]4): Handle conversions. |
| |
| 2019-06-11 Matthew Beliveau <mbelivea@redhat.com> |
| |
| PR c++/90449 - add -Winaccessible-base option. |
| * doc/invoke.texi (Winaccessible-base): Document. |
| |
| 2019-06-11 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR tree-optimization/62041 |
| * fold-const.c (fold_real_zero_addition_p): Handle vectors. |
| |
| 2019-06-11 Jason Merrill <jason@redhat.com> |
| |
| * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory. |
| * tree.c (get_tree_code_name): Likewise. |
| * print-tree.c (print_node): Only briefly print a node with an |
| invalid code. |
| |
| 2019-06-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/90819 |
| * trans-mem.c (tm_memopt_compute_available): Add assertion |
| that blocks is not empty. Formatting fix. |
| |
| 2019-06-11 Martin Liska <mliska@suse.cz> |
| |
| PR c++/87847 |
| * hash-table.h: Extend create_gcc, add one parameter |
| that is passed into hash_table::hash_table. |
| |
| 2019-06-10 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-protos.h (ix86_split_fp_absneg_operator): |
| New prototype. |
| * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator): |
| Emit clobber also for non-sse operations. |
| (ix86_split_fp_absneg_operator): New function. |
| * config/i386/i386.md (SSEMODEF): New mode iterator. |
| (ssevecmodef): New mode attribute. |
| (<code>tf2): Use absneg code iterator. |
| (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator. |
| Add three-operand AVX alternatives. |
| (*<code><mode>2_i387_1): Rename from *absnegxf2_i387. |
| Use absneg code iterator and X87MODEF mode iterator. |
| (absneg fp_reg non-sse splitter): Call absneg code iterator |
| and X87MODEF mode iterator. |
| (absneg general_reg non-sse splitter): Use absneg code iterator |
| and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator. |
| (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg |
| code iterator. Add three-operand AVX alternative. |
| (absneg sse_reg splitter): Use absneg code iterator |
| and SSEMODEF mode iterator. Handle AVX operands. |
| (absneg fp_reg splitter): Use absneg code iterator |
| and MODEF mode iterator. |
| (absneg general_reg splitter): Merge splitters using MODEF mode |
| iterator. Use absneg code iterator. Call |
| ix86_split_fp_absneg_operator. |
| (*<code><mode>2_i387): Rename from *<code><mode>2_1. |
| Do not enable for non-sse modes before reload. |
| (CSGNMODE): Remove. |
| (CSGNVMODE): Ditto. |
| (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and |
| ssevecmodef mode attribute instaed of CSGNVMODE. |
| (copysign<mode>3_const): Ditto. |
| (copysign<mode>3_var): Ditto. |
| * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2. |
| Use absneg code iterator. Simplify code using std::swap. |
| * config/i386/predicates.md (absneg_operator): Remove. |
| |
| 2019-06-10 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-fold.c (get_range_strlen): Update comment that didn't |
| make it into r267503 or related commits. |
| |
| 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| * gcov-tool.c (merge_usage, rewrite_usage): Mark with |
| ATTRIBUTE_NORETURN thus making consistent with overlap_usage. |
| |
| 2019-06-10 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.def (OMP_SCAN): New tree code. |
| * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and |
| OMP_CLAUSE_EXCLUSIVE. |
| * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP. |
| (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define. |
| * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for |
| OMP_CLAUSE_{IN,EX}CLUSIVE. |
| (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE. |
| * tree-nested.c (convert_nonlocal_reference_stmt, |
| convert_local_reference_stmt, convert_gimple_call): Handle |
| GIMPLE_OMP_SCAN. |
| * tree-pretty-print.c (dump_omp_clause): Handle |
| OMP_CLAUSE_{IN,EX}CLUSIVE. |
| (dump_generic_node): Handle OMP_SCAN. |
| * gimple.def (GIMPLE_OMP_SCAN): New gimple code. |
| * gimple.h (gomp_scan): New type. |
| (is_a_helper <gomp_scan *>::test, |
| is_a_helper <const gomp_scan *>::test): New templates. |
| (gimple_build_omp_scan): Declare. |
| (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr, |
| gimple_omp_scan_set_clauses): New inline functions. |
| (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:. |
| * gimple.c (gimple_build_omp_scan): New function. |
| (gimple_copy): Handle GIMPLE_OMP_SCAN. |
| * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise. |
| * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle |
| GIMPLE_OMP_TASKGROUP. |
| (dump_gimple_omp_scan): New function. |
| (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN. |
| * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN. |
| * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise. |
| * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN. |
| (is_gimple_stmt): Handle OMP_SCAN. |
| (gimplify_scan_omp_clauses): Reject inscan reductions on constructs |
| other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE. |
| (gimplify_adjust_omp_clauses): Diagnose inscan reductions not |
| mentioned in nested #pragma omp scan. Handle |
| OMP_CLAUSE_{IN,EX}CLUSIVE. |
| (gimplify_expr): Handle OMP_SCAN. |
| * omp-low.c (check_omp_nesting_restrictions): For parent context, |
| look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in |
| simd constructs. |
| (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle |
| GIMPLE_OMP_SCAN. |
| |
| 2019-06-10 Martin Liska <mliska@suse.cz> |
| |
| * ipa-cp.c (ignore_edge_p): New function. |
| (build_toporder_info): Use it. |
| * ipa-inline.c (ignore_edge_p): New function. |
| (inline_small_functions): Use it. |
| * ipa-pure-const.c (ignore_edge_for_nothrow): |
| Verify opt_for_fn for caller and callee. |
| (ignore_edge_for_pure_const): Likewise. |
| * ipa-reference.c (ignore_edge_p): Extend to check |
| for opt_for_fn. |
| * ipa-utils.c (searchc): Refactor. |
| * ipa-utils.h: Fix coding style. |
| |
| 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_rtx_costs): Update costs. |
| |
| 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc-protos.h (arc_check_ior_const): Declare. |
| (arc_split_ior): Likewise. |
| (arc_check_mov_const): Likewise. |
| (arc_split_mov_const): Likewise. |
| * config/arc/arc.c (arc_print_operand): Fix 'z' letter. |
| (arc_rtx_costs): Replace check Crr with Cax constraint. |
| (prepare_move_operands): Cleanup, remove unused code. |
| (arc_split_ior): New function. |
| (arc_check_ior_const): Likewise. |
| (arc_split_mov_const): Likewise. |
| (arc_check_mov_const): Likewise. |
| * config/arc/arc.md (movsi_insn): Restructure it, and convert it |
| in define_insn_and_split pattern. |
| (iorsi3): Likewise. |
| (mulsi3_v2): Add new matching variant. |
| (andsi3_i): Cleanup pattern. |
| (rotrsi3_cnt1): Update pattern. |
| (rotrsi3_cnt8): New pattern. |
| (ashlsi2_cnt8): Likewise. |
| (ashlsi2_cnt16): Likewise. |
| * config/arc/constraints.md (C0p): Update constraint. |
| (Crr): Remove it. |
| (C0x): New pattern. |
| (Cax): New pattern. |
| |
| 2019-06-10 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): |
| Update coding style. |
| (sem_item_optimizer::dump_cong_classes): |
| Print how many items are in a non-singular class. Improve |
| coding style. |
| |
| 2019-06-10 Martin Liska <mliska@suse.cz> |
| |
| * value-prof.c (dump_histogram_value): Change dump format. |
| (gimple_mod_subtract_transform): Remove legacy comment. |
| |
| 2019-06-10 Martin Liska <mliska@suse.cz> |
| |
| * value-prof.c (dump_histogram_value): Print histogram values |
| only if present. |
| |
| 2019-06-10 Martin Liska <mliska@suse.cz> |
| |
| * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New. |
| (GCOV_SINGLE_VALUE_COUNTERS): Likewise. |
| * ipa-profile.c (ipa_profile_generate_summary): |
| Use get_most_common_single_value. |
| * tree-profile.c (gimple_init_gcov_profiler): |
| Instrument with __gcov_one_value_profiler_v2 |
| and __gcov_indirect_call_profiler_v4. |
| * value-prof.c (dump_histogram_value): |
| Print all values for HIST_TYPE_SINGLE_VALUE. |
| (stream_out_histogram_value): Update assert for |
| N values. |
| (stream_in_histogram_value): Set number of |
| counters for HIST_TYPE_SINGLE_VALUE. |
| (get_most_common_single_value): New. |
| (gimple_divmod_fixed_value_transform): |
| Use get_most_common_single_value. |
| (gimple_ic_transform): Likewise. |
| (gimple_stringops_transform): Likewise. |
| (gimple_find_values_to_profile): Set number |
| of counters for HIST_TYPE_SINGLE_VALUE. |
| * value-prof.h (get_most_common_single_value): |
| New. |
| |
| 2019-06-10 Martin Liska <mliska@suse.cz> |
| |
| * hash-map.h: Pass default value to hash_table ctor. |
| * hash-table.h: Add default value to call of a ctor. |
| |
| 2019-06-08 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/invoke.texi (C Dialect Options): Minor grammatical change. |
| (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL" |
| |
| 2019-06-07 John David Anglin <danglin@gcc.gnu.orig> |
| |
| PR target/90751 |
| * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment. |
| Call pa_output_function_label. |
| (TARGET_ASM_FUNCTION_PROLOGUE): define. |
| * config/pa/pa-protos.h (pa_output_function_label): Declare. |
| * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED |
| to declaration. |
| (pa_linux_output_function_prologue): Declare. |
| (TARGET_ASM_FUNCTION_PROLOGUE): Delete define. |
| (pa_output_function_label): New. |
| (pa_output_function_prologue): Revise to use pa_output_function_label. |
| (pa_linux_output_function_prologue): New. |
| * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define. |
| |
| 2019-06-07 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-vrp.h (value_range_base::intersect): New. |
| (value_range::intersect_helper): Move from here... |
| (value_range_base::intersect_helper): ...to here. |
| * tree-vrp.c (value_range::intersect_helper): Rename to... |
| (value_range_base::intersect_helper): ...this, and rewrite to |
| return a value instead of modifying THIS in place. |
| Also, move equivalence handling... |
| (value_range::intersect): ...here, while calling intersect_helper. |
| * gimple-fold.c (size_must_be_zero_p): Use value_range_base when |
| calling intersect. |
| * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge): |
| Same. |
| * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same. |
| |
| 2019-06-07 Jakub Jelinek <jakub@redhat.com> |
| |
| * Makefile.in (genprogerr): Add condmd. |
| (genprog): Remove it here. |
| |
| 2019-06-07 Andrew Stubbs <ams@codesourcery.com> |
| |
| * doc/invoke.texi (AMD GCN Options): Add gfx906. |
| |
| 2019-06-07 Richard Biener <rguenther@suse.de> |
| |
| PR debug/90574 |
| * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels |
| that appear after user labels. |
| |
| 2019-06-07 Martin Liska <mliska@suse.cz> |
| |
| * cselib.c (cselib_init): Disable hash table |
| sanitization. |
| * hash-set.h: Pass new default argument to m_table. |
| * hash-table.c: Add global variable with hash table |
| sanitization limit. |
| * hash-table.h (Allocator>::hash_table): Add new argument |
| to ctor. |
| (hashtab_chk_error): New. |
| * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New. |
| * toplev.c (process_options): Set hash_table_sanitize_eq_limit |
| from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value. |
| |
| 2019-06-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * common.opt (flto-odr-type-merging): Ignore. |
| * invoke.texi (-flto-odr-type-merging): Remove. |
| * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove. |
| (can_be_vtable_hashed_p): Remove. |
| (hash_odr_vtable): Remove. |
| (odr_vtable_hasher::hash): Remove. |
| (types_same_for_odr): Remove. |
| (types_odr_comparable): Remove. |
| (odr_vtable_hasher::equal): Remove. |
| (odr_vtable_hash_type, odr_vtable_hash): Remove. |
| (add_type_duplicate): Do not synchronize vtable and name hashtables. |
| (get_odr_type): Do not use vtable hash. |
| (dump_odr_type): Remove commented out code. |
| (build_type_inheritance_graph): Do not allocate vtable hash. |
| (rebuild_type_inheritance_graph): Do not delete vtable hash. |
| * ipa-utils.h (type_with_linkage_p): Drop vtable hash path. |
| (odr_type_p): Likewise. |
| * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering |
| test. |
| |
| 2019-06-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up |
| immediately after same_types_for_tbaa_p returns -1 and continue |
| looking for possible exact match; if matching types are arrays |
| watch for partial overlaps. |
| (indirect_ref_may_alias_decl_p): Watch for partial array overlaps. |
| (indirect_refs_may_alias_p): Do type based disambiguation first; |
| update comment. |
| |
| 2019-06-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p. |
| |
| 2019-06-07 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Remove param. |
| * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): |
| Remove. |
| * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise. |
| (GCOV_ICALL_TOPN_NCOUNTS): Likewise. |
| * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise. |
| * profile.c (instrument_values): Remove |
| HIST_TYPE_INDIR_CALL_TOPN. |
| * tree-profile.c (init_ic_make_global_vars): |
| Always build __gcov_indirect_call only. |
| (gimple_init_gcov_profiler): Remove usage |
| of PARAM_INDIR_CALL_TOPN_PROFILE. |
| (gimple_gen_ic_profiler): Likewise. |
| * value-prof.c (dump_histogram_value): Likewise. |
| (stream_in_histogram_value): Likewise. |
| (gimple_indirect_call_to_profile): Likewise. |
| (gimple_find_values_to_profile): Likewise. |
| * value-prof.h (enum hist_type): Likewise. |
| |
| 2019-06-07 Martin Liska <mliska@suse.cz> |
| |
| * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the |
| function. |
| |
| 2019-06-07 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/78902 |
| * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New. |
| (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove. |
| (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New. |
| (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New. |
| (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove. |
| (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove. |
| (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New. |
| (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New. |
| (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New. |
| (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove. |
| (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New. |
| (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove. |
| (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST): |
| New. |
| (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove. |
| (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New. |
| (ATTR_MALLOC_NOTHROW_NONNULL): Remove. |
| (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New. |
| (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New. |
| (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove. |
| (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New. |
| (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New. |
| * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use |
| warn_unused_result attribute. |
| (BUILT_IN_STRDUP): Likewise. |
| (BUILT_IN_STRNDUP): Likewise. |
| (BUILT_IN_ALLOCA): Likewise. |
| (BUILT_IN_CALLOC): Likewise. |
| (BUILT_IN_MALLOC): Likewise. |
| (BUILT_IN_REALLOC): Likewise. |
| |
| 2019-06-06 Jim Wilson <jimw@sifive.com> |
| |
| PR target/89955 |
| * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted. |
| * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added. |
| * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added. |
| |
| 2019-06-06 Martin Sebor <msebor@redhat.com> |
| |
| * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article. |
| (handle_builtin_malloc): Remove trailing spaces. |
| (handle_builtin_memset): Same. |
| (handle_builtin_memcmp): Same. |
| (compute_string_length): Same. |
| (determine_min_objsize): Same. |
| (handle_builtin_string_cmp): Same. |
| (handle_char_store): Same. Break up excessively long line. |
| |
| 2019-06-06 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (build_reconstructed_reference): Drop the alignment |
| check. |
| |
| 2019-06-06 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (struct access): New field grp_same_access_path. |
| (dump_access): Dump it. |
| (build_reconstructed_reference): New function. |
| (build_ref_for_model): Use it if possible. |
| (path_comparable_for_same_access): New function. |
| (same_access_path_p): Likewise. |
| (sort_and_splice_var_accesses): Set the new flag. |
| (analyze_access_subtree): Likewise. |
| (propagate_subaccesses_across_link): Propagate zero value of the new |
| flag down the access tree. |
| |
| 2019-06-06 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906. |
| * config/gcn/gcn.opt (gpu_type): Add gfx906. |
| * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib. |
| (MULTILIB_DIRNAMES): Rename gcn5 to gfx900. |
| Add gfx906. |
| |
| 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR tree-optimization/90332 |
| * config/aarch64/aarch64.c (aarch64_expand_vector_init): |
| Handle VALS containing two vectors. |
| * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename |
| to... |
| (@aarch64_combinez<mode>): ... This. |
| (*aarch64_combinez_be<mode>): Rename to... |
| (@aarch64_combinez_be<mode>): ... This. |
| (vec_init<mode><Vhalf>): New define_expand. |
| * config/aarch64/iterators.md (Vhalf): Handle V8HF. |
| |
| 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift |
| library functions only when not optimizing for size. |
| (ashlsi3): Likewise. |
| (ashrhi3): Likewise. |
| (ashrsi3): Likewise. |
| (lshrhi3): Likewise. |
| (lshrsi3): Likewise. |
| |
| 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| PR rtl-optimization/88751 |
| * ira.c (ira): Use the number of the actually referenced registers |
| when calculating the threshold. |
| |
| 2019-06-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * configure: Regenerate. |
| |
| 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/msp430.md (ashlhi3): Force shift src operand into a |
| register if it is in memory, so the shift can be emulated with a rotate |
| instruction. |
| (ashrhi3): Likewise. |
| (lshrhi3): Likewise. |
| |
| 2019-06-06 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/87954 |
| * match.pd: Simplify mult where both arguments are 0 or 1. |
| |
| 2019-06-06 Richard Biener <rguenther@suse.de> |
| |
| * vr-values.c (vr_values::extract_range_from_ssa_name): Do not |
| put equivalences on UNDEFINED ranges. |
| * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): |
| Make sure to drop defs of stmts added during simplification |
| to VARYING. |
| |
| 2019-06-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c: Include tree-cfg.h. |
| (make_heapvar): Do not make heap vars artificial. |
| (find_func_aliases_for_builtin_call): Handle stack allocation |
| functions. |
| (find_func_aliases): Delay processing of simple enough returns |
| in non-IPA mode. |
| (set_uids_in_ptset): Adjust. |
| (find_what_var_points_to): Likewise. |
| (solve_constraints): Do not dump points-to sets here. |
| (compute_points_to_sets): Post-process return statements, |
| amending the escaped solution. Dump points-to sets afterwards. |
| (ipa_pta_execute): Dump points-to sets. |
| |
| 2019-06-06 Martin Liska <mliska@suse.cz> |
| |
| PR web/87933 |
| * doc/install.texi: Fix HTML headers and |
| titles for 'Installing GCC' pages. |
| |
| 2019-06-06 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf-gimple.h (dump_message_1): Remove. |
| (dump_message): Likewise. |
| (return_false_with_message_1): Print also file. |
| (return_false_with_msg): Likewise. |
| (return_with_result): Likewise. |
| (return_with_debug): Likewise. |
| * ipa-icf.c (sem_function::equals_private): Remove call |
| to dump_message. |
| |
| 2019-06-05 Hongtao Liu <hongtao.liu@intel.com> |
| |
| * config/i386/sse.md (define_mode_suffix vecmemsuffix): New. |
| (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable |
| memory operand for it. |
| (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto. |
| |
| 2019-06-05 Martin Sebor <msebor@redhat.com> |
| |
| * config/i386/i386-features.c (ix86_get_function_versions_dispatcher): |
| Adjust quoting and hyphenation. |
| * convert.c (convert_to_real_1): Same. |
| * gcc.c (driver_wrong_lang_callback): Same. |
| (driver::handle_unrecognized_options): Same. |
| * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same. |
| * opts-common.c (cmdline_handle_error): Same. |
| (read_cmdline_option): Same. |
| * opts-global.c (complain_wrong_lang): Same. |
| (print_ignored_options): Same. |
| (handle_common_deferred_options): Same. |
| * pretty-print.h: Same. |
| * print-rtl.c (debug_bb_n_slim): Same. |
| * sched-rgn.c (make_pass_sched_fusion): Same. |
| * tree-cfg.c (verify_gimple_assign_unary): Same. |
| (verify_gimple_label): Same. |
| * tree-ssa-operands.c (verify_ssa_operands): Same. |
| * varasm.c (do_assemble_alias): Same. |
| (assemble_alias): Same. |
| |
| 2019-06-05 Richard Henderson <rth@twiddle.net> |
| |
| * config/alpha/alpha.c (direct_return): Move down after |
| struct machine_function definition; use saved frame_size; |
| return bool. |
| (struct machine_function): Add sa_mask, sa_size, frame_size. |
| (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ... |
| (alpha_compute_frame_layout): ... new function. |
| (TARGET_COMPUTE_FRAME_LAYOUT): New. |
| (alpha_initial_elimination_offset): Use saved sa_size. |
| (alpha_vms_initial_elimination_offset): Likewise. |
| (alpha_vms_can_eliminate): Remove alpha_sa_size call. |
| (alpha_expand_prologue): Use saved frame data. Merge integer |
| and fp register save loops. |
| (alpha_expand_epilogue): Likewise. |
| (alpha_start_function): Use saved frame data. |
| * config/alpha/alpha-protos.h (direct_return): Update. |
| (alpha_sa_size): Remove. |
| |
| 2019-06-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a |
| multiplication by a power-of-two value. |
| (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value |
| and turn the modulo operation into a masking operation. |
| |
| 2019-06-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/90733 |
| * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs |
| with VOIDmode inner operands. |
| |
| 2019-06-05 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/90726 |
| * tree-ssa-loop-niter.c (expand_simple_operations): Do not |
| turn an expression graph into a tree. |
| |
| 2019-06-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-expand.c (struct omp_region): Add has_lastprivate_conditional |
| member. |
| (expand_parallel_call): If region->inner->has_lastprivate_conditional, |
| treat it like explicit monotonic schedule modifier. |
| (expand_omp_for): Initialize has_lastprivate_conditional. |
| If fd.lastprivate_conditional != 0, treat it like explicit monotonic |
| schedule modifier. |
| |
| * omp-low.c (lower_rec_input_clauses): For lastprivate conditional |
| references, lookup in in hash map MEM_REF operand instead of the |
| MEM_REF itself. |
| (lower_omp_1): When looking for lastprivate conditional assignments, |
| handle MEM_REFs with REFERENCE_TYPE operands. |
| |
| * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and |
| on privatization clauses OMP_CLAUSE_DECL is privatized by reference |
| and references a VLA. Handle references to non-VLAs if is_simd |
| all privatization clauses like reductions. |
| (lower_rec_input_clauses) <case do_private, case do_firstprivate>: |
| If omp_is_reference, use always omp simd arrays and set |
| DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses |
| fails, emit reference initialization. |
| |
| 2019-06-05 Hongtao Liu <hongtao.liu@intel.com> |
| |
| PR target/89803 |
| * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask, |
| _mm_mask_fpclass_sd_mask): New intrinsics. |
| (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins. |
| * config/i386/i386-builtin.def |
| (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask): |
| New builtins. |
| (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted. |
| * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT), |
| DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted. |
| * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT, |
| case QI_FTYPE_V2SF_INT): Ditto. |
| * config/i386/sse.md |
| (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>): |
| Extended to insnstructions with mask operands. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wp"): |
| Delete. |
| (define_register_constraint "wq"): Delete. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq. |
| * config/rs6000/vsx.md (define_mode_attr VSr3): Delete. |
| (define_mode_attr VSa): Delete. |
| (define_mode_attr VSisa): New. |
| (rest of file): Adjust. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf. |
| (define_attr "enabled"): Handle those new isa values. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/vsx.md (define_mode_attr VSr4): Delete. |
| (define_mode_attr VSr5): Delete. |
| (define_mode_attr VStype_sqrt): Delete. |
| (define_mode_iterator VSX_SPDP): Delete. |
| (define_mode_attr VS_spdp_res): Delete. |
| (define_mode_attr VS_spdp_insn): Delete. |
| (define_mode_attr VS_spdp_type): Delete. |
| (*vsx_sqrt<mode>2): Adjust. |
| (vsx_<VS_spdp_insn>): Delete, split to... |
| (vsx_xscvdpsp): ... this. New. And... |
| (vsx_xvcvspdp): ... this. New. And... |
| (vsx_xvcvdpsp): ... this. New. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF |
| and V2DF. |
| * config/rs6000/vsx.md (define_mode_attr VSs): Delete. |
| (rest of file): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>. |
| (vsx_extract_<mode>_var): Ditto. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI |
| with just "wa". |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "ww"): |
| Delete. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_ww. |
| * config/rs6000/rs6000.md: Adjust. |
| * config/rs6000/vsx.md: Adjust. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments. |
| (define_mode_attr sd): New. |
| (define_mode_attr s): New. |
| (define_mode_attr Ftrad): Delete. |
| (define_mode_attr Fvsx): Delete. |
| (define_mode_attr Fs): Delete. |
| (rest of file): Use the new mode attributes. |
| * config.rs6000/vsx.md: Use the new mode attributes. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W |
| with just "wa". |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/vsx.md (define_mode_attr VSr2): Delete. |
| (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are |
| used with VSX_B, VSX_D, or VSX_F, with just "wa". |
| |
| 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| PR target/78263 |
| * config/rs6000/altivec.h: Don't #define vector, pixel, bool for |
| C++ with strict ANSI requirements. |
| |
| 2019-06-04 Marc Glisse <marc.glisse@inria.fr> |
| |
| * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip |
| computations when step is 1. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wf"): |
| Delete. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wf. |
| * config/rs6000/rs6000.md: Adjust. |
| * config/rs6000/vsx.md: Adjust. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-04 Andrew Pinski <apinski@marvell.com> |
| |
| * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): |
| Fix ILP32 value. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wd"): |
| Delete. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wd. |
| * config/rs6000/rs6000.md: Adjust. |
| * config/rs6000/vsx.md: Adjust. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete. |
| (rest of file): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete. |
| (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust. |
| (vsx_splat_<mode>_reg): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "ws"): |
| Delete. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_ws. |
| * config/rs6000/rs6000.md: Adjust. |
| * config/rs6000/vsx.md: Adjust. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wv"): |
| Delete. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wv. |
| * config/rs6000/rs6000.md: Adjust. |
| * config/rs6000/vsx.md: Adjust. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wi"): |
| Delete. |
| (define_register_constraint "wt"): Delete. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt. |
| * config/rs6000/rs6000.md: Adjust. |
| * config/rs6000/vsx.md: Adjust. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove |
| const. |
| * config/aarch64/aarch64.c (aarch64_asm_output_external): Call |
| default_elf_asm_output_external. |
| |
| 2019-06-04 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf.c (INCLUDE_LIST): Remove. |
| (sem_item_optimizer::execute): Remove call to init_wpa. |
| * ipa-icf.h (init_wpa): Remove. |
| |
| 2019-06-04 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate |
| conditional on combined for simd. |
| * omp-low.c (struct omp_context): Add combined_into_simd_safelen0 |
| member. |
| (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1 |
| constructs, don't remove lastprivate_conditional_map, but instead set |
| ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points |
| to parent construct temporaries. |
| (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0 |
| like !ctx->lastprivate_conditional_map. |
| (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0, |
| use up->outer context instead of up. |
| * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if |
| gimple_omp_for_combined_p. |
| (expand_omp_for_static_nochunk): Likewise. |
| (expand_omp_for_static_chunk): Add forgotten cond_var bump that was |
| probably moved over into expand_omp_for_generic rather than being copied |
| there. |
| |
| 2019-06-04 Martin Liska <mliska@suse.cz> |
| |
| * value-prof.c (dump_histogram_value): Fix typo. |
| (gimple_mod_subtract_transform): Likewise. |
| |
| 2019-06-04 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/90726 |
| * tree-chrec.c (chrec_contains_symbols): Add to visited. |
| (tree_contains_chrecs): Likewise. |
| (chrec_contains_symbols_defined_in_loop): Move here and avoid |
| exponential behaivor from ... |
| * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop): |
| ... here. |
| (expression_expensive_p): Avoid exponential behavior and compute |
| expanded size, rejecting any expansion. |
| * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove. |
| (idx_contains_abnormal_ssa_name_p): Likewise. |
| (contains_abnormal_ssa_name_p_1): New helper for walk_tree. |
| (contains_abnormal_ssa_name_p): Simplify and use |
| walk_tree_without_duplicates. |
| |
| 2019-06-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90738 |
| Revert |
| 2019-06-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original |
| full reference tree and record in ref->ref. |
| (vn_reference_lookup_3): Pass in original ref to |
| ao_ref_init_from_vn_reference. |
| (vn_reference_lookup): Likewise. |
| * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype. |
| * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): |
| Handle non-decl bases in the original reference. |
| |
| 2019-06-04 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count |
| number of references. |
| (sem_item_optimizer::do_congruence_step): |
| (sem_item_optimizer::worklist_push): Dump how references |
| a class has. |
| (sem_item_optimizer::worklist_pop): Use heap. |
| (sem_item_optimizer::process_cong_reduction): Likewise. |
| * ipa-icf.h: Use fibonacci_heap insteam of std::list. |
| |
| 2019-06-04 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf.h (struct sem_usage_pair_hash): New. |
| (sem_usage_pair_hash::hash): Likewise. |
| (sem_usage_pair_hash::equal): Likewise. |
| (struct sem_usage_hash): Likewise. |
| * ipa-icf.c (sem_item::sem_item): Initialize |
| referenced_by_count. |
| (sem_item::add_reference): Register a reference |
| in ref_map and not in target->usages. |
| (sem_item::setup): Remove initialization of |
| dead vectors. |
| (sem_item::~sem_item): Remove usage of dead vectors. |
| (sem_item::dump): Remove dump of references. |
| (sem_item_optimizer::sem_item_optimizer): Initialize |
| m_references. |
| (sem_item_optimizer::read_section): Remove useless |
| dump. |
| (sem_item_optimizer::parse_funcs_and_vars): Likewise here. |
| (sem_item_optimizer::build_graph): Pass m_references |
| to ::add_reference. |
| (sem_item_optimizer::verify_classes): Remove usage of dead |
| vectors. |
| (sem_item_optimizer::traverse_congruence_split): Return true |
| when a class is split. |
| (sem_item_optimizer::do_congruence_step_for_index): Use |
| hash_map for look up of (sem_item *, index). That brings |
| significant speed up. |
| (sem_item_optimizer::do_congruence_step): Return true |
| when a split is done. |
| (congruence_class::is_class_used): Use referenced_by_count. |
| |
| 2019-06-04 Alan Modra <amodra@gmail.com> |
| |
| PR target/90689 |
| * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge |
| error. |
| |
| 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.h (MASK_MFPGPR): Delete. |
| * config/rs6000/rs6000.c (direct_move_p): Adjust. |
| (rs6000_secondary_reload_simple_move): Adjust. |
| (rs6000_opt_masks): Neuter the "mfpgpr" option. |
| * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust. |
| * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust |
| comment. |
| (power6x): Adjust. |
| * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust. |
| (floatunssi<mode>2_lfiwzx): Adjust. |
| (fix_trunc<mode>si2_stfiwx): Adjust. |
| (fixuns_trunc<mode>si2_stfiwx): Adjust. |
| * config/rs6000/rs6000.opt (mno-mfpgpr): New. |
| (mfpgpr): Mark as deprecated. |
| * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr. |
| (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust. |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr. |
| |
| 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wg"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wg. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64): |
| Delete "wg" alternatives. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-03 Alan Modra <amodra@gmail.com> |
| |
| * bb-reorder.c (copy_bb_p): Don't overflow size calculation. |
| (get_uncond_jump_length): Assert length less than INT_MAX and |
| non-negative. |
| |
| 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR middle-end/64242 |
| * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule |
| block. |
| (expand_builtin_nonlocal_goto): Likewise. |
| |
| 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare. |
| (aarch64_asm_output_external): Declare. |
| * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New. |
| (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs. |
| (aarch64_asm_output_alias): New. |
| (aarch64_asm_output_external): New. |
| * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define. |
| (ASM_OUTPUT_EXTERNAL): Define. |
| |
| 2019-06-03 Aldy Hernandez <aldyh@redhat.com> |
| * tree-vrp.h (value_range_base::nonzero_p): New. |
| (value_range_base::set_nonnull): Rename to... |
| (value_range_base::set_nonzero): ...this. |
| (value_range_base::set_null): Rename to... |
| (value_range_base::set_zero): ...this. |
| (value_range::set_nonnull): Remove. |
| (value_range::set_null): Remove. |
| * tree-vrp.c (range_is_null): Remove. |
| (range_is_nonnull): Remove. |
| (extract_range_from_binary_expr): Use value_range_base::*zero_p |
| instead of range_is_*null. |
| (extract_range_from_unary_expr): Same. |
| (value_range_base::set_nonnull): Rename to... |
| (value_range_base::set_nonzero): ...this. |
| (value_range::set_nonnull): Remove. |
| (value_range_base::set_null): Rename to... |
| (value_range_base::set_zero): ...this. |
| (value_range::set_null): Remove. |
| (extract_range_from_binary_expr): Rename set_*null uses to |
| set_*zero. |
| (extract_range_from_unary_expr): Same. |
| (union_helper): Same. |
| * vr-values.c (get_value_range): Use set_*zero instead of |
| set_*null. |
| (vr_values::extract_range_from_binary_expr): Same. |
| (vr_values::extract_range_basic): Same. |
| |
| 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR driver/90684 |
| * opts.c (parse_and_check_align_values): Allow 4 alignment values. |
| |
| 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/iterators.md (MAX_OPP): New code attr. |
| * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Rename to... |
| (aarch64_<su>abd<mode>_3): ... This. |
| (<sur>sadv16qi): Add TARGET_DOTPROD expansion. |
| |
| 2019-06-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original |
| full reference tree and record in ref->ref. |
| (vn_reference_lookup_3): Pass in original ref to |
| ao_ref_init_from_vn_reference. |
| (vn_reference_lookup): Likewise. |
| * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype. |
| * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): |
| Handle non-decl bases in the original reference. |
| |
| 2019-06-03 Martin Liska <mliska@suse.cz> |
| |
| * doc/generic.texi: Remove Java Trees. |
| |
| 2019-06-03 Martin Liska <mliska@suse.cz> |
| |
| * fold-const.c (operand_equal_p): Fix typo as compare_tree_int |
| returns 0 when operands are equal. |
| |
| 2019-06-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90716 |
| * tree-loop-distribution.c (destroy_loop): Process blocks in |
| correct order. |
| |
| 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR target/88837 |
| * vector-builder.h (vector_builder::count_dups): New method. |
| * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init): |
| Declare prototype. |
| * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @. |
| (vec_init<mode><Vel>): New pattern. |
| * config/aarch64/aarch64.c (emit_insr): New function. |
| (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise. |
| (aarch64_sve_expand_vector_init_insert_elems): Likewise. |
| (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise. |
| (aarch64_sve_expand_vector_init): Define two overloaded functions. |
| |
| 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com> |
| |
| PR tree-optimization/90681 |
| * internal-fn.c (mask_load_direct): Mark as non-vectorizable again. |
| * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a |
| special case for SLP, but fail on non-groupped loads. |
| |
| 2019-06-03 Martin Liska <mliska@suse.cz> |
| |
| * cfg.c (debug): Use TDF_DETAILS for debug and |
| print edge info only once. |
| |
| 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/90539 |
| * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor. |
| |
| 2019-06-01 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/90694 |
| * tree-pretty-print.c (dump_generic_node): Add parentheses. |
| |
| 2019-05-31 Jan Hubicka <jh@suse.cz> |
| |
| * alias.c: Include ipa-utils.h. |
| (get_alias_set): Try to complete ODR type via ODR type hash lookup. |
| * ipa-devirt.c (prevailing_odr_type): New. |
| * ipa-utils.h (previaling_odr_type): Declare. |
| |
| 2019-05-31 H.J. Lu <hongjiu.lu@intel.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| PR target/89355 |
| * config/i386/i386-features.c (rest_of_insert_endbranch): Remove |
| NOTE_INSN_DELETED_LABEL check. |
| |
| 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com> |
| Robert Suchanek <robert.suchanek@mips.com> |
| |
| * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st |
| and 3rd operands of the fmadd/fmsub/maddv builtin. |
| |
| 2019-05-31 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define. |
| * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional |
| on OMP_SIMD if not nested inside of worksharing loop that also has |
| lastprivate conditional clause for the same decl. |
| (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed. |
| * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also |
| on simd. |
| (lower_rec_input_clauses): Likewise. Handle lastprivate conditional |
| on simd construct. |
| (lower_lastprivate_conditional_clauses): Handle lastprivate conditional |
| on simd construct. |
| (lower_lastprivate_clauses): Likewise. |
| (lower_omp_sections): Call lower_lastprivate_conditional_clauses before |
| calling lower_rec_input_clauses. |
| (lower_omp_for): Likewise. |
| (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_ |
| clause on simd construct. |
| * omp-expand.c (expand_omp_simd): Initialize cond_var if |
| OMP_CLAUSE__CONDTEMP_ clause is present. |
| |
| * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on |
| ivar and lvar. |
| |
| 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com> |
| |
| PR c/43673 |
| * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with |
| TEX_D32, TEX_D64 or TEX_D128. |
| |
| 2019-05-31 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (~(vec?cst1:cst2)): New transformation. |
| |
| 2019-05-31 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator. |
| ((size_t)(A /[ex] B) CMP C): New transformation. |
| |
| 2019-05-31 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/md.texi: Document define_insn_and_rewrite. |
| * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code. |
| * gensupport.c (queue_elem): Update comment. |
| (replace_operands_with_dups): New function. |
| (gen_rewrite_sequence): Likewise. |
| (process_rtx): Handle DEFINE_INSN_AND_REWRITE. |
| * read-rtl.c (apply_subst_iterator): Likewise. |
| (add_condition_to_rtx, named_rtx_p): Likewise. |
| (rtx_reader::read_rtx_operand): Likewise. |
| * config/aarch64/aarch64-sve.md |
| (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to... |
| (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use |
| define_insn_and_rewrite. |
| (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites. |
| Remove separate define_split. |
| |
| 2019-05-31 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-alias.c (type_has_components_p): New function. |
| (aliasing_component_refs_p): Use it. |
| |
| 2019-05-31 Martin Liska <mliska@suse.cz> |
| |
| * gdbhooks.py: Add const_tree to TreePrinter. |
| |
| 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> |
| |
| PR debug/86964 |
| * common.opt (feliminate-unused-debug-symbols): Enable by default. |
| * doc/invoke.texi (Debugging Options): Document new default of |
| -feliminate-unused-debug-symbols and remove restriction to 'stabs'. |
| |
| 2019-05-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/90671 |
| * tree-ssa-threadupdate.c (ssa_create_duplicates): If |
| template_block used to be empty on the first call, don't use |
| gsi_split_seq_after and gsi_insert_seq_after, but remember whole |
| seq with bb_seq and set it with set_bb_seq. |
| |
| 2019-05-31 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New. |
| |
| 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com> |
| Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/predicates.md (pcrel_address): New define_predicate. |
| (prefixed_mem_operand): Likewise. |
| (non_prefixed_mem_operand): Likewise. |
| * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New |
| prototype. |
| * config/rs6000/rs6000.c (print_operand_address): Handle |
| PC-relative addresses. |
| (mode_supports_prefixed_address_p): New function. |
| (rs6000_prefixed_address): New function. |
| * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define. |
| (SYMBOL_REF_PCREL_P): Likewise. |
| |
| 2019-05-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP. |
| (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP. |
| (gimplify_omp_for): If worksharing loop with lastprivate conditional |
| is nested inside of parallel region, add _condtemp_ clause to both. |
| * tree-nested.c (convert_nonlocal_omp_clauses, |
| convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of |
| assertion failure. |
| * omp-general.h (struct omp_for_data): Add have_pointer_condtemp |
| member. |
| * omp-general.c (omp_extract_for_data): Compute it. |
| * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_. |
| (lower_rec_input_clauses): Likewise. |
| (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_ |
| clause is already present, just add one further one after it. |
| (lower_lastprivate_clauses): Handle cond_ptr with array type. |
| (lower_send_shared_vars): Clear _condtemp_ vars. |
| (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical |
| or section or taskgroup. |
| * omp-expand.c (determine_parallel_type): Disallow combining only if |
| first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining |
| of parallel sections if OMP_CLAUSE__CONDTEMP_ is present. |
| (expand_omp_for_generic, expand_omp_for_static_nochunk, |
| expand_omp_for_static_chunk, expand_omp_for): Use |
| fd->have_pointer_condtemp instead of fd->lastprivate_conditional to |
| determine if a special set of API routines are needed and if condtemp |
| needs to be initialized, while always initialize cond_var if |
| fd->lastprivate_conditional is non-zero. |
| |
| 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com> |
| Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/constraints.md (eI): New constraint. |
| * config/rs6000/predicates.md (cint34_operand): New predicate. |
| * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define. |
| (SIGNED_34BIT_OFFSET_P): Likewise. |
| * doc/md.texi (eI): Document constraint. |
| |
| 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*fabd<mode>3): New. |
| |
| 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com> |
| Michael Meissner <meissner@linux.ibm.com> |
| |
| * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define. |
| (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS. |
| (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE. |
| (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR. |
| (OTHER_FUTURE_MASKS): Likewise. |
| (POWERPC_MASKS): Likewise. |
| * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is |
| specified without -mprefixed-addr or -mcpu=future. Error if |
| -mprefixed-addr is specified without -mcpu=future. |
| (rs6000_opt_masks): Add entry for prefixed-addr. |
| * rs6000.opt (mprefixed-addr): New option. |
| |
| 2019-05-30 Sam Tebbs <sam.tebbs@arm.com> |
| |
| * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add |
| cfun->is_thunk check. |
| |
| 2019-05-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght |
| to length. |
| |
| 2019-05-30 Martin Liska <mliska@suse.cz> |
| |
| * gdbinit.in: Fix 'ptc' command. Add trt |
| that prints TREE_TYPE($). |
| |
| 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com> |
| Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel |
| calls here... |
| (rs6000_indirect_call_template_1): ...and here. |
| (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave, |
| plt16_ha, plt16_lo, mtctr indirect calls. Use |
| rs6000_pltseq_enum. |
| (rs6000_decl_ok_for_sibcall): New function. |
| (rs6000_function_ok_for_sibcall): Refactor. |
| (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel. |
| (rs6000_call_aix): Don't emit toc restore rtl for indirect calls |
| when pcrel. Reorganize. |
| (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel. |
| * rs6000.h (rs6000_pltseq_enum): New enum. |
| * rs6000.md (UNSPEC_PLT_PCREL): New unspec. |
| (*pltseq_tocsave): Use rs6000_pltseq_enum. |
| (*pltseq_plt16_ha): Likewise. |
| (*pltseq_plt16_lo): Likewise. |
| (*pltseq_mtctr): Likewise. |
| (*pltseq_plt_pcrel): New insn. |
| (*call_local_aix): Handle @notoc calls. |
| (*call_value_local_aix): Likewise. |
| (*call_nonlocal_aix): Adjust lengths for pcrel calls. |
| (*call_value_nonlocal_aix): Likewise. |
| (*call_indirect_pcrel): New insn. |
| (*call_value_indirect_pcrel): Likewise. |
| |
| |
| 2019-05-29 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (*save_multiple<mode>): Rename from |
| save_multiple<mode>. |
| (*restore_multiple<mode>): Rename from restore_multiple<mode>. |
| (*restore_multiple_and_return<mode>): Rename from |
| restore_multiple_and_return<mode>. |
| (*restore_multiple_leave_return<mode>): Rename from |
| restore_multiple_leave_return<mode>. |
| |
| 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp> |
| |
| * config.gcc (rx-*-linux*): New target. |
| * config/rx/elf.opt: New file. |
| * config/rx/linux.h: Likewise. |
| * config/rx/t-linux: Likewise. |
| * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined, |
| make it zero. |
| * config/rx/rx.h (ASM_APP_ON): Allow to be overridden. |
| (ASM_APP_OFF): Likewise. |
| * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were |
| moved elsewhere. |
| |
| 2019-05-29 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main |
| variants are pointer equivalent. |
| |
| 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com> |
| |
| * config/aarch64/aarch64-c.c: Added TARGET_SVE2. |
| * config/aarch64/aarch64-sve2.md: New file. |
| (<u>avg<mode>3_floor): New pattern. |
| (<u>avg<mode>3_ceil): Likewise. |
| (*<sur>h<addsub><mode>): Likewise. |
| * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2. |
| * config/aarch64/aarch64.md: Include aarch64-sve2.md. |
| |
| 2019-05-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/90543 |
| * optc-save-gen.awk: In cl_optimization_print, use correct condition |
| for var_opt_string printing. In cl_optimization_print_diff, print |
| (null) instead of invoking undefined behavior if one of the |
| var_opt_string pointers is NULL and use && instead of first || in the |
| guarding condition. For var_target_other options, handle const char * |
| target variables similarly to const char * optimize node variables. |
| |
| 2019-05-29 Sam Tebbs <sam.tebbs@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add |
| AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716. |
| * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins): |
| Add autib1716 and pacib1716 initialisation. |
| * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks |
| for autib1716 and pacib1716. |
| * config/aarch64/aarch64-protos.h (aarch64_key_type, |
| aarch64_post_cfi_startproc): Define. |
| * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern. |
| * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection, |
| aarch64_handle_pac_ret_protection): Set default sign key to A. |
| * config/aarch64/aarch64.c (aarch64_expand_epilogue, |
| aarch64_expand_prologue): Add check for b-key. |
| * config/aarch64/aarch64.c (aarch64_ra_sign_key, |
| aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define. |
| * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define. |
| * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key". |
| * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716, |
| UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716, |
| UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP. |
| * config/aarch64/aarch64.md (do_return): Add check for b-key. |
| * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace |
| pauth_hint_num_a with pauth_hint_num. |
| * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace |
| pauth_hint_num_a with pauth_hint_num. |
| * config/aarch64/aarch64.opt (msign-return-address=): Deprecate. |
| * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP, |
| UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP. |
| * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716, |
| UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716. |
| * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716, |
| UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP, |
| UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP. |
| * config/aarch64/iterators.md (pauth_hint_num_a): Replace |
| UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and |
| UNSPEC_AUTIA1716 respectively. |
| * config/aarch64/iterators.md (pauth_hint_num_a): Rename to pauth_hint_num |
| and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP, UNSPEC_PACIB1716, UNSPEC_AUTIB1716. |
| * doc/invoke.texi (-mbranch-protection): Add b-key type. |
| * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename |
| UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP. |
| |
| 2019-05-29 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (struct gimplify_omp_ctx): Add clauses member. |
| (gimplify_scan_omp_clauses): Initialize ctx->clauses. |
| (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional |
| explicit clause on combined parallel into implicit shared clause. |
| (gimplify_adjust_omp_clauses): Move lastprivate conditional clause |
| and firstprivate if the decl has one too from combined parallel to |
| the worksharing construct. |
| |
| 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com> |
| Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define. |
| |
| 2019-05-28 Michael Meissner <meissner@linux.ibm.com> |
| |
| * rtl.h (LABEL_REF_P): New #define. |
| |
| 2019-05-28 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment. |
| |
| 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com> |
| |
| * internal-fn.c: Marked mask_load_direct as vectorizable. |
| * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo. |
| * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be |
| combined even if masks different with allow_slp_p param. |
| (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups. |
| * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to |
| dissolve SLP-only vectorizable groups when SLP has been discarded. |
| (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed. |
| * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads |
| masks. |
| (vect_build_slp_tree_1): Fixed comment typo. |
| (vect_build_slp_tree_2): Include masks from masked loads in SLP tree. |
| * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked |
| loads for SLP only. |
| * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only |
| vectorizable. |
| * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise. |
| |
| 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf): |
| Remove obsolete use_thunk reference. |
| * config/i386/i386.c (x86_output_mi_thunk): Likewise. |
| * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. |
| * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise. |
| * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise. |
| * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. |
| * config/sh/sh.c (sh_output_mi_thunk): Likewise. |
| * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. |
| * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise. |
| * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise. |
| |
| 2019-05-28 Nathan Sidwell <nathan@acm.org> |
| |
| * tree.h (IDENTIFIER_ANON_P): New. |
| (anon_aggrname_format, anon_aggname_p): Don't declare. |
| (make_anon_name): Declare. |
| * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P. |
| (hash_tree): Likewise. |
| * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise. |
| * tree.c (anon_aggrname_p, anon_aggrname_format): Delete. |
| (anon_cnt, make_anon_name): New. |
| |
| 2019-05-28 Martin Liska <mliska@suse.cz> |
| |
| PR other/90315 |
| * opts-global.c (decode_options): Print help for all |
| help_option_arguments. |
| * opts.c (print_help): Add new argument. |
| (common_handle_option): Remember all values into |
| help_option_arguments. |
| * opts.h (print_help): Add new argument. |
| |
| 2019-05-28 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/90555 |
| * ipa-icf-gimple.c (func_checker::compare_loops): New function. |
| * ipa-icf-gimple.h (func_checker::compare_loops): Likewise. |
| (func_checker::compare_bb): Call compare_loops. |
| |
| 2019-05-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional |
| on sections construct. |
| * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections |
| construct. |
| (lower_omp_sections): Handle lastprivate conditional. |
| (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with |
| lastprivate_conditional_map. |
| * omp-expand.c (expand_omp_sections): Handle lastprivate conditional. |
| |
| * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered, |
| critical, taskgroup and section regions when looking for a region |
| with non-NULL lastprivate_conditional_map. |
| |
| 2019-05-27 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_gen_add3): Remove indirect function. |
| (*ix86_gen_sub3): Ditto. |
| (*ix86_gen_sub3_carry): Ditto. |
| (*ix86_gen_one_cmpl2): Ditto. |
| (*ix86_gen_andsp): Ditto. |
| (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3. |
| (gen_and2_insn): New static function. |
| (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp. |
| Use gen_add3_insn instead of ix86_gen_add3. |
| (ix86_expand_split_stack_prologue): Use gen_add2_insn |
| instead of ix86_gen_add3. |
| (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3. |
| Use gen_sub3_insn instead of ix86_gen_sub3. |
| * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn |
| instead of ix86_gen_add3. |
| (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of |
| ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3. |
| (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3. |
| * config/i386/i386-options.c (ix86_option_override_internal): |
| Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry, |
| ix86_gen_one_cmpl2 and ix86_gen_andsp. |
| |
| 2019-05-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index |
| and DW_OP_GNU_const_index opcodes. |
| |
| 2019-05-27 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (STACK_SIZE_MODE): Define. |
| |
| 2019-05-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90637 |
| * tree-ssa-sink.c (statement_sink_location): Honor the |
| computed sink location for single-uses. |
| |
| 2019-05-27 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/90610 |
| * match.pd (vec_perm): Avoid clobbering op0 when not generating |
| a bit-insert. |
| |
| 2019-05-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (@sub<mode>3_carry): Rename |
| from sub<mode>3_carry. |
| (@leave_<mode>): New expander. |
| (*leave): Rename from leave. |
| (*leave_rex64): Rename from leave_rex64. |
| (@monitorx_<mode>): Rename from monitorx_<mode>. |
| (@clzero_<mode>): Rename from clzero_<mode>. |
| * config/i386/sse.md (@sse3_monitor_<mode>): Rename |
| from sse3_monitor_<mode>. |
| * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function. |
| (*ix86_gen_leave): Ditto. |
| (*ix86_gen_monitor): Ditto. |
| (*ix86_gen_monitorx): Ditto. |
| (*ix86_gen_clzero): Ditto. |
| (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave. |
| * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1): |
| Use gen_sub3_carry instead of ix86_gen_sub3_carry. |
| (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>: |
| Use gen_sse3_monitor instead of ix86_gen_monitor. |
| <case IX86_BUILTIN_MONITORX>: Use gen_monitorx |
| instead of ix86_gen_monitorx. |
| <case IX86_BUILTIN_CLZERO>: Use gen_clzero |
| instead of ix86_gen_clzero. |
| * config/i386/i386-options.c (ix86_option_override_internal): |
| Do not initialize ix86_gen_leave, ix86_gen_sub3_carry, |
| ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero. |
| |
| 2019-05-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (@tls_global_dynamic_64_<mode>): |
| Rename from tls_global_dynamic_64_<mode>. |
| (@tls_local_dynamic_base_64_<mode>): Rename from |
| tls_local_dynamic_base_64_<mode>. |
| * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64): |
| Remove indirect function. |
| (*ix86_gen_tls_local_dynamic_base_64): Ditto. |
| (legitimize_tls_address): Use gen_tls_global_dynamic_64 function |
| instead of ix86_gen_tls_global_dynamic_64. |
| Use gen_tls_local_dynamic_base_64 instead of |
| ix86_gen_tls_local_dynamic_base_64. |
| * config/i386/i386-options.c (ix86_option_override_internal): |
| Do not initialize ix86_gen_tls_global_dynamic_64 and |
| ix86_gen_tls_local_dynamic_base_64. |
| |
| 2019-05-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>) |
| Rename from pro_epilogue_adjust_stack_<mode>_add. |
| (@pro_epilogue_adjust_stack_sub_<mode>) |
| Rename from pro_epilogue_adjust_stack_<mode>_sub. |
| (@allocate_stack_worker_probe_<mode>): |
| Rename from allocate_stack_worker_probe_<mode>. |
| (allocate_stack): Use gen_allocate_stack_worker_probe. |
| (probe_stack): Use gen_probe_stack_1. |
| (@probe_stack_1_<mode>): Rename from probe_stack_<mode>. |
| (@adjust_stack_and_probe_<mode>): Rename from |
| adjust_stack_and_probe<mode>. |
| (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>. |
| (stack_protect_set): Use gen_stack_protect_set_1. |
| (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>. |
| (stack_protect_test): Use gen_stack_protect_test_1. |
| (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>. |
| * config/i386/i386.c (*ix86_gen_allocate_stack_worker): |
| Remove indirect function. |
| (*ix86_gen_adjust_stack_and_probe): Ditto. |
| (*ix86_gen_probe_stack_range): Ditto. |
| (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add |
| instead of gen_pro_epilogue_adjust_stack_{si,di}_add. |
| (ix86_adjust_stack_and_probe_stack_clash): Use |
| gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe. |
| (ix86_adjust_stack_and_probe): Ditto. |
| (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead |
| of ix86_gen_probe_stack_range. |
| (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub |
| instead of gen_pro_epilogue_adjust_stack_{si,di}_sub. |
| * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p): |
| Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of |
| CODE_FOR_stack_protect_test_{si,di}. |
| * config/i386/i386-options.c (ix86_option_override_internal): |
| Do not initialize ix86_gen_allocate_stack_worker, |
| ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range. |
| |
| 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/invoke.texi (Link Options): Many editorial changes around |
| -flinker-output. |
| |
| 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove |
| pre-Solaris 11 referene and most Studio compiler details. |
| |
| 2019-05-24 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/90530 |
| * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from |
| DImode to SImode in floating-point registers on 64-bit target. |
| * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to |
| register_operand in xmpyu patterns. |
| |
| 2019-05-24 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_. |
| * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of |
| OMP_CLAUSE__REDUCTEMP_. |
| * tree.c (omp_clause_num_ops, omp_clause_code_name): Add |
| OMP_CLAUSE__CONDTEMP_. |
| (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_. |
| * tree-pretty-print.c (dump_omp_clause): Likewise. |
| * tree-nested.c (convert_nonlocal_omp_clauses, |
| convert_local_omp_clauses): Likewise. |
| * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants |
| instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL. |
| (gimplify_scan_omp_clauses): Don't reject lastprivate conditional |
| on OMP_FOR. |
| (gimplify_omp_for): Warn and disable conditional modifier from |
| lastprivate on loop iterators. |
| * omp-general.h (struct omp_for_data): Add lastprivate_conditional |
| member. |
| * omp-general.c (omp_extract_for_data): Initialize it. |
| * omp-low.c (struct omp_context): Add lastprivate_conditional_map |
| member. |
| (delete_omp_context): Delete it. |
| (lower_lastprivate_conditional_clauses): New function. |
| (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments, |
| handle lastprivate conditional clauses. |
| (lower_reduction_clauses): Add CLIST argument, emit it into |
| the critical section if any. |
| (lower_omp_sections): Adjust lower_lastprivate_clauses and |
| lower_reduction_clauses callers. |
| (lower_omp_for_lastprivate): Add CLIST argument, pass it through |
| to lower_lastprivate_clauses. |
| (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust |
| lower_omp_for_lastprivate and lower_reduction_clauses callers, emit |
| clist into a critical section if not emitted there already by |
| lower_reduction_clauses. |
| (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses |
| callers. |
| (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate |
| conditional variables. |
| * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_ |
| clause is present. |
| (expand_omp_for_generic, expand_omp_for_static_nochunk, |
| expand_omp_for_static_chunk): Handle lastprivate conditional. |
| (expand_omp_for): Handle fd.lastprivate_conditional like |
| fd.have_reductemp. |
| |
| 2019-05-24 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn-run.c (main): Set a non-zero return value if the |
| kernel does not exit cleanly. |
| * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb. |
| |
| 2019-05-24 Jason Merrill <jason@redhat.com> |
| |
| Revert: |
| * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE. |
| |
| 2019-05-24 Richard Biener <rguenther@suse.de> |
| |
| PR testsuite/90607 |
| * tree-loop-distribution.c (struct partition): Add location |
| member. |
| (partition_alloc): Initialize all fields. |
| (generate_memset_builtin): Use the location recorded in the |
| partition for the generated call. |
| (generate_memcpy_builtin): Likewise. |
| (classify_partition): Record the location of a single store |
| as location for the partition. |
| |
| 2019-05-24 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry |
| for lo-part. |
| |
| 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com> |
| |
| PR target/90588 |
| * common/config/aarch64/aarch64-common.c |
| (aarch64_rewrite_selected_cpu): Change local temporary variable |
| type from unsigned long to uint64_t. |
| * config/aarch64/aarch64-protos.h (aarch64_parse_extension, |
| aarch64_get_extension_string_for_isa_flags): Change declaration to |
| match new definition by replacing unsigned long with uint64_t. |
| |
| 2019-05-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90568 |
| * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call |
| gen_attr_type just once instead of 4-7 times. Formatting fixes. |
| Handle stack_protect_test_<mode> codegen similarly to corresponding |
| sub instruction. |
| |
| 2019-05-23 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/i386/darwin.h: Reject -mfentry*. |
| * doc/sourcebuild.texi: Document mfentry target support. |
| |
| 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p): |
| Rename to rs6000_global_entry_point_prologue_needed_p. Return |
| false for PC-relative functions. |
| (rs6000_output_function_prologue): Change called function name to |
| rs6000_global_entry_point_prologue_needed_p. Emit ".localentry |
| name,1" for PC-relative functions. |
| (rs6000_elf_declare_function_name): Change called function name to |
| rs6000_global_entry_point_prologue_needed_p. |
| |
| 2019-05-23 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/90552 |
| * config/i386/i386.c (gen_rtx_cost): |
| Use ix86_tune_cost instead of ix86_cost. |
| |
| 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| Michael Meissner <meissner@linux.ibm.com> |
| Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add |
| OPTION_MASK_PCREL. |
| (POWERPC_MASKS): Add OPTION_MASK_PCREL. |
| * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype. |
| (rs6000_fndecl_pcrel_p): Likewise. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Report |
| error if -mpcrel is requested without -mcpu=future. |
| (rs6000_opt_masks): Add entry for pcrel. |
| (rs6000_fndecl_pcrel_p): New function. |
| (rs6000_pcrel_p): Likewise. |
| * config/rs6000/rs6000.opt (mpcrel): New option. |
| * doc/invoke.texi: Document -mpcrel and -mno-pcrel. |
| |
| 2019-05-23 Jan Hubicka <jh@suse.cz> |
| Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/90576 |
| * tree-ssa-alias.c (compare_sizes): Remove dead calls to |
| poly_int_tree_p. |
| (aliasing_component_refs_p): Fix three way size compare conditional; |
| give up earlier in case we can not decide on equivalence. |
| |
| 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| Michael Meissner <meissner@linux.ibm.com> |
| Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config.gcc: Add future cpu. |
| * config/rs6000/driver-rs6000.c (asm_names): Add future cpu. |
| * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New |
| #define. |
| (POWERPC_MASKS): Add OPTION_MASK_FUTURE. |
| (RS6000_CPU): New instantiation for future cpu. |
| * config/rs6000/rs6000-opts.h (enum processor_type): Add |
| PROCESSOR_FUTURE. |
| * config/rs6000/rs6000-string.c (expand_compare_loop): Treat |
| PROCESSOR_FUTURE like PROCESSOR_POWER9 for now. |
| * config/rs6000/rs6000-tables.opt: Regenerate. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat |
| PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now. |
| (rs6000_machine_from_flags): Handle future cpu. |
| (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like |
| PROCESSOR_POWER9 for now. |
| (rs6000_adjust_cost): Likewise. |
| (rs6000_issue_rate): Likewise. |
| (rs6000_register_move_cost): Likewise. |
| (rs6000_opt_masks): Add entry for future. |
| * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu. |
| (MASK_FUTURE): New #define. |
| * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu. |
| * config/rs6000/rs6000.opt (mfuture): New target option. |
| * doc/invoke.texi (mcpu): Add future cpu. |
| |
| 2019-05-23 Martin Liska <mliska@suse.cz> |
| |
| PR c++/90587 |
| * tree-ssa-uninit.c (value_sat_pred_p): The result of & |
| operation points to a temporary (pointed via tree_to_wide_ref) |
| that is out of scope after the &. |
| |
| 2019-05-23 Jonathan Wakely <jwakely@redhat.com> |
| |
| PR c++/90592 |
| * doc/extend.texi (Function Names): Add missing word. |
| |
| 2019-05-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88440 |
| * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns |
| at -O[2s]+. |
| * tree-loop-distribution.c (generate_memset_builtin): Fold the |
| generated call. |
| (generate_memcpy_builtin): Likewise. |
| (distribute_loop): Pass in whether to only distribute patterns. |
| (prepare_perfect_loop_nest): Also allow size optimization. |
| (pass_loop_distribution::execute): When optimizing a loop |
| nest for size allow pattern replacement. |
| |
| 2019-05-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90568 |
| * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead |
| of xor. |
| |
| 2019-05-23 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/90570 |
| * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target |
| expression similarly to gimplify_decl_expr. |
| |
| 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * cse.c (cse_dump_path): s/dump_file/f. |
| |
| 2019-05-22 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c++/90462 |
| * diagnostic-format-json.cc: Include "selftest.h". |
| (json_from_expanded_location): Only add "file" key for non-NULL |
| file strings. |
| (json_from_location_range): Don't add "start" and "finish" |
| children if they are UNKNOWN_LOCATION. |
| (selftest::test_unknown_location): New selftest. |
| (selftest::test_bad_endpoints): New selftest. |
| (selftest::diagnostic_format_json_cc_tests): New function. |
| * json.cc (json::object::get): New function. |
| (selftest::test_object_get): New selftest. |
| (selftest::json_cc_tests): Call it. |
| * json.h (json::object::get): New decl. |
| * selftest-run-tests.c (selftest::run_tests): Call |
| selftest::diagnostic_format_json_cc_tests. |
| * selftest.h (selftest::diagnostic_format_json_cc_tests): New |
| decl. |
| |
| 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com> |
| Andrew Stubbs <amd@codesourcery.com> |
| |
| * config.gcc (gcc_cv_initfini_array): Set for AMD GCN. |
| * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New. |
| (kernel): Rename to... |
| (main_kernel): ... this. |
| (load_image): Load _init_array and _fini_array kernels. |
| (run): Add argument for kernel to run. |
| (main): Run init_array_kernel before main_kernel, and |
| fini_array_kernel after. |
| * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow |
| amdgpu_hsa_kernel attribute on functions. |
| (gcn_disable_constructors): Delete. |
| (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete. |
| * config/gcn/crt0.c (size_t): Define. |
| (_init_array, _fini_array): New. |
| (__preinit_array_start, __preinit_array_end, |
| __init_array_start, __init_array_end, |
| __fini_array_start, __fini_array_end): Declare weak references. |
| |
| 2019-05-22 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5. |
| |
| 2019-05-22 Jason Merrill <jason@redhat.com> |
| |
| * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE. |
| |
| 2019-05-22 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/88483 |
| * config/i386/i386-options.c (ix86_init_machine_status): Set |
| stack_frame_required to true. |
| * config/i386/i386.c (ix86_get_frame_size): New function. |
| (ix86_frame_pointer_required): Replace get_frame_size with |
| ix86_get_frame_size. |
| (ix86_compute_frame_layout): Likewise. |
| (ix86_find_max_used_stack_alignment): Changed to void. Set |
| stack_frame_required. |
| (ix86_finalize_stack_frame_flags): Always call |
| ix86_find_max_used_stack_alignment. Replace get_frame_size with |
| ix86_get_frame_size. |
| * config/i386/i386.h (machine_function): Add stack_frame_required. |
| |
| 2019-05-22 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition. |
| |
| 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com> |
| |
| * common/config/aarch64/aarch64-common.c |
| (struct aarch64_option_extension, struct processor_name_to_arch, |
| struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp, |
| aarch64_contains_opt, |
| aarch64_get_extension_string_for_isa_flags): Change type of |
| variables storing flags to uint64_t. |
| * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4, |
| sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags. |
| * config/aarch64/aarch64.c (struct processor, |
| aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu, |
| aarch64_validate_march, aarch64_override_options, |
| aarch64_option_print, aarch64_handle_attr_isa_flags, |
| aarch64_declare_function_name, aarch64_start_file): Make flag |
| variables uint64_t. |
| * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES, |
| AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3, |
| AARCH64_FL_SVE2_BITPERM): New macro feature flags. |
| * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t. |
| * config/aarch64/driver-aarch64.c |
| (struct aarch64_arch_extension, struct aarch64_core_data, |
| struct aarch64_arch_driver_info, host_detect_local_cpu): Make |
| flag variables uint64_t. |
| * doc/invoke.texi: Add documentation for new arguments. |
| |
| 2019-05-22 Richard Biener <rguenther@suse.de> |
| |
| * alias.c (ao_ref_from_mem): Move stack-slot sharing |
| rewrite ... |
| * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here. |
| |
| 2019-05-22 Martin Liska <mliska@suse.cz> |
| |
| PR lto/90500 |
| * doc/extend.texi: Document the change. |
| |
| 2019-05-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90450 |
| * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed. |
| (mem_ref_hasher::equal): Check it. |
| (mem_ref_alloc): Initialize it. |
| (gather_mem_refs_stmt): Set it. |
| |
| 2019-05-22 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.c (arith_code_with_undefined_signed_overflow): |
| Add ABS_EXPR. |
| (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR |
| as ABSU_EXPR. |
| |
| 2019-05-22 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.h (ASM_OPT_ANY): Define. |
| (ASM_CPU_SPEC): Conditionally add -many. |
| * config/rs6000/rs6000.c (rs6000_machine): New static var. |
| (rs6000_machine_from_flags, emit_asm_machine): New functions.. |
| (rs6000_file_start): ..extracted from here, and modified to |
| test all ISA bits. |
| (rs6000_output_function_prologue): Emit .machine as necessary. |
| * testsuite/gcc.target/powerpc/ppc32-abi-dfp-1.c: Don't use |
| power mnemonics. |
| * testsuite/gcc.dg/vect/O3-pr70130.c: Disable default options |
| added by check_vect_support_and_set_flags. |
| * testsuite/gcc.dg/vect/pr48765.c: Likewise. |
| * testsuite/gfortran.dg/vect/pr45714-b.f: Likewise. |
| |
| 2019-05-22 Hans-Peter Nilsson <hp@axis.com> |
| |
| PR middle-end/90553 |
| * ira-lives.c (process_bb_node_lives): Consider defs |
| for a call insn to be die before the call, not after. |
| |
| * function.c (assign_parm_setup_block): Raise alignment of |
| stacked parameter only for STRICT_ALIGNMENT targets. |
| |
| 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wz"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wz. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7". |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wl"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wl. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6". |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wm"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wm. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v". |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wk"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wk. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v". |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wj"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wj. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v". |
| (VS_64dm): Delete. |
| * config/rs6000/vsx.md: Ditto. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wh"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wh. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v". |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-21 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/90547 |
| * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): |
| Avoid calling gen_lowpart with CONST operand. |
| |
| 2019-05-21 Alexandre Oliva <aoliva@redhat.com> |
| |
| * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add |
| field template_last_to_copy. |
| (ssa_create_duplicates): Set it, and use it. Attempt to |
| preserve more debug stmts. |
| |
| 2019-05-21 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (VF1_AVX2): New mode iterator. |
| (signbit<mode>2): New expander |
| |
| 2019-05-21 James Clarke <jrtc27@jrtc27.com> |
| |
| PR bootstrap/87338 |
| * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL |
| instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL. |
| |
| 2019-05-21 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/cpuid.h (__cpuid): For 32bit targets, zero |
| %ebx and %ecx bafore calling cpuid with leaf 1 or |
| non-constant leaf argument. |
| |
| 2019-05-21 Alan Modra <amodra@gmail.com> |
| |
| PR target/90545 |
| * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase |
| power9 direct move cost. |
| * testsuite/gcc.target/powerpc/fold-vec-splats-floatdouble.c: |
| Correct comments and rename functions to suit parameters. |
| |
| 2019-05-21 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/90510 |
| * fold-const.c (fold_read_from_vector): New function. |
| * fold-const.h (fold_read_from_vector): Declare. |
| * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for |
| single-element insert permutations. Canonicalize selector |
| further and fix issue with last commit. |
| |
| 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p |
| parameter with default value false to declaration. |
| (split_edges_for_insertion): New inline function. Wrapper for |
| split_critical_edges with for_edge_insertion_p = true. |
| * tree-cfg.c (split_critical_edges): Don't split non-critical |
| edges if for_edge_insertion_p is false. Fix whitespace. |
| * tree-ssa-pre.c (pass_pre::execute): Call |
| split_edges_for_insertion instead of split_critical_edges. |
| * gcc/tree-ssa-tail-merge.c (tail_merge_optimize): Ditto. |
| * gcc/tree-ssa-sink.c (pass_sink_code::execute): Ditto. |
| (pass_data_sink_code): Update function name in the comment. |
| |
| 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper |
| around is_value_included_in that knows how to handle BIT_AND_EXPR. |
| (is_pred_expr_subset_of): Use the new function. Handle more cases where |
| code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false |
| positives. |
| |
| 2019-05-21 Martin Liska <mliska@suse.cz> |
| |
| * config/rs6000/driver-rs6000.c (elf_platform): Do not use |
| an extra newline. |
| * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>. |
| (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and |
| vec_lvsr. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): |
| Quote a C type. |
| (rs6000_function_arg): Likewise. |
| (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot. |
| (rs6000_expand_ternop_builtin): Use interval syntax. |
| (get_element_number): Likewise. |
| (altivec_expand_builtin): Likewise. |
| (rs6000_get_function_versions_dispatcher): Quote target_clones. |
| |
| Fix test-suite. |
| |
| 2019-05-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/59813 |
| PR target/90418 |
| * function.h (struct function): Add calls_eh_return member. |
| * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when |
| gimplifying __builtin_eh_return call. |
| * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun |
| to cfun. |
| (expand_call_inline): Or in src_cfun->calls_eh_return into |
| dst_cfun->calls_eh_return. |
| * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if |
| cfun->calls_eh_return. |
| * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return. |
| * lto-streamer-out.c (output_struct_function_base): Write |
| calls_eh_return. |
| |
| 2019-05-20 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR rtl-optimization/43147 |
| * config/i386/i386.c (ix86_gimple_fold_builtin): Handle |
| IX86_BUILTIN_SHUFPD. |
| |
| 2019-05-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ... |
| (refs_may_alias_p_1): ... here; update stats. |
| (refs_may_alias_p): Do not update stats here. |
| |
| 2019-05-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR |
| doesn't produce pointers. |
| {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what |
| the first operand points to. |
| |
| 2019-05-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (compare_sizes): New function. |
| (sompare_type_sizes): New function |
| (aliasing_component_refs_p): Use it. |
| (indirect_ref_may_alias_decl_p): Likewise. |
| |
| 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/i386/sol2.h (CC1_SPEC): Reject -mx32. |
| |
| 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e. |
| (LIBLSAN_EARLY_SPEC): Likewise. |
| * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise. |
| |
| 2019-05-20 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386.c (ix86_libc_has_fast_function): |
| Add ATTRIBUTE_UNUSED for the argument. |
| |
| 2019-05-20 Richard Biener <rguenther@suse.de> |
| |
| * gimple-match-head.c: Include vec-perm-indices.h. |
| * generic-match-head.c: Likewise. |
| * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h |
| is included. |
| * fold-const.c (fold_vec_perm): Export. |
| (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR... |
| (match.pd): ...here. |
| |
| 2019-05-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * cfgloop.h (struct loop): Add simdlen member. |
| * cfgloopmanip.c (copy_loop_info): Copy simdlen as well. |
| * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present. |
| * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0 |
| as new argument to autovectorize_vector_sizes target hook. If |
| loop->simdlen, pick up vector size where the vectorization factor |
| is equal to loop->simd, and if there is none, fall back to the first |
| successful one. |
| (vect_transform_loop): Adjust autovectorize_vector_sizes target hook |
| caller. |
| * omp-low.c (omp_clause_aligned_alignment): Likewise. |
| * omp-general.c (omp_max_vf): Likewise. |
| * optabs-query.c (can_vec_mask_load_store_p): Likewise. |
| * tree-vect-slp.c (vect_slp_bb): Likewise. |
| * target.def (autovectorize_vector_sizes): Add ALL argument and |
| document it. |
| * doc/tm.texi: Adjust documentation. |
| * targhooks.c (default_autovectorize_vector_sizes): Add bool argument. |
| * targhooks.h (default_autovectorize_vector_sizes): Likewise. |
| * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add |
| bool argument. |
| * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise. |
| * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise. |
| * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise. |
| * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If |
| true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if |
| preferred vector size is not 512-bit or 256-bit, just put those |
| unpreferred ones last. |
| |
| 2019-05-20 Martin Liska <mliska@suse.cz> |
| |
| * targhooks.c (default_libc_has_fast_function): New function. |
| * targhooks.h (default_libc_has_fast_function): Likewise. |
| |
| 2019-05-20 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/90263 |
| * builtins.c (expand_builtin_memory_copy_args): When having a |
| target with fast mempcpy implementation do now use memcpy. |
| * config/i386/i386.c (ix86_libc_has_fast_function): New. |
| (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise. |
| * doc/tm.texi: Likewise. |
| * doc/tm.texi.in: Likewise. |
| * target.def: |
| * expr.c (emit_block_move_hints): Add 2 new arguments. |
| * expr.h (emit_block_move_hints): Bail out when libcall |
| to memcpy would be used. |
| |
| 2019-05-20 Martin Liska <mliska@suse.cz> |
| |
| * profile-count.c: Add vertical spacing in order |
| to separate functions. |
| * profile-count.h: Likewise. |
| |
| 2019-05-20 Martin Liska <mliska@suse.cz> |
| |
| * profile-count.h: Do not use full qualified |
| names if possible. |
| * profile-count.c (profile_count::to_frequency): Likewise. |
| |
| 2019-05-20 Martin Liska <mliska@suse.cz> |
| |
| * profile-count.h (enum profile_quality): Use capital letters |
| for enum value names. Use the adjusted names. |
| * profile-count.c: Use the adjusted names. |
| |
| 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wH"): |
| Delete. |
| (define_register_constraint "wI"): Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v" |
| resp. "d", or with "wa" as appropriate, all with "p8v". |
| * config/rs6000/vsx.md: Ditto. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wy"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wy. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v". |
| Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>". |
| (define_mode_attr Fisa): New. |
| * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v". |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wu"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wu. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa", |
| both with "p8v". |
| (define_mode_attr Fa): Delete. |
| * config/rs6000/vsx.md: Ditto. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wJ"): |
| Delete. |
| (define_register_constraint "wK"): Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v". |
| Replace "wK" constraint by "wH" with "p9v". |
| * config/rs6000/vsx.md: Ditto. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wb"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wb. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v". |
| * config/rs6000/vsx.md: Ditto. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wo"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wo. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v". |
| * config/rs6000/altivec.md: Ditto. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-18 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin-c.c (darwin_register_objc_includes): Do not |
| prepend the sysroot when building gnu-runtime header search |
| paths. |
| |
| 2019-05-18 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (darwin_file_end): Use switch_to_section () |
| instead of direct output of the asm. |
| |
| 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean |
| argument to be type bool (was int before). |
| (rs6000_emit_epilogue): Simplify some code. Declare some variables |
| at first use. Use type bool for some variables. Fix a theoretical |
| eh_return bug for svr4. |
| |
| 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (isa): New attribute. |
| (enabled): New attribute. |
| |
| 2019-05-17 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call |
| assemble_start_function and assemble_end_function. |
| |
| 2019-05-17 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR middle-end/89433 |
| * omp-general.c (oacc_verify_routine_clauses): Change formal |
| parameters. Add checking if already marked with an OpenACC |
| 'routine' directive. Adjust all users. |
| |
| PR middle-end/89433 |
| * omp-general.c (oacc_build_routine_dims): Move some of its |
| processing into... |
| (oacc_verify_routine_clauses): ... this new function. |
| * omp-general.h (oacc_verify_routine_clauses): New prototype. |
| |
| 2019-05-17 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/rs6000.c (machopic_output_stub): Adjust the |
| formating of picbase labels to match other ports. |
| |
| 2019-05-17 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent |
| in the generated code. |
| |
| 2019-05-16 Martin Sebor <msebor@redhat.com> |
| |
| * builtins.c (expand_builtin_atomic_always_lock_free): Quote |
| identifiers, keywords, operators, and types in diagnostics. Correct |
| quoting, spelling, and sentence capitalization issues. |
| (expand_builtin_atomic_is_lock_free): Same. |
| (fold_builtin_next_arg): Same. |
| * cfgexpand.c (expand_one_var): Same. |
| (tree_conflicts_with_clobbers_p): Same. |
| (expand_asm_stmt): Same. |
| (verify_loop_structure): Same. |
| * cgraphunit.c (process_function_and_variable_attributes): Same. |
| * collect-utils.c (collect_execute): Same. |
| * collect2.c (maybe_run_lto_and_relink): Same. |
| (is_lto_object_file): Same. |
| (scan_prog_file): Same. |
| * convert.c (convert_to_real_1): Same. |
| * dwarf2out.c (dwarf2out_begin_prologue): Same. |
| * except.c (verify_eh_tree): Same. |
| * gcc.c (execute): Same. |
| (eval_spec_function): Same. |
| (run_attempt): Same. |
| (driver::set_up_specs): Same. |
| (compare_debug_auxbase_opt_spec_function): Same. |
| * gcov-tool.c (unlink_gcda_file): Same. |
| (do_merge): Same. |
| (do_rewrite): Same. |
| * gcse.c (gcse_or_cprop_is_too_expensive): Same. |
| * gimplify.c (gimplify_asm_expr): Same. |
| (gimplify_adjust_omp_clauses): Same. |
| * hsa-gen.c (gen_hsa_addr_insns): Same. |
| (gen_hsa_insns_for_load): Same. |
| (gen_hsa_cmp_insn_from_gimple): Same. |
| (gen_hsa_insns_for_operation_assignment): Same. |
| (gen_get_level): Same. |
| (gen_hsa_alloca): Same. |
| (omp_simple_builtin::generate): Same. |
| (gen_hsa_atomic_for_builtin): Same. |
| (gen_hsa_insns_for_call): Same. |
| * input.c (dump_location_info): Same. |
| * ipa-devirt.c (compare_virtual_tables): Same. |
| * ira.c (ira_setup_eliminable_regset): Same. |
| * lra-assigns.c (lra_assign): Same. |
| * lra-constraints.c (lra_constraints): Same. |
| * lto-streamer-in.c (lto_input_mode_table): Same. |
| * lto-wrapper.c (get_options_from_collect_gcc_options): Same. |
| (merge_and_complain): Same. |
| (compile_offload_image): Same. |
| (compile_images_for_offload_targets): Same. |
| (debug_objcopy): Same. |
| (run_gcc): Same. |
| (main): Same. |
| * opts.c (print_specific_help): Same. |
| (parse_no_sanitize_attribute): Same. |
| (print_help): Same. |
| (handle_param): Same. |
| * plugin.c (add_new_plugin): Same. |
| (parse_plugin_arg_opt): Same. |
| (try_init_one_plugin): Same. |
| * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords, |
| operators, and types in diagnostics. Correct quoting and spelling |
| issues. |
| * read-rtl-function.c (parse_edge_flag_token): Same. |
| (function_reader::parse_enum_value): Same. |
| * reg-stack.c (check_asm_stack_operands): Same. |
| * regcprop.c (validate_value_data): Same. |
| * sched-rgn.c (make_pass_sched_fusion): Same. |
| * stmt.c (check_unique_operand_names): Same. |
| * targhooks.c (default_target_option_pragma_parse): Same. |
| * tlink.c (recompile_files): Same. |
| * toplev.c (process_options): Same. |
| (do_compile): Same. |
| * trans-mem.c (diagnose_tm_1): Same. |
| (ipa_tm_scan_irr_block): Same. |
| (ipa_tm_diagnose_transaction): Same. |
| * tree-cfg.c (verify_address): Same. Use get_tree_code_name to |
| format a tree code name in a diagnostic. |
| (verify_types_in_gimple_min_lval): Same. |
| (verify_types_in_gimple_reference): Same. |
| (verify_gimple_call): Same. |
| (verify_gimple_assign_unary): Same. |
| (verify_gimple_assign_binary): Same. |
| (verify_gimple_assign_ternary): Same. |
| (verify_gimple_assign_single): Same. |
| (verify_gimple_switch): Same. |
| (verify_gimple_label): Same. |
| (verify_gimple_phi): Same. |
| (verify_gimple_in_seq): Same. |
| (verify_eh_throw_stmt_node): Same. |
| (collect_subblocks): Same. |
| (gimple_verify_flow_info): Same. |
| (do_warn_unused_result): Same. |
| * tree-inline.c (expand_call_inline): Same. |
| * tree-into-ssa.c (update_ssa): Same. |
| * tree.c (tree_int_cst_elt_check_failed): Same. |
| (tree_vec_elt_check_failed): Same. |
| (omp_clause_operand_check_failed): Same. |
| (verify_type_variant): Same. |
| (verify_type): Same. |
| * value-prof.c (verify_histograms): Same. |
| * varasm.c (assemble_start_function): Same. |
| |
| 2019-05-16 Martin Sebor <msebor@redhat.com> |
| |
| * config/i386/i386-expand.c (get_element_number): Quote keywords |
| and other internal names in diagnostics. Adjust other diagnostic |
| formatting issues noted by -Wformat-diag. |
| * config/i386/i386-features.c |
| (ix86_mangle_function_version_assembler_name): Same. |
| * config/i386/i386-options.c (ix86_handle_abi_attribute): Same. |
| * config/i386/i386.c (ix86_function_type_abi): Same. |
| (ix86_function_ms_hook_prologue): Same. |
| (classify_argument): Same. |
| (ix86_expand_prologue): Same. |
| (ix86_md_asm_adjust): Same. |
| (ix86_memmodel_check): Same. |
| |
| 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com> |
| |
| * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace |
| TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64 |
| and fpxx modes. |
| |
| 2019-05-17 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/90497 |
| * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX |
| intrinsics without SSE/SSE2/SSSE3. |
| * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW |
| check. |
| (*mmx_uavgv8qi3): Likewise. |
| |
| 2019-05-17 Richard Biener <rguenther@suse.de> |
| |
| * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping |
| VEC_PERM_EXPR as __VEC_PERM with -gimple. |
| |
| 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the |
| vec_sldw insn pattern. |
| |
| 2019-05-17 Richard Biener <rguenther@suse.de> |
| |
| * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree. |
| |
| 2019-05-17 Martin Liska <mliska@suse.cz> |
| |
| PR driver/90496 |
| * toplev.c (output_stack_usage): With LTO and sanitizer it |
| happens that a global ctor (_GLOBAL__sub_I_00099_0_main) |
| has no file location. |
| |
| 2019-05-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/90484 |
| * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that |
| sz0 is equal to sz1, instead return false in that case. |
| |
| * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF |
| has non-constant expression, force sctx.lane and use two |
| argument IFN_GOMP_SIMD_LANE instead of single argument. |
| * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE |
| two argument IFN_GOMP_SIMD_LANE without lhs. |
| * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond |
| member. |
| (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND): |
| Define. |
| (LOOP_REQUIRES_VERSIONING): Or in |
| LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND. |
| * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize |
| simd_if_cond. |
| (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0. |
| * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check |
| from simd if clause if needed. |
| |
| 2019-05-16 Richard Biener <rguenther@suse.de> |
| |
| * tree-affine.c (expr_to_aff_combination): New function split |
| out from... |
| (tree_to_aff_combination): ... here. |
| (aff_combination_expand): Avoid building a GENERIC tree. |
| |
| 2019-05-16 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * cgraphunit.c (cgraph_node::expand_thunk): Remove |
| assemble_start_function and assemble_end_function calls. |
| * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call |
| assemble_start_function and assemble_end_function. |
| * config/arc/arc.c (arc_output_mi_thunk): Likewise. |
| * config/arm/arm.c (arm_output_mi_thunk): Likewise. |
| * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise. |
| * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise. |
| * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise. |
| * config/csky/csky.c (csky_output_mi_thunk): Likewise. |
| * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise. |
| * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise. |
| * config/i386/i386.c (x86_output_mi_thunk): Likewise. |
| * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. |
| * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise. |
| * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk): |
| Likewise. |
| * config/mips/mips.c (mips_output_mi_thunk): Likewise. |
| * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise. |
| * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise. |
| * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise. |
| * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise. |
| * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise. |
| * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise. |
| * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise. |
| * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. |
| * config/s390/s390.c (s390_output_mi_thunk): Likewise. |
| * config/sh/sh.c (sh_output_mi_thunk): Likewise. |
| * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. |
| * config/spu/spu.c (spu_output_mi_thunk): Likewise. |
| * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk): |
| Likewise. |
| * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise. |
| * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise. |
| * config/vax/vax.c (vax_output_mi_thunk): Likewise. |
| |
| 2019-05-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (alias_stats): Add |
| aliasing_component_refs_p_may_alias and |
| aliasing_component_refs_p_no_alias. |
| (dump_alias_stats): Print aliasing_component_refs_p stats. |
| (aliasing_component_refs_p): Update stats. |
| |
| 2019-05-16 Martin Liska <mliska@suse.cz> |
| |
| PR lto/90500 |
| * multiple_target.c (expand_target_clones): Do not allow |
| target_clones being used with a symbol that is an alias. |
| |
| 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| PR tree-optimization/90394 |
| * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false |
| positives rather than ICE for cases where (code2 == NE_EXPR |
| && code1 == BIT_AND_EXPR). |
| |
| 2019-05-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR fortran/90329 |
| * tree-core.h (struct tree_decl_common): Document |
| decl_nonshareable_flag for PARM_DECLs. |
| * tree.h (DECL_HIDDEN_STRING_LENGTH): Define. |
| * calls.c (expand_call): Don't try tail call if caller |
| has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be |
| passed on the stack and callee needs to pass any arguments on the |
| stack. |
| * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use |
| else if instead of series of mutually exclusive ifs. Handle |
| DECL_HIDDEN_STRING_LENGTH for PARM_DECLs. |
| * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. |
| |
| * lto-streamer.h (LTO_major_version): Bump to 9. |
| |
| 2019-05-16 Jun Ma <JunMa@linux.alibaba.com> |
| |
| PR tree-optimization/90106 |
| * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add |
| new parameter as new internal function call, also move it to new |
| basic block. |
| (use_internal_fn): Pass internal function call to |
| shrink_wrap_one_built_in_call_with_conds. |
| |
| 2019-05-15 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set |
| max_vf to 1. |
| * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear |
| safelen_int and set loop->dont_vectorize. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/i386-builtin.def: Enable MMX intrinsics with |
| SSE/SSE2/SSSE3. |
| * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): |
| Likewise. |
| * config/i386/i386-expand.c (ix86_expand_builtin): Allow |
| SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE. |
| * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__ |
| is defined. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (*vec_dupv2sf): Changed to |
| define_insn_and_split to support SSE emulation. |
| (*vec_extractv2sf_0): Likewise. |
| (*vec_extractv2sf_1): Likewise. |
| (*vec_extractv2si_0): Likewise. |
| (*vec_extractv2si_1): Likewise. |
| (*vec_extractv2si_zext_mem): Likewise. |
| (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE. |
| (vec_extractv2sf_1 splitter): Likewise. |
| (vec_extractv2sfsf): Likewise. |
| (vec_setv2si): Likewise. |
| (vec_extractv2si_1 splitter): Likewise. |
| (vec_extractv2sisi): Likewise. |
| (vec_setv4hi): Likewise. |
| (vec_extractv4hihi): Likewise. |
| (vec_setv8qi): Likewise. |
| (vec_extractv8qiqi): Likewise. |
| (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass |
| TARGET_MMX_WITH_SSE ix86_expand_vector_extract. |
| (vec_extractv2sisi): Likewise. |
| (vec_extractv4hihi): Likewise. |
| (vec_extractv8qiqi): Likewise. |
| (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass |
| TARGET_MMX_WITH_SSE to ix86_expand_vector_init. |
| (vec_initv2sisi): Likewise. |
| (vec_initv4hihi): Likewise. |
| (vec_initv8qiqi): Likewise. |
| (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass |
| TARGET_MMX_WITH_SSE to ix86_expand_vector_set. |
| (vec_setv4hi): Likewise. |
| (vec_setv8qi): Likewise. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow |
| TARGET_MMX_WITH_SSE. |
| (MMXMODE:*mov<mode>_internal): Likewise. |
| (MMXMODE:movmisalign<mode>): Likewise. |
| |
| 2019-05-15 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89021 |
| * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute. |
| * config/i386/sse.md (sse2_cvtpi2pd): Ditto. |
| (sse2_cvtpd2pi): Ditto. |
| (sse2_cvttpd2pi): Ditto. |
| (*vec_concatv2sf_sse4_1): Ditto. |
| (*vec_concatv2sf_sse): Ditto. |
| (*vec_concatv2si_sse4_1): Ditto. |
| (*vec_concatv2si): Ditto. |
| (*vec_concatv4si_0): Ditto. |
| (*vec_concatv2di_0): Ditto. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (abs<mode>2): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (ssse3_palignrdi): Changed to |
| define_insn_and_split to support SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to |
| define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add |
| SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX |
| or TARGET_MMX_WITH_SSE. |
| (*ssse3_pmulhrswv4hi3): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3): |
| Changed to define_insn_and_split to support SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3): |
| Changed to define_insn_and_split to support SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_<emms>): Renamed to ... |
| (*mmx_<emms>): This. |
| (mmx_<emms>): New expander. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation |
| support. |
| (*sse2_umulv1siv1di3): Add SSE2 emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (sse_movntq): Add SSE2 emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_psadbw): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and |
| TARGET_MMX_WITH_SSE. |
| (*mmx_uavgv4hi3): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX |
| and TARGET_MMX_WITH_SSE. |
| (*mmx_uavgv8qi3): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2 |
| maskmovdqu for __MMX_WITH_SSE__. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check |
| TARGET_MMX and TARGET_MMX_WITH_SSE. |
| (*mmx_umulv4hi3_highpart): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_pmovmskb): Changed to |
| define_insn_and_split to support SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX |
| and TARGET_MMX_WITH_SSE. |
| (mmx_<code>v8qi3): Likewise. |
| (smaxmin:<code>v4hi3): New. |
| (umaxmin:<code>v8qi3): Likewise. |
| (smaxmin:*mmx_<code>v4hi3): Add SSE emulation. |
| (umaxmin:*mmx_<code>v8qi3): Likewise. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and |
| TARGET_MMX_WITH_SSE. |
| (*mmx_pinsrw): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_pextrw): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (sse_cvtpi2ps): Changed to |
| define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add |
| SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation. |
| (sse_cvttps2pi): Likewise. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and |
| TARGET_MMX_WITH_SSE. |
| (mmx_pshufw_1): Add SSE emulation. |
| (*vec_dupv4hi): Changed to define_insn_and_split and also allow |
| TARGET_MMX_WITH_SSE to support SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/constraints.md (Yw): New constraint. |
| * config/i386/mmx.md (*vec_dupv2si): Changed to |
| define_insn_and_split and also allow TARGET_MMX_WITH_SSE to |
| support SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_eq<mode>3): Also allow |
| TARGET_MMX_WITH_SSE. |
| (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE |
| support. |
| (mmx_gt<mode>3): Likewise. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_andnot<mode>3): Also allow |
| TARGET_MMX_WITH_SSE. Add SSE support. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow |
| TARGET_MMX_WITH_SSE. |
| (any_logic:<code><mode>3): New. |
| (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE. |
| Add SSE support. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_ashr<mode>3): Also allow |
| TARGET_MMX_WITH_SSE. Add SSE emulation. |
| (mmx_<shift_insn><mode>3): Likewise. |
| (ashr<mode>3): New. |
| (<shift_insn><mode>3): Likewise. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. |
| (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow |
| TARGET_MMX_WITH_SSE. |
| (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add |
| SSE support. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_mulv4hi3): Also allow |
| TARGET_MMX_WITH_SSE. |
| (mulv4hi3): New. |
| (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE |
| support. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI. |
| (plusminus:mmx_<plusminus_insn><mode>3): Check |
| TARGET_MMX_WITH_SSE. |
| (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise. |
| (<plusminus_insn><mode>3): New. |
| (*mmx_<plusminus_insn><mode>3): Add SSE emulation. |
| (*mmx_<plusminus_insn><mode>3): Likewise. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function. |
| * config/i386/i386-protos.h (ix86_split_mmx_punpck): New |
| prototype. |
| * config/i386/mmx.m (mmx_punpckhbw): Changed to |
| define_insn_and_split to support SSE emulation. |
| (mmx_punpcklbw): Likewise. |
| (mmx_punpckhwd): Likewise. |
| (mmx_punpcklwd): Likewise. |
| (mmx_punpckhdq): Likewise. |
| (mmx_punpckldq): Likewise. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/89021 |
| * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx): |
| New function. |
| (ix86_split_mmx_pack): Likewise. |
| * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx): |
| New prototype. |
| (ix86_split_mmx_pack): Likewise. |
| * config/i386/i386.md (mmx_isa): New. |
| (enabled): Also check mmx_isa. |
| * config/i386/mmx.md (any_s_truncate): New code iterator. |
| (s_trunsuffix): New code attr. |
| (mmx_packsswb): Removed. |
| (mmx_packssdw): Likewise. |
| (mmx_packuswb): Likewise. |
| (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate |
| MMX packsswb/packuswb with SSE2. |
| (mmx_packssdw): Likewise. |
| * config/i386/predicates.md (register_mmxmem_operand): New. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define |
| __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE. |
| * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for |
| TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE. |
| (ix86_vector_mode_supported_p): Likewise. |
| * config/i386/i386.h (TARGET_MMX_WITH_SSE): New. |
| |
| 2019-05-15 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/90478 |
| * tree-switch-conversion.c (jump_table_cluster::can_be_handled): |
| Check for overflow. |
| |
| 2019-05-15 Richard Biener <rguenther@suse.de> |
| |
| * tree-into-ssa.c (pass_build_ssa::execute): Run |
| update_address_taken before going into SSA. |
| |
| 2019-05-15 Richard Biener <rguenther@suse.de> |
| |
| * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF |
| as __BIT_FIELD_REF with type with -gimple. |
| |
| 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge |
| semantically equivalent branches (left over after prior refactorings). |
| |
| 2019-05-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88828 |
| * tree-ssa-forwprop.c (simplify_vector_constructor): Fix |
| bogus check. |
| |
| 2019-05-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR |
| as __VIEW_CONVERT with -gimple. |
| |
| 2019-05-12 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/82920 |
| * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for |
| Darwin. |
| |
| 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following |
| define_split to become a define_insn_and_split. |
| |
| 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change |
| arguments. |
| * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments. |
| * config/rs6000/rs6000.md (epilogue_type): New define_enum. |
| (sibcall_epilogue): Adjust. |
| (epilogue): Adjust. |
| |
| 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config.gcc: Move *-*-solaris2.10* from obsolete configurations |
| to unsupported ones. |
| Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*. |
| * config.host: Likewise. |
| * config/i386/sol2.h (ASM_COMMENT_START): Remove. |
| * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ && |
| __svr4__]: Remove "brand" fallback. |
| [!KSTAT_DATA_STRING]: Remove. |
| * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]* |
| to *-*-solaris2*. |
| (comdat_group): Likewise. |
| (set_have_as_tls): Likewise. |
| (gcc_cv_target_dl_iterate_phdr): Likewise. |
| (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround. |
| (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround. |
| * configure: Regenerate. |
| * doc/install.texi: Simplify Solaris target triplets. |
| (Specific, i?86-*-solaris2*): Remove Solaris 10 references. |
| (Specific, *-*-solaris2*): Document Solaris 10 removal. |
| Remove Solaris 10 references. |
| Remove obsolete Solaris bug reference. |
| (Specific, sparc-sun-solaris2.10): Remove. |
| |
| 2019-05-14 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (any_div): New code iterator. |
| (paired_mod): New code attribute. |
| (sgnprefix): Handle DIV and UDIV RTXes. |
| (u): Ditto. |
| (<u>divmod<mode>4): Macroize expander from divmod<mode>4 |
| and udivmod<mode>4 patterns using any_div code iterator. |
| (divmod splitters): Macroize splitters using any_div code iterator. |
| (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition. |
| (*udivmodsi4_pow2_zext_2): Ditto. |
| (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext |
| and *udivmod<mode>4_noext patterns using any_div code iterator. |
| (*<u>divmod<mode>4_noext_zext_1): Macroize insn from |
| *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1 |
| patterns using any_div code iterator. |
| (*<u>divmod<mode>4_noext_zext_2): Macroize insn from |
| *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2 |
| patterns using any_div code iterator. |
| (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and |
| udivmodhiqi3 patterns using any_extend code iterator. |
| |
| 2019-05-14 Richard Biener <rguenther@suse.de> |
| H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR tree-optimization/88828 |
| * tree-ssa-forwprop.c (simplify_vector_constructor): Handle |
| permuting in a single non-constant element not extracted |
| from a vector. |
| |
| 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * internal-fn.def (SIGNBIT): New. |
| * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand |
| defined. |
| (signbitv4sf2): Likewise. |
| |
| 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com> |
| |
| PR target/90357 |
| * config/mips/mips.c (mips_split_move): Skip forward SRC into |
| next insn when the SRC reg is dead. |
| |
| 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1. |
| (alloc_cand_and_find_basis): Ditto. |
| (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else. |
| (create_mul_imm_cand, create_add_ssa_cand): Ditto. |
| (create_add_imm_cand, slsr_process_cast): Ditto. |
| (slsr_process_copy, replace_mult_candidate): Ditto. |
| (replace_rhs_if_not_dup, replace_one_candidate): Ditto. |
| (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element. |
| (pass_strength_reduction::execute): Init the first NULL element. |
| |
| 2019-05-13 Nathan Sidwell <nathan@acm.org> |
| |
| * gcc.c (execute): Simplify cond-expr into if. Reformat comment. |
| (run_attempt): Reformat line break. |
| |
| 2019-05-13 David Edelsohn <dje.gcc@gmail.com> |
| |
| PR target/90418 |
| * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH |
| data registers in sibcall epilogues. |
| Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues. |
| |
| 2019-05-13 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89221 |
| * configure.ac (--enable-frame-pointer): |
| Disable by default for cygwin and mingw. |
| * configure: Regenerate. |
| |
| 2019-05-13 Nathan Sidwell <nathan@acm.org> |
| |
| * dwarf2out.c (breakout_comdat_types): Move comment to correct |
| piece of code. |
| (const_ok_for_output_1): Balance parens around #if/#else/#endif |
| (gen_member_die): Move abstract origin check earlier. Only VARs |
| can be static_inline_p. Simplify splicing control flow. |
| |
| 2019-05-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle |
| VIEW_CONVERT_EXPR. |
| (vect_build_slp_tree_1): Likewise. |
| |
| 2019-05-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90402 |
| * tree-if-conv.c (tree_if_conversion): Value number only |
| the loop body by making the latch an exit of the region |
| as well. |
| * tree-ssa-sccvn.c (process_bb): Add flag whether to skip |
| processing PHIs. |
| (do_rpo_vn): Deal with multiple edges into the entry block |
| that are not backedges inside the region by skipping PHIs |
| of the entry block. |
| |
| 2019-05-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90316 |
| * tree-ssa-pre.c (insert_aux): Fold into ... |
| (insert): ... this function. Use a RPO walk to reduce the |
| number of required iterations. |
| |
| 2019-05-13 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/90416 |
| * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate |
| string instead of passing the second part as va_arg argument. |
| |
| 2019-05-13 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/90380 |
| * gcov.c (handle_cycle): Do not support zero cycle count, |
| it should not be possible. |
| (path_contains_zero_cycle_arc): New function. |
| (circuit): Ignore zero cycle arc counts. |
| |
| 2019-05-13 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/90380 |
| * gcov.c (enum loop_type): Remove the enum and |
| the operator. |
| (handle_cycle): Assert that we should not reach |
| a negative count. |
| (circuit): Use loop_found instead of a tri-state loop_type. |
| (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't |
| happen. |
| |
| 2019-05-12 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/82920 |
| * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New. |
| (ix86_output_indirect_branch_via_reg): Use output mechanism |
| accounting for __USER_LABEL_PREFIX__. |
| (ix86_output_indirect_branch_via_push): Likewise. |
| (ix86_output_function_return): Likewise. |
| (ix86_output_indirect_function_return): Likewise. |
| |
| 2019-05-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/md.texi: Document use of code attributes in rtx patterns. |
| * read-md.h (rtx_reader::rtx_alloc_for_name): New member function. |
| * read-rtl.c (find_code): Split out search loops into... |
| (maybe_find_code): ...this new function. |
| (check_code_iterator): Make the error message more informative. |
| (check_code_attribute): New function. |
| (rtx_reader::rtx_alloc_for_name): Likewise. |
| (rtx_reader::read_rtx_code): Use rtx_alloc_for_name. |
| * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete. |
| * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use |
| <max_opp> directly as an rtx code instead of via a match_operator. |
| * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise. |
| (<su>abd<mode>_3): Update accordingly. |
| |
| 2019-05-12 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack |
| is given, print the state of the EH "save world" computation for |
| Darwin. |
| |
| 2019-05-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/59813 |
| * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add |
| EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues. |
| |
| 2019-05-11 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm): |
| Use pinsrd for TARGET_SSE4_1. |
| * config/i386/sse.md (movdi_to_sse): Ditto. |
| |
| 2019-05-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id. |
| (do_rpo_vn): Initialize next_value_id. |
| |
| 2019-05-10 Martin Liska <mliska@suse.cz> |
| |
| * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD): |
| Fix plural form. |
| |
| 2019-05-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/90385 |
| * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME |
| arguments of the exit phis. |
| |
| PR c++/90383 |
| * tree-inline.h (struct copy_body_data): Add do_not_fold member. |
| * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if |
| id->do_not_fold. |
| (copy_tree_body_r): Likewise. |
| (copy_fn): Set id.do_not_fold to true. |
| |
| 2019-05-10 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386-expand.c (ix86_expand_floorceildf_32): |
| Reapply changes from r269790. |
| |
| 2019-05-10 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/90340 |
| * doc/invoke.texi: New params. |
| * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New. |
| (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise. |
| * tree-switch-conversion.c (jump_table_cluster::can_be_handled): |
| Use it. |
| * tree-switch-conversion.h (struct jump_table_cluster): |
| Likewise. |
| |
| 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL. |
| |
| 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK. |
| |
| 2019-05-09 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/88879 |
| * sel-sched.c (sel_target_adjust_priority): Remove assert. |
| |
| 2019-05-09 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/90405 |
| * config/arm/arm.c (callee_saved_reg_p): Move before |
| thumb_find_work_register. |
| (thumb1_prologue_unused_call_clobbered_lo_regs): Move before |
| thumb_find_work_register. Only call df_get_live_out once. |
| (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise. |
| (thumb_find_work_register): Use |
| thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc |
| algorithms to locate a spare call clobbered reg. |
| |
| 2019-05-09 Martin Liska <mliska@suse.cz> |
| |
| * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR |
| and MAX_EXPR in GIMPLE FE format. |
| |
| 2019-05-09 Martin Liska <mliska@suse.cz> |
| |
| * tree-cfg.c (dump_function_to_file): Dump entry BB count. |
| * gimple-pretty-print.c (dump_gimple_bb_header): |
| Dump BB count. |
| (pp_cfg_jump): Dump edge probability. |
| * profile-count.c (profile_quality_as_string): Simplify |
| with a static array. |
| (parse_profile_quality): New function. |
| (profile_count::dump): Simplify with a static array. |
| (profile_count::from_gcov_type): Add new argument. |
| * profile-count.h (parse_profile_quality): Likewise. |
| * predict.h (set_hot_bb_threshold): New. |
| * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD): |
| New param. |
| * predict.c (get_hot_bb_threshold): Set from the new param. |
| (set_hot_bb_threshold): New. |
| |
| 2019-05-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90395 |
| * tree-ssa-forwprop.c (pass_forwprop::execute): Do not |
| rewrite vector stores that throw internally. |
| |
| 2019-05-09 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * cif-code.def (CHKP): Remove. |
| |
| PR target/89221 |
| * configure.ac (--enable-frame-pointer): Disable by default for |
| GNU systems. |
| * configure: Regenerate. |
| |
| 2019-05-09 Alan Modra <amodra@gmail.com> |
| |
| PR target/89271 |
| * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES), |
| (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class. |
| * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct |
| cost for general <-> vsx when direct moves are available. |
| Cost union classes at minimal cost for any reg in the class. |
| Correct calculation for moves between vsx, float, and altivec. |
| Don't return a low cost for moves between special regs. Don't |
| use hard coded register numbers. |
| (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define. |
| (rs6000_ira_change_pseudo_allocno_class): New function. |
| * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal), |
| (movdi_internal32, movdi_internal64): Remove '*' from vsx register |
| alternatives. |
| (movsi_internal1): Don't disparage vector alternatives. |
| (mov<mode>_internal): Likewise, excepting alternative that |
| will be split. |
| * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage |
| we <- b alternative. |
| |
| 2019-05-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/59813 |
| PR tree-optimization/89060 |
| * tree-ssa-live.h (live_vars_map): New typedef. |
| (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare. |
| * tree-ssa-live.c: Include gimple-walk.h and cfganal.h. |
| (struct compute_live_vars_data): New type. |
| (compute_live_vars_visit, compute_live_vars_1, compute_live_vars, |
| live_vars_at_stmt, destroy_live_vars): New functions. |
| * tree-tailcall.c: Include tree-ssa-live.h. |
| (live_vars, live_vars_vec): New global variables. |
| (find_tail_calls): Perform variable life analysis before punting. |
| (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec. |
| * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest |
| member. |
| * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument. |
| Perform variable life analysis to select variables that really need |
| clobbers added. |
| (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here, |
| instead set id->eh_landing_pad_dest and assert it is the same. |
| (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL. |
| |
| 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com> |
| Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/88167 |
| * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New |
| function. |
| (thumb1_epilogue_unused_call_clobbered_lo_regs): New function. |
| (thumb1_compute_save_core_reg_mask): Don't force a spare work |
| register if both the epilogue and prologue can use call-clobbered |
| regs. |
| (thumb1_unexpanded_epilogue): Use |
| thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for |
| picking temporaries for restoring high regs to match that of the |
| prologue where possible. |
| (thumb1_expand_prologue): Add any usable call-clobbered low registers to |
| the list of work registers. Detect if the return address is still live |
| at the end of the prologue and avoid using it for a work register if so. |
| If the return address is not live, add LR to the list of pushable regs |
| after the first pass. |
| |
| 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/90078 |
| * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file. |
| (INFTY): Increase the value for infinite cost. |
| (struct comp_cost): Promote type of members to int64_t. |
| (infinite_cost): Don't set complexity in initialization. |
| (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation |
| overflows to infinite_cost. |
| (adjust_setup_cost): Promote type of parameter and cost computation |
| to int64_t. |
| (struct ainc_cost_data, struct iv_ca): Promote type of member to |
| int64_t. |
| (get_scaled_computation_cost_at, determine_iv_cost): Promote type of |
| cost computation to int64_t. |
| (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use |
| int64_t's format specifier in dump. |
| |
| 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/90240 |
| * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost |
| with respect to scaling factor pre-computed for each basic block. |
| (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost. |
| (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost. |
| (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New. |
| (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend |
| live range for array of loop's basic blocks. Cleanup aux field of |
| loop's basic blocks. |
| |
| 2019-05-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/90356 |
| * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible. |
| |
| 2019-05-07 Wei Xiao <wei3.xiao@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET |
| OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New. |
| (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET. |
| (ix86_handle_option): Handle -mavx512bf16. |
| * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h |
| to extra_headers. |
| * config/i386/avx512bf16vlintrin.h: New. |
| * config/i386/avx512bf16intrin.h: New. |
| * config/i386/cpuid.h (bit_AVX512BF16): New. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16. |
| * config/i386/i386-builtin-types.def: Add new types. |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define |
| __AVX512BF16__. |
| * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16. |
| (ix86_option_override_internal): Handle BF16. |
| (ix86_valid_target_attribute_inner_p): Ditto. |
| * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto. |
| * config/i386/i386-builtin.c (enum processor_features): Add |
| F_AVX512BF16. |
| (static const _isa_names_table isa_names_table): Ditto. |
| * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New. |
| (PTA_AVX512BF16): Ditto. |
| * config/i386/i386.opt: Add -mavx512bf16. |
| * config/i386/immintrin.h: Include avx512bf16intrin.h |
| and avx512bf16vlintrin.h. |
| * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>, |
| avx512f_cvtneps2bf16_<mode><mask_name>, |
| avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns. |
| * config/i386/subst.md (mask_half): Add new subst. |
| * doc/invoke.texi: Document -mavx512bf16. |
| |
| 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr): |
| Delete declaration. |
| * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete. |
| (rs6000_debug_legitimize_reload_address): Delete. |
| (rs6000_legitimize_reload_address_ptr): Delete. |
| (rs6000_option_override_internal): Adjust. |
| (mem_operand_gpr): Adjust comment. |
| (legitimate_lo_sum_address_p): Ditto. |
| (rs6000_legitimize_reload_address): Delete. |
| (rs6000_debug_legitimize_reload_address): Delete. |
| * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete. |
| |
| 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| PR target/89765 |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic |
| to compute vector element selector for both constant and variable |
| operands. |
| |
| 2019-05-07 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (cvt_mnemonic): New mode attribute. |
| (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and |
| ashrdi3_cvt using SWI48 mode iterator. |
| |
| 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand. |
| (aarch64_<su>abd<mode>_3): Likewise. |
| (*aarch64_<su>abd<mode>_3): New define_insn. |
| (<sur>sad<vsi2qi>): New define_expand. |
| * config/aarch64/iterators.md: Added MAX_OPP attribute. |
| * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR. |
| (build_vect_cond_expr): Likewise. |
| |
| 2019-05-07 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * cfgexpand.c (asm_clobber_reg_is_valid): Reject |
| clobbers outside of accessible_reg_set. |
| * config/i386/i386.c (ix86_conditional_register_usage): |
| Disable register sets by clearing corresponding bits in |
| accessible_reg_set. Do not set corresponding bits in fixed_regs, |
| call_used_regs and don't clear corresponding reg_names array members. |
| |
| 2019-05-07 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (vect_is_simple_cond): When vectype is |
| not specified still compute a comp_vectype for invariant |
| compares. |
| |
| 2019-05-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90316 |
| * tree-ssa-pre.c (translate_vuse_through_block): When |
| same_valid is NULL do not bother to search for a virtual |
| PHI continuation. |
| (phi_translate_1): When operands changed we cannot keep |
| the same value-number so do not bother to ask whether |
| that's possible from translate_vuse_through_block. |
| |
| 2019-05-07 Martin Liska <mliska@suse.cz> |
| |
| * bitmap.c (bitmap_register): Come up with |
| alloc_descriptor_max_uid and assign it for |
| a new bitmap. |
| (register_overhead): Use get_descriptor as |
| a descriptor. |
| (release_overhead): New. |
| (bitmap_elem_to_freelist): Call it. |
| (bitmap_elt_clear_from): Likewise. |
| (bitmap_obstack_free): Likewise. |
| (bitmap_move): Sensitively release memory. |
| * bitmap.h (struct GTY): Add alloc_descriptor and padding. |
| (bitmap_initialize): Initialize alloc_descriptor to zero. |
| * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move. |
| |
| 2019-05-07 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever |
| we build a SLP node. Remove max_size and limiting. |
| (vect_analyze_slp_instance): Record and dump size of the SLP graph. |
| |
| 2019-05-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90316 |
| * tree-ssa-alias.h (get_continuation_for_phi): Take walking |
| limit by reference. |
| (walk_non_aliased_vuses): Take walking limit argument. |
| * tree-ssa-alias.c (maybe_skip_until): Take limit and abort |
| walking if it is reached instead of just counting. |
| (get_continuation_for_phi): Likewise. |
| (walk_non_aliased_vuses): Likewise, instead of leaving counter |
| limiting to the callback. |
| * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust. |
| (vn_reference_lookup_3): Likewise. |
| (vn_reference_lookup_pieces): Likewise. |
| (vn_reference_lookup): Likewise. |
| * tree-ssa-pre.c (translate_vuse_through_block): Limit walking. |
| * tree-ssa-scopedtables.c (vuse_eq): Adjust. |
| (avail_exprs_stack::lookup_avail_expr): Likewise. |
| |
| 2019-05-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking |
| for comparaible types in the second direction even if first one |
| hits incomparable type. |
| |
| 2019-05-07 Richard Biener <rguenther@suse.de> |
| |
| PR lto/90369 |
| * lto-wrapper.c (debug_objcopy): Use the original filename |
| including archive offset for the filename used for -save-temps. |
| |
| 2019-05-07 Li Jia He <helijia@linux.ibm.com> |
| |
| * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter |
| detection. |
| |
| 2019-05-06 H.J. Lu <hongjiu.lu@intel.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| PR target/89750 |
| PR target/86444 |
| * config/i386/i386-expand.c (ix86_expand_sse_comi_round): |
| Modified, original implementation isn't correct. |
| |
| 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO) |
| (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO) |
| (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO) |
| (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO) |
| (FRAME_POINTER_REGNUM): Change numbering. |
| * config/rs6000/rs6000.c (rs6000_reg_names): Adjust. |
| (alt_reg_names): Adjust. |
| (rs6000_conditional_register_usage): Don't mark hard register 64 as |
| fixed. |
| * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust. |
| (DWARF_FRAME_REGISTERS): Delete. |
| (DWARF2_FRAME_REG_OUT): Fix whitespace. |
| (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): |
| Adjust. |
| (REG_ALLOC_ORDER): Adjust. |
| (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust. |
| (REG_CLASS_CONTENTS): Adjust. |
| (RETURN_ADDR_RTX): Change comment. |
| (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM |
| instead of 67. |
| (REGISTER_NAMES): Adjust. |
| (ADDITIONAL_REGISTER_NAMES): Adjust. |
| * config/rs6000/darwin.h (REGISTER_NAMES): Adjust. |
| |
| 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): |
| Delete. |
| * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust. |
| (DWARF_FRAME_REGISTERS): Adjust. |
| (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): |
| Adjust. |
| (REG_ALLOC_ORDER): Adjust. |
| (enum reg_class): Delete SPR_REGS. |
| (REG_CLASS_NAMES): Delete SPR_REGS. |
| (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs. |
| (REGISTER_NAMES): Adjust. |
| (ADDITIONAL_REGISTER_NAMES): Adjust. |
| * config/rs6000/darwin.h (REGISTER_NAMES): Adjust. |
| * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust. |
| * config/rs6000/predicates.md (htm_spr_reg_operand): Delete. |
| * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust. |
| (htm_spr_regno): Delete. |
| (htm_expand_builtin): Adjust: the HTM builtins now have one fewer |
| argument. |
| (rs6000_dbx_register_number): Adjust. |
| |
| 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete. |
| |
| 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle |
| FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ). |
| |
| 2019-05-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/88709 |
| PR tree-optimization/90271 |
| * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter. |
| * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle |
| non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int |
| variable. |
| (imm_store_chain_info::coalesce_immediate_stores): Punt if the size |
| of the store merging group is larger than |
| PARAM_STORE_MERGING_MAX_SIZE parameter. |
| (split_group): Add bzero_first argument. If set, always emit first |
| the first store which must be = {} of the whole area and then for the |
| rest of the stores consider all zero bytes as paddings. |
| (imm_store_chain_info::output_merged_store): Check if first store |
| is = {} of the whole area and if yes, determine which setting of |
| bzero_first for split_group gives smaller number of stores. Adjust |
| split_group callers. |
| (lhs_valid_for_store_merging_p): Allow decls. |
| (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with |
| no elts. |
| (pass_store_merging::process_store): Likewise. |
| |
| 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| PR target/89424 |
| * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add |
| handling of V1TImode. |
| |
| 2019-05-06 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89221 |
| * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld |
| and enable_frame_pointer ... |
| * configure.ac: ... here. Update help strings for |
| --enable-frame-pointer. |
| * configure: Regenerate. |
| * config/i386/i386-options.c (ix86_option_override_internal): Remove |
| USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead. |
| * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove. |
| (USE_X86_64_FRAME_POINTER): Ditto. |
| |
| 2019-05-06 Martin Liska <mliska@suse.cz> |
| |
| * config.gcc: Append to target_gtfiles and fix indentation. |
| |
| 2019-05-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90358 |
| * tree-vect-stmts.c (get_group_load_store_type): Properly |
| detect unused upper half of load. |
| (vectorizable_load): Likewise. |
| |
| 2019-05-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88828 |
| * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from... |
| (simplify_vector_constructor): ...here. Handle constants in |
| the constructor. |
| |
| 2019-05-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90328 |
| * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest. |
| * tree-data-ref.c (dr_may_alias_p): Check whether the clique |
| is valid in the loop nest before using it. |
| (initialize_data_dependence_relation): Adjust. |
| * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing |
| loop as loop-nest to dr_may_alias_p. |
| |
| 2019-05-06 Richard Biener <rguenther@suse.de> |
| |
| * dwarf2out.c (mem_loc_descriptor): Initialize int_mode. |
| |
| 2019-05-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90316 |
| * tree-ssa-alias.c (maybe_skip_until): Pass in target BB, |
| compute target on demand. |
| (get_continuation_for_phi): Remove code walking stmts to |
| get to a target virtual operand which could end up being |
| quadratic. |
| |
| 2019-05-06 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/90312 |
| * config/i386/i386-options.c (ix86_option_override_internal): Error only |
| when -mabi is selected to a non-default version. |
| |
| 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com> |
| Martin Liska <mliska@suse.cz> |
| |
| * Makefile.in: Add lto-dump.texi. |
| * cgraph.h: Add new functions get_visibility_string and |
| get_symtab_type_string. |
| * doc/gcc.texi: Include lto-dump section. |
| * doc/lto-dump.texi: New file. |
| * dumpfile.c (dump_switch_p_1): Use parse_dump_option. |
| (parse_dump_option): Factor out this function. |
| * dumpfile.h (enum dump_flag): Add new value TDF_ERROR. |
| (parse_dump_option): Export the function. |
| * symtab.c (symtab_node::get_visibility_string): New function. |
| (symtab_node::get_symtab_type_string): Likewise. |
| |
| 2019-05-06 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386-builtins.c: New file. |
| * config/i386/i386-builtins.h: New file. |
| * config/i386/i386-expand.c: New file. |
| * config/i386/i386-expand.h: New file. |
| * config/i386/i386-features.c: New file. |
| * config/i386/i386-features.h: New file. |
| * config/i386/i386-options.c: New file. |
| * config/i386/i386-options.h: New file. |
| * config.gcc: Add new files into extra_objs and |
| target_gtfiles. |
| * config/i386/i386.c: Split content of the file |
| into newly introduced files. |
| * config/i386/i386.h: Declare common variables |
| and macros. |
| * config/i386/t-i386: Define dependencies for new files. |
| |
| 2019-05-03 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/89400 |
| * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1. |
| Restrict 'all' variant to 32-bit configurations. |
| (unaligned_loadhiu): Likewise. |
| (unaligned_storehi): Likewise. |
| (unaligned_storesi): Likewise. |
| (unaligned_loadhis): Disable when compiling for thumb1. |
| |
| 2019-05-03 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR tree-optimization/90269 |
| * tree-loop-distribution.c (find_seed_stmts_for_distribution): |
| Ignore clobbers. |
| |
| 2019-05-03 Martin Liska <mliska@suse.cz> |
| |
| * hash-map.h: Add is_empty function. |
| * hash-set.h: Likewise. |
| * hash-table.h: Likewise. |
| * dwarf2out.c (dwarf2out_finish): Use is_empty instead of |
| elements () == 0 (and similar usages). |
| * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise. |
| * gimplify.c (gimplify_bind_expr): Likewise. |
| (gimplify_switch_expr): Likewise. |
| * hash-map-tests.c (test_map_of_strings_to_int): Likewise. |
| * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise. |
| * postreload-gcse.c (dump_hash_table): Likewise. |
| (gcse_after_reload_main): Likewise. |
| * predict.c (combine_predictions_for_bb): Likewise. |
| * tree-parloops.c (reduction_phi): Likewise. |
| (separate_decls_in_region): Likewise. |
| (transform_to_exit_first_loop): Likewise. |
| (gen_parallel_loop): Likewise. |
| (gather_scalar_reductions): Likewise. |
| (try_create_reduction_list): Likewise. |
| * var-tracking.c (dump_vars): Likewise. |
| (emit_notes_for_changes): Likewise. |
| (vt_emit_notes): Likewise. |
| |
| 2019-05-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90316 |
| * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries |
| before running VN. |
| |
| 2019-05-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (get_group_load_store_type): Avoid |
| peeling for gaps by loading only lower halves of vectors |
| if possible. |
| (vectorizable_load): Likewise. |
| |
| 2019-05-03 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89518 |
| * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A. |
| |
| 2019-05-03 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/87314 |
| * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): |
| Handle STRING_CST vs DECL or STRING_CST. |
| |
| 2019-05-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88963 |
| * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite |
| vector loads feeding only BIT_FIELD_REFs to component |
| loads. Rewrite stores fed by CONSTRUCTORs to component |
| stores. |
| |
| 2019-05-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * opts.h (finish_options): Remove lang_mask argument. |
| (print_help, help_option_argument): Declare. |
| * opts.c (print_help): Remove forward declaration, no longer static. |
| (finish_options): Remove lang_mask argument, don't call print_help |
| here. |
| * opts-global.c (decode_options): Adjust finish_option caller, call |
| print_help here. |
| |
| PR tree-optimization/90303 |
| * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use |
| TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode. |
| |
| 2019-05-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89698 |
| * gimple-fold.c (canonicalize_constructor_val): Early out |
| for constants, handle unfolded INTEGER_CSTs as they appear in |
| C++ virtual table ctors. |
| |
| 2019-05-03 Richard Biener <rguenther@suse.de> |
| |
| * passes.c (execute_function_todo): Remove dead code. |
| |
| 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use |
| the internal register number, for any "real" register. |
| |
| 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the |
| correct numbers for TFHAR, TFIAR, TEXASR. |
| |
| 2019-05-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89653 |
| * tree-ssa-loop.c (pass_data_tree_loop_init): Execute |
| update-address-taken before the pass. |
| * passes.def (pass_tree_loop_init): Put comment before it. |
| |
| 2019-05-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89509 |
| * tree-ssa-structalias.c (compute_dependence_clique): Look |
| at the first subvar when determining whether it is restrict. |
| |
| 2019-05-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90273 |
| * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate |
| useless debug stmts. |
| |
| 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE |
| ACLE branch. |
| * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from |
| SVE ACLE branch. |
| * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a |
| VEC_COND_EXPR be inserted to emulate a conditional internal function. |
| (build_vect_cond_expr): Emit the VEC_COND_EXPR. |
| (vectorizable_reduction): Use the functions above to vectorize in a |
| fully masked loop codes that don't have a conditional internal |
| function. |
| |
| 2019-05-02 Martin Liska <mliska@suse.cz> |
| |
| * cgraphclones.c: Call valid_attribute_p with 1 for |
| target_clone. |
| * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as |
| it's for target attribute. |
| * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): |
| Add new boolean argument. |
| * config/i386/i386.c (ix86_valid_target_attribute_inner_p): |
| Likewise. |
| (ix86_valid_target_attribute_tree): Pass target_clone_attr |
| to ix86_valid_target_attribute_inner_p. |
| (ix86_valid_target_attribute_p): Pass flags argument to |
| ix86_valid_target_attribute_inner_p. |
| (get_builtin_code_for_version): Use 0 as it's target attribute. |
| |
| 2019-05-02 Martin Liska <mliska@suse.cz> |
| |
| * gcc.c (process_command): Add dummy file only |
| if n_infiles == 0. |
| * opts-global.c (decode_options): Pass lang_mask. |
| * opts.c (print_help): New function. |
| (finish_options): Print --help if help_option_argument |
| is set. |
| (common_handle_option): Factor out content of OPT__help_ |
| into print_help. |
| * opts.h (finish_options): Add new argument. |
| |
| 2019-05-02 Martin Liska <mliska@suse.cz> |
| |
| PR target/88809 |
| * config/i386/i386.c (ix86_expand_strlen): Use strlen call. |
| With -minline-all-stringops use inline expansion using 4B loop. |
| * doc/invoke.texi: Document the change of |
| -minline-all-stringops. |
| |
| 2019-05-01 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/88797 |
| * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the |
| PHI feeds a conditional on the RHS of an assignment. |
| |
| 2019-04-30 Andrew Waterman <andrew@sifive.com> |
| Jim Wilson <jimw@sifive.com> |
| |
| * config/riscv/constraints.md (L): New. |
| * config/riscv/predicates.md (lui_operand): New. |
| (sfb_alu_operand): New. |
| * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare. |
| * config/riscv/riscv.c (riscv_expand_conditional_move): New. |
| * config/riscv/riscv.h (TARGET_SFB_ALU): New. |
| * config/riscv/risc.md (type): Add sfb_alu. |
| (branch<mode>): Renamed from branch_order<mode>. Change predicate for |
| operand 3 to reg_or_0_operand. In output string, change %3 to %z3. |
| (branch_zero<mode>): Delete. |
| (mov<mode>cc): New. |
| (mov<GPR:mode><X:mode>cc): Likewise. |
| * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses. |
| |
| 2019-04-30 Nathan Sidwell <nathan@acm.org> |
| |
| * tree.h (MARK_TS_EXP): New. |
| |
| 2019-04-30 Martin Liska <mliska@suse.cz> |
| |
| * opts.c (enable_warning_as_error): Provide hints |
| for unknown options. |
| |
| 2019-04-30 Martin Liska <mliska@suse.cz> |
| |
| PR debug/90288 |
| * doc/invoke.texi: Add missing dash for gas-locview-support |
| and gno-as-locview-support. |
| |
| 2019-04-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89093 |
| * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip |
| whitespace at the start of target attribute string. |
| |
| 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| PR target/86538 |
| * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): |
| Define __ARM_FEATURE_ATOMICS. |
| |
| 2019-04-30 Martin Liska <mliska@suse.cz> |
| |
| * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp |
| into built_in_function enum. Remove code for endp == 2 and |
| use BUILT_IN_* constants. |
| (gimple_fold_builtin): Call the function with fcode. |
| |
| 2019-04-30 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386.c (ix86_builtin_reciprocal): Cast |
| DECL_FUNCTION_CODE into ix86_builtins enum before |
| the switch statement. |
| |
| 2019-04-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/89475 |
| * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64} |
| calls. |
| |
| 2019-04-30 Martin Liska <mliska@suse.cz> |
| |
| PR translation/90274 |
| * opts.c (print_filtered_help): Wrap string in _(...). |
| |
| 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/90240 |
| Revert: |
| 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/90078 |
| * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add |
| checks for infinite_cost overflow. |
| |
| 2019-04-29 Jeff Law <law@redhat.com> |
| |
| * passes.def: Move -Wrestrict pass after copy propagation. |
| |
| 2019-04-29 Maya Rashish <coypu@sdf.org> |
| |
| * config.gcc (default_gnu_indirect_function): Default to yes |
| for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*, |
| sparc*-*-netbsd*, x86_64-*-netbsd*. |
| |
| 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases |
| where cond2 is NE_EXPR. |
| (is_value_included_in): Update comment. |
| |
| 2019-04-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90278 |
| * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean |
| EH on comparison simplification. |
| |
| 2019-04-29 Jason Merrill <jason@redhat.com> |
| |
| PR c++/82081 - tail call optimization breaks noexcept |
| * tree-tailcall.c (find_tail_calls): Don't turn a call from a |
| nothrow function to a might-throw function into a tail call. |
| |
| 2019-04-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-data-ref.h (data_dependence_relation::inner_loop): Delete. |
| (DDR_INNER_LOOP): Likewise. |
| * tree-data-ref.c (dump_data_dependence_relation): Update accordingly. |
| (initialize_data_dependence_relation): Likewise. |
| (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP. |
| |
| 2019-04-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/90257 |
| * cfgrtl.c (flow_active_insn_p): Return true for USE of a function |
| return value. |
| |
| Revert the revert: |
| 2019-04-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/90178 |
| Revert: |
| 2018-11-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| Revert the revert: |
| 2013-10-26 Vladimir Makarov <vmakarov@redhat.com> |
| |
| Revert: |
| 2013-10-25 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * lra-spills.c (lra_final_code_change): Remove useless move insns. |
| |
| 2019-04-29 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER} |
| rhs issue a reset. |
| |
| 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h, |
| varasm.h, and netbsd-protos.h. |
| |
| 2019-04-27 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89261 |
| * config/i386/i386-protos.h (ix86_data_alignment): Change |
| the second argument type to unsigned int. |
| * config/i386/i386.c (ix86_data_alignment): Change "align" |
| argument type to unsigned int. |
| |
| 2019-04-27 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/90258 |
| * opt-suggestions.c (option_proposer::build_option_suggestions): |
| When get_valid_option_values returns empty values, add the |
| misspelling candidate. |
| |
| 2019-04-26 Jim Wilson <jimw@sifive.com> |
| |
| * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode |
| parameter. |
| * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode. |
| Pass orig_mode to riscv_build_integer. |
| (riscv_split_integer): Pass mode to riscv_move_integer. |
| (riscv_legitimize_const_move): Likewise. |
| (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local |
| promoted_mode. Replace force_reg call with code to load constant into |
| promoted reg and then subreg it for the store. |
| * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to |
| riscv_move_integer. |
| |
| 2018-04-26 Eugene Sharygin <eush@ispras.ru> |
| |
| * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with |
| corrupt codes. |
| |
| 2019-04-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add |
| commentary about the encoding of precision. |
| |
| 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org> |
| |
| * config/i386/freebsd64.h: Add bits for 32-bit multilib support. |
| * config/i386/t-freebsd64: New file. |
| * config.gcc: Add the t-freebsd64 for multilib support. |
| |
| 2019-04-25 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * doc/extend.texi (vector_size): Add missing comma after @xref. |
| |
| 2019-04-25 Jakub Jelinek <jakub@redhat.com> |
| |
| * BASE-VER: Set to 10.0.0. |
| |
| 2019-04-25 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89765 |
| * gimplify.c (gimplify_expr): Avoid turning a lvalue |
| VIEW_CONVERT_EXPR into one operating on an rvalue. |
| |
| 2019-04-25 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89929 |
| * config/i386/i386.c (feature_priority): Moved to file scope. |
| (processor_features): Likewise. |
| (processor_model): Likewise. |
| (_arch_names_table): Likewise. |
| (arch_names_table): Likewise. |
| (_feature_list): Removed. |
| (feature_list): Likewise. |
| (_isa_names_table): Moved to file scope. Add priority. |
| (isa_names_table): Likewise. |
| (get_builtin_code_for_version): Replace feature_list with |
| isa_names_table. Update error message for P_ZERO priority. |
| |
| 2019-04-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-pass.h (make_pass_phi_only_cprop): Remove. |
| * timevar.def (TV_TREE_PHI_CPROP): Likewise. |
| |
| 2019-04-24 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/90037 |
| * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c |
| * passes.def: Replace all instance of phi-only cprop with the |
| lattice propagator. Move propagation pass from after erroneous |
| path isolation to before erroneous path isolation. |
| * tree-ssa-phionlycprop.c: Remove. |
| |
| 2019-04-24 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/90213 |
| * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication |
| by size and BITS_PER_UNIT on poly-wide-ints. |
| |
| 2019-04-25 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/90194 |
| * match.pd: Add pattern to simplify view-conversion of an |
| empty constructor. |
| |
| 2019-04-24 Clement Chigot <clement.chigot@atos.net> |
| |
| * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable |
| OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags |
| for Go on 32 bit AIX. |
| * config/rs6000/aix72.h: Likewise. |
| |
| 2019-04-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90193 |
| * rtl.c (classify_insn): Return JUMP_INSN for asm goto. |
| * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET. |
| |
| 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| PR target/89952 |
| * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs |
| from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also |
| for restored hard frame pointer. |
| (s390_sched_dependencies_evaluation): Implement new target hook. |
| (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition. |
| |
| 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com> |
| |
| * config/arc/arc-options.def: Fix typos and spelling mistakes. |
| * config/arc/arc.c (arc_init): Cleanup warning message. |
| (arc_override_options): Likewise. |
| |
| 2019-04-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90187 |
| * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into |
| a register if both if_true and if_false are MEMs. |
| |
| PR tree-optimization/90208 |
| * tree-cfg.c (remove_bb): Move forced labels from removed bbs |
| after labels of new_bb, not before them. |
| |
| PR tree-optimization/90211 |
| * tree-parloops.c (try_create_reduction_list): Ignore phi arguments |
| which are not SSA_NAMEs. |
| |
| 2018-04-23 Sudakshina Das <sudi.das@arm.com> |
| |
| * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for |
| AArch64. |
| (aarch64_file_end_indicate_exec_stack): Add gnu note section. |
| |
| 2019-04-23 Roman Zhuykov <zhroma@ispras.ru> |
| |
| PR rtl-optimization/87979 |
| * modulo-sched.c (sms_schedule): Start ii value "mii" should |
| not equal zero. |
| |
| 2019-04-23 Roman Zhuykov <zhroma@ispras.ru> |
| |
| PR rtl-optimization/84032 |
| * modulo-sched.c (ps_insn_find_column): Change condition so that |
| branch will always be the last insn in a row inside partial |
| schedule. |
| |
| 2019-04-23 Richard Biener <rguenther@suse.de> |
| |
| PR debug/90131 |
| * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add |
| dest_single_pred_p argument. |
| (remove_forwarder_block): Adjust. |
| (remove_forwarder_block_with_phi): Likewise. |
| |
| 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| Bernd Edlinger <bernd.edlinger@hotmail.de> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89093 |
| * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose |
| if used with general-regs-only. |
| (arm_conditional_register_usage): Don't add non-general regs if |
| general-regs-only. |
| (arm_valid_target_attribute_rec): Handle general-regs-only. |
| * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if |
| general-regs-only. |
| (TARGET_HARD_FLOAT_SUB): Define. |
| (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB. |
| (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY. |
| (TARGET_REALLY_IWMMXT2): Likewise. |
| * config/arm/arm.opt: Add -mgeneral-regs-only. |
| * doc/extend.texi: Document ARM general-regs-only target. |
| * doc/invoke.texi: Document ARM -mgeneral-regs-only. |
| |
| 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/90078 |
| * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add |
| checks for infinite_cost overflow. |
| |
| 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/90021 |
| * tree-chrec.c (evolution_function_is_univariate_p): New parameter |
| and check univariate against it. |
| * tree-chrec.h (evolution_function_is_univariate_p): New parameter. |
| * tree-data-ref.c (add_other_self_distances): Pass new argument. |
| |
| 2019-04-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/90178 |
| Revert: |
| 2018-11-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| Revert the revert: |
| 2013-10-26 Vladimir Makarov <vmakarov@redhat.com> |
| |
| Revert: |
| 2013-10-25 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * lra-spills.c (lra_final_code_change): Remove useless move insns. |
| |
| 2019-04-21 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/rs6000.md (group_end_nop): Emit insn register |
| names using operand format, rather than hard-wired. |
| (speculation_barrier): Likewise. |
| |
| 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR tree-optimization/88055 |
| * tree-call-cdce.c (comparison_code_if_no_nans): New function. |
| (gen_one_condition): Use it if !HONOR_NANS. |
| |
| 2019-04-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/90139 |
| * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return |
| assign_temp instead of gen_reg_rtx. |
| |
| 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR translation/90118 |
| * config/aarch64/aarch64.c (aarch64_override_options_internal): |
| Add missing space before %<. |
| |
| 2019-04-18 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR rtl-optimization/87871 |
| * ira-lives.c (make_object_dead): Don't add conflicts to |
| TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts. |
| |
| 2019-04-18 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/89797 |
| * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U. |
| * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid |
| assuming type size fits in SHWI. |
| |
| 2019-04-18 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/85051 |
| * ipa-inline.c (flatten_function): New parameter UPDATE. |
| (ipa_inline, early_inliner): Use it. |
| |
| 2019-04-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * fold-const.c (int_const_binop): Return early on failure. |
| |
| 2019-04-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR middle-end/85164 |
| * combine.c (force_int_to_mode): Cast the argument rather than |
| the result of known_alignment. |
| * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p. |
| |
| 2019-04-18 Richard Biener <rguenther@suse.de> |
| |
| PR debug/90131 |
| * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split |
| out from ... |
| (remove_forwarder_block): ... here. |
| (remove_forwarder_block_with_phi): Also move debug stmts here. |
| |
| 2019-04-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR translation/79183 |
| * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of |
| inform where appropriate. |
| |
| 2019-04-18 Richard Biener <rguenther@suse.de> |
| |
| * tree.c (get_qualified_type): Put found type variants at the |
| head of the variant list. |
| |
| 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo. |
| |
| 2019-04-17 Hongtao Liu <hongtao.liu@intel.com> |
| |
| PR target/90125 |
| * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd, |
| _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd, |
| _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd, |
| _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd, |
| _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3. |
| |
| 2019-04-17 Peter Bergner <bergner@linux.ibm.com> |
| |
| * ira-conflicts.c (print_allocno_conflicts): Always print something, |
| even for allocno's with no conflicts. |
| (print_conflicts): Print an extra newline. |
| |
| 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * auto-inc-dec.c (attempt_change): Set the alignment of the |
| temporary memory to that of the original. |
| |
| 2019-04-17 Joao Moreira <jmoreira@suse.de> |
| |
| * targhooks.c (default_print_patchable_function_entry): Emit |
| __patchable_function_entries section with writable flags to allow |
| relocation resolution. |
| |
| 2019-04-17 Jonny Grant <jg@jguk.org> |
| |
| * collect2.c (main): Change gcc.gnu.org URL to HTTPS. |
| |
| 2019-04-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/90095 |
| * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P |
| on lowpart SUBREGs. |
| |
| 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_init): Format diagnostic string. |
| (arc_override_options): Likewise. |
| (check_if_valid_regno_const): Likewise. |
| (arc_reorg): Likewise. |
| |
| 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/17108 |
| * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern |
| name. |
| (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern |
| name. |
| * config/rs6000/rs6000.md (bits): Add entries for SF and DF. |
| (*movdi_update1): Use Pmode. |
| (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p. |
| (movdi_<mode>_update_stack): Rename to ... |
| (movdi_update_stack): ... this. Fix comment. Change condition. Don't |
| use Pmode. |
| (*movsi_update1): Use Pmode. |
| (*movsi_update2): Use Pmode. |
| (movsi_update): Rename to ... |
| (movsi_<mode>_update): ... this. Use Pmode. |
| (movsi_update_stack): Fix condition. |
| (*movhi_update1): Use Pmode. Fix argument to |
| avoiding_indexed_address_p. |
| (*movhi_update2): Ditto. |
| (*movhi_update3): Ditto. |
| (*movhi_update4): Ditto. |
| (*movqi_update1): Ditto. |
| (*movqi_update2): Ditto. |
| (*movqi_update3): Ditto. |
| (*movsf_update1, *movdf_update1): Merge, rename to... |
| (*mov<mode>_update1): This. Use Pmode. Fix argument to |
| avoiding_indexed_address_p. Add "size" attribute. |
| (*movsf_update2, *movdf_update2): Merge, rename to... |
| (*mov<mode>_update2): This. Ditto. |
| (*movsf_update3): Use Pmode. Fix argument to |
| avoiding_indexed_address_p. |
| (*movsf_update4): Ditto. |
| (allocate_stack): Simplify condition. Adjust pattern names. |
| |
| 2019-04-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89093 |
| * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip |
| whitespace at the start of target attribute string. |
| |
| 2019-04-16 Pat Haugen <pthaugen@us.ibm.com> |
| |
| PR target/84369 |
| * config/rs6000/power9.md: Add store forwarding bypass. |
| |
| 2019-04-16 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/89528 |
| * valtrack.c (dead_debug_insert_temp): Reset debug references |
| to the return value of a call being removed. |
| |
| 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc-protos.h (arc_register_move_cost): Remove. |
| * config/arc/arc.c (arc_register_move_cost): Re-purpose it to |
| implement target hook. |
| (arc_memory_move_cost): New function. |
| (TARGET_REGISTER_MOVE_COST): Define. |
| (TARGET_MEMORY_MOVE_COST): Likewise. |
| * config/arc/arc.h (REGISTER_MOVE_COST): Remove. |
| (MEMORY_MOVE_COST): Likewise. |
| |
| 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (sibcall_insn): Use Rcd constraint. |
| (sibcall_value_insn): Likewise. |
| * config/arc/constraints.md (Rs5): Remove. |
| |
| 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes |
| for last two fake registers. |
| (arc_conditional_register_usage): Make sure fake frame and arg |
| pointer regs are in general regs class. |
| (FRAME_POINTER_MASK): Remove. |
| (RETURN_ADDR_MASK): Remove. |
| (arc_must_save_register): Use hard frame regnum. |
| (frame_restore_reg): Use hard_frame_pointer_rtx. |
| (arc_save_callee_saves): Likewise. |
| (arc_restore_callee_saves): Likewise. |
| (arc_save_callee_enter): Likewise. |
| (arc_restore_callee_leave): Likewise. |
| (arc_save_callee_milli): Likewise. |
| (arc_eh_return_address_location): Likewise. |
| (arc_check_multi): Use hard frame regnum. |
| (arc_can_eliminate): Likewise. |
| * config/arc/arc.h (FIXED_REGISTERS): Make FP register available |
| for register allocator. |
| (REG_CLASS_CONTENTS): Update GENERAL_REGS. |
| (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM. |
| (FRAME_POINTER_REGNUM): Change it to a fake register. |
| (HARD_FRAME_POINTER_REGNUM): Defined. |
| (ARG_POINTER_REGNUM): Change it to a new fake register. |
| (ELIMINABLE_REGS): Update. |
| (REGISTER_NAMES): Update names. |
| * config/arc/arc.md (LP_START): Remove. |
| (LP_END): Likewise. |
| (shift_si3_loop): Update pattern. |
| |
| 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless |
| to avoid delay slot scheduling. |
| (arc_must_save_register): Don't save SP. |
| * config/arc/arc.md (stack_tie): Remove. |
| (UNSPEC_ARC_STKTIE): Likewise. |
| |
| 2019-04-16 Kito Cheng <kito.cheng@gmail.com> |
| Shiva Chen <shiva0217@gmail.com> |
| |
| * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong |
| code gen with large shift amount. |
| |
| 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle |
| subreg. |
| |
| 2019-04-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90096 |
| * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only |
| print -m64/-mx32/-m32 if it is true. |
| (ix86_debug_options, ix86_function_specific_print): Pass true as |
| ADD_ABI_P to ix86_target_string. |
| (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as |
| ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case |
| or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32. |
| |
| PR rtl-optimization/90082 |
| * dce.c (can_delete_call): New function. |
| (deletable_insn_p, mark_insn): Use it. |
| |
| PR tree-optimization/90090 |
| * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can |
| throw internally. |
| (is_division_by_square): Likewise. Formatting fix. |
| |
| 2019-04-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/56049 |
| * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set |
| equality check if alias-set zero will prevail. |
| |
| 2019-04-15 Jeff Law <law@redhat.com> |
| |
| * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat |
| size and alignment as unsigned. |
| |
| 2019-04-15 Richard Biener <rguenther@suse.de> |
| |
| PR debug/90074 |
| * tree-loop-distribution.c (destroy_loop): Preserve correct |
| debug info. |
| |
| 2019-04-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90071 |
| * tree-ssa-reassoc.c (init_range_entry): Do not pick up |
| abnormal operands from def stmts. |
| |
| 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/89794 |
| * combine.c (count_auto_inc): New function. |
| (try_combine): Count how many auto_inc expressions there were in the |
| original instructions. Ensure we have the same number in the new |
| instructions. Remove the code that tried to ensure auto_inc side |
| effects on i1 and i0 are not lost. |
| |
| 2019-04-15 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/88936 |
| * tree.h (auto_var_p): Declare. |
| * tree.c (auto_var_p): New function, split out from ... |
| (auto_var_in_fn_p): ... here. |
| * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid |
| member. |
| (new_var_info): Initialize it. |
| (set_uids_in_ptset): Also set the shadow variable uid if required. |
| (ipa_pta_execute): Postprocess points-to solutions assigning |
| shadow variable uids for locals that may reach their containing |
| function recursively. |
| * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not |
| assert but instead check whether the points-to solution is |
| a singleton. |
| |
| 2019-04-15 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/pr89693 |
| * cgraph.c (clone_of_p): Loop over clone chain for each step in |
| the thunk chain. |
| |
| 2019-04-15 Monk Chiang <sh.chiang04@gmail.com> |
| |
| * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes. |
| |
| 2019-04-15 Monk Chiang <sh.chiang04@gmail.com> |
| Kito Cheng <kito.cheng@gmail.com> |
| Shiva Chen <shiva0217@gmail.com> |
| |
| * config/nds32/nds32-md-auxiliary.c |
| (nds32_legitimize_pic_address): Use new PIC pattern. |
| (nds32_legitimize_tls_address): Use new TLS pattern. |
| (nds32_output_symrel): New. |
| * config/nds32/nds32-protos.h (nds32_output_symrel): Declare. |
| (nds32_alloc_relax_group_id): Ditto. |
| * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New. |
| (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use |
| relax_group_id. |
| (nds32_group_tls_insn): Ditto. |
| (nds32_group_float_insns): Ditto. |
| * config/nds32/nds32.md (tls_le): New. |
| (sym_got): Ditto. |
| |
| 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * configure: Add nds32 target for dwarf2 debug_line checking. |
| * configure.ac: Regenerated. |
| |
| 2019-04-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/89358 |
| * ipa-devirt.c (skip_in_fields_list_p): New. |
| (odr_types_equivalent_p): Use it. |
| |
| 2019-04-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89093 |
| * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp |
| instead of strncmp when checking for thumb and arm. Formatting fixes. |
| |
| 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * doc/install.texi: Document --with-target-system-zlib. |
| |
| 2019-04-12 Martin Sebor <msebor@redhat.com> |
| |
| PR c/88383 |
| PR c/89288 |
| PR c/89798 |
| PR c/89797 |
| * targhooks.c (default_vector_alignment): Avoid assuming |
| argument fits in SHWI. |
| * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in |
| a shift expression. |
| * doc/extend.texi (__builtin_has_attribute): Add a clarifying note. |
| |
| 2019-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/89965 |
| * dce.c: Include rtl-iter.h. |
| (struct check_argument_load_data): New type. |
| (check_argument_load): New function. |
| (find_call_stack_args): Check for loads from stack slots still tracked |
| in sp_bytes and punt if any is found. |
| |
| * config/mips/loongson-mmiintrin.h: Fix up #error message. |
| |
| 2019-04-12 Jan Hubicka <hubicka@ucw.cz> |
| |
| * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter. |
| * doc/invoke.texi (max-lto-streaming-paralellism): New --param. |
| |
| 2019-04-12 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/89970 |
| * multiple_target.c (create_dispatcher_calls): Wrap ifunc |
| in error message. |
| (separate_attrs): Handle multiple 'default's. |
| (expand_target_clones): Rework error handling code. |
| |
| 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| PR target/87532 |
| * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner |
| mode of vector rather than mode of destination for move instruction. |
| * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var): |
| Use QI inner mode with V16QI vector mode. |
| |
| 2019-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/52726 |
| * config/tilepro/tilepro.c (tilepro_print_operand): Use just |
| "invalid %%t operand" in output_operand_lossage message. |
| |
| 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/predicates.md (permute_pattern_operand): New |
| predicate. |
| * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE |
| operand for the permute pattern. |
| ("*vec_perm<mode>"): New insn definition. |
| ("bswap<mode>"): Generate the permute pattern operand in the |
| expander and perform the operand reloads for pre arch13 level |
| already. |
| ("*bswap<mode>_emu"): Rename to ... |
| ("*bswap<mode>"): ... this. And make the splitter vxe2 only. |
| * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"): |
| Add the USE operand for the permute pattern. |
| ("*vec_set_bswap_vec<mode>"): Likewise. |
| |
| 2019-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/89946 |
| * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p |
| and gcc_unreachable if it fails, just call tree_to_uhwi which |
| verifies that too. Test TREE_CHAIN instead of list_length > 1. |
| Start warning message with a lower-case letter. Formatting fixes. |
| |
| PR rtl-optimization/90026 |
| * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no |
| successors, look for BARRIERs inside of the whole BB_FOOTER chain |
| rather than just at the start of it. If e->src BB_FOOTER is not NULL |
| in cfglayout mode, use emit_barrier_after_bb. |
| |
| 2018-04-11 Steve Ellcey <sellcey@marvell.com> |
| |
| PR rtl-optimization/87763 |
| * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt): |
| New Instruction. |
| |
| 2019-04-11 Tom de Vries <tdevries@suse.de> |
| |
| * doc/extend.texi (@node Statement Exprs): Note variable shadowing at |
| max macro using statement expression. |
| |
| 2019-04-11 David Edelsohn <dje.gcc@gmail.com> |
| |
| * xcoffout.h (xcoff_private_rodata_section_name): Declare. |
| * xcoffout.c (xcoff_private_rodata_section_name): Define. |
| * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create |
| read_only_private_data_section using xcoff_private_rodata_section_name. |
| (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name. |
| |
| 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/90016 |
| * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'. |
| |
| 2019-04-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/89965 |
| * dce.c (sp_based_mem_offset): New function. |
| (find_call_stack_args): Use sp_based_mem_offset. |
| |
| 2019-04-11 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs. |
| |
| 2019-04-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90020 |
| * tree-ssa-sccvn.c (vn_reference_may_trap): New function. |
| * tree-ssa-sccvn.h (vn_reference_may_trap): Declare. |
| * tree-ssa-pre.c (compute_avail): Use it to not put |
| possibly trapping references after a call that might not |
| return into EXP_GEN. |
| * gcse.c (compute_hash_table_work): Do not elide |
| marking a block containing a call if the call might not |
| return. |
| |
| 2019-04-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90018 |
| * tree-vect-data-refs.c (vect_preserves_scalar_order_p): |
| Test both SLP and interleaving variants. |
| |
| 2019-04-11 Robin Dapp <rdapp@linux.ibm.com> |
| |
| * config/s390/8561.md: New file. |
| * config/s390/driver-native.c (s390_host_detect_local_cpu): |
| Add arch13 cpu model. |
| * config/s390/s390-opts.h (enum processor_type): Likewise. |
| * config/s390/s390.c (s390_get_sched_attrmask): Add arch13. |
| (s390_get_unit_mask): Likewise. |
| (s390_is_fpd): Likewise. |
| (s390_is_fxd): Likewise. |
| * config/s390/s390.h (s390_tune_attr): Likewise. |
| * config/s390/s390.md: Include arch13 pipeline description. |
| * config/s390/s390.opt: Add arch13. |
| |
| 2018-04-10 Steve Ellcey <sellcey@marvell.com> |
| |
| PR rtl-optimization/87763 |
| * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p): |
| New prototype. |
| * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p): |
| New function. |
| * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift): |
| New instruction. |
| (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto. |
| (*aarch64_bfi<GPI:mode>4_noand): Ditto. |
| (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto. |
| (*aarch64_bfi<GPI:mode>4_noshift): Ditto. |
| |
| 2019-04-10 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/invoke.texi (Optimize Options): Change "Nevertheless" to |
| "Although" in -fipa-icf documentation. |
| |
| * doc/invoke.texi (Debugging Options): Explicitly state the semantics |
| of using multiple -g options. |
| |
| 2019-04-10 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/89959 |
| * doc/gcov.texi: Make documentation of -x option |
| more precise. |
| |
| 2019-04-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt |
| member. |
| (DR_GROUP_SAME_DR_STMT): Remove. |
| * tree-vect-stmts.c (vectorizable_load): Remove unreachable code. |
| * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise, |
| replace with assert. |
| (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison. |
| (vect_record_grouped_load_vectors): Remove unreachable code. |
| |
| 2019-04-10 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/90016 |
| * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and |
| obsolete reference to N. |
| |
| 2019-04-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/90025 |
| * expr.c (store_expr): Set properly size on the MEM passed to |
| clear_storage. |
| |
| PR c++/90010 |
| * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr |
| with strlen in between hostsz-3 and hostsz-1 inclusive when no |
| translation is needed, and when translation is needed, only append |
| ... if the string length is hostsz or more bytes long. Avoid using |
| strncpy or strcat. |
| |
| 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com> |
| |
| PR target/90024 |
| * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter. |
| * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint |
| into three. |
| * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode |
| differences directly. |
| (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint. |
| |
| 2019-04-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR translation/90011 |
| * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces |
| from diagnostics. |
| * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p |
| diagnostics. |
| * config/riscv/freebsd.h (LINK_SPEC): Likewise. |
| * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise. |
| * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove |
| trailing space from -gsplit-dwarf diagnostics. |
| |
| PR tree-optimization/89998 |
| * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type |
| instead of integer_type_node if possible, don't add ranges if return |
| type is not compatible with int. |
| * gimple-fold.c (gimple_fold_builtin_sprintf, |
| gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded |
| integer_type_node. |
| |
| 2019-04-09 Martin Liska <mliska@suse.cz> |
| |
| * Makefile.in: Use GENERATOR_CFLAGS for all generators. |
| * doc/install.texi: Document the new config. |
| |
| 2019-04-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always |
| use gimple_expr_type for load and store calls. Skip over the |
| condition argument in a conditional internal function. |
| Protect use of TREE_INT_CST_LOW. |
| |
| 2019-04-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90015 |
| * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo. |
| (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove |
| trailing period from it too. |
| |
| 2019-04-08 wu yuan <wuyuan5@huawei.com> |
| |
| * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model. |
| * config/aarch64/aarch64.md : Add "tsv110.md" |
| * config/aarch64/tsv110.md: New file. |
| |
| 2019-04-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90006 |
| * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle |
| calls like lrint. |
| |
| 2019-04-08 Andrea Corallo <andrea.corallo@arm.com> |
| |
| PR target/83033 |
| * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy |
| construction. |
| (fma_root_node): Likewise. |
| (func_fma_steering): Likewise. |
| |
| 2019-04-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/89865 |
| * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z. |
| |
| PR rtl-optimization/89865 |
| * config/i386/i386.md |
| (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand |
| numbers not to clash with the additional operands[4]. |
| (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s |
| with extra register copy in the middle. |
| |
| 2019-04-08 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/89961 |
| * doc/gcov.texi: Document data_file. |
| * gcov.c (generate_results): Add data_info into JSON output. |
| |
| 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/89725 |
| * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer |
| loop's chrec as invariant symbol. |
| * tree-chrec.h (chrec_contains_symbols): New parameter. |
| * tree-data-ref.c (analyze_miv_subscript): Pass new argument. |
| (build_classic_dist_vector_1, add_other_self_distances): Bypass access |
| function of loops not in DDR's loop_nest. |
| * tree-data-ref.h (index_in_loop_nest): Add unreachable check. |
| |
| 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com> |
| |
| PR target/89623 |
| * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of |
| Mask. |
| |
| 2019-04-07 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89945 |
| * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): |
| Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand. |
| |
| 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * sched-deps.c (sched_macro_fuse_insns): Check return value of |
| targetm.fixed_condition_code_regs. |
| |
| 2019-04-05 Richard Biener <rguenther@suse.de> |
| |
| PR debug/89892 |
| PR debug/89905 |
| * tree-cfgcleanup.c (remove_forwarder_block): Always move |
| debug bind stmts but reset them if they are not valid at the |
| destination. |
| |
| 2019-04-05 Martin Liska <mliska@suse.cz> |
| |
| PR translation/89936 |
| * collect-utils.c (collect_execute): Use %< and %>, or %qs in |
| order to wrap keywords or arguments. |
| * collect2.c (main): Likewise. |
| (scan_prog_file): Likewise. |
| (scan_libraries): Likewise. |
| * common/config/riscv/riscv-common.c |
| (riscv_subset_list::parsing_subset_version): Likewise. |
| (riscv_subset_list::parse_std_ext): Likewise. |
| * config/aarch64/aarch64.c (aarch64_override_options_internal): |
| Likewise. |
| * config/arm/arm.c (arm_option_override): Likewise. |
| * config/cris/cris.c (cris_print_operand): Likewise. |
| * config/darwin-c.c (darwin_pragma_options): Likewise. |
| (darwin_pragma_unused): Likewise. |
| (darwin_pragma_ms_struct): Likewise. |
| * config/ft32/ft32.c (ft32_print_operand): Likewise. |
| * config/i386/i386.c (print_reg): Likewise. |
| (ix86_print_operand): Likewise. |
| * config/i386/xm-djgpp.h: Likewise. |
| * config/iq2000/iq2000.c (iq2000_print_operand): Likewise. |
| * config/m32c/m32c.c (m32c_option_override): Likewise. |
| * config/msp430/msp430.c (msp430_option_override): Likewise. |
| * config/nds32/nds32.c (nds32_option_override): Likewise. |
| * config/nvptx/mkoffload.c (main): Likewise. |
| * config/rx/rx.c (rx_print_operand): Likewise. |
| (valid_psw_flag): Likewise. |
| * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise. |
| (vms_pragma_nomember_alignment): Likewise. |
| (vms_pragma_extern_model): Likewise. |
| * lto-wrapper.c (compile_offload_image): Likewise. |
| * omp-offload.c (oacc_parse_default_dims): Likewise. |
| * symtab.c (symtab_node::verify_base): Likewise. |
| * tlink.c (recompile_files): Likewise. |
| (start_tweaking): Likewise. |
| * tree-profile.c (parse_profile_filter): Likewise. |
| |
| 2019-04-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/89956 |
| * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against |
| multiple negates of the same value. |
| |
| 2019-04-04 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/89957 |
| PR middle-end/89911 |
| * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands |
| have the same precision since the function crashes otherwise. |
| * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call |
| has non-zero arguments. |
| |
| 2019-04-04 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/89934 |
| * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail |
| out if the number of arguments is less than expected. |
| |
| 2019-04-04 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/89399 |
| * ree.c (combine_set_extension): Use single_set rather than |
| digging into PATTERN for items on the candidate list. |
| (combine_reaching_defs): Likewise. |
| |
| 2019-04-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/46590 |
| * loop-invariant.c (find_defs): Move df_remove_problem and |
| df_process_deferred_rescans to move_invariants. |
| Move df_live_add_problem and df_live_set_all_dirty calls |
| to move_invariants. |
| (move_invariants): Likewise. |
| (move_loop_invariants): Likewise, making the df_live calls |
| conditional on -O. Remove the problem again if we added it |
| locally. |
| |
| 2019-04-03 qing zhao <qing.zhao@oracle.com> |
| |
| PR tree-optimization/89730 |
| * ipa-inline.c (can_inline_edge_p): Delete the checking for |
| -flive-patching=inline-only-static. |
| (can_inline_edge_by_limits_p): Add the checking for |
| -flive-patching=inline-only-static and grant always_inline |
| even when -flive-patching=inline-only-static is specified. |
| |
| 2019-04-03 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/81025 |
| * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER. |
| |
| 2019-04-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/84101 |
| * tree-vect-stmts.c: Include explow.h for hard_function_value, |
| regs.h for hard_regno_nregs. |
| (cfun_returns): New helper. |
| (vect_model_store_cost): When vectorizing a store to a decl |
| we return and the function ABI returns in a multi-reg location |
| account for the possible spilling that will happen. |
| |
| 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.c (s390_legitimate_address_p): Reject long |
| displacement addresses for vector mode operands. |
| |
| 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (GMASK_LEN): Define. |
| (arc_restore_callee_saves): Restore first blink when |
| !optimize_size. |
| |
| 2019-04-03 Sudakshina Das <sudi.das@arm.com> |
| |
| * doc/extend.texi: Add deprecated comment on sign-return-address |
| function attribute and add mbranch-protection. |
| * doc/invoke.texi: Add bti to the options for mbranch-protection. |
| |
| 2019-04-03 Richard Biener <rguenther@suse.de> |
| |
| PR lto/89896 |
| * lto-wrapper.c (run_gcc): Avoid implicit rules making |
| the all target phony. |
| |
| 2019-04-02 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89902 |
| PR target/89903 |
| * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): |
| Return false for variable DImode shifts. |
| (dimode_scalar_chain::compute_convert_gain): Do not handle |
| register count operand in variable DImode shifts. |
| (dimode_scalar_chain::make_vector_copies): Remove support to copy |
| count argument of a variable shift instruction to a vector register. |
| (dimode_scalar_chain::convert_reg): Remove support to convert |
| count argument of a variable shift instruction. |
| |
| 2019-04-02 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/84206 |
| * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when |
| iterating over loop headers. |
| |
| 2019-04-02 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/85876 |
| * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn |
| beyond the original fence. |
| |
| 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * config.gcc: Mark spu* targets as deprecated/obsolete. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: New builtin function type |
| definitions. Remove unused types. |
| * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb) |
| (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions. |
| (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New |
| overloaded builtins. |
| (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb) |
| (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins. |
| * config/s390/vecintrin.h (vec_float): New builtin macro definition. |
| (vec_double, vec_signed, vec_unsigned): Define to use the new |
| overloaded builtins. |
| * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"): |
| Remove expanders. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: New builtin function type |
| definitions. |
| * config/s390/s390-builtins.def (s390_vec_search_string_cc) |
| (s390_vec_search_string_until_zero_cc): New overloaded builtins. |
| (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb) |
| (s390_vstrszh, s390_vstrszf): New low-level builtins. |
| * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New |
| constant definitions. |
| * config/s390/vecintrin.h (vec_search_string_cc) |
| (vec_search_string_until_zero_cc): New builtin name definitions. |
| * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New |
| expanders. |
| ("vec_vstrs<mode>"): New insn definition. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: Add new builtin function |
| types. |
| * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb): |
| New overloaded builtins. |
| (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and |
| s390_vsrd. |
| * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ... |
| (UNSPEC_VEC_SLDBYTE): ... this. |
| (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions. |
| * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name |
| definitions. |
| * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"): |
| Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE. |
| ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"): |
| New insn definition. |
| * config/s390/vx-builtins.md (V_HW_HSD): Move to ... |
| * config/s390/vector.md (V_HW_HSD): ... here. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler. |
| * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>") |
| ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>") |
| ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"): |
| New insn definitions. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: Add new builtin function type. |
| * config/s390/s390-builtins.def: Add overloaded builtin |
| s390_vec_reve and low-level builtins for s390_vler and s390_vster. |
| * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition. |
| * config/s390/vecintrin.h (vec_reve): New builtin name definition. |
| * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator. |
| ("eltswap<mode>"): New expander. |
| ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New |
| insn definitions. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: Add new builtin function types. |
| * config/s390/s390-builtins.def: Add overloaded builtin |
| s390_vec_revb. Add low-level builtins for vlbr and vstbr |
| instructions. |
| * config/s390/vecintrin.h (vec_revb): New builtin name definition. |
| * config/s390/vector.md (VT_HW_HSDT): New mode iterator. |
| ("bswap<mode>"): New expander. |
| ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition. |
| * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment |
| vector builtin version number in __VEC__. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode |
| iterators. |
| (SFSI): New mode attribute. |
| ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13") |
| ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and |
| rename to ... |
| ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13") |
| ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13") |
| ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these. |
| ("floatsi<mode>2"): Add wcefb instruction. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.md ("xde"): Extend mode attribute to vector types. |
| * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New |
| mode iterators. |
| ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2") |
| ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also |
| support 32 bit fp-int conversions. Rename to ... |
| ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2") |
| ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2") |
| ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2") |
| ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"): |
| ... to these. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for |
| if-then-else constructs if we can use the select instruction. |
| * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.md ("*popcountdi_arch13_cc") |
| ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn |
| definition. |
| ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"): |
| Append _z196 to make it ... |
| ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196") |
| ("popcounthi2_z196"): ... this. |
| ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition. |
| ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.c (s390_canonicalize_comparison): Convert |
| certain compares for arch13 in order to make use of the condition |
| code result produced by the new instructions. |
| (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk, |
| nxrk, and nxgrk instruction patterns. |
| * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name) |
| (inv_no): Add new code iterator together with some attributes. |
| ("*andc_split_<mode>"): Disable splitter for arch13. |
| ("*<ANDOR:bitops_name>c<GPR:mode>_cc") |
| ("*<ANDOR:bitops_name>c<GPR:mode>_cconly") |
| ("*<ANDOR:bitops_name>c<GPR:mode>") |
| ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc") |
| ("*n<ANDOR:inv_bitops_name><mode>_cconly") |
| ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc") |
| ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * common/config/s390/s390-common.c (processor_flags_table): New |
| entry for arch13. |
| * config.gcc: Support arch13 with the --with-arch= configure flag. |
| * config/s390/driver-native.c (s390_host_detect_local_cpu): |
| * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13. |
| * config/s390/s390.c (s390_get_sched_attrmask) |
| (s390_get_unit_mask): Add PROCESSOR_ARCH13. |
| * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13. |
| * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P) |
| (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13) |
| (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro |
| definitions. |
| * config/s390/s390.opt: Support arch13 as processor type in |
| command line options. |
| |
| 2019-04-02 Martin Liska <mliska@suse.cz> |
| |
| PR translation/89912 |
| * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): |
| Fix param description of graphite-max-arrays-per-scop. |
| |
| 2019-04-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro. |
| (ASAN_CC1_SPEC): Use it in 64-bit mode. |
| * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon. |
| |
| 2019-04-01 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/85412 |
| * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before |
| sel_sched_region_1, not after. |
| |
| 2019-04-01 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/86928 |
| * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke |
| compute_live if necessary. |
| (sel_redirect_edge_and_branch): Likewise. |
| |
| 2019-04-01 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/89865 |
| * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard |
| register if it is a part of small class. |
| |
| 2019-04-01 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/87273 |
| * sel-sched-ir.c (merge_fences): Remove assert. |
| |
| 2019-04-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/46590 |
| * domwalk.h (dom_walker::dom_walker): Consolidate constructors. |
| (dom_walker::m_reachability): Add in place of... |
| (dom_walker::m_skip_unreachable_blocks): ...this. |
| * domwalk.c (dom_walker::dom_walker): Consoliate constructors. |
| Move complex initialization ... |
| (dom_walker::walk): Here. Especially compute m_bb_to_rpo |
| lazily and initialize edge flags on each invocation. |
| (dom_walker::bb_reachable): Use m_reachability. |
| |
| 2019-04-01 Martin Liska <mliska@suse.cz> |
| |
| PR driver/89861 |
| * opt-suggestions.c (option_proposer::build_option_suggestions): |
| Add variant without any argument in order to provide better |
| hints. |
| |
| 2019-04-01 Richard Biener <rguenther@suse.de> |
| |
| PR c/71598 |
| * gimple.c: Include langhooks.h. |
| (gimple_get_alias_set): Treat enumeral types as the underlying |
| integer type. |
| |
| 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/89862 |
| * rtl.h (word_register_operation_p): Exclude CONST_INT from operations |
| that operates on the full registers for WORD_REGISTER_OPERATIONS |
| architectures. |
| |
| 2019-03-29 Jim Wilson <jimw@sifive.com> |
| |
| * common/config/riscv/riscv-common.c (riscv_parse_arch_string): |
| Clear MASK_RVC and then set if C subset supported. |
| |
| 2019-03-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/89872 |
| * gimplify.c (gimplify_compound_literal_expr): Don't optimize a |
| non-addressable complit into its initializer if it is volatile. |
| |
| 2019-03-29 Roman Zhuykov <zhroma@ispras.ru> |
| |
| * opts-common.c (integral_argument): Set errno properly in one case. |
| |
| 2019-03-29 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Remove -Wchkp from documentation. |
| |
| 2019-03-29 Martin Liska <mliska@suse.cz> |
| |
| * dbgcnt.c (print_limit_reach): New function. |
| (dbg_cnt): Use it. |
| |
| 2019-03-29 Martin Liska <mliska@suse.cz> |
| |
| * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style. |
| (dbg_cnt_process_opt): Parse first tokens aas |
| dbg_cnt_process_single_pair is also using strtok. |
| |
| 2019-03-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/87485 |
| * function.c (expand_function_end): Move stack_protect_epilogue |
| before loading of return value into hard register(s). |
| |
| 2019-03-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/89621 |
| * tree-inline.h (struct copy_body_data): Add |
| dont_remap_vla_if_no_change flag. |
| * tree-inline.c (remap_type_3, remap_type_2): New functions. |
| (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change |
| and remap_type_2 returns false. |
| * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change. |
| Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx |
| only from where it is copied to nested contexts. |
| |
| 2019-03-28 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89865 |
| * config/i386/i386.md (RMW operation with LEA peephole): |
| Use LEAMODE mode attribute instead of SWI mode iterator for |
| LEA pattern. |
| |
| 2019-03-28 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89848 |
| * config/i386/i386.c (dimode_scalar_chain::make_vector_copies): |
| Also process XEXP (src, 0) of a shift insn. |
| |
| 2019-03-28 David Malcolm <dmalcolm@redhat.com> |
| |
| PR middle-end/89725 |
| * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json): |
| Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl. |
| |
| 2019-03-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P |
| test. |
| (cprop_hardreg_bb, cprop_hardreg_debug): New functions. |
| (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing |
| immediately after first one with df_analyze in between, but rather |
| process all bbs, queueing ones that need second pass in a worklist, |
| df_analyze, process queued debug insn changes and if second pass is |
| needed, process bbs from worklist, df_analyze, process queued debug |
| insns again. |
| |
| * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P |
| or CALL_P instead of INSN_P && !DEBUG_INSN_P. |
| (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P. |
| |
| 2019-03-28 Jonathan Wakely <jwakely@redhat.com> |
| |
| PR c/79022 |
| * gengtype.h (create_nested_ptr_option): Fix parameter names to match |
| definition. |
| |
| 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl> |
| |
| PR target/85667 |
| * config/i386/i386.c (ix86_function_value_1): Call the newly added |
| function for 32-bit MS_ABI. |
| (function_value_ms_32): New function. |
| |
| 2019-03-27 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn.md (CC_SAVE_REG): New constant. |
| (movdi): Call gen_movdi_symbol_save_scc. |
| (gen_movdi_symbol_save_scc): New insn and split. |
| |
| 2019-03-27 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR rtl-optimization/89313 |
| * function.c (matching_constraint_num): New static function. |
| (match_asm_constraints_1): Use it. Fixup white space and comment. |
| Don't replace inputs with non-matching constraints which conflict |
| with early clobber outputs. |
| |
| 2019-03-27 Jeff Law <law@redhat.com> |
| |
| |
| PR rtl-optimization/87761 |
| PR rtl-optimization/89826 |
| * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test |
| slightly later. |
| (pass_cprop_hardreg::execute): Call df_analyze after adding the |
| note problem to get REG_DEAD/REG_UNUSED notes updated. |
| |
| 2019-03-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89463 |
| * tree-ssa-dce.c (remove_dead_stmt): Take output vector to |
| queue edges to remove. |
| (eliminate_unnecessary_stmts): Remove dead PHIs alongside |
| dead stmts. Delay edge removal until PHIs are removed to |
| make debug-stmt creation not confused by seemingly degenerate |
| PHIs. |
| |
| 2019-03-27 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS |
| throughout file. |
| * config/rs6000/darwin.h: Likewise. |
| * config/rs6000/rs6000.c: Likewise. |
| |
| 2019-03-27 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always |
| assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting. |
| |
| 2019-03-26 Andrew Waterman <andrew@sifive.com> |
| Jim Wilson <jimw@sifive.com> |
| |
| * config/riscv/generic.md (generic_alu, generic_load, generic_store) |
| (generic_xfer, generic_branch, generic_imul, generic_idivsi) |
| (generic_idivdi, generic_fmul_single, generic_fmul_double) |
| (generic_fdiv, generic_fsqrt): Add check for generic tune. |
| (generic_alu): Add auipc to type list. |
| * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New. |
| (riscv_microarchitecture): Declare. |
| * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare. |
| * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture |
| field. |
| (riscv_microarchitecture): New. |
| (sifive_7_tune_info): New. |
| (riscv_cpu_info_table): Add microarchitecture value for rocket and |
| size. Add sifive-3-series, sifive-5-series, and sifive-7-series |
| entries. |
| (riscv_store_data_bypass_p): New. |
| (riscv_option_override): Set riscv_microarchitecture from |
| cpu->microarchitecture. |
| * config/riscv/riscv.md: Include sifive-7.md. |
| (type): Add auipc. |
| (tune): New. |
| (auipc<mode>): Change type to auipc. |
| (restore_stack_nonlocal): New. |
| * config/riscv/sifive-7.md: New. |
| * doc/invoke.texi (RISC-V Options): Update mtune docs. |
| |
| 2019-03-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89827 |
| * config/i386/i386.c (dimode_scalar_chain::convert_reg): |
| Also process XEXP (src, 0) of a shift insn. |
| |
| 2019-03-26 Richard Biener <rguenther@suse.de> |
| |
| * tree-inline.c (remap_gimple_stmt): Cache gimple_block. |
| (copy_debug_stmt): Likewise. |
| (expand_call_inline): Likewise. |
| (copy_bb): Avoid redundant lookup & set of gimple_block. |
| * gimple-low.c (lower_gimple_return): Likewise. |
| (lower_builtin_setjmp): Likewise. |
| |
| 2019-03-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS |
| is constant 0, turn into static const data member initialized to false. |
| (hash_table::hash_table): Only initialize m_gather_mem_stats #if |
| GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param. |
| |
| 2019-03-26 Jason Merrill <jason@redhat.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| * mem-stats.h (mem_alloc_description::unregister_descriptor): New |
| method. |
| (mem_alloc_description::release_object_overhead): Fix comment typos. |
| * hash-table.h (hash_table::~hash_table): Call |
| release_instance_overhead only if m_entries is non-NULL, otherwise |
| call unregister_descriptor. |
| |
| 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/81740 |
| * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): |
| In case of outer loop vectorization, check for backward dependence |
| at the inner loop if outer loop dependence is reversed. |
| |
| 2019-03-26 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct |
| rs6000_vector_mem init. Correct wI and wJ comment. |
| |
| 2019-03-25 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/88347 |
| PR rtl-optimization/88423 |
| * sched-deps.c (sched_analyze_insn): Take into account that for |
| tablejumps the barrier appears after a label and a jump_table_data. |
| |
| 2019-03-25 Martin Sebor <msebor@redhat.com> |
| |
| PR c/89812 |
| * c-common.c (check_user_alignment): Rename local. Correct maximum |
| alignment in diagnostic. Avoid assuming argument fits in SHWI, |
| convert it to UHWI when it fits. |
| |
| 2019-03-25 Johan Karlsson <johan.karlsson@enea.com> |
| |
| PR debug/86964 |
| * dwarf2out.c (premark_used_variables): New function. |
| (prune_unused_types_walk): Do not mark not premarked external |
| variables. |
| (prune_unused_types): Call premark_used_variables. |
| |
| 2019-03-25 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/89676 |
| * lra-constraints.c (curr_insn_transform): Do match reload for |
| early clobbers when the match was successful only for different |
| registers. |
| |
| 2019-03-25 Martin Sebor <msebor@redhat.com> |
| |
| * doc/extend.texi (Common Type Attributes): Document vector_size. |
| (Common Variable Attributes): Mention size constraint. Correct |
| quoting and typos. |
| (Vector Extensions): Use @dfn when defining bas type. Clarify |
| base type and size constraints. |
| |
| 2019-03-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89789 |
| * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice |
| changes from non-undefined back to undefined. |
| |
| 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de> |
| |
| * dwarf2out.c (comp_dir_string): cached_wd could be set to both a |
| heap string and a gc string, but since this variable is unknown to |
| ggc the gc string might get reused and corrupted. Fixed by always |
| using a heap string. |
| |
| 2019-03-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89779 |
| * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return |
| to remove IV defs, delay actual removal. |
| (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset. |
| (tree_ssa_iv_optimize): Remove eliminated IV defs at the |
| very end, properly also reset loop control IV information. |
| |
| 2019-03-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89802 |
| * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly |
| move EH data to folded stmt. |
| |
| 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: Remove few unused types and |
| fix sort order for others. |
| |
| 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-c.c (s390_fn_types_compatible): Print the |
| expected and found types with -mdebug during builtin matching. |
| |
| 2019-03-25 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89790 |
| * fold-const.c (operand_equal_p): Revert last change with |
| updated comment. |
| |
| 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL |
| notes for the result of the __tls_get_addr calls. |
| * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New. |
| |
| 2019-03-24 Jeff Law <law@redhat.com> |
| |
| * config/bfin/bfin.md (movpdi): Fix length for alternative 1. |
| |
| PR rtl-optimization/87761 |
| * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET, |
| not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan |
| as needed. |
| (pass_cprop_hardreg::execute): Add df note problem and defer insn |
| rescans. Reprocess blocks as needed, calling df_analyze before |
| reprocessing. Always call df_analyze before fixing up debug bind |
| insns. |
| |
| 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit |
| big endian. |
| |
| 2019-03-22 Andrew Pinski <apinski@marvell.com> |
| |
| * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type |
| attrribute for uxtw. |
| |
| 2019-03-26 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/87761 |
| * config/mips/mips-protos.h (mips_split_move): Add new argument. |
| (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move. |
| (mips_split_move): Accept new INSN argument. Try to forward SRC |
| into the next instruction. |
| (mips_split_move_insn): Pass INSN through to mips_split_move. |
| |
| 2019-03-22 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/89676 |
| * lra-constraints.c (curr_insn_transform): Do match reload for |
| early clobbers even if the match was successful. |
| |
| 2019-03-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/87481 |
| * doc/invoke.texi (-fconstexpr-ops-limit=): Document. |
| |
| 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo. |
| |
| 2019-03-22 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>, |
| <avx512>_fmsub_<mode>_mask3<round_name>, |
| <avx512>_fnmadd_<mode>_mask3<round_name>, |
| <avx512>_fnmsub_<mode>_mask3<round_name>, |
| avx512f_vmfmadd_<mode>_mask3<round_name>, |
| avx512f_vmfmsub_<mode>_mask3<round_name>, |
| *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate> |
| instead of register_operand and %v instead of v for match_operand 1. |
| (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ... |
| (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use |
| <round_nimm_predicate> instead of register_operand and %v instead of v |
| for match_operand 1. |
| |
| * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>, |
| <avx512>_fmadd_<mode>_mask3<round_name>, |
| <avx512>_fmsub_<mode>_mask<round_name>, |
| <avx512>_fmsub_<mode>_mask3<round_name>, |
| <avx512>_fnmadd_<mode>_mask<round_name>, |
| <avx512>_fnmadd_<mode>_mask3<round_name>, |
| <avx512>_fnmsub_<mode>_mask<round_name>, |
| <avx512>_fnmsub_<mode>_mask3<round_name>, |
| <avx512>_fmaddsub_<mode>_mask<round_name>, |
| <avx512>_fmaddsub_<mode>_mask3<round_name>, |
| <avx512>_fmsubadd_<mode>_mask<round_name>, |
| <avx512>_fmsubadd_<mode>_mask3<round_name>): Use |
| <round_nimm_predicate> instead of nonimmediate_operand. |
| (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>, |
| fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>): |
| Use register_operand instead of <round_nimm_predicate> for the |
| operand that needs to match output. |
| (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>, |
| *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>): |
| Likewise. Formatting fixes. |
| |
| PR target/89784 |
| * config/i386/i386.c (enum ix86_builtins): Remove |
| IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3. |
| * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask, |
| __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, |
| __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, |
| __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, |
| __builtin_ia32_vfmsubss3_mask3): New builtins. |
| * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>, |
| avx512f_vmfmadd_<mode>_mask3<round_name>, |
| avx512f_vmfmadd_<mode>_maskz_1<round_name>, |
| *avx512f_vmfmsub_<mode>_mask<round_name>, |
| avx512f_vmfmsub_<mode>_mask3<round_name>, |
| *avx512f_vmfmasub_<mode>_maskz_1<round_name>, |
| *avx512f_vmfnmadd_<mode>_mask<round_name>, |
| *avx512f_vmfnmadd_<mode>_mask3<round_name>, |
| *avx512f_vmfnmadd_<mode>_maskz_1<round_name>, |
| *avx512f_vmfnmsub_<mode>_mask<round_name>, |
| avx512f_vmfnmsub_<mode>_mask3<round_name>, |
| *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns. |
| (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand. |
| * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss, |
| _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd, |
| _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss, |
| _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd, |
| _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss, |
| _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd, |
| _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss, |
| _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd, |
| _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss, |
| _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss, |
| _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss, |
| _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss, |
| _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss, |
| _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss, |
| _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss, |
| _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss, |
| _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss, |
| _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss, |
| _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss, |
| _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics. |
| |
| 2019-03-21 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/89350 |
| * builtins.c (compute_objsize): Also ignore offsets whose upper |
| bound is negative. |
| * gimple-ssa-warn-restrict.c (builtin_memref): Add new member. |
| (builtin_memref::builtin_memref): Initialize new member. |
| Allow EXPR to be null. |
| (builtin_memref::extend_offset_range): Replace local with a member. |
| Avoid assuming pointer offsets are unsigned. |
| (builtin_memref::set_base_and_offset): Determine base object |
| before computing offset range. |
| (builtin_access::builtin_access): Handle memset. |
| (builtin_access::generic_overlap): Replace local with a member. |
| (builtin_access::strcat_overlap): Same. |
| (builtin_access::overlap): Same. |
| (maybe_diag_overlap): Same. |
| (maybe_diag_access_bounds): Same. |
| (wrestrict_dom_walker::check_call): Handle memset. |
| (check_bounds_or_overlap): Same. |
| |
| 2019-03-21 Jan Hubicka <hubicka@ucw.cz> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR lto/89692 |
| * tree.c (fld_type_variant, fld_incomplete_type_of, |
| fld_process_array_type): Call fld->pset.add and don't call |
| add_tree_to_fld_list if it returns true. |
| (free_lang_data_in_type): Similarly with self-recursive call. Purge |
| non-marked types from TYPE_NEXT_VARIANT list. |
| (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t). |
| |
| 2019-03-21 Jakub Jelinek <jakub@redhat.com> |
| |
| * hash-table.h (hash_table): Add Lazy template parameter defaulted |
| to false, if true, don't alloc_entries during construction, but defer |
| it to the first method that needs m_entries allocated. |
| (hash_table::hash_table, hash_table::~hash_table, |
| hash_table::alloc_entries, hash_table::find_empty_slot_for_expand, |
| hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow, |
| hash_table::clear_slot, hash_table::traverse_noresize, |
| hash_table::traverse, hash_table::iterator::slide): Adjust all methods. |
| * hash-set.h (hash_set): Add Lazy template parameter defaulted to |
| false. |
| (hash_set::contains): If Lazy is true, use find_slot_with_hash with |
| NO_INSERT instead of find_with_hash. |
| (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter, |
| hash_set::m_table): Add Lazy to template params of hash_table. |
| (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param. |
| * attribs.c (test_attribute_exclusions): Likewise. |
| * hash-set-tests.c (test_set_of_strings): Add iterator tests for |
| hash_set. Add tests for hash_set with Lazy = true. |
| |
| 2019-03-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89779 |
| * tree.c (tree_nop_conversion): Consolidate and fix defensive |
| checks with respect to released SSA names now having error_mark_node |
| type. |
| * fold-const.c (operand_equal_p): Likewise. |
| |
| 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| PR target/89775 |
| * config/s390/s390.c (global_not_special_regno_p): Move to make it |
| available to ... |
| (s390_optimize_register_info): Use global_not_special_regno_p to |
| check for global regs. |
| |
| 2019-03-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89752 |
| * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't |
| update this_alternative nor this_alternative_set. |
| |
| 2019-03-19 Jim Wilson <jimw@sifive.com> |
| |
| PR target/89411 |
| * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals |
| align, size, offset. Use them to handle a BLKmode reference. Update |
| comment. |
| (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p. |
| |
| 2019-03-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/89768 |
| * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode |
| instead of GEN_INT. |
| (unroll_loop_runtime_iterations): Likewise. |
| |
| 2019-03-19 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/89644 |
| * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p |
| rather than endptr as an indicator of nul-termination. |
| |
| PR tree-optimization/89644 |
| * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated |
| arrays in determining sequence sizes in strncpy and stpncpy. |
| |
| 2019-03-19 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/89737 |
| * predict.c (combine_predictions_for_bb): Empty likely_edges and |
| unlikely_edges if there's an edge that belongs to both these sets. |
| |
| 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/89746 |
| * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a |
| non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned, |
| go via a stack temporary. |
| |
| 2019-03-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89378 |
| * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart |
| instead of gen_rtx_SUBREG. |
| * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise. |
| |
| 2019-03-19 Richard Biener <rguenther@suse.de> |
| |
| PR debug/88389 |
| * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO. |
| |
| 2019-03-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/87809 |
| PR lto/89335 |
| * tree.c (free_lang_data_in_decl): Do not free context of C++ |
| destrutors. |
| |
| 2019-03-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89506 |
| * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use |
| subs for the first alternative except when operands[3] is 1. |
| |
| PR target/89752 |
| * gimplify.c (gimplify_asm_expr): For output argument with |
| TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise |
| diagnose error. |
| |
| 2019-03-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/89753 |
| * loop-unroll.c (decide_unroll_constant_iterations): Make guard for |
| explicit unrolling factor even more robust. |
| |
| 2019-03-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89726 |
| * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil |
| compensation use x2 += 1 instead of x2 -= -1 and when honoring |
| signed zeros, do another copysign after the compensation. |
| |
| 2019-03-18 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/89720 |
| * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min |
| more conservatively, the same as anti-range. |
| |
| 2019-03-18 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/88945 |
| * tree-ssanames.c (release_ssa_name_fn): For released SSA names |
| use a TREE_TYPE of error_mark_node to avoid ICEs when dumping |
| basic-blocks that are removed. Remove restoring SSA_NAME_VAR. |
| * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking. |
| |
| 2019-03-18 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn-run.c (struct output): Make next_output unsigned. |
| Extend queue to 1024 entries. |
| Add "consumed" field. |
| (gomp_print_output): Remove print_index parameter. |
| Add final parameter. |
| Change limit to unsigned. |
| Use consumed field to implement circular buffer. |
| Detect interrupted print in final pass. |
| Flush output at the end. |
| (run): Update gomp_print_output usage. |
| (main): Initialize kernargs->output_data.consumed. |
| |
| 2019-03-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the |
| calculation of the minimum number of scalar iterations for |
| fully-predicated loops. |
| |
| 2019-03-18 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/89546 |
| * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if |
| any propagation to its children took place. |
| |
| 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com> |
| |
| PR target/89627 |
| * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset |
| parameter, and make use of it. |
| (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single. |
| |
| 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.opt (mcode-density-frame): Get the inital value |
| from TARGET_CODE_DENSITY_FRAME_DEFAULT. |
| * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define. |
| * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define. |
| * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to |
| match what the ops is doing. |
| (push_multi_fp_blink): Likewise. |
| * config/arc/arc.c (arc_override_options): Enable enter/leave when |
| compiling for size and elf target. |
| (arc_save_callee_enter): Adjust note to match what enter/leave |
| operation does. |
| |
| 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (tst_movb): Fix constraint. |
| |
| 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define. |
| |
| 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare. |
| * config/arc/arc.c (arc_conditional_register_usage): Remove all |
| reg_alloc_order references. |
| (size_alloc_order): Define. |
| (arc_adjust_reg_alloc_order): New function. |
| * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register |
| order. |
| (ADJUST_REG_ALLOC_ORDER): Define. |
| (HONOR_REG_ALLOC_ORDER): Likewise. |
| |
| 2019-03-18 Richard Biener <rguenther@suse.de> |
| |
| PR target/87561 |
| * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided |
| loads and stores a bit more. |
| |
| 2019-03-18 Richard Biener <rguenther@suse.de> |
| |
| PR target/87561 |
| * config/i386/i386.c (ix86_add_stmt_cost): Apply strided |
| load pessimization to stores as well. |
| |
| 2019-03-18 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR middle-end/86979 |
| * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible |
| successor, use NULL as its av set. |
| |
| 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/89721 |
| * lra-constraints (invariant_p): Return false if side_effects_p holds. |
| |
| 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| PR target/87532 |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| When handling vec_extract, use modular arithmetic to allow |
| constant selectors greater than vector length. |
| * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow |
| V1TImode vectors to have constant selector values greater than 0. |
| Use modular arithmetic to compute vector index. |
| (rs6000_split_vec_extract_var): Use modular arithmetic to compute |
| index for in-memory vectors. Correct code generation for |
| in-register vectors. |
| (altivec_expand_vec_ext_builtin): Use modular arithmetic to |
| compute index. |
| |
| 2019-03-15 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR c++/88534 |
| PR c++/88537 |
| * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of |
| VAR_DECL args. |
| |
| 2019-03-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/89709 |
| * tree.c (inchash::add_expr): Strip any location wrappers. |
| * fold-const.c (operand_equal_p): Move stripping of location wrapper |
| after hash verification. |
| |
| PR debug/89704 |
| * dwarf2out.c (add_const_value_attribute): Return false for MINUS, |
| SIGN_EXTEND and ZERO_EXTEND. |
| |
| 2019-03-14 Jason Merrill <jason@redhat.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather |
| than if is_empty (*slot). |
| * hash-set-tests.c (test_set_of_strings): Add tests for addition of |
| existing elt and for elt removal. |
| * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal |
| of already removed elt. |
| |
| 2019-03-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89650 |
| * config/i386/i386.c (remove_partial_avx_dependency): Handle |
| REG_EH_REGION note. |
| |
| 2019-03-14 Martin Liska <mliska@suse.cz> |
| |
| PR other/89712 |
| * doc/invoke.texi: Remove -fdump-class-hierarchy option. |
| |
| 2019-03-14 Richard Biener <rguenther@suse.de> |
| |
| PR target/89711 |
| * config/i386/i386.c (make_resolver_func): Properly set |
| DECL_CONTEXT on the RESULT_DECL. |
| * config/rs6000/rs6000.c (make_resolver_func): Likewise. |
| |
| 2019-03-14 Richard Biener <rguenther@suse.de> |
| |
| * gimple-pretty-print.c: Include cfgloop.h. |
| (dump_gimple_phi): Adjust. |
| (dump_gimple_bb_header): Dump loop header for GIMPLE. |
| (pp_cfg_jump): Adjust. |
| (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well. |
| * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call. |
| (lower_phi_internal_fn): Remove. |
| (verify_gimple_call): Remove IFN_PHI special-casing. |
| (dump_function_to_file): Dump IL state. |
| * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes |
| done to deal with PHI nodes being present in non-SSA state. |
| |
| 2019-03-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/89684 |
| * multiple_target.c (create_dispatcher_calls): Change |
| references_to_redirect from vector of ipa_ref * to vector of ipa_ref. |
| In the node->iterate_referring loop, push *ref rather than ref, call |
| ref->remove_reference () and always pass 0 to iterate_referring. |
| |
| PR rtl-optimization/89679 |
| * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it |
| would contain a paradoxical SUBREG. |
| |
| 2019-03-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89710 |
| * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use |
| safe_dyn_cast. |
| |
| 2019-03-14 Martin Liska <mliska@suse.cz> |
| |
| * coverage.c (coverage_begin_function): Stream also |
| end_column. |
| * doc/gcov.texi: Document 2 new fields in JSON file. Improve |
| documentation about function declaration location. |
| * gcov-dump.c (tag_function): Print whole range |
| of function declaration. |
| * gcov.c (struct function_info): Add end_column field. |
| (function_info::function_info): Initialize it. |
| (output_json_intermediate_file): Output {start,end}_column |
| fields. |
| (read_graph_file): Read end_column. |
| |
| 2019-03-14 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89698 |
| * fold-const.c (operand_equal_p): For INDIRECT_REF check |
| that the access types are similar. |
| |
| 2019-03-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/89703 |
| * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types |
| aren't compatible also with builtin_decl_explicit. Check pure |
| or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}} |
| and BUILT_IN_STPNCPY{,_CHK}. |
| |
| 2019-03-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89523 |
| * config/i386/i386.c (ix86_print_operand): Handle 'M' to add |
| addr32 prefix to VSIB address for X32. |
| * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend |
| "%M2" to opcode. |
| (*avx512pf_gatherpf<mode>df_mask): Likewise. |
| (*avx512pf_scatterpf<mode>sf_mask): Likewise. |
| (*avx512pf_scatterpf<mode>df_mask): Likewise. |
| (*avx2_gathersi<mode>): Prepend "%M3" to opcode. |
| (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode. |
| (*avx2_gatherdi<mode>): Prepend "%M3" to opcode. |
| (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode. |
| (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode. |
| (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.` |
| (*avx512f_gathersi<mode>): Prepend "%M4" to opcode. |
| (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode. |
| (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode. |
| (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode. |
| (*avx512f_scattersi<mode>): Prepend "%M0" to opcode. |
| (*avx512f_scatterdi<mode>): Likewise. |
| |
| 2019-03-13 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/85860 |
| * lra-constraints.c (inherit_in_ebb): Update |
| potential_reload_hard_regs along with live_hard_regs. |
| |
| 2019-03-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/89498 |
| * dwarf2out.c (size_of_die): For dw_val_class_view_list always use |
| DWARF_OFFSET_SIZE. |
| (value_format): For dw_val_class_view_list never use DW_FORM_loclistx. |
| |
| 2019-03-13 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/89662 |
| * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type |
| has a size. |
| |
| 2019-03-13 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89677 |
| * tree-scalar-evolution.c (simplify_peeled_chrec): Do not |
| throw FP expressions at tree-affine. |
| |
| 2019-03-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-pretty-print.c (dump_generic_node): For -gimple properly |
| dump negative integer constants using _Literal (type) -num. |
| |
| 2019-03-13 Jakub Jelinek <jakub@redhat.com> |
| |
| * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove |
| nonlocal_value member. |
| |
| PR middle-end/88588 |
| * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args. |
| (ipa_simd_modify_function_body): Handle PHIs. |
| |
| 2019-03-12 Robin Dapp <rdapp@linux.ibm.com> |
| |
| * config/s390/s390.c (s390_option_override_internal): Use more |
| aggressive inlining parameters. |
| |
| 2019-03-12 Robin Dapp <rdapp@linux.ibm.com> |
| |
| * config/s390/3906.md: New file. |
| * config/s390/s390.c (MAX_SCHED_UNITS): Increase. |
| (LONGRUNNING_THRESHOLD): Remove. |
| (MAX_SCHED_MIX_SCORE): Decrease. |
| (MAX_SCHED_MIX_DISTANCE): Decrease. |
| (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely. |
| (struct s390_sched_state): New struct to hold scheduling state. |
| (S390_SCHED_STATE_NORMAL): Remove. |
| (S390_SCHED_STATE_CRACKED): Remove. |
| (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add. |
| (s390_get_sched_attrmask): Use new attribute. |
| (s390_get_unit_mask): Use new units. |
| (s390_is_fpd): New function. |
| (s390_is_fxd): New function. |
| (s390_is_longrunning): New function. |
| (s390_sched_score): Use new functions. |
| (s390_sched_reorder): Likewise. |
| (s390_sched_variable_issue): Rework and use new functions. |
| (s390_sched_init): Use new functions. |
| * config/s390/s390.h (s390_tune_attr): Add z14. |
| * config/s390/s390.md: Add z14. |
| |
| 2019-03-12 Robin Dapp <rdapp@linux.ibm.com> |
| |
| * config/s390/2964.md: Update pipeline description. |
| * config/s390/s390.c (MAX_SCHED_UNITS): Increase. |
| (LONGRUNNING_THRESHOLD): Remove. |
| (LATENCY_FACTOR): Remove. |
| (s390_get_unit_mask): Add unit. |
| (s390_sched_score): Use fxd/fpd. |
| (s390_sched_variable_issue): Use fxd/fpd. |
| |
| 2019-03-12 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386.c: Reword an error message. |
| |
| 2019-03-12 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.c (cgraph_node::dump): Dump more info for former thunks, |
| terminate with newline. |
| |
| 2019-03-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/52726 |
| * config/s390/s390.md (tabort): Use %wd instead of |
| HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital |
| letters and periods. |
| * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in |
| output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace |
| 's with %< and %>. |
| |
| PR middle-end/89663 |
| * builtins.c (expand_builtin_int_roundingfn, |
| expand_builtin_int_roundingfn_2): Return NULL_RTX instead of |
| gcc_unreachable if validate_arglist fails. |
| |
| 2019-03-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89664 |
| * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly |
| free the occurance tree after the early out. |
| |
| 2019-03-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/89655 |
| PR bootstrap/89656 |
| * vr-values.c (vr_values::update_value_range): If |
| old_vr->varying_p (), don't update it, make new_vr also VARYING |
| and return false. |
| |
| 2019-03-11 Martin Liska <mliska@suse.cz> |
| |
| * config/aarch64/aarch64.c (aarch64_override_options_internal): |
| Fix double string quoting. |
| |
| 2019-03-11 Martin Liska <mliska@suse.cz> |
| |
| * collect-utils.c (collect_wait): Wrap apostrophes |
| in gcc internal format with %'. |
| * collect2.c (main): Likewise. |
| (scan_prog_file): Likewise. |
| (scan_libraries): Likewise. |
| * config/i386/i386.c (ix86_expand_call): Likewise. |
| (ix86_handle_interrupt_attribute): Likewise. |
| * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise. |
| * config/nds32/nds32.c (nds32_insert_attributes): Likewise. |
| * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise. |
| * lto-wrapper.c (find_crtoffloadtable): Likewise. |
| * symtab.c (symtab_node::verify_base): Likewise. |
| * tree-cfg.c (verify_gimple_label): Likewise. |
| * tree.c (verify_type_variant): Likewise. |
| |
| 2019-03-11 Martin Liska <mliska@suse.cz> |
| |
| * builtins.c (expand_builtin_thread_pointer): Wrap an option name |
| in a string format message and fix GNU coding style. |
| (expand_builtin_set_thread_pointer): Likewise. |
| * common/config/aarch64/aarch64-common.c |
| (aarch64_rewrite_selected_cpu): Likewise. |
| * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise. |
| * common/config/arc/arc-common.c (arc_handle_option): Likewise. |
| * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise. |
| * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise. |
| * common/config/i386/i386-common.c (ix86_handle_option): Likewise. |
| * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise. |
| * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise. |
| * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise. |
| * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise. |
| * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option): |
| Likewise. |
| * common/config/riscv/riscv-common.c |
| (riscv_subset_list::parsing_subset_version): Likewise. |
| (riscv_subset_list::parse_std_ext): Likewise. |
| (riscv_subset_list::parse_sv_or_non_std_ext): Likewise. |
| (riscv_subset_list::parse): Likewise. |
| * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise. |
| * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise. |
| (aarch64_override_options_internal): Likewise. |
| (aarch64_validate_mcpu): Likewise. |
| (aarch64_validate_march): Likewise. |
| (aarch64_validate_mtune): Likewise. |
| (aarch64_override_options): Likewise. |
| * config/alpha/alpha.c (alpha_option_override): Likewise. |
| * config/arc/arc.c (arc_init): Likewise. |
| (parse_mrgf_banked_regs_option): Likewise. |
| (arc_override_options): Likewise. |
| (arc_expand_builtin_aligned): Likewise. |
| * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise. |
| (arm_expand_builtin): Likewise. |
| * config/arm/arm.c (arm_option_check_internal): Likewise. |
| (arm_configure_build_target): Likewise. |
| (arm_option_override): Likewise. |
| (arm_options_perform_arch_sanity_checks): Likewise. |
| (arm_handle_cmse_nonsecure_entry): Likewise. |
| (arm_handle_cmse_nonsecure_call): Likewise. |
| (arm_tls_referenced_p): Likewise. |
| (thumb1_expand_prologue): Likewise. |
| * config/avr/avr.c (avr_option_override): Likewise. |
| * config/bfin/bfin.c (bfin_option_override): Likewise. |
| * config/c6x/c6x.c (c6x_option_override): Likewise. |
| * config/cr16/cr16.c (cr16_override_options): Likewise. |
| * config/cris/cris.c (cris_option_override): Likewise. |
| * config/csky/csky.c (csky_handle_isr_attribute): Likewise. |
| * config/darwin-c.c (macosx_version_as_macro): Likewise. |
| * config/darwin.c (darwin_override_options): Likewise. |
| * config/frv/frv.c (frv_expand_builtin): Likewise. |
| * config/h8300/h8300.c (h8300_option_override): Likewise. |
| * config/i386/i386.c (parse_mtune_ctrl_str): Likewise. |
| (ix86_option_override_internal): Likewise. |
| (warn_once_call_ms2sysv_xlogues): Likewise. |
| (ix86_expand_prologue): Likewise. |
| (split_stack_prologue_scratch_regno): Likewise. |
| (ix86_warn_parameter_passing_abi): Likewise. |
| * config/ia64/ia64.c (fix_range): Likewise. |
| * config/m68k/m68k.c (m68k_option_override): Likewise. |
| * config/microblaze/microblaze.c (microblaze_option_override): Likewise. |
| * config/mips/mips.c (mips_emit_probe_stack_range): Likewise. |
| (mips_set_compression_mode): Likewise. |
| * config/mmix/mmix.c (mmix_option_override): Likewise. |
| * config/mn10300/mn10300.c (mn10300_option_override): Likewise. |
| * config/msp430/msp430.c (msp430_option_override): Likewise. |
| * config/nds32/nds32.c (nds32_option_override): Likewise. |
| * config/nios2/nios2.c (nios2_custom_check_insns): Likewise. |
| (nios2_option_override): Likewise. |
| (nios2_expand_custom_builtin): Likewise. |
| * config/nvptx/mkoffload.c (main): Likewise. |
| * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise. |
| * config/pa/pa.c (fix_range): Likewise. |
| (pa_option_override): Likewise. |
| * config/riscv/riscv.c (riscv_parse_cpu): Likewise. |
| (riscv_option_override): Likewise. |
| * config/rl78/rl78.c (rl78_option_override): Likewise. |
| * config/rs6000/aix61.h: Likewise. |
| * config/rs6000/aix71.h: Likewise. |
| * config/rs6000/aix72.h: Likewise. |
| * config/rs6000/driver-rs6000.c (elf_platform): Likewise. |
| * config/rs6000/freebsd64.h: Likewise. |
| * config/rs6000/linux64.h: Likewise. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise. |
| (rs6000_expand_zeroop_builtin): Likewise. |
| (rs6000_expand_mtfsb_builtin): Likewise. |
| (rs6000_expand_set_fpscr_rn_builtin): Likewise. |
| (rs6000_expand_set_fpscr_drn_builtin): Likewise. |
| (rs6000_invalid_builtin): Likewise. |
| (rs6000_expand_split_stack_prologue): Likewise. |
| * config/rs6000/rtems.h: Likewise. |
| * config/rx/rx.c (valid_psw_flag): Likewise. |
| (rx_expand_builtin): Likewise. |
| * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise. |
| * config/s390/s390.c (s390_expand_builtin): Likewise. |
| (s390_function_profiler): Likewise. |
| (s390_option_override_internal): Likewise. |
| (s390_option_override): Likewise. |
| * config/sh/sh.c (sh_option_override): Likewise. |
| (sh_builtin_saveregs): Likewise. |
| (sh_fix_range): Likewise. |
| * config/sh/vxworks.h: Likewise. |
| * config/sparc/sparc.c (sparc_option_override): Likewise. |
| * config/spu/spu.c (spu_option_override): Likewise. |
| (fix_range): Likewise. |
| * config/visium/visium.c (visium_option_override): Likewise. |
| (visium_handle_interrupt_attr): Likewise. |
| * config/xtensa/xtensa.c (xtensa_option_override): Likewise. |
| * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise. |
| (dbg_cnt_process_opt): Likewise. |
| * dwarf2out.c (output_dwarf_version): Likewise. |
| * except.c (expand_eh_return): Likewise. |
| * gcc.c (defined): Likewise. |
| (driver_handle_option): Likewise. |
| (process_command): Likewise. |
| (compare_files): Likewise. |
| (driver::prepare_infiles): Likewise. |
| (driver::do_spec_on_infiles): Likewise. |
| (driver::maybe_run_linker): Likewise. |
| * omp-offload.c (oacc_parse_default_dims): Likewise. |
| * opts-global.c (handle_common_deferred_options): Likewise. |
| * opts.c (parse_sanitizer_options): Likewise. |
| (common_handle_option): Likewise. |
| (enable_warning_as_error): Likewise. |
| * passes.c (enable_disable_pass): Likewise. |
| * plugin.c (parse_plugin_arg_opt): Likewise. |
| (default_plugin_dir_name): Likewise. |
| * targhooks.c (default_expand_builtin_saveregs): Likewise. |
| (default_pch_valid_p): Likewise. |
| * toplev.c (init_asm_output): Likewise. |
| (process_options): Likewise. |
| (toplev::run_self_tests): Likewise. |
| * tree-cfg.c (verify_gimple_call): Likewise. |
| * tree-inline.c (inline_forbidden_p_stmt): Likewise. |
| (tree_inlinable_function_p): Likewise. |
| * var-tracking.c (vt_find_locations): Likewise. |
| |
| 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not |
| only on the else branch. |
| |
| 2019-03-11 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (output_intermediate_json_line): Print function |
| name of each line. |
| (output_json_intermediate_file): Add new argument. |
| * doc/gcov.texi: Document the change. |
| |
| 2019-03-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/89588 |
| * loop-unroll.c (decide_unroll_constant_iterations): Make guard for |
| explicit unrolling factor more robust. |
| |
| 2019-03-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89649 |
| * tree-vectorizer.h (vect_loop_versioning): Adjust prototype. |
| * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize |
| on the prolog and epilog loops. |
| (vect_loop_versioning): Return copy of loop. |
| * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize |
| on the non-vectorized version of the loop. |
| |
| 2019-03-10 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/68924 |
| * config/i386/sse.md (*vec_extractv2di_0_sse): |
| Add (=r,x) alternative and corresponding splitter. |
| |
| 2019-03-10 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/85762 |
| PR tree-optimization/87008 |
| PR tree-optimization/85459 |
| * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool |
| it points to if there is a type changing MEM_REF. Adjust all callers. |
| (build_accesses_from_assign): Disable total scalarization if |
| contains_vce_or_bfcref_p returns true through the new parameter, for |
| both rhs and lhs. |
| |
| 2019-03-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/88568 |
| * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for |
| dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT. |
| |
| PR target/79645 |
| * common.opt (fdiagnostics-show-labels, |
| fdiagnostics-show-line-numbers, fdiagnostics-format=, |
| fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support, |
| gas-locview-support, ginline-points, ginternal-reset-location-views): |
| Terminate description text with a dot. |
| * config/microblaze/microblaze.opt (mxl-prefetch): Likewise. |
| * config/mcore/mcore.opt (m210, m340): Likewise. |
| * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove, |
| mnops=): Start description text with a capital letter. |
| * config/arc/arc.opt (msize-level=): Likewise. |
| * config/sh/sh.opt (minline-ic_invalidate): Likewise. |
| * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib, |
| mnewlib): Likewise. |
| * config/ft32/ft32.opt (msim): Likewise. |
| (mft32b, mcompress): Likewise. Terminate description text with a dot. |
| (mnodiv, mnopm): Terminate description text with a dot. |
| * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with |
| a colon. |
| * config/i386/i386.opt (prefer_vector_width, instrument_return): |
| Likewise. |
| * config/rx/rx.opt (nofpu): Remove trailing spaces from description |
| text. |
| |
| PR rtl-optimization/89634 |
| * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1 |
| are modified in BB_END (e->src) instruction. |
| |
| 2019-03-08 David Malcolm <dmalcolm@redhat.com> |
| |
| PR target/79926 |
| * config/i386/i386.c (ix86_set_current_function): Make "sorry" |
| messages more amenable to translation, and improve wording. |
| |
| 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild |
| ud- and du-chains between phases. |
| |
| 2019-03-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR debug/89631 |
| * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT |
| instead of POLY_INT_CST. |
| |
| 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE |
| requirement. |
| |
| 2019-03-08 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/68924 |
| PR target/78782 |
| PR target/87558 |
| * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic. |
| (_mm_storeu_si64): Ditto. |
| |
| 2019-03-08 Martin Liska <mliska@suse.cz> |
| |
| PR target/86952 |
| * config/i386/i386.c (ix86_option_override_internal): Disable |
| jump tables when retpolines are used. |
| |
| 2019-03-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR go/63560 |
| * ipa-split.c (execute_split_functions): Do not split |
| 'noinline' or 'section' function. |
| |
| 2019-03-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/79846 |
| * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of |
| HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of |
| HOST_WIDE_INT_PRINT_DEC. Formatting fixes. |
| |
| PR ipa/80000 |
| * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces |
| from diagnostics. Formatting fixes. |
| |
| PR target/85665 |
| * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in |
| warn_odr diagnostics. |
| |
| PR other/80058 |
| * lra-constraints.c (process_alt_operands): Avoid one space before |
| " at the end of line and another after " on another line in a string |
| literal. |
| * attribs.c (handle_dll_attribute): Likewise. |
| * config/avr/avr-devices.c (avr_texinfo): Likewise. |
| |
| * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap |
| warning_at or inform messages in G_() if there is no ?:. |
| |
| PR tree-optimization/89550 |
| * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at |
| returned true. Formatting fixes. |
| (expand_builtin_strnlen): Formatting fixes. |
| * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING |
| if warning_at returned true. |
| * tree-cfg.c (pass_warn_function_return::execute): Likewise. |
| |
| 2019-03-08 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89578 |
| * cfgloop.h (struct loop): Add owned_clique field. |
| * cfgloopmanip.c (copy_loop_info): Copy it. |
| * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique |
| cliques. |
| * tree-inline.c (copy_loops): Remap owned_clique. |
| * lto-streamer-in.c (input_cfg): Stream owned_clique. |
| * lto-streamer-out.c (output_cfg): Likewise. |
| |
| 2019-03-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80190 |
| * config/darwin.c: Include intl.h. |
| (darwin_build_constant_cfstring): Improve i18n of diagnostics by not |
| composing the message out of two separate parts. |
| |
| 2019-03-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80003 |
| * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics |
| doesn't start with a capital letter and doesn't end with a dot. |
| (ix86_function_arg_boundary): Make sure diagnostics doesn't start |
| with a capital letter. |
| (ix86_mangle_function_version_assembler_name): Likewise. |
| (ix86_generate_version_dispatcher_body): Likewise. |
| (fold_builtin_cpu): Likewise. |
| (get_builtin_code_for_version): Likewise. Remove extraneous space. |
| (ix86_handle_interrupt_attribute): Make the diagnostics easier for |
| translators, wrap full type name in %qs. |
| |
| PR translation/79999 |
| * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about |
| depend clause with source (or sink) modifier. |
| * omp-expand.c (expand_omp_ordered_sink): Likewise. |
| |
| PR target/89602 |
| * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask, |
| *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns. |
| (avx512f_load<mode>_mask): New define_expand. |
| * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask, |
| __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask, |
| __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask, |
| __builtin_ia32_movess_mask): New builtins. |
| * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss, |
| _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss, |
| _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd, |
| _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics. |
| |
| 2019-03-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR lto/87525 |
| * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit |
| for extern inline functions. |
| |
| 2019-03-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/88235 |
| * cgraph.h (cgraph_node): New inline method former_thunk_p. |
| * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk. |
| (clone_of_p): Treat expanded thunks like thunks, be optimistic if they |
| have multiple callees. At the end check if declarations match as |
| opposed to cgraph_nodes. |
| |
| 2019-03-07 Martin Liska <mliska@suse.cz> |
| |
| * cgraph.c (cgraph_node::verify_node): Verify with a neighbour |
| which is equivalent to searching for this in clones chain. |
| * symtab.c (symtab_node::verify_base): Similarly compare ASM |
| names with a neighbour and special case first node in a chain. |
| |
| 2019-01-25 Jason Merrill <jason@redhat.com> |
| |
| PR c++/80916 - spurious "static but not defined" warning. |
| * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false |
| for an internal symbol with DECL_EXTERNAL. |
| |
| 2019-04-07 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89618 |
| * cfgloopmanip.c (copy_loop_info): Copy forgotten fields. |
| * tree-inline.c (copy_loops): Simplify. |
| |
| 2019-03-07 Martin Liska <mliska@suse.cz> |
| |
| * dwarf2out.c (add_AT_vms_delta): Revert function removal. |
| |
| 2019-03-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89595 |
| * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take |
| stmt iterator as reference, take boolean output parameter to |
| indicate whether the stmt was removed and thus the iterator |
| already advanced. |
| (dom_opt_dom_walker::before_dom_children): Re-iterate over |
| stmts created by folding. |
| |
| 2019-03-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/89585 |
| * doc/extend.texi (Basic Asm): Document qualifiers are not allowed |
| at toplevel. |
| |
| 2019-03-06 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR rtl-optimization/88845 |
| * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during |
| LRA. |
| * lra.c (remove_scratches_1): New function. |
| (remove_scratches): Use it. |
| (lra_emit_move): Likewise. |
| |
| 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on |
| unaligned_access variable. |
| * config/arc/arc.c (arc_override_options): Set unaligned access |
| default on for HS CPUs. |
| * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic. |
| |
| 2019-03-06 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/89577 |
| * doc/gcov.texi: Prefer to use --coverage. |
| * doc/sourcebuild.texi: Likewise. |
| |
| 2019-03-02 Jason Merrill <jason@redhat.com> |
| |
| PR c++/86485 - -Wmaybe-unused with empty class ?: |
| * gimplify.c (gimplify_cond_expr): Use INIT_EXPR. |
| |
| 2019-03-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89587 |
| * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only |
| if_multiarch. |
| |
| PR middle-end/89590 |
| * builtins.c (maybe_emit_free_warning): Punt if free doesn't have |
| exactly one argument. |
| |
| 2019-03-05 Jakub Jelinek <jakub@redhat.com> |
| Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/89570 |
| * match.pd (vec_cond into cond_op simplification): Don't use |
| get_conditional_internal_fn, use as_internal_fn (cond_op). |
| |
| 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR target/89222 |
| * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem |
| to decide when to split off a non-zero offset from a symbol. |
| * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets |
| in function symbols. |
| |
| 2019-03-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89594 |
| * tree-if-conv.c (pass_if_conversion::execute): Handle |
| case where .LOOP_VECTORIZED_FUNCTION was removed. |
| |
| 2019-03-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/89560 |
| * fold-const.c (fold_checksum_tree): Don't use fixed size buffer, |
| instead alloca it only when needed with the needed size. |
| |
| PR tree-optimization/89570 |
| * match.pd (vec_cond into cond_op simplification): Guard with |
| vectorized_internal_fn_supported_p test and #if GIMPLE. |
| |
| PR tree-optimization/89566 |
| * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): |
| Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed. |
| Punt if get_user_idx_format succeeds, but idx_format argument is |
| not provided or doesn't have pointer type, or if idx_args is above |
| number of provided arguments. |
| |
| 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR tree-optimization/89437 |
| * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications. |
| |
| 2019-03-04 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89572 |
| * tree-scalar-evolution.c: (get_loop_exit_condition): Use |
| safe_dyn_cast. |
| |
| 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/89487 |
| * tree-loop-distribution.c (has_nonaddressable_dataref_p): New. |
| (create_rdg_vertices): Compute has_nonaddressable_dataref_p. |
| (distribute_loop): Don't do runtime alias check if there is non- |
| addressable data reference. |
| * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL |
| is a register variable. |
| |
| 2019-03-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89506 |
| * config/arm/arm.md (cmpsi2_addneg): Use |
| trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...). |
| If operands[2] is 0 or INT_MIN, force use of subs. |
| (*compare_scc splitter): Use gen_int_mode. |
| (*negscc): Likewise. |
| * config/arm/thumb2.md (*thumb2_negscc): Likewise. |
| |
| 2019-03-01 Kito Cheng <kito.cheng@gmail.com> |
| Monk Chiang <sh.chiang04@gmail.com> |
| |
| * common/config/riscv/riscv-common.c: Include sstream. |
| (riscv_subset_list::to_string): New. |
| (riscv_arch_str): Likewise. |
| * config.gcc (riscv*-*-*): Handle --with-riscv-attribute= |
| * config.in: Regen. |
| * config/riscv/riscv-protos.h (riscv_arch_str): New. |
| * config/riscv/riscv.c (INCLUDE_STRING): Defined. |
| (riscv_emit_attribute): New. |
| (riscv_file_start): Emit attribute if needed. |
| (riscv_option_override): Init riscv_emit_attribute_p. |
| * config/riscv/riscv.opt (mriscv-attribute): New option. |
| * configure.ac (riscv*-*-*): Check binutils is supporting ELF |
| * configure: Regen. |
| * doc/install.texi: Document --with-riscv-attribute. |
| * doc/invoke.texi: Document -mriscv-attribute. |
| |
| * common/config/riscv/riscv-common.c: |
| Include config/riscv/riscv-protos.h. |
| (INCLUDE_STRING): Defined. |
| (RISCV_DONT_CARE_VERSION): Defined. |
| (riscv_subset_t): Declare. |
| (riscv_subset_t::riscv_subset_t): New. |
| (riscv_subset_list): Declare. |
| (riscv_subset_list::riscv_subset_list): New. |
| (riscv_subset_list::~riscv_subset_list): Likewise. |
| (riscv_subset_list::parsing_subset_version): Likewise. |
| (riscv_subset_list::parse_std_ext): Likewise. |
| (riscv_subset_list::parse_sv_or_non_std_ext): Likewise. |
| (riscv_subset_list::add): Likewise. |
| (riscv_subset_list::lookup): Likewise. |
| (riscv_subset_list::xlen): Likewise. |
| (riscv_subset_list::parse): Likewise. |
| (riscv_supported_std_ext): Likewise. |
| (current_subset_list): Likewise. |
| (riscv_parse_arch_string): Using riscv_subset_list::parse to |
| parse. |
| |
| 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): If |
| rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index. |
| * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option. |
| |
| 2019-03-01 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/85899 |
| * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for |
| fallthru edges leading to the exit block. |
| |
| 2019-03-01 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/89517 |
| * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16, |
| rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line. |
| |
| 2019-03-01 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/89535 |
| * tree-vect-stmts.c (vectorizable_call): Record the vector types |
| for each operand. Calculate the fallback choice for mask operands |
| and pass it to vect_get_vec_def_for_operand. |
| |
| 2019-03-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89541 |
| * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may |
| get virtual operands. |
| (get_expr_operands): Handle CONST_DECL like other decls. |
| |
| 2019-03-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/89503 |
| * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit |
| on DECL_P and EXPR_P. |
| |
| 2019-03-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89497 |
| * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags |
| argument, defaulted to zero. |
| * passes.c (execute_function_todo): Pass down SSA update flags |
| to cleanup_tree_cfg. |
| * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h. |
| (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA |
| form if requested. |
| (cleanup_tree_cfg): Get and pass down SSA update flags. |
| |
| 2019-03-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/89539 |
| * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to |
| early_lto_debug argument. |
| |
| 2019-02-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/89536 |
| * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test |
| only whether bit #0 of the value is 0 instead of the entire value. |
| |
| 2019-02-28 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/87068 - missing diagnostic with fallthrough statement. |
| * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found |
| at the end of a seq, save its location to walk_stmt_info. |
| (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of |
| a switch. |
| |
| 2019-02-28 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/88585 |
| * tree.c (find_atomic_core_type): Move ahead in file. |
| (check_base_type): Correctly compare alignments of atomic types. |
| |
| 2019-02-28 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89455 |
| * config/i386/i386.c (get_builtin_code_for_version): Identify |
| Westmere from PCLMUL, instead of AES. |
| |
| 2019-02-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89434 |
| * config/arm/arm.md (*subsi3_carryin_compare_const): Use |
| trunc_int_for_mode (-INTVAL (...), SImode), just instead of |
| -UINTVAL (...). |
| |
| 2019-02-28 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/88530 |
| * config/aarch64/aarch64-option-extensions.def: Document it. |
| * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature |
| if empty hwcaps. |
| |
| 2019-02-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/89520 |
| * convert.c (convert_to_real_1, convert_to_integer_1): Punt for |
| builtins if they don't have a single scalar floating point argument. |
| Formatting fixes. |
| |
| 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR rtl-optimization/89490 |
| * varasm.c (get_block_for_section): Bail out for mergeable sections. |
| (default_use_anchors_for_symbol_p, output_object_block): Assert the |
| block section is not mergeable. |
| |
| 2019-02-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/70341 |
| * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename |
| old define_insn to ... |
| (*arm_casesi_internal): ... this. Add mode to LABEL_REFs. |
| * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand. |
| Rename old define_insn to ... |
| (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs. |
| (thumb2_casesi_internal_pic): New define_expand. Rename old |
| define_insn to ... |
| (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs. |
| * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch |
| MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it. |
| |
| 2019-02-27 Richard Biener <rguenther@suse.de> |
| |
| PR debug/88878 |
| * dwarf2out.c (use_debug_types): Disable when in_lto_p. |
| |
| 2019-02-27 Richard Biener <rguenther@suse.de> |
| |
| * passes.c (should_skip_pass_p): Do not skip cgraph-edge |
| building. |
| |
| 2019-02-27 Richard Biener <rguenther@suse.de> |
| |
| PR debug/88878 |
| * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug |
| parameter, prefix section name with .gnu.debuglto_ if true. |
| (dwarf2out_finish): Pass false to output_comdat_type_unit. |
| (dwarf2out_early_finish): Pass true to output_comdat_type_unit. |
| |
| 2019-02-27 Richard Biener <rguenther@suse.de> |
| |
| PR debug/89514 |
| * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p |
| rather than on use_debug_types, doing what output_die does. |
| (value_format): Likewise. |
| |
| 2019-02-27 Martin Jambor <mjambor@suse.cz> |
| Martin Sebor <msebor@redhat.com> |
| |
| * doc/invoke.texi (Warning Options): Reword description of |
| -Wno-absolute-value. |
| |
| 2019-02-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/89280 |
| * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p, |
| builtin_setjmp_setup_bb): New functions. |
| (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges. |
| When visiting __builtin_setjmp_setup block, queue in special |
| setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding |
| __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks |
| from visited after the loop if they don't have any visited successor |
| blocks. |
| |
| 2018-02-26 Steve Ellcey <sellcey@marvell.com> |
| |
| * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name): |
| New function. |
| (TARGET_GET_MULTILIB_ABI_NAME): New macro. |
| |
| 2019-02-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/89507 |
| * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs |
| with types other than sizetype/ssizetype. |
| |
| 2019-02-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc-opts.h (enum processor_type): Rename to... |
| (enum sparc_processor_type): ...this. |
| (enum sparc_code_model_type): New enumeration type. |
| (enum sparc_memory_model_type): Tweak comments. |
| * config/sparc/sparc.opt (mcpu): Adjust to above renaming. |
| (mtune): Likewise. |
| (mcmodel): Use sparc_code_model enumeration and variable. |
| (sparc_code_model): New enumeration. |
| (mdebug): Add Undocumented marker. |
| * config/sparc/sparc.h (enum cmodel): Delete. |
| (sparc_cmodel): Likewise. |
| (TARGET_CM_MEDLOW): Adjust to above renaming. |
| (TARGET_CM_MEDMID): Likewise. |
| (TARGET_CM_MEDANY): Likewise. |
| (TARGET_CM_EMBMEDANY): Likewise. |
| * config/sparc/sparc.c (sparc_cmodel): Delete. |
| (sparc_option_override): Remove string/value mapping support for the |
| code model. Move code and memory model support to after the handling |
| of target flags. Do private machine setup last. |
| (sparc_emit_set_symbolic_const64): Use sparc_code_model. |
| (sparc_legitimize_reload_address): Likewise. |
| (sparc_output_mi_thunk): Likewise. |
| * config/sparc/sparc.md (cpu): Adjust comment to above renaming. |
| |
| 2019-02-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/89500 |
| * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment. |
| (handle_builtin_strlen): Remove noncst_bound variable. Always |
| optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to |
| cst if the first cst bytes starting at x are known to be non-zero, |
| even if the string is not zero terminated. Don't try to modify |
| *si for strnlen. Update strlen_to_stridx only for strlen or if |
| we can prove strnlen returns the same value as strlen would. |
| |
| 2019-02-26 Martin Liska <mliska@suse.cz> |
| |
| * alloc-pool.h (struct pool_usage): Remove extra |
| print_dash_line. |
| * bitmap.h (struct bitmap_usage): Likewise. |
| * ggc-common.c (struct ggc_usage): Likewise. |
| * mem-stats.h (struct mem_usage): Likewise. |
| (mem_alloc_description::dump): Print dash lines |
| here and repeat header at the end of a table report. |
| It's then more readable. |
| * tree-phinodes.c (phinodes_print_statistics): Make |
| horizontal alignment. |
| * tree-ssanames.c (ssanames_print_statistics): Likewise. |
| * vec.c (struct vec_usage): Remove extra print_dash_line. |
| * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT. |
| |
| 2019-02-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * doc/extend.texi (__builtin_object_size): |
| Use @pxref instead of @xref inside parenthesis. |
| (__builtin_has_attribute): Add missing comma after @xref. |
| (__builtin_object_size): Ditto. |
| * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i]. |
| * fortran/invoke.texi (-ffpe-trap): Use @var for every item |
| in the list. |
| |
| 2019-02-26 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/87761 |
| * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to |
| detect obviously dead insns and delete them. |
| |
| 2019-02-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89505 |
| * tree-ssa-structalias.c (compute_dependence_clique): Make sure |
| to handle restrict pointed-to vars with multiple subvars |
| correctly. |
| |
| 2019-02-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89489 |
| * tree-parloops.c (create_loop_fn): Copy over last_clique. |
| |
| 2019-02-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix |
| and move around comment. |
| <BIT_AND_EXPR>: Likewise. |
| <BIT_NOT_EXPR>: Add specific handling for boolean types. |
| |
| 2019-02-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89474 |
| * config/i386/i386.c (remove_partial_avx_dependency): Call |
| df_analyze etc. before creation of the v4sf_const0 pseudo, rather than |
| after changing possibly many instructions to use that pseudo. Fix up |
| insertion of v4sf_const0 setter at the start of bb. |
| |
| 2019-02-25 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR c/80409 |
| * doc/extend.texi (Variadic Pointer Args): New section. |
| |
| 2019-02-25 Sandra Loosemore <sandra@codesourcery.com> |
| Martin Sebor <msebor@gmail.com> |
| |
| * common.opt (Wattribute-alias): Likewise. |
| * doc/invoke.texi (Option Summary): List general form of |
| -Wattribute-alias=. List positive form of -Wmissing-attributes. |
| (-Wmissing-attributes): Invert entry, rewrite and correct default. |
| Add cross-references. |
| (-Wattribute-alias): Rewrite and correct default. Mention |
| considered attributes (same as for -Wmissing-attributes). |
| |
| 2019-02-25 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian. |
| (_mm_cvtpd_ps): Likewise. |
| (_mm_cvttpd_epi32): Likewise. |
| |
| PR target/89338 |
| * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch. |
| (_mm_cvt_ss2si): Fix type mismatch and 32-bit. |
| |
| PR target/89339 |
| * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit. |
| |
| 2019-02-25 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/88530 |
| * common/config/aarch64/aarch64-common.c |
| (struct aarch64_option_extension): Add is_synthetic. |
| (all_extensions): Use it. |
| (TARGET_OPTION_INIT_STRUCT): Define hook. |
| (struct gcc_targetm_common): Moved to end. |
| (all_extensions_by_on): New. |
| (opt_ext_cmp, typedef opt_ext): New. |
| (aarch64_option_init_struct): New. |
| (aarch64_contains_opt): New. |
| (aarch64_get_extension_string_for_isa_flags): Output smallest set. |
| * config/aarch64/aarch64-option-extensions.def |
| (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto. |
| (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3, |
| sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres): |
| Set is_synthetic to false. |
| (crypto): Set is_synthetic to true. |
| * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add |
| SYNTHETIC. |
| |
| 2019-02-25 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, |
| vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32, |
| vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32, |
| vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32, |
| vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32, |
| vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32, |
| vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32, |
| vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32): |
| Rename ... |
| (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16, |
| vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16, |
| vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16, |
| vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16, |
| vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16, |
| vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16, |
| vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16, |
| vfmlsl_laneq_high_f16): ... To this. |
| * config/arm/neon.md: Update comments. |
| |
| 2019-02-25 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, |
| vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32, |
| vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32, |
| vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32, |
| vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32, |
| vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32, |
| vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32, |
| vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32): |
| Rename ... |
| (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16, |
| vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16, |
| vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16, |
| vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16, |
| vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16, |
| vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16, |
| vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16, |
| vfmlslq_laneq_high_f16): ... To this. |
| |
| 2019-02-25 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/86096 |
| * df-scan.c (df_mw_compare): Do not check mw_reg fields when |
| comparing mw_order values. |
| |
| 2019-02-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89434 |
| * config/arm/arm.md (*subsi3_carryin_const): Use |
| arm_neg_immediate_operand predicate instead of |
| arm_not_immediate_operand, "L" constraint instead of "K" and |
| print it using %n2 instead of %B2. |
| (*subsi3_carryin_const0): New define_insn. |
| (*subsi3_carryin_compare_const): Use const_int_I_operand predicate |
| instead of arm_not_operand and "I" constraint instead of "K" and |
| print it using %n3 instead of %B2. Instead of using match_dup 2 add |
| another match_operand and in the condition check that it is negation |
| of operands[2]. |
| (*subsi3_carryin_compare_const0): New define_ins. |
| (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of |
| *subsi3_carryin_const. |
| (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const, |
| split into *subsi3_carryin_compare_const0 if the highpart is zero. |
| |
| PR target/89438 |
| * config/arm.vfp.md (*negdf2_vfp): Use |
| gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000). |
| * config/arm/neon.md (neon_copysignf<mode>): Likewise. |
| |
| 2019-02-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/89445 |
| * simplify-rtx.c (simplify_ternary_operation): Don't use |
| simplify_merge_mask on operands that may trap. |
| * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of |
| SCALAR_FLOAT_MODE_P checks. For integral division by zero, if |
| second operand is CONST_VECTOR, check if any element could be zero. |
| Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless |
| their operands can trap. |
| |
| 2019-02-23 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-ssa-sprintf.c (target_strtol): Rename... |
| (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX. |
| (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to |
| check for range error. |
| |
| 2019-02-23 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR driver/69471 |
| * opts-common.c (prune_options): Also prune joined switches |
| with Negative and RejectNegative. |
| * config/i386/i386.opt (march=): Add Negative(march=). |
| (mtune=): Add Negative(mtune=). |
| * doc/options.texi: Document Negative used together with Joined |
| and RejectNegative. |
| |
| 2019-02-22 Martin Sebor <msebor@redhat.com> |
| |
| * doc/extend.texi (Other Builtins): Add |
| __builtin_is_constant_evaluated. |
| |
| 2019-02-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/87609 |
| * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques. |
| |
| 2019-02-22 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/87761 |
| * config/mips/mips.md: Add new combiner pattern to recognize |
| a bitfield extraction using (ashiftrt (truncate (ashift (...)))). |
| |
| 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com> |
| |
| PR target/89324 |
| * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on |
| destination register in peepholes generating patterns for ADDS/SUBS. |
| (add<mode>3_compare0, |
| *addsi3_compare0_uxtw, add<mode>3_compareC, |
| add<mode>3_compareV_imm, add<mode>3_compareV, |
| *adds_<optab><ALLX:mode>_<GPI:mode>, |
| *subs_<optab><ALLX:mode>_<GPI:mode>, |
| *adds_<optab><ALLX:mode>_shift_<GPI:mode>, |
| *subs_<optab><ALLX:mode>_shift_<GPI:mode>, |
| *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2, |
| *sub<mode>3_compare0, *subsi3_compare0_uxtw, |
| sub<mode>3_compare1): Allow stack pointer for source register. |
| * config/aarch64/predicates.md (aarch64_general_reg): New predicate. |
| |
| 2019-02-22 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/88993 |
| PR tree-optimization/88853 |
| * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func): |
| New helper. |
| (sprintf_dom_walker::call_info::is_string_func): New helper. |
| (format_directive): Only issue "may exceed" 4095/INT_MAX warnings |
| for formatted string functions. |
| (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment. |
| |
| 2019-02-22 Martin Sebor <msebor@redhat.com> |
| |
| PR c/89425 |
| * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in |
| unreachable subexpressions. |
| |
| 2019-02-22 H.J. Lu <hongjiu.lu@intel.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| Sunil K Pandey <sunil.k.pandey@intel.com> |
| |
| PR target/87007 |
| * config/i386/i386-passes.def: Add |
| pass_remove_partial_avx_dependency. |
| * config/i386/i386-protos.h |
| (make_pass_remove_partial_avx_dependency): New. |
| * config/i386/i386.c (make_pass_remove_partial_avx_dependency): |
| New function. |
| (pass_data_remove_partial_avx_dependency): New. |
| (pass_remove_partial_avx_dependency): Likewise. |
| (make_pass_remove_partial_avx_dependency): Likewise. |
| * config/i386/i386.md (avx_partial_xmm_update): New attribute. |
| (*extendsfdf2): Add avx_partial_xmm_update. |
| (truncdfsf2): Likewise. |
| (*float<SWI48:mode><MODEF:mode>2): Likewise. |
| (SF/DF conversion splitters): Disabled for TARGET_AVX. |
| |
| 2019-02-22 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR middle-end/85598 |
| * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop |
| analysis for pass. |
| |
| 2019-02-22 Thiago Macieira <thiago.macieira@intel.com> |
| |
| PR target/89444 |
| * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES. |
| (PTA_SKYLAKE): Add PTA_AES. |
| (PTA_GOLDMONT): Likewise. |
| |
| 2019-02-22 Sudakshina Das <sudi.das@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti |
| instruction if enabled. |
| (aarch64_override_options): Remove reference to return address key. |
| |
| 2019-02-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89440 |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove |
| not necessary assert. |
| |
| 2019-02-22 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR fortran/72741 |
| * omp-general.c (oacc_replace_fn_attrib): Mostly split out into... |
| (oacc_replace_fn_attrib_attr): ... this new function. |
| * omp-general.h (oacc_replace_fn_attrib_attr): New prototype. |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround. |
| |
| 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm-cpus.in (ares): Rename to... |
| (neoverse-n1): ... This. Add ares as alias. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Likewise. |
| * doc/invoke.txt (ARM Options): Document neoverse-n1. |
| |
| 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (neoverse-e1): Define. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option. |
| |
| 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (ares_tunings): Rename to... |
| (neoversen1_tunings): ... This. |
| * config/aarch64/aarch64-cores.def (ares): Change tuning to the above. |
| (neoverse-n1): New CPU. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.txt (AArch64 Options): Document neoverse-n1. |
| |
| 2019-02-22 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/87609 |
| * cfghooks.h (dependence_hash): New typedef. |
| (struct copy_bb_data): New type. |
| (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument. |
| (duplicate_block): Likewise. |
| * cfghooks.c (duplicate_block): Pass down copy_bb_data. |
| (copy_bbs): Create and pass down copy_bb_data. |
| * cfgrtl.c (cfg_layout_duplicate_bb): Adjust. |
| (rtl_duplicate_bb): Likewise. |
| * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL |
| remap dependence info. |
| |
| 2019-02-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/87609 |
| * tree-core.h (tree_base): Document special clique values. |
| * tree-inline.c (remap_dependence_clique): Do not use the |
| special clique value of one. |
| (maybe_set_dependence_info): Use clique one. |
| (clear_dependence_clique): New callback. |
| (compute_dependence_clique): Clear clique one from all refs |
| before assigning it (again). |
| |
| 2019-02-21 Martin Sebor <msebor@redhat.com> |
| |
| * doc/extend.texi (__clear_cache): Correct signature. |
| |
| 2019-02-21 Ian Lance Taylor <iant@golang.org> |
| |
| PR go/89170 |
| * varasm.c (decode_addr_const): Call lookup_constant_def rather |
| than output_constant_def. |
| (add_constant_to_table): New static function. |
| (output_constant_def): Call add_constant_to_table. |
| (tree_output_constant_def): Likewise. |
| |
| 2019-02-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/89285 |
| * builtins.c (fold_builtin_arith_overflow): If first two args are |
| INTEGER_CSTs, set intres and ovfres to constants rather than calls |
| to ifn. |
| |
| 2019-02-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/87412 |
| * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an |
| error for -mindirect-branch/-mfunction-return with incompatible |
| -fcf-protection. |
| |
| 2019-02-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/88714 |
| * constraints.md (q): Remove. |
| * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint |
| instead of q. |
| |
| 2019-02-21 Martin Jambor <mjambor@suse.cz> |
| |
| PR hsa/89302 |
| * omp-general.c (omp_extract_for_data): Removed a duplicate call |
| to omp_adjust_for_condition, moved NE_EXPR code_cond processing... |
| (omp_adjust_for_condition): ...here. Added necessary parameters. |
| * omp-general.h (omp_adjust_for_condition): Updated declaration. |
| * omp-grid.c (grid_attempt_target_gridification): Adjust to pass |
| proper values to new parameters of omp_adjust_for_condition. |
| |
| 2019-02-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/89412 |
| * expr.c (expand_assignment): If result is a MEM, use change_address |
| instead of simplify_gen_subreg. |
| |
| 2019-02-20 Jakub Jelinek <jakub@redhat.com> |
| David Malcolm <dmalcolm@redhat.com> |
| |
| PR middle-end/89091 |
| * fold-const.c (decode_field_reference): Return NULL_TREE if |
| lang_hooks.types.type_for_size returns NULL. Check it before |
| overwriting *exp_. Use return NULL_TREE instead of return 0. |
| |
| 2019-02-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/88074 |
| PR middle-end/89415 |
| * toplev.c (do_compile): Double the emin/emax exponents to workaround |
| buggy mpc_norm. |
| |
| 2019-02-20 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89397 |
| * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check |
| TARGET_SSE in addition to TARGET_SSE_MATH. |
| |
| (ix86_excess_precision): Ditto. |
| (ix86_float_exceptions_rounding_supported_p): Ditto. |
| (use_rsqrt_p): Ditto. |
| * config/i386/sse.md (rsqrt<mode>2): Ditto. |
| |
| 2019-02-20 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c/89410 |
| * diagnostic-show-locus.c (layout::calculate_line_spans): Use |
| linenum_arith_t when determining if two adjacent line spans are |
| close enough to merge. |
| (diagnostic_show_locus): Use linenum_arith_t when iterating over |
| lines within each line_span. |
| |
| 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| PR target/86487 |
| * lra-constraints.c(uses_hard_regs_p): Fix handling of |
| paradoxical SUBREGS. |
| |
| 2019-02-20 Li Jia He <helijia@linux.ibm.com> |
| |
| PR target/88100 |
| * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin) |
| <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH, |
| ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before |
| range checking it. |
| |
| 2019-02-19 Jonathan Wakely <jwakely@redhat.com> |
| |
| * config/gcn/gcn.c (print_operand): Fix typo. |
| |
| 2019-02-19 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/88074 |
| * toplev.c (do_compile): Initialize mpfr's exponent range |
| based on available float modes. |
| |
| 2019-02-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * rtlanal.c (get_initial_register_offset): Fall back to the estimate |
| as long as the epilogue isn't completed. |
| |
| 2019-02-18 Martin Sebor <msebor@redhat.com> |
| |
| * doc/cpp.texi (Conditional syntax): Add __has_attribute, |
| __has_cpp_attribute, and __has_include. |
| |
| 2019-02-18 Martin Sebor <msebor@redhat.com> |
| |
| * doc/invoke.texi (-Wreturn-type): Correct and expand. |
| |
| 2019-02-18 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/89294 |
| * tree.c (valid_constant_size_p): Avoid assuming size is a constant |
| expression. |
| * tree.h (cst_size_error): Add the cst_size_not_constant enumerator. |
| |
| 2019-02-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89296 |
| * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting |
| of no-warning flag to cases that might emit the bogus warning. |
| |
| 2019-02-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/88714 |
| * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of |
| "q" constraint. |
| * config/arm/vfp.md (*movdi_vfp): Likewise. |
| * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of |
| "q" constraint for operands[0]. |
| |
| PR target/89369 |
| * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask, |
| *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct |
| pattern in a temporary buffer. |
| (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather |
| than 64-operands[2]. |
| |
| PR target/89361 |
| * config/s390/s390.c (s390_indirect_branch_attrvalue, |
| s390_indirect_branch_settings): Define unconditionally. |
| (s390_set_current_function): Likewise, but guard the whole body except |
| the s390_indirect_branch_settings call with |
| #if S390_USE_TARGET_ATTRIBUTE. |
| (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally. |
| |
| * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze, |
| *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt): |
| Use HOST_WIDE_INT_M1U instead of ~(0ULL). |
| (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use |
| HOST_WIDE_INT_1U instead of 1ULL. |
| (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int |
| to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul. |
| (*insv<mode><clobbercc_or_nocc>_appendbitsleft, |
| z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U |
| instead of 1UL. |
| (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U |
| instead of 1ul. |
| |
| 2019-02-18 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/89209 |
| * tree-sra.c (create_access_replacement): New optional parameter |
| reg_tree. Use it as a type if non-NULL and access type is not of |
| a register type. |
| (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it |
| to create_access_replacement. |
| (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name. |
| Check lacc is non-NULL before attempting to re-create it on the RHS. |
| |
| 2019-02-18 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/89306 |
| * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1 |
| by default. |
| (symbol_table::free_edge): Recycle m_summary_id. |
| * cgraph.h (get_summary_id): New. |
| (symbol_table::release_symbol): Set m_summary_id to -1 |
| by default. |
| (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id. |
| * ipa-fnsummary.c (ipa_fn_summary_t): Switch from |
| function_summary to fast_function_summary. |
| * ipa-fnsummary.h (ipa_fn_summary_t): Likewise. |
| * ipa-pure-const.c (class funct_state_summary_t): |
| Switch from function_summary to fast_function_summary. |
| * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise. |
| (class ipa_ref_opt_summary_t): Switch from function_summary |
| to fast_function_summary. |
| * symbol-summary.h (class function_summary_base): New class |
| that is created from base of former function_summary. |
| (function_summary_base::unregister_hooks): New. |
| (class function_summary): Inherit from function_summary_base. |
| (class call_summary_base): New class |
| that is created from base of former call_summary. |
| (class call_summary): Inherit from call_summary_base. |
| (struct is_same): New. |
| (class fast_function_summary): New summary class. |
| (class fast_call_summary): New summary class. |
| * vec.h (vec_safe_grow_cleared): New function. |
| |
| 2019-02-18 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386.c (ix86_get_multilib_abi_name): New function. |
| (TARGET_GET_MULTILIB_ABI_NAME): New macro defined. |
| * doc/tm.texi: Document new target hook. |
| * doc/tm.texi.in: Likewise. |
| * target.def: Add new target macro. |
| * gcc.c (find_fortran_preinclude_file): Do not search multilib |
| suffixes. |
| |
| 2019-02-17 Alan Modra <amodra@gmail.com> |
| |
| PR target/89271 |
| * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int |
| output reg on add insn. |
| (<bd>tf_<mode> split): Likewise. Match predicates with insn. |
| |
| 2019-02-16 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89372 |
| * config/i386/sse.md (ssedoublemode): Remove V4HI. |
| (PMULHRSW): Likewise. |
| (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not |
| TARGET_AVX2. |
| (ssse3_pmulhrswv4hi3): New expander. |
| |
| 2019-02-16 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require |
| MMX. Add isa attribute. |
| |
| 2019-02-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/66152 |
| * builtins.h (c_readstr): Declare. |
| * builtins.c (c_readstr): Remove forward declaration. Add |
| null_terminated_p argument, if false, read all bytes from the |
| string instead of stopping after '\0'. |
| * expr.c (string_cst_read_str): New function. |
| (store_expr): Use string_cst_read_str instead of |
| builtin_strncpy_read_str. Try to store by pieces the whole |
| exp_len first, and only if that fails, split it up into |
| store by pieces followed by clear_storage. Formatting fix. |
| |
| * config/i386/i386.md (*movqi_internal): Remove static from |
| buf variable. Use output_asm_insn (buf, operands); return ""; |
| instead of return buf;. |
| * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>, |
| *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3, |
| *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise. |
| |
| 2019-02-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/linux.h (ASAN_CC1_SPEC): Define. |
| (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC. |
| * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise. |
| (CC1_SPEC): Likewise. |
| * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit. |
| |
| 2019-02-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * asan.c (asan_emit_stack_protection): Use full-sized mask to align |
| the base address on 64-bit strict-alignment platforms. |
| |
| 2019-02-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'. |
| |
| 2019-02-15 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define. |
| |
| 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 Xuepeng Guo <xuepeng.guo@intel.com> |
| |
| * common/config/i386/i386-common.c |
| (OPTION_MASK_ISA_ENQCMD_SET, |
| OPTION_MASK_ISA_ENQCMD_UNSET): New macros. |
| (ix86_handle_option): Handle -menqcmd. |
| * config.gcc (enqcmdintrin.h): New header file. |
| * config/i386/cpuid.h (bit_ENQCMD): New bit. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Handle |
| -menqcmd. |
| * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New |
| function type. |
| * config/i386/i386-builtin.def (__builtin_ia32_enqcmd, |
| __builtin_ia32_enqcmds): New builtins. |
| * config/i386/i386-c.c (__ENQCMD__): New macro. |
| * config/i386/i386-option.c (ix86_target_string): Add |
| -menqcmd. |
| (ix86_valid_target_attribute_inner_p): Likewise. |
| * config/i386/i386-expand.c |
| (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and |
| IX86_BUILTIN_ENQCMDS. |
| * config/i386/i386.h (TARGET_ENQCMD): New. |
| * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New. |
| (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern. |
| (movdir64b_<mode>): Parameterize to enable share expansion code |
| with ENQCMD in function ix86_expand_builtin. |
| * config/i386/i386.opt: Add -menqcmd. |
| * config/i386/immintrin.h: Include enqcmdintrin.h. |
| * config/i386/enqcmdintrin.h: New intrinsic file. |
| * doc/invoke.texi: Add -menqcmd. |
| |
| 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. |