Commit Graph

147241 Commits

Author SHA1 Message Date
Steven G. Kargl
6fa682ad31 re PR fortran/29819 (Error/warning message should ignore comments for "1" in %C output)
2016-07-14  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/29819
	* parse.c (parse_contained): Use proper locus.
 

2016-07-14  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/29819
	* gfortran.dg/bind_c_usage_9.f03: Move dg-error.
	* gfortran.dg/contains.f90: Ditto.
	* gfortran.dg/contains_empty_1.f03: Ditto.
	* gfortran.dg/submodule_3.f08: Ditto.

From-SVN: r238354
2016-07-14 20:54:40 +00:00
Jakub Jelinek
a60a5d31dd re PR testsuite/71865 (test case gcc.dg/diagnostic-token-ranges.c fails starting with r237714)
PR testsuite/71865
	* gcc.dg/diagnostic-token-ranges.c: Add -std=c11 to dg-options.
	(wide_string_literal_in_asm): Use __asm instead of asm, adjust
	expected diagnostics.

From-SVN: r238353
2016-07-14 20:42:53 +02:00
Jakub Jelinek
dd36b8775f re PR c/71858 (Surprising suggestions for misspellings)
PR c/71858
	* c-decl.c (lookup_name_fuzzy): Ignore binding->invisible.

	* gcc.dg/spellcheck-identifiers.c (snprintf): Declare.
	* gcc.dg/spellcheck-identifiers-2.c: New test.
	* gcc.dg/diagnostic-token-ranges.c (nanl): Declare.
	* c-c++-common/attributes-1.c: Adjust dg-prune-output.

From-SVN: r238352
2016-07-14 20:34:00 +02:00
Jakub Jelinek
a241f8ca21 re PR tree-optimization/71872 (ICE in inchash::add_expr, at tree.c:7782 - OEP_ADDRESS_OF asserted for ADDR_EXPR applied to constant)
PR tree-optimization/71872
	* tree-data-ref.c (get_references_in_stmt): Ignore references
	with is_gimple_constant get_base_address.

	* gcc.c-torture/compile/pr71872.c: New test.

From-SVN: r238351
2016-07-14 20:30:38 +02:00
Thomas Preud'homme
d62b809c11 arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
    (TARGET_HAVE_LDACQD): New macro.
    * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
    than TARGET_HAVE_LDACQ.
    (arm_load_acquire_exclusivedi): Likewise.
    (arm_store_release_exclusivedi): Likewise.

    libgcc/
    * gcc.target/arm/atomic-comp-swap-release-acquire.c: Rename into ...
    * gcc.target/arm/atomic-comp-swap-release-acquire-1.c: This.
    * gcc.target/arm/atomic-op-acq_rel.c: Rename into ...
    * gcc.target/arm/atomic-op-acq_rel-1.c: This.
    * gcc.target/arm/atomic-op-acquire.c: Rename into ...
    * gcc.target/arm/atomic-op-acquire-1.c: This.
    * gcc.target/arm/atomic-op-char.c: Rename into ...
    * gcc.target/arm/atomic-op-char-1.c: This.
    * gcc.target/arm/atomic-op-consume.c: Rename into ...
    * gcc.target/arm/atomic-op-consume-1.c: This.
    * gcc.target/arm/atomic-op-int.c: Rename into ...
    * gcc.target/arm/atomic-op-int-1.c: This.
    * gcc.target/arm/atomic-op-relaxed.c: Rename into ...
    * gcc.target/arm/atomic-op-relaxed-1.c: This.
    * gcc.target/arm/atomic-op-release.c: Rename into ...
    * gcc.target/arm/atomic-op-release-1.c: This.
    * gcc.target/arm/atomic-op-seq_cst.c: Rename into ...
    * gcc.target/arm/atomic-op-seq_cst-1.c: This.
    * gcc.target/arm/atomic-op-short.c: Rename into ...
    * gcc.target/arm/atomic-op-short-1.c: This.
    * gcc.target/arm/atomic-comp-swap-release-acquire-2.c: New test.
    * gcc.target/arm/atomic-op-acq_rel-2.c: Likewise.
    * gcc.target/arm/atomic-op-acquire-2.c: Likewise.
    * gcc.target/arm/atomic-op-char-2.c: Likewise.
    * gcc.target/arm/atomic-op-consume-2.c: Likewise.
    * gcc.target/arm/atomic-op-int-2.c: Likewise.
    * gcc.target/arm/atomic-op-relaxed-2.c: Likewise.
    * gcc.target/arm/atomic-op-release-2.c: Likewise.
    * gcc.target/arm/atomic-op-seq_cst-2.c: Likewise.
    * gcc.target/arm/atomic-op-short-2.c: Likewise.

From-SVN: r238348
2016-07-14 17:21:21 +00:00
Andre Vehreschild
1f8dd420eb re PR fortran/70842 (internal compiler error with character members within a polymorphic pointer)
gcc/testsuite/ChangeLog:

2016-07-14  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/70842
	* gfortran.dg/select_type_35.f03: New test.

gcc/fortran/ChangeLog:

2016-07-14  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/70842
	* simplify.c (gfc_simplify_len): Only for unlimited polymorphic
	types replace the expression's _data ref with a _len ref.

From-SVN: r238347
2016-07-14 19:07:47 +02:00
Thomas Preud'homme
aefae0f13c re PR rtl-optimization/71878 (ICE in cselib_record_set)
2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR rtl-optimization/71878
    * lra-constraints.c (match_reload): Pass information about other
    output operands.  Create new unique register value if matching input
    operand shares same register value as output operand being considered.
    (curr_insn_transform): Record output operands already processed.

From-SVN: r238346
2016-07-14 16:41:06 +00:00
Jonathan Wakely
ea5ec6b7e0 Include header for std::__parallel::search
* include/experimental/functional: Include <parallel/algorithm> in
	Parallel Mode.

From-SVN: r238342
2016-07-14 16:43:17 +01:00
Jonathan Wakely
47d5cb3c3b Add header for std::search to testcase
* testsuite/experimental/functional/searchers.cc: Include <algorithm>
	for std::search.

From-SVN: r238341
2016-07-14 16:27:09 +01:00
Kyrylo Tkachov
53109ba8a7 [vectorizer][2/2] Hook up mult synthesis logic into vectorisation of mult-by-constant
PR target/65951
	PR tree-optimization/70923
	* tree-vect-patterns.c: Include mult-synthesis.h.
	(target_supports_mult_synth_alg): New function.
	(synth_lshift_by_additions): Likewise.
	(apply_binop_and_append_stmt): Likewise.
	(vect_synth_mult_by_constant): Likewise.
	(target_has_vecop_for_code): Likewise.
	(vect_recog_mult_pattern): Use above functions to synthesize vector
	multiplication by integer constants.

	* gcc.dg/vect/vect-mult-const-pattern-1.c: New test.
	* gcc.dg/vect/vect-mult-const-pattern-2.c: Likewise.
	* gcc.dg/vect/pr65951.c: Likewise.
	* gcc.dg/vect/vect-iv-9.c: Remove ! vect_int_mult-specific scan.

From-SVN: r238340
2016-07-14 14:32:39 +00:00
Alan Modra
0c15a902d1 [RS6000] Disparage altivec_mov gpr alternatives
and fix constraint '*' placement.

	* gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
	gpr alternatives.  Correct '*' placement on Y,r alternative.
	Add '*' on operand 1 of r,r alternative.

From-SVN: r238339
2016-07-14 23:55:47 +09:30
Kyrylo Tkachov
ec573d17b8 [1/2] Move choose_mult_variant declaration and dependent declarations to expmed.h
* expmed.c (mult_variant, choose_mult_variant): Move declaration to...
	* expmed.h: ... Here.

From-SVN: r238337
2016-07-14 13:57:05 +00:00
Jan Hubicka
21bcd7bedd gimple.h (stmt_can_terminate_bb_p): New function.
* gimple.h (stmt_can_terminate_bb_p): New function.
	* tree-cfg.c (need_fake_edge_p): Rename to ...
	(stmt_can_terminate_bb_p): ... this; return true if stmt can
	throw external; handle const and pure calls.
	* tree-ssa-loop-niter.c (loop_only_exit_p): Use it.

From-SVN: r238336
2016-07-14 13:52:21 +00:00
David Edelsohn
91f35b7f97 pr60226.c: Expect maximum object file alignment error on AIX.
* c-c++-common/pr60226.c: Expect maximum object	file alignment
        error on AIX.

From-SVN: r238335
2016-07-14 09:07:23 -04:00
Richard Biener
351168fe55 re PR tree-optimization/71866 (gcc locks up after fix for PR70159)
2016-07-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71866
	* tree-ssa-pre.c (get_constant_for_value_id): Remove.
	(do_hoist_insertion): Avoid endless recursion when we
	didn't insert anything because we managed to simplify
	things down to a constant or SSA name.
	(fully_constant_expression): Re-write in terms of ...
	* tree-ssa-sccvn.h (vn_nary_simplify): ... this.  Declare.
	* tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
	vn_nary_build_or_lookup_1.
	(vn_nary_build_or_lookup_1): Added flag and renamed from ...
	(vn_nary_build_or_lookup): ... this which now wraps it.

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

From-SVN: r238334
2016-07-14 12:15:38 +00:00
Eric Botcazou
8234d02aa4 decl.c (gnat_to_gnu_entity): Also use the void pointer type if the designated type is incomplete and has no...
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Also use
	the void pointer type if the designated type is incomplete and has no
	full view in LTO mode.
	<E_Access_Protected_Subprogram_Type>: Adjust comment.
	<E_Incomplete_Type>: Likewise.
	* gcc-interface/trans.c (Call_to_gnu): Do not convert to the type of
	the actual if it is a dummy type.

From-SVN: r238333
2016-07-14 11:12:22 +00:00
Jonathan Wakely
0a2bf18874 Improve doxygen comments for allocators in containers
PR libstdc++/70716
	* include/bits/forward_list.h (forward_list): Update doxygen comments
	to reflect allocator propagation semantics. Remove ambiguous
	statements about data being lost.
	* include/bits/stl_deque.h (deque): Likewise.
	* include/bits/stl_list.h (list): Likewise.
	* include/bits/stl_map.h (map): Likewise.
	* include/bits/stl_multimap.h (multimap): Likewise.
	* include/bits/stl_multiset.h (multiset): Likewise.
	* include/bits/stl_set.h (set): Likewise.
	* include/bits/stl_vector.h (vector): Likewise.
	* include/bits/unordered_map.h (unordered_map, unordered_multimap):
	Likewise.
	* include/bits/unordered_set.h (unordered_set, unordered_multiset):
	Likewise.

From-SVN: r238332
2016-07-14 11:02:10 +01:00
Thomas Preud'homme
94c32c00f1 pr42574.c: Add missing target keyword for the dg-do selector and enclose boolean...
2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * gcc.target/arm/pr42574.c: Add missing target keyword for the dg-do
    selector and enclose boolean expression in curly braces.

From-SVN: r238331
2016-07-14 09:20:48 +00:00
Rainer Orth
29f09b388d Added forgotten PR testsuite/71489 reference.
From-SVN: r238330
2016-07-14 09:10:24 +00:00
Ville Voutilainen
25a69162c9 Implement P0032R3, Homogeneous interface for variant, any and optional,
for the parts concerning any and optional.
	* include/std/any (_Storage()): Make constexpr and have it
	initialize _M_ptr.
	(any()): Make constexpr.
	(any(const any&)): Adjust.
	(any(any&&)): Likewise.
	(__any_constructible_t): New.
	(any(_ValueType&&)): Constrain.
	(any(in_place_type_t<_Tp>, _Args&&...)): New.
	(any(in_place_type_t<_Tp>, initializer_list<_Up>, _Args&&...)):
	Likewise.
	(~any()): Adjust.
	(operator=(const any&)): Likewise.
	(operator=(any&&)): Likewise.
	(operator=(_ValueType&&)): Constrain.
	(emplace(_Args&&...)): New.
	(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
	(clear()): Remove.
	(reset()): New.
	(swap(any&)): Adjust.
	(empty()): Remove.
	(has_value()): New.
	(type()): Adjust.
	(_Manager_internal::_S_create(_Storage&, _Args&&...)): New.
	(_Manager_external::_S_create(_Storage&, _Args&&...)): Likewise.
	(make_any(_Args&&...)): Likewise.
	(make_any(initializer_list<_Up>, _Args&&...)): Likewise.
	* include/std/optional (in_place_t, in_place): Remove.
	(bad_optional_access): Add a comment referring to LEWG 72.
	(emplace(_Args&&...)): Constrain.
	(has_value()): New.
	(reset()): Likewise.
	(make_optional(_Args&&...)): Likewise.
	(make_optional(initializer_list<_Up>, _Args&&...)): Likewise.
	* include/std/utility (in_place_tag): New.
	(__in_place, __in_place_type, __in_place_index): Likewise.
	(in_place_t, in_place_type_t, in_place_index_t): Likewise.
	(in_place(__in_place*)): Likewise.
	(in_place(__in_place_type<_Tp>*)): Likewise.
	(in_place(__in_place_index<_Idx>*)): Likewise.
	* testsuite/20_util/any/assign/1.cc: Adjust.
	* testsuite/20_util/any/assign/emplace.cc: New.
	* testsuite/20_util/any/assign/self.cc: Adjust.
	* testsuite/20_util/any/cons/1.cc: Likewise.
	* testsuite/20_util/any/cons/in_place.cc: New.
	* testsuite/20_util/any/make_any.cc: Likewise.
	* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
	* testsuite/20_util/any/misc/swap.cc: Likewise.
	* testsuite/20_util/any/modifiers/1.cc: Likewise.
	* testsuite/20_util/any/requirements.cc: New.
	* testsuite/20_util/in_place/requirements.cc: Likewise.
	* testsuite/20_util/optional/constexpr/in_place.cc: Adjust.
	* testsuite/20_util/optional/in_place.cc: Likewise.
	* testsuite/20_util/optional/make_optional.cc: Add tests for
	the new overloads of make_optional.

From-SVN: r238329
2016-07-14 12:10:05 +03:00
Ville Voutilainen
c0d31471ba Fix ChangeLog.
From-SVN: r238328
2016-07-14 12:09:50 +03:00
Alan Modra
b799a4819a [RS6000] -mno-vsx should force -mno-power9-dform
PR target/71733
gcc/
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
	with p9_vector override before power9-dform override.
gcc/testsuite/
	* gcc.target/powerpc/p9-novsx.c: New.

From-SVN: r238326
2016-07-14 13:56:36 +09:30
Andi Kleen
f63ba78ce6 Some fixes for profile test cases for autofdo
This fixes some basic issues with the profile test cases with autofdo.

- Disable checking for value transformations that autofdo does not
  support.
- Disable checking for fixed hit counts which autofdo does not support
- Enable dumping of afdo log file and check right log file.
- Increase run time of test cases to 1M iterations because autofdo needs
  a few samples to make sense of a program. The test case don't run
  noticeable slower with that.

There are still failures unfortunately, especially the indirect call
transformations do not trigger because autofdo thinks they are not hot.
This can be addressed later.

gcc/testsuite/:

2016-07-13  Andi Kleen  <ak@linux.intel.com>

	* g++.dg/tree-prof/indir-call-prof.C: Basic fixes for autofdo.
	* g++.dg/tree-prof/morefunc.C: Dito.
	* g++.dg/tree-prof/pr35545.C: Dito.
	* g++.dg/tree-prof/reorder.C: Dito.
	* gcc.dg/tree-prof/20050826-2.c: Dito.
	* gcc.dg/tree-prof/cmpsf-1.c: Dito.
	* gcc.dg/tree-prof/cold_partition_label.c: Dito.
	* gcc.dg/tree-prof/ic-misattribution-1.c: Dito.
	* gcc.dg/tree-prof/indir-call-prof.c: Dito.
	* gcc.dg/tree-prof/inliner-1.c: Dito.
	* gcc.dg/tree-prof/merge_block.c: Dito.
	* gcc.dg/tree-prof/stringop-1.c: Dito.
	* gcc.dg/tree-prof/stringop-2.c: Dito.
	* gcc.dg/tree-prof/switch-case-1.c: Dito.
	* gcc.dg/tree-prof/switch-case-2.c: Dito.
	* gcc.dg/tree-prof/time-profiler-1.c: Dito.
	* gcc.dg/tree-prof/time-profiler-2.c: Dito.
	* gcc.dg/tree-prof/update-loopch.c: Dito.
	* gcc.dg/tree-prof/val-prof-1.c: Dito.
	* gcc.dg/tree-prof/val-prof-2.c: Dito.
	* gcc.dg/tree-prof/val-prof-3.c: Dito.
	* gcc.dg/tree-prof/val-prof-4.c: Dito.
	* gcc.dg/tree-prof/val-prof-5.c: Dito.
	* gcc.dg/tree-prof/val-prof-6.c: Dito.
	* gcc.dg/tree-prof/val-prof-7.c: Dito.

From-SVN: r238325
2016-07-14 02:14:56 +00:00
Andi Kleen
f4d5a23df8 Clean up imports files in test suite
autofdo create_gcov creates an extra .imports file. Always remove that
too when running an autofdo test case.

gcc/testsuite/:

2016-07-13  Andi Kleen  <ak@linux.intel.com>

	* lib/profopt.exp (profopt-execute): Remove .imports files.

From-SVN: r238324
2016-07-14 02:14:43 +00:00
Andi Kleen
ae145898a7 Always print gcc-auto-profile line in dump file
not just when verbose. This ensures all command lines needed to
reproduce the test case are always logged

gcc/testsuite/:

2016-07-13  Andi Kleen  <ak@linux.intel.com>

	* lib/profopt.exp (profopt-execute): Always log profiler
	command line.

From-SVN: r238323
2016-07-14 02:14:29 +00:00
Andi Kleen
e97bd4f540 Add dg-final-scan-autofdo and dg-final-scan-not-autofdo
Autofdo outputs to different dump files and doesn't support some
transformation that normal profiling. Add dg-final-scan-autofdo
and dg-final-scan-not-autofdo statements to the test suite
so that the test cases can hande those cases separately.

gcc/testsuite/:

2016-07-13  Andi Kleen  <ak@linux.intel.com>

	* lib/profopt.exp (dg-final-scan-autofdo,
	dg-final-scan-not-autofdo): New functions.

From-SVN: r238322
2016-07-14 02:14:13 +00:00
Andi Kleen
038ec4b7b9 Don't run instrumented value profiler changes with afdo
The pass to transform gimple based on value profiling runs with autofdo
on, but currently every transformation fails. For indirect calls autofdo
does it on its own, and it doesn't suppport other value profiling. So don't
run this pass when autofdo is active. This also avoids bogus
dump file entries.

gcc/:

2016-07-13  Andi Kleen  <ak@linux.intel.com>

	* value-prof.c (gimple_value_profile_transformations): Don't run
	when auto_profile is on.

From-SVN: r238321
2016-07-14 02:14:02 +00:00
Andi Kleen
0ea221ef24 Print indirect call changes in afdo dump file
Print some information about indirect call promotions in the afdo dump
file. Do it in the same format as the instrumented profiler so that
the test suite can match on it.

gcc/:

2016-07-13  Andi Kleen  <ak@linux.intel.com>

	* auto-profile.c (update_inlined_ind_target,
	afdo_indirect_call): Print information to dump file.

From-SVN: r238320
2016-07-14 02:13:48 +00:00
GCC Administrator
9f01da8e20 Daily bump.
From-SVN: r238319
2016-07-14 00:16:18 +00:00
Andrew Burgess
b2a9e89771 genrecog.c (special_predicate_operand_p): New function.
* genrecog.c (special_predicate_operand_p): New function.
	(predicate_name): Move function.
	(validate_pattern): Don't warn about missing mode for all
	define_special_predicate predicates.

From-SVN: r238314
2016-07-13 16:18:40 -06:00
Marcel Böhme
03ef0c6c55 re PR c++/70926 (Libiberty Demangler segfaults (5))
PR c++/70926
	* cplus-dem.c: Handle large values and overflow when demangling
	length variables.
	(demangle_template_value_parm): Read only until end of mangled string.
	(do_hpacc_template_literal): Likewise.
	(do_type): Handle overflow when demangling array indices.

From-SVN: r238313
2016-07-13 16:06:09 -06:00
Matthew Fortune
0d355cf973 Fix return type handling for Proxy classes
libjava/

	* java/lang/reflect/natVMProxy.cc (unbox): Use ffi_arg for
	integer return types smaller than a word.
	* testsuite/libjava.jar/ReturnInvocationHandler.java: New file.
	* testsuite/libjava.jar/ReturnProxyTest.jar: Likewise.
	* testsuite/libjava.jar/ReturnProxyTest.java: Likewise.
	* testsuite/libjava.jar/ReturnProxyTest.out: Likewise.
	* testsuite/libjava.jar/ReturnProxyTest.xfail: Likewise.
	* testsuite/libjava.jar/ReturnTypes.java: Likewise.
	* testsuite/libjava.jar/ReturnTypesImpl.java: Likewise.

From-SVN: r238312
2016-07-13 21:34:52 +00:00
Matthew Fortune
845a4b727a Fix the use of FFI closures in the java interpreter for integer returns
libjava/

	* interpret-run.cc: Use ffi_arg for FFI integer return types.
	* testsuite/libjava.jar/arraysort.java: New file.
	* testsuite/libjava.jar/arraysort.jar: New file.
	* testsuite/libjava.jar/arraysort.out: New file.
	* testsuite/libjava.jar/arraysort.xfail: New file.

From-SVN: r238311
2016-07-13 21:34:35 +00:00
Jonathan Wakely
e383deac8b libstdc++/71856 Define _GLIBCXX_PARALLEL_ASSERTIONS
PR libstdc++/71856
	* include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty.
	* include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS):
	Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend
	on _GLIBCXX_ASSERTIONS.
	* include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS.
	Include <unistd.h> for sleep.
	* include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS.
	* include/parallel/merge.h: Likewise.
	* include/parallel/multiway_merge.h: Likewise.
	* include/parallel/partition.h: Likewise.
	* include/parallel/queue.h: Likewise.
	* include/parallel/sort.h: Likewise.
	* testsuite/25_algorithms/headers/algorithm/
	parallel_algorithm_assert.cc: New.

From-SVN: r238307
2016-07-13 18:22:57 +01:00
Jonathan Wakely
17f8dc9367 Make basic_string::replace forward to different overload
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
	(replace(__const_iterator, __const_iterator, initializer_list<C>)):
	Forward to different overload.

From-SVN: r238306
2016-07-13 18:22:51 +01:00
Jonathan Wakely
260d92cd0d Make __allocated_ptr::_S_raw_ptr static
* include/bits/allocated_ptr.h (__allocated_ptr::_S_raw_ptr): Make
	static.

From-SVN: r238305
2016-07-13 18:22:47 +01:00
Jonathan Wakely
2d60da1031 Revert "Add non-const overload of std::string::data()"
This reverts r238291 aka 4300aa2087d90cd2d55852fa38f082a89bc7e72d.

From-SVN: r238303
2016-07-13 16:56:46 +01:00
Bin Cheng
6fa3d4b4a7 tree-vect-data-refs.c (vect_no_alias_p): New function.
* tree-vect-data-refs.c (vect_no_alias_p): New function.
	(vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
	resolve alias checks which are known at compilation time.
	Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
	alias checks are resolved.  Move dump info for too many runtime
	alias checks to here...
	* tree-vect-loop.c (vect_analyze_loop_2): ...From here.

	gcc/testsuite
	* gcc.dg/vect/vect-35-big-array.c: Refine comment and test.
	* gcc.dg/vect/vect-35.c: Ditto.
	* gcc.dg/vect/vect-alias-check-2.c: New test.

From-SVN: r238301
2016-07-13 15:06:40 +00:00
Martin Liska
65f18bc635 Fix Fortran DO loop fallback
* gfortran.dg/ldist-1.f90: Revert change introduces in r238114.
	* gfortran.dg/vect/pr62283.f: Add -fno-ipa-icf to additional
	options.
	* gfortran.dg/pr42108.f90: Update expected dump scan.

From-SVN: r238300
2016-07-13 14:03:29 +00:00
Richard Biener
9737f35bba re PR tree-optimization/24574 (a!=0?a/10:0 is not reduced to a/10)
2016-07-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/24574
	* tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
	position and add shift, rotate, divison and modulo support
	for left zero.
	(value_replacement): Pass in argument position to absorbing_element_p.

	* gcc.dg/pr24574.c: New testcase.

From-SVN: r238299
2016-07-13 13:57:05 +00:00
Senthil Kumar Selvaraj
62c0ea4b14 Fix some bogus testsuite failures for avr.
gcc/testsuite/

        * c-c++-common/Wduplicated-cond-3.c (fn10): Use smaller
        const literal.
        * c-c++-common/builtin-arith-overflow-2.c: Skip for avr.
        * c-c++-common/pr68833-1.c: Require int32plus.
        * gcc.dg/ipa/pr63551.c: Likewise.
        * gcc.dg/ipa/pr63595.c: Require ptr32plus.
        * gcc.dg/ipa/pr64041.c: Require int32plus.

From-SVN: r238294
2016-07-13 12:12:10 +00:00
Ville Voutilainen
05505e9d69 Fix ChangeLog.
From-SVN: r238293
2016-07-13 14:27:37 +03:00
Ville Voutilainen
86c0ec1de1 Implement P0307R2, Making Optional Greater Equal Again.
* include/experimental/optional (_Has_addressof): Fix the comment.
	* include/std/optional (_Has_addressof): Likewise.
	(operator=(_Up&&)): Constrain.
	(operator=(const optional<_Up>&)): Likewise.
	(operator=(optional<_Up>&&)): Likewise.
	(__optional_relop_t): New.
	(operator==(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
	(operator!=(const optional<_Tp>&, const optional<_Tp>&)):
	Constrain and make transparent.
	(operator<(const optional<_Tp>&, const optional<_Tp>&)): Constrain.
	(operator>(const optional<_Tp>&, const optional<_Tp>&)):
	Constrain and make transparent.
	(operator<=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
	(operator>=(const optional<_Tp>&, const optional<_Tp>&)): Likewise.
	(operator==(const optional<_Tp>&, const _Tp&): Constrain.
	(operator==(const _Tp&, const optional<_Tp>&)): Likewise.
	(operator!=(const optional<_Tp>&, _Tp const&)):
	Constrain and make transparent.
	(operator!=(const _Tp&, const optional<_Tp>&)): Likewise.
	(operator<(const optional<_Tp>&, const _Tp&)): Constrain.
	(operator<(const _Tp&, const optional<_Tp>&)): Likewise.
	(operator>(const optional<_Tp>&, const _Tp&)):
	Constrain and make transparent.
	(operator>(const _Tp&, const optional<_Tp>&)): Likewise.
	(operator<=(const optional<_Tp>&, const _Tp&)): Likewise.
	(operator<=(const _Tp&, const optional<_Tp>&)): Likewise.
	(operator>=(const optional<_Tp>&, const _Tp&)): Likewise.
	(operator>=(const _Tp&, const optional<_Tp>&)): Likewise.
	* testsuite/20_util/optional/constexpr/relops/2.cc: Adjust.
	* testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
	* testsuite/20_util/optional/relops/1.cc: Likewise.
	* testsuite/20_util/optional/relops/2.cc: Likewise.
	* testsuite/20_util/optional/relops/3.cc: Likewise.
	* testsuite/20_util/optional/relops/4.cc: Likewise.
	* testsuite/20_util/optional/requirements.cc: Add tests to verify
	that optional's relops are transparent and don't synthesize
	operators. Also test that assignment sfinaes.

From-SVN: r238292
2016-07-13 14:25:51 +03:00
Jonathan Wakely
ceea48fc64 Add non-const overload of std::string::data()
Also fix confusion between pointer and _CharT*, so that allocators with
fancy pointers work correctly.

	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (_M_c_str):
	New function.
	(_M_disjunct, basic_string(const basic_string&, size_t)): Use data()
	instead of _M_data().
	(basic_string(const basic_string&, size_t, size_t, const _Alloc&)):
	Likewise.
	(append(const basic_string&)): Likewise.
	(append(const basic_string&, size_type, size_type)): Likewise.
	(assign(const basic_string&, size_type, size_type)): Likewise.
	(insert(size_type, const basic_string&)): Likewise.
	(insert(size_type, const basic_string&, size_type, size_type)):
	Likewise.
	(replace(size_type, size_type, const basic_string&, size_type,
	size_type)): Likewise.
	(replace(__const_iterator, __const_iterator, const basic_string&)):
	Likewise.
	(c_str(), data()): Use c_str() instead of _M_data().
	(data()): Add non-const overload as per LWG 2391 and P0272R1.
	(compare(const basic_string&)): Use data() instead of _M_data().
	[!_GLIBCXX_USE_CXX11_ABI] (data()): Add non-const overload.
	* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] (_M_mutate):
	Pass raw pointers to _S_copy.
	(_M_erase, _M_replace_aux): Pass raw pointers to _S_move and
	_S_assign.
	(find(const _CharT*, size_type, size_type)): Use data instead of
	_M_data().
	* testsuite/21_strings/basic_string/allocator/char/ext_ptr.cc: New.
	* testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
	* testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.

From-SVN: r238291
2016-07-13 12:08:37 +01:00
Ilya Enkovich
c7ed8938d6 re PR ipa/71633 ([CHKP] internal compiler error: in inline_call)
gcc/

	PR ipa/71633
	* ipa-inline-transform.c (inline_call): Support
	instrumented thunks.

gcc/testsuite/

	PR ipa/71633
	* g++.dg/pr71633.C: New test.

From-SVN: r238290
2016-07-13 11:02:15 +00:00
Thomas Preud'homme
5ce15300a0 arm.h (TARGET_HAVE_CBZ): Define.
2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
    (TARGET_IDIV): Set for all Thumb targets provided they have hardware
    divide feature.
    * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
    Baseline.  Make initial alternative TARGET_32BIT only.
    (udivsi3): Likewise.
    * config/arm/thumb1.md (thumb1_cbz): New define_insn.
    * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
    target.

    gcc/testsuite/
    * lib/target-supports.exp (check_effective_target_arm_thumb1_cbz_ok):
    Add new arm_thumb1_cbz_ok effective target.
    * gcc.target/arm/cbz.c: New test.

From-SVN: r238289
2016-07-13 10:54:12 +00:00
Thomas Preud'homme
2b9509a34d arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
    * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
    availability with TARGET_HAVE_MOVT.
    (thumb_legitimate_constant_p): Strip the high part of a label_ref.
    (thumb1_rtx_costs): Also return 0 if setting a half word constant and
    MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
    UINTVAL.
    (thumb1_size_rtx_costs): Make set of half word constant also cost 1
    extra instruction if MOVW is available.  Use a cost variable
    incremented by COSTS_N_INSNS (1) when the condition match rather than
    returning an arithmetic expression based on COSTS_N_INSNS.  Make
    constant with bottom half word zero cost 2 instruction if MOVW is
    available.
    * config/arm/arm.md (define_attr "arch"): Add v8mb.
    (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
    target is ARMv8-M Baseline.
    (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
    (arm_movtas_ze): Likewise.
    * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
    alternative for constants satisfying j constraint.
    (thumb1_movsi_insn): Likewise.
    (movsi splitter for K alternative): Tighten condition to not trigger
    if movt is available and j constraint is satisfied.
    (Pe immediate splitter): Likewise.
    (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
    constant fitting in an halfword to use MOVW.
    * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
    effective target.

    gcc/testsuite/
    * lib/target-supports.exp (check_effective_target_arm_thumb1_movt_ok):
    Define effective target.
    * gcc.target/arm/pr42574.c: Require arm_thumb1_ok and
    !arm_thumb1_movt_ok to exclude ARMv8-M Baseline.
    * gcc.target/arm/movhi_movw.c: New test.
    * gcc.target/arm/movsi_movw.c: Likewise.
    * gcc.target/arm/movdi_movw.c: Likewise.

From-SVN: r238288
2016-07-13 10:54:01 +00:00
Richard Biener
7f15b177ba re PR tree-optimization/71104 (ICE: verify_ssa failed (with vfork / error: definition in block 3 does not dominate use in block 7 ))
2016-07-13  Richard Biener  <rguenther@suse.de>

	PR middle-end/71104
	* gimplify.c (gimplify_modify_expr): Gimplify the RHS before
	gimplifying the LHS.  Make sure to gimplify a returning twice
	call LHS without using SSA names.

	* gcc.dg/pr71104-1.c: New testcase.
	* gcc.dg/pr71104-2.c: Likewise.

From-SVN: r238287
2016-07-13 08:03:04 +00:00
Trevor Saunders
4a0e3b5ac3 remove unnecessary calls to vec::release
There's no point in calling release () on an auto_vec just before it goes
out of scope.

gcc/ChangeLog:

2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree-data-ref.c (find_data_references_in_stmt): Remove
	unnecessary call to vec::release.
	(graphite_find_data_references_in_stmt): Likewise.
	* tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
	* tree-vect-stmts.c (vectorizable_condition): Likewise.

From-SVN: r238286
2016-07-13 02:44:59 +00:00
Trevor Saunders
8c6812476a use auto_vec for more local variables
gcc/c/ChangeLog:

2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* c-parser.c (c_parser_generic_selection): Make type of variable
	auto_vec.
	(c_parser_omp_declare_simd): Likewise.

gcc/ChangeLog:

2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* cfgexpand.c (expand_used_vars): Make the type of a local variable auto_vec.
	* genmatch.c (lower_for): Likewise.
	* haifa-sched.c (haifa_sched_init): Likewise.
	(add_to_speculative_block): Likewise.
	(create_check_block_twin): Likewise.
	* predict.c (handle_missing_profiles): Likewise.
	* tree-data-ref.c (loop_nest_has_data_refs): Likewise.
	* tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
	* tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): Likewise.
	(maybe_lower_iteration_bound): Likewise.
	* tree-ssa-sccvn.c (DFS): Likewise.
	* tree-stdarg.c (reachable_at_most_once): Likewise.
	* tree-vect-stmts.c (vectorizable_conversion): Likewise.
	(vectorizable_store): Likewise.

From-SVN: r238285
2016-07-13 02:44:52 +00:00