mirror of git://gcc.gnu.org/git/gcc.git
426 lines
15 KiB
Plaintext
426 lines
15 KiB
Plaintext
2019-01-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/85052
|
||
* tree-vect-generic.c: Include insn-config.h and recog.h.
|
||
(expand_vector_piecewise): Add defaulted ret_type argument,
|
||
if non-NULL, use that in preference to type for the result type.
|
||
(expand_vector_parallel): Formatting fix.
|
||
(do_vec_conversion, do_vec_narrowing_conversion,
|
||
expand_vector_conversion): New functions.
|
||
(expand_vector_operations_1): Call expand_vector_conversion
|
||
for VEC_CONVERT ifn calls.
|
||
* internal-fn.def (VEC_CONVERT): New internal function.
|
||
* internal-fn.c (expand_VEC_CONVERT): New function.
|
||
* fold-const-call.c (fold_const_vec_convert): New function.
|
||
(fold_const_call): Use it for CFN_VEC_CONVERT.
|
||
* doc/extend.texi (__builtin_convertvector): Document.
|
||
|
||
2019-01-07 Tom de Vries <tdevries@suse.de>
|
||
|
||
* config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
|
||
* config/nvptx/nvptx.c (vector_red_size, vector_red_align,
|
||
vector_red_partition, vector_red_sym): New global variables.
|
||
(nvptx_option_override): Initialize vector_red_sym.
|
||
(nvptx_declare_function_name): Restore red_partition register.
|
||
(nvptx_file_end): Emit code to declare the vector reduction variables.
|
||
(nvptx_output_red_partition): New function.
|
||
(nvptx_expand_shared_addr): Add vector argument. Use it to handle
|
||
large vector reductions.
|
||
(enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
|
||
(nvptx_init_builtins): Add VECTOR_ADDR.
|
||
(nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
|
||
Handle nvptx_expand_shared_addr.
|
||
(nvptx_get_shared_red_addr): Add vector argument and handle large
|
||
vectors.
|
||
(nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
|
||
large vectors.
|
||
(nvptx_goacc_reduction_init): Likewise.
|
||
(nvptx_goacc_reduction_fini): Likewise.
|
||
(nvptx_goacc_reduction_teardown): Likewise.
|
||
(nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
|
||
init,fini,teardown}.
|
||
(nvptx_init_axis_predicate): Initialize vector_red_partition.
|
||
(nvptx_set_current_function): Init vector_red_partition.
|
||
* config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
|
||
(nvptx_red_partition): New insn.
|
||
* config/nvptx/nvptx.h (struct machine_function): Add red_partition.
|
||
|
||
2019-01-07 Tom de Vries <tdevries@suse.de>
|
||
|
||
PR target/85381
|
||
* config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
|
||
empty loops.
|
||
|
||
2019-01-07 Tom de Vries <tdevries@suse.de>
|
||
|
||
* config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
|
||
(nvptx_option_override): Init oacc_bcast_partition.
|
||
(nvptx_init_oacc_workers): New function.
|
||
(nvptx_declare_function_name): Call nvptx_init_oacc_workers.
|
||
(nvptx_needs_shared_bcast): New function.
|
||
(nvptx_find_par): Generalize to enable vectors to use shared-memory
|
||
to propagate state.
|
||
(nvptx_shared_propagate): Initialize vector bcast partition and
|
||
synchronization state.
|
||
(nvptx_single): Generalize to enable vectors to use shared-memory
|
||
to propagate state.
|
||
(nvptx_process_pars): Likewise.
|
||
(nvptx_set_current_function): Initialize oacc_broadcast_partition.
|
||
* config/nvptx/nvptx.h (struct machine_function): Add
|
||
bcast_partition and sync_bar members.
|
||
|
||
2019-01-07 Tom de Vries <tdevries@suse.de>
|
||
|
||
* config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
|
||
(nvptx_apply_dim_limits): New function.
|
||
(nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
|
||
PTX_WARP_SIZE.
|
||
|
||
2019-01-07 Tom de Vries <tdevries@suse.de>
|
||
|
||
* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
|
||
as late as possible.
|
||
|
||
2019-01-07 Tom de Vries <tdevries@suse.de>
|
||
|
||
* config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
|
||
(PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
|
||
(nvptx_goacc_validate_dims_1, nvptx_dim_limit)
|
||
(nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
|
||
PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
|
||
|
||
2019-01-07 Tom de Vries <tdevries@suse.de>
|
||
|
||
* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
|
||
|
||
2019-01-07 Tom de Vries <tdevries@suse.de>
|
||
|
||
* omp-offload.c (oacc_get_min_dim): New function.
|
||
* omp-offload.h (oacc_get_min_dim): Declare.
|
||
|
||
2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
|
||
|
||
PR target/88521
|
||
* config/i386/i386.c (function_value_ms_64): Return small sturct in
|
||
AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
|
||
|
||
2019-01-05 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR tree-opt/86020
|
||
Revert:
|
||
2017-05-22 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-inline.c (edge_badness): Use inlined_time instead of
|
||
inline_summaries->get.
|
||
|
||
2019-01-05 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* opts.c (enable_fdo_optimizations): Enable
|
||
version-loops-for-strides, loop-interchange, unrol-and-jam
|
||
and tree-loop-distribution.
|
||
* invoke.texi: Document newly enabled options.
|
||
|
||
2019-01-05 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* doc/invoke.texi (max-inline-insns-small): New parameters.
|
||
* ipa-inline.c (want_early_inline_function_p): simplify.
|
||
(want_inline_small_function_p): Fix pasto from previous patch;
|
||
use max-inline-insns-small bound.
|
||
* params.def (max-inline-insns-small): New param.
|
||
* ipa-fnsummary.c (analyze_function_body): Initialize time/size
|
||
variables correctly.
|
||
|
||
2019-01-05 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* doc/invoke.texi: Document max-inline-insns-size,
|
||
uninlined-function-insns, uninlined-function-time,
|
||
uninlined-thunk-insns and uninlined-thunk-time.
|
||
* params.def: Add max-inline-insns-size,
|
||
uninlined-function-insns, uninlined-function-time,
|
||
uninlined-thunk-insns and uninlined-thunk-time.
|
||
* ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
|
||
new parameters.
|
||
* ipa-inline.c (can_inline_edge_by_limits_p,
|
||
want_inline_small_function_p): Use new parameters.
|
||
|
||
2019-01-05 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
|
||
|
||
2019-01-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/82564
|
||
PR target/88620
|
||
* expr.c (expand_assignment): For calls returning VLA structures
|
||
if to_rtx is not a MEM, force it into a stack temporary.
|
||
|
||
PR debug/88635
|
||
* dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
|
||
SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
|
||
Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
|
||
subexpressions of both operands.
|
||
(mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
|
||
subrtxes are CONSTANT_P.
|
||
* config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
|
||
2018-11-09 changes.
|
||
|
||
2019-01-04 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* params.def (hot-bb-count-ws-permille): Set to 990.
|
||
|
||
2019-01-04 Martin Sebor <msebor@redhat.com>
|
||
|
||
PR c/88546
|
||
* attribs.c (decls_mismatched_attributes): Avoid warning for attribute
|
||
leaf.
|
||
|
||
2019-01-04 Martin Sebor <msebor@redhat.com>
|
||
|
||
PR c/88363
|
||
* doc/extend.texi (attribute alloc_align, alloc_size): Update.
|
||
|
||
2019-01-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* gdbinit.in: Turn off pagination for the skip commands, restore
|
||
it to previous state afterwards.
|
||
|
||
2019-01-04 Sam Tebbs <sam.tebbs@arm.com>
|
||
|
||
PR gcc/87763
|
||
* gcc.target/aarch64/combine_bfxil.c: Change scan-assembler-times bfxil
|
||
count to 18.
|
||
|
||
2019-01-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/88594
|
||
* config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
|
||
of GET_MODE (opN) as modes of the libcall arguments.
|
||
|
||
2019-01-04 Jan Beulich <jbeulich@suse.com>
|
||
|
||
* config/i386/sse.md
|
||
(<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
|
||
<avx512>_cmp<mode>3<mask_scalar_merge_name>,
|
||
<avx512>_ucmp<mode>3<mask_scalar_merge_name>,
|
||
<avx512>_ucmp<mode>3<mask_scalar_merge_name>,
|
||
avx512f_vmcmp<mode>3<round_saeonly_name>,
|
||
avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
|
||
avx512f_maskcmp<mode>3,
|
||
<avx512>_cvt<ssemodesuffix>2mask<mode>,
|
||
<avx512>_cvt<ssemodesuffix>2mask<mode>,
|
||
*<avx512>_cvtmask2<ssemodesuffix><mode>,
|
||
*<avx512>_cvtmask2<ssemodesuffix><mode>,
|
||
<avx512>_eq<mode>3<mask_scalar_merge_name>_1,
|
||
<avx512>_eq<mode>3<mask_scalar_merge_name>_1,
|
||
<avx512>_gt<mode>3<mask_scalar_merge_name>,
|
||
<avx512>_gt<mode>3<mask_scalar_merge_name>,
|
||
<avx512>_testm<mode>3<mask_scalar_merge_name>,
|
||
<avx512>_testnm<mode>3<mask_scalar_merge_name>,
|
||
*<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
|
||
*<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
|
||
*<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
|
||
*<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
|
||
avx512cd_maskb_vec_dup<mode>,
|
||
avx512cd_maskw_vec_dup<mode>,
|
||
avx512dq_fpclass<mode><mask_scalar_merge_name>,
|
||
avx512dq_vmfpclass<mode>,
|
||
avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
|
||
instead of =Yk.
|
||
|
||
2019-01-03 Martin Sebor <msebor@redhat.com>
|
||
|
||
PR tree-optimization/88659
|
||
* calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
|
||
|
||
2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
|
||
|
||
* config/rs6000/rs6000-string.c (expand_block_move): Don't use
|
||
unaligned vsx and avoid lxvd2x/stxvd2x.
|
||
(gen_lvx_v4si_move): New function.
|
||
|
||
2019-01-03 Tom de Vries <tdevries@suse.de>
|
||
|
||
* config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
|
||
(init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
|
||
function.
|
||
* config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
|
||
|
||
2019-01-03 Tom de Vries <tdevries@suse.de>
|
||
|
||
* config/nvptx/nvptx.c (struct offload_attrs): New.
|
||
(populate_offload_attrs): New function. Factor mask extraction out of
|
||
nvptx_reorg. Add extraction of dimensions.
|
||
(nvptx_reorg): Use populate_offload_attrs.
|
||
|
||
2019-01-03 Tom de Vries <tdevries@suse.de>
|
||
|
||
* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
|
||
cases for oacc_min_dims_p and routine_p. Add asserts for
|
||
oacc_default_dims_p and offload_region_p.
|
||
|
||
2019-01-03 Tom de Vries <tdevries@suse.de>
|
||
|
||
* config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
|
||
factored out of ...
|
||
(nvptx_goacc_validate_dims): ... here.
|
||
|
||
2019-01-03 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR tree-optimization/85574
|
||
* tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
|
||
structure.
|
||
(struct ssa_equip_hash_traits): Declare.
|
||
(val_ssa_equiv): Use custom hash traits using operand_equal_p.
|
||
|
||
2019-01-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/88644
|
||
* dwarf2out.c (modified_type_die): If type is equal to sizetype,
|
||
change it to qualified_type.
|
||
|
||
2019-01-03 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
|
||
(ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
|
||
|
||
2019-01-02 Martin Sebor <msebor@redhat.com>
|
||
Jeff Law <law@redhat.com>
|
||
|
||
* gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
|
||
(get_range_strlen_tree): Update appropriately.
|
||
(get_range_strlen)
|
||
* gimple-fold.h (get_range_strlen): Drop unused last argument.
|
||
|
||
* gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
|
||
rather than set_range_info.
|
||
* tree-ssa-strlen.c (set_strlen_range): Extracted from
|
||
maybe_set_strlen_range. Handle potentially boundary crossing
|
||
cases more conservatively.
|
||
(maybe_set_strlen_range): Parts refactored into set_strlen_range.
|
||
Call set_strlen_range.
|
||
* tree-ssa-strlen.h (set_strlen_range): Add prototype.
|
||
|
||
PR middle-end/88663
|
||
* gimple-fold.c (get_range_strlen): Update prototype to no longer
|
||
need the flexp argument.
|
||
(get_range_strlen_tree): Drop flexp argument. Drop flexp argument
|
||
from calls to get_range_strlen. Update comments. Just update
|
||
VAL for an unterminated const char array and let the reset of the
|
||
code handle it normally. No longer try to set *flexp. Adjust
|
||
return value.
|
||
(get_range_strlen): Update for the new get_range_strlen API.
|
||
(get_maxval_strlen): Similarly.
|
||
(gimple_fold_builtin_strlen): Handle update meaning of return value
|
||
from get_range_strlen.
|
||
* gimple-ssa-sprintf.c (get_string_length): Update for the new
|
||
get_range_strlen API.
|
||
|
||
2019-01-02 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR lto/88130
|
||
* varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
|
||
false at WPA time when body was removed.
|
||
|
||
2019-01-02 Martin Liska <mliska@suse.cz>
|
||
|
||
PR tree-optimization/88650
|
||
* predict.c (set_even_probabilities): Calculate probability
|
||
remainer only when really used.
|
||
|
||
2019-01-02 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/88651
|
||
* tree-data-ref.c (analyze_subscript_affine_affine): Use
|
||
widest_ints when mangling max_stmt_execution results.
|
||
|
||
2019-01-02 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/88621
|
||
* tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
|
||
bitfields when canoncalizing.
|
||
|
||
2019-01-02 Richard Biener <rguenther@suse.de>
|
||
|
||
PR target/87545
|
||
* config/i386/x86-tune-costs.h (intel_cost): Adjust
|
||
cost of cheap SSE instruction.
|
||
|
||
2019-01-02 Richard Biener <rguenther@suse.de>
|
||
|
||
PR ipa/85574
|
||
* ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
|
||
* ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
|
||
function.
|
||
(sem_item_optimizer::do_congruence_step_f): Sort the congruence
|
||
set after UIDs before splitting them.
|
||
|
||
2019-01-01 Martin Sebor <msebor@redhat.com>
|
||
Jeff Law <law@redhat.com>
|
||
|
||
* gimple-fold.c (get_range_strlen_tree): Record if the computed
|
||
length is optimistic. If it is, then arrange to compute the
|
||
conservative length as well.
|
||
|
||
* gimple-fold.h (get_range_strlen): Update prototype.
|
||
* builtins.c (check_access): Update call to get_range_strlen to use
|
||
c_strlen_data pointer. Change various variable accesses to instead
|
||
pull data from the c_strlen_data structure.
|
||
(check_strncat_sizes, expand_builtin_strncat): Likewise.
|
||
* calls.c (maybe_warn_nonstring_arg): Likewise.
|
||
* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
|
||
minimum length if maximum lengh is unknown.
|
||
* gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
|
||
that used c_strlen, it's no longer needed. Restructure slightly.
|
||
(format_string): Set unlikely range appropriately.
|
||
* gimple-fold.c (get_range_strlen): Update comments. Fix minor
|
||
formatting issues.
|
||
(get_range_strlen): Accept c_strlen_data pointer for external
|
||
call sites as well. Pass through to call to internal get_range_strlen.
|
||
Adjust minlen, maxlen and maxbound as needed.
|
||
(get_maxval_strlen): Update comments.
|
||
(gimple_fold_builtin_strlen): Update call to get_range_strlen
|
||
to use c_strlen_data pointer. Change variable accesses to instead
|
||
use c_strlen_data data members.
|
||
|
||
* gimple-fold.c (get_range_strlen): Update prototype.
|
||
(get_range_strlen_tree): Update prototype. Drop minlen/maxlen
|
||
local variables. Use pdata to return information to caller.
|
||
Update calls to get_range_strlen. Update pdata->maxbound.
|
||
(get_range_strlen -- static version): Similarly.
|
||
(get_range_strlen -- extern version): Update for internal
|
||
get_range_strlen API change. Convert to external data format.
|
||
(get_maxval_strlen): Similarly.
|
||
|
||
2019-01-01 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* coverage.c (get_coverage_counts): Use current_function_decl.
|
||
* profile.c (read_thunk_profile): New function.
|
||
(branch_prob): Add THUNK parameter.
|
||
* tree-profile.c (tree_profiling): Handle thunks.
|
||
* value-prof.c (init_node_map): Handle thunks.
|
||
* value-prof.h (branch_prob): Upate prototype.
|
||
(read_thunk_profile): Declare.
|
||
|
||
2019-01-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Update copyright years.
|
||
|
||
* gcc.c (process_command): Update copyright notice dates.
|
||
* gcov-dump.c (print_version): Ditto.
|
||
* gcov.c (print_version): Ditto.
|
||
* gcov-tool.c (print_version): Ditto.
|
||
* gengtype.c (create_file): Ditto.
|
||
* doc/cpp.texi: Bump @copying's copyright year.
|
||
* doc/cppinternals.texi: Ditto.
|
||
* doc/gcc.texi: Ditto.
|
||
* doc/gccint.texi: Ditto.
|
||
* doc/gcov.texi: Ditto.
|
||
* doc/install.texi: Ditto.
|
||
* doc/invoke.texi: Ditto.
|
||
|
||
Copyright (C) 2019 Free Software Foundation, Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|