1. 08 May, 2018 4 commits
    • re PR bootstrap/85571 (non-bootstrap-debug miscompare with trunk) · 4be63d9e
      2018-05-08  Richard Biener  <rguenther@suse.de>
      
      	PR bootstrap/85571
      	config/
      	* bootstrap-lto-noplugin.mk: Disable compare.
      	* bootstrap-lto.mk: Supply contrib/compare-lto for do-compare.
      
      	contrib/
      	* compare-lto: New script derived from compare-debug.
      
      From-SVN: r260026
      Richard Biener committed
    • re PR tree-optimization/85588 (-fwrapv miscompilation) · ab7d466d
      2018-05-08  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/85588
      	* gcc.dg/torture/pr85574.c: Rename to...
      	* gcc.dg/torture/pr85588.c: ... this.
      
      From-SVN: r260024
      Richard Biener committed
    • re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=) · b573f931
      2018-05-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/54613
      	* check.c (gfc_check_minmaxloc): Remove error for BACK not being
      	implemented.  Use gfc_logical_4_kind for BACK.
      	* simplify.c (min_max_choose): Add optional argument back_val.
      	Handle it.
      	(simplify_minmaxloc_to_scalar): Add argument back_val. Pass
      	back_val to min_max_choose.
      	(simplify_minmaxloc_to_nodim): Likewise.
      	(simplify_minmaxloc_to_array): Likewise.
      	(gfc_simplify_minmaxloc): Add argument back, handle it.
      	Pass back_val to specific simplification functions.
      	(gfc_simplify_minloc): Remove ATTRIBUTE_UNUSED from argument back,
      	pass it on to gfc_simplify_minmaxloc.
      	(gfc_simplify_maxloc): Likewise.
      	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Adjust
      	comment. If BACK is true, use greater or equal (or lesser or
      	equal) insteal of greater (or lesser). Mark the condition of
      	having found a value which exceeds the limit as unlikely.
      
      2018-05-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/54613
      	* m4/iforeach-s.m4: Remove assertion that back is zero.
      	* m4/iforeach.m4: Likewise.  Remove leading 'do'
      	before implementation start.
      	* m4/ifunction-s.m4: Remove assertion that back is zero.
      	* m4/ifunction.m4: Likewise.  Remove for loop if HAVE_BACK_ARG
      	is defined.
      	* m4/maxloc0.m4: Reorganize loops. Split loops between >= and =,
      	depending if back is true.  Mark the condition of having
      	found a value which exceeds the limit as unlikely.
      	* m4/minloc0.m4: Likewise.
      	* m4/maxloc1.m4: Likewise.
      	* m4/minloc1.m4: Likewise.
      	* m4/maxloc1s.m4: Handle back argument.
      	* m4/minloc1s.m4: Likewise.
      	* m4/maxloc2s.m4: Remove assertion that back is zero.
      	Remove special handling of loop start. Handle back argument.
      	* m4/minloc2s.m4: Likewise.
      	* generated/iall_i1.c: Regenerated.
      	* generated/iall_i16.c: Regenerated.
      	* generated/iall_i2.c: Regenerated.
      	* generated/iall_i4.c: Regenerated.
      	* generated/iall_i8.c: Regenerated.
      	* generated/iany_i1.c: Regenerated.
      	* generated/iany_i16.c: Regenerated.
      	* generated/iany_i2.c: Regenerated.
      	* generated/iany_i4.c: Regenerated.
      	* generated/iany_i8.c: Regenerated.
      	* generated/iparity_i1.c: Regenerated.
      	* generated/iparity_i16.c: Regenerated.
      	* generated/iparity_i2.c: Regenerated.
      	* generated/iparity_i4.c: Regenerated.
      	* generated/iparity_i8.c: Regenerated.
      	* generated/maxloc0_16_i1.c: Regenerated.
      	* generated/maxloc0_16_i16.c: Regenerated.
      	* generated/maxloc0_16_i2.c: Regenerated.
      	* generated/maxloc0_16_i4.c: Regenerated.
      	* generated/maxloc0_16_i8.c: Regenerated.
      	* generated/maxloc0_16_r10.c: Regenerated.
      	* generated/maxloc0_16_r16.c: Regenerated.
      	* generated/maxloc0_16_r4.c: Regenerated.
      	* generated/maxloc0_16_r8.c: Regenerated.
      	* generated/maxloc0_16_s1.c: Regenerated.
      	* generated/maxloc0_16_s4.c: Regenerated.
      	* generated/maxloc0_4_i1.c: Regenerated.
      	* generated/maxloc0_4_i16.c: Regenerated.
      	* generated/maxloc0_4_i2.c: Regenerated.
      	* generated/maxloc0_4_i4.c: Regenerated.
      	* generated/maxloc0_4_i8.c: Regenerated.
      	* generated/maxloc0_4_r10.c: Regenerated.
      	* generated/maxloc0_4_r16.c: Regenerated.
      	* generated/maxloc0_4_r4.c: Regenerated.
      	* generated/maxloc0_4_r8.c: Regenerated.
      	* generated/maxloc0_4_s1.c: Regenerated.
      	* generated/maxloc0_4_s4.c: Regenerated.
      	* generated/maxloc0_8_i1.c: Regenerated.
      	* generated/maxloc0_8_i16.c: Regenerated.
      	* generated/maxloc0_8_i2.c: Regenerated.
      	* generated/maxloc0_8_i4.c: Regenerated.
      	* generated/maxloc0_8_i8.c: Regenerated.
      	* generated/maxloc0_8_r10.c: Regenerated.
      	* generated/maxloc0_8_r16.c: Regenerated.
      	* generated/maxloc0_8_r4.c: Regenerated.
      	* generated/maxloc0_8_r8.c: Regenerated.
      	* generated/maxloc0_8_s1.c: Regenerated.
      	* generated/maxloc0_8_s4.c: Regenerated.
      	* generated/maxloc1_16_i1.c: Regenerated.
      	* generated/maxloc1_16_i16.c: Regenerated.
      	* generated/maxloc1_16_i2.c: Regenerated.
      	* generated/maxloc1_16_i4.c: Regenerated.
      	* generated/maxloc1_16_i8.c: Regenerated.
      	* generated/maxloc1_16_r10.c: Regenerated.
      	* generated/maxloc1_16_r16.c: Regenerated.
      	* generated/maxloc1_16_r4.c: Regenerated.
      	* generated/maxloc1_16_r8.c: Regenerated.
      	* generated/maxloc1_16_s1.c: Regenerated.
      	* generated/maxloc1_16_s4.c: Regenerated.
      	* generated/maxloc1_4_i1.c: Regenerated.
      	* generated/maxloc1_4_i16.c: Regenerated.
      	* generated/maxloc1_4_i2.c: Regenerated.
      	* generated/maxloc1_4_i4.c: Regenerated.
      	* generated/maxloc1_4_i8.c: Regenerated.
      	* generated/maxloc1_4_r10.c: Regenerated.
      	* generated/maxloc1_4_r16.c: Regenerated.
      	* generated/maxloc1_4_r4.c: Regenerated.
      	* generated/maxloc1_4_r8.c: Regenerated.
      	* generated/maxloc1_4_s1.c: Regenerated.
      	* generated/maxloc1_4_s4.c: Regenerated.
      	* generated/maxloc1_8_i1.c: Regenerated.
      	* generated/maxloc1_8_i16.c: Regenerated.
      	* generated/maxloc1_8_i2.c: Regenerated.
      	* generated/maxloc1_8_i4.c: Regenerated.
      	* generated/maxloc1_8_i8.c: Regenerated.
      	* generated/maxloc1_8_r10.c: Regenerated.
      	* generated/maxloc1_8_r16.c: Regenerated.
      	* generated/maxloc1_8_r4.c: Regenerated.
      	* generated/maxloc1_8_r8.c: Regenerated.
      	* generated/maxloc1_8_s1.c: Regenerated.
      	* generated/maxloc1_8_s4.c: Regenerated.
      	* generated/maxloc2_16_s1.c: Regenerated.
      	* generated/maxloc2_16_s4.c: Regenerated.
      	* generated/maxloc2_4_s1.c: Regenerated.
      	* generated/maxloc2_4_s4.c: Regenerated.
      	* generated/maxloc2_8_s1.c: Regenerated.
      	* generated/maxloc2_8_s4.c: Regenerated.
      	* generated/maxval_i1.c: Regenerated.
      	* generated/maxval_i16.c: Regenerated.
      	* generated/maxval_i2.c: Regenerated.
      	* generated/maxval_i4.c: Regenerated.
      	* generated/maxval_i8.c: Regenerated.
      	* generated/maxval_r10.c: Regenerated.
      	* generated/maxval_r16.c: Regenerated.
      	* generated/maxval_r4.c: Regenerated.
      	* generated/maxval_r8.c: Regenerated.
      	* generated/minloc0_16_i1.c: Regenerated.
      	* generated/minloc0_16_i16.c: Regenerated.
      	* generated/minloc0_16_i2.c: Regenerated.
      	* generated/minloc0_16_i4.c: Regenerated.
      	* generated/minloc0_16_i8.c: Regenerated.
      	* generated/minloc0_16_r10.c: Regenerated.
      	* generated/minloc0_16_r16.c: Regenerated.
      	* generated/minloc0_16_r4.c: Regenerated.
      	* generated/minloc0_16_r8.c: Regenerated.
      	* generated/minloc0_16_s1.c: Regenerated.
      	* generated/minloc0_16_s4.c: Regenerated.
      	* generated/minloc0_4_i1.c: Regenerated.
      	* generated/minloc0_4_i16.c: Regenerated.
      	* generated/minloc0_4_i2.c: Regenerated.
      	* generated/minloc0_4_i4.c: Regenerated.
      	* generated/minloc0_4_i8.c: Regenerated.
      	* generated/minloc0_4_r10.c: Regenerated.
      	* generated/minloc0_4_r16.c: Regenerated.
      	* generated/minloc0_4_r4.c: Regenerated.
      	* generated/minloc0_4_r8.c: Regenerated.
      	* generated/minloc0_4_s1.c: Regenerated.
      	* generated/minloc0_4_s4.c: Regenerated.
      	* generated/minloc0_8_i1.c: Regenerated.
      	* generated/minloc0_8_i16.c: Regenerated.
      	* generated/minloc0_8_i2.c: Regenerated.
      	* generated/minloc0_8_i4.c: Regenerated.
      	* generated/minloc0_8_i8.c: Regenerated.
      	* generated/minloc0_8_r10.c: Regenerated.
      	* generated/minloc0_8_r16.c: Regenerated.
      	* generated/minloc0_8_r4.c: Regenerated.
      	* generated/minloc0_8_r8.c: Regenerated.
      	* generated/minloc0_8_s1.c: Regenerated.
      	* generated/minloc0_8_s4.c: Regenerated.
      	* generated/minloc1_16_i1.c: Regenerated.
      	* generated/minloc1_16_i16.c: Regenerated.
      	* generated/minloc1_16_i2.c: Regenerated.
      	* generated/minloc1_16_i4.c: Regenerated.
      	* generated/minloc1_16_i8.c: Regenerated.
      	* generated/minloc1_16_r10.c: Regenerated.
      	* generated/minloc1_16_r16.c: Regenerated.
      	* generated/minloc1_16_r4.c: Regenerated.
      	* generated/minloc1_16_r8.c: Regenerated.
      	* generated/minloc1_16_s1.c: Regenerated.
      	* generated/minloc1_16_s4.c: Regenerated.
      	* generated/minloc1_4_i1.c: Regenerated.
      	* generated/minloc1_4_i16.c: Regenerated.
      	* generated/minloc1_4_i2.c: Regenerated.
      	* generated/minloc1_4_i4.c: Regenerated.
      	* generated/minloc1_4_i8.c: Regenerated.
      	* generated/minloc1_4_r10.c: Regenerated.
      	* generated/minloc1_4_r16.c: Regenerated.
      	* generated/minloc1_4_r4.c: Regenerated.
      	* generated/minloc1_4_r8.c: Regenerated.
      	* generated/minloc1_4_s1.c: Regenerated.
      	* generated/minloc1_4_s4.c: Regenerated.
      	* generated/minloc1_8_i1.c: Regenerated.
      	* generated/minloc1_8_i16.c: Regenerated.
      	* generated/minloc1_8_i2.c: Regenerated.
      	* generated/minloc1_8_i4.c: Regenerated.
      	* generated/minloc1_8_i8.c: Regenerated.
      	* generated/minloc1_8_r10.c: Regenerated.
      	* generated/minloc1_8_r16.c: Regenerated.
      	* generated/minloc1_8_r4.c: Regenerated.
      	* generated/minloc1_8_r8.c: Regenerated.
      	* generated/minloc1_8_s1.c: Regenerated.
      	* generated/minloc1_8_s4.c: Regenerated.
      	* generated/minloc2_16_s1.c: Regenerated.
      	* generated/minloc2_16_s4.c: Regenerated.
      	* generated/minloc2_4_s1.c: Regenerated.
      	* generated/minloc2_4_s4.c: Regenerated.
      	* generated/minloc2_8_s1.c: Regenerated.
      	* generated/minloc2_8_s4.c: Regenerated.
      	* generated/minval_i1.c: Regenerated.
      	* generated/minval_i16.c: Regenerated.
      	* generated/minval_i2.c: Regenerated.
      	* generated/minval_i4.c: Regenerated.
      	* generated/minval_i8.c: Regenerated.
      	* generated/minval_r10.c: Regenerated.
      	* generated/minval_r16.c: Regenerated.
      	* generated/minval_r4.c: Regenerated.
      	* generated/minval_r8.c: Regenerated.
      	* generated/norm2_r10.c: Regenerated.
      	* generated/norm2_r16.c: Regenerated.
      	* generated/norm2_r4.c: Regenerated.
      	* generated/norm2_r8.c: Regenerated.
      	* generated/parity_l1.c: Regenerated.
      	* generated/parity_l16.c: Regenerated.
      	* generated/parity_l2.c: Regenerated.
      	* generated/parity_l4.c: Regenerated.
      	* generated/parity_l8.c: Regenerated.
      	* generated/product_c10.c: Regenerated.
      	* generated/product_c16.c: Regenerated.
      	* generated/product_c4.c: Regenerated.
      	* generated/product_c8.c: Regenerated.
      	* generated/product_i1.c: Regenerated.
      	* generated/product_i16.c: Regenerated.
      	* generated/product_i2.c: Regenerated.
      	* generated/product_i4.c: Regenerated.
      	* generated/product_i8.c: Regenerated.
      	* generated/product_r10.c: Regenerated.
      	* generated/product_r16.c: Regenerated.
      	* generated/product_r4.c: Regenerated.
      	* generated/product_r8.c: Regenerated.
      	* generated/sum_c10.c: Regenerated.
      	* generated/sum_c16.c: Regenerated.
      	* generated/sum_c4.c: Regenerated.
      	* generated/sum_c8.c: Regenerated.
      	* generated/sum_i1.c: Regenerated.
      	* generated/sum_i16.c: Regenerated.
      	* generated/sum_i2.c: Regenerated.
      	* generated/sum_i4.c: Regenerated.
      	* generated/sum_i8.c: Regenerated.
      	* generated/sum_r10.c: Regenerated.
      	* generated/sum_r16.c: Regenerated.
      	* generated/sum_r4.c: Regenerated.
      	* generated/sum_r8.c: Regenerated.
      
      2018-05-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/54613
      	* gfortran.dg/minmaxloc_12.f90: New test case.
      	* gfortran.dg/minmaxloc_13.f90: New test case.
      
      From-SVN: r260023
      Thomas Koenig committed
    • Daily bump. · 6404980c
      From-SVN: r260021
      GCC Administrator committed
  2. 07 May, 2018 20 commits
    • PR c++/85646 - lambda visibility. · 6b83a3c6
      	* decl2.c (determine_visibility): Don't mess with template arguments
      	from the containing scope.
      	(vague_linkage_p): Check DECL_ABSTRACT_P before looking at a 'tor
      	thunk.
      
      From-SVN: r260017
      Jason Merrill committed
    • [C++ PATCH] Kill -fno-for-scope · ee336e84
      https://gcc.gnu.org/ml/gcc-patches/2018-05/msg00299.html
      	gcc/cp/
      	Remove fno-for-scope
      	* cp-tree.h (DECL_ERROR_REPORTED, DECL_DEAD_FOR_LOCAL)
      	(DECL_HAS_SHADOWED_FOR_VAR_P, DECL_SHADOWED_FOR_VAR)
      	(SET_DECL_SHADOWED_FOR_VAR): Delete.
      	(decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert)
      	(check_for_out_of_scope_variable, init_shadowed_var_for_decl):
      	Don't declare.
      	* name-lookup.h (struct cp_binding_level): Remove
      	dead_vars_from_for field.
      	* cp-lang.c (cp_init_ts): Delete.
      	(LANG_HOOKS_INIT_TS): Override to cp_common_init_ts.
      	* cp-objcp-common.c (shadowed_var_for_decl): Delete.
      	(decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert)
      	(init_shadowed_var_for_decl): Delete.
      	* decl.c (poplevel): Remove shadowed for var handling.
      	(cxx_init_decl_processing): Remove -ffor-scope deprecation.
      	* name-lookup.c (find_local_binding): Remove shadowed for var
      	handling.
      	(check_local_shadow): Likewise.
      	(check_for_out_of_scope_variable): Delete.
      	* parser.c (cp_parser_primary_expression): Remove shadowed for var
      	handling.
      	* pt.c (tsubst_decl): Remove DECL_DEAD_FOR_LOCAL setting.
      	* semantics.c (begin_for_scope): Always have a scope.
      	(begin_for_stmt, finish_for_stmt): Remove ARM-for scope handling.
      	(begin_range_for_stmt, finish_id_expression): Likewise.
      
      	gcc/
      	* doc/invoke.texi (C++ Dialect Options): Remove -ffor-scope.
      	* doc/extend.texi (Deprecated Features): Remove -fno-for-scope
      	(Backwards Compatibility): Likewise.
      
      	c-family/
      	* c.opt (ffor-scope): Remove functionality, issue warning.
      
      	gcc/objcp/
      	* objcp-lang.c (objcxx_init_ts): Don't call init_shadowed_var_for_decl.
      
      	gcc/testsuite/
      	* g++.dg/cpp0x/range-for10.C: Delete.
      	* g++.dg/ext/forscope1.C: Delete.
      	* g++.dg/ext/forscope2.C: Delete.
      	* g++.dg/template/for1.C: Delete.
      
      From-SVN: r260015
      Nathan Sidwell committed
    • PR c++/85618 - ICE with initialized VLA. · 1d473b8b
      	* tree.c (vla_type_p): New.
      	* typeck2.c (store_init_value, split_nonconstant_init_1): Check it
      	rather than array_of_runtime_bound_p.
      
      From-SVN: r260012
      Jason Merrill committed
    • Document -lstdc++fs requirement for std::filesystem · b83f5981
      	* doc/xml/manual/using.xml (table.cmd_options): Document that the
      	C++17 Filesystem implementation also needs -lstdc++fs.
      
      From-SVN: r260011
      Jonathan Wakely committed
    • scanner.c (preprocessor_line): Call linemap_add after a line directive that… · 0d1f4de9
      scanner.c (preprocessor_line): Call linemap_add after a line directive that changes the current filename.
      
      	* scanner.c (preprocessor_line): Call linemap_add after a line
      	directive that changes the current filename.
      
      	* gfortran.dg/linefile.f90: New test.
      
      From-SVN: r260010
      Jeff Law committed
    • PR libstdc++/85671 allow copy elision in path concatenation · a989f637
      By performing the /= operation on a named local variable instead of a
      temporary the copy made for the return value can be elided.
      
      	PR libstdc++/85671
      	* include/bits/fs_path.h (operator/): Permit copy elision.
      	* include/experimental/bits/fs_path.h (operator/): Likewise.
      
      From-SVN: r260009
      Jonathan Wakely committed
    • Moar PR libstdc++/80506 · 6fa8c51f
      2018-05-07  Edward Smith-Rowland  <3dw4rd@verizon.net>
      
      	Moar PR libstdc++/80506
      	* include/bits/random.tcc (gamma_distribution::__generate_impl()):
      	Fix magic number used in loop condition.
      
      Actually put the file in.
      Don't know what my problem is today...
      
      From-SVN: r260008
      Edward Smith-Rowland committed
    • config.host (x86_64-*-rtems*): Build crti.o and crtn.o. · e5f1cdb1
      2018-05-07  Amaan Cheval  <amaan.cheval@gmail.com>
      
      	* config.host (x86_64-*-rtems*): Build crti.o and crtn.o.
      
      From-SVN: r260007
      Amaan Cheval committed
    • Moar PR libstdc++/80506 · 228aa0ec
      2018-05-07  Edward Smith-Rowland  <3dw4rd@verizon.net>
      
      	Moar PR libstdc++/80506
      	* include/bits/random.tcc (gamma_distribution::__generate_impl()):
      	Fix magic number used in loop condition.
      
      From-SVN: r260004
      Edward Smith-Rowland committed
    • Rollback bad commits! Sorry! · eda0ab6e
      From-SVN: r260003
      Edward Smith-Rowland committed
    • Revert 20001. · b118dfdb
      From-SVN: r260002
      Edward Smith-Rowland committed
    • Moar PR libstdc++/80506 · c69c7d03
      2018-05-07  Edward Smith-Rowland  <3dw4rd@verizon.net>
      
      	Moar PR libstdc++/80506
      	* include/bits/random.tcc (gamma_distribution::__generate_impl()):
      	Fix magic number used in loop condition.
      
      From-SVN: r260001
      Edward Smith-Rowland committed
    • re PR bootstrap/85681 (r259995 breaks bootstrap on x86_64-*-freebsd) · 47811d7d
      2018-05-07  Luis Machado  <luis.machado@linaro.org>
      
      	PR bootstrap/85681
      	Revert:
      	2018-05-07  Luis Machado  <luis.machado@linaro.org>
      
      	* config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
      	<prefetch_dynamic_strides>: New const bool field.
      	* config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
      	prefetch_dynamic_strides.
      	(exynosm1_prefetch_tune): Likewise.
      	(thunderxt88_prefetch_tune): Likewise.
      	(thunderx_prefetch_tune): Likewise.
      	(thunderx2t99_prefetch_tune): Likewise.
      	(qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides to false.
      	(aarch64_override_options_internal): Update to set
      	PARAM_PREFETCH_DYNAMIC_STRIDES.
      	* doc/invoke.texi (prefetch-dynamic-strides): Document new option.
      	* params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New.
      	* params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define.
      	* tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for
      	prefetch-dynamic-strides setting.
      
      	2018-05-07  Luis Machado  <luis.machado@linaro.org>
      
      	* config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
      	<minimum_stride>: New const int field.
      	* config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
      	minimum_stride field.
      	(exynosm1_prefetch_tune): Likewise.
      	(thunderxt88_prefetch_tune): Likewise.
      	(thunderx_prefetch_tune): Likewise.
      	(thunderx2t99_prefetch_tune): Likewise.
      	(qdf24xx_prefetch_tune): Likewise. Set minimum_stride to 2048.
      	(aarch64_override_options_internal): Update to set
      	PARAM_PREFETCH_MINIMUM_STRIDE.
      	* doc/invoke.texi (prefetch-minimum-stride): Document new option.
      	* params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New.
      	* params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define.
      	* tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if
      	stride is constant and is below the minimum stride threshold.
      
      From-SVN: r260000
      Luis Machado committed
    • Fix gcc/ChangeLog. · fd056e39
      From-SVN: r259999
      Luis Machado committed
    • aarch64.c (qdf24xx_prefetch_tune): Set to 512. · 725e2110
      2018-05-07  Luis Machado  <luis.machado@linaro.org>
      
      	* config/aarch64/aarch64.c (qdf24xx_prefetch_tune) <l2_cache_size>: Set
      	to 512.
      
      From-SVN: r259998
      Luis Machado committed
    • Introduce prefetch-dynamic-strides option. · 005e72b9
      The following patch adds an option to control software prefetching of memory
      references with non-constant/unknown strides.
      
      Currently we prefetch these references if the pass thinks there is benefit to
      doing so. But, since this is all based on heuristics, it's not always the case
      that we end up with better performance.
      
      For Falkor there is also the problem of conflicts with the hardware prefetcher,
      so we need to be more conservative in terms of what we issue software prefetch
      hints for.
      
      This also aligns GCC with what LLVM does for Falkor.
      
      Similarly to the previous patch, the defaults guarantee no change in behavior
      for other targets and architectures.
      
      2018-05-07  Luis Machado  <luis.machado@linaro.org>
      
      	gcc/
      	* config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
      	<prefetch_dynamic_strides>: New const bool field.
      	* config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
      	prefetch_dynamic_strides.
      	(exynosm1_prefetch_tune): Likewise.
      	(thunderxt88_prefetch_tune): Likewise.
      	(thunderx_prefetch_tune): Likewise.
      	(thunderx2t99_prefetch_tune): Likewise.
      	(qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides to false.
      	(aarch64_override_options_internal): Update to set
      	PARAM_PREFETCH_DYNAMIC_STRIDES.
      	* doc/invoke.texi (prefetch-dynamic-strides): Document new option.
      	* params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New.
      	* params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define.
      	* tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for
      	prefetch-dynamic-strides setting.
      
      From-SVN: r259996
      Luis Machado committed
    • Introduce prefetch-minimum stride option · 57e2d117
      This patch adds a new option to control the minimum stride, for a memory
      reference, after which the loop prefetch pass may issue software prefetch
      hints for. There are two motivations:
      
      * Make the pass less aggressive, only issuing prefetch hints for bigger strides
      that are more likely to benefit from prefetching. I've noticed a case in cpu2017
      where we were issuing thousands of hints, for example.
      
      * For processors that have a hardware prefetcher, like Falkor, it allows the
      loop prefetch pass to defer prefetching of smaller (less than the threshold)
      strides to the hardware prefetcher instead. This prevents conflicts between
      the software prefetcher and the hardware prefetcher.
      
      I've noticed considerable reduction in the number of prefetch hints and
      slightly positive performance numbers. This aligns GCC and LLVM in terms of
      prefetch behavior for Falkor.
      
      The default settings should guarantee no changes for existing targets. Those
      are free to tweak the settings as necessary.
      
      2018-05-07  Luis Machado  <luis.machado@linaro.org>
      
      	Introduce option to limit software prefetching to known constant
      	strides above a specific threshold with the goal of preventing
      	conflicts with a hardware prefetcher.
      
      	gcc/
      	* config/aarch64/aarch64-protos.h (cpu_prefetch_tune)
      	<minimum_stride>: New const int field.
      	* config/aarch64/aarch64.c (generic_prefetch_tune): Update to include
      	minimum_stride field.
      	(exynosm1_prefetch_tune): Likewise.
      	(thunderxt88_prefetch_tune): Likewise.
      	(thunderx_prefetch_tune): Likewise.
      	(thunderx2t99_prefetch_tune): Likewise.
      	(qdf24xx_prefetch_tune): Likewise. Set minimum_stride to 2048.
      	(aarch64_override_options_internal): Update to set
      	PARAM_PREFETCH_MINIMUM_STRIDE.
      	* doc/invoke.texi (prefetch-minimum-stride): Document new option.
      	* params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New.
      	* params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define.
      	* tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if
      	stride is constant and is below the minimum stride threshold.
      
      From-SVN: r259995
      Luis Machado committed
    • [testsuite] gcc.dg/nextafter-2.c: Restrict to c99_runtime · 4826f48e
      2018-05-07  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* gcc.dg/nextafter-2.c: Add c99_runtime effective target
      	and options.
      
      From-SVN: r259994
      Christophe Lyon committed
    • [openacc, testsuite] Allow installed testing of libgomp to find gomp-constants.h · 37d6c719
      2018-05-07  Tom de Vries  <tom@codesourcery.com>
      
      	PR testsuite/85677
      	* testsuite/lib/libgomp.exp (libgomp_init): Move inclusion of top-level
      	include directory in ALWAYS_CFLAGS out of $blddir != "" condition.
      
      From-SVN: r259992
      Tom de Vries committed
    • Daily bump. · c3250a36
      From-SVN: r259986
      GCC Administrator committed
  3. 06 May, 2018 5 commits
  4. 05 May, 2018 4 commits
  5. 04 May, 2018 7 commits