Commit Graph

156489 Commits

Author SHA1 Message Date
Richard Biener
c94f2d84e5 re PR tree-optimization/82276 (-O2: ICE: SSA corruption during RTL pass: expand; at tree-ssa-coalesce.c:1010)
2017-09-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82276
	PR tree-optimization/82244
	* tree-vrp.c (build_assert_expr_for): Set
	SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
	has it set.
	(remove_range_assertions): Revert earlier change.

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

From-SVN: r253062
2017-09-21 12:12:33 +00:00
Wilco Dijkstra
817221cc87 PR71951: Fix unwinding with -fomit-frame-pointer
As described in PR71951, if libgcc is built with -fomit-frame-pointer,
unwinding crashes, for example while doing a backtrace.  The underlying
reason is the Dwarf unwinder does not setup the frame pointer register
in the initialization code.  When later unwinding a function that uses
the frame pointer, it tries to read FP using _Unwind_GetGR, and this
crashes if has never restored FP.  To unwind correctly the first frame
must save and restore FP (it is unwound in a special way so that it
uses SP instead of FP).  This is done by adding -fno-omit-frame-pointer.

    gcc/
	PR target/71951
	* config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.

From-SVN: r253061
2017-09-21 12:08:12 +00:00
Richard Biener
73d1c65029 graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Restore valid IL after code generation errors.
2017-09-21  Richard Biener  <rguenther@suse.de>

	* graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
	Restore valid IL after code generation errors.
	* graphite.c (graphite_transform_loops): Diagnose code
	generation issues as MSG_MISSED_OPTIMIZATION and continue
	with processing SCOPs.

From-SVN: r253060
2017-09-21 12:02:58 +00:00
Richard Sandiford
a708f4b670 Make more use of simplify_gen_binary
This patch replaces various places that previously used:

  if (GET_CODE (y) == CONST_INT)
    ... plus_constant (..., x, [-]INTVAL (y)) ...
  else
    ... gen_rtx_PLUS/MINUS (..., x, y) ...

with single calls to simplify_gen_binary.  This allows
them to handle polynomial integers as well as constants.

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

gcc/
	* calls.c (compute_argument_addresses): Use simplify_gen_binary
	rather than choosing between plus_constant and gen_rtx_<CODE>.
	* expr.c (emit_push_insn): Likewise.
	(expand_expr_real_2): Likewise.

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

From-SVN: r253059
2017-09-21 11:14:01 +00:00
Richard Sandiford
6b1237e308 Add copy_rtx call to RTL loop unroller
This is needed if the step is an unshared constant, like many
(const ...)s are.  Without this patch, libgfortran would fail
to build for SVE.

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

gcc/
	* loop-unroll.c (split_iv): Call copy_rtx on the step.

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

From-SVN: r253058
2017-09-21 11:10:48 +00:00
Richard Sandiford
2e89be4857 Fix unguarded uses of tree_to_uhwi
This patch uses tree_fits_uhwi_p to protect a previously unguarded
use of tree_to_uhwi.  Previously we would ICE for variable-sized types.

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

gcc/
	* tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
	calling tree_to_uhwi.

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

From-SVN: r253057
2017-09-21 11:06:48 +00:00
Richard Sandiford
4a77e88747 Tighten tree-ssa-ccp.c:get_value_for_expr condition
bit_value_unop and bit_value_binop require constant values
to be INTEGER_CSTs:

  gcc_assert ((rval.lattice_val == CONSTANT
               && TREE_CODE (rval.value) == INTEGER_CST)
              || wi::sext (rval.mask, TYPE_PRECISION (TREE_TYPE (rhs))) == -1);

However, when deciding whether to record a constant value,
the for_bits_p handling in get_value_for_expr used a negative
test for ADDR_EXPR:

  else if (is_gimple_min_invariant (expr)
           && (!for_bits_p || TREE_CODE (expr) != ADDR_EXPR))

This patch uses a positive test for INTEGER_CST instead.

Existing tests showed the need for this once polynomial constants
are added.

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

gcc/
	* tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
	INTEGER_CST rather than a negative test for ADDR_EXPR.

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

From-SVN: r253056
2017-09-21 11:00:43 +00:00
Eric Botcazou
dd72b5f952 Tweak
From-SVN: r253055
2017-09-21 11:00:21 +00:00
Richard Sandiford
53cb6378df Add missing int_cst_rangeN checks to tree-vrp.c
The BIT_AND_EXPR handling in extract_range_from_binary_expr_1
was using value_range_constant_singleton without first checking
whether the range was a constant.  The earlier handling was correctly
guarded:

	  /* If either input range contains only non-negative values
	     we can truncate the result range maximum to the respective
	     maximum of the input range.  */
	  if (int_cst_range0 && tree_int_cst_sgn (vr0.min) >= 0)
	    wmax = wi::min (wmax, vr0.max, TYPE_SIGN (expr_type));
	  if (int_cst_range1 && tree_int_cst_sgn (vr1.min) >= 0)
	    wmax = wi::min (wmax, vr1.max, TYPE_SIGN (expr_type));

so this patch uses the same guards again.

Existing tests showed the need for this once polynomial constants
are added.

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

gcc/
	* tree-vrp.c (extract_range_from_binary_expr_1): Check
	int_cst_rangeN before calling value_range_constant_singleton (&vrN).

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

From-SVN: r253054
2017-09-21 10:53:40 +00:00
Richard Biener
2e1dd13741 re PR tree-optimization/71351 (ICE: Segmentation fault (graphite))
2017-09-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71351
	* graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
	graphite_create_new_loop_guard): Remove, fold remaining parts
	into caller ...
	(translate_isl_ast_node_for): ... here and simplify.

	* gfortran.dg/graphite/pr71351.f90: New testcase.
	* gfortran.dg/graphite/interchange-3.f90: Adjust.

From-SVN: r253052
2017-09-21 10:08:21 +00:00
Jonathan Wakely
f3f08c3f03 Fix tests for std::clamp
* testsuite/25_algorithms/clamp/1.cc: Fix order of arguments and
	expected results when using predicate defining reverse order.
	* testsuite/25_algorithms/clamp/constexpr.cc: Likewise.

From-SVN: r253051
2017-09-21 10:59:55 +01:00
Jakub Jelinek
a4f65ca8cb re PR target/82260 ([x86] Unnecessary use of 8-bit registers with -Os. slightly slower and larger code)
PR target/82260
	* config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
	with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
	latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
	alternative always use QI mode, for -Os imov (=R,R) alternative
	always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
	ignore -Os.

	* gcc.target/i386/pr82260-1.c: New test.
	* gcc.target/i386/pr82260-2.c: New test.

From-SVN: r253050
2017-09-21 09:27:54 +02:00
Andreas Krebbel
d3347cd287 s390.c (MIN_UNROLL_PROBES): Define.
* config/s390/s390.c (MIN_UNROLL_PROBES): Define.
	(allocate_stack_space): New function, partially extracted from
	s390_emit_prologue.
	(s390_emit_prologue): Track offset to most recent stack probe.
	Code to allocate space moved into allocate_stack_space.
	Dump actions when no stack is allocated.
	(s390_prologue_plus_offset): New function.
	(s390_emit_stack_probe): Likewise.

	* gcc.dg/stack-check-5.c:  Add argument for s390.
	* lib/target-supports.exp:
	(check_effective_target_supports_stack_clash_protection): Enable for
	s390/s390x targets.

Co-Authored-By: Jeff Law <law@redhat.com>

From-SVN: r253049
2017-09-20 22:30:16 -06:00
Nathan Sidwell
12f713131e [C++ PATCH] class member ordering
https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01426.html
	* name-lookup.c (member_name_cmp): Use DECL_UID for final
	ordering.

From-SVN: r253048
2017-09-21 02:51:40 +00:00
Alexandre Oliva
9ed32e2786 enable handling of -gno- command-line options as negated prefixes
This patch that adds -g to the set of negatable prefixes along with -f,
-m and -W.  Besides the mapping from -gno- to negated -g in option_map
and adding g to the [fmW] matches for negatable options, I had to
introduce gno- as an remapping prefix, for the option searching
machinery to backtrack to and recognize as a remapping prefix, instead
of backtracking to -g and stopping at it as if no-* was its Joined
argument.  Adding such remapping prefixes to preempt further
backtracking can be accomplished by introducing the prefix as an
Undocumented option with a Joined argument and without Driver, Target,
Common, or any language-specific option.  Whenever we match such a fake
options prefix, we abandon further backtracking (it matches, after all),
but find_opt returns the same code it would if it hadn't found any
match, so that we resort to option mapping.

I've arranged for such remapping prefixes to not be considered when
looking for and suggesting a correct spelling for misspelled options.
While testing that, I found a few -W-started options that were not
marked as RejectNegative but should (-Wno-a, is not something we'd like
to suggest ;-)  I've also marked as such -g-started options that
it makes no sense to negate, and removed the explicit -gno- ones,
allowing their opposites to be negated.

for  gcc/ChangeLog

	* common.opt (Wa, Wl, Wp, g, gz=): Add
	RejectNegative.
	(gno-column-info): Remove.
	(gcolumn-info): Drop RejectNegative.
	(gno-): New prefix.
	(gno-record-gcc-switches): Remove.
	(grecord-gcc-switches): Drop RejectNegative.
	(gno-split-dwarf): Remove.
	(gsplit-dwarf): Drop RejectNegative.
	(gno-strict-dwarf): Remove.
	(gstrict-dwarf): Drop RejectNegative.
	* config/darwin.opt (gfull, gused): Add RejectNegative.
	* dwarf2out.c (gen_producer_string): Drop
	gno-record-gcc-switches handler.
	* optc-gen.awk: Add g to prefixes with negative forms.
	* opts-common.c (remapping_prefix_p): New.
	(find_opt): Check it.
	(generate_canonical_option): Test g prefix.
	(option_map): Add -gno- mapping.
	(add_misspelling_candidates): Check remapping_prefix_p.

for  gcc/ada/ChangeLog

	* gcc-interface/lang.opt (gant, gnatO, gnat): Add
        RejectNegative.

for  gcc/c-family/ChangeLog

	* c.opt (gen-decls): Add RejectNegative.

From-SVN: r253047
2017-09-21 02:18:02 +00:00
GCC Administrator
d8a61466b9 Daily bump.
From-SVN: r253046
2017-09-21 00:16:21 +00:00
Ian Lance Taylor
7399e345be libgo: fix build when using -enable-static=no
With -enable-static=no we don't build non-pic objects, but libgotool.a
    is built from non-pic objects.  Build the packages that go into
    libgotool.a in static mode in all cases.
    
    Also ensure that internal test packages are built, since nothing
    explicitly depended on them.
    
    Reviewed-on: https://go-review.googlesource.com/65050

From-SVN: r253042
2017-09-20 23:31:00 +00:00
Martin Sebor
073809a718 Fix C++ testsuite fallout from r252976.
gcc/testsuite/ChangeLog:

	PR c/81854
	* g++.dg/ext/attr-ifunc-2.C: Correct type errors.
	* g++.dg/ext/attr-ifunc-4.C: Ditto.
	* lib/target-supports.exp: Adjust for C++.

From-SVN: r253041
2017-09-20 16:46:49 -06:00
Martin Sebor
5f2fd59031 Fix testsuite fallout from r252976.
gcc/testsuite/ChangeLog:

	PR c/81854
	* gcc.dg/attr-ifunc-1.c: Correct type errors.
	* gcc.dg/attr-ifunc-2.c: Ditto.
	* gcc.dg/attr-ifunc-3.c: Ditto.
	* gcc.dg/attr-ifunc-4.c: Ditto.
	* gcc.dg/attr-ifunc-5.c: Ditto.
	* gcc.dg/pr81854.c: Require ifunc support.
	* gcc/testsuite/lib/target-supports.exp: Correct type error.

From-SVN: r253037
2017-09-20 16:19:53 -06:00
Jeff Law
329c9aee73 powerpcspe.c (rs6000_expand_prologue): Fix thinko in stack clash protection support.
* config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
	thinko in stack clash protection support.

From-SVN: r253036
2017-09-20 16:06:11 -06:00
Jonathan Wakely
9d2bac69bc PR libstdc++/79162 Fix std::string regression due to LWG 2946 (old ABI)
PR libstdc++/79162
	* include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
	(basic_string::_If_sv): Remove from the overload set when the
	argument is derived from basic_string.

From-SVN: r253035
2017-09-20 23:03:37 +01:00
Jeff Law
94c23e3960 explow.c (compute_stack_clash_protection_loop_data): Use CONST_INT_P instead of explicit test.
* explow.c (compute_stack_clash_protection_loop_data): Use
	CONST_INT_P instead of explicit test.  Verify object is a
	CONST_INT_P before looking at INTVAL.
	(anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
	instead of explicit test.

	* gcc.target/i386/stack-check-11.c: Update test and regexp
	so that it works for both i?86 and x86_64.

From-SVN: r253034
2017-09-20 15:59:50 -06:00
Segher Boessenkool
6073d0028d rs6000: Don't touch below the stack pointer (PR77687)
With the 32-bit SVR4 ABI we don't have a red zone, so we have to restore
the callee-saved registers before we restore the stack pointer.

The previous fix for this PR failed in two ways, for huge frames: first,
we use a negative offset from r11 in that case, so the (mem:BLK 11) access
does no good; second, sched does not handle accesses to mem:BLK correctly
in this case (does not make dependencies).

This patch fixes it by doing a store to (mem:BLK (scratch)) instead.
This means no unrelated (not to stack) loads/stores can be moved over the
stack restore either, but so be it.


	PR target/77687
	* config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
	address instead of to r1 and r11.

gcc/testsuite/
	PR target/77687
	* gcc.target/powerpc/pr77687.c: New testcase.

From-SVN: r253033
2017-09-20 23:48:31 +02:00
Ian Lance Taylor
9283471ba0 re PR sanitizer/77631 (no symbols in backtrace shown by ASan when debug info is split)
PR sanitizer/77631
	Support for external debug info.
	* elf.c: Include <errno.h>, <sys/stat.h>, <unistd.h>.
	(S_ISLNK): Define if not defined.
	(xstrnlen): Define if strnlen is not available.
	(b_elf_note): Define type.
	(NT_GNU_BUILD_ID): Define macro.
	(elf_crc32, elf_crc32_file): New static functions.
	(elf_is_symlink, elf_readlink): New static functions.
	(elf_open_debugfile_by_buildid): New static function.
	(elf_try_debugfile): New static function.
	(elf_find_debugfile_by_debuglink): New static function.
	(elf_open_debugfile_by_debuglink): New static function.
	(elf_add): Add filename and debuginfo parameters.  Adjust all
	callers.  Look for external debug info notes, and try to fetch
	debug info from external file.
	(struct phdr_data): Add exe_filename field.
	(phdr_callback): Pass filename to elf_add.
	(backtrace_initialize): Add filename parameter.
	* internal.h (backtrace_initialize): Add filename parameter.
	* fileline.c (fileline_initialize): Pass filename to
	backtrace_initialize.
	* pecoff.c (fileline_initialize): Add unused filename parameter.
	* unknown.c (fileline_initialize): Likewise.
	* xcoff.c (fileline_initialize): Likewise.
	* configure.ac: Check for objcopy --add-gnu-debuglink.
	* Makefile.am (dtest): New test target.
	* configure, Makefile.in: Rebuild.

Co-Authored-By: Denis Khalikov <d.khalikov@partner.samsung.com>

From-SVN: r253032
2017-09-20 21:09:37 +00:00
Jakub Jelinek
2ffb574542 P0409R2 - allow lambda capture [=, this]
P0409R2 - allow lambda capture [=, this]
	* parser.c (cp_parser_lambda_introducer): For cxx2a don't pedwarn on
	redundant [=, this].

	* g++.dg/cpp1z/lambda-this1.C: Don't expect error for c++2a on [=, this]
	capture.  Add further tests.
	* g++.dg/cpp0x/lambda/lambda-capture-redundancy.C: Don't expect error
	for c++2a on [=, this] capture.

From-SVN: r253030
2017-09-20 21:36:47 +02:00
Jakub Jelinek
fb3cd39dcf cplusplus.C: Test that __cplusplus is equal to 201703L.
* g++.dg/cpp1z/cplusplus.C: Test that __cplusplus is equal to 201703L.
	* g++.dg/cpp1z/cplusplus_1z.C: New test.

From-SVN: r253029
2017-09-20 21:35:36 +02:00
Jonathan Wakely
4cf5930fdc PR libstdc++/79162 Fix std::string regression due to LWG 2946
PR libstdc++/79162
	* include/bits/basic_string.h (basic_string::_If_sv): Remove from the
	overload set when the argument is derived from basic_string.
	* testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New
	test.
	* testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
	New test.

From-SVN: r253024
2017-09-20 18:59:50 +01:00
Ian Lance Taylor
836cccc71d syscall: enable ParseDirent for AIX
Reviewed-on: https://go-review.googlesource.com/64990

From-SVN: r253022
2017-09-20 17:49:11 +00:00
Ian Lance Taylor
5e525857e9 syscall: workaround for getsockname bug in AIX
Reviewed-on: https://go-review.googlesource.com/64552

From-SVN: r253021
2017-09-20 17:40:11 +00:00
Jonathan Wakely
e18f68c715 Fix failing C++17 test
* testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do
	and dg-options directives. Fix invalid test.

From-SVN: r253019
2017-09-20 17:34:53 +01:00
Jonathan Wakely
95ed529d34 PR libstdc++/81469 deprecate std::uncaught_exception for C++17
PR libstdc++/81469
	* libsupc++/exception (uncaught_exception): Deprecate for C++17.
	* testsuite/18_support/exception_ptr/62258.cc: Add -Wno-deprecated.
	* testsuite/18_support/uncaught_exception/14026.cc: Likewise.

From-SVN: r253018
2017-09-20 17:34:49 +01:00
Jonathan Wakely
f78958c9b4 Deprecate nested types in std::hash
* include/bits/c++config (_GLIBCXX17_DEPRECATED): Define.
	* include/bits/functional_hash.h (__hash_base::result_type)
	(__hash_base::argument_type): Add _GLIBCXX17_DEPRECATED.
	* include/std/optional (hash<optional<T>>::result_type)
	(hash<optional<T>>::argument_type): Add deprecated attribute.
	(__is_fast_hash<hash<optional<T>>>): Add partial specialization.
	* include/std/variant (hash<variant<Types...>>::result_type)
	(hash<variant<Types...>>::argument_type): Add deprecated attribute.
	(__is_fast_hash<hash<variant<Types...>>>): Add partial specialization.

From-SVN: r253017
2017-09-20 17:34:42 +01:00
Ian Lance Taylor
7ba0b15a7e internal,net,os,runtime,syscall: fixes for AIX following update to go1.9
Reviewed-on: https://go-review.googlesource.com/64551

From-SVN: r253016
2017-09-20 14:59:39 +00:00
Sebastian Peryt
cace2309d4 config.gcc: Support "knm".
gcc/

        * config.gcc: Support "knm".
        * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
        * config/i386/i386-c.c (ix86_target_macros_internal): Handle
        PROCESSOR_KNM.
        * config/i386/i386.c (m_KNM): Define.
        (processor_target_table): Add "knm".
        (PTA_KNM): Define.
        (ix86_option_override_internal): Add "knm".
        (ix86_issue_rate): Add PROCESSOR_KNM.
        (ix86_adjust_cost): Ditto.
        (ia32_multipass_dfa_lookahead): Ditto.
        (get_builtin_code_for_version): Handle PROCESSOR_KNM.
        (fold_builtin_cpu): Add M_INTEL_KNM.
        * config/i386/i386.h (processor_costs): Define TARGET_KNM.
        (processor_type): Add PROCESSOR_KNM.
         * config/i386/x86-tune.def: Add m_KNM.
        * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.

libgcc/
        * config/i386/cpuinfo.h (processor_types): Add INTEL_KNM.
        * config/i386/cpuinfo.c (get_intel_cpu): Detect Knights Mill.

gcc/testsuite/

        * gcc.target/i386/builtin_target.c: Test knm.
        * gcc.target/i386/funcspec-56.inc: Test arch=knm.

From-SVN: r253013
2017-09-20 15:47:30 +02:00
Uros Bizjak
2288ea2381 Revert my 2017-09-19 patch.
From-SVN: r253012
2017-09-20 15:33:43 +02:00
Jonathan Wakely
20f661fbd2 Remove non-standard std::copy_exception function
* libsupc++/exception_ptr.h (copy_exception): Remove deprecated
	non-standard function.

From-SVN: r253011
2017-09-20 14:25:07 +01:00
Jonathan Wakely
f6b05c44aa PR libstdc++/82262 fix std::hash<std::optional<const T>>
PR libstdc++/82262
	* include/std/optional (__optional_hash_call_base): Add template
	parameter for remove_const_t<_Tp> and use it consistently.
	* testsuite/20_util/optional/hash.cc: Test optional<const T>.

From-SVN: r253010
2017-09-20 14:24:45 +01:00
Richard Biener
3c16e99cf7 re PR tree-optimization/80213 (ICE in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:704)
2017-09-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80213
	* graphite-scop-detection.c (trivially_empty_bb_p): Labels
	are allowed in empty BBs as well.
	(canonicalize_loop_closed_ssa): Also look for other complex
	edges.
	(scop_detection::get_sese): Include the loop-closed PHI block
	in loop SESEs.
	(scop_detection::merge_sese): Remove code adding extra blocks.
	(scop_detection::region_has_one_loop): Adjust for get_sese changes.
	(build_scops): Assert the final returned scop is invalid.

From-SVN: r253008
2017-09-20 12:08:16 +00:00
Richard Biener
52e22c79dc re PR tree-optimization/77362 ([graphite] ICE in sese_build_liveouts_use w/ -O2 -floop-nest-optimize)
2017-09-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/77362
	* gcc.dg/graphite/pr77362.c: New testcase.

From-SVN: r253006
2017-09-20 11:21:23 +00:00
Richard Biener
2a9000795c re PR tree-optimization/82264 (ICE in vn_phi_lookup at gcc/tree-ssa-sccvn.c:3125)
2017-09-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82264
	* tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
	for GIMPLE_CONDs.
	(vn_phi_lookup): Likewise.
	(vn_phi_insert): Likewise.

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

From-SVN: r253005
2017-09-20 11:08:35 +00:00
Jakub Jelinek
88272c0194 dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST that fits into uhwi or shwi...
* dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
	that fits into uhwi or shwi, add DW_AT_const_value regardless
	of early_dwarf without going through RTL, using add_AT_unsigned
	or add_AT_int.

	* g++.dg/debug/dwarf2/template-params-13.C: New test.
	* g++.dg/debug/dwarf2/template-params-5.C: Adjust regexps so that
	it doesn't match newlines.
	* g++.dg/debug/dwarf2/template-params-3.C: Likewise.
	* g++.dg/debug/dwarf2/template-func-params-3.C: Likewise.
	* g++.dg/debug/dwarf2/lang-cpp98.C: Likewise.
	* g++.dg/debug/dwarf2/template-func-params-2.C: Likewise.
	* g++.dg/debug/dwarf2/template-func-params-1.C: Likewise.
	* g++.dg/debug/dwarf2/template-func-params-5.C: Likewise.
	* g++.dg/debug/dwarf2/template-params-1.C: Likewise.
	* g++.dg/debug/dwarf2/template-params-2.C: Likewise.
	* g++.dg/debug/dwarf2/lang-cpp14.C: Likewise.
	* g++.dg/debug/dwarf2/lang-cpp11.C: Likewise.

From-SVN: r253004
2017-09-20 11:04:22 +02:00
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