Richard Biener [Thu, 21 Sep 2017 10:08:21 +0000 (10:08 +0000)]
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
Jonathan Wakely [Thu, 21 Sep 2017 09:59:55 +0000 (10:59 +0100)]
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
Jakub Jelinek [Thu, 21 Sep 2017 07:27:54 +0000 (09:27 +0200)]
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
Andreas Krebbel [Thu, 21 Sep 2017 04:30:16 +0000 (04:30 +0000)]
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
Nathan Sidwell [Thu, 21 Sep 2017 02:51:40 +0000 (02:51 +0000)]
[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
Alexandre Oliva [Thu, 21 Sep 2017 02:18:02 +0000 (02:18 +0000)]
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
GCC Administrator [Thu, 21 Sep 2017 00:16:21 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r253046
Ian Lance Taylor [Wed, 20 Sep 2017 23:31:00 +0000 (23:31 +0000)]
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
Martin Sebor [Wed, 20 Sep 2017 22:46:49 +0000 (22:46 +0000)]
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
Martin Sebor [Wed, 20 Sep 2017 22:19:53 +0000 (22:19 +0000)]
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
Jeff Law [Wed, 20 Sep 2017 22:06:11 +0000 (16:06 -0600)]
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
Jonathan Wakely [Wed, 20 Sep 2017 22:03:37 +0000 (23:03 +0100)]
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
Jeff Law [Wed, 20 Sep 2017 21:59:50 +0000 (15:59 -0600)]
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
Segher Boessenkool [Wed, 20 Sep 2017 21:48:31 +0000 (23:48 +0200)]
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
Ian Lance Taylor [Wed, 20 Sep 2017 21:09:37 +0000 (21:09 +0000)]
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
Jakub Jelinek [Wed, 20 Sep 2017 19:36:47 +0000 (21:36 +0200)]
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
Jakub Jelinek [Wed, 20 Sep 2017 19:35:36 +0000 (21:35 +0200)]
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
Jonathan Wakely [Wed, 20 Sep 2017 17:59:50 +0000 (18:59 +0100)]
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
Ian Lance Taylor [Wed, 20 Sep 2017 17:49:11 +0000 (17:49 +0000)]
syscall: enable ParseDirent for AIX
Reviewed-on: https://go-review.googlesource.com/64990
From-SVN: r253022
Ian Lance Taylor [Wed, 20 Sep 2017 17:40:11 +0000 (17:40 +0000)]
syscall: workaround for getsockname bug in AIX
Reviewed-on: https://go-review.googlesource.com/64552
From-SVN: r253021
Jonathan Wakely [Wed, 20 Sep 2017 16:34:53 +0000 (17:34 +0100)]
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
Jonathan Wakely [Wed, 20 Sep 2017 16:34:49 +0000 (17:34 +0100)]
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
Jonathan Wakely [Wed, 20 Sep 2017 16:34:42 +0000 (17:34 +0100)]
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
Ian Lance Taylor [Wed, 20 Sep 2017 14:59:39 +0000 (14:59 +0000)]
internal,net,os,runtime,syscall: fixes for AIX following update to go1.9
Reviewed-on: https://go-review.googlesource.com/64551
From-SVN: r253016
Sebastian Peryt [Wed, 20 Sep 2017 13:47:30 +0000 (15:47 +0200)]
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
Uros Bizjak [Wed, 20 Sep 2017 13:33:43 +0000 (15:33 +0200)]
Revert my 2017-09-19 patch.
From-SVN: r253012
Jonathan Wakely [Wed, 20 Sep 2017 13:25:07 +0000 (14:25 +0100)]
Remove non-standard std::copy_exception function
* libsupc++/exception_ptr.h (copy_exception): Remove deprecated
non-standard function.
From-SVN: r253011
Jonathan Wakely [Wed, 20 Sep 2017 13:24:45 +0000 (14:24 +0100)]
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
Richard Biener [Wed, 20 Sep 2017 12:08:16 +0000 (12:08 +0000)]
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
Richard Biener [Wed, 20 Sep 2017 11:21:23 +0000 (11:21 +0000)]
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
Richard Biener [Wed, 20 Sep 2017 11:08:35 +0000 (11:08 +0000)]
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
Jakub Jelinek [Wed, 20 Sep 2017 09:04:22 +0000 (11:04 +0200)]
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
Jakub Jelinek [Wed, 20 Sep 2017 09:02:52 +0000 (11:02 +0200)]
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
Paolo Carlini [Wed, 20 Sep 2017 07:53:27 +0000 (07:53 +0000)]
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
Richard Biener [Wed, 20 Sep 2017 07:34:55 +0000 (07:34 +0000)]
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
Richard Biener [Wed, 20 Sep 2017 07:33:58 +0000 (07:33 +0000)]
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
Jeff Law [Wed, 20 Sep 2017 05:43:28 +0000 (23:43 -0600)]
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
Jeff Law [Wed, 20 Sep 2017 05:35:07 +0000 (23:35 -0600)]
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
Jeff Law [Wed, 20 Sep 2017 05:23:51 +0000 (23:23 -0600)]
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
Jeff Law [Wed, 20 Sep 2017 05:21:09 +0000 (23:21 -0600)]
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
Jeff Law [Wed, 20 Sep 2017 05:05:12 +0000 (23:05 -0600)]
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
Jeff Law [Wed, 20 Sep 2017 04:56:54 +0000 (22:56 -0600)]
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
Ian Lance Taylor [Wed, 20 Sep 2017 00:33:29 +0000 (00:33 +0000)]
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
GCC Administrator [Wed, 20 Sep 2017 00:16:22 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r252990
Uros Bizjak [Tue, 19 Sep 2017 21:14:11 +0000 (23:14 +0200)]
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
Jakub Jelinek [Tue, 19 Sep 2017 21:03:11 +0000 (23:03 +0200)]
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
Uros Bizjak [Tue, 19 Sep 2017 18:38:10 +0000 (20:38 +0200)]
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
Jonathan Wakely [Tue, 19 Sep 2017 17:06:12 +0000 (18:06 +0100)]
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
Segher Boessenkool [Tue, 19 Sep 2017 15:50:46 +0000 (17:50 +0200)]
Fix typo in simplify_binary_operation_1
* simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
From-SVN: r252979
Jonathan Wakely [Tue, 19 Sep 2017 14:33:51 +0000 (15:33 +0100)]
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
Martin Sebor [Tue, 19 Sep 2017 14:27:32 +0000 (14:27 +0000)]
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
Will Schmidt [Tue, 19 Sep 2017 13:42:48 +0000 (13:42 +0000)]
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
Will Schmidt [Tue, 19 Sep 2017 13:32:54 +0000 (13:32 +0000)]
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
Richard Biener [Tue, 19 Sep 2017 11:57:39 +0000 (11:57 +0000)]
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
Alexander Monakov [Tue, 19 Sep 2017 10:16:20 +0000 (13:16 +0300)]
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
Pierre-Marie de Rodat [Tue, 19 Sep 2017 09:07:19 +0000 (09:07 +0000)]
validity_check.adb: Minor dg-options simplification.
gcc/testsuite/
* gnat.dg/validity_check.adb: Minor dg-options simplification.
From-SVN: r252971
Richard Biener [Tue, 19 Sep 2017 08:25:17 +0000 (08:25 +0000)]
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
Rainer Orth [Tue, 19 Sep 2017 07:51:49 +0000 (07:51 +0000)]
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
Richard Biener [Tue, 19 Sep 2017 07:14:12 +0000 (07:14 +0000)]
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
GCC Administrator [Tue, 19 Sep 2017 00:16:20 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r252961
Paolo Carlini [Mon, 18 Sep 2017 23:57:26 +0000 (23:57 +0000)]
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
Ian Lance Taylor [Mon, 18 Sep 2017 22:29:45 +0000 (22:29 +0000)]
runtime: always initialize str field in __go_string_slice result
Reviewed-on: https://go-review.googlesource.com/64110
From-SVN: r252953
Jonathan Wakely [Mon, 18 Sep 2017 20:00:32 +0000 (21:00 +0100)]
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
Andreas Schwab [Mon, 18 Sep 2017 19:06:00 +0000 (19:06 +0000)]
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
Uros Bizjak [Mon, 18 Sep 2017 18:57:21 +0000 (20:57 +0200)]
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
Jakub Jelinek [Mon, 18 Sep 2017 18:49:41 +0000 (20:49 +0200)]
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
Jason Merrill [Mon, 18 Sep 2017 17:41:07 +0000 (13:41 -0400)]
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
Richard Sandiford [Mon, 18 Sep 2017 15:50:03 +0000 (15:50 +0000)]
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
Richard Sandiford [Mon, 18 Sep 2017 15:42:08 +0000 (15:42 +0000)]
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
Richard Sandiford [Mon, 18 Sep 2017 15:39:21 +0000 (15:39 +0000)]
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
Richard Sandiford [Mon, 18 Sep 2017 15:32:01 +0000 (15:32 +0000)]
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
Richard Sandiford [Mon, 18 Sep 2017 15:28:55 +0000 (15:28 +0000)]
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
Richard Sandiford [Mon, 18 Sep 2017 15:26:03 +0000 (15:26 +0000)]
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
Richard Sandiford [Mon, 18 Sep 2017 15:03:29 +0000 (15:03 +0000)]
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
Cesar Philippidis [Mon, 18 Sep 2017 14:15:37 +0000 (07:15 -0700)]
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
Claudiu Zissulescu [Mon, 18 Sep 2017 13:56:01 +0000 (15:56 +0200)]
[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
Paolo Carlini [Mon, 18 Sep 2017 12:08:14 +0000 (12:08 +0000)]
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
Jonathan Wakely [Mon, 18 Sep 2017 12:02:19 +0000 (13:02 +0100)]
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
Jonathan Wakely [Mon, 18 Sep 2017 11:40:10 +0000 (12:40 +0100)]
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
Markus Trippelsdorf [Mon, 18 Sep 2017 11:25:13 +0000 (11:25 +0000)]
Update checksums for isl-0.18.tar.bz2
From-SVN: r252921
Richard Biener [Mon, 18 Sep 2017 10:10:31 +0000 (10:10 +0000)]
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
Pierre-Marie de Rodat [Mon, 18 Sep 2017 09:52:11 +0000 (09:52 +0000)]
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
Jakub Jelinek [Mon, 18 Sep 2017 09:31:14 +0000 (11:31 +0200)]
re PR middle-end/82145 (i386/pr38988.c, i386/pr46254.c, i386/pr55154.c, i386/pr81766.c fails)
PR target/82145
* config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
changes. Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
(ix86_init_pic_reg): Revert 2017-09-01 changes.
From-SVN: r252915
Eric Botcazou [Mon, 18 Sep 2017 09:15:32 +0000 (09:15 +0000)]
re PR target/81361 (broken exception handling at -O2)
PR target/81361
* dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
switching to a new text section.
From-SVN: r252914
Pierre-Marie de Rodat [Mon, 18 Sep 2017 09:11:02 +0000 (09:11 +0000)]
[multiple changes]
2017-09-18 Bob Duff <duff@adacore.com>
* sem_ch4.adb (Analyze_Qualified_Expression): Give an error if the type
mark refers to the current instance. Set the type to Any_Type in that
case, to avoid later crashes.
2017-09-18 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Replace_Discriminant_References): New procedure,
subsidiary of Build_Assignment, used to handle the initialization code
for a mutable record component whose default value is an aggregate that
sets the values of the discriminants of the components.
2017-09-18 Ed Schonberg <schonberg@adacore.com>
* gnat.dg/default_variants.adb: New testcase.
2017-09-18 Eric Botcazou <ebotcazou@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Address>: Mark
the entity as being volatile for an overlay that toggles the scalar
storage order.
2017-09-18 Fedor Rybin <frybin@adacore.com>
* doc/gnat_ugn/gnat_utility_programs.rst: Document that gnattest
options -U main and --harness-only are not compatible.
From-SVN: r252913
Pierre-Marie de Rodat [Mon, 18 Sep 2017 08:45:33 +0000 (08:45 +0000)]
[multiple changes]
2017-09-18 Hristian Kirtchev <kirtchev@adacore.com>
* freeze.adb, sem_ch6.adb, sem_res.adb: Minor reformatting.
2017-09-18 Piotr Trojanek <trojanek@adacore.com>
* einfo.ads (Is_Imported): Update comment, as this
routine also applies to constants.
2017-09-18 Yannick Moy <moy@adacore.com>
* sem_util.adb (Find_Placement_In_State_Space): Allow generic package
holding state.
2017-09-18 Justin Squirek <squirek@adacore.com>
* sem_prag.adb (Is_Non_Significant_Pragma_Reference): Change the
constant indication for Pragma_Linker_Section.
From-SVN: r252910
Bob Duff [Mon, 18 Sep 2017 08:43:37 +0000 (08:43 +0000)]
Alternate fix for PR ada/71358
2017-09-18 Bob Duff <duff@adacore.com>
Alternate fix for PR ada/71358
* libgnat/g-comlin.adb (Getopt): Remove manual null access checks.
Instead, make a local copy of Config, and if it's null, allocate an
empty Command_Line_Configuration_Record, so we won't crash on null
pointer dereference.
From-SVN: r252909
Rainer Orth [Mon, 18 Sep 2017 08:25:11 +0000 (08:25 +0000)]
Fix gcc.target/i386/pr81736-[34].c on 32-bit Solaris/x86 (PR target/81736)
PR target/81736
* gcc.target/i386/pr81736-3.c: Add -mno-omit-leaf-frame-pointer.
* gcc.target/i386/pr81736-4.c: Likewise.
From-SVN: r252908
Richard Biener [Mon, 18 Sep 2017 07:42:32 +0000 (07:42 +0000)]
download_prerequisites (isl): Bump version to 0.18.
2017-09-18 Richard Biener <rguenther@suse.de>
* download_prerequisites (isl): Bump version to 0.18.
From-SVN: r252907
Richard Biener [Mon, 18 Sep 2017 07:38:12 +0000 (07:38 +0000)]
graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref): Simplify.
2017-09-18 Richard Biener <rguenther@suse.de>
* graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
Simplify.
(build_alias_set): Reject aliases with no access function.
From-SVN: r252906
Richard Biener [Mon, 18 Sep 2017 07:34:04 +0000 (07:34 +0000)]
re PR tree-optimization/79622 (Wrong code w/ -O2 -floop-nest-optimize)
2017-09-18 Richard Biener <rguenther@suse.de>
PR tree-optimization/79622
* graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
handle PHIs.
(build_cross_bb_scalars_use): Likewise.
* gcc.dg/graphite/pr79622.c: New testcase.
From-SVN: r252905
Pierre-Marie de Rodat [Mon, 18 Sep 2017 06:42:23 +0000 (06:42 +0000)]
Fix a typo in a comment (cgraph.c:cgraph_thunk_info)
gcc/
* cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
From-SVN: r252904
Pierre-Marie de Rodat [Mon, 18 Sep 2017 06:34:45 +0000 (06:34 +0000)]
MAINTAINERS: Add myself as a maintainer for the Ada front end.
2017-09-18 Pierre-Marie de Rodat <derodat@adacore.com>
* MAINTAINERS: Add myself as a maintainer for the Ada front end.
From-SVN: r252903
Pierre-Marie de Rodat [Mon, 18 Sep 2017 06:31:52 +0000 (06:31 +0000)]
Add myself as a maintainer for the Ada front end
From-SVN: r252902
Alan Modra [Mon, 18 Sep 2017 02:25:10 +0000 (11:55 +0930)]
[RS6000] PR81996, __builtin_return_address(0) fails
rs6000_return_addr assumes that the stack link is at frame+0, which is
true for count>0. For count==0, rs6000_return_addr is called with
frame==frame_pointer_rtx and the stack link is *not* at frame+0 if
-fstack-protector-all or -fsanitize=address because rs6000.h sets
FRAME_GROWS_DOWNWARD for those options.
PR target/81996
* gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
stack_pointer_rtx for count 0. Update comments. Break up
large rtl expression.
From-SVN: r252901
GCC Administrator [Mon, 18 Sep 2017 00:16:18 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r252900
Daniel Santos [Sun, 17 Sep 2017 22:04:40 +0000 (22:04 +0000)]
PR target/82196 correct choice of avx/sse stubs for -mcall-ms2sysv-xlogues
gcc:
config/i386/i386.c: (xlogue_layout::STUB_NAME_MAX_LEN): Increase to 20
bytes.
(xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
(xlogue_layout::get_stub_name): Modify to select the appropairate sse
or avx version of the stub.
gcc/testsuite:
gcc.target/i386/pr82196-1.c: New test.
gcc.target/i386/pr82196-2.c: Likewise.
libgcc:
config/i386/i386-asm.h (PASTE2): New macro.
(ASMNAME): Modify to use PASTE2.
(MS2SYSV_STUB_PREFIX): New macro for isa prefix.
(MS2SYSV_STUB_BEGIN, MS2SYSV_STUB_END): New macros for stub headers.
config/i386/resms64.S: Rename to a header file, use MS2SYSV_STUB_BEGIN
instead of HIDDEN_FUNC and MS2SYSV_STUB_END instead of FUNC_END.
config/i386/resms64f.S: Likewise.
config/i386/resms64fx.S: Likewise.
config/i386/resms64x.S: Likewise.
config/i386/savms64.S: Likewise.
config/i386/savms64f.S: Likewise.
config/i386/avx_resms64.S: New file that only defines a macro and
includes it's corresponding header file.
config/i386/avx_resms64f.S: Likewise.
config/i386/avx_resms64fx.S: Likewise.
config/i386/avx_resms64x.S: Likewise.
config/i386/avx_savms64.S: Likewise.
config/i386/avx_savms64f.S: Likewise.
config/i386/sse_resms64.S: Likewise.
config/i386/sse_resms64f.S: Likewise.
config/i386/sse_resms64fx.S: Likewise.
config/i386/sse_resms64x.S: Likewise.
config/i386/sse_savms64.S: Likewise.
config/i386/sse_savms64f.S: Likewise.
config/i386/t-msabi: Modified to add avx and sse versions of stubs.
From-SVN: r252896
H.J. Lu [Sun, 17 Sep 2017 21:11:04 +0000 (21:11 +0000)]
i386: Update preferred stack boundary for leaf functions
preferred_stack_boundary may not be the minimum stack alignment. For
leaf functions without TLS access, max_used_stack_slot_alignment may be
smaller. We should update preferred_stack_boundary for leaf functions.
gcc/
PR target/82166
* config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
compute the minimum stack alignment. Also update preferred stack
boundary for leaf functions.
gcc/testsuite/
PR target/82166
* gcc.target/i386/pr82166.c: New test.
From-SVN: r252895
Paul Thomas [Sun, 17 Sep 2017 18:24:37 +0000 (18:24 +0000)]
re PR fortran/82173 ([meta-bug] Parameterized derived type errors)
2017-09-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/82173
* decl.c (gfc_get_pdt_instance): Use the component initializer
expression for the default, rather than the parameter value.
* resolve.c (resolve_pdt): New function.
(resolve_symbol): Call it. Remove false error, prohibiting
deferred type parameters for dummy arguments.
PR fortran/60483
* primary.c (gfc_match_varspec): If the type of an associate
name is unknown and yet there is a match, try resolving the
target expression and using its type.
2017-09-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/82173
* gfortran.dg/pdt_1.f03 : Eliminate spurious error checks.
* gfortran.dg/pdt_2.f03 : The same.
* gfortran.dg/pdt_3.f03 : The same.
* gfortran.dg/pdt_4.f03 : Add 'modtype' and two new errors in
module 'bad_vars'. Add error concerning assumed parameters and
save attribute.
* gfortran.dg/pdt_11.f03 : New test.
PR fortran/60483
* gfortran.dg/associate_9.f90 : Remove XFAIL and change to run.
* gfortran.dg/associate_25.f90 : New test.
* gfortran.dg/pdt_12.f03 : New test.
From-SVN: r252894
Thomas Schwinge [Sun, 17 Sep 2017 12:11:40 +0000 (14:11 +0200)]
Fix gccbrig documentation build
gcc/brig/
* Make-lang.in (GO_TEXI_FILES): Rename to...
(BRIG_TEXI_FILES): ... this.
(doc/gccbrig.info, doc/gccbrig.dvi, doc/gccbrig.pdf, brig.info)
(brig.srcinfo, brig.man, brig.srcman, brig.install-man)
($(DESTDIR)$(man1dir)/$(GCCBRIG_INSTALL_NAME)$(man1ext)):
Uncomment/enable targets.
(gccbrig.pod): New target.
* gccbrig.texi: New file.
From-SVN: r252893