Commit Graph

168164 Commits

Author SHA1 Message Date
Jakub Jelinek
c758576acc re PR rtl-optimization/90026 (ICE: verify_flow_info failed (error: missing barrier after block 2))
PR rtl-optimization/90026
	* cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
	successors, look for BARRIERs inside of the whole BB_FOOTER chain
	rather than just at the start of it.  If e->src BB_FOOTER is not NULL
	in cfglayout mode, use emit_barrier_after_bb.

	* g++.dg/opt/pr90026.C: New test.

From-SVN: r270304
2019-04-12 09:27:25 +02:00
Iain Buclaw
df63d1b7f7 libphobos: Parallelize the libphobos testsuite
The removal of the check programs in libphobos means that all tests
will now be compiled one at a time, causing a notable slowdown in
comparison with the previous method of testing.

libphobos/ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* testsuite/Makefile.am:
	* testsuite/Makefile.am (AUTOMAKE_OPTIONS): Remove dejagnu.
	(RUNTEST): Remove variable.
	(RUNTESTDEFAULTFLAGS, check_p_subno, check_p_numbers0,
	check_p_numbers1, check_p_numbers2, check_p_numbers3,
	check_p_numbers4, check_p_numbers5, check_p_numbers6, check_p_numbers,
	check_p_subdirs, check_DEJAGNU_libphobos_targets): New variables.
	(site.exp, %/site.exp, check-DEJAGNU, check-am, clean-local): New
	rules written so that all the *.exp files are ran parallelized.
	(CLEANFILES): Add *.exe, *.o, and site.exp.
	* testsuite/Makefile.in: Regenerate.

From-SVN: r270303
2019-04-12 06:25:34 +00:00
Iain Buclaw
0d6aae249d libphobos: Replace library check programs with dg-runtest
Fixes multilib handling when running the libphobos testsuite.

libphobos/ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/89255
	* configure.ac (ENABLE_SHARED, ENABLE_STATIC): Remove conditionals.
	* configure: Regenerate.
	* d_rules.am (%.t.lo, %.t.o): Remove rules.
	(unittest_static_LINK, unittest_LINK, libgdruntime_t_la_LINK,
	libgphobos_t_la_LINK): Remove variables.
	* libdruntime/Makefile.am (DRUNTIME_TEST_LOBJECTS,
	DRUNTIME_TEST_OBJECTS, check_PROGRAMS, check_LTLIBRARIES,
	unittest_static_SOURCES, unittest_static_LIBTOOLFLAGS,
	unittest_static_LDFLAGS, unittest_static_LDADD,
	EXTRA_unittest_static_DEPENDENCIES, libgdruntime_t_la_SOURCES,
	libgdruntime_t_la_LIBTOOLFLAGS, libgdruntime_t_la_LDFLAGS,
	libgdruntime_t_la_LIBADD, EXTRA_libgdruntime_t_la_DEPENDENCIES,
	unittest_SOURCES, unittest_LIBTOOLFLAGS, unittest_LDFLAGS,
	unittest_LDADD): Remove variables.
	(clean-local): Remove rule.
	* libdruntime/Makefile.in: Regenerate.
	* src/Makefile.am (PHOBOS_TEST_LOBJECTS,
	PHOBOS_TEST_OBJECTS, check_PROGRAMS, check_LTLIBRARIES,
	unittest_static_SOURCES, unittest_static_LIBTOOLFLAGS,
	unittest_static_LDFLAGS, unittest_static_LDADD,
	EXTRA_unittest_static_DEPENDENCIES, libgdruntime_t_la_SOURCES,
	libgdruntime_t_la_LIBTOOLFLAGS, libgdruntime_t_la_LDFLAGS,
	libgdruntime_t_la_LIBADD, EXTRA_libgdruntime_t_la_DEPENDENCIES,
	unittest_SOURCES, unittest_LIBTOOLFLAGS, unittest_LDFLAGS,
	unittest_LDADD): Remove variables.
	(clean-local): Remove rule.
	* src/Makefile.in: Regenerate.
	* testsuite/lib/libphobos.exp (libphobos_test_name): New global.
	(libphobos_init): Set libphobos_test_name.
	(libphobos-dg-test): Override name if libphobos_test_name is set.
	(filter_libphobos_unittests): New proc.
	* testsuite/libphobos.aa/aa.exp: Don't load libphobos-dg.exp.
	* testsuite/libphobos.cycles/cycles.exp: Set libphobos_test_name.
	* testsuite/libphobos.druntime/druntime.exp: New file.
	* testsuite/libphobos.druntime_shared/druntime_shared.exp: New file.
	* testsuite/libphobos.phobos/phobos.exp: New file.
	* testsuite/libphobos.phobos_shared/phobos_shared.exp: New file.
	* testsuite/libphobos.shared/shared.exp: Use dg-runtest to run tests.
	* testsuite/libphobos.hash/hash.exp: Don't load libphobos-dg.exp
	* testsuite/libphobos.init_fini/init_fini.exp: Likewise.
	* testsuite/libphobos.thread/thread.exp: Likewise.
	* testsuite/libphobos.typeinfo/typeinfo.exp: Likewise.
	* testsuite/libphobos.unittests/unittests.exp: Remove.
	* testsuite/test_runner.d: Remove.
	* testsuite/testsuite_flags.in: Add phobos to --gdcpaths.

From-SVN: r270302
2019-04-12 06:25:17 +00:00
Iain Buclaw
c50eadba26 d: Add -fbuilding-libphobos-tests option
Currently, the druntime and phobos unittests are compiled as a separate
check program, then ran by the libphobos.unittest/unittest.exp script.
As PR d/89255 notes, this process lacks proper multilib handling.

As a first step, a new internal option that instructs the compiler to
put the reference to all unittest functions in another symbol has been
added.  This will allow each module to be compiled separately as a
standalone program using dg-runtest without running into collisions in
the D runtime module registry.

gcc/d/ChangeLog:

2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>

	* d-tree.h (DECL_IN_UNITTEST_CONDITION_P): Define.
	* decl.cc (DeclVisitor): Add in_version_unittest_ field.
	(DeclVisitor::visit(ConditionalDeclaration)): New override.
	(DeclVisitor::visit(FuncDeclaration)): Set
	DECL_IN_UNITTEST_CONDITION_P.
	* lang.opt (-fbuilding-libphobos-tests): Add option.
	* modules.cc (current_testing_module): New static variable.
	(build_module_tree): Generate second moduleinfo symbol to hold
	reference to unittests if flag_building_libphobos_tests.
	(register_module_decl): Check DECL_IN_UNITTEST_CONDITION_P to decide
	which moduleinfo the decl should be registered against.

From-SVN: r270301
2019-04-12 06:25:04 +00:00
Iain Buclaw
77f4fb5766 d/dmd: Merge upstream dmd c185f9df1
Adds new virtual isVersionCondition, this is so that in the code
generation pass, a ConditionDeclaration's condition can be identified
without requiring a Visitor function.

Reviewed-on: https://github.com/dlang/dmd/pull/9591

From-SVN: r270300
2019-04-12 06:24:53 +00:00
GCC Administrator
f75c823e89 Daily bump.
From-SVN: r270299
2019-04-12 00:16:31 +00:00
Iain Buclaw
c8bf6646ed libphobos: Merge upstream phobos cf95639ff
Backports ports committed to upstream phobos since the last sync.

Reviewed-on: https://github.com/dlang/phobos/pull/6947

From-SVN: r270296
2019-04-11 21:11:15 +00:00
Iain Buclaw
9607e404a5 libphobos: Merge upstream druntime 175bf5fc
Backports extern(C) bindings committed to upstream druntime since the
last sync.

Reviewed-on: https://github.com/dlang/druntime/pull/2552

From-SVN: r270295
2019-04-11 21:11:03 +00:00
Iain Buclaw
258ad81197 d/dmd: Merge upstream dmd d7ed327ed
Fixes ICE when accessing empty array in CTFE.

Reviewed-on: https://github.com/dlang/dmd/pull/9563

From-SVN: r270294
2019-04-11 21:10:49 +00:00
Thomas Rodgers
9eda9f9231 Replace direct PSTL uses of assert() with a macro
This also replaces calls to __TBB_ASSERT so that there are two macro
definitions provided by c++config -
	    __PSTL_ASSERT(_Condition)
	    __PSTL_ASSERT_MSG(_Condition, _Message)

	    * include/bits/c++config:
	    Add definition for __PSTL_ASSERT.
	    Add definition for __PSTL_ASSERT_MSG.
	    * include/pstl/algorithm_impl.h: Replace use of assert().
	    * include/pstl/numeric_impl.h: Replace use of assert().
	    * include/pstl/parallel_backend_tbb.h:
	    Replace use of assert().
	    Replace use of __TBB_ASSERT().

	    * include/pstl/parallel_backend_utils.h: Replace use of assert().

From-SVN: r270293
2019-04-11 20:40:40 +00:00
Thomas Koenig
c00d68e89e re PR translation/89939 (messages for translation must not contain embedded macro parameters)
2019-04-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR translation/89939
	* frontend-passes.c (B_ERROR): Delete macro.
	(C_ERROR): Delete macro.
	(B_ERROR_1): New macro.
	(C_ERROR_1): New macro.
	(C_ERROR_2): New macro.
	(inline_matmul_assign): Use new macros.
	(call_external_blas): Likewise.

From-SVN: r270292
2019-04-11 20:14:27 +00:00
Jonathan Wakely
2c390a483b PR libstdc++/90046 fix build failure on epiphany-elf
The epiphany-elf target aligns structs to 8 bytes, which causes the
static_assert(alignof(_Chunk) == 1) to fail.

Instead of requiring _Chunks to be positionable at any alignment, ensure
new buffers are aligned to alignof(_Chunk). Because the buffer size is a
power of two, we know that both the buffer size and sizeof(_Chunk) are
multiples of alignof(_Chunk). So is p is aligned to alignof(_Chunk) then
so is (p + size - sizeof(_Chunk)). So just ensure the new buffer is
aligned to at least alignof(_Chunk), which should already be true
because the caller requests at least alignof(max_align_t).

	PR libstdc++/90046
	* src/c++17/memory_resource.cc
	(monotonic_buffer_resource::_Chunk::allocate): Increase alignment if
	needed to allow placing a _Chunk at the end of the buffer.
	(monotonic_buffer_resource::_M_new_buffer): Remove static_assert.

From-SVN: r270291
2019-04-11 20:58:14 +01:00
Steve Ellcey
76d7e3f024 re PR rtl-optimization/87763 (aarch64 target testcases fail after r265398)
2018-04-11  Steve Ellcey  <sellcey@marvell.com>

	PR rtl-optimization/87763
	* gcc.target/aarch64/combine_bfxil.c: Change some bfxil checks
	to bfi.

From-SVN: r270289
2019-04-11 18:03:49 +00:00
Steve Ellcey
f0a8f6bcb0 re PR rtl-optimization/87763 (aarch64 target testcases fail after r265398)
2018-04-11  Steve Ellcey  <sellcey@marvell.com>

	PR rtl-optimization/87763
	* config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
	New Instruction.

From-SVN: r270288
2019-04-11 18:02:41 +00:00
Tom de Vries
cd7ffd8a93 [doc] Note variable shadowing at max macro using statement expression
When suggesting to rewrite the unsafe (with respect to multiple evaluation of
arguments) macro definition:
...
  #define max(a,b) ((a) > (b) ? (a) : (b))
...
into the safe macro definition:
...
  #define maxint(a,b) \
    ({int _a = (a), _b = (b); _a > _b ? _a : _b; })
...
mention the variable shadowing problem for:
...
  #define maxint3(a, b, c) \
    ({int _a = (a), _b = (b), _c = (c); maxint (maxint (_a, _b), _c); })
...

2019-04-11  Tom de Vries  <tdevries@suse.de>

	* doc/extend.texi (@node Statement Exprs): Note variable shadowing at
	max macro using statement expression.

From-SVN: r270287
2019-04-11 15:36:59 +00:00
Jakub Jelinek
657184d086 re PR translation/90035 (Non-translatable C++ parser diagnostics)
PR translation/90035
	* parser.h (struct cp_parser): Add
	type_definition_forbidden_message_arg member.
	* parser.c (cp_debug_parser): Print it.
	(cp_parser_check_type_definition): Pass
	parser->type_definition_forbidden_message_arg as second argument to
	error.
	(cp_parser_has_attribute_expression, cp_parser_sizeof_operand): Set
	parser->type_definition_forbidden_message_arg and use G_() with
	%qs for parser->type_definition_forbidden_message instead of
	building untranslatable message using concat.

From-SVN: r270286
2019-04-11 17:28:18 +02:00
David Edelsohn
8f1d8deb29 xcoffout.h (xcoff_private_rodata_section_name): Declare.
* xcoffout.h (xcoff_private_rodata_section_name): Declare.
        * xcoffout.c (xcoff_private_rodata_section_name): Define.
        * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
        read_only_private_data_section using xcoff_private_rodata_section_name.
        (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.

From-SVN: r270284
2019-04-11 10:14:35 -04:00
Christophe Lyon
f499726a00 [aarch64] PR90016 - aarch64: reference to undeclared N in help for command line option
2019-04-11  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/90016
	* config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.

From-SVN: r270280
2019-04-11 12:56:08 +02:00
Jakub Jelinek
1b4d15e855 re PR rtl-optimization/89965 (wrong code with -O -mtune=nano-x2 -fcaller-saves -fexpensive-optimizations -fno-tree-dce -fno-tree-ter)
PR rtl-optimization/89965
	* dce.c (sp_based_mem_offset): New function.
	(find_call_stack_args): Use sp_based_mem_offset.

From-SVN: r270278
2019-04-11 11:02:47 +02:00
Jonathan Wakely
ecb3e9a46e Clarify documentation for -flive-patching
* doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.

From-SVN: r270276
2019-04-11 09:52:22 +01:00
Richard Biener
3bab738598 re PR tree-optimization/90020 (-O2 -Os x86-64 wrong code generated for GNU Emacs)
2019-04-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90020
	* tree-ssa-sccvn.c (vn_reference_may_trap): New function.
	* tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
	* tree-ssa-pre.c (compute_avail): Use it to not put
	possibly trapping references after a call that might not
	return into EXP_GEN.
	* gcse.c (compute_hash_table_work): Do not elide
	marking a block containing a call if the call might not
	return.

	* gcc.dg/torture/pr90020.c: New testcase.

From-SVN: r270275
2019-04-11 07:34:20 +00:00
Richard Biener
2fd579ab53 re PR tree-optimization/90018 (r265453 miscompiled 527.cam4_r in SPEC CPU 2017)
2019-04-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90018
	* tree-vect-data-refs.c (vect_preserves_scalar_order_p):
	Test both SLP and interleaving variants.

	* gcc.dg/vect/pr90018.c: New testcase.

From-SVN: r270273
2019-04-11 07:30:59 +00:00
Robin Dapp
375a6bc674 S/390: Add arch13 pipeline and model number
This patch adds the pipeline description and the CPU model number for
arch13.

From-SVN: r270272
2019-04-11 07:04:03 +00:00
GCC Administrator
c15ec5df62 Daily bump.
From-SVN: r270271
2019-04-11 00:16:32 +00:00
Steve Ellcey
31f06cac29 re PR rtl-optimization/87763 (aarch64 target testcases fail after r265398)
2018-04-10  Steve Ellcey  <sellcey@marvell.com>

	PR rtl-optimization/87763
	* gcc.target/aarch64/combine_bfxil.c: Change some bfxil checks
	to bfi.
	* gcc.target/aarch64/combine_bfi_2.c: New test.

From-SVN: r270267
2019-04-10 20:29:57 +00:00
Steve Ellcey
6a0d393901 re PR rtl-optimization/87763 (aarch64 target testcases fail after r265398)
2018-04-10  Steve Ellcey  <sellcey@marvell.com>

	PR rtl-optimization/87763
	* config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
	New prototype.
	* config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
	New function.
	* config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
	New instruction.
	(*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
	(*aarch64_bfi<GPI:mode>4_noand): Ditto.
	(*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
	(*aarch64_bfi<GPI:mode>4_noshift): Ditto.

From-SVN: r270266
2019-04-10 20:28:19 +00:00
Jonathan Wakely
51d3c11a7c Update documentation regarding bogus memory leaks in libstdc++
* doc/xml/faq.xml: Add information about emergency EH pool.
	* doc/xml/manual/debug.xml: Update list of memory debugging tools.
	Move outdated information on mt_allocator to a separate section.
	* doc/xml/manual/evolution.xml: Clarify that GLIBCXX_FORCE_NEW
	doesn't affect the default allocator.

From-SVN: r270264
2019-04-10 20:24:04 +01:00
Jonathan Wakely
a7f8aa3ee7 Change wording of -fipa-icf documentation
* doc/invoke.texi (Optimize Options): Change "Nevertheless" to
	"Although" in -fipa-icf documentation.

From-SVN: r270260
2019-04-10 15:55:01 +01:00
Jonathan Wakely
9cadd6bd4d Fix typo in effective-target check
* testsuite/lib/libstdc++.exp (check_v3_target_parallel_mode): Fix
	typo.

From-SVN: r270259
2019-04-10 15:46:03 +01:00
Nick Clifton
6fe6bd7c08 Fix a stack exhaustion bug in libiberty's demangler when decoding a pathalogically constructed mangled name.
PR 89394
	* cp-demangle.c (cplus_demangle_fill_name): Reject negative
	lengths.
	(d_count_templates_scopes): Replace num_templates and num_scopes
	parameters with a struct d_print_info pointer parameter.  Adjust
	body of the function accordingly.  Add recursion counter and check
	that the recursion limit is not reached.
	(d_print_init): Pass dpi parameter to d_count_templates_scopes.
	Reset recursion counter afterwards, unless the recursion limit was
	reached.

From-SVN: r270258
2019-04-10 14:44:47 +00:00
Jonathan Wakely
07c2fa4665 Clearly document behaviour of multiple -g options
This copies the wording from the -O options to clearly state what
happens if more than one -g option is used.

	* doc/invoke.texi (Debugging Options): Explicitly state the semantics
	of using multiple -g options.

From-SVN: r270257
2019-04-10 15:39:59 +01:00
Martin Liska
620626daa5 Make gcov docs more precise (PR gcov-profile/89959).
2019-04-10  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/89959
	* doc/gcov.texi: Make documentation of -x option
	more precise.

From-SVN: r270251
2019-04-10 11:44:08 +00:00
Richard Biener
f95b759770 tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt member.
2019-04-10  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
	member.
	(DR_GROUP_SAME_DR_STMT): Remove.
	* tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
	* tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
	replace with assert.
	(vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
	(vect_record_grouped_load_vectors): Remove unreachable code.

From-SVN: r270250
2019-04-10 11:25:10 +00:00
Jonathan Wakely
4a3f7992d2 PR libstdc++/89851 Add testcase for std::variant equality
Add a test for the regression introduced with r269422 and fixed with
r270056.

	PR libstdc++/89851
	* testsuite/20_util/variant/89851.cc: New test.

From-SVN: r270249
2019-04-10 11:43:39 +01:00
Richard Earnshaw
1feb075a76 [aarch64] PR90016 - aarch64: reference to undeclared N in help for command line option
'to N' is now redundant and misleading given the earlier change to use
<number>.

Removed.

	PR target/90016
	* config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
	obsolete reference to N.

From-SVN: r270248
2019-04-10 09:51:16 +00:00
Jakub Jelinek
9d40923511 re PR middle-end/90025 (botan2 miscompilation on s390x-linux since r268957)
PR middle-end/90025
	* expr.c (store_expr): Set properly size on the MEM passed to
	clear_storage.

	* gcc.c-torture/execute/pr90025.c: New test.

From-SVN: r270247
2019-04-10 09:28:05 +02:00
Jakub Jelinek
c9c5e18883 re PR c++/90010 (valgrind error with snprintf and -Wall)
PR c++/90010
	* gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
	with strlen in between hostsz-3 and hostsz-1 inclusive when no
	translation is needed, and when translation is needed, only append
	... if the string length is hostsz or more bytes long.  Avoid using
	strncpy or strcat.

	* gcc.dg/pr90010.c: New test.

From-SVN: r270246
2019-04-10 09:27:20 +02:00
GCC Administrator
7e1ab2dc3f Daily bump.
From-SVN: r270245
2019-04-10 00:16:21 +00:00
Eric Botcazou
53a3f61425 c-ada-spec.c (print_destructor): Deal with deleting destructors.
* c-ada-spec.c (print_destructor): Deal with deleting destructors.
	(dump_ada_declaration) <FUNCTION_DECL>: Likewise.

From-SVN: r270239
2019-04-09 19:29:17 +00:00
Jonathan Wakely
9d89b73c06 Add comments and style fixes to <variant>
* include/std/variant: Adjust whitespace. Add comments.
	(_Multi_array): Leave primary template undefined.
	(_Multi_array<_Tp>): Define partial specialization for base case of
	recursion.
	(__gen_vtable_impl, __gen_vtable): Remove redundant && from type
	which is always a reference.
	(__gen_vtable::_S_apply()): Remove function, inline body into
	default member initializer.
	* testsuite/20_util/variant/visit.cc: Test with noncopyable types.

From-SVN: r270238
2019-04-09 19:50:48 +01:00
Jonathan Wakely
8701cb5e0d Fix std::visit to support arbitrary callables
The __visitor_result_type helper didn't use std::invoke and so didn't
compile when the visitor was a pointer-to-member rather than a function
object. Use std::invoke_result instead.

	* include/std/variant (__variant_idx_cookie): Add member type.
	(__visitor_result_type): Remove.
	(__do_visit): Use invoke_result instead of __visitor_result_type.
	* testsuite/20_util/variant/visit.cc: New test.

From-SVN: r270237
2019-04-09 19:50:43 +01:00
Jonathan Wakely
bc203bf0da PR libstdc++/90008 remove unused capture from variant rel ops
PR libstdc++/90008
	* include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Remove
	unused capture.
	* testsuite/20_util/variant/90008.cc: New test.

From-SVN: r270236
2019-04-09 19:50:39 +01:00
Uros Bizjak
51d63c036b * gcc.target/i386/ifcvt-onecmpl-abs-1.c
(dg-options): Use -O2 -fdump-rtl-ce1.
	(dg-final): Scan ce1 RTL dump instead of asm dump.

From-SVN: r270234
2019-04-09 20:16:14 +02:00
Thomas Rodgers
0360f9ad40 Add PSTL internal namespace qualifications
* include/pstl/algorithm_impl.h: Add namespace qualification.
	* include/pstl/execution_defs.h: Add namespace qualification.
	* include/pstl/execution_impl.h: Add namespace qualification.
	* include/pstl/numeric_impl.h: Add namespace qualification.
	* include/pstl/parallel_backend_tbb.h: Add namespace qualification.
	* include/pstl/unseq_backend_simd.h: Add namespace qualification.
	* include/pstl/parallel_backend_utils.h: Include <cassert>.

From-SVN: r270231
2019-04-09 15:45:26 +00:00
Jakub Jelinek
8a22feb67a re PR translation/90011 (trailing space in diagnostic)
PR translation/90011
	* typeck2.c (check_narrowing): Remove trailing space from diagnostics.

From-SVN: r270229
2019-04-09 15:19:16 +02:00
Matthew Malcomson
e009dfb320 Hi there,
The "*neon_mov<mode>" patterns for 128 bit sized quantities uses the "Dn"
constraint to match vmov.f32 and vmov.i<vec-width> patterns.
This constraint boils down to using the `neon_immediate_valid` function.
Once the constraint has matched, the output C statement asserts that function
passes.

The output C statement calls `neon_immediate_valid` with the mode taken from the
iterator, while the constraint takes the mode from the operand.
This can cause a discrepency when the operand is a CONST_INT, as the constraint
passes VOIDmode which `neon_immediate_valid` treats as DImode, while the C
statement passes the mode of the iterator which can be TImode.
When this happens, the `neon_immediate_valid` can fail in the second call (if
e.g. the CONST_INT is a valid immediate in DImode but not TImode) which would
trigger the assertion.

The testcase added with this patch triggers this when compiled with an arm cross
compiler using the command line below.
gcc -march=armv8-a -c neon-immediate-timode.c -O1 -mfloat-abi=hard -mfpu=neon-fp-armv8

This patch splits the original "Dn" constraint into three new constraints, "DN"
for TImode CONST_INT, "Dn" for DImode CONST_INT, and "Dm" for CONST_VECTOR.
Splitting things up this way requires using one extra alternative in the
"*neon_mov<mode>" patterns, but makes it clear from the constraint what mode is
being used.

We also remove the behaviour of treating VOIDmode as DImode in
`neon_valid_immediate` since the original "Dn" constraint was the only place
that functionality was used.  VOIDmode is now never passed to that function.
An assertion has been added to the function to ensure this problem is caught
earlier on.

Bootstrapped on arm-none-linux-gnueabihf
Regtested on cross-compiler arm-none-eabi

gcc/ChangeLog:

2019-04-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	PR target/90024
	* config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
	* config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
	into three.
	* config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
	differences directly.
	(*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.

gcc/testsuite/ChangeLog:

2019-04-09  Matthew Malcomson  <matthew.malcomson@arm.com>

	PR target/90024
	* gcc.dg/torture/neon-immediate-timode.c: New test.

From-SVN: r270226
2019-04-09 11:39:59 +00:00
Jakub Jelinek
765f8786cf re PR translation/90011 (trailing space in diagnostic)
PR translation/90011
	* ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
	from diagnostics.
	* config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
	diagnostics.
	* config/riscv/freebsd.h (LINK_SPEC): Likewise.
	* config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
	* config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
	trailing space from -gsplit-dwarf diagnostics.

From-SVN: r270225
2019-04-09 12:27:14 +02:00
Jakub Jelinek
a73468e8c7 re PR middle-end/89998 (ICE: verify_gimple failed in printf-return-value)
PR tree-optimization/89998
	* gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
	instead of integer_type_node if possible, don't add ranges if return
	type is not compatible with int.
	* gimple-fold.c (gimple_fold_builtin_sprintf,
	gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
	integer_type_node.

	* gcc.c-torture/compile/pr89998-1.c: New test.
	* gcc.c-torture/compile/pr89998-2.c: New test.

From-SVN: r270224
2019-04-09 12:26:13 +02:00
Martin Liska
1c67e69c0d Come up with bootstrap-lto-lean config.
2019-04-09  Martin Liska  <mliska@suse.cz>

	* Makefile.in: Regenerate.
	* Makefile.tpl: Pass GENERATOR_CFLAGS
	in all stages.
2019-04-09  Martin Liska  <mliska@suse.cz>

	* bootstrap-lto-lean.mk: New file.
2019-04-09  Martin Liska  <mliska@suse.cz>

	* Makefile.in: Use GENERATOR_CFLAGS for all generators.
	* doc/install.texi: Document the new config.

From-SVN: r270223
2019-04-09 08:49:14 +00:00
Richard Sandiford
6c0b8df123 SVE fallout from PR90006
2019-04-08  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
	use gimple_expr_type for load and store calls.  Skip over the
	condition argument in a conditional internal function.
	Protect use of TREE_INT_CST_LOW.

From-SVN: r270222
2019-04-09 07:50:51 +00:00