Commit Graph

156248 Commits

Author SHA1 Message Date
Jakub Jelinek
dcc34072c4 dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
* dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
	(DEBUG_LTO_ABBREV_SECTION): Likewise.
	(DEBUG_LTO_MACINFO_SECTION): Likewise.
	(DEBUG_MACRO_SECTION): Likewise.
	(DEBUG_LTO_MACRO_SECTION): Likewise.
	(DEBUG_STR_DWO_SECTION): Likewise.
	(DEBUG_LTO_STR_DWO_SECTION): Likewise.
	(DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
	(DEBUG_LTO_DWO_LINE_SECTION): Define.
	(DEBUG_LTO_LINE_STR_SECTION): Define.
	(init_sections_and_labels): Initialize debug_line_str_section
	variable.  Initialize debug_loc_section for -gdwarf-5 to
	DEBUG_LOCLISTS_SECTION.  Formatting fixes.

From-SVN: r253003
2017-09-20 11:02:52 +02:00
Paolo Carlini
0f45457ef4 re PR c++/64954 (GCC incorrectly rejects constexpr variable initialization.)
2017-09-20  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/64954
	* g++.dg/cpp0x/constexpr-ctor20.C: New.

From-SVN: r253002
2017-09-20 07:53:27 +00:00
Richard Biener
f6b5c26b8a graphite-sese-to-poly.c (extract_affine): Properly handle POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
2017-09-20  Richard Biener  <rguenther@suse.de>

	* graphite-sese-to-poly.c (extract_affine): Properly handle
	POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.

From-SVN: r253001
2017-09-20 07:34:55 +00:00
Richard Biener
73fe2f3229 re PR tree-optimization/81373 (Graphite ICE in ssa_default_def at gcc/tree-dfa.c:305)
2017-09-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/81373
	* graphite-scop-detection.c (build_cross_bb_scalars_def):
	Force SESE live-out defs to be handled even if they are
	scev_analyzable_p.

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

From-SVN: r253000
2017-09-20 07:33:58 +00:00
Jeff Law
ac9c032e4d combine-stack-adj.c (combine_stack_adjustments_for_block): Do nothing for stack adjustments with REG_STACK_CHECK.
* combine-stack-adj.c (combine_stack_adjustments_for_block): Do
	nothing for stack adjustments with REG_STACK_CHECK.
	* sched-deps.c (parse_add_or_inc): Reject insns with
	REG_STACK_CHECK from dependency breaking.
	* config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
	(ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
	* reg-notes.def (STACK_CHECK): New note.

	* gcc.target/i386/stack-check-11.c: New test.

From-SVN: r252999
2017-09-19 23:43:28 -06:00
Jeff Law
8e7a09c353 i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
* config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
	(ix86_expand_prologue): Dump stack clash info as needed.
	Call ix86_adjust_stack_and_probe_stack_clash as needed.

	* gcc.dg/stack-check-4.c: New test.
	* gcc.dg/stack-check-5.c: New test.
	* gcc.dg/stack-check-6.c: New test.
	* gcc.dg/stack-check-6a.c: New test.
	* gcc.dg/stack-check-7.c: New test.
	* gcc.dg/stack-check-8.c: New test.
	* gcc.dg/stack-check-9.c: New test.
	* gcc.dg/stack-check-10.c: New test.
	* lib/target-supports.exp
	(check_effective_target_supports_stack_clash_protection): Enable for
	x86 and x86_64 targets.

From-SVN: r252998
2017-09-19 23:35:07 -06:00
Jeff Law
8a502a808e function.c (dump_stack_clash_frame_info): New function.
* function.c (dump_stack_clash_frame_info): New function.
        * function.h (dump_stack_clash_frame_info): Prototype.
        (enum stack_clash_probes): New enum.

From-SVN: r252997
2017-09-19 23:23:51 -06:00
Jeff Law
9c1b56c4e7 alpha.c (alpha_expand_prologue): Also check flag_stack_clash_protection.
* config/alpha/alpha.c (alpha_expand_prologue): Also check
	flag_stack_clash_protection.
	* config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
	(arm_expand_prologue, thumb1_expand_prologue): Likewise.
	(arm_frame_pointer_required): Likewise.
	* config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
	(ia64_expand_prologue): Likewise.
	* config/mips/mips.c (mips_expand_prologue): Likewise.
	* config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
	* config/sparc/sparc.c (sparc_expand_prologue): Likewise.
	(sparc_flat_expand_prologue): Likewise.
	* config/spu/spu.c (spu_expand_prologue): Likewise.

From-SVN: r252996
2017-09-19 23:21:09 -06:00
Jeff Law
8c1dd97000 explow.c: Include "params.h".
2017-09-18  Jeff Law  <law@redhat.com>

	* explow.c: Include "params.h".
	(anti_adjust_stack_and_probe_stack_clash): New function.
	(get_stack_check_protect): Likewise.
	(compute_stack_clash_protection_loop_data): Likewise.
	(emit_stack_clash_protection_loop_start): Likewise.
	(emit_stack_clash_protection_loop_end): Likewise.
	(allocate_dynamic_stack_space): Use get_stack_check_protect.
	Use anti_adjust_stack_and_probe_stack_clash.
	* explow.h (compute_stack_clash_protection_loop_data): Prototype.
	(emit_stack_clash_protection_loop_start): Likewise.
	(emit_stack_clash_protection_loop_end): Likewise.
	* rtl.h (get_stack_check_protect): Prototype.
	* target.def (stack_clash_protection_final_dynamic_probe): New hook.
	* targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
	* targhooks.h (default_stack_clash_protection_final_dynamic_probe):
	Prototype.
	* doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
	Add @hook.
	* doc/tm.texi: Rebuilt.
	* config/aarch64/aarch64.c (aarch64_expand_prologue): Use
	get_stack_check_protect.
	* config/alpha/alpha.c (alpha_expand_prologue): Likewise.
	* config/arm/arm.c (arm_expand_prologue): Likewise.
	(arm_frame_pointer_required): Likewise.
	* config/i386/i386.c (ix86_expand_prologue): Likewise.
	* config/ia64/ia64.c (ia64_expand_prologue): Likewise.
	* config/mips/mips.c (mips_expand_prologue): Likewise.
	* config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
	* config/sparc/sparc.c (sparc_expand_prologue): Likewise.
	(sparc_flat_expand_prologue): Likewise.

	* gcc.dg/stack-check-3.c: New test.

From-SVN: r252995
2017-09-19 23:05:12 -06:00
Jeff Law
ee8f15c69e common.opt (-fstack-clash-protection): New option.
* common.opt (-fstack-clash-protection): New option.
	* flag-types.h (enum stack_check_type): Note difference between
	-fstack-check= and -fstack-clash-protection.
	* params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
	(PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
	* toplev.c (process_options): Issue warnings/errors for cases
	not handled with -fstack-clash-protection.
	* doc/invoke.texi (-fstack-clash-protection): Document new option.
	(-fstack-check): Note additional problem with -fstack-check=generic.
	Note that -fstack-check is primarily for Ada and refer users
	to -fstack-clash-protection for stack-clash-protection.
	Document new params for stack clash protection.

	* gcc.dg/stack-check-2.c: New test.
	* lib/target-supports.exp
	(check_effective_target_supports_stack_clash_protection): New function.
	(check_effective_target_frame_pointer_for_non_leaf): Likewise.
	(check_effective_target_caller_implicit_probes): Likewise.

From-SVN: r252994
2017-09-19 22:56:54 -06:00
Ian Lance Taylor
8fca13953b runtime: restore "goroutine in C code" message
In the 1.9 upgrade I took out the word "goroutine" from a traceback
    showing a goroutine running in C code, to let TestCgoNumGoroutine
    pass.  However, it turns out that some code is actually checking for
    that string; for example,
    https://github.com/grpc/grpc-go/blob/master/test/leakcheck/leakcheck.go#L44
    So keep the message the same, and change the test.
    
    Reviewed-on: https://go-review.googlesource.com/64850

From-SVN: r252991
2017-09-20 00:33:29 +00:00
GCC Administrator
9bd25fc4e2 Daily bump.
From-SVN: r252990
2017-09-20 00:16:22 +00:00
Uros Bizjak
23902d7037 i386.md (*scc_bt<mode>): New insn_and_split pattern.
* config/i386/i386.md (*scc_bt<mode>): New insn_and_split pattern.
	(*scc_bt<mode>_1): Ditto.
	(*scc_bt<mode>_mask): Ditto.

testsuite/ChangeLog:

	* gcc.target/i386/bt-5.c: New test.
	* gcc.target/i386/bt-6.c: Ditto.
	* gcc.target/i386/bt-mask-3.c: Ditto.
	* gcc.target/i386/bt-mask-4.c: Ditto.

From-SVN: r252986
2017-09-19 23:14:11 +02:00
Jakub Jelinek
14a1a59f17 pr31146-2.C: Only do scan-tree-dump for c++14_down.
* g++.dg/tree-ssa/pr31146-2.C: Only do scan-tree-dump for c++14_down.
	* g++.dg/tree-ssa/pr41428.C: Likewise.
	* g++.dg/expr/bool1.C: Only do dg-do compile instead of dg-do run for
	c++17 and up.
	* g++.dg/expr/bool3.C: Likewise.
	* g++.dg/expr/bitfield5.C: Likewise.
	* g++.old-deja/g++.jason/bool5.C: Likewise.

From-SVN: r252985
2017-09-19 23:03:11 +02:00
Uros Bizjak
684ccf0e11 i386.c (ix86_split_long_move): Do not handle address used for LEA in a special way.
* config/i386/i386.c (ix86_split_long_move): Do not handle
	address used for LEA in a special way.

From-SVN: r252984
2017-09-19 20:38:10 +02:00
Jonathan Wakely
23b49089a4 PR libstdc++/71500 restore C++11 compatibility in <regex>
PR libstdc++/71500
	* include/bits/regex_executor.tcc
	(_Backref_matcher<BidIt, regex_traits<C>>::_M_apply): Use
	std::__equal4 instead of C++14 4-iterator overloads of std::equal.
	* include/bits/stl_algobase.h (__equal4): New functions implementing
	4-iterator overloads of std::equal for use in C++11.
	(equal(It1, It1, It2, It2), equal(It1, It1, It2, It2, BinaryPred)):
	Move function bodies to new __equal4 functions.
	* testsuite/28_regex/simple_c++11.cc: New.

From-SVN: r252981
2017-09-19 18:06:12 +01:00
Segher Boessenkool
9f0b8c7b4b Fix typo in simplify_binary_operation_1
* simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.

From-SVN: r252979
2017-09-19 17:50:46 +02:00
Jonathan Wakely
c4b06e7f1d PR libstdc++/82254 fix std::is_nothrow_invocable_r w.r.t throwing conversions
PR libstdc++/82254
	* include/std/type_traits (__is_invocable): Add partial specialization
	for INVOKE<void> case and remove is_void<R> check from partial
	specialization for INVOKE<R> case.
	(__is_nt_invocable_impl): New helper for is_nothrow_invocable_r.
	(is_nothrow_invocable_r): Use __is_nt_invocable_impl.
	* testsuite/20_util/is_nothrow_invocable/value.cc: Add tests for
	conversions that can throw or fail to convert. Use static assert
	strings to explain negative results.
	* testsuite/20_util/is_nothrow_invocable/value_ext.cc: Use
	is_nothrow_constructible in is_nt_invocable_conv.

From-SVN: r252977
2017-09-19 15:33:51 +01:00
Martin Sebor
e32d238855 PR c/81854 - weak alias of an incompatible symbol accepted
gcc/ChangeLog:

	PR c/81854
	* cgraphunit.c (handle_alias_pairs): Reject aliases between functions
	of incompatible types.

gcc/testsuite/ChangeLog:

	PR c/81854
	* gcc.dg/pr81854.c: New test.
	* g++.dg/ext/attr-ifunc-5.C: New test.
	* g++.dg/ext/attr-ifunc-1.C: Adjust.
	* g++.dg/ext/attr-ifunc-2.C: Same.
	* g++.dg/ext/attr-ifunc-3.C: Same.
	* g++.dg/ext/attr-ifunc-4.C: Same.
	* g++.old-deja/g++.abi/vtable2.C: Same.
	* gcc.dg/attr-ifunc-1.c: Same.

From-SVN: r252976
2017-09-19 08:27:32 -06:00
Will Schmidt
d14c60ad26 rs6000.c (rs6000_gimple_fold_builtin): Add handling for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
[gcc]

2017-09-19  Will Schmidt  <will_schmidt@vnet.ibm.com>

    * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
    for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
    * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
    Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.

From-SVN: r252975
2017-09-19 13:42:48 +00:00
Will Schmidt
81b29ad80a fold-vec-ld-misc.c: New.
[gcc/testsuite]

2017-09-19  Will Schmidt  <will_schmidt@vnet.ibm.com>

        * gcc.target/powerpc/fold-vec-ld-misc.c: New.

From-SVN: r252974
2017-09-19 13:32:54 +00:00
Richard Biener
109bb9107b re PR tree-optimization/82244 (-O2: ICE: tree check: expected ssa_name, have integer_cst in replace_uses_by, at tree-cfg.c:1904)
2017-09-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82244
	* tree-vrp.c (remove_range_assertions): Do not propagate
	a constant to abnormals but replace the assert with a copy.

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

From-SVN: r252973
2017-09-19 11:57:39 +00:00
Alexander Monakov
ffaea11703 lra: make reload_pseudo_compare_func a proper comparator
PR rtl-optimization/57878
	PR rtl-optimization/68988
	* lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
	avoidance test involving non_reload_pseudos.  Move frequency test
	below the general fragmentation avoidance test.

From-SVN: r252972
2017-09-19 13:16:20 +03:00
Pierre-Marie de Rodat
9412007cea validity_check.adb: Minor dg-options simplification.
gcc/testsuite/

	* gnat.dg/validity_check.adb: Minor dg-options simplification.

From-SVN: r252971
2017-09-19 09:07:19 +00:00
Richard Biener
197d2f5b2c re PR tree-optimization/69728 (internal compiler error: in outer_projection_mupa, at graphite-sese-to-poly.c:1175)
2017-09-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69728
	* graphite-sese-to-poly.c (schedule_error): New global.
	(add_loop_schedule): Handle empty domain by failing the
	schedule.
	(build_original_schedule): Handle schedule_error.

	* gfortran.dg/graphite/pr69728.f90: New testcase.
	* gcc.dg/graphite/pr69728.c: Likewise.

From-SVN: r252968
2017-09-19 08:25:17 +00:00
Rainer Orth
6da7ce80f3 Fix some gotools testing problems
* Makefile.am (GOTESTFLAGS): New variable.
	(check-runtime): Pass it to gotest.
	(check-go-tools): Sort summary.
	(check-runtime): Likewise.
	(check-cgo-test): Likewise.
	(check-carchive-test): Likewise.
	(check): Likewise.
	* Makefile.in: Regenerate.

From-SVN: r252963
2017-09-19 07:51:49 +00:00
Richard Biener
129d9dc292 graphite-scop-detection.c (scop_detection::can_represent_loop): Do not iterate to sibling loops but only to siblings of inner loops.
2017-09-19  Richard Biener  <rguenther@suse.de>

	* graphite-scop-detection.c (scop_detection::can_represent_loop):
	Do not iterate to sibling loops but only to siblings of inner
	loops.

From-SVN: r252962
2017-09-19 07:14:12 +00:00
GCC Administrator
5cf2a5bbdd Daily bump.
From-SVN: r252961
2017-09-19 00:16:20 +00:00
Paolo Carlini
7e12c0e0e0 re PR c++/80947 (Different visibility for the lambda and its capture list members with -fvisibility=hidden)
2017-09-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80947
	* g++.dg/cpp0x/lambda/lambda-80947.C: New.

From-SVN: r252957
2017-09-18 23:57:26 +00:00
Ian Lance Taylor
4d034b5259 runtime: always initialize str field in __go_string_slice result
Reviewed-on: https://go-review.googlesource.com/64110

From-SVN: r252953
2017-09-18 22:29:45 +00:00
Jonathan Wakely
e1227692dd PR libstdc++/81468 fix test for duration conversions
PR libstdc++/81468
	* testsuite/20_util/duration/cons/dr1177.cc: Fix incorrect test and
	improve static assertion messages.

From-SVN: r252950
2017-09-18 21:00:32 +01:00
Andreas Schwab
05d41b0cb1 re PR target/81613 (FAIL: gfortran.dg/intrinsic_modulo_1.f90 -O3 -g execution test)
PR target/81613
* config/m68k/m68k.md (moveq feeding equality comparison): Check
that the registers are different.

From-SVN: r252949
2017-09-18 19:06:00 +00:00
Uros Bizjak
f5987ce627 i386.c (fold_builtin_cpu): Add M_AMDFAM17H to processor_model and "amdfam17h" to arch_names_table.
* config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
	to processor_model and "amdfam17h" to arch_names_table.
	* doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.

From-SVN: r252948
2017-09-18 20:57:21 +02:00
Jakub Jelinek
f94616d99d re PR c/82234 (__builtin_shuffle is not in the keyword index)
PR c/82234
	* doc/extend.texi: Add @findex entry for __builtin_shuffle.

From-SVN: r252947
2017-09-18 20:49:41 +02:00
Jason Merrill
04dcd57085 PR c++/82069 - ICE with lambda in template
* semantics.c (process_outer_var_ref): Check uses_template_parms
	instead of any_dependent_template_arguments_p.

From-SVN: r252936
2017-09-18 13:41:07 -04:00
Richard Sandiford
8b7e9dba2b Move computation of SLP_TREE_NUMBER_OF_VEC_STMTS
Previously SLP_TREE_NUMBER_OF_VEC_STMTS was calculated while scheduling
an SLP tree after analysis, but sometimes it can be useful to know the
value during analysis too.  This patch moves the calculation to
vect_slp_analyze_node_operations instead.

2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

gcc/
	* tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
	with a vec_info *.
	* tree-vect-loop.c (vect_analyze_loop_operations): Update call
	accordingly.
	* tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
	parameter.  Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
	vect_schedule_slp_instance.
	(vect_slp_analyze_operations): Replace parameters with a vec_info *.
	Update call to vect_slp_analyze_node_operations.  Simplify return
	value.
	(vect_slp_analyze_bb_1): Update call accordingly.
	(vect_schedule_slp_instance): Remove vectorization_factor parameter.
	Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
	(vect_schedule_slp): Update call accordingly.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r252935
2017-09-18 15:50:03 +00:00
Richard Sandiford
ac8936b467 Fix an SVE failure in the Fortran matmul* tests
The vectoriser was calling vect_get_smallest_scalar_type without
having proven that the type actually is a scalar.  This seems to
be the intended behaviour: the ultimate test of whether the type
is interesting (and hence scalar) is whether an associated vector
type exists, but this is only tested later.

The patch simply makes the function cope gracefully with non-scalar
inputs.

2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

gcc/
	* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
	with types that aren't in fact scalar.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r252934
2017-09-18 15:42:08 +00:00
Richard Sandiford
b161f2c927 Include phis in SLP unrolling calculation
Without this we'd pick an unrolling factor based purely on longs,
ignoring the ints.  It's posssible that vect_get_smallest_scalar_type
should also handle shifts, but I think we'd still want this as a
belt-and-braces fix.

2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* tree-vect-slp.c (vect_record_max_nunits): New function,
	split out from...
	(vect_build_slp_tree_1): ...here.
	(vect_build_slp_tree_2): Call it for phis too.

gcc/testsuite/
	* gcc.dg/vect/slp-multitypes-13.c: New test.

From-SVN: r252933
2017-09-18 15:39:21 +00:00
Richard Sandiford
7251b0bfbf Fix vectorizable_mask_load_store handling of invariant masks
vectorizable_mask_load_store was not passing the required mask type to
vect_get_vec_def_for_operand.  This doesn't matter for masks that are
defined in the loop, since their STMT_VINFO_VECTYPE will be what we need
anyway.  But it's not possible to tell which mask type the caller needs
when looking at an invariant scalar boolean.  As the comment above the
function says:

   In case OP is an invariant or constant, a new stmt that creates a vector def
   needs to be introduced.  VECTYPE may be used to specify a required type for
   vector invariant.

This fixes the attached testcase for SVE.

2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
	to vect_get_vec_def_for_operand when getting the mask operand.

gcc/testsuite/
	* gfortran.dg/vect/mask-store-1.f90: New test.

From-SVN: r252932
2017-09-18 15:32:01 +00:00
Richard Sandiford
e009b0558e Fix type of bitstart in vectorizable_live_operation
This patch changes the type of the multiplier applied by
vectorizable_live_operation from unsigned_type_node to bitsizetype,
which matches the type of TYPE_SIZE and is the type expected of a
BIT_FIELD_REF bit position.  This is shown by existing tests when
SVE is added.

2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

gcc/
	* tree-vect-loop.c (vectorizable_live_operation): Fix type of
	bitstart.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r252931
2017-09-18 15:28:55 +00:00
Richard Sandiford
dd25e724a4 Fix vectorizable_live_operation handling of vector booleans
vectorizable_live_operation needs to use BIT_FIELD_REF to extract one
element of a vector.  For a packed vector boolean type, the number of
bits to extract should be taken from TYPE_PRECISION rather than TYPE_SIZE.

This is shown by existing tests once SVE is added.

2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

gcc/
	* tree-vect-loop.c (vectorizable_live_operation): Fix element size
	calculation for vector booleans.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r252930
2017-09-18 15:26:03 +00:00
Richard Sandiford
68a0f2ffff Invoke vectorizable_live_operation in a consistent way
vect_transform_stmt calls vectorizable_live_operation for
each live statement in an SLP node, but vect_analyze_stmt
only called it the once.  This patch makes vect_analyze_stmt
consistent with vect_transform_stmt, which should be a bit
more robust, and also means that a later patch can use
slp_index when deciding validity.

2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

gcc/
	* tree-vect-stmts.c (can_vectorize_live_stmts): New function,
	split out from...
	(vect_transform_stmt): ...here.
	(vect_analyze_stmt): Use it instead of calling
	vectorizable_live_operation directly.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r252929
2017-09-18 15:03:29 +00:00
Cesar Philippidis
f64b12bd15 omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on non-SIMT targets in acc vector loops.
gcc/
	* omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
	non-SIMT targets in acc vector loops.

From-SVN: r252928
2017-09-18 07:15:37 -07:00
Claudiu Zissulescu
7c22e69045 [ARC] Check the assembler for gdwar2 support.
gcc/
2017-09-18  Claudiu Zissulescu  <claziss@synopsys.com>

	* configure.ac: Add arc and check if assembler supports gdwar2.
	* configure: Regenerate.

From-SVN: r252927
2017-09-18 15:56:01 +02:00
Paolo Carlini
10d8c51f30 re PR c++/45033 ("delete" does overload resolution for class operands, but shouldn't.)
2017-09-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/45033
	* g++.dg/expr/delete1.C: New.

From-SVN: r252924
2017-09-18 12:08:14 +00:00
Jonathan Wakely
db624b3b4b Use built-in for std::make_integer_sequnce
* include/std/utility (_Itup_cat, _Make_integer_sequence): Remove.
	(_Build_index_tuple, make_integer_sequence): Use built-in to generate
	pack expansion.

From-SVN: r252923
2017-09-18 13:02:19 +01:00
Jonathan Wakely
ec26ff5a01 PR libstdc++/71187 reimplement declval without add_rvalue_reference
PR libstdc++/71187
	* include/std/type_traits (__declval): New function to deduce return
	type of declval.
	(__declval_protector::_delegate): Remove.
	(declval): Use __declval instead of add_rvalue_reference and
	__declval_protector::__delegate.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
	lineno.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.

From-SVN: r252922
2017-09-18 12:40:10 +01:00
Markus Trippelsdorf
ba2c915e3d Update checksums for isl-0.18.tar.bz2
From-SVN: r252921
2017-09-18 11:25:13 +00:00
Richard Biener
6b1ce94d31 re PR tree-optimization/82220 (SPEC CPU2006 482.sphinx3 ~10% performance regression with trunk@250416)
2017-09-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82220
	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
	epilogue niters from the min_profitable_iters compute.

From-SVN: r252917
2017-09-18 10:10:31 +00:00
Pierre-Marie de Rodat
2eda24e95c sem_ch4.adb (Complete_Object_Operation): Do not insert 'Access for reference types in the access-to-access case.
gcc/ada/

2017-09-18  Bob Duff  <duff@adacore.com>

	* sem_ch4.adb (Complete_Object_Operation): Do not insert 'Access for
	reference types in the access-to-access case.

2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_attr.adb (Analyze_Access_Attribute): Move check for the presence
	of the "aliased" keyword on the prefix from here to...
	(Resolve_Attribute) <Attribute_Access>: ...here.  Remove useless call
	to Check_No_Implicit_Aliasing.
	* sinfo.ads (Non_Aliased_Prefix): Delete.
	(Set_Non_Aliased_Prefix): Likewise.
	* sinfo.adb (Non_Aliased_Prefix): Delete.
	(Set_Non_Aliased_Prefix): Likewise.

2017-09-18  Bob Duff  <duff@adacore.com>

	* exp_ch5.adb (Build_Formal_Container_Iteration,
	Expand_Formal_Container_Element_Loop): Convert the container to the
	root type before passing it to the iteration operations, so it will be
	of the right type.

2017-09-18  Bob Duff  <duff@adacore.com>

	* einfo.ads, validsw.ads, treepr.ads, sem_util.ads: Comment fixes.

2017-09-18  Bob Duff  <duff@adacore.com>

	* exp_ch3.adb (Build_Array_Init_Proc): If validity checking is enabled,
	and it's a bit-packed array, pass False to the Consider_IS parameter of
	Needs_Simple_Initialization.

2017-09-18  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch6.adb (Check_Inline_Pragma): Link the newly generated spec to
	the preexisting body.
	* sem_prag.adb (Check_Inline_Always_Placement): New routine.
	(Process_Inline): Verify the placement of pragma Inline_Always. The
	pragma must now appear on the initial declaration of the related
	subprogram.

2017-09-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Declarations): In ASIS mode,  At the end of the
	declarative list in a subprogram body, analyze aspext specifications to
	provide basic semantic information, because otherwise the aspect
	specifications might only be snalyzed during expansion, when related
	subprograms are generated.

2017-09-18  Bob Duff  <duff@adacore.com>

	* exp_ch9.adb (Is_Simple_Barrier_Name): Follow Original_Node, in case
	validity checks have rewritten the tree.

2017-09-18  Bob Duff  <duff@adacore.com>

	* sem_util.adb: Comment fixes, and remove redundant Is_Itype check.

2017-09-18  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Save_References_In_Aggregate): When constructing a
	qualified exxpression for an aggregate in a generic unit, verify that
	the scope of the type is itself visible and not hidden, so that the
	qualified expression is correctly resolved in any instance.

gcc/testsuite/

2017-09-18  Bob Duff  <duff@adacore.com>

	* gnat.dg/validity_check.adb: New testcase.

2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat.dg/overload.ads, gnat.dg/overload.adb: New testcase.

2017-09-18  Bob Duff  <duff@adacore.com>

	* gnat.dg/tagged_prefix_call.adb: New testcase.

From-SVN: r252916
2017-09-18 09:52:11 +00:00