Commit Graph

151804 Commits

Author SHA1 Message Date
Thomas Schwinge
345a8c1712 libgomp: Normalize the names of a few functions of the libgomp plugin API
libgomp/
	* libgomp-plugin.h (GOMP_OFFLOAD_openacc_parallel): Rename to
	GOMP_OFFLOAD_openacc_exec.  Adjust all users.
	(GOMP_OFFLOAD_openacc_get_current_cuda_device): Rename to
	GOMP_OFFLOAD_openacc_cuda_get_current_device.  Adjust all users.
	(GOMP_OFFLOAD_openacc_get_current_cuda_context): Rename to
	GOMP_OFFLOAD_openacc_cuda_get_current_context.  Adjust all users.
	(GOMP_OFFLOAD_openacc_get_cuda_stream): Rename to
	GOMP_OFFLOAD_openacc_cuda_get_stream.  Adjust all users.
	(GOMP_OFFLOAD_openacc_set_cuda_stream): Rename to
	GOMP_OFFLOAD_openacc_cuda_set_stream.  Adjust all users.

From-SVN: r245125
2017-02-02 15:13:57 +01:00
Eric Botcazou
da75ca93f8 re PR middle-end/78468 (libgomp.c/reduction-10.c and many more FAIL)
PR middle-end/78468
	* emit-rtl.c (init_emit): Add ??? comment for problematic alignment
	settings of the virtual registers.

	Revert again
	2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* explow.c (get_dynamic_stack_size): Take known alignment of stack
	pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
	needed.

From-SVN: r245124
2017-02-02 12:39:09 +00:00
Andreas Krebbel
aa2cbb1a6c S/390: Remove unused expanders from vx-builtins.md
These expanders are currently not used.  The vecintrin.h header file
expands e.g. vec_ceil directly to the vfidb low-level builtin.

gcc/ChangeLog:

2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
	("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.

From-SVN: r245123
2017-02-02 12:19:50 +00:00
Andreas Krebbel
50dc4eedfe S/390: Add missing comments listing mnemonics.
These were useful in the past but are currently lacking on a couple of
patterns.  Fixed with this patch.

gcc/ChangeLog:

2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md: Add missing comments with the expanded
	mnemonics.
	* config/s390/vector.md: Likewise.
	* config/s390/vx-builtins.md: Likewise.

From-SVN: r245122
2017-02-02 12:18:52 +00:00
Jakub Jelinek
bef7e56112 pr63316.c: Use dg-skip-if instead of dg-options.
* c-c++-common/asan/pr63316.c: Use dg-skip-if instead of dg-options.
	* c-c++-common/asan/misalign-1.c: Likewise.
	* c-c++-common/asan/misalign-2.c: Likewise.
	* g++.dg/asan/pr69276.C: Add dg-skip-if, remove dg-additional-options.
	* gcc.dg/asan/pr66314.c: Remove -Os from dg-options, add dg-skip-if.
	* gcc.dg/asan/use-after-scope-3.c: Use dg-skip-if instead of dg-options.
	* gcc.dg/asan/use-after-scope-9.c: Add dg-skip-if, remove -O2 and
	add -ffat-lto-objects from/to dg-additional-options.
	* gcc.dg/asan/use-after-scope-10.c: Add dg-skip-if, remove -O2 from
	dg-additional-options.

From-SVN: r245121
2017-02-02 11:18:49 +01:00
Jakub Jelinek
9f11a4a76f re PR target/79197 (ICE in extract_insn in gcc/recog.c:2311)
PR target/79197
	* config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
	(fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
	conditions on a single line.

	* gcc.target/powerpc/pr79197.c: New test.
	* gcc.c-torture/compile/pr79197.c: New test.

From-SVN: r245120
2017-02-02 11:05:26 +01:00
Richard Biener
0966167499 pr71078-3.c: Do not rely on math.h.
2017-02-02  Richard Biener  <rguenther@suse.de>

	* gcc.dg/tree-ssa/pr71078-3.c: Do not rely on math.h.

From-SVN: r245119
2017-02-02 08:58:48 +00:00
Richard Biener
27de0fab0f re PR c++/14179 (out of memory while parsing array with many initializers)
2017-02-02  Richard Biener  <rguenther@suse.de>

	PR cp/14179
	* cp-gimplify.c (cp_fold): When folding a CONSTRUCTOR copy
	it lazily on the first changed element only and copy it
	fully upfront, only storing changed elements.

From-SVN: r245118
2017-02-02 08:55:44 +00:00
Paolo Carlini
d8d58893e4 re PR c++/69637 (ICE on an invalid bit-field with template name for width)
/cp
2017-02-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/69637
	* decl2.c (grokbitfield): In case of error don't set-up DECL_INITIAL
	to the width.

/testsuite
2017-02-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/69637
	* g++.dg/cpp0x/pr69637-1.C: New.
	* g++.dg/cpp0x/pr69637-2.C: Likewise.

From-SVN: r245117
2017-02-02 08:54:55 +00:00
Andreas Krebbel
521a70a405 S/390: Rename __S390_VX__ to __VX__.
gcc/ChangeLog:

2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
	__S390_VX__ to __VX__.

gcc/testsuite/ChangeLog:

2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/s390.exp: Rename __S390_VX__ to __VX__.

From-SVN: r245116
2017-02-02 08:32:44 +00:00
GCC Administrator
6cd3a212ed Daily bump.
From-SVN: r245114
2017-02-02 00:16:13 +00:00
Joseph Myers
da98cbc447 * de.po: Update.
From-SVN: r245111
2017-02-01 23:59:21 +00:00
Bill Schmidt
e26b502d9b re PR target/70012 (test case gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c fails)
2017-02-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/70012
	* gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c: Adjust test
	conditions.

From-SVN: r245108
2017-02-01 22:11:57 +00:00
Eric Botcazou
60ab85958c re PR ada/79309 (incorrectly bounded calls to strncat in adaint.c)
PR ada/79309
	* adaint.c (__gnat_killprocesstree): Use strlen instead of sizeof.

From-SVN: r245107
2017-02-01 21:36:09 +00:00
Eric Botcazou
372db67b4d re PR ada/79309 (incorrectly bounded calls to strncat in adaint.c)
PR ada/79309
	* adaint.c (__gnat_killprocesstree): Fix broken string handling.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r245103
2017-02-01 20:36:23 +00:00
Andrew Pinski
cd8ae5edfe tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass stmt_info to record_stmt_cost.
2017-02-01  Andrew Pinski  <apinski@cavium.com>

        * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
        stmt_info to record_stmt_cost.
        (vect_get_known_peeling_cost): Pass stmt_info if known to
        record_stmt_cost.
        * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
        cpu_vector_cost field into
        scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
        field into vec_int_stmt_cost and vec_fp_stmt_cost.
        * config/aarch64/aarch64.c (generic_vector_cost): Update for the
        splitting of scalar_stmt_cost and vec_stmt_cost.
        (thunderx_vector_cost): Likewise.
        (cortexa57_vector_cost): LIkewise.
        (exynosm1_vector_cost): Likewise.
        (xgene1_vector_cost): Likewise.
        (thunderx2t99_vector_cost): Improve after the splitting of the two
        fields.
        (aarch64_builtin_vectorization_cost): Update for the splitting of
        scalar_stmt_cost and vec_stmt_cost.

From-SVN: r245101
2017-02-01 10:30:50 -08:00
Torvald Riegel
969a32ce93 Fix __atomic to not implement atomic loads with CAS.
gcc/
	* builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
	conditional on existance of a fast atomic load.
	* optabs-query.c (can_atomic_load_p): New function.
	* optabs-query.h (can_atomic_load_p): Declare it.
	* optabs.c (expand_atomic_exchange): Always delegate to libatomic if
	no fast atomic load is available for the particular size of access.
	(expand_atomic_compare_and_swap): Likewise.
	(expand_atomic_load): Likewise.
	(expand_atomic_store): Likewise.
	(expand_atomic_fetch_op): Likewise.
	* testsuite/lib/target-supports.exp
	(check_effective_target_sync_int_128): Remove x86 because it provides
	no fast atomic load.
	(check_effective_target_sync_int_128_runtime): Likewise.

libatomic/
	* acinclude.m4: Add #define FAST_ATOMIC_LDST_*.
	* auto-config.h.in: Regenerate.
	* config/x86/host-config.h (FAST_ATOMIC_LDST_16): Define to 0.
	(atomic_compare_exchange_n): New.
	* glfree.c (EXACT, LARGER): Change condition and add comments.

From-SVN: r245098
2017-02-01 17:21:59 +00:00
Jakub Jelinek
55e75c7c6b re PR testsuite/79324 (The tests introduced at revision r245052 fail on darwin)
PR testsuite/79324
	* gcc.dg/debug/dwarf2/align-1.c: Add -gno-strict-dwarf to dg-options.
	* gcc.dg/debug/dwarf2/align-2.c: Likewise.
	* gcc.dg/debug/dwarf2/align-3.c: Likewise.
	* gcc.dg/debug/dwarf2/align-4.c: Likewise.
	* gcc.dg/debug/dwarf2/align-5.c: Likewise.
	* gcc.dg/debug/dwarf2/align-6.c: Likewise.
	* gcc.dg/debug/dwarf2/align-as-1.c: Likewise.
	* g++.dg/debug/dwarf2/align-1.C: Likewise.
	* g++.dg/debug/dwarf2/align-2.C: Likewise.
	* g++.dg/debug/dwarf2/align-3.C: Likewise.
	* g++.dg/debug/dwarf2/align-4.C: Likewise.
	* g++.dg/debug/dwarf2/align-5.C: Likewise.
	* g++.dg/debug/dwarf2/align-6.C: Likewise.

From-SVN: r245097
2017-02-01 16:47:52 +01:00
Richard Biener
558b318588 graphite.c: Include tree-vectorizer.h for find_loop_location.
2017-02-01  Richard Biener  <rguenther@suse.de>

	* graphite.c: Include tree-vectorizer.h for find_loop_location.
	(graphite_transform_loops): Provide opt-info for optimized nests.
	* tree-parloop.c (parallelize_loops): Provide opt-info for
	parallelized loops.

From-SVN: r245096
2017-02-01 14:05:09 +00:00
Martin Liska
a44769735d Add dg-require-alias to a ICF test (PR testsuite/79272).
2017-02-01  Martin Liska  <mliska@suse.cz>

	PR testsuite/79272
	* gcc.dg/ipa/pr77653.c: Add dg-require-alias to the test.

From-SVN: r245095
2017-02-01 14:04:38 +00:00
Richard Biener
3f3181b1c2 re PR tree-optimization/76957 (XFAIL: gcc.dg/graphite/scop-dsyr2k.c scan-tree-dump-times graphite "number of SCoPs)
2017-02-01  Richard Biener  <rguenther@suse.de>

	PR testsuite/76957
	* gcc.dg/graphite/scop-dsyr2k-2.c: New testcase.
	* gcc.dg/graphite/scop-dsyrk-2.c: Likewise.
	* gcc.dg/graphite/scop-dsyr2k.c: XFAIL.
	* gcc.dg/graphite/scop-dsyrk.c: Likewise.

From-SVN: r245094
2017-02-01 12:58:27 +00:00
Jonathan Wakely
2cf9276ba7 PR78346 make <bits/predefined_ops.h> handle stashing iterators
PR libstdc++/78346
	* include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator
	not its referent.
	(_Iter_comp_to_iter): Likewise.
	* testsuite/25_algorithms/search/78346.cc: New test.

From-SVN: r245090
2017-02-01 12:57:35 +00:00
Richard Biener
1e7ef862ac re PR tree-optimization/79315 (ICE while building SPEC CPU 2006 FP with -Ofast -ftree-parallelize-loops)
2017-02-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/79315
	* tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
	was not set before.

	* gfortran.dg/pr79315.f90: New testcase.

From-SVN: r245089
2017-02-01 12:47:25 +00:00
Jonathan Wakely
11d10beb57 PR libstdc++/79254 simplify exception-safety in copy assignment
PR libstdc++/79254
	* config/abi/pre/gnu.ver: Remove recently added symbols.
	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
	(basic_string::_M_copy_assign): Remove.
	(basic_string::operator=(const basic_string&)): Don't dispatch to
	_M_copy_assign. If source object is small just deallocate, otherwise
	perform new allocation before making any changes.
	* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
	(basic_string::_M_copy_assign(const basic_string&, true_type)):
	Remove.
	* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
	Test cases where the allocators are equal or the string is small.
	* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
	Likewise.

From-SVN: r245085
2017-02-01 11:41:48 +00:00
Pekka Jääskeläinen
a0deb99254 re PR other/79250 (brig/brigfrontend/brig-to-generic.cc: two small problems)
* brigfrontend/brig-code-entry-handler.cc: fix address
expressions which refer only to offset 0, but nothing else.
* brigfrontend/brig-lane-inst-handler.cc: fix
activelanepermute_b64 HSAIL instruction.
* brigfrontend/brig-to-generic.cc: remove useless c_str()
call. Add missing va_end (). Fix PR79250

From-SVN: r245084
2017-02-01 10:06:13 +00:00
Richard Biener
405a740640 re PR tree-optimization/71824 (ICE when compiling libiberty with Graphite loop optimizations)
2017-02-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71824
	* graphite-scop-detection.c (scop_detection::build_scop_breadth):
	Verify the loops are valid in the merged SESE region.
	(scop_detection::can_represent_loop_1): Check analyzing the
	evolution of the number of iterations in the region succeeds.

	* gcc.dg/graphite/pr71824.c: New testcase.

From-SVN: r245081
2017-02-01 08:02:50 +00:00
Jakub Jelinek
315405b669 configure.tgt: Fix i?86-*-linux* entry.
* configure.tgt: Fix i?86-*-linux* entry.
	* rt/sat_arithmetic.c (__hsail_sat_add_u32, __hsail_sat_add_u64,
	__hsail_sat_add_s32, __hsail_sat_add_s64): Use __builtin_add_overflow.
	(__hsail_sat_sub_u8, __hsail_sat_sub_u16): Remove pointless for overflow
	over maximum.
	(__hsail_sat_sub_u32, __hsail_sat_sub_u64, __hsail_sat_sub_s32,
	__hsail_sat_sub_s64): Use __builtin_sub_overflow.
	(__hsail_sat_mul_u32, __hsail_sat_mul_u64, __hsail_sat_mul_s32,
	__hsail_sat_mul_s64): Use __builtin_mul_overflow.
	* rt/arithmetic.c (__hsail_borrow_u32, __hsail_borrow_u64): Use
	__builtin_sub_overflow_p.
	(__hsail_carry_u32, __hsail_carry_u64): Use __builtin_add_overflow_p.
	* rt/misc.c (__hsail_groupbaseptr, __hsail_kernargbaseptr_u64):
	Cast pointers to uintptr_t first before casting to some other integral
	type.
	* rt/segment.c (__hsail_segmentp_private, __hsail_segmentp_group): Likewise.
	* rt/queue.c (__hsail_ldqueuereadindex, __hsail_ldqueuewriteindex,
	__hsail_addqueuewriteindex, __hsail_casqueuewriteindex,
	__hsail_stqueuereadindex, __hsail_stqueuewriteindex): Cast integral value
	to uintptr_t first before casting to pointer.
	* rt/workitems.c (__hsail_alloca_pop_frame): Cast memcpy first argument to
	void * to avoid warning.

From-SVN: r245080
2017-02-01 08:56:49 +01:00
GCC Administrator
6b3430bd61 Daily bump.
From-SVN: r245079
2017-02-01 00:16:17 +00:00
Ian Lance Taylor
014baadeaf i386.c (ix86_expand_split_stack_prologue): Add REG_ARGS_SIZE note to 32-bit push insns and call insn.
* config/i386/i386.c (ix86_expand_split_stack_prologue): Add
	REG_ARGS_SIZE note to 32-bit push insns and call insn.

From-SVN: r245076
2017-01-31 23:49:26 +00:00
Jakub Jelinek
19bdccb4be re PR c++/79304 (diagnostic shows bogus expression ((X<T>*)this)->.c)
PR c++/79304
	* error.c (dump_expr) <case COMPONENT_REF>: Don't print .
	after ARROW_EXPR.

	* g++.dg/diagnostic/pr79304.C: New test.

From-SVN: r245073
2017-01-31 22:38:00 +01:00
David Malcolm
fcb2cdfcfe Fix ICE with spelling hints within explicit namespace aliases (PR c++/79298)
gcc/cp/ChangeLog:
	PR c++/79298
	* name-lookup.c (suggest_alternative_in_explicit_scope): Resolve
	any namespace aliases.

gcc/testsuite/ChangeLog:
	PR c++/79298
	* g++.dg/spellcheck-pr79298.C: New test case.

From-SVN: r245072
2017-01-31 21:30:42 +00:00
David Malcolm
7cfa044d99 Prevent ICEs due to bogus substring locations (PR preprocessor/79210)
gcc/ChangeLog:
	PR preprocessor/79210
	* input.c (get_substring_ranges_for_loc): Replace line_width
	assertion with error-handling.

gcc/testsuite/ChangeLog:
	PR preprocessor/79210
	* gcc.dg/format/pr79210.c: New test case.
	* gcc.dg/plugin/diagnostic-test-string-literals-2.c (test_pr79210):
	New function.

From-SVN: r245070
2017-01-31 20:22:43 +00:00
Nathan Sidwell
5ae37bdfce re PR c++/79290 (forming pointer to member function tries to access "__pfn")
PR c++/79290
	* typeck.c (build_ptrmemfunc_access_expr): Set TREE_NO_WARNING.

	PR c++/79290
	* g++.dg/warn/pr79290.C: New.

From-SVN: r245069
2017-01-31 19:37:11 +00:00
Steven G. Kargl
0751254a75 re PR fortran/79305 (real128 - undefined reference to cexpl)
2017-01-31  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/79305
	* c99_protos.h: Spell HAVE_EXPL correctly.
	* intrinsics/c99_functions.c: Ditto.

From-SVN: r245068
2017-01-31 18:50:31 +00:00
Nathan Sidwell
de3fbef690 re PR c++/67273 (Incorrect -Wshadow warning with generic lambdas)
PR c++/67273
	PR c++/79253
	* pt.c: (instantiate_decl): Push to top level when current
	function scope doesn't match.  Only push lmabda scope stack when
	pushing to top.

	PR c++/67273
	PR c++/79253
	* g++.dg/cpp1y/pr67273.C: New.
	* g++.dg/cpp1y/pr79253.C: New.

From-SVN: r245067
2017-01-31 18:05:37 +00:00
Nathan Sidwell
1a5bac38b5 cp-tree.h (instantiate_decl): Make defer_ok bool.
* cp-tree.h (instantiate_decl): Make defer_ok bool.
	* pt.c: Fix instantiate_decl calls to pass true/false not 0/1
	(instantiate_decl): Simplify and reorder state saving and restoration.

From-SVN: r245066
2017-01-31 16:56:44 +00:00
Nathan Sidwell
7f357c6164 re PR c++/79264 (ICE verify_type failed)
PR c++/79264
	* lambda.c (maybe_generic_this_capture): Deal with
	template-id-exprs.
	* semantics.c (finish_member_declaration): Assert class is being
	defined.

	PR c++/79264
	* g++.dg/cpp1y/pr61636-1.C: Augment.

From-SVN: r245065
2017-01-31 15:10:41 +00:00
Richard Biener
8eedca0df1 re PR tree-optimization/77318 (FAIL: gfortran.dg/graphite/pr68279.f90 -O (internal compiler error))
2017-01-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77318
	* graphite-sese-to-poly.c (extract_affine): Fix assert.
	(create_pw_aff_from_tree): Take loop parameter.
	(add_condition_to_pbb): Pass loop of the condition to
	create_pw_aff_from_tree.

From-SVN: r245064
2017-01-31 14:44:37 +00:00
Thomas Schwinge
dced339c8a libgomp: Provide prototypes for functions implemented by libgomp plugins
libgomp/
	* libgomp-plugin.h: #include <stdbool.h>.
	(GOMP_OFFLOAD_get_name, GOMP_OFFLOAD_get_caps)
	(GOMP_OFFLOAD_get_type, GOMP_OFFLOAD_get_num_devices)
	(GOMP_OFFLOAD_init_device, GOMP_OFFLOAD_fini_device)
	(GOMP_OFFLOAD_version, GOMP_OFFLOAD_load_image)
	(GOMP_OFFLOAD_unload_image, GOMP_OFFLOAD_alloc, GOMP_OFFLOAD_free)
	(GOMP_OFFLOAD_dev2host, GOMP_OFFLOAD_host2dev)
	(GOMP_OFFLOAD_dev2dev, GOMP_OFFLOAD_can_run, GOMP_OFFLOAD_run)
	(GOMP_OFFLOAD_async_run, GOMP_OFFLOAD_openacc_parallel)
	(GOMP_OFFLOAD_openacc_register_async_cleanup)
	(GOMP_OFFLOAD_openacc_async_test)
	(GOMP_OFFLOAD_openacc_async_test_all)
	(GOMP_OFFLOAD_openacc_async_wait)
	(GOMP_OFFLOAD_openacc_async_wait_async)
	(GOMP_OFFLOAD_openacc_async_wait_all)
	(GOMP_OFFLOAD_openacc_async_wait_all_async)
	(GOMP_OFFLOAD_openacc_async_set_async)
	(GOMP_OFFLOAD_openacc_create_thread_data)
	(GOMP_OFFLOAD_openacc_destroy_thread_data)
	(GOMP_OFFLOAD_openacc_get_current_cuda_device)
	(GOMP_OFFLOAD_openacc_get_current_cuda_context)
	(GOMP_OFFLOAD_openacc_get_cuda_stream)
	(GOMP_OFFLOAD_openacc_set_cuda_stream): New prototypes.
	* libgomp.h (struct acc_dispatch_t, struct gomp_device_descr): Use
	these.
	* plugin/plugin-hsa.c (GOMP_OFFLOAD_load_image)
	(GOMP_OFFLOAD_unload_image): Fix argument types.
	liboffloadmic/
	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_type): Fix
	return type.
	(GOMP_OFFLOAD_load_image): Fix argument types.

From-SVN: r245062
2017-01-31 15:32:58 +01:00
Christophe Lyon
5b11971a56 [testsuite] gcc.dg/memcmp-1.c: Fix testcase for newlib.
2017-01-31  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.dg/memcmp-1.c (static void test_driver_memcmp): Call
	rand() instead of random().

From-SVN: r245061
2017-01-31 15:03:56 +01:00
Jakub Jelinek
4997a71dbb s390.c (s390_asan_shadow_offset): New function.
gcc/
	* config/s390/s390.c (s390_asan_shadow_offset): New function.
	(TARGET_ASAN_SHADOW_OFFSET): Redefine.
libsanitizer/
	* configure.tgt: Enable asan and ubsan on 64-bit s390*-*-linux*.

From-SVN: r245060
2017-01-31 14:50:20 +01:00
Michael Meissner
c6eb38f3ea re PR target/78597 (test case gcc.dg/torture/fp-int-convert-float128-ieee.c (and others) fail starting with r242780)
2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/78597
	PR target/79038
	* config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
	no longer used.
	(convert_int_to_float128): Likewise.
	* config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
	(convert_int_to_float128): Likewise.
	* config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
	(UNSPEC_IEEE128_CONVERT): Likewise.
	(floatsi<mode>2, FLOAT128 iterator): Bypass calling
	rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
	Use local variables for IBM extended format.
	(fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
	(fix_trunc<mode>si2_fprs): Likewise.
	(fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
	(floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
	(fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
	to know that we can now have integers of all sizes in vector
	registers.
	(fix<uns>_<mode>di2_hw): Likewise.
	(float<uns>_<mode>si2_hw): Likewise.
	(fix_<mode>si2_hw): Likewise.
	(fixuns_<mode>si2_hw): Likewise.
	(float<uns>_<mode>di2_hw): Likewise.
	(float_<mode>di2_hw): Likewise.
	(float_<mode>si2_hw): Likewise.
	(floatuns_<mode>di2_hw): Likewise.
	(floatuns_<mode>si2_hw): Likewise.
	(xscvqp<su>wz_<mode>): Delete, no longer used.
	(xscvqp<su>dz_<mode>): Likewise.
	(xscv<su>dqp_<mode>): Likewise.
	(ieee128_mfvsrd_64bit): Likewise.
	(ieee128_mfvsrd_32bit): Likewise.
	(ieee128_mfvsrwz): Likewise.
	(ieee128_mtvsrw): Likewise.
	(ieee128_mtvsrd_64bit): Likewise.
	(ieee128_mtvsrd_32bit): Likewise.

From-SVN: r245059
2017-01-31 13:38:35 +00:00
Martin Liska
a0a348b167 Call symbol_summary<>::release instead of ~symbol_summary (PR ipa/79285).
2017-01-31  Martin Liska  <mliska@suse.cz>

	PR ipa/79285
	* ipa-prop.c (ipa_free_all_node_params): Call release method
	instead of ~sumbol_summary to not to trigger double times
	dtor of hash_map.

From-SVN: r245058
2017-01-31 10:54:41 +00:00
Aldy Hernandez
8b670f93ab re PR tree-optimization/71691 (wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu (Floating point exception))
PR tree-optimization/71691
	* bitmap.h (class auto_bitmap): New.
	* tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
	is_maybe_undefined instead of ssa_undefined_value_p.

From-SVN: r245057
2017-01-31 10:30:47 +00:00
Andreas Krebbel
4727e06bb7 S/390: Rename __S390_ARCH_LEVEL__ to __ARCH__.
We have recently added the predefined macro __S390_ARCH_LEVEL__ to
expand to a numerical value representing the architecture document
level currently in use.  However, the IBM XL compiler already has a
macro named __ARCH__ for that purpose.  So we change our macro to that
in order to improve portability.

gcc/ChangeLog:

2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
	__S390_ARCH_LEVEL__ to __ARCH__.

gcc/testsuite/ChangeLog:

2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/s390.exp: Rename __S390_ARCH_LEVEL__ to
	__ARCH__.

From-SVN: r245055
2017-01-31 09:14:36 +00:00
Jakub Jelinek
b6dae84928 re PR c++/79267 (internal compiler error with -O3 or -O2 -finline-functions)
PR tree-optimization/79267
	* value-prof.c (gimple_ic): Only drop lhs for noreturn calls
	if should_remove_lhs_p is true.

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

From-SVN: r245053
2017-01-31 09:33:36 +01:00
Alexandre Oliva
40fb9c89e1 [PR63238] output alignment debug information
Output DWARFv5+ DW_AT_alignment for non-default alignment of
variables, fields and types.

for gcc/ChangeLog

	PR debug/63238
	* dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
	(add_alignment_attribute): New.
	(base_type_die): Add alignment attribute.
	(subrange_type_die): Likewise.
	(modified_type_die): Likewise.
	(gen_array_type_die): Likewise.
	(gen_descr_array_type_die: Likewise.
	(gen_enumeration_type_die): Likewise.
	(gen_subprogram_die): Likewise.
	(gen_variable_die): Likewise.
	(gen_field_die): Likewise.
	(gen_ptr_to_mbr_type_die): Likewise.
	(gen_struct_or_union_type_die): Likewise.
	(gen_subroutine_type_die): Likewise.
	(gen_typedef_die): Likewise.
	(base_type_cmp): Compare alignment attribute.

for gcc/testsuite/ChangeLog

	PR debug/63238
	* gcc.dg/debug/dwarf2/align-1.c: New.
	* gcc.dg/debug/dwarf2/align-2.c: New.
	* gcc.dg/debug/dwarf2/align-3.c: New.
	* gcc.dg/debug/dwarf2/align-4.c: New.
	* gcc.dg/debug/dwarf2/align-5.c: New.
	* gcc.dg/debug/dwarf2/align-6.c: New.
	* gcc.dg/debug/dwarf2/align-as-1.c: New.
	* g++.dg/debug/dwarf2/align-1.C: New.
	* g++.dg/debug/dwarf2/align-2.C: New.
	* g++.dg/debug/dwarf2/align-3.C: New.
	* g++.dg/debug/dwarf2/align-4.C: New.
	* g++.dg/debug/dwarf2/align-5.C: New.
	* g++.dg/debug/dwarf2/align-6.C: New.

From-SVN: r245052
2017-01-31 01:03:15 +00:00
Alexandre Oliva
8db29d88f3 Introduce C++ support in libcc1
Extend libcc1's with an API for C++ support.

Extend libcc1's C API to distinguish between integral types with the
same width, as in C++.  Likewise for float types.

Export small bits of functionality from the C++ front-end for use in
libcc1.  Add support for the C++ front-end to look up names and
addresses using a libcc1-registered binding oracle.  Add support for
global friends.


for  gcc/cp/ChangeLog

	Introduce C++ support in libcc1.
	* cp-tree.h (struct lang_identifier): Add oracle_looked_up.
	(ansi_opname): Rename to...
	(cp_operator_id): ... this.  Adjust all callers.
	(ansi_assopname): Rename to...
	(cp_assignment_operator_id): ... this.  Adjust all callers.
	(cp_literal_operator_id): Declare.
	(set_global_friend): Declare.
	(is_global_friend): Declare.
	(enum cp_oracle_request): New type.
	(cp_binding_oracle_function): New type.
	(cp_binding_oracle): Declare.
	(cp_finish_injected_record_type): Declare.
	* friend.c (global_friend): New var.
	(set_global_friend): New fn.
	(is_global_friend): New fn.
	(is_friend): Call is_global_friend.
	* name-lookup.c (cp_binding_oracle): New var.
	(query_oracle): New fn.
	(qualified_lookup_using_namespace): Call query_oracle.
	(lookup_name_real_1): Likewise.
	* parser.c (cp_literal_operator_id): Drop static.
	* search.c (friend_accessible_p): Call is_global_friend.
	* semantics.c (is_this_parameter): Accept a variable if the
	binding oracle is enabled.

for  include/ChangeLog

	Introduce C++ support in libcc1.
	* gcc-c-fe.def (int_type_v0): Rename from...
	(int_type): ... this.  Introduce new version.
	(float_type_v0): Rename from...
	(float_type): ... this.  Introduce new version.
	(char_type): New.
	* gcc-c-interface.h (gcc_c_api_version): Add GCC_C_FE_VERSION_1.
	(gcc_type_array): Move...
	* gcc-interface.h: ... here.
	* gcc-cp-fe.def: New.
	* gcc-cp-interface.h: New.

for  libcc1/ChangeLog

	Introduce C++ support.
	* Makefile.am (AM_CPPFLAGS): Move some -I flags to...
	(CPPFLAGS_FOR_C_FAMILY, CPPFLAGS_FOR_C, CPPFLAGS_FOR_CXX): ...
	new macros.
	(plugin_LTLIBRARIES): Add libcp1plugin.la.
	(BUILT_SOURCES, MOSTLYCLEANFILES): Add...
	(cp-compiler-name.h): ... this.  New.
	(c-compiler-name.h): Rename all over from...
	(compiler-name.h): ... this.  Create it atomically.
	(marshall_c_source, marshall_cxx_source): New macros.
	(libcc1plugin_la_SOURCES): Rename plugin.cc to libcc1plugin.cc.
	Add marshall_c_source expansion.
	(libcc1plugin.lo_CPPFLAGS): New macro.
	(libcp1plugin_la_LDFLAGS): Likewise.
	(libcp1plugin_la_SOURCES): Likewise.
	(libcp1plugin.lo_CPPFLAGS): Likewise.
	(libcp1plugin_la_LIBADD): Likewise.
	(libcp1plugin_la_DEPENDENCIES): Likewise.
	(libcp1plugin_la_LINK): Likewise.
	(libcc1_la_SOURCES): Added marshall_c_source and
	marshall_cxx_source expansions.
	* Makefile.in: Rebuild.
	* compiler-name.h: Rename all over to...
	* c-compiler-name.h: ... this.  Define C_COMPILER_NAME instead
	of COMPILER_NAME.
	* plugin.cc: Rename all over to...
	* libcc1plugin.cc: ... this.  Include marshall-c.hh.
	(address_rewriter): Drop cleaning up of VLA sizes.
	(plugin_build_decl): Mark decls as external.
	(plugin_tagbind): Propagate name to all variants.
	(build_anonymous_node): New.
	(plugin_build_record_type): Use it instead of make_node.
	(plugin_build_union_type): Likewise.
	(plugin_build_enum_type): Likewise.
	(plugin_finish_record_or_union): Update all type variants.
	(safe_lookup_builtin_type): New.
	(plugin_int_check): Factor out of, and add checks to, ...
	(plugin_int_type): ... this.  Rename to...
	(plugin_int_type_v0): ... this.
	(plugin_int_type): New interface, new implementation.
	(plugin_char_type): New.
	(plugin_float_type_v0): Rename from...
	(plugin_float_type): ... this.  New interface, new implementation.
	(plugin_init): Bump handshake version.
	* libcc1.cc: Include marshall-c.hh.  Drop gcc-interface.h.
	(call_binding_oracle): Rename to...
	(c_call_binding_oracle): ... this, into anonymous namespace.
	(call_symbol_address): Rename to...
	(c_call_symbol_address): ... this, likewise.
	(GCC_METHOD#): Move methods into cc1plugin::c:: namespace.
	(libcc1::compiler::find): Refer to C_COMPILER_NAME.
	(fork_exec): Bump to GCC_C_FE_VERSION_1.
	(libcc1_compile): Prefix callbacks with c_.
	(gcc_c_fe_context): Accept GCC_C_FE_VERSION_1.
	* libcc1.sym: Export gcc_cp_fe_context.
	* libcp1.cc: New, mostly copied and adjusted from libcc1.cc.
	* libcp1plugin.cc: New, initially copied from libcc1plugin.cc.
	* libcp1plugin.sym: New.
	* marshall-c.hh: New.  Move C-specific types from...
	* marshall.cc: ... this.
	(cc1_plugin::marshall_array_start): New.
	(cc1_plugin::marshall_array_elmts): New.
	(cc1_plugin::marshall for gcc_type_array): Use the above.
	(cc1_plugin::unmarshall_array_start): New.
	(cc1_plugin::unmarshall_array_elmts): New.
	(cc1_plugin::unmarshall for gcc_type_array): Use the above.
	* marshall.hh: Declare the new array building blocks.
	Drop C-specific unmarshall declarations.
	* marshall-cp.hh: New.
	* names.cc (GCC_METHOD#): Add LANG:: to method names.
	(LANG): Define while including gcc-c-fe.def and gcc-cp-fe.def.
	* names.hh: Include gcc-c-fe.def and gcc-cp-fe.def in the
	corresponding namespaces.
	* rpc.hh: Don't include marshall.hh.
	[GCC_CP_INTERFACE_H] (argument_wrapper): Specialize for
	gcc_vbase_array, gcc_cp_template_args, gcc_cp_function_args.

From-SVN: r245051
2017-01-31 01:02:03 +00:00
Jan Kratochvil
9f92b93b7b libcc1: return absolute filename from make search_dir
for  libcc1/ChangeLog

	* findcomp.cc: Include system.h.
	(search_dir): Return absolute filename.

From-SVN: r245050
2017-01-31 01:01:32 +00:00
Jan Kratochvil
5d1b244323 libcc1 base API: bump set_arguments; add set_driver_filename, set_triplet_regexp
for  include/ChangeLog

	* gcc-interface.h (enum gcc_base_api_version): Update comment
	for GCC_FE_VERSION_1.
	(struct gcc_base_vtable): Rename set_arguments to
	set_arguments_v0.  Add set_arguments, set_triplet_regexp and
	set_driver_filename.

for  libcc1/ChangeLog

	* libcc1.cc (libcc1): Add class compiler with field compilerp,
	class compiler_triplet_regexp and class
	compiler_driver_filename.
	(libcc1::libcc1): Initialize compilerp.
	(libcc1::~libcc1): Delete compilerp.
	(libcc1::compiler::find, libcc1::compiler_triplet_regexp::find)
	(libcc1::compiler_driver_filename::find): New methods.
	(libcc1_set_arguments): Remove parameter triplet_regexp.
	(libcc1_set_triplet_regexp, libcc1_set_driver_filename)
	(libcc1_set_arguments_v0): New functions.
	(vtable): Use libcc1_set_arguments_v0, add
	libcc1_set_arguments, libcc1_set_triplet_regexp and
	libcc1_set_driver_filename.

From-SVN: r245049
2017-01-31 01:01:09 +00:00