| 2021-09-13 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR bootstrap/101574 |
| * diagnostic-spec.c (warning_suppressed_at, copy_warning): Handle |
| 'RESERVED_LOCATION_P' locations. |
| * warning-control.cc (get_nowarn_spec, suppress_warning) |
| (copy_warning): Likewise. |
| |
| 2021-09-13 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * diagnostic-spec.h (typedef xint_hash_t): Use 'location_t' instead of... |
| (typedef key_type_t): ... this. Remove. |
| (nowarn_map): Document. |
| * diagnostic-spec.c (nowarn_map): Likewise. |
| * warning-control.cc (convert_to_key): Evolve functions into... |
| (get_location): ... these. Adjust all users. |
| |
| 2021-09-13 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * warning-control.cc (copy_warning): Remove 'nowarn_map' setup. |
| |
| 2021-09-13 Jason Merrill <jason@redhat.com> |
| |
| * params.opt: Add destructive-interference-size and |
| constructive-interference-size. |
| * doc/invoke.texi: Document them. |
| * config/aarch64/aarch64.c (aarch64_override_options_internal): |
| Set them. |
| * config/arm/arm.c (arm_option_override): Set them. |
| * config/i386/i386-options.c (ix86_option_override_internal): |
| Set them. |
| |
| 2021-09-13 Martin Liska <mliska@suse.cz> |
| H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101696 |
| * common/config/i386/cpuinfo.h (cpu_indicator_init): Add support |
| for x86-64 micro levels for __builtin_cpu_supports. |
| * common/config/i386/i386-cpuinfo.h (enum feature_priority): |
| Add priorities for the micro-arch levels. |
| (enum processor_features): Add new features. |
| * common/config/i386/i386-isas.h: Add micro-arch features. |
| * config/i386/i386-builtins.c (get_builtin_code_for_version): |
| Support the micro-arch levels by callsing |
| __builtin_cpu_supports. |
| * doc/extend.texi: Document that the levels are support by |
| __builtin_cpu_supports. |
| |
| 2021-09-13 Andrew Pinski <apinski@marvell.com> |
| |
| PR target/95969 |
| * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin_lane_check): |
| New function. |
| (aarch64_general_fold_builtin): Handle AARCH64_SIMD_BUILTIN_LANE_CHECK. |
| (aarch64_general_gimple_fold_builtin): Likewise. |
| |
| 2021-09-13 Andrew Pinski <apinski@marvell.com> |
| |
| * config.gcc: Add m32r-*-linux* and m32rle-*-linux* |
| to the Unsupported targets list. |
| Remove support for m32r-*-linux* and m32rle-*-linux*. |
| * config/m32r/linux.h: Removed. |
| * config/m32r/t-linux: Removed. |
| |
| 2021-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/102252 |
| * config/aarch64/aarch64.c (aarch64_classify_address): Don't allow |
| register index for SVE predicate modes. |
| |
| 2021-09-13 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c |
| (back_threader_profitability::profitable_path_p): Remove FSM |
| references. |
| (back_threader_registry::register_path): Same. |
| * tree-ssa-threadedge.c |
| (jump_threader::simplify_control_stmt_condition): Same. |
| * tree-ssa-threadupdate.c (jt_path_registry::jt_path_registry): |
| Add backedge_threads argument. |
| (fwd_jt_path_registry::fwd_jt_path_registry): Pass |
| backedge_threads argument. |
| (back_jt_path_registry::back_jt_path_registry): Same. |
| (dump_jump_thread_path): Adjust for FSM removal. |
| (back_jt_path_registry::rewire_first_differing_edge): Same. |
| (back_jt_path_registry::adjust_paths_after_duplication): Same. |
| (back_jt_path_registry::update_cfg): Same. |
| (jt_path_registry::register_jump_thread): Same. |
| * tree-ssa-threadupdate.h (enum jump_thread_edge_type): Remove |
| EDGE_FSM_THREAD. |
| (class back_jt_path_registry): Add backedge_threads to |
| constructor. |
| |
| 2021-09-13 Martin Liska <mliska@suse.cz> |
| |
| PR c++/101331 |
| * asan.h (sanitize_coverage_p): Handle when fn == NULL. |
| |
| 2021-09-13 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101935 |
| * config/i386/i386.h (TARGET_AVX256_MOVE_BY_PIECES): New. |
| (TARGET_AVX256_STORE_BY_PIECES): Likewise. |
| (MOVE_MAX): Check TARGET_AVX256_MOVE_BY_PIECES and |
| TARGET_AVX256_STORE_BY_PIECES instead of |
| TARGET_AVX256_SPLIT_UNALIGNED_LOAD and |
| TARGET_AVX256_SPLIT_UNALIGNED_STORE. |
| (STORE_MAX_PIECES): Check TARGET_AVX256_STORE_BY_PIECES instead |
| of TARGET_AVX256_SPLIT_UNALIGNED_STORE. |
| * config/i386/x86-tune.def (X86_TUNE_AVX256_MOVE_BY_PIECES): New. |
| (X86_TUNE_AVX256_STORE_BY_PIECES): Likewise. |
| |
| 2021-09-13 liuhongt <hongtao.liu@intel.com> |
| |
| PR bootstrap/102302 |
| * expmed.c (extract_bit_field_using_extv): Use |
| gen_lowpart_if_possible instead of gen_lowpart to avoid ICE. |
| |
| 2021-09-13 Aldy Hernandez <aldyh@redhat.com> |
| |
| * Makefile.in (OBJS): Add value-pointer-equiv.o. |
| * gimple-ssa-evrp.c (class ssa_equiv_stack): Move to |
| value-pointer-equiv.*. |
| (ssa_equiv_stack::ssa_equiv_stack): Same. |
| (ssa_equiv_stack::enter): Same. |
| (ssa_equiv_stack::leave): Same. |
| (ssa_equiv_stack::push_replacement): Same. |
| (ssa_equiv_stack::get_replacement): Same. |
| (is_pointer_ssa): Same. |
| (class pointer_equiv_analyzer): Same. |
| (pointer_equiv_analyzer::pointer_equiv_analyzer): Same. |
| (pointer_equiv_analyzer::~pointer_equiv_analyzer): Same. |
| (pointer_equiv_analyzer::set_global_equiv): Same. |
| (pointer_equiv_analyzer::set_cond_equiv): Same. |
| (pointer_equiv_analyzer::get_equiv): Same. |
| (pointer_equiv_analyzer::enter): Same. |
| (pointer_equiv_analyzer::leave): Same. |
| (pointer_equiv_analyzer::get_equiv_expr): Same. |
| (pta_valueize): Same. |
| (pointer_equiv_analyzer::visit_stmt): Same. |
| (pointer_equiv_analyzer::visit_edge): Same. |
| (hybrid_folder::value_of_expr): Same. |
| (hybrid_folder::value_on_edge): Same. |
| * value-pointer-equiv.cc: New file. |
| * value-pointer-equiv.h: New file. |
| |
| 2021-09-13 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/102125 |
| * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding |
| memcpy if the size is not more than MOVE_MAX * MOVE_RATIO. |
| |
| 2021-09-13 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/102125 |
| * config/arm/arm.md (movmisaligndi): New define_expand. |
| * config/arm/vec-common.md (movmisalign<mode>): Iterate over VDQ mode. |
| |
| 2021-09-13 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/102125 |
| * emit-rtl.c (gen_highpart): Use adjust_address to handle |
| MEM rather than calling simplify_gen_subreg. |
| |
| 2021-09-13 Jan-Benedict Glaw <jbglaw@ług-owl.de> |
| |
| * config/alpha/vms.h (INIT_CUMULATIVE_ARGS): Wrap multi-statment |
| define into a block. |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/darwin.h (DARWIN_PREFER_DWARF): Do not define. |
| * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Do not |
| change based on DARWIN_PREFER_DWARF not being defined. |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/lynx.h: Remove undef of PREFERRED_DEBUGGING_TYPE |
| to inherit from elfos.h |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config.gcc: Add cr16-*-* to the list of obsoleted targets. |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/avr/elf.h (PREFERRED_DEBUGGING_TYPE): Remove |
| override, pick up DWARF2_DEBUG define from elfos.h |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/rx/rx.h (PREFERRED_DEBUGGING_TYPE): Always define to |
| DWARF2_DEBUG. |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/alpha/vms.h (PREFERRED_DEBUGGING_TYPE): Define to |
| DWARF2_DEBUG. |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/cygming.h: Always default to DWARF2 debugging. |
| Do not define DBX_DEBUGGING_INFO, that's done via dbxcoff.h |
| already. |
| * doc/install.texi: Document binutils 2.16 as minimum |
| requirement for mingw. |
| |
| 2021-09-13 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (struct rs6000_cost_data): New members |
| nstmts, nloads and extra_ctor_cost. |
| (rs6000_density_test): Add load density related heuristics. Do |
| extra costing on vector construction statements if need. |
| (rs6000_init_cost): Init new members. |
| (rs6000_update_target_cost_per_stmt): New function. |
| (rs6000_add_stmt_cost): Factor vect_nonmem hunk out to function |
| rs6000_update_target_cost_per_stmt and call it. |
| |
| 2021-09-13 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (struct rs6000_cost_data): Remove typedef. |
| (rs6000_init_cost): Adjust. |
| |
| 2021-09-13 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386.md: (UNSPEC_COPYSIGN): Remove. |
| (UNSPEC_XORSIGN): Ditto. |
| |
| 2021-09-12 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * expr.c (convert_move): Preserve SUBREG_PROMOTED_VAR_P when |
| creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P |
| subreg. |
| |
| 2021-09-11 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (class back_threader_registry): Use |
| back_jt_path_registry. |
| * tree-ssa-threadedge.c (jump_threader::jump_threader): Use |
| fwd_jt_path_registry. |
| * tree-ssa-threadedge.h (class jump_threader): Same.. |
| * tree-ssa-threadupdate.c |
| (jump_thread_path_registry::jump_thread_path_registry): Rename... |
| (jt_path_registry::jt_path_registry): ...to this. |
| (jump_thread_path_registry::~jump_thread_path_registry): Rename... |
| (jt_path_registry::~jt_path_registry): ...this. |
| (fwd_jt_path_registry::fwd_jt_path_registry): New. |
| (fwd_jt_path_registry::~fwd_jt_path_registry): New. |
| (jump_thread_path_registry::allocate_thread_edge): Rename... |
| (jt_path_registry::allocate_thread_edge): ...to this. |
| (jump_thread_path_registry::allocate_thread_path): Rename... |
| (jt_path_registry::allocate_thread_path): ...to this. |
| (jump_thread_path_registry::lookup_redirection_data): Rename... |
| (fwd_jt_path_registry::lookup_redirection_data): ...to this. |
| (jump_thread_path_registry::thread_block_1): Rename... |
| (fwd_jt_path_registry::thread_block_1): ...to this. |
| (jump_thread_path_registry::thread_block): Rename... |
| (fwd_jt_path_registry::thread_block): ...to this. |
| (jt_path_registry::thread_through_loop_header): Rename... |
| (fwd_jt_path_registry::thread_through_loop_header): ...to this. |
| (jump_thread_path_registry::mark_threaded_blocks): Rename... |
| (fwd_jt_path_registry::mark_threaded_blocks): ...to this. |
| (jump_thread_path_registry::debug_path): Rename... |
| (jt_path_registry::debug_path): ...to this. |
| (jump_thread_path_registry::dump): Rename... |
| (jt_path_registry::debug): ...to this. |
| (jump_thread_path_registry::rewire_first_differing_edge): Rename... |
| (back_jt_path_registry::rewire_first_differing_edge): ...to this. |
| (jump_thread_path_registry::adjust_paths_after_duplication): Rename... |
| (back_jt_path_registry::adjust_paths_after_duplication): ...to this. |
| (jump_thread_path_registry::duplicate_thread_path): Rename... |
| (back_jt_path_registry::duplicate_thread_path): ...to this. Also, |
| drop ill-formed candidates. |
| (jump_thread_path_registry::remove_jump_threads_including): Rename... |
| (fwd_jt_path_registry::remove_jump_threads_including): ...to this. |
| (jt_path_registry::thread_through_all_blocks): New. |
| (back_jt_path_registry::update_cfg): New. |
| (fwd_jt_path_registry::update_cfg): New. |
| (jump_thread_path_registry::register_jump_thread): Rename... |
| (jt_path_registry::register_jump_thread): ...to this. |
| * tree-ssa-threadupdate.h (class jump_thread_path_registry): |
| Abstract to... |
| (class jt_path_registry): ...here. |
| (class fwd_jt_path_registry): New. |
| (class back_jt_path_registry): New. |
| |
| 2021-09-10 liuhongt <hongtao.liu@intel.com> |
| |
| Revert: |
| 2021-09-01 liuhongt <hongtao.liu@intel.com> |
| |
| * emit-rtl.c (validate_subreg): Get rid of all float-int |
| special cases. |
| |
| 2021-09-10 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-core.h (enum omp_memory_order): Add OMP_MEMORY_ORDER_MASK, |
| OMP_FAIL_MEMORY_ORDER_UNSPECIFIED, OMP_FAIL_MEMORY_ORDER_RELAXED, |
| OMP_FAIL_MEMORY_ORDER_ACQUIRE, OMP_FAIL_MEMORY_ORDER_RELEASE, |
| OMP_FAIL_MEMORY_ORDER_ACQ_REL, OMP_FAIL_MEMORY_ORDER_SEQ_CST and |
| OMP_FAIL_MEMORY_ORDER_MASK enumerators. |
| (OMP_FAIL_MEMORY_ORDER_SHIFT): Define. |
| * gimple-pretty-print.c (dump_gimple_omp_atomic_load, |
| dump_gimple_omp_atomic_store): Print [weak] for weak atomic |
| load/store. |
| * gimple.h (enum gf_mask): Change GF_OMP_ATOMIC_MEMORY_ORDER |
| to 6-bit mask, adjust GF_OMP_ATOMIC_NEED_VALUE value and add |
| GF_OMP_ATOMIC_WEAK. |
| (gimple_omp_atomic_weak_p, gimple_omp_atomic_set_weak): New inline |
| functions. |
| * tree.h (OMP_ATOMIC_WEAK): Define. |
| * tree-pretty-print.c (dump_omp_atomic_memory_order): Adjust for |
| fail memory order being encoded in the same enum and also print |
| fail clause if present. |
| (dump_generic_node): Print weak clause if OMP_ATOMIC_WEAK. |
| * gimplify.c (goa_stabilize_expr): Add target_expr and rhs arguments, |
| handle pre_p == NULL case as a test mode that only returns value |
| but doesn't change gimplify nor change anything otherwise, adjust |
| recursive calls, add MODIFY_EXPR, ADDR_EXPR, COND_EXPR, TARGET_EXPR |
| and CALL_EXPR handling, adjust COMPOUND_EXPR handling for |
| __builtin_clear_padding calls, for !rhs gimplify as lvalue rather |
| than rvalue. |
| (gimplify_omp_atomic): Adjust goa_stabilize_expr caller. Handle |
| COND_EXPR rhs. Set weak flag on gimple load/store for |
| OMP_ATOMIC_WEAK. |
| * omp-expand.c (omp_memory_order_to_fail_memmodel): New function. |
| (omp_memory_order_to_memmodel): Adjust for fail clause encoded |
| in the same enum. |
| (expand_omp_atomic_cas): New function. |
| (expand_omp_atomic_pipeline): Use omp_memory_order_to_fail_memmodel |
| function. |
| (expand_omp_atomic): Attempt to optimize atomic compare and exchange |
| using expand_omp_atomic_cas. |
| |
| 2021-09-10 Aldy Hernandez <aldyh@redhat.com> |
| Michael Matz <matz@suse.de> |
| |
| * tree-pass.h (PROP_loop_opts_done): New. |
| * gimple-range-path.cc (path_range_query::internal_range_of_expr): |
| Intersect with global range. |
| * tree-ssa-loop.c (tree_ssa_loop_done): Set PROP_loop_opts_done. |
| * tree-ssa-threadbackward.c |
| (back_threader_profitability::profitable_path_p): Disable |
| threading through latches until after loop optimizations have run. |
| |
| 2021-09-10 David Faust <david.faust@oracle.com> |
| |
| * doc/invoke.texi: Document BPF -mcpu, -mjmpext, -mjmp32 and -malu32 |
| options. |
| |
| 2021-09-10 David Faust <david.faust@oracle.com> |
| |
| * config/bpf/bpf-opts.h (bpf_isa_version): New enum. |
| * config/bpf/bpf-protos.h (bpf_expand_cbranch): New. |
| * config/bpf/bpf.c (bpf_option_override): Handle -mcpu option. |
| (bpf_expand_cbranch): New function. |
| * config/bpf/bpf.md (AM mode iterator): Conditionalize support for SI |
| mode. |
| (zero_extendsidi2): Only use mov32 instruction if it is available. |
| (SIM mode iterator): Conditionalize support for SI mode. |
| (JM mode iterator): New. |
| (cbranchdi4): Update name, use new JM iterator. Use bpf_expand_cbranch. |
| (*branch_on_di): Update name, use new JM iterator. |
| * config/bpf/bpf.opt: (mjmpext): New option. |
| (malu32): Likewise. |
| (mjmp32): Likewise. |
| (mcpu): Likewise. |
| (bpf_isa): New enum. |
| |
| 2021-09-10 David Faust <david.faust@oracle.com> |
| |
| * config/bpf/bpf.md (zero_extendhidi2): Add new output template |
| for register-to-register extensions. |
| (zero_extendqidi2): Likewise. |
| |
| 2021-09-10 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102273 |
| * internal-fn.c (expand_DEFERRED_INIT): Always expand non-SSA vars. |
| |
| 2021-09-10 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102269 |
| * gimplify.c (is_var_need_auto_init): Empty types do not need |
| initialization. |
| |
| 2021-09-10 Richard Biener <rguenther@suse.de> |
| |
| * configure.ac (--with-stabs): Remove. |
| * configure: Regenerate. |
| * doc/install.texi: Remove --with-stabs documentation. |
| |
| 2021-09-10 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: (_mm512_cmp_ph_mask): |
| New intrinsic. |
| (_mm512_mask_cmp_ph_mask): Likewise. |
| (_mm512_cmp_round_ph_mask): Likewise. |
| (_mm512_mask_cmp_round_ph_mask): Likewise. |
| (_mm_cmp_sh_mask): Likewise. |
| (_mm_mask_cmp_sh_mask): Likewise. |
| (_mm_cmp_round_sh_mask): Likewise. |
| (_mm_mask_cmp_round_sh_mask): Likewise. |
| (_mm_comieq_sh): Likewise. |
| (_mm_comilt_sh): Likewise. |
| (_mm_comile_sh): Likewise. |
| (_mm_comigt_sh): Likewise. |
| (_mm_comige_sh): Likewise. |
| (_mm_comineq_sh): Likewise. |
| (_mm_ucomieq_sh): Likewise. |
| (_mm_ucomilt_sh): Likewise. |
| (_mm_ucomile_sh): Likewise. |
| (_mm_ucomigt_sh): Likewise. |
| (_mm_ucomige_sh): Likewise. |
| (_mm_ucomineq_sh): Likewise. |
| (_mm_comi_round_sh): Likewise. |
| (_mm_comi_sh): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_cmp_ph_mask): New intrinsic. |
| (_mm_mask_cmp_ph_mask): Likewise. |
| (_mm256_cmp_ph_mask): Likewise. |
| (_mm256_mask_cmp_ph_mask): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| (ix86_expand_round_builtin): Ditto. |
| * config/i386/i386.md (ssevecmode): Add HF mode. |
| (MODEFH): New mode iterator. |
| * config/i386/sse.md |
| (V48H_AVX512VL): New mode iterator to support HF vector modes. |
| Ajdust corresponding description. |
| (ssecmpintprefix): New. |
| (VI12_AVX512VL): Adjust to support HF vector modes. |
| (cmp_imm_predicate): Likewise. |
| (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>): |
| Likewise. |
| (avx512f_vmcmp<mode>3<round_saeonly_name>): Likewise. |
| (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Likewise. |
| (<sse>_<unord>comi<round_saeonly_name>): Likewise. |
| |
| 2021-09-10 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: (_mm512_max_ph): New intrinsic. |
| (_mm512_mask_max_ph): Likewise. |
| (_mm512_maskz_max_ph): Likewise. |
| (_mm512_min_ph): Likewise. |
| (_mm512_mask_min_ph): Likewise. |
| (_mm512_maskz_min_ph): Likewise. |
| (_mm512_max_round_ph): Likewise. |
| (_mm512_mask_max_round_ph): Likewise. |
| (_mm512_maskz_max_round_ph): Likewise. |
| (_mm512_min_round_ph): Likewise. |
| (_mm512_mask_min_round_ph): Likewise. |
| (_mm512_maskz_min_round_ph): Likewise. |
| (_mm_max_sh): Likewise. |
| (_mm_mask_max_sh): Likewise. |
| (_mm_maskz_max_sh): Likewise. |
| (_mm_min_sh): Likewise. |
| (_mm_mask_min_sh): Likewise. |
| (_mm_maskz_min_sh): Likewise. |
| (_mm_max_round_sh): Likewise. |
| (_mm_mask_max_round_sh): Likewise. |
| (_mm_maskz_max_round_sh): Likewise. |
| (_mm_min_round_sh): Likewise. |
| (_mm_mask_min_round_sh): Likewise. |
| (_mm_maskz_min_round_sh): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_max_ph): New intrinsic. |
| (_mm256_max_ph): Likewise. |
| (_mm_mask_max_ph): Likewise. |
| (_mm256_mask_max_ph): Likewise. |
| (_mm_maskz_max_ph): Likewise. |
| (_mm256_maskz_max_ph): Likewise. |
| (_mm_min_ph): Likewise. |
| (_mm256_min_ph): Likewise. |
| (_mm_mask_min_ph): Likewise. |
| (_mm256_mask_min_ph): Likewise. |
| (_mm_maskz_min_ph): Likewise. |
| (_mm256_maskz_min_ph): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| * config/i386/sse.md |
| (<code><mode>3<mask_name><round_saeonly_name>): Adjust to |
| support HF vector modes. |
| (*<code><mode>3<mask_name><round_saeonly_name>): Likewise. |
| (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>): |
| Likewise. |
| (<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>): |
| Likewise. |
| * config/i386/subst.md (round_saeonly_mode512bit_condition): |
| Adjust for HF vector modes. |
| |
| 2021-09-10 Liu, Hongtao <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_add_sh): New intrinsic. |
| (_mm_mask_add_sh): Likewise. |
| (_mm_maskz_add_sh): Likewise. |
| (_mm_sub_sh): Likewise. |
| (_mm_mask_sub_sh): Likewise. |
| (_mm_maskz_sub_sh): Likewise. |
| (_mm_mul_sh): Likewise. |
| (_mm_mask_mul_sh): Likewise. |
| (_mm_maskz_mul_sh): Likewise. |
| (_mm_div_sh): Likewise. |
| (_mm_mask_div_sh): Likewise. |
| (_mm_maskz_div_sh): Likewise. |
| (_mm_add_round_sh): Likewise. |
| (_mm_mask_add_round_sh): Likewise. |
| (_mm_maskz_add_round_sh): Likewise. |
| (_mm_sub_round_sh): Likewise. |
| (_mm_mask_sub_round_sh): Likewise. |
| (_mm_maskz_sub_round_sh): Likewise. |
| (_mm_mul_round_sh): Likewise. |
| (_mm_mask_mul_round_sh): Likewise. |
| (_mm_maskz_mul_round_sh): Likewise. |
| (_mm_div_round_sh): Likewise. |
| (_mm_mask_div_round_sh): Likewise. |
| (_mm_maskz_div_round_sh): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_round_builtin): Handle new builtins. |
| * config/i386/sse.md (VF_128): Change description. |
| (<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>): |
| Adjust to support HF vector modes. |
| (<sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>): |
| Likewise. |
| |
| 2021-09-10 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386-expand.c |
| (ix86_avx256_split_vector_move_misalign): Handle V16HF mode. |
| * config/i386/i386.c |
| (ix86_preferred_simd_mode): Handle HF mode. |
| * config/i386/sse.md (V_256H): New mode iterator. |
| (avx_vextractf128<mode>): Use it. |
| (VEC_INIT_MODE): Align vector HFmode condition to vector |
| HImodes since there're no real HF instruction used. |
| (VEC_INIT_HALF_MODE): Ditto. |
| (VIHF): Ditto. |
| (VIHF_AVX512BW): Ditto. |
| (*vec_extracthf): Ditto. |
| (VEC_EXTRACT_MODE): Ditto. |
| |
| 2021-09-10 Richard Biener <rguenther@suse.de> |
| |
| PR target/102255 |
| * config/dbx.h: Remove. |
| * config/dbxcoff.h: Do not define PREFERRED_DEBUGGING_TYPE. |
| * config/lynx.h: Likewise. |
| |
| 2021-09-10 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_copysign): Expand |
| right into ANDNOT + AND + IOR, using paradoxical subregs. |
| (ix86_split_copysign_const): Remove. |
| (ix86_split_copysign_var): Ditto. |
| * config/i386/i386-protos.h (ix86_split_copysign_const): Dotto. |
| (ix86_split_copysign_var): Ditto. |
| * config/i386/i386.md (@copysign<mode>3_const): Ditto. |
| (@copysign<mode>3_var): Ditto. |
| |
| 2021-09-09 qing zhao <qing.zhao@oracle.com> |
| |
| * builtins.c (expand_builtin_memset): Make external visible. |
| * builtins.h (expand_builtin_memset): Declare extern. |
| * common.opt (ftrivial-auto-var-init=): New option. |
| * doc/extend.texi: Document the uninitialized attribute. |
| * doc/invoke.texi: Document -ftrivial-auto-var-init. |
| * flag-types.h (enum auto_init_type): New enumerated type |
| auto_init_type. |
| * gimple-fold.c (clear_padding_type): Add one new parameter. |
| (clear_padding_union): Likewise. |
| (clear_padding_emit_loop): Likewise. |
| (clear_type_padding_in_mask): Likewise. |
| (gimple_fold_builtin_clear_padding): Handle this new parameter. |
| * gimplify.c (gimple_add_init_for_auto_var): New function. |
| (gimple_add_padding_init_for_auto_var): New function. |
| (is_var_need_auto_init): New function. |
| (gimplify_decl_expr): Add initialization to automatic variables per |
| users' requests. |
| (gimplify_call_expr): Add one new parameter for call to |
| __builtin_clear_padding. |
| (gimplify_init_constructor): Add padding initialization in the end. |
| * internal-fn.c (INIT_PATTERN_VALUE): New macro. |
| (expand_DEFERRED_INIT): New function. |
| * internal-fn.def (DEFERRED_INIT): New internal function. |
| * tree-cfg.c (verify_gimple_call): Verify calls to .DEFERRED_INIT. |
| * tree-sra.c (generate_subtree_deferred_init): New function. |
| (scan_function): Avoid setting cannot_scalarize_away_bitmap for |
| calls to .DEFERRED_INIT. |
| (sra_modify_deferred_init): New function. |
| (sra_modify_function_body): Handle calls to DEFERRED_INIT specially. |
| * tree-ssa-structalias.c (find_func_aliases_for_call): Likewise. |
| * tree-ssa-uninit.c (warn_uninit): Handle calls to DEFERRED_INIT |
| specially. |
| (check_defs): Likewise. |
| (warn_uninitialized_vars): Likewise. |
| * tree-ssa.c (ssa_undefined_value_p): Likewise. |
| * tree.c (build_common_builtin_nodes): Build tree node for |
| BUILT_IN_CLEAR_PADDING when needed. |
| |
| 2021-09-09 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-im.c (fill_always_executed_in_1): Walk |
| into all subloops. |
| |
| 2021-09-09 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-im.c (fill_always_executed_in_1): Integrate |
| DOM walk from get_loop_body_in_dom_order using a worklist |
| approach. |
| |
| 2021-09-09 liuhongt <hongtao.liu@intel.com> |
| |
| * config.gcc: Add avx512fp16vlintrin.h. |
| * config/i386/avx512fp16intrin.h: (_mm512_add_ph): New intrinsic. |
| (_mm512_mask_add_ph): Likewise. |
| (_mm512_maskz_add_ph): Likewise. |
| (_mm512_sub_ph): Likewise. |
| (_mm512_mask_sub_ph): Likewise. |
| (_mm512_maskz_sub_ph): Likewise. |
| (_mm512_mul_ph): Likewise. |
| (_mm512_mask_mul_ph): Likewise. |
| (_mm512_maskz_mul_ph): Likewise. |
| (_mm512_div_ph): Likewise. |
| (_mm512_mask_div_ph): Likewise. |
| (_mm512_maskz_div_ph): Likewise. |
| (_mm512_add_round_ph): Likewise. |
| (_mm512_mask_add_round_ph): Likewise. |
| (_mm512_maskz_add_round_ph): Likewise. |
| (_mm512_sub_round_ph): Likewise. |
| (_mm512_mask_sub_round_ph): Likewise. |
| (_mm512_maskz_sub_round_ph): Likewise. |
| (_mm512_mul_round_ph): Likewise. |
| (_mm512_mask_mul_round_ph): Likewise. |
| (_mm512_maskz_mul_round_ph): Likewise. |
| (_mm512_div_round_ph): Likewise. |
| (_mm512_mask_div_round_ph): Likewise. |
| (_mm512_maskz_div_round_ph): Likewise. |
| * config/i386/avx512fp16vlintrin.h: New header. |
| * config/i386/i386-builtin-types.def (V16HF, V8HF, V32HF): |
| Add new builtin types. |
| * config/i386/i386-builtin.def: Add corresponding builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| (ix86_expand_round_builtin): Likewise. |
| * config/i386/immintrin.h: Include avx512fp16vlintrin.h |
| * config/i386/sse.md (VFH): New mode_iterator. |
| (VF2H): Likewise. |
| (avx512fmaskmode): Add HF vector modes. |
| (avx512fmaskhalfmode): Likewise. |
| (<plusminus_insn><mode>3<mask_name><round_name>): Adjust to for |
| HF vector modes. |
| (*<plusminus_insn><mode>3<mask_name><round_name>): Likewise. |
| (mul<mode>3<mask_name><round_name>): Likewise. |
| (*mul<mode>3<mask_name><round_name>): Likewise. |
| (div<mode>3): Likewise. |
| (<sse>_div<mode>3<mask_name><round_name>): Likewise. |
| * config/i386/subst.md (SUBST_V): Add HF vector modes. |
| (SUBST_A): Likewise. |
| (round_mode512bit_condition): Adjust for V32HFmode. |
| |
| 2021-09-09 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101059 |
| * config/i386/sse.md (reduc_plus_scal_<mode>): Split to .. |
| (reduc_plus_scal_v4sf): .. this, New define_expand. |
| (reduc_plus_scal_v2df): .. and this, New define_expand. |
| |
| 2021-09-09 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/91103 |
| * config/i386/sse.md (*vec_extract<mode><ssescalarmodelower>_valign): |
| New define_insn. |
| |
| 2021-09-08 Jonathan Wakely <jwakely@redhat.com> |
| |
| PR c++/60318 |
| * doc/trouble.texi (Copy Assignment): Fix description of |
| behaviour and fix code in example. |
| |
| 2021-09-08 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/102107 |
| * config/rs6000/rs6000-logue.c (rs6000_emit_epilogue): For ELFv2 use |
| r11 instead of r12 for restoring CR. |
| |
| 2021-09-08 Jakub Jelinek <jakub@redhat.com> |
| liuhongt <hongtao.liu@intel.com> |
| |
| PR target/89984 |
| * config/i386/i386.md (@xorsign<mode>3_1): Remove. |
| * config/i386/i386-expand.c (ix86_expand_xorsign): Expand right away |
| into AND with mask and XOR, using paradoxical subregs. |
| (ix86_split_xorsign): Remove. |
| * config/i386/i386-protos.h (ix86_split_xorsign): Remove. |
| |
| 2021-09-08 Di Zhao <dizhao@os.amperecomputing.com> |
| |
| * tree-ssa-sccvn.c (vn_nary_op_insert_into): fix result compare |
| |
| 2021-09-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/102224 |
| * config/i386/i386.md (xorsign<mode>3): If operands[1] is equal to |
| operands[2], emit abs<mode>2 instead. |
| (@xorsign<mode>3_1): Add early-clobbers for output operand, enable |
| first alternative even for avx, add another alternative with |
| =&Yv <- 0, Yv, Yvm constraints. |
| * config/i386/i386-expand.c (ix86_split_xorsign): If op0 is equal |
| to op1, emit vpandn instead. |
| |
| 2021-09-08 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_set_ph): New intrinsic. |
| (_mm256_set_ph): Likewise. |
| (_mm512_set_ph): Likewise. |
| (_mm_setr_ph): Likewise. |
| (_mm256_setr_ph): Likewise. |
| (_mm512_setr_ph): Likewise. |
| (_mm_set1_ph): Likewise. |
| (_mm256_set1_ph): Likewise. |
| (_mm512_set1_ph): Likewise. |
| (_mm_setzero_ph): Likewise. |
| (_mm256_setzero_ph): Likewise. |
| (_mm512_setzero_ph): Likewise. |
| (_mm_set_sh): Likewise. |
| (_mm_load_sh): Likewise. |
| (_mm_store_sh): Likewise. |
| * config/i386/i386-builtin-types.def (V8HF): New type. |
| (DEF_FUNCTION_TYPE (V8HF, V8HI)): New builtin function type |
| * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): |
| Support vector HFmodes. |
| (ix86_expand_vector_init_one_nonzero): Likewise. |
| (ix86_expand_vector_init_one_var): Likewise. |
| (ix86_expand_vector_init_interleave): Likewise. |
| (ix86_expand_vector_init_general): Likewise. |
| (ix86_expand_vector_set): Likewise. |
| (ix86_expand_vector_extract): Likewise. |
| (ix86_expand_vector_init_concat): Likewise. |
| (ix86_expand_sse_movcc): Handle vector HFmodes. |
| (ix86_expand_vector_set_var): Ditto. |
| * config/i386/i386-modes.def: Add HF vector modes in comment. |
| * config/i386/i386.c (classify_argument): Add HF vector modes. |
| (ix86_hard_regno_mode_ok): Allow HF vector modes for AVX512FP16. |
| (ix86_vector_mode_supported_p): Likewise. |
| (ix86_set_reg_reg_cost): Handle vector HFmode. |
| (ix86_get_ssemov): Handle vector HFmode. |
| (function_arg_advance_64): Pass unamed V16HFmode and V32HFmode |
| by stack. |
| (function_arg_advance_32): Pass V8HF/V16HF/V32HF by sse reg for 32bit |
| mode. |
| (function_arg_advance_32): Ditto. |
| * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): New. |
| (VALID_AVX256_REG_OR_OI_MODE): Rename to .. |
| (VALID_AVX256_REG_OR_OI_VHF_MODE): .. this, and add V16HF. |
| (VALID_SSE2_REG_VHF_MODE): New. |
| (VALID_AVX512VL_128_REG_MODE): Add V8HF and TImode. |
| (SSE_REG_MODE_P): Add vector HFmode. |
| * config/i386/i386.md (mode): Add HF vector modes. |
| (MODE_SIZE): Likewise. |
| (ssemodesuffix): Add ph suffix for HF vector modes. |
| * config/i386/sse.md (VFH_128): New mode iterator. |
| (VMOVE): Adjust for HF vector modes. |
| (V): Likewise. |
| (V_256_512): Likewise. |
| (avx512): Likewise. |
| (avx512fmaskmode): Likewise. |
| (shuffletype): Likewise. |
| (sseinsnmode): Likewise. |
| (ssedoublevecmode): Likewise. |
| (ssehalfvecmode): Likewise. |
| (ssehalfvecmodelower): Likewise. |
| (ssePScmode): Likewise. |
| (ssescalarmode): Likewise. |
| (ssescalarmodelower): Likewise. |
| (sseintprefix): Likewise. |
| (i128): Likewise. |
| (bcstscalarsuff): Likewise. |
| (xtg_mode): Likewise. |
| (VI12HF_AVX512VL): New mode_iterator. |
| (VF_AVX512FP16): Likewise. |
| (VIHF): Likewise. |
| (VIHF_256): Likewise. |
| (VIHF_AVX512BW): Likewise. |
| (V16_256): Likewise. |
| (V32_512): Likewise. |
| (sseintmodesuffix): New mode_attr. |
| (sse): Add scalar and vector HFmodes. |
| (ssescalarmode): Add vector HFmode mapping. |
| (ssescalarmodesuffix): Add sh suffix for HFmode. |
| (*<sse>_vm<insn><mode>3): Use VFH_128. |
| (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise. |
| (*ieee_<ieee_maxmin><mode>3): Likewise. |
| (<avx512>_blendm<mode>): New define_insn. |
| (vec_setv8hf): New define_expand. |
| (vec_set<mode>_0): New define_insn for HF vector set. |
| (*avx512fp16_movsh): Likewise. |
| (avx512fp16_movsh): Likewise. |
| (vec_extract_lo_v32hi): Rename to ... |
| (vec_extract_lo_<mode>): ... this, and adjust to allow HF |
| vector modes. |
| (vec_extract_hi_v32hi): Likewise. |
| (vec_extract_hi_<mode>): Likewise. |
| (vec_extract_lo_v16hi): Likewise. |
| (vec_extract_lo_<mode>): Likewise. |
| (vec_extract_hi_v16hi): Likewise. |
| (vec_extract_hi_<mode>): Likewise. |
| (vec_set_hi_v16hi): Likewise. |
| (vec_set_hi_<mode>): Likewise. |
| (vec_set_lo_v16hi): Likewise. |
| (vec_set_lo_<mode>): Likewise. |
| (*vec_extract<mode>_0): New define_insn_and_split for HF |
| vector extract. |
| (*vec_extracthf): New define_insn. |
| (VEC_EXTRACT_MODE): Add HF vector modes. |
| (PINSR_MODE): Add V8HF. |
| (sse2p4_1): Likewise. |
| (pinsr_evex_isa): Likewise. |
| (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support |
| insert for V8HFmode. |
| (pbroadcast_evex_isa): Add HF vector modes. |
| (AVX2_VEC_DUP_MODE): Likewise. |
| (VEC_INIT_MODE): Likewise. |
| (VEC_INIT_HALF_MODE): Likewise. |
| (avx2_pbroadcast<mode>): Adjust to support HF vector mode |
| broadcast. |
| (avx2_pbroadcast<mode>_1): Likewise. |
| (<avx512>_vec_dup<mode>_1): Likewise. |
| (<avx512>_vec_dup<mode><mask_name>): Likewise. |
| (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): |
| Likewise. |
| |
| 2021-09-08 Guo, Xuepeng <xuepeng.guo@intel.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| Liu Hongtao <hongtao.liu@intel.com> |
| Wang Hongyu <hongyu.wang@intel.com> |
| Xu Dianhong <dianhong.xu@intel.com> |
| |
| * common/config/i386/cpuinfo.h (get_available_features): |
| Detect FEATURE_AVX512FP16. |
| * common/config/i386/i386-common.c |
| (OPTION_MASK_ISA_AVX512FP16_SET, |
| OPTION_MASK_ISA_AVX512FP16_UNSET, |
| OPTION_MASK_ISA2_AVX512FP16_SET, |
| OPTION_MASK_ISA2_AVX512FP16_UNSET): New. |
| (OPTION_MASK_ISA2_AVX512BW_UNSET, |
| OPTION_MASK_ISA2_AVX512BF16_UNSET): Add AVX512FP16. |
| (ix86_handle_option): Handle -mavx512fp16. |
| * common/config/i386/i386-cpuinfo.h (enum processor_features): |
| Add FEATURE_AVX512FP16. |
| * common/config/i386/i386-isas.h: Add entry for AVX512FP16. |
| * config.gcc: Add avx512fp16intrin.h. |
| * config/i386/avx512fp16intrin.h: New intrinsic header. |
| * config/i386/cpuid.h: Add bit_AVX512FP16. |
| * config/i386/i386-builtin-types.def: (FLOAT16): New primitive type. |
| * config/i386/i386-builtins.c: Support _Float16 type for i386 |
| backend. |
| (ix86_register_float16_builtin_type): New function. |
| (ix86_float16_type_node): New. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define |
| __AVX512FP16__. |
| * config/i386/i386-expand.c (ix86_expand_branch): Support |
| HFmode. |
| (ix86_prepare_fp_compare_args): Adjust TARGET_SSE_MATH && |
| SSE_FLOAT_MODE_P to SSE_FLOAT_MODE_SSEMATH_OR_HF_P. |
| (ix86_expand_fp_movcc): Ditto. |
| * config/i386/i386-isa.def: Add PTA define for AVX512FP16. |
| * config/i386/i386-options.c (isa2_opts): Add -mavx512fp16. |
| (ix86_valid_target_attribute_inner_p): Add avx512fp16 attribute. |
| * config/i386/i386.c (ix86_get_ssemov): Use |
| vmovdqu16/vmovw/vmovsh for HFmode/HImode scalar or vector. |
| (ix86_get_excess_precision): Use |
| FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 when TARGET_AVX512FP16 |
| existed. |
| (sse_store_index): Use SFmode cost for HFmode cost. |
| (inline_memory_move_cost): Add HFmode, and perfer SSE cost over |
| GPR cost for HFmode. |
| (ix86_hard_regno_mode_ok): Allow HImode in sse register. |
| (ix86_mangle_type): Add manlging for _Float16 type. |
| (inline_secondary_memory_needed): No memory is needed for |
| 16bit movement between gpr and sse reg under |
| TARGET_AVX512FP16. |
| (ix86_multiplication_cost): Adjust TARGET_SSE_MATH && |
| SSE_FLOAT_MODE_P to SSE_FLOAT_MODE_SSEMATH_OR_HF_P. |
| (ix86_division_cost): Ditto. |
| (ix86_rtx_costs): Ditto. |
| (ix86_add_stmt_cost): Ditto. |
| (ix86_optab_supported_p): Ditto. |
| * config/i386/i386.h (VALID_AVX512F_SCALAR_MODE): Add HFmode. |
| (SSE_FLOAT_MODE_SSEMATH_OR_HF_P): Add HFmode. |
| (PTA_SAPPHIRERAPIDS): Add PTA_AVX512FP16. |
| * config/i386/i386.md (mode): Add HFmode. |
| (MODE_SIZE): Add HFmode. |
| (isa): Add avx512fp16. |
| (enabled): Handle avx512fp16. |
| (ssemodesuffix): Add sh suffix for HFmode. |
| (comm): Add mult, div. |
| (plusminusmultdiv): New code iterator. |
| (insn): Add mult, div. |
| (*movhf_internal): Adjust for avx512fp16 instruction. |
| (*movhi_internal): Ditto. |
| (*cmpi<unord>hf): New define_insn for HFmode. |
| (*ieee_s<ieee_maxmin>hf3): Likewise. |
| (extendhf<mode>2): Likewise. |
| (trunc<mode>hf2): Likewise. |
| (float<floatunssuffix><mode>hf2): Likewise. |
| (*<insn>hf): Likewise. |
| (cbranchhf4): New expander. |
| (movhfcc): Likewise. |
| (<insn>hf3): Likewise. |
| (mulhf3): Likewise. |
| (divhf3): Likewise. |
| * config/i386/i386.opt: Add mavx512fp16. |
| * config/i386/immintrin.h: Include avx512fp16intrin.h. |
| * doc/invoke.texi: Add mavx512fp16. |
| * doc/extend.texi: Add avx512fp16 Usage Notes. |
| |
| 2021-09-08 liuhongt <hongtao.liu@intel.com> |
| |
| * common.opt: Support -fexcess-precision=16. |
| * config/aarch64/aarch64.c (aarch64_excess_precision): Return |
| FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 when |
| EXCESS_PRECISION_TYPE_FLOAT16. |
| * config/arm/arm.c (arm_excess_precision): Ditto. |
| * config/i386/i386.c (ix86_get_excess_precision): Ditto. |
| * config/m68k/m68k.c (m68k_excess_precision): Issue an error |
| when EXCESS_PRECISION_TYPE_FLOAT16. |
| * config/s390/s390.c (s390_excess_precision): Ditto. |
| * coretypes.h (enum excess_precision_type): Add |
| EXCESS_PRECISION_TYPE_FLOAT16. |
| * doc/tm.texi (TARGET_C_EXCESS_PRECISION): Update documents. |
| * doc/tm.texi.in (TARGET_C_EXCESS_PRECISION): Ditto. |
| * doc/extend.texi (Half-Precision): Document |
| -fexcess-precision=16. |
| * flag-types.h (enum excess_precision): Add |
| EXCESS_PRECISION_FLOAT16. |
| * target.def (excess_precision): Update document. |
| * tree.c (excess_precision_type): Set excess_precision_type to |
| EXCESS_PRECISION_FLOAT16 when -fexcess-precision=16. |
| |
| 2021-09-08 liuhongt <hongtao.liu@intel.com> |
| |
| * doc/extend.texi: (@node Floating Types): Adjust the wording. |
| (@node Half-Precision): Ditto. |
| |
| 2021-09-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| PR target/102115 |
| * config/xtensa/xtensa.c (xtensa_emit_move_sequence): Add |
| 'CONST_INT_P (src)' to the condition of the block that tries to |
| eliminate literal when loading integer contant. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * doc/extend.texi (BPF Type Attributes) New node. |
| Document new preserve_access_index attribute. |
| Document new preserve_access_index builtin. |
| * doc/invoke.texi: Document -mco-re and -mno-co-re options. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * config/bpf/bpf.c: Adjust includes. |
| (bpf_handle_preserve_access_index_attribute): New function. |
| (bpf_attribute_table): Use it here. |
| (bpf_builtins): Add BPF_BUILTIN_PRESERVE_ACCESS_INDEX. |
| (bpf_option_override): Handle "-mco-re" option. |
| (bpf_asm_init_sections): New. |
| (TARGET_ASM_INIT_SECTIONS): Redefine. |
| (bpf_file_end): New. |
| (TARGET_ASM_FILE_END): Redefine. |
| (bpf_init_builtins): Add "__builtin_preserve_access_index". |
| (bpf_core_compute, bpf_core_get_index): New. |
| (is_attr_preserve_access): New. |
| (bpf_expand_builtin): Handle new builtins. |
| (bpf_core_newdecl, bpf_core_is_maybe_aggregate_access): New. |
| (bpf_core_walk): New. |
| (bpf_resolve_overloaded_builtin): New. |
| (TARGET_RESOLVE_OVERLOADED_BUILTIN): Redefine. |
| (handle_attr): New. |
| (pass_bpf_core_attr): New RTL pass. |
| * config/bpf/bpf-passes.def: New file. |
| * config/bpf/bpf-protos.h (make_pass_bpf_core_attr): New. |
| * config/bpf/coreout.c: New file. |
| * config/bpf/coreout.h: Likewise. |
| * config/bpf/t-bpf (TM_H): Add $(srcdir)/config/bpf/coreout.h. |
| (coreout.o): New rule. |
| (PASSES_EXTRA): Add $(srcdir)/config/bpf/bpf-passes.def. |
| * config.gcc (bpf): Add coreout.h to extra_headers. |
| Add coreout.o to extra_objs. |
| Add $(srcdir)/config/bpf/coreout.c to target_gtfiles. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * btfout.c (get_btf_id): Function is no longer static. |
| * ctfc.h: Expose it here. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * ctfc.c (ctf_lookup_tree_type): New function. |
| * ctfc.h: Likewise. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * ctfc.c (ctf_dtd_lookup): Function is no longer static. |
| * ctfc.h: Analogous change. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * dwarf2out.c (lookup_type_die): Function is no longer static. |
| * dwarf2out.h: Expose it here. |
| |
| 2021-09-07 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * dwarf2ctf.c (ctf_debug_finalize): Make it static. |
| (ctf_debug_early_finish): New definition. |
| (ctf_debug_finish): Likewise. |
| * dwarf2ctf.h (ctf_debug_finalize): Remove declaration. |
| (ctf_debug_early_finish): New declaration. |
| (ctf_debug_finish): Likewise. |
| * dwarf2out.c (dwarf2out_finish): Invoke ctf_debug_finish. |
| (dwarf2out_early_finish): Invoke ctf_debug_early_finish. |
| |
| 2021-09-07 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * config/bpf/bpf.c (bpf_option_override): For BPF backend, disable LTO |
| support when compiling for CO-RE. |
| * config/bpf/bpf.opt: Add new command line option -mco-re. |
| |
| 2021-09-07 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * flag-types.h (enum debug_info_type): Add new enum |
| DINFO_TYPE_BTF_WITH_CORE. |
| (BTF_WITH_CORE_DEBUG): New bitmask. |
| * flags.h (btf_with_core_debuginfo_p): New declaration. |
| * opts.c (btf_with_core_debuginfo_p): New definition. |
| |
| 2021-09-07 Jason Merrill <jason@redhat.com> |
| |
| * tree.h (error_operand_p): Change to inline function. |
| |
| 2021-09-07 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadedge.c (forwarder_block_p): Rename to... |
| (empty_block_with_phis_p): ...this. |
| (potentially_threadable_block): Same. |
| (jump_threader::thread_through_normal_block): Same. |
| |
| 2021-09-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR debug/101947 |
| * dwarf2out.c (mark_base_types): New overloaded function. |
| (dwarf2out_early_finish): Invoke it on the COMDAT type list as well |
| as the compilation unit, and call move_marked_base_types afterward. |
| |
| 2021-09-07 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/85819 |
| * config/i386/i386-expand.c (ix86_expand_convert_uns_sisf_sse): |
| Enable FMA. |
| (ix86_expand_vector_convert_uns_vsivsf): Likewise. |
| |
| 2021-09-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102226 |
| * tree-vect-loop.c (vect_transform_cycle_phi): Record |
| the converted value for the epilogue PHI use. |
| |
| 2021-09-07 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/80223 |
| * ipa-inline.c (can_inline_edge_p): Similarly to sanitizer |
| options, do not inline when no_profile_instrument_function |
| attributes are different in early inliner. It's fine to inline |
| it after PGO instrumentation. |
| |
| 2021-09-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101555 |
| * tree-ssa-pre.c (translate_vuse_through_block): Do not |
| perform an alias walk to determine the validity of the |
| mem at the start of the block which is already guaranteed |
| by means of prune_clobbered_mems. |
| (phi_translate_1): Pass edge to translate_vuse_through_block. |
| |
| 2021-09-07 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| PR target/97142 |
| * config/rs6000/rs6000.md (fmod<mode>3): New define_expand. |
| (remainder<mode>3): Likewise. |
| |
| 2021-09-07 YunQiang Su <yunqiang.su@cipunited.com> |
| |
| * config/mips/mips.c (mips_file_start): add .module for |
| arch and ase. |
| |
| 2021-09-06 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * wide-int.cc (wi::clz): Reorder tests to ensure the result |
| is zero for all negative values. |
| |
| 2021-09-06 Tobias Burnus <tobias@codesourcery.com> |
| |
| * doc/invoke.texi (-foffload-options): Fix @opindex. |
| |
| 2021-09-06 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/89984 |
| * config/i386/i386-expand.c (ix86_split_xorsign): Use operands[2]. |
| * config/i386/i386.md (@xorsign<mode>3_1): Add non-destructive |
| source alternative for AVX. |
| |
| 2021-09-06 liuhongt <hongtao.liu@intel.com> |
| |
| PR middle-end/102182 |
| * optabs.c (expand_fix): Add from1 to avoid from being |
| overwritten. |
| |
| 2021-09-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (modified_type_die): Deal with all array types earlier |
| and use local variable consistently throughout the function. |
| |
| 2021-09-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/102207 |
| * match.pd: Don't demote operands of IFN_{ADD,SUB,MUL}_OVERFLOW if they |
| were promoted from signed to wider unsigned type. |
| |
| 2021-09-06 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/63184 |
| * match.pd: Add simplification of pointer_diff of two pointer_plus |
| with addr_expr in the first operand of each pointer_plus. |
| Add simplificatoin of ne/eq of two pointer_plus with addr_expr |
| in the first operand of each pointer_plus. |
| |
| 2021-09-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102176 |
| * tree-vect-slp.c (vect_slp_gather_vectorized_scalar_stmts): |
| New function. |
| (vect_bb_slp_scalar_cost): Use the computed set of |
| vectorized scalar stmts instead of relying on the out-of-date |
| and not accurate PURE_SLP_STMT. |
| (vect_bb_vectorization_profitable_p): Compute the set |
| of vectorized scalar stmts. |
| |
| 2021-09-05 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::range_of_stmt): Remove |
| GIMPLE_COND special casing. |
| (path_range_query::range_defined_in_block): Use range_of_stmt |
| instead of calling fold_range directly. |
| |
| 2021-09-05 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::range_of_expr): Set |
| m_undefined_path when appropriate. |
| (path_range_query::internal_range_of_expr): Copy from range_of_expr. |
| (path_range_query::unreachable_path_p): New. |
| (path_range_query::precompute_ranges): Set m_undefined_path. |
| * gimple-range-path.h (path_range_query::unreachable_path_p): New. |
| (path_range_query::internal_range_of_expr): New. |
| * tree-ssa-threadbackward.c (back_threader::find_taken_edge_cond): |
| Use unreachable_path_p. |
| |
| 2021-09-05 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (back_threader::maybe_register_path): |
| Remove argument and call find_taken_edge. |
| (back_threader::resolve_phi): Do not calculate taken edge before |
| calling maybe_register_path. |
| (back_threader::find_paths_to_names): Same. |
| |
| 2021-09-05 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config/h8300/h8300.md (QHSI2 mode iterator): New mode iterator. |
| * config/h8300/testcompare.md (store_c): Update name, use new |
| QHSI2 iterator. |
| (store_neg_c, store_shifted_c): New patterns. |
| |
| 2021-09-03 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/102107 |
| * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): On ELFv2 use r11 |
| instead of r12 for CR save, in all cases. |
| |
| 2021-09-03 Andrew Pinski <apinski@marvell.com> |
| |
| * config/aarch64/aarch64-sve-builtins.cc (register_vector_type): |
| Handle error_mark_node as the type of the type_decl. |
| |
| 2021-09-03 Andrew Pinski <apinski@marvell.com> |
| |
| * config/aarch64/aarch64-builtins.c (struct aarch64_simd_type_info): |
| Mark with GTY. |
| (aarch64_simd_types): Likewise. |
| (aarch64_simd_intOI_type_node): Likewise. |
| (aarch64_simd_intCI_type_node): Likewise. |
| (aarch64_simd_intXI_type_node): Likewise. |
| * config/aarch64/aarch64.h (aarch64_fp16_type_node): Likewise. |
| (aarch64_fp16_ptr_type_node): Likewise. |
| (aarch64_bf16_type_node): Likewise. |
| (aarch64_bf16_ptr_type_node): Likewise. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * range-op.cc (operator_minus::op1_op2_relation_effect): Abstract |
| out to... |
| (minus_op1_op2_relation_effect): ...here. |
| (class operator_pointer_diff): New. |
| (operator_pointer_diff::op1_op2_relation_effect): Call |
| minus_op1_op2_relation_effect. |
| (integral_table::integral_table): Add entry for POINTER_DIFF_EXPR. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (back_threader::thread_through_all_blocks): |
| Add may_peel_loop_headers. |
| (back_threader_registry::thread_through_all_blocks): Same. |
| (try_thread_blocks): Pass may_peel_loop_headers argument. |
| (pass_early_thread_jumps::execute): Same. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadedge.c (has_phis_p): New. |
| (forwarder_block_p): New. |
| (potentially_threadable_block): Call forwarder_block_p. |
| (jump_threader::thread_around_empty_blocks): Call has_phis_p. |
| (jump_threader::thread_through_normal_block): Call |
| forwarder_block_p. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (back_threader::dump): New. |
| (back_threader::debug): New. |
| (back_threader_profitability::profitable_path_p): Dump blocks |
| even if we are bailing early. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadupdate.c (cancel_thread): New. |
| (jump_thread_path_registry::thread_block_1): Use cancel_thread. |
| (jump_thread_path_registry::mark_threaded_blocks): Same. |
| (jump_thread_path_registry::register_jump_thread): Same. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadedge.c (jt_state::push): Only call methods for |
| which objects are available. |
| (jt_state::pop): Same. |
| (jt_state::register_equiv): Same. |
| (jt_state::register_equivs_on_edge): Same. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadedge.c (jump_threader::thread_across_edge): |
| Move pop until after a thread is registered. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadupdate.c (debug): New. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-trace.cc (push_dump_file::push_dump_file): New. |
| (push_dump_file::~push_dump_file): New. |
| (dump_ranger): Change dump_file temporarily while dumping |
| ranger. |
| * gimple-range-trace.h (class push_dump_file): New. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-trace.cc (debug_seed_ranger): Remove static. |
| (dump_ranger): Dump function name. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::range_defined_in_block): |
| Adjust for non-null. |
| (path_range_query::adjust_for_non_null_uses): New. |
| (path_range_query::precompute_ranges): Call |
| adjust_for_non_null_uses. |
| * gimple-range-path.h: Add m_non_null and |
| adjust_for_non_null_uses. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::dump): Dump path |
| length. |
| (path_range_query::precompute_ranges): Dump entire path. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * value-relation.cc (relation_oracle::debug): New. |
| * value-relation.h (relation_oracle::debug): New. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-loop-ch.c: Remove unnecessary include file. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::postfold_gcond_edges): |
| Skip statements with no defining BB. |
| * gimple-range-path.cc (path_range_query::range_defined_in_block): |
| Do not get confused by statements with no defining BB. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-fold.cc (adjust_imagpart_expr): Move from |
| gimple_range_adjustment. Add support for constants. |
| (adjust_realpart_expr): New. |
| (gimple_range_adjustment): Move IMAGPART_EXPR code to |
| adjust_imagpart_expr. |
| * range-op.cc (integral_table::integral_table): Add entry for |
| REALPART_CST. |
| |
| 2021-09-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-expand.c (expand_omp_atomic_pipeline): Use |
| IFN_ATOMIC_COMPARE_EXCHANGE instead of |
| BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_? so that memory order |
| can be provided. |
| |
| 2021-09-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/102024 |
| * tree.h (DECL_FIELD_ABI_IGNORED): Changed into rvalue only macro |
| that is false if DECL_BIT_FIELD. |
| (SET_DECL_FIELD_ABI_IGNORED, DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD, |
| SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD): Define. |
| * tree-streamer-out.c (pack_ts_decl_common_value_fields): For |
| DECL_BIT_FIELD stream DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD instead |
| of DECL_FIELD_ABI_IGNORED. |
| * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use |
| SET_DECL_FIELD_ABI_IGNORED instead of writing to |
| DECL_FIELD_ABI_IGNORED and for DECL_BIT_FIELD use |
| SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD instead. |
| * lto-streamer-out.c (hash_tree): For DECL_BIT_FIELD hash |
| DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD instead of DECL_FIELD_ABI_IGNORED. |
| |
| 2021-09-03 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102166 |
| * config/i386/amxbf16intrin.h : Remove macro check for __AMX_BF16__. |
| * config/i386/amxint8intrin.h : Remove macro check for __AMX_INT8__. |
| * config/i386/amxtileintrin.h : Remove macro check for __AMX_TILE__. |
| |
| 2021-09-02 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/17506 |
| PR testsuite/37182 |
| * tree-ssa-uninit.c (warn_uninit): Remove conditional guarding note. |
| |
| 2021-09-02 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-im.c (fill_always_executed_in_1): Refine |
| fix for PR78185 and continue processing when leaving |
| finite inner loops. |
| |
| 2021-09-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/99591 |
| * match.pd: Demote operands of IFN_{ADD,SUB,MUL}_OVERFLOW if they |
| were promoted. |
| |
| 2021-09-02 Richard Biener <rguenther@suse.de> |
| |
| Revert: |
| 2021-09-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102155 |
| * tree-ssa-loop-im.c (fill_always_executed_in_1): Iterate |
| over a part of the RPO array and do not recurse here. |
| Dump blocks marked as always executed. |
| (fill_always_executed_in): Walk over the RPO array and |
| process loops whose header we run into. |
| (loop_invariant_motion_in_fun): Compute the first RPO |
| using rev_post_order_and_mark_dfs_back_seme in iteration |
| order and pass that to fill_always_executed_in. |
| |
| 2021-09-02 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-modes.def (FLOAT_MODE): Define ieee HFmode. |
| * config/i386/i386.c (enum x86_64_reg_class): Add |
| X86_64_SSEHF_CLASS. |
| (merge_classes): Handle X86_64_SSEHF_CLASS. |
| (examine_argument): Ditto. |
| (construct_container): Ditto. |
| (classify_argument): Ditto, and set HFmode/HCmode to |
| X86_64_SSEHF_CLASS. |
| (function_value_32): Return _FLoat16/Complex Float16 by |
| %xmm0. |
| (function_value_64): Return _Float16/Complex Float16 by SSE |
| register. |
| (ix86_print_operand): Handle CONST_DOUBLE HFmode. |
| (ix86_secondary_reload): Require gpr as intermediate register |
| to store _Float16 from sse register when sse4 is not |
| available. |
| (ix86_libgcc_floating_mode_supported_p): Enable _FLoat16 under |
| sse2. |
| (ix86_scalar_mode_supported_p): Ditto. |
| (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Defined. |
| * config/i386/i386.h (VALID_SSE2_REG_MODE): Add HFmode. |
| (VALID_INT_MODE_P): Add HFmode and HCmode. |
| * config/i386/i386.md (*pushhf_rex64): New define_insn. |
| (*pushhf): Ditto. |
| (*movhf_internal): Ditto. |
| * doc/extend.texi (Half-Precision Floating Point): Documemt |
| _Float16 for x86. |
| |
| 2021-09-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102155 |
| * tree-ssa-loop-im.c (fill_always_executed_in_1): Iterate |
| over a part of the RPO array and do not recurse here. |
| Dump blocks marked as always executed. |
| (fill_always_executed_in): Walk over the RPO array and |
| process loops whose header we run into. |
| (loop_invariant_motion_in_fun): Compute the first RPO |
| using rev_post_order_and_mark_dfs_back_seme in iteration |
| order and pass that to fill_always_executed_in. |
| |
| 2021-09-02 YunQiang Su <syq@debian.org> |
| |
| Revert: |
| 2021-08-31 YunQiang Su <yunqiang.su@cipunited.com> |
| |
| * config/mips/mips.c (mips_module_isa_name): New. |
| mips_file_start: add .module mipsREV to all asm output |
| |
| 2021-09-01 Jeff Law <jlaw@localhost.localdomain> |
| |
| PR tree-optimization/102152 |
| * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Reduce a vector |
| comparison to a scalar comparison before calling |
| update_stmt_if_modified. |
| |
| 2021-09-01 Andrew Pinski <apinski@marvell.com> |
| |
| PR target/101934 |
| * config/aarch64/aarch64.c (aarch64_expand_setmem): |
| Check STRICT_ALIGNMENT before creating an overlapping |
| store. |
| |
| 2021-09-01 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-ssa-warn-access.cc (get_size_range): Add argument. |
| (check_access): Pass additional argument. |
| (check_memop_access): Remove template and make a member function. |
| (maybe_check_dealloc_call): Make a pass_waccess member function. |
| (class pass_waccess): Add, rename, and remove members. |
| (pass_waccess::pass_waccess): Adjust to name change. |
| (pass_waccess::~pass_waccess): Same. |
| (check_alloca): Make a member function. |
| (check_alloc_size_call): Same. |
| (check_strcat): Same. |
| (check_strncat): Same. |
| (check_stxcpy): Same. |
| (check_stxncpy): Same. |
| (check_strncmp): Same. |
| (maybe_warn_rdwr_sizes): Rename... |
| (pass_waccess::maybe_check_access_sizes): ...to this. |
| (pass_waccess::check_call): Adjust to name changes. |
| (pass_waccess::maybe_check_dealloc_call): Make a pass_waccess member |
| function. |
| (pass_waccess::execute): Adjust to name changes. |
| * gimple-ssa-warn-access.h (check_memop_access): Remove. |
| * pointer-query.cc (access_ref::phi): Handle null pointer. |
| (access_ref::inform_access): Same. |
| (pointer_query::put_ref): Modify a cached value, not a copy of it. |
| (pointer_query::dump): New function. |
| (compute_objsize_r): Avoid overwriting access_ref::bndrng. Cache |
| more results. |
| * pointer-query.h (pointer_query::dump): Declare. |
| * tree-ssa-strlen.c (get_range): Simplify. Use function query. |
| (dump_strlen_info): Use function query. |
| (printf_strlen_execute): Factor code out into pointer_query::put_ref. |
| |
| 2021-09-01 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * tree.c (walk_tree_1) <OMP_CLAUSE>: Simplify. |
| |
| 2021-09-01 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * doc/extend.texi: Document unavailable attribute. |
| * print-tree.c (print_node): Handle unavailable attribute. |
| * tree-core.h (struct tree_base): Add a bit to carry unavailability. |
| * tree.c (error_unavailable_use): New. |
| * tree.h (TREE_UNAVAILABLE): New. |
| (error_unavailable_use): New. |
| |
| 2021-09-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/102124 |
| * tree-vect-patterns.c (vect_recog_widen_op_pattern): For ORIG_CODE |
| MINUS_EXPR, if itype is unsigned with smaller precision than type, |
| add an extra cast to signed variant of itype to ensure sign-extension. |
| |
| 2021-09-01 Martin Liska <mliska@suse.cz> |
| |
| * graph.c (draw_cfg_node_succ_edges): Do not color fallthru |
| edges and rather use colors for TRUE and FALSE edges. |
| |
| 2021-09-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/93491 |
| * tree-ssa-pre.c (compute_avail): Set BB_MAY_NOTRETURN |
| after processing the stmt itself. Do not consider |
| pure functions possibly not returning. Properly avoid |
| adding possibly trapping calls to EXP_GEN when there's |
| a preceeding possibly not returning call. |
| * tree-ssa-sccvn.c (vn_reference_may_trap): Conservatively |
| not handle calls. |
| |
| 2021-09-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102139 |
| * tree-vectorizer.h (vec_base_alignments): Adjust hash-map |
| type to record a std::pair of the stmt-info and the innermost |
| loop behavior. |
| (dr_vec_info::group): New member. |
| * tree-vect-data-refs.c (vect_record_base_alignment): Adjust. |
| (vect_compute_data_ref_alignment): Verify the recorded |
| base alignment can be used. |
| (data_ref_pair): Remove. |
| (dr_group_sort_cmp): Adjust. |
| (vect_analyze_data_ref_accesses): Store the group-ID in the |
| dr_vec_info and operate on a vector of dr_vec_infos. |
| |
| 2021-09-01 YunQiang Su <yunqiang.su@cipunited.com> |
| |
| * read-md.c (md_reader::handle_enum): support value assignation. |
| * doc/md.texi: record define_c_enum value assignation support. |
| |
| 2021-09-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/102141 |
| * gimple-ssa-store-merging.c (bswap_view_convert): Add BEFORE |
| argument. If false, emit stmts after gsi instead of before, and |
| with GSI_NEW_STMT. |
| (bswap_replace): Adjust callers. When converting output of bswap, |
| emit VIEW_CONVERT prepratation stmts after a copy of gsi instead |
| of before it. |
| |
| 2021-09-01 liuhongt <hongtao.liu@intel.com> |
| |
| * emit-rtl.c (validate_subreg): Get rid of all float-int |
| special cases. |
| |
| 2021-09-01 liuhongt <hongtao.liu@intel.com> |
| |
| Revert: |
| 2021-08-30 liuhongt <hongtao.liu@intel.com> |
| |
| * expmed.c (extract_bit_field_1): Make sure we're playing with |
| integral modes before call extract_integral_bit_field. |
| (extract_integral_bit_field): Add a parameter of type |
| scalar_int_mode which corresponds to of tmode. |
| And call extract_and_convert_fixed_bit_field instead of |
| extract_fixed_bit_field and convert_extracted_bit_field. |
| (extract_and_convert_fixed_bit_field): New function, it's a |
| combination of extract_fixed_bit_field and |
| convert_extracted_bit_field. |
| |
| 2021-08-31 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * tree.c (walk_tree_1) <OMP_CLAUSE_TILE>: Handle three operands. |
| |
| 2021-08-31 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-general.h (omp_is_reference): Rename to... |
| (omp_privatize_by_reference): ... this. Adjust all users... |
| * omp-general.c: ... here, ... |
| * gimplify.c: ... here, ... |
| * omp-expand.c: ... here, ... |
| * omp-low.c: ... here. |
| |
| 2021-08-31 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-ssa-warn-access.cc (maybe_warn_alloc_args_overflow): Test |
| pointer element for equality to zero, not that of the cotaining |
| array. |
| |
| 2021-08-31 Martin Sebor <msebor@redhat.com> |
| |
| * gcc-rich-location.h (gcc_rich_location): Make ctor explicit. |
| |
| 2021-08-31 Martin Sebor <msebor@redhat.com> |
| |
| * function.h (function): Add comments. |
| (get_range_query): Same. Add attribute returns nonnull. |
| |
| 2021-08-31 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * expr.c (convert_modes): Don't use subreg_promoted_mode on a |
| SUBREG if it can't be guaranteed to a SUBREG_PROMOTED_VAR_P set. |
| Instead use the standard (safer) is_a <scalar_int_mode> idiom. |
| |
| 2021-08-31 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config.gcc (cris-*-elf, cris-*-none): Remove dbxelf.h from |
| tm_file. |
| (m32r-*-elf, m32rle-*-elf, m32r-*-linux): Likewise. |
| (mn10300-*-*, am33_2.0-*-linux*): Likewise. |
| (xtensa*-*-elf, xtensa*-*-linux, xtensa*-*-uclinux): Likewise. |
| (m32c-*-elf*, m32c-*-rtems*): Likewise. |
| * config/cris/cris.h (DBX_NO_XREFS): Remove. |
| (DBX_CONTIN_LENGTH, DBX_CONTIN_CHAR): Likewise. |
| * config/m32r/m32r.h (DBXOUT_SOURCE_LINE): Likewise. |
| (DBX_DEBUGGING_INFO, DBX_CONTIN_LENGTH): Likewise. |
| * config/mn10300/mn10300.h (DEFAULT_GDB_EXTENSIONS): Likewise. |
| * config/mn10300/linux.h (DBX_REGISTER_NAMES): Likewise. |
| |
| 2021-08-31 Marcel Vollweiler <marcel@codesourcery.com> |
| |
| * gimplify.c (gimplify_scan_omp_clauses): Error handling. 'ancestor' only |
| allowed on target constructs and only with particular other clauses. |
| * omp-expand.c (expand_omp_target): Output of 'sorry, not supported' if |
| 'ancestor' is used. |
| * omp-low.c (check_omp_nesting_restrictions): Error handling. No nested OpenMP |
| structs when 'ancestor' is used. |
| (scan_omp_1_stmt): No usage of OpenMP runtime routines in a target region when |
| 'ancestor' is used. |
| * tree-pretty-print.c (dump_omp_clause): Append 'ancestor'. |
| * tree.h (OMP_CLAUSE_DEVICE_ANCESTOR): Define macro. |
| |
| 2021-08-31 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * expr.c (convert_modes): Preserve SUBREG_PROMOTED_VAR_P when |
| creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P |
| subreg. |
| * simplify-rtx.c (simplify_unary_operation_1) [SIGN_EXTEND]: |
| Likewise, preserve SUBREG_PROMOTED_VAR_P when creating a (wider) |
| partial subreg from a SUBREG_PROMOTED_VAR_P subreg. Generate |
| SIGN_EXTEND of the SUBREG_REG when a subreg would be paradoxical. |
| [ZERO_EXTEND]: Likewise, preserve SUBREG_PROMOTED_VAR_P when |
| creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P |
| subreg. Generate ZERO_EXTEND of the SUBREG_REG when a subreg |
| would be paradoxical. |
| |
| 2021-08-31 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * combine.c (combine_simplify_rtx): Avoid converting an explicit |
| TRUNCATE into a lowpart SUBREG on !TRULY_NOOP_TRUNCATION targets. |
| * simplify-rtx.c (simplify_unary_operation_1): Likewise. |
| |
| 2021-08-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102142 |
| * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Fix |
| condition under which to unset the visited flag. |
| |
| 2021-08-31 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102129 |
| * tree-ssa-ter.c (find_replaceable_in_bb): Do not move |
| possibly trapping expressions across calls. |
| |
| 2021-08-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/102134 |
| * tree-ssa-ccp.c (bit_value_binop) <case RSHIFT_EXPR>: If sgn is |
| UNSIGNED and r1val | r1mask has MSB set, ensure lzcount doesn't |
| become negative. |
| |
| 2021-08-31 Andrew Pinski <apinski@marvell.com> |
| |
| PR driver/79181 |
| * collect-utils.c (setup_signals): New declaration. |
| * collect-utils.h (setup_signals): New function. |
| * collect2.c (handler): Delete. |
| (main): Instead of manually setting up the signals, |
| just call setup_signals. |
| * lto-wrapper.c (main): Likewise. |
| |
| 2021-08-31 Andrew Pinski <apinski@marvell.com> |
| |
| PR target/56337 |
| * config/i386/i386-protos.h (x86_output_aligned_bss): |
| Change align argument to unsigned type. |
| (x86_elf_aligned_decl_common): Likewise. |
| * config/i386/i386.c (x86_elf_aligned_decl_common): Likewise. |
| (x86_output_aligned_bss): Likewise. |
| |
| 2021-08-31 YunQiang Su <yunqiang.su@cipunited.com> |
| |
| * config/mips/mips.c (mips_module_isa_name): New. |
| mips_file_start: add .module mipsREV to all asm output |
| |
| 2021-08-31 YunQiang Su <yunqiang.su@cipunited.com> |
| |
| * config/mips/mips.h (struct mips_cpu_info): define enum mips_isa; |
| use enum instead of int for 'isa' member. |
| * config.gcc, config/mips/mips.c, config/mips/mips-cpus.def, |
| config/mips/netbsd.h: replace hardcoded numbers with enum. |
| |
| 2021-08-31 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/sse.md (*<avx512>_ucmp<mode>3_1): Change from |
| define_split to define_insn_and_split. |
| (*avx2_eq<mode>3): Removed. |
| (<avx512>_eq<mode>3<mask_scalar_merge_name>): Adjust pattern |
| (<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Rename to .. |
| (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): .. this, and |
| adjust pattern. |
| (*avx2_gt<mode>3): Removed. |
| (<avx512>_gt<mode>3<mask_scalar_merge_name>): Change from |
| define_insn to define_expand, and adjust pattern. |
| (UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT): Removed. |
| |
| 2021-08-30 David Malcolm <dmalcolm@redhat.com> |
| |
| PR analyzer/99260 |
| * Makefile.in (ANALYZER_OBJS): Add analyzer/call-info.o. |
| |
| 2021-08-30 Jason Merrill <jason@redhat.com> |
| |
| * doc/invoke.texi: Document -Wmissing-requires. |
| |
| 2021-08-30 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove |
| TARGET_EXTRA_BUILTINS guard. |
| |
| 2021-08-30 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000_init_builtins): Change |
| initialization of V2DI_type_node and unsigned_V2DI_type_node. |
| |
| 2021-08-30 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Use the new |
| decl when new_builtins_are_live. |
| * config/rs6000/rs6000-builtin-new.def (__builtin_cfstring): New |
| built-in. |
| |
| 2021-08-30 Pat Haugen <pthaugen@linux.ibm.com> |
| |
| * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Add |
| OPTION_MASK_P10_FUSION_2STORE. |
| (POWERPC_MASKS): Likewise. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable |
| store fusion for Power10. |
| (is_fusable_store): New. |
| (power10_sched_reorder): Likewise. |
| (rs6000_sched_reorder): Do Power10 specific reordering. |
| (rs6000_sched_reorder2): Likewise. |
| * config/rs6000/rs6000.opt: Add new option. |
| |
| 2021-08-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102128 |
| * tree-vect-slp.c (vect_bb_vectorization_profitable_p): |
| Move scanning for if-converted scalar code to the caller |
| and instead delay clearing the visited flag for profitable |
| subgraphs. |
| (vect_slp_region): Cost all subgraphs before scheduling. |
| For if-converted BB vectorization scan for scalar COND_EXPRs |
| and do not vectorize if any found and the cost model is |
| very-cheap. |
| |
| 2021-08-30 Richard Biener <rguenther@suse.de> |
| |
| * common.opt (fexceptions): Mark |
| EnabledBy(fnon-call-exceptions). |
| * doc/invoke.texi (fnon-call-exceptions): Document this |
| enables -fexceptions. |
| |
| 2021-08-30 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * tsystem.h (abort): Define abort() if inhibit_libc is defined and it |
| is not already defined. |
| |
| 2021-08-30 liuhongt <hongtao.liu@intel.com> |
| |
| * expmed.c (extract_bit_field_1): Make sure we're playing with |
| integral modes before call extract_integral_bit_field. |
| (extract_integral_bit_field): Add a parameter of type |
| scalar_int_mode which corresponds to of tmode. |
| And call extract_and_convert_fixed_bit_field instead of |
| extract_fixed_bit_field and convert_extracted_bit_field. |
| (extract_and_convert_fixed_bit_field): New function, it's a |
| combination of extract_fixed_bit_field and |
| convert_extracted_bit_field. |
| |
| 2021-08-29 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (darwin_libc_has_function): Do not run |
| the checks for x86 or modern Darwin. Make sure that there |
| is a value set for darwin_macosx_version_min before testing. |
| |
| 2021-08-29 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/i386/darwin.h (CLEAR_INSN_CACHE): New. |
| |
| 2021-08-28 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.h (modref_access_node::merge): Break out |
| logic combining offsets and logic merging ranges to ... |
| (modref_access_node::combined_offsets): ... here |
| (modref_access_node::update2): ... here |
| (modref_access_node::closer_pair_p): New member function. |
| (modref_access_node::forced_merge): New member function. |
| (modre_ref_node::insert): Do merging when table is full. |
| |
| 2021-08-28 YunQiang Su <yunqiang.su@cipunited.com> |
| |
| PR target/102089 |
| * config.gcc: MIPS: use N64 ABI by default if the triple end |
| with -gnuabi64, which is used by Debian since 2013. |
| |
| 2021-08-28 Alexandre Oliva <oliva@adacore.com> |
| |
| * ipa-modref.c (analyze_function): Skip debug stmts. |
| * tree-inline.c (estimate_num_insn): Consider builtins even |
| without a cgraph_node. |
| |
| 2021-08-27 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config/h8300/bitfield.md (cstore<mode>4): Remove expander. |
| * config/h8300/h8300.c (h8300_expand_branch): Remove function. |
| * config/h8300/h8300-protos.h (h8300_expadn_branch): Remove prototype. |
| * config/h8300/h8300.md (eqne): New code iterator. |
| (geultu, geultu_to_c): Similarly. |
| * config/h8300/testcompare.md (cstore<mode>4): Dummy expander. |
| (store_c_<mode>, store_c_i_<mode>): New define_insn_and_splits |
| (cmp<mode>_c): New pattern |
| |
| 2021-08-27 Jeff Law <jlaw@localhost.localdomain> |
| |
| * tree-ssa-dom.c (reduce_vector_comparison_to_scalar_comparison): New |
| function. |
| (dom_opt_dom_walker::optimize_stmt): Use it. |
| |
| 2021-08-27 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (finalize_ctors): Add a section-start linker- |
| visible symbol. |
| (finalize_dtors): Likewise. |
| * config/darwin.h (MIN_LD64_INIT_TERM_START_LABELS): New. |
| |
| 2021-08-27 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000-builtins.h): New #include. |
| (rs6000_init_builtins): Call rs6000_init_generated_builtins. Skip the |
| old initialization logic when new builtins are enabled. |
| * config/rs6000/rs6000-gen-builtins.c (write_decls): Rename |
| rs6000_autoinit_builtins to rs6000_init_generated_builtins. |
| (write_init_file): Likewise. |
| |
| 2021-08-27 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * configure.ac (darwin2[[0-9]]* | darwin19*): Alter use of |
| gcc_GAS_CHECK_FEATURE to remove an extraneous parameter. |
| (amdgcn-* | gcn-*) Likewise. |
| |
| 2021-08-27 Anthony Sharp <anthonysharp15@gmail.com> |
| |
| * symbol-summary.h: Added missing template keyword. |
| |
| 2021-08-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/45178 |
| * tree-ssa-dce.c (find_obviously_necessary_stmts): For |
| infinite loops without exit do not mark control dependent |
| edges of the latch necessary. |
| |
| 2021-08-27 konglin1 <lingling.kong@intel.com> |
| |
| PR target/101472 |
| * config/i386/sse.md: (<avx512>scattersi<mode>): Add mask operand to |
| UNSPEC_VSIBADDR. |
| (<avx512>scattersi<mode>): Likewise. |
| (*avx512f_scattersi<VI48F:mode>): Merge mask operand to set_dest. |
| (*avx512f_scatterdi<VI48F:mode>): Likewise |
| |
| 2021-08-27 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function): Add |
| support for built-in functions MISC_BUILTIN_DIVWE, MISC_BUILTIN_DIVWEU, |
| MISC_BUILTIN_DIVDE, MISC_BUILTIN_DIVDEU, P10_BUILTIN_CFUGED, |
| P10_BUILTIN_CNTLZDM, P10_BUILTIN_CNTTZDM, P10_BUILTIN_PDEPD and |
| P10_BUILTIN_PEXTD on Power10. |
| |
| 2021-08-27 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (builtin_function_type): Add unsigned |
| signedness for some Power10 bifs. |
| |
| 2021-08-27 David Edelsohn <dje.gcc@gmail.com> |
| |
| PR target/102068 |
| * config/rs6000/rs6000.c (rs6000_adjust_field_align): Use |
| computed alignment if the entire struct has attribute packed. |
| |
| 2021-08-27 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/98167 |
| PR target/43147 |
| * config/i386/i386.c (ix86_gimple_fold_builtin): Fold |
| IX86_BUILTIN_SHUFPD512, IX86_BUILTIN_SHUFPS512, |
| IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS, |
| IX86_BUILTIN_SHUFPS256. |
| (ix86_masked_all_ones): New function. |
| |
| 2021-08-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*btr<mode>_1): Call force_reg unconditionally. |
| (conditional moves with memory inputs splitters): Ditto. |
| * config/i386/sse.md (one_cmpl<mode>2): Simplify. |
| |
| 2021-08-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.h (modref_access_node::try_merge_with): Restart |
| search after merging. |
| |
| 2021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-overload.def: Add remaining overloads. |
| |
| 2021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add cell stanza. |
| |
| 2021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add ieee128-hw, dfp, |
| crypto, and htm stanzas. |
| |
| 2021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add mma stanza. |
| |
| 2021-08-26 Martin Sebor <msebor@redhat.com> |
| |
| * tree-ssa-uninit.c (warn_uninit): Refactor and simplify. |
| (warn_uninit_phi_uses): Remove argument from calls to warn_uninit. |
| (warn_uninitialized_vars): Same. Reduce visibility of locals. |
| (warn_uninitialized_phi): Same. |
| |
| 2021-08-26 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * tree-ssa-ccp.c (get_individual_bits): Helper function to |
| extract the individual bits from a widest_int constant (mask). |
| (gray_code_bit_flips): New read-only table for effiently |
| enumerating permutations/combinations of bits. |
| (bit_value_binop) [LROTATE_EXPR, RROTATE_EXPR]: Handle rotates |
| by unknown counts that are guaranteed less than the target |
| precision and four or fewer unknown bits by enumeration. |
| [LSHIFT_EXPR, RSHIFT_EXPR]: Likewise, also handle shifts by |
| enumeration under the same conditions. Handle remaining |
| shifts as a mask based upon the minimum possible shift value. |
| |
| 2021-08-26 Roger Sayle <roger@nextmovesoftware.com> |
| Richard Biener <rguenther@suse.de> |
| |
| * match.pd (shift transformations): Remove a redundant |
| !POINTER_TYPE_P check. |
| |
| 2021-08-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/102057 |
| * config/i386/i386.md (cmove reg-reg move elimination peephole2s): |
| Set all_regs to true in the call to replace_rtx. |
| |
| 2021-08-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.c (test_insert_search_collapse): Update test. |
| * ipa-modref-tree.h (modref_base_node::insert): Be smarter when |
| hiting --param modref-max-refs limit. |
| (modref_tree:insert_base): Be smarter when hitting |
| --param modref-max-bases limit. Add new parameter REF. |
| (modref_tree:insert): Update. |
| (modref_tree:merge): Update. |
| * ipa-modref.c (read_modref_records): Update. |
| |
| 2021-08-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| * params.opt: (modref-max-adjustments): Add full stop. |
| |
| 2021-08-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.h (modref_ref_node::verify): New member |
| functoin. |
| (modref_ref_node::insert): Use it. |
| (modref_ref_node::try_mere_with): Fix off by one error. |
| |
| 2021-08-26 Martin Liska <mliska@suse.cz> |
| Stefan Kneifel <stefan.kneifel@bluewin.ch> |
| |
| * cgraph.h (create_version_clone_with_body): Add new parameter. |
| * cgraphclones.c: Likewise. |
| * multiple_target.c (create_dispatcher_calls): Do not use |
| numbered suffixes. |
| (create_target_clone): Likewise here. |
| |
| 2021-08-26 Jonathan Yong <10walls@gmail.com> |
| |
| * doc/extend.texi: Add note about reserved priorities |
| to the constructor attribute. |
| |
| 2021-08-25 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-range-cache.cc (ssa_global_cache::dump): Avoid printing |
| range table header alone. |
| * gimple-range.cc (gimple_ranger::export_global_ranges): Same. |
| |
| 2021-08-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * doc/invoke.texi: Document --param modref-max-adjustments. |
| * ipa-modref-tree.c (test_insert_search_collapse): Update. |
| (test_merge): Update. |
| * ipa-modref-tree.h (struct modref_access_node): Add adjustments; |
| (modref_access_node::operator==): Fix handling of access ranges. |
| (modref_access_node::contains): Constify parameter; handle also |
| mismatched parm offsets. |
| (modref_access_node::update): New function. |
| (modref_access_node::merge): New function. |
| (unspecified_modref_access_node): Update constructor. |
| (modref_ref_node::insert_access): Add record_adjustments parameter; |
| handle merging. |
| (modref_ref_node::try_merge_with): New private function. |
| (modref_tree::insert): New record_adjustments parameter. |
| (modref_tree::merge): New record_adjustments parameter. |
| (modref_tree::copy_from): Update. |
| * ipa-modref.c (dump_access): Dump adjustments field. |
| (get_access): Update constructor. |
| (record_access): Update call of insert. |
| (record_access_lto): Update call of insert. |
| (merge_call_side_effects): Add record_adjustments parameter. |
| (get_access_for_fnspec): Update. |
| (process_fnspec): Update. |
| (analyze_call): Update. |
| (analyze_function): Update. |
| (read_modref_records): Update. |
| (ipa_merge_modref_summary_after_inlining): Update. |
| (propagate_unknown_call): Update. |
| (modref_propagate_in_scc): Update. |
| * params.opt (param-max-modref-adjustments=): New. |
| |
| 2021-08-25 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/vsx.md (UNSPEC_XXSPLTIDP): Rename from |
| UNSPEC_XXSPLTID. |
| (xxspltiw_v4si): Use vecperm type attribute. |
| (xxspltiw_v4si_inst): Use vecperm type attribute. |
| (xxspltiw_v4sf_inst): Likewise. |
| (xxspltidp_v2df): Use vecperm type attribute. Use |
| UNSPEC_XXSPLTIDP instead of UNSPEC_XXSPLTID. |
| (xxspltidp_v2df_inst): Likewise. |
| (xxsplti32dx_v4si): Use vecperm type attribute. |
| (xxsplti32dx_v4si_inst): Likewise. |
| (xxsplti32dx_v4sf_inst): Likewise. |
| (xxblend_<mode>): Likewise. |
| (xxpermx): Likewise. |
| (xxpermx_inst): Likewise. |
| (xxeval): Likewise. |
| |
| 2021-08-25 Lewis Hyatt <lhyatt@gmail.com> |
| |
| PR other/93067 |
| * coretypes.h (typedef diagnostic_input_charset_callback): Declare. |
| * diagnostic.c (diagnostic_initialize_input_context): New function. |
| * diagnostic.h (diagnostic_initialize_input_context): Declare. |
| * input.c (default_charset_callback): New function. |
| (file_cache::initialize_input_context): New function. |
| (file_cache_slot::create): Added ability to convert the input |
| according to the input context. |
| (file_cache::file_cache): Initialize the new input context. |
| (class file_cache_slot): Added new m_alloc_offset member. |
| (file_cache_slot::file_cache_slot): Initialize the new member. |
| (file_cache_slot::~file_cache_slot): Handle potentially offset buffer. |
| (file_cache_slot::maybe_grow): Likewise. |
| (file_cache_slot::needs_read_p): Handle NULL fp, which is now possible. |
| (file_cache_slot::get_next_line): Likewise. |
| * input.h (class file_cache): Added input context member. |
| |
| 2021-08-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102046 |
| * tree-vect-slp.c (vect_build_slp_tree_2): Conservatively |
| update ->any_pattern when swapping operands. |
| |
| 2021-08-25 Hongyu Wang <hongyu.wang@intel.com> |
| |
| PR target/101716 |
| * config/i386/i386.c (ix86_live_on_entry): Adjust comment. |
| (ix86_decompose_address): Remove retval check for ASHIFT, |
| allow non-canonical zero extend if AND mask covers ASHIFT |
| count. |
| (ix86_legitimate_address_p): Adjust condition for decompose. |
| (ix86_rtx_costs): Adjust cost for lea with non-canonical |
| zero-extend. |
| Co-Authored by: Uros Bizjak <ubizjak@gmail.com> |
| |
| 2021-08-25 Jiufu Guo <guojiufu@linux.ibm.com> |
| |
| PR tree-optimization/101145 |
| * tree-ssa-loop-niter.c (number_of_iterations_until_wrap): |
| New function. |
| (number_of_iterations_lt): Invoke above function. |
| (adjust_cond_for_loop_until_wrap): |
| Merge to number_of_iterations_until_wrap. |
| (number_of_iterations_cond): Update invokes for |
| adjust_cond_for_loop_until_wrap and number_of_iterations_lt. |
| |
| 2021-08-25 konglin1 <lingling.kong@intel.com> |
| |
| PR target/101471 |
| * config/i386/avx512dqintrin.h (_mm512_fpclass_ps_mask): Fix |
| macro define in O0. |
| (_mm512_mask_fpclass_ps_mask): Ditto. |
| |
| 2021-08-25 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Remove. |
| (vec_unpacku_hi_v8hi): Likewise. |
| (vec_unpacku_lo_v16qi): Likewise. |
| (vec_unpacku_lo_v8hi): Likewise. |
| (vec_unpacku_hi_<VP_small_lc>): New define_expand. |
| (vec_unpacku_lo_<VP_small_lc>): Likewise. |
| |
| 2021-08-24 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/aix.h (SYSTEM_IMPLICIT_EXTERN_C): Delete. |
| * config/rs6000/aix71.h (SYSTEM_IMPLICIT_EXTERN_C): Define. |
| * config/rs6000/aix72.h (SYSTEM_IMPLICIT_EXTERN_C): Define. |
| * config/rs6000/aix73.h (TARGET_AIX_VERSION): Increase to 73. |
| |
| 2021-08-24 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR middle-end/102031 |
| * simplify-rtx.c (simplify_truncation): When comparing precisions |
| use "subreg_prec" variable, not "subreg_mode". |
| |
| 2021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add power10 and power10-64 |
| stanzas. |
| |
| 2021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000_init_builtins): Initialize |
| various pointer type nodes. |
| * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add enum |
| values for various pointer types. |
| (ptr_V16QI_type_node): New macro. |
| (ptr_V1TI_type_node): New macro. |
| (ptr_V2DI_type_node): New macro. |
| (ptr_V2DF_type_node): New macro. |
| (ptr_V4SI_type_node): New macro. |
| (ptr_V4SF_type_node): New macro. |
| (ptr_V8HI_type_node): New macro. |
| (ptr_unsigned_V16QI_type_node): New macro. |
| (ptr_unsigned_V1TI_type_node): New macro. |
| (ptr_unsigned_V8HI_type_node): New macro. |
| (ptr_unsigned_V4SI_type_node): New macro. |
| (ptr_unsigned_V2DI_type_node): New macro. |
| (ptr_bool_V16QI_type_node): New macro. |
| (ptr_bool_V8HI_type_node): New macro. |
| (ptr_bool_V4SI_type_node): New macro. |
| (ptr_bool_V2DI_type_node): New macro. |
| (ptr_bool_V1TI_type_node): New macro. |
| (ptr_pixel_type_node): New macro. |
| (ptr_intQI_type_node): New macro. |
| (ptr_uintQI_type_node): New macro. |
| (ptr_intHI_type_node): New macro. |
| (ptr_uintHI_type_node): New macro. |
| (ptr_intSI_type_node): New macro. |
| (ptr_uintSI_type_node): New macro. |
| (ptr_intDI_type_node): New macro. |
| (ptr_uintDI_type_node): New macro. |
| (ptr_intTI_type_node): New macro. |
| (ptr_uintTI_type_node): New macro. |
| (ptr_long_integer_type_node): New macro. |
| (ptr_long_unsigned_type_node): New macro. |
| (ptr_float_type_node): New macro. |
| (ptr_double_type_node): New macro. |
| (ptr_long_double_type_node): New macro. |
| (ptr_dfloat64_type_node): New macro. |
| (ptr_dfloat128_type_node): New macro. |
| (ptr_ieee128_type_node): New macro. |
| (ptr_ibm128_type_node): New macro. |
| (ptr_vector_pair_type_node): New macro. |
| (ptr_vector_quad_type_node): New macro. |
| (ptr_long_long_integer_type_node): New macro. |
| (ptr_long_long_unsigned_type_node): New macro. |
| |
| 2021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add power9-vector, power9, |
| and power9-64 stanzas. |
| |
| 2021-08-24 Roger Sayle <roger@nextmovesoftware.com> |
| Tom de Vries <tdevries@suse.de> |
| |
| * config.gcc (nvptx-*-*): Define {c,c++}_target_objs. |
| * config/nvptx/nvptx-protos.h (nvptx_cpu_cpp_builtins): Prototype. |
| * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Implement with |
| a call to the new nvptx_cpu_cpp_builtins function in nvptx-c.c. |
| * config/nvptx/t-nvptx (nvptx-c.o): New rule. |
| * config/nvptx/nvptx-c.c: New source file. |
| (nvptx_cpu_cpp_builtins): Move implementation here. |
| |
| 2021-08-24 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/101600 |
| PR middle-end/101977 |
| * gimple-ssa-warn-access.cc (maybe_warn_for_bound): Tighten up |
| the phrasing of a warning. |
| (check_access): Use the remaining size after subtracting any offset |
| rather than the whole object size. |
| * pointer-query.cc (access_ref::get_ref): Clear BASE0 flag if it's |
| clear for any nonnull PHI argument. |
| (compute_objsize): Clear argument. |
| |
| 2021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add power8-vector stanza. |
| |
| 2021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add power7 and power7-64 |
| stanzas. |
| |
| 2021-08-24 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (rr_transitive_table): New. |
| (relation_transitive): New. |
| (value_relation::swap): Remove. |
| (value_relation::apply_transitive): New. |
| (relation_oracle::relation_oracle): Allocate a new tmp bitmap. |
| (relation_oracle::register_relation): Call register_transitives. |
| (relation_oracle::register_transitives): New. |
| * value-relation.h (relation_oracle): Add new temporary bitmap and |
| methods. |
| |
| 2021-08-24 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/102021 |
| * config/i386/i386-expand.c (ix86_expand_vector_move): Broadcast |
| from integer to a pseudo vector register. |
| |
| 2021-08-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/100089 |
| * tree-vectorizer.h (vect_slp_bb): Rename to ... |
| (vect_slp_if_converted_bb): ... this and get the original |
| loop as new argument. |
| * tree-vectorizer.c (try_vectorize_loop_1): Revert previous fix, |
| pass original loop to vect_slp_if_converted_bb. |
| * tree-vect-slp.c (vect_bb_vectorization_profitable_p): |
| If orig_loop was passed scan the not vectorized stmts |
| for COND_EXPRs and force not profitable if found. |
| (vect_slp_region): Pass down all SLP instances to costing |
| if orig_loop was specified. |
| (vect_slp_bbs): Pass through orig_loop. |
| (vect_slp_bb): Rename to ... |
| (vect_slp_if_converted_bb): ... this and get the original |
| loop as new argument. |
| (vect_slp_function): Adjust. |
| |
| 2021-08-24 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/102035 |
| * config/arm/arm.md (attribute arch): Add fix_vlldm. |
| (arch_enabled): Use it. |
| * config/arm/vfp.md (lazy_store_multiple_insn): Add alternative to |
| use when erratum mitigation is needed. |
| |
| 2021-08-24 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/102035 |
| * config/arm/arm.opt (mfix-cmse-cve-2021-35465): New option. |
| * doc/invoke.texi (Arm Options): Document it. |
| * config/arm/arm-cpus.in (quirk_vlldm): New feature bit. |
| (ALL_QUIRKS): Add quirk_vlldm. |
| (cortex-m33): Add quirk_vlldm. |
| (cortex-m35p, cortex-m55): Likewise. |
| * config/arm/arm.c (arm_option_override): Enable fix_vlldm if |
| targetting an affected CPU and not explicitly controlled on |
| the command line. |
| |
| 2021-08-24 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/vfp.md (lazy_store_multiple_insn): Rewrite as valid RTL. |
| (lazy_load_multiple_insn): Likewise. |
| |
| 2021-08-24 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101989 |
| * config/i386/sse.md (<avx512>_vternlog<mode><sd_maskz_name>): |
| Enable avx512 embedded broadcast. |
| (*<avx512>_vternlog<mode>_all): Ditto. |
| (<avx512>_vternlog<mode>_mask): Ditto. |
| |
| 2021-08-24 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101989 |
| * config/i386/i386.c (ix86_rtx_costs): Define cost for |
| UNSPEC_VTERNLOG. |
| * config/i386/i386.h (STRIP_UNARY): New macro. |
| * config/i386/predicates.md (reg_or_notreg_operand): New |
| predicate. |
| * config/i386/sse.md (*<avx512>_vternlog<mode>_all): New define_insn. |
| (*<avx512>_vternlog<mode>_1): New pre_reload |
| define_insn_and_split. |
| (*<avx512>_vternlog<mode>_2): Ditto. |
| (*<avx512>_vternlog<mode>_3): Ditto. |
| (any_logic1,any_logic2): New code iterator. |
| (logic_op): New code attribute. |
| (ternlogsuffix): Extend to VNxDF and VNxSF. |
| |
| 2021-08-24 Richard Biener <rguenther@suse.de> |
| |
| * doc/invoke.texi (vect-inner-loop-cost-factor): Adjust. |
| * params.opt (--param vect-inner-loop-cost-factor): Adjust |
| maximum value. |
| * tree-vect-loop.c (vect_analyze_loop_form): Initialize |
| inner_loop_cost_factor to the minimum of the estimated number |
| of iterations of the inner loop and vect-inner-loop-cost-factor. |
| |
| 2021-08-24 Roger Sayle <roger@nextmovesoftware.com> |
| Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386-features.c (compute_convert_gain): Provide |
| more accurate values for CONST_INT, when optimizing for size. |
| * config/i386/i386.c (COSTS_N_BYTES): Move definition from here... |
| * config/i386/i386.h (COSTS_N_BYTES): to here. |
| |
| 2021-08-24 Roger Sayle <roger@nextmovesoftware.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/102029 |
| * match.pd (shift transformations): Add an additional check for |
| !POINTER_TYPE_P in the recently added left shift transformation. |
| |
| 2021-08-24 liuhongt <hongtao.liu@intel.com> |
| |
| PR tree-optimization/100089 |
| * tree-vectorizer.c (try_vectorize_loop_1): Disable slp in |
| loop vectorizer when cost model is very-cheap. |
| |
| 2021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (parse_bif_entry): Don't call |
| asprintf, which is not available on AIX. |
| |
| 2021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config.gcc (target_gtfiles): Add ./rs6000-builtins.h. |
| * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Set. |
| |
| 2021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config.gcc (powerpc*-*-*): Add rs6000-builtins.o to extra_objs. |
| * config/rs6000/rs6000-gen-builtins.c (main): Close init_file |
| last. |
| * config/rs6000/t-rs6000 (rs6000-gen-builtins.o): New target. |
| (rbtree.o): Likewise. |
| (rs6000-gen-builtins): Likewise. |
| (rs6000-builtins.c): Likewise. |
| (rs6000-builtins.h): Likewise. |
| (rs6000.o): Add dependency. |
| (EXTRA_HEADERS): Add rs6000-vecdefines.h. |
| (rs6000-vecdefines.h): New target. |
| (rs6000-builtins.o): Likewise. |
| (rs6000-call.o): Add rs6000-builtins.h as a dependency. |
| (rs6000-c.o): Likewise. |
| |
| 2021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| PR target/101830 |
| * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): |
| Diagnose buffer overrun. |
| (safe_inc_pos): Fix overrun detection. |
| (match_identifier): Diagnose buffer overrun. |
| (match_integer): Likewise. |
| (match_to_right_bracket): Likewise. |
| |
| 2021-08-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.h (modref_access_node::range_info_useful_p): |
| Improve range compare. |
| (modref_access_node::contains): New member function. |
| (modref_access_node::search): Remove. |
| (modref_access_node::insert): Be smarter about subaccesses. |
| |
| 2021-08-23 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * config/i386/i386-options.c (ix86_omp_device_kind_arch_isa) |
| <omp_device_arch> [ACCEL_COMPILER]: Match "intel_mic". |
| * config/i386/t-omp-device (omp-device-properties-i386) <arch>: |
| Add "intel_mic". |
| |
| 2021-08-23 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config/h8300/h8300-protos.h (h8300_expand_epilogue): Add new |
| argument. |
| * config/h8300/jumpcall.md (call, call_value): Restrict to |
| !SIBLING_CALL_P cases. |
| (subcall, sibcall_value): New patterns & expanders. |
| * config/h8300/proepi.md (epilogue): Pass new argument to |
| h8300_expand_epilogue. |
| (sibcall_epilogue): New expander. |
| * config/h8300/h8300.c (h8300_expand_epilogue): Handle sibcall |
| epilogues too. |
| (h8300_ok_for_sibcall_p): New function. |
| (TARGET_FUNCTION_OK_FOR_SIBCALL): define. |
| |
| 2021-08-23 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * simplify-rtx.c (simplify_unary_operation_1): [TRUNCATE]: |
| Handle case where the operand is already the desired mode. |
| |
| 2021-08-23 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/97565 |
| * tree-ssa-structalias.c (ipa_pta_execute): Check in_other_partition |
| in addition to has_gimple_body. |
| |
| 2021-08-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/101949 |
| * ipa-modref.c (analyze_ssa_name_flags): Fix merging of |
| EAF_NOCLOBBER |
| |
| 2021-08-23 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Put the option out of -mxl-mode-app-model |
| table. |
| |
| 2021-08-23 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): |
| Properly scale the inner loop cost only once. |
| |
| 2021-08-23 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * tree-ssa-ccp.c (bit_value_binop) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: |
| Provide bounds for unsigned (and signed with non-negative operands) |
| division and modulus. |
| |
| 2021-08-23 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * simplify-rtx.c (simplify_truncation): Generalize simplification |
| of (truncate:A (subreg:B X)). |
| (simplify_unary_operation_1) [FLOAT_TRUNCATE, FLOAT_EXTEND, |
| SIGN_EXTEND, ZERO_EXTEND]: Handle cases where the operand |
| already has the desired machine mode. |
| (test_scalar_int_ops): Add tests that useless extensions and |
| truncations are optimized away. |
| (test_scalar_int_ext_ops): New self-test function to confirm |
| that truncations of extensions are correctly simplified. |
| (test_scalar_int_ext_ops2): New self-test function to check |
| truncations of truncations, extensions of extensions, and |
| truncations of extensions. |
| (test_scalar_ops): Call the above two functions with a |
| representative sampling of integer machine modes. |
| |
| 2021-08-23 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * match.pd (shift transformations): Change the sign of an |
| LSHIFT_EXPR if it reduces the number of explicit conversions. |
| |
| 2021-08-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/86723 |
| * gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Add |
| cast64_to_32 argument, set *cast64_to_32 to false, unless n is |
| non-memory permutation of 64-bit src which only has bytes of |
| 0 or [5..8] and n->range is 4. |
| (find_bswap_or_nop): Add cast64_to_32 and mask arguments, adjust |
| find_bswap_or_nop_finalize caller, support bswap with some bytes |
| zeroed, as long as at least two bytes are not zeroed. |
| (bswap_replace): Add mask argument and handle masking of bswap |
| result. |
| (maybe_optimize_vector_constructor): Adjust find_bswap_or_nop |
| caller, punt if cast64_to_32 or mask is not all ones. |
| (pass_optimize_bswap::execute): Adjust find_bswap_or_nop_finalize |
| caller, for now punt if cast64_to_32. |
| |
| 2021-08-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79334 |
| * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record |
| a type also for COMPONENT_REFs. |
| (vn_reference_may_trap): Check ARRAY_REF with constant index |
| against the array domain. |
| |
| 2021-08-23 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102016 |
| * config/i386/sse.md (*avx512f_pshufb_truncv8hiv8qi_1): Add |
| TARGET_AVX512BW to condition. |
| |
| 2021-08-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/101905 |
| * dwarf2out.c (gen_variable_die): Add DW_AT_location for global |
| register variables already during early_dwarf if possible. |
| |
| 2021-08-23 Christophe Lyon <christophe.lyon@foss.st.com> |
| |
| * config/arm/arm_mve.h: Fix __arm_vctp16q return type. |
| |
| 2021-08-23 Christophe Lyon <christophe.lyon@foss.st.com> |
| |
| PR target/100856 |
| * config/arm/arm.opt: Fix typo. |
| * config/arm/t-rmprofile: Fix typo. |
| |
| 2021-08-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.h (OMP_CLAUSE_GRAINSIZE_STRICT): Define. |
| (OMP_CLAUSE_NUM_TASKS_STRICT): Define. |
| * tree-pretty-print.c (dump_omp_clause) <case OMP_CLAUSE_GRAINSIZE, |
| case OMP_CLAUSE_NUM_TASKS>: Print strict: modifier. |
| * omp-expand.c (expand_task_call): Use GOMP_TASK_FLAG_STRICT in iflags |
| if either grainsize or num_tasks clause has the strict modifier. |
| |
| 2021-08-23 Martin Liska <mliska@suse.cz> |
| |
| * dbgcnt.def (DEBUG_COUNTER): New counter. |
| * gimple.c (gimple_call_arg_flags): Use it in IPA PTA. |
| |
| 2021-08-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c (analyze_ssa_name_flags): Improve handling of return slot. |
| |
| 2021-08-23 Xi Ruoyao <xry111@mengyan1223.wang> |
| |
| PR target/101922 |
| * config/mips/mips-protos.h (mips_msa_output_shift_immediate): |
| Declare. |
| * config/mips/mips.c (mips_msa_output_shift_immediate): New |
| function. |
| * config/mips/mips-msa.md (vashl<mode>3, vashr<mode>3, |
| vlshr<mode>3): Call it. |
| |
| 2021-08-22 Jan Hubicka <hubicka@ucw.cz> |
| Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/101949 |
| * ipa-modref.c (analyze_ssa_name_flags): Indirect call implies |
| ~EAF_NOCLOBBER. |
| |
| 2021-08-21 Dragan Mladjenovic <OT_Dragan.Mladjenovic@mediatek.com> |
| |
| * config/mips/mips.c (mips_function_rodata_section, |
| TARGET_ASM_FUNCTION_RODATA_SECTION): Removed. |
| |
| 2021-08-21 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (pa_asm_output_aligned_common): Remove warning. |
| |
| 2021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> |
| |
| * configure.ac (thread-local storage support): Remove tls_first_major |
| and tls_first_minor. Use "$conftest_s" to check support. |
| * configure: Regenerate. |
| |
| 2021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> |
| |
| * configure.ac: Fixup formatting. |
| |
| 2021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> |
| |
| * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Remove third argument and ... |
| * configure.ac: ... update all callers. |
| |
| 2021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> |
| |
| PR target/91602 |
| * acinclude.m4 (_gcc_COMPUTE_GAS_VERSION, _gcc_GAS_VERSION_GTE_IFELSE) |
| (gcc_GAS_VERSION_GTE_IFELSE): Remove. |
| (gcc_GAS_CHECK_FEATURE): Do not handle in-tree case specially. |
| * configure.ac: Remove gcc_cv_gas_major_version, gcc_cv_gas_minor_version. |
| Remove remaining checks for in-tree assembler. |
| * configure: Regenerate. |
| |
| 2021-08-20 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config/h8300/h8300.c (shift_alg_hi): Improve arithmetic shift right |
| by 15 bits for H8/300H and H8/S. Improve logical shifts by 12 |
| bits for H8/S. |
| (shift_alg_si): Improve arithmetic right shift by 28-30 bits for |
| H8/300H. Improve arithmetic shift right by 15 bits for H8/S. |
| Improve logical shifts by 27 bits for H8/S. |
| (get_shift_alg): Corresponding changes. |
| (h8300_option_override): Revert to loops for -Os when profitable. |
| |
| 2021-08-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (dr_group_sort_cmp): Do not compare |
| BBs. |
| (vect_analyze_data_ref_accesses): Likewise. Assign the BB |
| index as group_id when dataref_groups were not computed. |
| * tree-vect-slp.c (vect_slp_bbs): Bump current_group when |
| we advace to the next BB. |
| |
| 2021-08-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-builtins.def (BUILT_IN_GOMP_WARNING, BUILT_IN_GOMP_ERROR): New |
| builtins. |
| |
| 2021-08-20 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/89961 |
| * gcov.c (make_gcov_file_name): Rewrite using std::string. |
| (mangle_name): Simplify, do not used the second argument. |
| (strip_extention): New function. |
| (get_md5sum): Likewise. |
| (get_gcov_intermediate_filename): Handle properly -p and -x |
| options. |
| (output_gcov_file): Use string type. |
| (generate_results): Likewise. |
| (md5sum_to_hex): Remove. |
| |
| 2021-08-20 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/altivec.md (UNSPEC_XXEVAL): Move to vsx.md. |
| (UNSPEC_XXSPLTIW): Move to vsx.md. |
| (UNSPEC_XXSPLTID): Move to vsx.md. |
| (UNSPEC_XXSPLTI32DX): Move to vsx.md. |
| (UNSPEC_XXBLEND): Move to vsx.md. |
| (UNSPEC_XXPERMX): Move to vsx.md. |
| (VM3): Move to vsx.md. |
| (VM3_char): Move to vsx.md. |
| (xxspltiw_v4si): Move to vsx.md. |
| (xxspltiw_v4sf): Move to vsx.md. |
| (xxspltiw_v4sf_inst): Move to vsx.md. |
| (xxspltidp_v2df): Move to vsx.md. |
| (xxspltidp_v2df_inst): Move to vsx.md. |
| (xxsplti32dx_v4si_inst): Move to vsx.md. |
| (xxsplti32dx_v4sf): Move to vsx.md. |
| (xxsplti32dx_v4sf_inst): Move to vsx.md. |
| (xxblend_<mode>): Move to vsx.md. |
| (xxpermx): Move to vsx.md. |
| (xxpermx_inst): Move to vsx.md. |
| * config/rs6000/vsx.md (UNSPEC_XXEVAL): Move from altivec.md. |
| (UNSPEC_XXSPLTIW): Move from altivec.md. |
| (UNSPEC_XXSPLTID): Move from altivec.md. |
| (UNSPEC_XXSPLTI32DX): Move from altivec.md. |
| (UNSPEC_XXBLEND): Move from altivec.md. |
| (UNSPEC_XXPERMX): Move from altivec.md. |
| (VM3): Move from altivec.md. |
| (VM3_char): Move from altivec.md. |
| (xxspltiw_v4si): Move from altivec.md. |
| (xxspltiw_v4sf): Move from altivec.md. |
| (xxspltiw_v4sf_inst): Move from altivec.md. |
| (xxspltidp_v2df): Move from altivec.md. |
| (xxspltidp_v2df_inst): Move from altivec.md. |
| (xxsplti32dx_v4si_inst): Move from altivec.md. |
| (xxsplti32dx_v4sf): Move from altivec.md. |
| (xxsplti32dx_v4sf_inst): Move from altivec.md. |
| (xxblend_<mode>): Move from altivec.md. |
| (xxpermx): Move from altivec.md. |
| (xxpermx_inst): Move from altivec.md. |
| |
| 2021-08-19 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * tree-vect-generic.c (expand_vector_operations_1): Use either |
| gimplify_build1 or gimplify_build2 instead of gimple_build_assign |
| when constructing scalar splat expressions. |
| |
| 2021-08-19 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR target/101849 |
| * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Cast |
| pointer to __vector_pair *. |
| |
| 2021-08-19 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-range.cc: Add comments. |
| * gimple-range.h: Same. |
| |
| 2021-08-19 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/101984 |
| * gimple-ssa-warn-access.cc (pass_waccess::execute): Also call |
| disable_ranger. |
| |
| 2021-08-19 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config.gcc (h8300-*-elf*): Do not include dbxelf.h. |
| (h8300-*-linux*, v850-*-rtems*, v850*-elf*): Likewise. |
| * config/v850/v850.h (DEFAULT_GDB_EXTENSIONS): Remove. |
| |
| 2021-08-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/101950 |
| * optabs.c (expand_clrsb_using_clz): New function. |
| (expand_unop): Use it as another clrsb expansion fallback. |
| |
| 2021-08-19 liuhongt <hongtao.liu@intel.com> |
| |
| Revert: |
| 2021-07-28 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/99881 |
| * config/i386/i386.h (processor_costs): Add new member |
| integer_to_sse. |
| * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost, |
| i486_cost, pentium_cost, lakemont_cost, pentiumpro_cost, |
| geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost, |
| bdver_cost, znver1_cost, znver2_cost, znver3_cost, |
| btver1_cost, btver2_cost, btver3_cost, pentium4_cost, |
| nocona_cost, atom_cost, atom_cost, slm_cost, intel_cost, |
| generic_cost, core_cost): Initialize integer_to_sse same value |
| as sse_op. |
| (skylake_cost): Initialize integer_to_sse twice as much as sse_op. |
| * config/i386/i386.c (ix86_builtin_vectorization_cost): |
| Use integer_to_sse instead of sse_op to calculate the cost of |
| vec_construct. |
| |
| 2021-08-18 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config.gcc: Include rpath.opt for Darwin. |
| * config/darwin.h (DRIVER_SELF_SPECS): Handle -rpath. |
| |
| 2021-08-18 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR bootstrap/101959 |
| * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor_expand): |
| Use an 'int_hash'. |
| |
| 2021-08-18 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (vld3_lane_f64): Use float RTL |
| pattern and type cast. |
| (vld4_lane_f32): Use float RTL pattern. |
| (vld4q_lane_f64): Use float type cast. |
| |
| 2021-08-18 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Check also |
| EAF_NOREAD. |
| |
| 2021-08-18 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): Extend. |
| (test_map_of_type_with_ctor_and_dtor_expand): Add function. |
| (hash_map_tests_c_tests): Call it. |
| |
| 2021-08-18 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * ggc.h (enum ggc_collect): New. |
| (ggc_collect): Use it. |
| * ggc-page.c: Adjust. |
| * ggc-common.c: Likewise. |
| * ggc-tests.c: Likewise. |
| * read-rtl-function.c: Likewise. |
| * selftest-run-tests.c: Likewise. |
| * doc/gty.texi (Invoking the garbage collector): Likewise. |
| |
| 2021-08-18 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/97147 |
| * config/i386/i386.h (TARGET_V2DF_REDUCTION_PREFER_HADDPD): |
| New macro. |
| * config/i386/sse.md (*sse3_haddv2df3_low): Add |
| TARGET_V2DF_REDUCTION_PREFER_HADDPD. |
| (*sse3_hsubv2df3_low): Ditto. |
| * config/i386/x86-tune.def |
| (X86_TUNE_V2DF_REDUCTION_PREFER_HADDPD): New tune. |
| |
| 2021-08-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-gori.cc (gori_compute::gori_compute): Enable tracing. |
| (gori_compute::compute_operand_range): Add tracing. |
| (gori_compute::logical_combine): Ditto. |
| (gori_compute::compute_logical_operands): Ditto. |
| (gori_compute::compute_operand1_range): Ditto. |
| (gori_compute::compute_operand2_range): Ditto. |
| (gori_compute::outgoing_edge_range_p): Ditto. |
| * gimple-range-gori.h (class gori_compute): Add range_tracer. |
| |
| 2021-08-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * flag-types.h (enum evrp_mode): Adjust evrp-mode values. |
| * gimple-range-cache.cc (DEBUG_RANGE_CACHE): Relocate from. |
| * gimple-range-trace.h (DEBUG_RANGE_CACHE): Here. |
| * params.opt (--param=evrp-mode): Adjust options. |
| |
| 2021-08-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * Makefile.in (OBJS): Add gimple-range-trace.o. |
| * gimple-range-cache.h (enable_new_values): Remove unused prototype. |
| * gimple-range-fold.cc: Adjust headers. |
| * gimple-range-trace.cc: New. |
| * gimple-range-trace.h: New. |
| * gimple-range.cc (gimple_ranger::gimple_ranger): Enable tracer. |
| (gimple_ranger::range_of_expr): Add tracing. |
| (gimple_ranger::range_on_entry): Ditto. |
| (gimple_ranger::range_on_exit): Ditto. |
| (gimple_ranger::range_on_edge): Ditto. |
| (gimple_ranger::fold_range_internal): Ditto. |
| (gimple_ranger::dump_bb): Do not calculate edge range twice. |
| (trace_ranger::*): Remove. |
| (enable_ranger): Never create a trace_ranger. |
| (debug_seed_ranger): Move to gimple-range-trace.cc. |
| (dump_ranger): Ditto. |
| (debug_ranger): Ditto. |
| * gimple-range.h: Include gimple-range-trace.h. |
| (range_on_entry, range_on_exit): No longer virtual. |
| (class trace_ranger): Remove. |
| (DEBUG_RANGE_CACHE): Move to gimple-range-trace.h. |
| |
| 2021-08-17 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/101854 |
| * builtins.c (expand_builtin_alloca): Move warning code to check_alloca |
| in gimple-ssa-warn-access.cc. |
| * calls.c (alloc_max_size): Move code to check_alloca. |
| (get_size_range): Move to pointer-query.cc. |
| (maybe_warn_alloc_args_overflow): Move to gimple-ssa-warn-access.cc. |
| (get_attr_nonstring_decl): Move to tree.c. |
| (fntype_argno_type): Move to gimple-ssa-warn-access.cc. |
| (append_attrname): Same. |
| (maybe_warn_rdwr_sizes): Same. |
| (initialize_argument_information): Move code to |
| gimple-ssa-warn-access.cc. |
| * calls.h (maybe_warn_alloc_args_overflow): Move to |
| gimple-ssa-warn-access.h. |
| (get_attr_nonstring_decl): Move to tree.h. |
| (maybe_warn_nonstring_arg): Move to gimple-ssa-warn-access.h. |
| (enum size_range_flags): Move to pointer-query.h. |
| (get_size_range): Same. |
| * gimple-ssa-warn-access.cc (has_location): Remove unused overload |
| to avoid Clang -Wunused-function. |
| (get_size_range): Declare static. |
| (maybe_emit_free_warning): Rename... |
| (maybe_check_dealloc_call): ...to this for consistency. |
| (class pass_waccess): Add members. |
| (pass_waccess::~pass_waccess): Defined. |
| (alloc_max_size): Move here from calls.c. |
| (maybe_warn_alloc_args_overflow): Same. |
| (check_alloca): New function. |
| (check_alloc_size_call): New function. |
| (check_strncat): Handle another warning flag. |
| (pass_waccess::check_builtin): Handle alloca. |
| (fntype_argno_type): Move here from calls.c. |
| (append_attrname): Same. |
| (maybe_warn_rdwr_sizes): Same. |
| (pass_waccess::check_call): Define. |
| (check_nonstring_args): New function. |
| (pass_waccess::check): Call new member functions. |
| (pass_waccess::execute): Enable ranger. |
| * gimple-ssa-warn-access.h (get_size_range): Move here from calls.h. |
| (maybe_warn_nonstring_arg): Same. |
| * gimple-ssa-warn-restrict.c: Remove #include. |
| * pointer-query.cc (get_size_range): Move here from calls.c. |
| * pointer-query.h (enum size_range_flags): Same. |
| (get_size_range): Same. |
| * tree.c (get_attr_nonstring_decl): Move here from calls.c. |
| * tree.h (get_attr_nonstring_decl): Move here from calls.h. |
| |
| 2021-08-17 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * ggc.h (ggc_collect): Add 'force_collect' parameter. |
| * ggc-page.c (ggc_collect): Use that one instead of global |
| 'ggc_force_collect'. Adjust all users. |
| * doc/gty.texi (Invoking the garbage collector): Update. |
| * ggc-internal.h (ggc_force_collect): Remove. |
| * ggc-common.c (ggc_force_collect): Likewise. |
| * selftest.h (forcibly_ggc_collect): Remove. |
| * ggc-tests.c (selftest::forcibly_ggc_collect): Likewise. |
| * read-rtl-function.c (test_loading_labels): Adjust. |
| * selftest-run-tests.c (run_tests): Likewise. |
| |
| 2021-08-17 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (darwin_file_end): Reset and reclaim the |
| section names table at the end of compile. |
| |
| 2021-08-17 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/100340 |
| * config.in: Regenerate. |
| * config/i386/darwin.h (EXTRA_ASM_OPTS): New |
| (ASM_SPEC): Pass options to disable branch shortening where |
| needed. |
| * configure: Regenerate. |
| * configure.ac: Detect versions of 'as' that support the |
| optimisation which has the bug. |
| |
| 2021-08-17 Richard Biener <rguenther@suse.de> |
| |
| * optabs-query.c (supports_vec_gather_load_p): Also check |
| for masked optabs. |
| (supports_vec_scatter_store_p): Likewise. |
| * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Fall |
| back to masked variants if non-masked are not supported. |
| * tree-vect-patterns.c (vect_recog_gather_scatter_pattern): |
| When we need to use masked gather/scatter but do not have |
| a mask set up a constant true one. |
| * tree-vect-stmts.c (vect_check_scalar_mask): Also allow |
| non-SSA_NAME masks. |
| |
| 2021-08-17 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * tree-ssa-ccp.c (bit_value_binop) [MINUS_EXPR]: Use same |
| algorithm as PLUS_EXPR to improve subtraction bit bounds. |
| [POINTER_DIFF_EXPR]: Treat as synonymous with MINUS_EXPR. |
| |
| 2021-08-17 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * tree-ssa-ccp.c (bit_value_mult_const): New helper function to |
| calculate the mask-value pair result of a multiplication by an |
| unsigned constant. |
| (bit_value_binop) [MULT_EXPR]: Call it from here for |
| multiplications by (sparse) non-negative constants. |
| |
| 2021-08-17 Christophe Lyon <christophe.lyon@foss.st.com> |
| |
| PR target/100896 |
| * config.gcc (gcc_cv_initfini_array): Leave undefined for |
| uclinuxfdpiceabi targets. |
| |
| 2021-08-17 Alexandre Oliva <oliva@adacore.com> |
| |
| * tree-inline.c (maybe_move_debug_stmts_to_successors): Don't |
| reverse debug stmts. |
| |
| 2021-08-17 Alexandre Oliva <oliva@adacore.com> |
| |
| * tree-cfg.c (dump_function_to_file): Use fun, not cfun. |
| |
| 2021-08-17 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (__LD4_LANE_FUNC): Delete. |
| (__LD4Q_LANE_FUNC): Likewise. |
| (vld4_lane_u8): Define without macro. |
| (vld4_lane_u16): Likewise. |
| (vld4_lane_u32): Likewise. |
| (vld4_lane_u64): Likewise. |
| (vld4_lane_s8): Likewise. |
| (vld4_lane_s16): Likewise. |
| (vld4_lane_s32): Likewise. |
| (vld4_lane_s64): Likewise. |
| (vld4_lane_f16): Likewise. |
| (vld4_lane_f32): Likewise. |
| (vld4_lane_f64): Likewise. |
| (vld4_lane_p8): Likewise. |
| (vld4_lane_p16): Likewise. |
| (vld4_lane_p64): Likewise. |
| (vld4q_lane_u8): Likewise. |
| (vld4q_lane_u16): Likewise. |
| (vld4q_lane_u32): Likewise. |
| (vld4q_lane_u64): Likewise. |
| (vld4q_lane_s8): Likewise. |
| (vld4q_lane_s16): Likewise. |
| (vld4q_lane_s32): Likewise. |
| (vld4q_lane_s64): Likewise. |
| (vld4q_lane_f16): Likewise. |
| (vld4q_lane_f32): Likewise. |
| (vld4q_lane_f64): Likewise. |
| (vld4q_lane_p8): Likewise. |
| (vld4q_lane_p16): Likewise. |
| (vld4q_lane_p64): Likewise. |
| (vld4_lane_bf16): Likewise. |
| (vld4q_lane_bf16): Likewise. |
| |
| 2021-08-17 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (__LD3_LANE_FUNC): Delete. |
| (__LD3Q_LANE_FUNC): Delete. |
| (vld3_lane_u8): Define without macro. |
| (vld3_lane_u16): Likewise. |
| (vld3_lane_u32): Likewise. |
| (vld3_lane_u64): Likewise. |
| (vld3_lane_s8): Likewise. |
| (vld3_lane_s16): Likewise. |
| (vld3_lane_s32): Likewise. |
| (vld3_lane_s64): Likewise. |
| (vld3_lane_f16): Likewise. |
| (vld3_lane_f32): Likewise. |
| (vld3_lane_f64): Likewise. |
| (vld3_lane_p8): Likewise. |
| (vld3_lane_p16): Likewise. |
| (vld3_lane_p64): Likewise. |
| (vld3q_lane_u8): Likewise. |
| (vld3q_lane_u16): Likewise. |
| (vld3q_lane_u32): Likewise. |
| (vld3q_lane_u64): Likewise. |
| (vld3q_lane_s8): Likewise. |
| (vld3q_lane_s16): Likewise. |
| (vld3q_lane_s32): Likewise. |
| (vld3q_lane_s64): Likewise. |
| (vld3q_lane_f16): Likewise. |
| (vld3q_lane_f32): Likewise. |
| (vld3q_lane_f64): Likewise. |
| (vld3q_lane_p8): Likewise. |
| (vld3q_lane_p16): Likewise. |
| (vld3q_lane_p64): Likewise. |
| (vld3_lane_bf16): Likewise. |
| (vld3q_lane_bf16): Likewise. |
| |
| 2021-08-17 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Delete. |
| (__LD2Q_LANE_FUNC): Likewise. |
| (vld2_lane_u8): Define without macro. |
| (vld2_lane_u16): Likewise. |
| (vld2_lane_u32): Likewise. |
| (vld2_lane_u64): Likewise. |
| (vld2_lane_s8): Likewise. |
| (vld2_lane_s16): Likewise. |
| (vld2_lane_s32): Likewise. |
| (vld2_lane_s64): Likewise. |
| (vld2_lane_f16): Likewise. |
| (vld2_lane_f32): Likewise. |
| (vld2_lane_f64): Likewise. |
| (vld2_lane_p8): Likewise. |
| (vld2_lane_p16): Likewise. |
| (vld2_lane_p64): Likewise. |
| (vld2q_lane_u8): Likewise. |
| (vld2q_lane_u16): Likewise. |
| (vld2q_lane_u32): Likewise. |
| (vld2q_lane_u64): Likewise. |
| (vld2q_lane_s8): Likewise. |
| (vld2q_lane_s16): Likewise. |
| (vld2q_lane_s32): Likewise. |
| (vld2q_lane_s64): Likewise. |
| (vld2q_lane_f16): Likewise. |
| (vld2q_lane_f32): Likewise. |
| (vld2q_lane_f64): Likewise. |
| (vld2q_lane_p8): Likewise. |
| (vld2q_lane_p16): Likewise. |
| (vld2q_lane_p64): Likewise. |
| (vld2_lane_bf16): Likewise. |
| (vld2q_lane_bf16): Likewise. |
| |
| 2021-08-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> |
| |
| * haifa-sched.c (advance_one_cycle): Output more context-synchronization |
| lines for diff. |
| |
| 2021-08-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> |
| |
| * haifa-sched.c (enum rfs_decision, rfs_str): Add RFS_AUTOPREF. |
| (rank_for_schedule): Use it. |
| |
| 2021-08-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> |
| |
| PR rtl-optimization/91598 |
| * haifa-sched.c (autopref_rank_for_schedule): Prioritize "irrelevant" |
| insns after memory reads and before memory writes. |
| |
| 2021-08-17 Alistair_Lee <alistair.lee@arm.com> |
| |
| * rtl.h (CONST_VECTOR_P): New macro. |
| * config/aarch64/aarch64.c (aarch64_get_sve_pred_bits): Use RTL |
| code testing macros. |
| (aarch64_ptrue_all_mode): Likewise. |
| (aarch64_expand_mov_immediate): Likewise. |
| (aarch64_const_vec_all_in_range_p): Likewise. |
| (aarch64_rtx_costs): Likewise. |
| (aarch64_legitimate_constant_p): Likewise. |
| (aarch64_simd_valid_immediate): Likewise. |
| (aarch64_simd_make_constant): Likewise. |
| (aarch64_convert_mult_to_shift): Likewise. |
| (aarch64_expand_sve_vec_perm): Likewise. |
| (aarch64_vec_fpconst_pow_of_2): Likewise. |
| |
| 2021-08-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/101938 |
| * range-op.cc (operator_abs::op1_range): Special case |
| -TYPE_MIN_VALUE for flag_wrapv. |
| |
| 2021-08-17 Kewen Lin <linkw@linux.ibm.com> |
| |
| * tree-vect-slp.c (vectorizable_bb_reduc_epilogue): Add the cost for |
| value extraction. |
| |
| 2021-08-17 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.def (OMP_SCOPE): New tree code. |
| * tree.h (OMP_SCOPE_BODY, OMP_SCOPE_CLAUSES): Define. |
| * tree-nested.c (convert_nonlocal_reference_stmt, |
| convert_local_reference_stmt, convert_gimple_call): Handle |
| GIMPLE_OMP_SCOPE. |
| * tree-pretty-print.c (dump_generic_node): Handle OMP_SCOPE. |
| * gimple.def (GIMPLE_OMP_SCOPE): New gimple code. |
| * gimple.c (gimple_build_omp_scope): New function. |
| (gimple_copy): Handle GIMPLE_OMP_SCOPE. |
| * gimple.h (gimple_build_omp_scope): Declare. |
| (gimple_has_substatements): Handle GIMPLE_OMP_SCOPE. |
| (gimple_omp_scope_clauses, gimple_omp_scope_clauses_ptr, |
| gimple_omp_scope_set_clauses): New inline functions. |
| (CASE_GIMPLE_OMP): Add GIMPLE_OMP_SCOPE. |
| * gimple-pretty-print.c (dump_gimple_omp_scope): New function. |
| (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCOPE. |
| * gimple-walk.c (walk_gimple_stmt): Likewise. |
| * gimple-low.c (lower_stmt): Likewise. |
| * gimplify.c (is_gimple_stmt): Handle OMP_MASTER. |
| (gimplify_scan_omp_clauses): For task reductions, handle OMP_SCOPE |
| like ORT_WORKSHARE constructs. Adjust diagnostics for %<scope%> |
| allowing task reductions. Reject inscan reductions on scope. |
| (omp_find_stores_stmt): Handle GIMPLE_OMP_SCOPE. |
| (gimplify_omp_workshare, gimplify_expr): Handle OMP_SCOPE. |
| * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_SCOPE. |
| (estimate_num_insns): Likewise. |
| * omp-low.c (build_outer_var_ref): Look through GIMPLE_OMP_SCOPE |
| contexts if var isn't privatized there. |
| (check_omp_nesting_restrictions): Handle GIMPLE_OMP_SCOPE. |
| (scan_omp_1_stmt): Likewise. |
| (maybe_add_implicit_barrier_cancel): Look through outer |
| scope constructs. |
| (lower_omp_scope): New function. |
| (lower_omp_task_reductions): Handle OMP_SCOPE. |
| (lower_omp_1): Handle GIMPLE_OMP_SCOPE. |
| (diagnose_sb_1, diagnose_sb_2): Likewise. |
| * omp-expand.c (expand_omp_single): Support also GIMPLE_OMP_SCOPE. |
| (expand_omp): Handle GIMPLE_OMP_SCOPE. |
| (omp_make_gimple_edges): Likewise. |
| * omp-builtins.def (BUILT_IN_GOMP_SCOPE_START): New built-in. |
| |
| 2021-08-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101925 |
| * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Set |
| reverse on COMPONENT_REF and ARRAY_REF according to |
| what reverse_storage_order_for_component_p does. |
| (vn_reference_eq): Compare reversed on reference ops. |
| (reverse_storage_order_for_component_p): New overload. |
| (vn_reference_lookup_3): Check reverse_storage_order_for_component_p |
| on the reference looked up. |
| |
| 2021-08-17 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config/h8300/h8300.c (shift_alg_si): Avoid loops for most SImode |
| shifts on the H8/S. |
| (h8300_option_override): Use loops on H8/S more often when optimizing |
| for size. |
| (get_shift_alg): Handle new "special" cases on H8/S. Simplify |
| accordingly. Handle various arithmetic right shifts with special |
| sequences that we couldn't handle before. |
| |
| 2021-08-16 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config.gcc (rl78-*-elf*): Do not include dbxelf.h. |
| |
| 2021-08-16 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config/sparc/rtemself.h (SPARC_GCOV_TYPE_SIZE): Define. |
| * config/sparc/sparc.c (sparc_gcov_type_size): New. |
| (TARGET_GCOV_TYPE_SIZE): Redefine if SPARC_GCOV_TYPE_SIZE is defined. |
| * coverage.c (get_gcov_type): Use targetm.gcov_type_size(). |
| * doc/tm.texi (TARGET_GCOV_TYPE_SIZE): Add hook under "Misc". |
| * doc/tm.texi.in: Regenerate. |
| * target.def (gcov_type_size): New target hook. |
| * targhooks.c (default_gcov_type_size): New. |
| * targhooks.h (default_gcov_type_size): Declare. |
| * tree-profile.c (gimple_gen_edge_profiler): Use precision of |
| gcov_type_node. |
| (gimple_gen_time_profiler): Likewise. |
| |
| 2021-08-16 Eric Botcazou <ebotcazou@gcc.gnu.org> |
| |
| * dwarf2out.c (add_scalar_info): Deal with DW_AT_data_bit_offset. |
| |
| 2021-08-16 Tobias Burnus <tobias@codesourcery.com> |
| |
| PR middle-end/101931 |
| * omp-low.c (omp_runtime_api_call): Update for routines |
| added in the meanwhile. |
| |
| 2021-08-16 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/100393 |
| * tree-switch-conversion.c (group_cluster::dump): Use |
| get_comparison_count. |
| (jump_table_cluster::find_jump_tables): Pre-compute number of |
| comparisons and then decrement it. Cache also max_ratio. |
| (jump_table_cluster::can_be_handled): Change signature. |
| * tree-switch-conversion.h (get_comparison_count): New. |
| |
| 2021-08-16 Eric Botcazou <ebotcazou@gcc.gnu.org> |
| |
| * dwarf2out.c (add_data_member_location_attribute): Use GNAT |
| encodings only when -fgnat-encodings=all is specified. |
| (add_bound_info): Likewise. |
| (add_byte_size_attribute): Likewise. |
| (gen_member_die): Likewise. |
| |
| 2021-08-16 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-oacc-neuter-broadcast.cc |
| (execute_omp_oacc_neuter_broadcast): Plug 'par' memory leak. |
| |
| 2021-08-16 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-oacc-neuter-broadcast.cc |
| (execute_omp_oacc_neuter_broadcast): Clarify memory management for |
| 'prop_set'. |
| |
| 2021-08-16 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-oacc-neuter-broadcast.cc (field_map): Move variable into... |
| (execute_omp_oacc_neuter_broadcast): ... here. |
| (install_var_field, build_receiver_ref, build_sender_ref): Take |
| 'field_map_t *' parameter. Adjust all users. |
| (worker_single_copy, neuter_worker_single): Take a |
| 'record_field_map_t *' parameter. Adjust all users. |
| |
| 2021-08-16 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101930 |
| * config/i386/i386.md (ldexp<mode>3): Force operands[1] to |
| reg. |
| |
| 2021-08-16 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/101726 |
| * multiple_target.c (create_dispatcher_calls): Make default |
| function local only if it is a definition. |
| |
| 2021-08-16 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/100600 |
| * ipa-icf-gimple.c (func_checker::compare_ssa_name): Do not |
| consider equal SSA_NAMEs when one is a param. |
| |
| 2021-08-16 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101846 |
| * config/i386/i386-expand.c (ix86_expand_vec_perm_vpermt2): |
| Support vpermi2b for V32QI/V16QImode. |
| (ix86_extract_perm_from_pool_constant): New function. |
| (ix86_expand_vec_one_operand_perm_avx512): Support |
| vpermw/vpermb under TARGET_AVX512BW/TARGET_AVX512VBMI. |
| (expand_vec_perm_1): Adjust comments for upper. |
| * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): |
| New declare. |
| * config/i386/predicates.md (permvar_truncate_operand): New predicate. |
| (pshufb_truncv4siv4hi_operand): Ditto. |
| (pshufb_truncv8hiv8qi_operand): Ditto. |
| * config/i386/sse.md (*avx512bw_permvar_truncv16siv16hi_1): |
| New pre_reload define_insn_and_split. |
| (*avx512f_permvar_truncv8siv8hi_1): Ditto. |
| (*avx512f_vpermvar_truncv8div8si_1): Ditto. |
| (*avx512f_permvar_truncv32hiv32qi_1): Ditto. |
| (*avx512f_permvar_truncv16hiv16qi_1): Ditto. |
| (*avx512f_permvar_truncv4div4si_1): Ditto. |
| (*avx512f_pshufb_truncv8hiv8qi_1): Ditto. |
| (*avx512f_pshufb_truncv4siv4hi_1): Ditto. |
| (*avx512f_pshufd_truncv2div2si_1): Ditto. |
| |
| 2021-08-16 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/multilib-generator: Support code model option for |
| multi-lib. |
| * doc/install.texi: Add document of new option for |
| --with-multilib-generator. |
| |
| 2021-08-15 Clément Chigot <clement.chigot@atos.net> |
| |
| * config/rs6000/rs6000.c (xcoff_tls_exec_model_detected): New. |
| (rs6000_legitimize_tls_address_aix): Use it. |
| (rs6000_xcoff_file_end): Add ".ref __tls_get_addr" when |
| xcoff_tls_exec_model_detected is true. |
| |
| 2021-08-15 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config/h8300/h8300.c (shift_alg_si): Retune H8/300H shifts |
| to allow a bit more code growth, saving many dozens of cycles. |
| (h8300_option_override): Adjus shift_alg_si if optimizing for |
| code size. |
| (get_shift_alg): Use special + inline shifts for residuals |
| in more cases. |
| |
| 2021-08-14 Stafford Horne <shorne@gmail.com> |
| |
| PR target/99783 |
| * config/or1k/or1k-opts.h: New file. |
| * config/or1k/or1k.c (or1k_legitimize_address_1, print_reloc): |
| Support generating gotha relocations if -mcmodel=large is |
| specified. |
| * config/or1k/or1k.h (TARGET_CMODEL_SMALL, TARGET_CMODEL_LARGE): |
| New macros. |
| * config/or1k/or1k.opt (mcmodel=): New option. |
| * doc/invoke.texi (OpenRISC Options): Document mcmodel. |
| |
| 2021-08-14 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/101791 |
| * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Use new argument |
| to valid_new_delete_pair_p. |
| * tree.c (valid_new_delete_pair_p): Add argument. |
| * tree.h (valid_new_delete_pair_p): Same. |
| |
| 2021-08-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/101896 |
| * config/i386/i386-expand.c (expand_vec_perm_broadcast_1) |
| <case E_V64QImode>: For this mode assert |
| !TARGET_AVX512BW || d->perm[0] rather than !TARGET_AVX2 || d->perm[0]. |
| |
| 2021-08-13 Michael Meissner <meissner@linux.ibm.com> |
| |
| PR target/99921 |
| * config/rs6000/altivec.md (xxeval): Use register_predicate |
| instead of altivec_register_predicate. |
| |
| 2021-08-13 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/101734 |
| * tree-ssa-uninit.c (maybe_warn_read_write_only): New function. |
| (maybe_warn_operand): Call it. |
| |
| 2021-08-13 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/101354 |
| * attribs.c (decl_attributes): Make naked functions "noipa" |
| functions. |
| |
| 2021-08-13 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/101261 |
| * symtab.c (symtab_node::noninterposable_alias): Do not create |
| local aliases for target_clone functions as the clonning pass |
| rejects aliases. |
| |
| 2021-08-13 Martin Liska <mliska@suse.cz> |
| |
| * opts.c (LIVE_PATCHING_OPTION): Define. |
| (control_options_for_live_patching): Use it in error messages. |
| |
| 2021-08-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c (dump_eaf_flags): Dump EAF_NOREAD. |
| (implicit_const_eaf_flags, implicit_pure_eaf_flags, |
| ignore_stores_eaf_flags): New constants. |
| (remove_useless_eaf_flags): New function. |
| (eaf_flags_useful_p): Use it. |
| (deref_flags): Add EAF_NOT_RETURNED if flag is unused; |
| handle EAF_NOREAD. |
| (modref_lattice::init): Add EAF_NOREAD. |
| (modref_lattice::add_escape_point): Do not reacord escape point if |
| result is unused. |
| (modref_lattice::merge): EAF_NOESCAPE implies EAF_NODIRECTESCAPE; |
| use remove_useless_eaf_flags. |
| (modref_lattice::merge_deref): Use ignore_stores_eaf_flags. |
| (modref_lattice::merge_direct_load): Add EAF_NOREAD |
| (analyze_ssa_name_flags): Fix handling EAF_NOT_RETURNED |
| (analyze_parms): Use remove_useless_eaf_flags. |
| (ipa_merge_modref_summary_after_inlining): Use ignore_stores_eaf_flags. |
| (modref_merge_call_site_flags): Add caller and ecf_flags parameter; |
| use remove_useless_eaf_flags. |
| (modref_propagate_flags_in_scc): Update. |
| * ipa-modref.h: Turn eaf_flags_t back to char. |
| * tree-core.h (EAF_NOT_RETURNED): Fix. |
| (EAF_NOREAD): New constant |
| * tree-ssa-alias.c: (ref_maybe_used_by_call_p_1): Check for |
| EAF_NOREAD. |
| * tree-ssa-structalias.c (handle_rhs_call): Handle new flags. |
| (handle_pure_call): Likewise. |
| |
| 2021-08-12 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.def (OMP_MASKED): New tree code. |
| * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_FILTER. |
| * tree.h (OMP_MASKED_BODY, OMP_MASKED_CLAUSES, OMP_MASKED_COMBINED, |
| OMP_CLAUSE_FILTER_EXPR): Define. |
| * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FILTER entry. |
| (omp_clause_code_name): Likewise. |
| (walk_tree_1): Handle OMP_CLAUSE_FILTER. |
| * tree-nested.c (convert_nonlocal_omp_clauses, |
| convert_local_omp_clauses): Handle OMP_CLAUSE_FILTER. |
| (convert_nonlocal_reference_stmt, convert_local_reference_stmt, |
| convert_gimple_call): Handle GIMPLE_OMP_MASTER. |
| * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FILTER. |
| (dump_generic_node): Handle OMP_MASTER. |
| * gimple.def (GIMPLE_OMP_MASKED): New gimple code. |
| * gimple.c (gimple_build_omp_masked): New function. |
| (gimple_copy): Handle GIMPLE_OMP_MASKED. |
| * gimple.h (gimple_build_omp_masked): Declare. |
| (gimple_has_substatements): Handle GIMPLE_OMP_MASKED. |
| (gimple_omp_masked_clauses, gimple_omp_masked_clauses_ptr, |
| gimple_omp_masked_set_clauses): New inline functions. |
| (CASE_GIMPLE_OMP): Add GIMPLE_OMP_MASKED. |
| * gimple-pretty-print.c (dump_gimple_omp_masked): New function. |
| (pp_gimple_stmt_1): Handle GIMPLE_OMP_MASKED. |
| * gimple-walk.c (walk_gimple_stmt): Likewise. |
| * gimple-low.c (lower_stmt): Likewise. |
| * gimplify.c (is_gimple_stmt): Handle OMP_MASTER. |
| (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_FILTER. For clauses |
| that take one expression rather than decl or constant, force |
| gimplification of that into a SSA_NAME or temporary unless min |
| invariant. |
| (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_FILTER. |
| (gimplify_expr): Handle OMP_MASKED. |
| * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_MASKED. |
| (estimate_num_insns): Likewise. |
| * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FILTER. |
| (check_omp_nesting_restrictions): Handle GIMPLE_OMP_MASKED. Adjust |
| diagnostics for existence of masked construct. |
| (scan_omp_1_stmt, lower_omp_master, lower_omp_1, diagnose_sb_1, |
| diagnose_sb_2): Handle GIMPLE_OMP_MASKED. |
| * omp-expand.c (expand_omp_synch, expand_omp, omp_make_gimple_edges): |
| Likewise. |
| |
| 2021-08-12 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/98309 |
| * config/i386/i386.md (avx512f_scalef<mode>2): New insn pattern. |
| (ldexp<mode>3): Use avx512f_scalef<mode>2. |
| (UNSPEC_SCALEF): Move from ... |
| * config/i386/sse.md (UNSPEC_SCALEF): ... here. |
| |
| 2021-08-12 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-split.c (consider_split): Fix condition testing void functions. |
| |
| 2021-08-12 Aldy Hernandez <aldyh@redhat.com> |
| |
| * doc/invoke.texi: Remove docs for threader-mode param. |
| * flag-types.h (enum threader_mode): Remove. |
| * params.opt: Remove threader-mode param. |
| * tree-ssa-threadbackward.c (class back_threader): Remove |
| path_is_unreachable_p. |
| Make find_paths private. |
| Add maybe_thread and thread_through_all_blocks. |
| Remove reference marker for m_registry. |
| Remove reference marker for m_profit. |
| (back_threader::back_threader): Adjust for registry and profit not |
| being references. |
| (dump_path): Move down. |
| (debug): Move down. |
| (class thread_jumps): Remove. |
| (class back_threader_registry): Remove m_all_paths. |
| Remove destructor. |
| (thread_jumps::thread_through_all_blocks): Move to back_threader |
| class. |
| (fsm_find_thread_path): Remove |
| (back_threader::maybe_thread): New. |
| (back_threader::thread_through_all_blocks): Move from |
| thread_jumps. |
| (back_threader_registry::back_threader_registry): Remove |
| m_all_paths. |
| (back_threader_registry::~back_threader_registry): Remove. |
| (thread_jumps::find_taken_edge): Remove. |
| (thread_jumps::check_subpath_and_update_thread_path): Remove. |
| (thread_jumps::maybe_register_path): Remove. |
| (thread_jumps::handle_phi): Remove. |
| (handle_assignment_p): Remove. |
| (thread_jumps::handle_assignment): Remove. |
| (thread_jumps::fsm_find_control_statement_thread_paths): Remove. |
| (thread_jumps::find_jump_threads_backwards): Remove. |
| (thread_jumps::find_jump_threads_backwards_with_ranger): Remove. |
| (try_thread_blocks): Rename find_jump_threads_backwards to |
| maybe_thread. |
| (pass_early_thread_jumps::execute): Same. |
| |
| 2021-08-12 Tobias Burnus <tobias@codesourcery.com> |
| |
| * tree-core.h (omp_clause_proc_bind_kind): Add |
| OMP_CLAUSE_PROC_BIND_PRIMARY. |
| * tree-pretty-print.c (dump_omp_clause): Add TODO comment to |
| change 'master' to 'primary' in proc_bind for OpenMP 5.1. |
| |
| 2021-08-12 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * common/config/arc/arc-common.c (arc_option_init_struct): Remove |
| fno-common reference. |
| * config/arc/arc.c (arc_override_options): Remove overriding of |
| flag_no_common. |
| |
| 2021-08-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/101860 |
| * config/i386/i386-expand.c (ix86_expand_vec_one_operand_perm_avx512): |
| If d->testing_p, return true after performing checks instead of |
| actually expanding the insn. |
| (expand_vec_perm_broadcast_1): Handle V32HImode - assert |
| !TARGET_AVX512BW and return false. |
| |
| 2021-08-12 Eric Botcazou <ebotcazou@gcc.gnu.org> |
| |
| * configure.ac (PE linker --disable-dynamicbase support): New check. |
| * configure: Regenerate. |
| * config.in: Likewise. |
| * config/i386/mingw32.h (LINK_SPEC_DISABLE_DYNAMICBASE): New define. |
| (LINK_SPEC): Use it. |
| * config/i386/mingw-w64.h (LINK_SPEC_DISABLE_DYNAMICBASE): Likewise. |
| (LINK_SPEC): Likewise. |
| |
| 2021-08-12 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101846 |
| * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_2): New |
| post_reload define_insn_and_split. |
| (*avx512bw_zero_extendv32qiv32hi2_2): Ditto. |
| (*sse4_1_zero_extendv8qiv8hi2_4): Ditto. |
| (*avx512f_zero_extendv16hiv16si2_2): Ditto. |
| (*avx2_zero_extendv8hiv8si2_2): Ditto. |
| (*sse4_1_zero_extendv4hiv4si2_4): Ditto. |
| (*avx512f_zero_extendv8siv8di2_2): Ditto. |
| (*avx2_zero_extendv4siv4di2_2): Ditto. |
| (*sse4_1_zero_extendv2siv2di2_4): Ditto. |
| (VI248_256, VI248_512, VI148_512, VI148_256, VI148_128): New |
| mode iterator. |
| |
| 2021-08-11 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add always, power5, and |
| power6 stanzas. |
| |
| 2021-08-11 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add vsx stanza. |
| |
| 2021-08-11 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Finish altivec stanza. |
| * config/rs6000/rs6000-call.c (rs6000_init_builtins): Move |
| initialization of pcvoid_type_node here... |
| (altivec_init_builtins): ...from here. |
| * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add |
| RS6000_BTI_const_ptr_void. |
| (pcvoid_type_node): New macro. |
| |
| 2021-08-11 Richard Biener <rguenther@suse.de> |
| |
| PR target/101877 |
| * tree-ssa-forwprop.c (pass_forwprop::execute): Do not decompose |
| hard-register accesses. |
| |
| 2021-08-11 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-operands.c (operands_scanner::get_expr_operands): |
| Do not look at COMPONENT_REF FIELD_DECLs TREE_THIS_VOLATILE |
| to determine has_volatile_ops. |
| |
| 2021-08-11 Eric Botcazou <ebotcazou@gcc.gnu.org> |
| |
| * cfgexpand.c (expand_used_vars): Reuse attribs local variable. |
| |
| 2021-08-11 Jan Hubicka <hubicka@ucw.cz> |
| Alexandre Oliva <oliva@adacore.com> |
| |
| * ipa-modref.c (modref_lattice::dump): Fix escape_point's min_flags |
| dumping. |
| (modref_lattice::merge_deref): Fix handling of indirect scape points. |
| (update_escape_summary_1): Likewise. |
| (update_escape_summary): Likewise. |
| (ipa_merge_modref_summary_after_inlining): Likewise. |
| |
| 2021-08-11 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/101858 |
| * fold-const.c (fold_binary_loc): Guard simplification |
| of X < (cast) (1 << Y) to integer types. |
| |
| 2021-08-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101861 |
| * tree-vect-stmts.c (vectorizable_load): Fix error in |
| previous change with regard to gather vectorization. |
| |
| 2021-08-11 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR target/66791 |
| * config/arm/arm_neon.h (vdup_n_s8): Replace call to builtin |
| with constructor. |
| (vdup_n_s16): Likewise. |
| (vdup_n_s32): Likewise. |
| (vdup_n_s64): Likewise. |
| (vdup_n_u8): Likewise. |
| (vdup_n_u16): Likewise. |
| (vdup_n_u32): Likewise. |
| (vdup_n_u64): Likewise. |
| (vdup_n_p8): Likewise. |
| (vdup_n_p16): Likewise. |
| (vdup_n_p64): Likewise. |
| (vdup_n_f16): Likewise. |
| (vdup_n_f32): Likewise. |
| (vdupq_n_s8): Likewise. |
| (vdupq_n_s16): Likewise. |
| (vdupq_n_s32): Likewise. |
| (vdupq_n_s64): Likewise. |
| (vdupq_n_u8): Likewise. |
| (vdupq_n_u16): Likewise. |
| (vdupq_n_u32): Likewise. |
| (vdupq_n_u64): Likewise. |
| (vdupq_n_p8): Likewise. |
| (vdupq_n_p16): Likewise. |
| (vdupq_n_p64): Likewise. |
| (vdupq_n_f16): Likewise. |
| (vdupq_n_f32): Likewise. |
| (vmov_n_s8): Replace call to builtin with call to corresponding |
| vdup_n intrinsic. |
| (vmov_n_s16): Likewise. |
| (vmov_n_s32): Likewise. |
| (vmov_n_s64): Likewise. |
| (vmov_n_u8): Likewise. |
| (vmov_n_u16): Likewise. |
| (vmov_n_u32): Likewise. |
| (vmov_n_u64): Likewise. |
| (vmov_n_p8): Likewise. |
| (vmov_n_p16): Likewise. |
| (vmov_n_f16): Likewise. |
| (vmov_n_f32): Likewise. |
| (vmovq_n_s8): Likewise. |
| (vmovq_n_s16): Likewise. |
| (vmovq_n_s32): Likewise. |
| (vmovq_n_s64): Likewise. |
| (vmovq_n_u8): Likewise. |
| (vmovq_n_u16): Likewise. |
| (vmovq_n_u32): Likewise. |
| (vmovq_n_u64): Likewise. |
| (vmovq_n_p8): Likewise. |
| (vmovq_n_p16): Likewise. |
| (vmovq_n_f16): Likewise. |
| (vmovq_n_f32): Likewise. |
| * config/arm/arm_neon_builtins.def: Remove entries for vdup_n. |
| |
| 2021-08-11 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/98309 |
| * config/i386/i386.md (ldexp<mode>3): Extend to vscalefs[sd] |
| when TARGET_AVX512F and TARGET_SSE_MATH. |
| |
| 2021-08-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80355 |
| * config/i386/i386-expand.c (expand_vec_perm_even_odd): Return false |
| for V32HImode if !TARGET_AVX512BW. |
| (ix86_vectorize_vec_perm_const) <case E_V32HImode, case E_V64QImode>: |
| If !TARGET_AVX512BW and TARGET_AVX512F and d.testing_p, don't fail |
| early, but actually check the permutation. |
| |
| 2021-08-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101809 |
| * tree-vect-stmts.c (get_load_store_type): Allow emulated |
| gathers with offset vector nunits being a constant multiple |
| of the data vector nunits. |
| (vect_get_gather_scatter_ops): Use the appropriate nunits |
| for the offset vector defs. |
| (vectorizable_store): Adjust call to |
| vect_get_gather_scatter_ops. |
| (vectorizable_load): Likewise. Handle the case of less |
| offset vectors than data vectors. |
| |
| 2021-08-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80355 |
| * config/i386/sse.md (*avx512f_shuf_<shuffletype>64x2_1<mask_name>_1, |
| *avx512f_shuf_<shuffletype>32x4_1<mask_name>_1): New define_insn |
| patterns. |
| |
| 2021-08-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101801 |
| PR tree-optimization/101819 |
| * tree-vectorizer.h (vect_emulated_vector_p): Declare. |
| * tree-vect-loop.c (vect_emulated_vector_p): New function. |
| (vectorizable_reduction): Re-instantiate a check for emulated |
| operations. |
| * tree-vect-stmts.c (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. Cost emulated vector |
| operations according to the scalar sequence synthesized by |
| vector lowering. |
| |
| 2021-08-10 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/101824 |
| * tree-nested.c (get_frame_field): Mark the COMPONENT_REF as |
| volatile in case the variable was. |
| |
| 2021-08-10 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101804 |
| * config/i386/constraints.md (BC): Document for integer SSE |
| constant all bits set operand. |
| (BF): New constraint for const floating-point all bits set |
| vectors. |
| * config/i386/i386.c (standard_sse_constant_p): Likewise. |
| (standard_sse_constant_opcode): Likewise. |
| * config/i386/sse.md (sseconstm1): New mode attribute. |
| (mov<mode>_internal): Replace BC with <sseconstm1>. |
| |
|