2018-09-24 Martin Liska <mliska@suse.cz>
* gcov.c (output_lines): Print colorization legend
for both flag_use_colors and flag_use_hotness_colors.
Reword the help.
From-SVN: r264531
2018-09-24 Martin Liska <mliska@suse.cz>
* coverage.c (get_coverage_counts): Use warning_at
with current_function_decl location. Use %qD in warning
message.
From-SVN: r264530
2018-09-24 Martin Liska <mliska@suse.cz>
* memory-block.h (memory_block_pool::release): Annotate with
valgrind that the memory is not accessible.
From-SVN: r264529
2018-09-24 Martin Liska <mliska@suse.cz>
PR sanitizer/85774
* asan.c: Make asan_handled_variables extern.
* asan.h: Likewise.
* cfgexpand.c (expand_stack_vars): Make sure
a representative is unpoison if another
variable in the partition is handled by
use-after-scope sanitization.
2018-09-24 Martin Liska <mliska@suse.cz>
PR sanitizer/85774
* g++.dg/asan/pr85774.C: New test.
From-SVN: r264528
The test assumed __int128 to be available whenever __SSE__ was
defined, but this assumption doesn't hold on 32-bit x86. Fixed.
for gcc/testsuite/ChangeLog
PR middle-end/87054
* gcc.dg/pr87054.c: Adjust for no __int128 on x86.
From-SVN: r264526
2018-09-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/63155
* tree-ssa-propagate.c (add_ssa_edge): Avoid adding PHIs to
the worklist when the edge of the respective argument isn't
executable.
From-SVN: r264523
2018-09-23 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/87397
* gfc_conv_procedure_call: Do not add clobber on INTENT(OUT)
for variables having the dimension attribute.
2018-09-23 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/87395
* gfortran.dg/intent_out_11.f90: New test.
From-SVN: r264518
It was recently noticed that for a few of the coarray intrinsics array
index calculations were done in integer_type_node instead of
gfc_array_index_type. This patch fixes this.
Regtested on x86_64-pc-linux-gnu.
gcc/fortran/ChangeLog:
2018-09-23 Janne Blomqvist <jb@gcc.gnu.org>
* trans-expr.c (gfc_caf_get_image_index): Do array index
calculations in gfc_array_index_type.
* trans-intrinsic.c (conv_intrinsic_event_query): Likewise.
* trans-stmt.c (gfc_trans_lock_unlock): Likewise.
(gfc_trans_event_post_wait): Likewise.
gcc/testsuite/ChangeLog:
2018-09-23 Janne Blomqvist <jb@gcc.gnu.org>
* gfortran.dg/coarray_lib_alloc_4.f90: Fix scan patterns.
* gfortran.dg/coarray_lock_7.f90: Likewise.
From-SVN: r264513
2018-09-23 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/87395
* gfc_conv_procedure_call: Reformat comments slightly. Do not add
clobber on INTENT(OUT) for saved variables.
2018-09-23 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/87395
* gfortran.dg/intent_out_10.f90: New test.
From-SVN: r264512
2018-09-22 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/41453
* trans.h (gfc_conv_expr_reference): Add optional argument
add_clobber to prototype.
(gfc_conv_procedure_call): Set add_clobber argument to
gfc_conv_procedure_reference to true for scalar, INTENT(OUT),
non-pointer, non-allocatable, non-dummy variables whose type
is neither BT_CHARACTER, BT_DERIVED or BT_CLASS, but only if
the procedure is not elemental.
* trans-expr.c (gfc_conv_procedure_reference): Add clobber
statement before call if add_clobber is set.
2018-09-22 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/41453
* gfortran.dg/intent_optimize_2.f90: New test.
From-SVN: r264506
2018-09-22 Paul Thomas <pault@gcc.gnu.org>
PR fortran/85603
* trans-array.c (gfc_alloc_allocatable_for_assignment): Test
the charlen backend_decl before using the VAR_P macro.
2018-09-22 Paul Thomas <pault@gcc.gnu.org>
PR fortran/85603
* gfortran.dg/deferred_character_23.f90 : New test.
From-SVN: r264502
* gimple-ssa-evrp.c (evrp_dom_walker::cleanup): Call
vr_values::cleanup_edges_and_switches.
* tree-vrp.c (to_remove_edges, to_update_switch_stmts): Moved into
vr_values class.
(identify_jump_threads): Remove EDGE_IGNORE handling.
(execute_vrp): Move handling of to_remove_edges and
to_update_switch_stmts into vr_values class member functions.
* tree-vrp.h (switch_update, to_remove_edges): Remove declarations.
(to_update_switch_stmts): Likewise.
* vr-values.c: Include cfghooks.h.
(vr_values::vr_values): Initialize to_remove_edges and
to_update_switch_stmts.
(vr_values::~vr_values): Verify to_remove_edges and
to_update_switch_stmts are empty.
(vr_values::simplify_switch_using_ranges): Set EDGE_IGNORE as needed.
(vr_values::cleanup_edges_and_switches): New member function.
* vr-values.h (vr_values): Add cleanup_edges_and_switches member
function. Add new data members.
* gcc.dg/tree-ssa/vrp113.c: Disable EVRP.
* gcc.dg/tree-ssa/vrp120.c: New test.
From-SVN: r264491
* constexpr.c (maybe_constant_init_1): Pass false for strict down to
cxx_eval_outermost_constant_expr.
* g++.dg/cpp1y/func_constexpr2.C: New test.
From-SVN: r264489
When producing error and warning messages, libgfortran writes a
message by using many system calls. By using vectored writes (the
POSIX writev function) when available and feasible to use without
major surgery, we reduce the chance that output gets intermingled with
other output to stderr.
In practice, this is done by introducing a new function estr_writev in
addition to the existing estr_write. In order to use this, the old
st_vprintf is removed, replaced by direct calls of vsnprintf, allowing
more message batching.
Regtested on x86_64-pc-linux-gnu.
libgfortran/ChangeLog:
2018-09-21 Janne Blomqvist <jb@gcc.gnu.org>
* config.h.in: Regenerated.
* configure: Regenerated.
* configure.ac: Check for writev and sys/uio.h.
* libgfortran.h: Include sys/uio.h.
(st_vprintf): Remove prototype.
(struct iovec): Define if not available.
(estr_writev): New prototype.
* runtime/backtrace.c (error_callback): Use estr_writev.
* runtime/error.c (ST_VPRINTF_SIZE): Remove.
(estr_writev): New function.
(st_vprintf): Remove.
(gf_vsnprintf): New function.
(ST_ERRBUF_SIZE): New macro.
(st_printf): Use vsnprintf.
(os_error): Use estr_writev.
(runtime_error): Use vsnprintf and estr_writev.
(runtime_error_at): Likewise.
(runtime_warning_at): Likewise.
(internal_error): Use estr_writev.
(generate_error_common): Likewise.
(generate_warning): Likewise.
(notify_std): Likewise.
* runtime/pause.c (pause_string): Likewise.
* runtime/stop.c (report_exception): Likewise.
(stop_string): Likewise.
(error_stop_string): Likewise.
From-SVN: r264487
2018-09-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/77325
* trans-array.c (gfc_alloc_allocatable_for_assignment): If the
rhs has a charlen expression, convert that and use it.
* trans-expr.c (gfc_trans_assignment_1): The rse.pre for the
assignment of deferred character array vars to a realocatable
lhs should not be added to the exterior block since vector
indices, for example, generate temporaries indexed within the
loop.
2018-09-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/77325
* gfortran.dg/deferred_character_22.f90 : New test.
From-SVN: r264486
2018-09-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/87359
* trans-stmt.c (gfc_trans_allocate): Don't deallocate alloc
components if must_finalize is set for expr3.
2018-09-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/87359
* gfortran.dg/finalize_33.f90 : New test.
From-SVN: r264485
Remove the hypot-long-double.cc file that used dg-xfail-run-if and
simply use the lower tolerance for double if long double is not larger
than double.
* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Remove.
* testsuite/26_numerics/headers/cmath/hypot.cc: Restore test for
long double unconditionally, but use lower tolerance when
sizeof(long double) == sizeof(double).
From-SVN: r264483
In r262891 I reimplemented this call:
dump_printf_loc (MSG_NOTE, loc, "=== %s ===\n", name);
in dump_begin_scope to use direct calls to dump_loc:
if (dump_file)
{
dump_loc (MSG_NOTE, dump_file, loc.get_location_t ());
fprintf (dump_file, "=== %s ===\n", name);
}
if (alt_dump_file)
{
dump_loc (MSG_NOTE, alt_dump_file, loc.get_location_t ());
fprintf (alt_dump_file, "=== %s ===\n", name);
}
However ::dump_loc doesn't filter with pflags and alt_flags.
This lead to stray output of the form:
test.cpp:1:6: note: test.cpp:1:11: note:
when using -fopt-info with "optimized" or "missed".
This patch adds this missing filtering, eliminating the stray partial
note output.
gcc/ChangeLog:
PR tree-optimization/87309
* dumpfile.c (dump_context::begin_scope): Filter the dump_loc
calls with pflags and alt_flags.
(selftest::test_capture_of_dump_calls): Add test of interaction of
MSG_OPTIMIZED_LOCATIONS with AUTO_DUMP_SCOPE.
gcc/testsuite/ChangeLog:
PR tree-optimization/87309
* gcc.dg/pr87309.c: New test.
From-SVN: r264481
2018-09-21 Olivier Hainque <hainque@adacore.com>
* config/vxworks.h (VXWORKS_LIBGCC_SPEC): Remove -lc_internal.
Merge block comment with the one ahead of VXWORKS_LIBS_RTP. Then:
(VXWORKS_LIBS_RTP): Minor reordering.
From-SVN: r264477
2018-09-21 Olivier Hainque <hainque@adacore.com>
* config.gcc: Enforce def of TARGET_VXWORKS64 to 1 from
triplet, similar to support for VxWorks7.
* config/vxworks-dummy.h: Provide a default definition
of TARGET_VXWORKS64 to 0.
From-SVN: r264474
This patch adds HiSilicon's an mcpu: tsv110, which supports v8_4A.
It has been tested on aarch64 and no regressions from this patch.
2018-09-21 Shaokun Zhang <zhangshaokun@hisilicon.com>
Bo Zhou <zbo.zhou@hisilicon.com>
* config/aarch64/aarch64-cores.def (tsv110): New CPU.
* config/aarch64/aarch64-tune.md: Regenerated.
* doc/invoke.texi (AArch64 Options/-mtune): Add "tsv110".
* config/aarch64/aarch64.c (tsv110_tunings): New tuning table.
* config/aarch64/aarch64-cost-tables.h: Add "tsv110" extra costs.
Co-Authored-By: Bo Zhou <zbo.zhou@hisilicon.com>
From-SVN: r264470
The Fortran front-end has a bug in which it uses "int" values for "size_t"
parameters. I don't know why this isn't problem for all 64-bit architectures,
but GCN ends up with the data in the wrong argument register and/or stack slot,
and bad things happen.
This patch corrects the issue by setting the correct type.
2018-09-21 Andrew Stubbs <ams@codesourcery.com>
Kwok Cheung Yeung <kcy@codesourcery.com>
gcc/fortran/
* trans-expr.c (gfc_trans_structure_assign): Ensure that the first
argument of a call to _gfortran_caf_register is of size_type_node.
* trans-intrinsic.c (conv_intrinsic_event_query): Convert computed
index to a size_type_node type.
* trans-stmt.c (gfc_trans_event_post_wait): Likewise.
Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com>
From-SVN: r264468
At present, pointers passed to builtin functions, including atomic operators,
are stripped of their address space properties. This doesn't seem to be
deliberate, it just omits to copy them.
Not only that, but it forces pointer sizes to Pmode, which isn't appropriate
for all address spaces.
This patch attempts to correct both issues. It works for GCN atomics and
GCN OpenACC gang-private variables.
2018-09-21 Andrew Stubbs <ams@codesourcery.com>
Julian Brown <julian@codesourcery.com>
gcc/
* builtins.c (get_builtin_sync_mem): Handle address spaces.
Co-Authored-By: Julian Brown <julian@codesourcery.com>
From-SVN: r264467
2018-09-21 Martin Liska <mliska@suse.cz>
* auto-profile.c (autofdo_source_profile::read): Do not
set sum_all.
(read_profile): Do not add working sets.
(read_autofdo_file): Remove sum_all.
(afdo_callsite_hot_enough_for_early_inline): Remove const
qualifier.
* coverage.c (struct counts_entry): Remove gcov_summary.
(read_counts_file): Read new GCOV_TAG_OBJECT_SUMMARY,
do not support GCOV_TAG_PROGRAM_SUMMARY.
(get_coverage_counts): Remove summary and expected
arguments.
* coverage.h (get_coverage_counts): Likewise.
* doc/gcov-dump.texi: Remove -w option.
* gcov-dump.c (dump_working_sets): Remove.
(main): Do not support '-w' option.
(print_usage): Likewise.
(tag_summary): Likewise.
* gcov-io.c (gcov_write_summary): Do not dump
histogram.
(gcov_read_summary): Likewise.
(gcov_histo_index): Remove.
(gcov_histogram_merge): Likewise.
(compute_working_sets): Likewise.
* gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Mark
it not obsolete.
(GCOV_TAG_PROGRAM_SUMMARY): Mark it obsolete.
(GCOV_TAG_SUMMARY_LENGTH): Adjust.
(GCOV_HISTOGRAM_SIZE): Remove.
(GCOV_HISTOGRAM_BITVECTOR_SIZE): Likewise.
(struct gcov_summary): Simplify rapidly just
to runs and sum_max fields.
(gcov_histo_index): Remove.
(NUM_GCOV_WORKING_SETS): Likewise.
(compute_working_sets): Likewise.
* gcov-tool.c (print_overlap_usage_message): Remove
trailing empty line.
* gcov.c (read_count_file): Read GCOV_TAG_OBJECT_SUMMARY.
(output_lines): Remove program related line.
* ipa-profile.c (ipa_profile): Do not consider GCOV histogram.
* lto-cgraph.c (output_profile_summary): Do not stream GCOV
histogram.
(input_profile_summary): Do not read it.
(merge_profile_summaries): And do not merge it.
(input_symtab): Do not call removed function.
* modulo-sched.c (sms_schedule): Do not print sum_max.
* params.def (HOT_BB_COUNT_FRACTION): Reincarnate param that was
removed when histogram method was invented.
(HOT_BB_COUNT_WS_PERMILLE): Mention that it's used only in LTO
mode.
* postreload-gcse.c (eliminate_partially_redundant_load): Fix
GCOV coding style.
* predict.c (get_hot_bb_threshold): Use HOT_BB_COUNT_FRACTION
and dump selected value.
* profile.c (add_working_set): Remove.
(get_working_sets): Likewise.
(find_working_set): Likewise.
(get_exec_counts): Do not work with working sets.
(read_profile_edge_counts): Do not inform as sum_max is removed.
(compute_branch_probabilities): Likewise.
(compute_value_histograms): Remove argument for call of
get_coverage_counts.
* profile.h: Do not make gcov_summary const.
2018-09-21 Martin Liska <mliska@suse.cz>
* libgcov-driver.c (crc32_unsigned): Remove.
(gcov_histogram_insert): Likewise.
(gcov_compute_histogram): Likewise.
(compute_summary): Simplify rapidly.
(merge_one_data): Do not handle PROGRAM_SUMMARY tag.
(merge_summary): Rapidly simplify.
(dump_one_gcov): Ignore gcov_summary.
(gcov_do_dump): Do not handle program summary, it's not
used.
* libgcov-util.c (tag_summary): Remove.
(read_gcda_finalize): Fix coding style.
(read_gcda_file): Initialize curr_object_summary.
(compute_summary): Remove.
(calculate_overlap): Remove settings of run_max.
From-SVN: r264462
PR tree-optimization/86990
* gimple-ssa-store-merging.c (imm_store_chain_info:coalesce_immediate):
Check that the entire merged store group is made of constants only for
overlapping stores.
From-SVN: r264458