Uros Bizjak [Tue, 6 Dec 2016 19:56:03 +0000 (20:56 +0100)]
predicates.md (general_gr_operand): New predicate.
* config/i386/predicates.md (general_gr_operand): New predicate.
* config/i386/i386.md (TImode and DImode push_operand splitter):
Use general_gr_operand. Macroize using DWI mode macro.
(TImode and DImode nonimmediate_operand splitter): Use
nonimmediate_gr_operand and general_gr_operand. Macroize using
DWI mode macro.
(TF/XF/DFmode push_operand splitter): Use general_gr_operand.
(TFmode nonimmediate_operand splitter): Use nonimmediate_gr_operand
and general_gr_operand.
(XFmode nonimmediate_operand splitter): Ditto.
(DFmode nonimmediate_operand splitter): Ditto.
* config/i386/mmx.md (MMXMODE nonimmediate_operand splitter): Ditto.
From-SVN: r243315
Felipe Magno de Almeida [Tue, 6 Dec 2016 17:58:10 +0000 (17:58 +0000)]
Add #ifdef case for 16 bits in cow-stdexcept.cc
Added #ifdef case for when void* is 16 bits so it compiles in AVR
target.
2016-12-06 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
* src/c++11/cow-stdexcept.cc: Add special case for 16 bit pointers.
From-SVN: r243310
Felipe Magno de Almeida [Tue, 6 Dec 2016 17:58:05 +0000 (17:58 +0000)]
Enable libstdc++ compilation on AVR targets
Enable libstdc++ compilation in AVR targets with AVR-Libc. Most
floating point math functions are already defined in AVR-Libc, so
defines are in place to avoid multiple definition of these functions.
2016-12-06 Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
* crossconfig.m4: Add avr target for cross-compilation.
* configure: Regenerate.
From-SVN: r243309
Jerry DeLisle [Tue, 6 Dec 2016 17:13:31 +0000 (17:13 +0000)]
re PR fortran/78659 ([F03] Spurious "requires DTIO" reported against namelist statement)
2016-12-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/78659
* resolve.c (resolve_fl_namelist): Remove unneeded error.
PR fortran/78659
* gfortran.dg/alloc_comp_constraint_1.f90: Update test.
* gfortran.dg/alloc_comp_constraint_7.f90: New test.
* gfortran.dg/namelist_34.f90: Update test.
* gfortran.dg/namelist_63.f90: Update test.
From-SVN: r243308
Kyrylo Tkachov [Tue, 6 Dec 2016 16:56:56 +0000 (16:56 +0000)]
[ARM][committed] Sort ARMv8 processors by alphabetic order
* config/arm/arm-cores.def (cortex-m23, cortex-m33): Move into
alphabetical order with respect to other ARMv8 processors.
* config/arm/arm-tables.opt: Regenerate.
* config/arm/arm-tune.md: Likewise.
From-SVN: r243306
Jonathan Wakely [Tue, 6 Dec 2016 14:36:07 +0000 (14:36 +0000)]
Fix pretty-printer for std::variant
* python/libstdcxx/v6/printers.py (StdVariantPrinter): Update for new
data member name.
* testsuite/libstdc++-prettyprinters/cxx17.cc: Remove redundant test.
From-SVN: r243304
Jonathan Wakely [Tue, 6 Dec 2016 14:36:00 +0000 (14:36 +0000)]
Fix debug mode assertion for std::shared_ptr<void>
* include/bits/shared_ptr_base.h
(__shared_ptr_access<T, L, false, true>::operator->()): Fix assertion.
From-SVN: r243303
Robert Suchanek [Tue, 6 Dec 2016 13:45:34 +0000 (13:45 +0000)]
[MIPS][MSA] Fix builtins with literal integer arguments.
gcc/
* config/mips/mips.c (mips_expand_builtin_insn): Check input
ranges of literal integer arguments.
gcc/testsuite/
* gcc.target/mips/msa-builtins-err.c: New test.
From-SVN: r243301
Andre Vehreschild [Tue, 6 Dec 2016 13:41:46 +0000 (14:41 +0100)]
re PR fortran/78226 (Fill out location information everywhere)
gcc/fortran/ChangeLog:
2016-12-06 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/78226
* class.c (finalize_component): Add missing locus information.
(finalization_scalarizer): Likewise.
(finalization_get_offset): Likewise.
(finalizer_insert_packed_call): Likewise.
(generate_finalization_wrapper): Likewise.
From-SVN: r243300
Jonathan Wakely [Tue, 6 Dec 2016 12:48:54 +0000 (12:48 +0000)]
Fix libstdc++-v3/ChangeLog dates
From-SVN: r243299
Ville Voutilainen [Tue, 6 Dec 2016 12:47:54 +0000 (14:47 +0200)]
Constrain optional's __constexpr_addressof in its return type and use a constexpr addressof for optional, if available.
Constrain optional's __constexpr_addressof in its return type
and use a constexpr addressof for optional, if available.
* include/experimental/optional (__constexpr_addressof):
Constrain in the return type instead of in a template parameter.
(_Has_addressof_mem)
(_Has_addressof_free, _Has_addressof, __constexpr_addressof):
Guard with #ifndef __cpp_lib_addressof_constexpr.
(operator->()): Use std::__addressof if it's constexpr.
From-SVN: r243298
Tim Shen [Tue, 6 Dec 2016 11:28:09 +0000 (11:28 +0000)]
variant (visit): Make visit constexpr.
* include/std/variant (visit): Make visit constexpr. Also cleanup
__get_alternative and __storage, since we don't support reference/void
alternatives any more.
* testsuite/20_util/variant/compile.cc: Add tests.
From-SVN: r243295
Tim Shen [Tue, 6 Dec 2016 11:26:48 +0000 (11:26 +0000)]
enable_special_members.h: Make _Enable_default_constructor constexpr.
* include/bits/enable_special_members.h: Make
_Enable_default_constructor constexpr.
* include/std/variant (variant::emplace, variant::swap, std::swap,
std::hash): Sfinae on emplace and std::swap; handle __poison_hash bases
of duplicated types.
* testsuite/20_util/variant/compile.cc: Add tests.
* testsuite/20_util/variant/hash.cc: Add tests.
From-SVN: r243294
Tim Shen [Tue, 6 Dec 2016 11:20:13 +0000 (11:20 +0000)]
variant (std::get, operator==): Implement constexpr comparison and get<>.
* include/std/variant (std::get, operator==): Implement constexpr
comparison and get<>.
* testsuite/20_util/variant/compile.cc: Tests.
From-SVN: r243293
Tim Shen [Tue, 6 Dec 2016 11:17:56 +0000 (11:17 +0000)]
variant (__erased_use_alloc_ctor, [...]): Remove uses-allocator related functions.
* include/std/variant (__erased_use_alloc_ctor,
_Variant_base::_Variant_base, variant::variant): Remove uses-allocator
related functions.
* testsuite/20_util/variant/compile.cc: Remove related tests.
* testsuite/20_util/variant/run.cc: Remove related tests.
From-SVN: r243292
Aditya Kumar [Tue, 6 Dec 2016 10:43:49 +0000 (10:43 +0000)]
Add missing noexcept on std::_Sp_locker constructors
2016-12-06 Aditya Kumar <hiraditya@msn.com>
* src/c++11/shared_ptr.cc (_Sp_locker::_Sp_locker(const void* p)): Add
noexcept on constructor.
(_Sp_locker::_Sp_locker(const void* p1, const void* p2)): Same.
From-SVN: r243291
Jonathan Wakely [Tue, 6 Dec 2016 10:43:42 +0000 (10:43 +0000)]
Add noexcept to various basic_string string operations
* include/bits/basic_string.h (basic_string::find, basic_string::rfind)
(basic_string::find_first_of, basic_string::find_last_of)
(basic_string::find_first_not_of, basic_string::find_last_not_of):
Make all overloads noexcept.
(basic_string::compare(const _CharT*)): Make noexcept.
From-SVN: r243290
Aldy Hernandez [Tue, 6 Dec 2016 10:35:37 +0000 (10:35 +0000)]
re PR middle-end/78548 (ICE on valid C code on x86_64-linux-gnu at -O2 and -O3 in 64-bit mode with -Wall (*** Error in `/usr/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/cc1': double free or corruption (fasttop): 0x0000000003c15810 ***))
PR middle-end/78548
* tree-ssa-uninit.c (simplify_preds_4): Call release() instead of
destroy_predicate_vecs.
(uninit_uses_cannot_happen): Make uninit_preds a scalar.
From-SVN: r243289
Aldy Hernandez [Tue, 6 Dec 2016 10:33:41 +0000 (10:33 +0000)]
re PR middle-end/78566 (gcc.dg/uninit-pred-6_[abc]*.c regressions on some non-x86 platforms)
PR middle-end/78566
* tree-ssa-uninit.c (can_one_predicate_be_invalidated_p): Change
argument type to a pred_chain.
(can_chain_union_be_invalidated_p): Use pred_chain instead of a
worklist.
(flatten_out_predicate_chains): Remove.
(uninit_uses_cannot_happen): Rename from
uninit_ops_invalidate_phi_use.
Change logic so that we are checking that the PHI use will
invalidate _ALL_ possibly uninitialized operands.
(is_use_properly_guarded): Rename call to
uninit_ops_invalidate_phi_use into uninit_uses_cannot_happen.
From-SVN: r243288
Tamar Christina [Tue, 6 Dec 2016 09:56:52 +0000 (09:56 +0000)]
2016-12-06 Tamar Christina <tamar.christina@arm.com>
* gcc/config/aarch64/arm_neon.h
(vreinterpretq_p8_p128, vreinterpretq_p16_p128): Added.
(vreinterpret_p64_p16, vreinterpretq_p64_p128): Likewise.
(vreinterpretq_p64_p16, vreinterpretq_p128_p8): Likewise.
(vreinterpretq_p128_p16, vreinterpretq_p128_f16): Likewise.
(vreinterpretq_p128_f32, vreinterpretq_p128_p64): Likewise.
(vreinterpretq_p128_s64, vreinterpretq_p128_u64): Likewise.
(vreinterpretq_p128_s8, vreinterpretq_p128_s16): Likewise.
(vreinterpretq_p128_s32, vreinterpretq_p128_u8): Likewise.
(vreinterpretq_p128_u16, vreinterpretq_p128_u32): Likewise.
(vreinterpretq_f16_p128, vreinterpretq_f32_p128): Likewise.
(vreinterpretq_s64_p128, vreinterpretq_u64_p128): Likewise.
(vreinterpretq_s8_p128, vreinterpretq_s16_p128): Likewise.
(vreinterpretq_s32_p128, vreinterpretq_u8_p128): Likewise.
(vreinterpretq_u16_p128, vreinterpretq_u32_p128): Likewise.
From-SVN: r243287
Jakub Jelinek [Tue, 6 Dec 2016 09:24:36 +0000 (10:24 +0100)]
re PR c++/71537 (GCC rejects consetxpr boolean conversions and comparisons on the result of pointer arithmetic.)
PR c++/71537
* fold-const.c (fold_comparison): Assume CONSTANT_CLASS_P (base0)
plus offset is non-zero. For maybe_nonzero_address decl base0,
require indirect_base0.
* g++.dg/cpp0x/constexpr-71537.C: New test.
From-SVN: r243286
Jakub Jelinek [Tue, 6 Dec 2016 09:23:51 +0000 (10:23 +0100)]
re PR c++/71537 (GCC rejects consetxpr boolean conversions and comparisons on the result of pointer arithmetic.)
2016-12-06 Jakub Jelinek <jakub@redhat.com>
PR c++/71537
* fold-const-call.c (fold_const_call_1): Remove memchr handling here.
(fold_const_call) <case CFN_BUILT_IN_STRNCMP,
case CFN_BUILT_IN_STRNCASECMP>: Formatting improvements.
(fold_const_call) <case CFN_BUILT_IN_MEMCMP>: Likewise. If s2 is 0
and arguments have no side-effects, return 0.
(fold_const_call): Handle CFN_BUILT_IN_MEMCHR.
* g++.dg/cpp0x/constexpr-memchr.C: New test.
From-SVN: r243285
Jakub Jelinek [Tue, 6 Dec 2016 09:22:36 +0000 (10:22 +0100)]
re PR c++/71537 (GCC rejects consetxpr boolean conversions and comparisons on the result of pointer arithmetic.)
PR c++/71537
* fold-const-call.c (fold_const_call): Handle
CFN_BUILT_IN_{INDEX,STRCHR,RINDEX,STRRCHR}.
* g++.dg/cpp0x/constexpr-strchr.C: New test.
From-SVN: r243284
Jakub Jelinek [Tue, 6 Dec 2016 09:21:13 +0000 (10:21 +0100)]
re PR tree-optimization/78675 (ICE: verify_gimple failed (error: integral result type precision does not match field size of BIT_FIELD_REF))
2016-12-06 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/78675
* tree-vect-loop.c (vectorizable_live_operation): For
VECTOR_BOOLEAN_TYPE_P vectype use integral type with bitsize precision
instead of TREE_TYPE (vectype) for the BIT_FIELD_REF.
* gcc.c-torture/execute/pr78675.c: New test.
* gcc.target/i386/pr78675-1.c: New test.
* gcc.target/i386/pr78675-2.c: New test.
From-SVN: r243283
Eric Botcazou [Tue, 6 Dec 2016 07:03:04 +0000 (07:03 +0000)]
re PR middle-end/78642 (invalid rtl sharing found in the insn)
PR middle-end/78642
* emit-rtl.c (verify_rtx_sharing) <CLOBBER>: Relax condition.
(copy_rtx_if_shared_1) <CLOBBER>: Likewise.
(copy_insn_1) <CLOBBER>: Likewise.
From-SVN: r243282
DJ Delorie [Tue, 6 Dec 2016 06:40:07 +0000 (01:40 -0500)]
Oops, fix date
From-SVN: r243281
DJ Delorie [Tue, 6 Dec 2016 06:38:23 +0000 (01:38 -0500)]
* argv.c (expandargv): Check for directories passed as @-files.
From-SVN: r243280
Michael Meissner [Tue, 6 Dec 2016 00:58:40 +0000 (00:58 +0000)]
re PR target/78688 (PowerPC fails bootstrap)
2016-12-05 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/78688
* config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Use IN_RANGE
instead of ((N) >= (X) && (N) <= (Y-X)) to silence warnings about
comparing signed to unsigned values.
(FUNCTION_ARG_REGNO_P): Likewise.
From-SVN: r243278
GCC Administrator [Tue, 6 Dec 2016 00:16:18 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r243277
Joseph Myers [Mon, 5 Dec 2016 22:49:31 +0000 (22:49 +0000)]
* es.po, fr.po: Update.
From-SVN: r243273
Bill Schmidt [Mon, 5 Dec 2016 21:48:27 +0000 (21:48 +0000)]
re PR tree-optimization/78646 (incorrect result type for pointer addition in slsr)
2016-12-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Stefan Freudenberger <stefan@reservoir.com>
PR tree-optimization/78646
* gimple-ssa-strength-reduction.c (replace_ref): The pointer
addition used for the memory base expression should have the type
of the candidate.
Co-Authored-By: Stefan Freudenberger <stefan@reservoir.com>
From-SVN: r243272
Jeff Law [Mon, 5 Dec 2016 17:49:41 +0000 (10:49 -0700)]
re PR target/71721 (uclinux posix threads)
PR target/71721
* config.gcc (*-*-uclinux*): Enable posix threads.
Adding BZ marker
From-SVN: r243269
Waldemar Brodkorb [Mon, 5 Dec 2016 17:48:39 +0000 (17:48 +0000)]
* config.gcc (*-*-uclinux*): Enable posix threads.
From-SVN: r243268
Andrew Senkevich [Mon, 5 Dec 2016 17:18:42 +0000 (17:18 +0000)]
Add AVX512 k-mask intrinsics
gcc/
2016-12-05 Andrew Senkevich <andrew.senkevich@intel.com>
* config/i386/avx512bwintrin.h: Add new k-mask intrinsics.
* config/i386/avx512dqintrin.h: Ditto.
* config/i386/avx512fintrin.h: Ditto.
* config/i386/i386-builtin-types.def (UCHAR_FTYPE_UQI_UQI_PUCHAR,
UCHAR_FTYPE_UHI_UHI_PUCHAR, UCHAR_FTYPE_USI_USI_PUCHAR,
UCHAR_FTYPE_UDI_UDI_PUCHAR, UCHAR_FTYPE_UQI_UQI, UCHAR_FTYPE_UHI_UHI,
UCHAR_FTYPE_USI_USI, UCHAR_FTYPE_UDI_UDI, UQI_FTYPE_UQI_INT,
UHI_FTYPE_UHI_INT, USI_FTYPE_USI_INT, UDI_FTYPE_UDI_INT,
UQI_FTYPE_UQI, USI_FTYPE_USI, UDI_FTYPE_UDI, UQI_FTYPE_UQI_UQI): New
function types.
* config/i386/i386-builtin.def (__builtin_ia32_knotqi,
__builtin_ia32_knotsi, __builtin_ia32_knotdi,
__builtin_ia32_korqi, __builtin_ia32_korsi, __builtin_ia32_kordi,
__builtin_ia32_kxnorqi, __builtin_ia32_kxnorsi,
__builtin_ia32_kxnordi, __builtin_ia32_kxorqi, __builtin_ia32_kxorsi,
__builtin_ia32_kxordi, __builtin_ia32_kandqi,
__builtin_ia32_kandsi, __builtin_ia32_kanddi, __builtin_ia32_kandnqi,
__builtin_ia32_kandnsi, __builtin_ia32_kandndi): New.
* config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
gcc/testsuite/
2016-12-05 Andrew Senkevich <andrew.senkevich@intel.com>
* gcc.target/i386/avx512bw-kandd-1.c: New.
* gcc.target/i386/avx512bw-kandnd-1.c: Ditto.
* gcc.target/i386/avx512bw-kandnq-1.c: Ditto.
* gcc.target/i386/avx512bw-kandq-1.c: Ditto.
* gcc.target/i386/avx512bw-knotd-1.c: Ditto.
* gcc.target/i386/avx512bw-knotq-1.c: Ditto.
* gcc.target/i386/avx512bw-kord-1.c: Ditto.
* gcc.target/i386/avx512bw-korq-1.c: Ditto.
* gcc.target/i386/avx512bw-kunpckdq-3.c: Ditto.
* gcc.target/i386/avx512bw-kunpckwd-3.c: Ditto.
* gcc.target/i386/avx512bw-kxnord-1.c: Ditto.
* gcc.target/i386/avx512bw-kxnorq-1.c: Ditto.
* gcc.target/i386/avx512bw-kxord-1.c: Ditto.
* gcc.target/i386/avx512bw-kxorq-1.c: Ditto.
* gcc.target/i386/avx512dq-kandb-1.c: Ditto.
* gcc.target/i386/avx512dq-kandnb-1.c: Ditto.
* gcc.target/i386/avx512dq-knotb-1.c: Ditto.
* gcc.target/i386/avx512dq-korb-1.c: Ditto.
* gcc.target/i386/avx512dq-kxnorb-1.c: Ditto.
* gcc.target/i386/avx512dq-kxorb-1.c: Ditto.
* gcc.target/i386/avx512f-kunpckbw-3.c: Ditto.
* gcc.target/i386/avx512f-kandnw-1.c: Removed unneeded check.
From-SVN: r243265
Segher Boessenkool [Mon, 5 Dec 2016 13:54:42 +0000 (14:54 +0100)]
Subject: [PATCH] Revert "Do not simplify "(and (reg) (const bit)" to
if_then_else."
* combine.c: Revert r243162.
From-SVN: r243256
Paolo Bonzini [Mon, 5 Dec 2016 13:19:34 +0000 (13:19 +0000)]
match.pd: Simplify X ? C : 0 where C is a power of 2 and X tests a single bit.
gcc:
* match.pd: Simplify X ? C : 0 where C is a power of 2 and
X tests a single bit.
gcc/testsuite:
* gcc.dg/fold-and-lshift.c, gcc.dg/fold-and-rshift-1.c,
gcc.dg/fold-and-rshift-2.c: New testcases.
From-SVN: r243255
Nathan Sidwell [Mon, 5 Dec 2016 12:24:39 +0000 (12:24 +0000)]
diagnostic.c (diagnostic_check_max_errors): New, broken out of ...
gcc/
* diagnostic.c (diagnostic_check_max_errors): New, broken out of ...
(diagnostic_action_after_output): ... here.
(diagnostic_report_diagnostic): Call it for non-notes.
* diagnostic.h (struct diagnostic_context): Make max_errors signed
int.
(diagnostic_check_max_errors): Declare.
gcc/fortran/
* error.c (gfc_warning_check): Call diagnostic_check_max_errors.
(gfc_error_check): Likewise.
gcc/testsuite/
* c-c++-common/fmax_errors.c: Check notes after last error are
emitted.
From-SVN: r243254
Mikael Pettersson [Mon, 5 Dec 2016 11:27:55 +0000 (12:27 +0100)]
re PR ada/48835 (porting GNAT to m68k-linux)
PR ada/48835
* gcc-interface/Makefile.in: Add support for m68k-linux.
* system-linux-m68k.ads: New file.
From-SVN: r243247
Cupertino Miranda [Mon, 5 Dec 2016 11:16:52 +0000 (11:16 +0000)]
[ARC] Fix PIE.
gcc/
2016-12-05 Cupertino Miranda <cmiranda@synopsys.com>
* config/arc/arc.h (STARTFILE_SPEC): Use default linux specs.
(ENDFILE_SPEC): Likewise.
libgcc/
2016-12-05 Cupertino Miranda <cmiranda@synopsys.com>
* config.host (arc*-*-linux-uclibc*): Use default extra
objects. Include linux-android header.
* config/arc/crti.S (_init): Declare symbol as function.
(_fini): Likewise.
From-SVN: r243245
Claudiu Zissulescu [Mon, 5 Dec 2016 11:16:38 +0000 (12:16 +0100)]
[ARC] Remove unused patterns, refactor unspec+offset pattern gen.
2016-12-05 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc-protos.h (insn_is_tls_gd_dispatch): Remove.
* config/arc/arc.c (arc_unspec_offset): New function.
(arc_finalize_pic): Change.
(arc_emit_call_tls_get_addr): Likewise.
(arc_legitimize_tls_address): Likewise.
(arc_legitimize_pic_address): Likewise.
(insn_is_tls_gd_dispatch): Remove.
* config/arc/arc.h (INSN_REFERENCES_ARE_DELAYED): Change.
* config/arc/arc.md (ls_gd_load): Remove unused pattern.
(tls_gd_dispatch): Likewise.
From-SVN: r243244
Eric Botcazou [Mon, 5 Dec 2016 11:15:17 +0000 (11:15 +0000)]
system-darwin-ppc.ads (Support_Atomic_Primitives): Set to True only if the word size is 64.
* system-darwin-ppc.ads (Support_Atomic_Primitives): Set to True only
if the word size is 64.
From-SVN: r243243
Andre Vieira [Mon, 5 Dec 2016 09:44:24 +0000 (09:44 +0000)]
Fix arm-netbsdelf bootstrap.
2016-12-025 Andre Vieira <andre.simoesdiasvieira@arm.com>
* config/arm/arm.c (TARGET_ASM_INIT_SECTIONS): Fix wrong undef
location.
From-SVN: r243240
James Greenhalgh [Mon, 5 Dec 2016 09:35:28 +0000 (09:35 +0000)]
[Patch 2/2 PR78561] Recalculate constant pool size before emitting it
gcc/testsuite/
PR rtl-optimization/78561
* gcc.target/aarch64/pr78561.c: Add missing testcase from r243183.
From-SVN: r243239
Eric Botcazou [Mon, 5 Dec 2016 09:30:57 +0000 (09:30 +0000)]
sparc-protos.h (sparc_splitdi_legitimate): Rename to...
* config/sparc/sparc-protos.h (sparc_splitdi_legitimate): Rename to...
(sparc_split_reg_mem_legitimate): ...this.
(sparc_split_reg_mem): Declare.
(sparc_split_mem_reg): Likewise.
(sparc_split_regreg_legitimate): Rename to...
(sparc_split_reg_reg_legitimate): ...this.
* config/sparc/sparc.c (sparc_splitdi_legitimate): Rename to...
(sparc_split_reg_mem_legitimate): ...this.
(sparc_split_reg_mem): New function.
(sparc_split_mem_reg): Likewise.
(sparc_split_regreg_legitimate): Rename to...
(sparc_split_reg_reg_legitimate): ...this.
(sparc_split_reg_reg): New function.
* config/sparc/sparc.md (lra): Remove "none" value.
(enabled): Adjust to above change.
(*movdi_insn_sp32): Remove new (r,T) alternative and reorder others.
(DImode splitters): Adjust to above renamings and use new functions.
(*movdf_insn_sp32): Remove new (r,T) alternative and reorder others.
(DFmode splitters): Adjust to above renamings and use new functions.
(*mov<VM64:mode>_insn_sp64): Replace C with Z constraint and use W
constraint in conjunction with e.
(*mov<VM64:mode>_insn_sp32): Remove new (r,T) alternative, add (o,Y)
alternative and reorder others.
(VM64:mode splitters): Adjust to above renamings and use new functions.
From-SVN: r243238
GCC Administrator [Mon, 5 Dec 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r243235
Janus Weil [Sun, 4 Dec 2016 20:31:26 +0000 (21:31 +0100)]
re PR fortran/78618 (ICE in gfc_check_rank, at fortran/check.c:3670)
2016-12-04 Janus Weil <janus@gcc.gnu.org>
PR fortran/78618
* intrinsic.c (gfc_convert_type_warn): Do not set the full typespec for
the conversion symbol, but only type and kind. Set the full typespec
for the expression.
(gfc_convert_chartype): Ditto.
From-SVN: r243232
Martin Sebor [Sun, 4 Dec 2016 17:48:44 +0000 (17:48 +0000)]
PR c/78668 - aligned_alloc, realloc, et al. missing attribute alloc_size
gcc/ChangeLog:
PR c/78668
* builtin-attrs.def (ATTR_ALLOC_SIZE, ATTR_RETURNS_NONNULL): New
identifier tree nodes.
(ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): New attribute list.
(ATTR_MALLOC_SIZE_1_NOTHROW_LIST): Same.
(ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Same.
(ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Same.
(ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Same.
* builtins.def (aligned_alloc, calloc, malloc, realloc):
Add attribute alloc_size.
(alloca): Add attribute alloc_size and returns_nonnull.
gcc/testsuite/ChangeLog:
PR c/78668
* gcc.dg/builtin-alloc-size.c: New test.
From-SVN: r243231
Uros Bizjak [Sun, 4 Dec 2016 14:38:05 +0000 (15:38 +0100)]
re PR target/70322 (STV doesn't optimize andn)
PR target/70322
* config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Handle NEG.
(dimode_scalar_chain::compute_convert_gain): Ditto.
(dimode_scalar_chain::convert_insn): Ditto.
testsuite/ChangeLog:
PR target/70322
* gcc.target/i386/pr70322-4.c: New test.
From-SVN: r243228
GCC Administrator [Sun, 4 Dec 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r243227
Janus Weil [Sat, 3 Dec 2016 18:48:48 +0000 (19:48 +0100)]
re PR fortran/43207 ([OOP] invalid (pointer) assignment to and from abstract non-polymorphic expressions)
2016-12-03 Janus Weil <janus@gcc.gnu.org>
PR fortran/43207
* primary.c (gfc_match_varspec): Reject nonpolymorphic references to
abstract types.
2016-12-03 Janus Weil <janus@gcc.gnu.org>
PR fortran/43207
* gfortran.dg/abstract_type_9.f90: New test case.
From-SVN: r243224
Janus Weil [Sat, 3 Dec 2016 18:37:57 +0000 (19:37 +0100)]
re PR fortran/42188 ([OOP] F03:C612. The leftmost part-name shall be the name of a data object.)
2016-12-03 Janus Weil <janus@gcc.gnu.org>
PR fortran/42188
* primary.c (gfc_match_rvalue): Add a new check that gives better error
messages.
2016-12-03 Janus Weil <janus@gcc.gnu.org>
PR fortran/42188
* gfortran.dg/derived_result_2.f90.f90: New test case.
From-SVN: r243223
Eric Botcazou [Sat, 3 Dec 2016 17:37:13 +0000 (17:37 +0000)]
lra-constraints.c (emit_spill_move): Use gen_lowpart_SUBREG in all cases to build a lowpart SUBREG.
* lra-constraints.c (emit_spill_move): Use gen_lowpart_SUBREG in all
cases to build a lowpart SUBREG.
From-SVN: r243222
Eric Botcazou [Sat, 3 Dec 2016 17:29:43 +0000 (17:29 +0000)]
constraints.md (U): Adjust comment.
* config/sparc/constraints.md (U): Adjust comment.
* config/sparc/sparc.md (lra): New attribute.
(enabled): For base instructions, if the lra attribute is set,
return 1 if it is in keeping with TARGET_LRA.
(*movdi_insn_sp32): Add lra attribute for alternatives mentioning U
constraint and duplicate them with U replaced by r.
(*movdf_insn_sp32): Likewise.
(*mov<VM64:mode>_insn_sp32): Likewise.
(*movtf_insn_sp32): Remove alternatives mentioning U constraint.
From-SVN: r243221
John David Anglin [Sat, 3 Dec 2016 16:10:43 +0000 (16:10 +0000)]
baseline_symbols.txt: Regenerate.
* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Regenerate.
From-SVN: r243220
Thomas Koenig [Sat, 3 Dec 2016 09:44:35 +0000 (09:44 +0000)]
re PR libfortran/78379 (Processor-specific versions for matmul)
2016-12-03 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/78379
* config/i386/cpuinfo.c: Move denums for processor vendors,
processor type, processor subtypes and declaration of
struct __processor_model into
* config/i386/cpuinfo.h: New header file.
* Makefile.am: Add dependence of m4/matmul_internal_m4 to
mamtul files..
* Makefile.in: Regenerated.
* acinclude.m4: Check for AVX, AVX2 and AVX512F.
* config.h.in: Add HAVE_AVX, HAVE_AVX2 and HAVE_AVX512F.
* configure: Regenerated.
* configure.ac: Use checks for AVX, AVX2 and AVX_512F.
* m4/matmul_internal.m4: New file. working part of matmul.m4.
* m4/matmul.m4: Implement architecture-specific switching
for AVX, AVX2 and AVX512F by including matmul_internal.m4
multiple times.
* generated/matmul_c10.c: Regenerated.
* generated/matmul_c16.c: Regenerated.
* generated/matmul_c4.c: Regenerated.
* generated/matmul_c8.c: Regenerated.
* generated/matmul_i1.c: Regenerated.
* generated/matmul_i16.c: Regenerated.
* generated/matmul_i2.c: Regenerated.
* generated/matmul_i4.c: Regenerated.
* generated/matmul_i8.c: Regenerated.
* generated/matmul_r10.c: Regenerated.
* generated/matmul_r16.c: Regenerated.
* generated/matmul_r4.c: Regenerated.
* generated/matmul_r8.c: Regenerated.
From-SVN: r243219
Janus Weil [Sat, 3 Dec 2016 09:32:27 +0000 (10:32 +0100)]
re PR fortran/58175 ([OOP] Incorrect warning message on scalar finalizer)
2016-12-03 Janus Weil <janus@gcc.gnu.org>
PR fortran/58175
* resolve.c (gfc_resolve_finalizers): Prevent bogus warning.
2016-12-03 Janus Weil <janus@gcc.gnu.org>
PR fortran/58175
* gfortran.dg/finalize_30.f90: Extend test case.
From-SVN: r243218
Steven G. Kargl [Sat, 3 Dec 2016 07:23:13 +0000 (07:23 +0000)]
expr.c (gfc_build_conversion): Remove unneeded initialization.
2016-12-02 Steven G. Kargl <kargl@gcc.gnu.org>
* expr.c (gfc_build_conversion): Remove unneeded initialization.
From-SVN: r243217
Jeff Law [Sat, 3 Dec 2016 02:02:51 +0000 (19:02 -0700)]
arm.c (arm_handle_cmse_nonsecure_call): Remove unused variable main_variant.
* config/arm/arm.c (arm_handle_cmse_nonsecure_call): Remove unused
variable main_variant.
From-SVN: r243216
Michael Meissner [Sat, 3 Dec 2016 00:41:44 +0000 (00:41 +0000)]
config.gcc (powerpc*-*-linux*): Set gnu-indirect-function by default on PowerPC linux systems.
2016-12-02 Michael Meissner <meissner@linux.vnet.ibm.com>
* config.gcc (powerpc*-*-linux*): Set gnu-indirect-function by
default on PowerPC linux systems.
From-SVN: r243215
GCC Administrator [Sat, 3 Dec 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r243214
Segher Boessenkool [Fri, 2 Dec 2016 23:51:31 +0000 (00:51 +0100)]
simplify-rtx: Fix the last fix (PR78638)
I managed to get the last obvious fix wrong: mode is M1, GET_MODE (op)
is M2.
* simplify-rtx.c (simplify_truncation): M2 is not mode, it is
GET_MODE (op). Fix this.
From-SVN: r243210
David Malcolm [Fri, 2 Dec 2016 22:39:43 +0000 (22:39 +0000)]
selftest.c: remove calls to strndup (PR bootstrap/78616)
gcc/ChangeLog:
PR bootstrap/78616
* selftest.c (selftest::assert_strndup_eq): Rename to...
(selftest::assert_xstrndup_eq): ...this, and remove call to
strndup.
(selftest::test_strndup): Rename to...
(selftest::test_xstrndup): ...this, updating for above renaming.
(selftest::test_libiberty): Update for renaming.
From-SVN: r243207
Michael Meissner [Fri, 2 Dec 2016 22:12:08 +0000 (22:12 +0000)]
re PR target/78639 (Power9 bad code generation for cactusADM benchmark)
2016-12-02 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/78639
* config/rs6000/rs6000.md (movdi_internal64): Fix typo in
subversion id 242679 that causes the wrong store instruction to be
generated if a DImode is in an Altivec register using REG+REG
addressing.
From-SVN: r243206
Steven G. Kargl [Fri, 2 Dec 2016 22:09:13 +0000 (22:09 +0000)]
simplify.c (gfc_convert_char_constant): Free result on error.
2016-12-02 Steven G. Kargl <kargl@gcc.gnu.org>
* simplify.c (gfc_convert_char_constant): Free result on error.
From-SVN: r243205
Jakub Jelinek [Fri, 2 Dec 2016 21:23:22 +0000 (22:23 +0100)]
re PR c++/78649 (ICE on invalid C++ code on x86_64-linux-gnu (internal compiler error: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in build_value_init_noctor, at cp/init.c:380))
PR c++/78649
* pt.c (tsubst_init): Don't call build_value_init if decl's type
is error_mark_node.
* g++.dg/cpp0x/pr78649.C: New test.
From-SVN: r243204
Uros Bizjak [Fri, 2 Dec 2016 18:48:35 +0000 (19:48 +0100)]
re PR target/70322 (STV doesn't optimize andn)
PR target/70322
* config/i386/i386.md (*andndi3_doubleword): Add non-BMI alternative
and corresponding post-reload splitter.
testsuite/ChangeLog:
PR target/70322
* gcc.target/i386/pr70322-2.c (dg-final): Remove xfail.
From-SVN: r243202
Janus Weil [Fri, 2 Dec 2016 18:38:24 +0000 (19:38 +0100)]
[multiple changes]
2016-12-02 Janus Weil <janus@gcc.gnu.org>
Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/78618
* check.c (gfc_check_rank): Remove ATTRIBUTE_UNUSED.
* expr.c (gfc_check_assign): Fix error propagation.
2016-12-02 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/78618
* gfortran.dg/char_conversion.f90: New test.
From-SVN: r243201
Kyrylo Tkachov [Fri, 2 Dec 2016 17:13:08 +0000 (17:13 +0000)]
[AArch64] Separate shrink wrapping hooks implementation
* config/aarch64/aarch64.h (machine_function): Add
reg_is_wrapped_separately field.
* config/aarch64/aarch64.md (LAST_SAVED_REGNUM): Define new constant.
* config/aarch64/aarch64.c (emit_set_insn): Change return type to
rtx_insn *.
(aarch64_save_callee_saves): Don't save registers that are wrapped
separately.
(aarch64_restore_callee_saves): Don't restore registers that are
wrapped separately.
(offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p,
aarch64_offset_7bit_signed_scaled_p): Move earlier in the file.
(aarch64_get_separate_components): New function.
(aarch64_get_next_set_bit): Likewise.
(aarch64_components_for_bb): Likewise.
(aarch64_disqualify_components): Likewise.
(aarch64_emit_prologue_components): Likewise.
(aarch64_emit_epilogue_components): Likewise.
(aarch64_set_handled_components): Likewise.
(aarch64_process_components): Likewise.
(TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS,
TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB,
TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS,
TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS,
TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS,
TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define.
From-SVN: r243200
Martin Jambor [Fri, 2 Dec 2016 17:05:10 +0000 (18:05 +0100)]
Move rebuild_cfg to the end of build_ssa_passes
2016-12-02 Martin Jambor <mjambor@suse.cz>
* passes.def: Move pass_rebuild_cgraph_edges to the end of
pass_build_ssa_passes.
From-SVN: r243199
Uros Bizjak [Fri, 2 Dec 2016 16:53:23 +0000 (17:53 +0100)]
alpha.md (exception_receiver): Copy alpha_gp_ave_rtx return value.
* config/alpha/alpha.md (exception_receiver): Copy
alpha_gp_ave_rtx return value.
From-SVN: r243197
Tadek Kijkowski [Fri, 2 Dec 2016 16:34:28 +0000 (16:34 +0000)]
Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection for several include directories that may be relative...
* Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
for several include directories that may be relative to sysroot.
* config/i386/x-mingw32 (gplus_includedir): Define.
(gplus_tool_includedir, gplus_backward_include_dir): Likewise.
(native_system_includedir): Likewise.
* config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
override if TARGET_SYSTEM_ROOT is defined.
(NATIVE_SYSTEM_HEADER_DIR): Likewise.
From-SVN: r243196
Jakub Jelinek [Fri, 2 Dec 2016 16:28:41 +0000 (17:28 +0100)]
re PR target/70322 (STV doesn't optimize andn)
PR target/70322
* config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Handle
NOT.
(dimode_scalar_chain::compute_convert_gain): Likewise.
(dimode_scalar_chain::convert_insn): Likewise.
* config/i386/i386.md (*one_cmpldi2_doubleword): New
define_insn_and_split.
(one_cmpl<mode>2): Use SWIM1248x iterator instead of SWIM.
* gcc.target/i386/pr70322-1.c: New test.
* gcc.target/i386/pr70322-2.c: New test.
* gcc.target/i386/pr70322-3.c: New test.
From-SVN: r243195
Jakub Jelinek [Fri, 2 Dec 2016 15:42:04 +0000 (16:42 +0100)]
re PR target/78614 (ICE error: invalid rtl sharing found in the insn (verify_rtx_sharing) gcc/emit-rtl.c:2743)
PR target/78614
* rtl.c (copy_rtx): Don't clear used flag here.
(shallow_copy_rtx_stat): Clear used flag here unless code the rtx
is shareable.
* simplify-rtx.c (simplify_replace_fn_rtx): When copying rtx with
'E' in format, copy all vectors.
* emit-rtl.c (copy_insn_1): Don't clear used flag here.
* valtrack.c (cleanup_auto_inc_dec): Likewise.
* config/rs6000/rs6000.c (rs6000_frame_related): Likewise.
From-SVN: r243194
Andre Vieira [Fri, 2 Dec 2016 15:34:36 +0000 (15:34 +0000)]
Added support for ARMV8-M Security Extension cmse_nonsecure_caller intrinsic
gcc/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/arm/arm-builtins.c (arm_builtins): Define
ARM_BUILTIN_CMSE_NONSECURE_CALLER.
(bdesc_2arg): Add line for cmse_nonsecure_caller.
(arm_init_builtins): Handle cmse_nonsecure_caller.
(arm_expand_builtin): Likewise.
* config/arm/arm_cmse.h (cmse_nonsecure_caller): New.
gcc/testsuite/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* gcc.target/arm/cmse/cmse-1.c: Add test for
cmse_nonsecure_caller.
Co-Authored-By: Thomas Preud'homme <thomas.preudhomme@arm.com>
From-SVN: r243193
Andre Vieira [Fri, 2 Dec 2016 15:33:26 +0000 (15:33 +0000)]
ARMv8-M Security Extension's cmse_nonsecure_call: use __gnu_cmse_nonsecure_call
gcc/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/arm/arm.c (detect_cmse_nonsecure_call): New.
(cmse_nonsecure_call_clear_caller_saved): New.
(arm_reorg): Use cmse_nonsecure_call_clear_caller_saved.
(arm_function_ok_for_sibcall): Disable sibcalls for
cmse_nonsecure_call.
* config/arm/arm-protos.h (detect_cmse_nonsecure_call): New.
* config/arm/arm.md (call): Handle cmse_nonsecure_entry.
(call_value): Likewise.
(nonsecure_call_internal): New.
(nonsecure_call_value_internal): New.
* config/arm/thumb1.md (*nonsecure_call_reg_thumb1_v5): New.
(*nonsecure_call_value_reg_thumb1_v5): New.
* config/arm/thumb2.md (*nonsecure_call_reg_thumb2): New.
(*nonsecure_call_value_reg_thumb2): New.
* config/arm/unspecs.md (UNSPEC_NONSECURE_MEM): New.
libgcc/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/arm/cmse_nonsecure_call.S: New.
* config/arm/t-arm: Compile cmse_nonsecure_call.S
gcc/testsuite/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* gcc.target/arm/cmse/cmse.exp: Run tests in mainline dir.
* gcc.target/arm/cmse/cmse-9.c: Added some extra tests.
* gcc.target/arm/cmse/cmse-14.c: New.
* gcc.target/arm/cmse/baseline/bitfield-4.c: New.
* gcc.target/arm/cmse/baseline/bitfield-5.c: New.
* gcc.target/arm/cmse/baseline/bitfield-6.c: New.
* gcc.target/arm/cmse/baseline/bitfield-7.c: New.
* gcc.target/arm/cmse/baseline/bitfield-8.c: New.
* gcc.target/arm/cmse/baseline/bitfield-9.c: New.
* gcc.target/arm/cmse/baseline/bitfield-and-union-1.c: New.
* gcc.target/arm/cmse/baseline/cmse-11.c: New.
* gcc.target/arm/cmse/baseline/cmse-13.c: New.
* gcc.target/arm/cmse/baseline/cmse-6.c: New.
* gcc.target/arm/cmse/baseline/union-1.c: New.
* gcc.target/arm/cmse/baseline/union-2.c: New.
* gcc.target/arm/cmse/mainline/bitfield-4.c: New.
* gcc.target/arm/cmse/mainline/bitfield-5.c: New.
* gcc.target/arm/cmse/mainline/bitfield-6.c: New.
* gcc.target/arm/cmse/mainline/bitfield-7.c: New.
* gcc.target/arm/cmse/mainline/bitfield-8.c: New.
* gcc.target/arm/cmse/mainline/bitfield-9.c: New.
* gcc.target/arm/cmse/mainline/bitfield-and-union-1.c: New.
* gcc.target/arm/cmse/mainline/union-1.c: New.
* gcc.target/arm/cmse/mainline/union-2.c: New.
* gcc.target/arm/cmse/mainline/hard-sp/cmse-13.c: New.
* gcc.target/arm/cmse/mainline/hard-sp/cmse-7.c: New.
* gcc.target/arm/cmse/mainline/hard-sp/cmse-8.c: New.
* gcc.target/arm/cmse/mainline/hard/cmse-13.c: New.
* gcc.target/arm/cmse/mainline/hard/cmse-7.c: New.
* gcc.target/arm/cmse/mainline/hard/cmse-8.c: New.
* gcc.target/arm/cmse/mainline/soft/cmse-13.c: New.
* gcc.target/arm/cmse/mainline/soft/cmse-7.c: New.
* gcc.target/arm/cmse/mainline/soft/cmse-8.c: New.
* gcc.target/arm/cmse/mainline/softfp-sp/cmse-7.c: New.
* gcc.target/arm/cmse/mainline/softfp-sp/cmse-8.c: New.
* gcc.target/arm/cmse/mainline/softfp/cmse-13.c: New.
* gcc.target/arm/cmse/mainline/softfp/cmse-7.c: New.
* gcc.target/arm/cmse/mainline/softfp/cmse-8.c: New.
Co-Authored-By: Thomas Preud'homme <thomas.preudhomme@arm.com>
From-SVN: r243192
Andre Vieira [Fri, 2 Dec 2016 15:30:37 +0000 (15:30 +0000)]
Handling ARMv8-M Security Extension's cmse_nonsecure_call attribute
gcc/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/arm/arm.c (gimplify.h): New include.
(arm_handle_cmse_nonsecure_call): New.
(arm_attribute_table): Added cmse_nonsecure_call.
(arm_comp_type_attributes): Deny compatibility of function types
with without the cmse_nonsecure_call attribute.
* doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute.
gcc/testsuite/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* gcc.target/arm/cmse/cmse-3.c: Add tests.
* gcc.target/arm/cmse/cmse-4.c: Add tests.
* gcc.target/arm/cmse/cmse-15.c: New.
Co-Authored-By: Thomas Preud'homme <thomas.preudhomme@arm.com>
From-SVN: r243191
Andre Vieira [Fri, 2 Dec 2016 15:29:03 +0000 (15:29 +0000)]
ARMv8-M Security Extension's cmse_nonsecure_entry: clear registers
gcc/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/arm/arm.c (output_return_instruction): Clear
registers.
(thumb2_expand_return): Likewise.
(thumb1_expand_epilogue): Likewise.
(thumb_exit): Likewise.
(arm_expand_epilogue): Likewise.
(cmse_nonsecure_entry_clear_before_return): New.
(comp_not_to_clear_mask_str_un): New.
(compute_not_to_clear_mask): New.
* config/arm/thumb1.md (*epilogue_insns): Change length attribute.
* config/arm/thumb2.md (*thumb2_return): Disable for
cmse_nonsecure_entry functions.
(*thumb2_cmse_entry_return): Duplicate thumb2_return pattern for
cmse_nonsecure_entry functions.
gcc/testsuite/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* gcc.target/arm/cmse/cmse.exp: Test different multilibs separate.
* gcc.target/arm/cmse/struct-1.c: New.
* gcc.target/arm/cmse/bitfield-1.c: New.
* gcc.target/arm/cmse/bitfield-2.c: New.
* gcc.target/arm/cmse/bitfield-3.c: New.
* gcc.target/arm/cmse/baseline/cmse-2.c: New.
* gcc.target/arm/cmse/baseline/softfp.c: New.
* gcc.target/arm/cmse/mainline/soft/cmse-5.c: New.
* gcc.target/arm/cmse/mainline/hard/cmse-5.c: New.
* gcc.target/arm/cmse/mainline/hard-sp/cmse-5.c: New.
* gcc.target/arm/cmse/mainline/softfp/cmse-5.c: New.
* gcc.target/arm/cmse/mainline/softfp-sp/cmse-5.c: New.
Co-Authored-By: Thomas Preud'homme <thomas.preudhomme@arm.com>
From-SVN: r243190
Andre Vieira [Fri, 2 Dec 2016 15:27:03 +0000 (15:27 +0000)]
ARMv8-M Security Extension's cmse_nonsecure_entry: __acle_se label and bxns
return
gcc/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/arm/arm.c (use_return_insn): Change to return with bxns
when cmse_nonsecure_entry.
(output_return_instruction): Likewise.
(arm_output_function_prologue): Likewise.
(thumb_pop): Likewise.
(thumb_exit): Likewise.
(thumb2_expand_return): Assert that entry functions always have simple
returns.
(arm_expand_epilogue): Handle entry functions.
(arm_function_ok_for_sibcall): Disable sibcall for entry functions.
(arm_asm_declare_function_name): New.
* config/arm/arm-protos.h (arm_asm_declare_function_name): New.
* config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME): Redefine to
use arm_asm_declare_function_name.
gcc/testsuite/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* gcc.target/arm/cmse/cmse-4.c: New.
* gcc.target/arm/cmse/cmse-9.c: New.
* gcc.target/arm/cmse/cmse-10.c: New.
Co-Authored-By: Thomas Preud'homme <thomas.preudhomme@arm.com>
From-SVN: r243189
Andre Vieira [Fri, 2 Dec 2016 15:24:40 +0000 (15:24 +0000)]
Handling ARMv8-M Security Extension's cmse_nonsecure_entry attribute
gcc/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/arm/arm.c (arm_handle_cmse_nonsecure_entry): New.
(arm_attribute_table): Added cmse_nonsecure_entry
(arm_compute_func_type): Handle cmse_nonsecure_entry.
(cmse_func_args_or_return_in_stack): New.
(arm_handle_cmse_nonsecure_entry): New.
* config/arm/arm.h (ARM_FT_CMSE_ENTRY): New macro define.
(IS_CMSE_ENTRY): Likewise.
* doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute.
gcc/testsuite/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* gcc.target/arm/cmse/cmse-3.c: New.
Co-Authored-By: Thomas Preud'homme <thomas.preudhomme@arm.com>
From-SVN: r243188
Andre Vieira [Fri, 2 Dec 2016 15:22:43 +0000 (15:22 +0000)]
Add support for ARMv8-M's Secure Extensions flag and intrinsics
gcc/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* config.gcc (extra_headers): Added arm_cmse.h.
* config/arm/arm-arches.def (ARM_ARCH):
(armv8-m): Add FL2_CMSE.
(armv8-m.main): Likewise.
(armv8-m.main+dsp): Likewise.
* config/arm/arm-c.c
(arm_cpu_builtins): Added __ARM_FEATURE_CMSE macro.
* config/arm/arm-flags.h: Define FL2_CMSE.
* config/arm.c (arm_arch_cmse): New.
(arm_option_override): New error for unsupported cmse target.
* config/arm/arm.h (arm_arch_cmse): New.
* config/arm/arm.opt (mcmse): New.
* config/arm/arm_cmse.h: New file.
* doc/invoke.texi (ARM Options): Add -mcmse.
* doc/sourcebuild.texi (arm_cmse_ok): Add new effective target.
* doc/extend.texi: Add ARMv8-M Security Extensions entry.
gcc/testsuite/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* gcc.target/arm/cmse/cmse.exp: New.
* gcc.target/arm/cmse/cmse-1.c: New.
* gcc.target/arm/cmse/cmse-12.c: New.
* lib/target-supports.exp
(check_effective_target_arm_cmse_ok): New.
libgcc/ChangeLog:
2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/arm/t-arm (HAVE_CMSE): New.
* config/arm/cmse.c: New.
Co-Authored-By: Thomas Preud'homme <thomas.preudhomme@arm.com>
From-SVN: r243187
Georg-Johann Lay [Fri, 2 Dec 2016 15:08:27 +0000 (15:08 +0000)]
avr.c: Fix coding rule glitches.
* config/avr/avr.c: Fix coding rule glitches.
From-SVN: r243186
Cesar Philippidis [Fri, 2 Dec 2016 14:54:39 +0000 (06:54 -0800)]
c-parser.c (c_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA...
gcc/c/
* c-parser.c (c_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA,
EXIT_DATA,WAIT} are not used in compound statements.
(c_parser_oacc_enter_exit_data): Update diagnostics.
gcc/cp/
* parser.c (cp_parser_oacc_enter_exit_data): Update diagnostics.
(cp_parser_pragma): Error when PRAGMA_OACC_{ENTER_DATA,
EXIT_DATA,WAIT} are not used in compound statements.
gcc/testsuite/
* c-c++-common/goacc/data-2.c: Adjust test.
* c-c++-common/goacc/executeables-1.c: New test.
* g++.dg/goacc/data-1.C: Adjust test.
Co-Authored-By: James Norris <jnorris@codesourcery.com>
From-SVN: r243185
Martin Jambor [Fri, 2 Dec 2016 14:42:15 +0000 (15:42 +0100)]
[hsa] Exclude parallel outlines from hsa_callable_functions_p
2016-12-09 Martin Jambor <mjambor@suse.cz>
* hsa.c (hsa_callable_function_p): Return false for artificial
functions.
From-SVN: r243184
James Greenhalgh [Fri, 2 Dec 2016 14:31:10 +0000 (14:31 +0000)]
[Patch 2/2 PR78561] Recalculate constant pool size before emitting it
gcc/
PR rtl-optimization/78561
* varasm.c (recompute_pool_offsets): New.
(output_constant_pool): Call it.
gcc/testsuite/
PR rtl-optimization/78561
* gcc.target/aarch64/pr78561.c: New.
From-SVN: r243183
James Greenhalgh [Fri, 2 Dec 2016 14:29:35 +0000 (14:29 +0000)]
[Patch 1/2 PR78561] Rename get_pool_size to get_pool_size_upper_bound
gcc/
PR rtl-optimization/78561
* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p) Rename
get_pool_size to get_pool_size_upper_bound.
(rs6000_stack_info): Likewise.
(rs6000_emit_prologue): Likewise.
(rs6000_elf_declare_function_name): Likewise.
(rs6000_set_up_by_prologue): Likewise.
(rs6000_can_eliminate): Likewise, reformat spaces to tabs.
* output.h (get_pool_size): Rename to...
(get_pool_size_upper_bound): ...This.
* varasm.c (get_pool_size): Rename to...
(get_pool_size_upper_bound): ...This.
From-SVN: r243182
Sebastian Huber [Fri, 2 Dec 2016 14:13:12 +0000 (14:13 +0000)]
[RTEMS] Use spin lock for pool management
libgomp/
* libgomp/config/rtems/pool.h (gomp_thread_pool_reservoir): Use
pthread_spinlock_t instead of gomp_mutex_t lock.
(gomp_get_thread_pool): Likewise.
(gomp_release_thread_pool): Likewise.
* libgomp/config/rtems/proc.c (allocate_thread_pool_reservoir):
Likewise.
From-SVN: r243181
Bin Cheng [Fri, 2 Dec 2016 14:13:11 +0000 (14:13 +0000)]
match.pd: Add new pattern: (cond (cmp (convert?
* match.pd: Add new pattern:
(cond (cmp (convert? x) c1) (op x c2) c3) -> (op (minmax x c1) c2).
gcc/testsuite
* gcc.dg/fold-bopcond-1.c: New test.
* gcc.dg/fold-bopcond-2.c: New test.
From-SVN: r243180
Sebastian Huber [Fri, 2 Dec 2016 14:10:33 +0000 (14:10 +0000)]
[RTEMS] Fix libgomp for nthreads == 1
libgomp/
* config/rtems/pool.h (gomp_get_thread_pool): Return proper
thread pool in case nthreads == 1.
From-SVN: r243179
Jason Merrill [Fri, 2 Dec 2016 13:58:32 +0000 (08:58 -0500)]
call.c (add_function_candidate): Also exclude inherited ctors that take a type reference-related to the derived...
* call.c (add_function_candidate): Also exclude inherited ctors
that take a type reference-related to the derived class.
From-SVN: r243178
Nathan Sidwell [Fri, 2 Dec 2016 13:14:01 +0000 (13:14 +0000)]
diagnostic.c (diagnostic_report_diagnostic): Remove extraneous braces.
* diagnostic.c (diagnostic_report_diagnostic): Remove extraneous
braces.
From-SVN: r243177
Dominik Vogt [Fri, 2 Dec 2016 12:32:16 +0000 (12:32 +0000)]
S/390: Fix setmem-long test.
Adding a " in the scan-assembler pattern is necessary because of a
recent change in print-rtl.c.
gcc/testsuite/ChangeLog:
2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com>
* gcc.target/s390/md/setmem_long-1.c: Fix test.
From-SVN: r243176
Aldy Hernandez [Fri, 2 Dec 2016 12:20:42 +0000 (12:20 +0000)]
re PR middle-end/78328 (wrong wording for unbounded alloc case in -Walloca-larger-than note)
PR middle-end/78328
* gimple-ssa-warn-alloca.c (alloca_call_type): Handle
VR_ANTI_RANGE.
From-SVN: r243174
Andreas Krebbel [Fri, 2 Dec 2016 11:52:58 +0000 (11:52 +0000)]
S/390: Fix RTL sharing when generating reg note.
gcc/ChangeLog:
2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.c (s390_save_gprs_to_fprs): Fix RTL sharing
problem.
From-SVN: r243173
Georg-Johann Lay [Fri, 2 Dec 2016 09:12:22 +0000 (09:12 +0000)]
avr-arch.h (avr_mcu_t): Remove field.
* config/avr/avr-arch.h (avr_mcu_t) [n_flash]: Remove field.
* config/avr/avr-devices.c (AVR_MCU): Remove N_FLASH macro argument.
* config/avr/avr-mcus.def (AVR_MCU): Remove initializer for n_flash.
* config/avr/avr.c (avr_set_core_architecture) [avr_n_flash]: Use
avr_mcu_types.flash_size to compute default value.
* config/avr/gen-avr-mmcu-specs.c (print_mcu) [cc1_n_flash]: Use
mcu->flash_size to compute value for spec.
From-SVN: r243171
Georg-Johann Lay [Fri, 2 Dec 2016 09:05:56 +0000 (09:05 +0000)]
invoke.texi (AVR Options): Point to absdata.
* doc/invoke.texi (AVR Options) [-mabsdata]: Point to absdata.
* doc/extend.texi (AVR Variable Attributes) [progmem]: Hint
about linker description to avoid progmem altogether.
[absdata]: Point to -mabsdata option.
From-SVN: r243170
Jakub Jelinek [Fri, 2 Dec 2016 08:44:42 +0000 (09:44 +0100)]
re PR rtl-optimization/78547 (ICE: in loc_cmp, at var-tracking.c:3417 with -Os -g -mstringop-strategy=libcall -freorder-blocks-algorithm=simple)
PR rtl-optimization/78547
* emit-rtl.c (unshare_all_rtl): Make sure DECL_RTL and
DECL_INCOMING_RTL is not shared.
* config/i386/i386.c (convert_scalars_to_vectors): If any
insns have been converted, adjust all parameter's DEC_RTL and
DECL_INCOMING_RTL back from V1TImode to TImode if the parameters have
TImode.
* gcc.dg/pr78547.c: New test.
From-SVN: r243165
Jakub Jelinek [Fri, 2 Dec 2016 08:42:12 +0000 (09:42 +0100)]
re PR rtl-optimization/78575 (ICE: in trunc_int_for_mode, at explow.c:55 with -O2 -g)
PR rtl-optimization/78575
* config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses): Use
DF infrastructure to wrap all V1TImode reg uses into TImode subreg
if not already wrapped in a subreg. Make sure df_insn_rescan does not
affect further iterations.
* gcc.dg/pr78575.c: New test.
From-SVN: r243164
Martin Liska [Fri, 2 Dec 2016 08:36:01 +0000 (09:36 +0100)]
Fix runtime error: left shift of negative value (PR
PR ipa/78555
* sreal.c (sreal::to_int): Make absolute value before shifting.
(sreal::operator/): Likewise.
(sreal_verify_negative_division): New test.
(void sreal_c_tests): Call the new test.
* sreal.h (sreal::normalize_up): Use new SREAL_ABS and
SREAL_SIGN macros.
(sreal::normalize_down): Likewise.
From-SVN: r243163
Dominik Vogt [Fri, 2 Dec 2016 08:32:40 +0000 (08:32 +0000)]
Do not simplify "(and (reg) (const bit)" to if_then_else.
combine_simplify_rtx() tries to replace rtx expressions with just two
possible values with an experession that uses if_then_else:
(if_then_else (condition) (value1) (value2))
If the original expression is e.g.
(and (reg) (const_int 2))
where the constant is the mask for a single bit, the replacement results
in a more complex expression than before:
(if_then_else (ne (zero_extract (reg) (1) (31))) (2) (0))
Similar replacements are done for
(signextend (and ...))
(zeroextend (and ...))
Suppress the replacement this special case in if_then_else_cond().
gcc/ChangeLog:
2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com>
* combine.c (combine_simplify_rtx): Suppress replacement of
"(and (reg) (const_int bit))" with "if_then_else".
From-SVN: r243162
Dominik Vogt [Fri, 2 Dec 2016 08:31:09 +0000 (08:31 +0000)]
S/390: Fix litpool-r3-1.c.
gcc/testsuite/ChangeLog:
2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com>
* gcc.target/s390/litpool-r3-1.c: Fix label number test.
From-SVN: r243161