Commit Graph

150384 Commits

Author SHA1 Message Date
GCC Administrator
b2a8d083c5 Daily bump.
From-SVN: r243235
2016-12-05 00:16:15 +00:00
Janus Weil
aa7cfe4057 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
2016-12-04 21:31:26 +01:00
Martin Sebor
5dcf456180 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
2016-12-04 10:48:44 -07:00
Uros Bizjak
6b7d845323 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
2016-12-04 15:38:05 +01:00
GCC Administrator
c818397a98 Daily bump.
From-SVN: r243227
2016-12-04 00:16:17 +00:00
Janus Weil
4ceda20498 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
2016-12-03 19:48:48 +01:00
Janus Weil
20fee4a901 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
2016-12-03 19:37:57 +01:00
Eric Botcazou
54b84aa945 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
2016-12-03 17:37:13 +00:00
Eric Botcazou
7c3cace17c 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
2016-12-03 17:29:43 +00:00
John David Anglin
f9b6b9291d baseline_symbols.txt: Regenerate.
* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Regenerate.

From-SVN: r243220
2016-12-03 16:10:43 +00:00
Thomas Koenig
31cfd83286 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
2016-12-03 09:44:35 +00:00
Janus Weil
802583a210 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
2016-12-03 10:32:27 +01:00
Steven G. Kargl
98ff2d6b12 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
2016-12-03 07:23:13 +00:00
Jeff Law
57c9def7d0 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
2016-12-02 19:02:51 -07:00
Michael Meissner
25207f51c4 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
2016-12-03 00:41:44 +00:00
GCC Administrator
9dd059b7c3 Daily bump.
From-SVN: r243214
2016-12-03 00:16:15 +00:00
Segher Boessenkool
5bd12bafb5 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
2016-12-03 00:51:31 +01:00
David Malcolm
bf7f70ffb5 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
2016-12-02 22:39:43 +00:00
Michael Meissner
6556f65166 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
2016-12-02 22:12:08 +00:00
Steven G. Kargl
471092175d 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
2016-12-02 22:09:13 +00:00
Jakub Jelinek
a3f7c896a5 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
2016-12-02 22:23:22 +01:00
Uros Bizjak
81cff75ff9 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
2016-12-02 19:48:35 +01:00
Janus Weil
6ed022af2a [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
2016-12-02 19:38:24 +01:00
Kyrylo Tkachov
827ab47ab1 [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
2016-12-02 17:13:08 +00:00
Martin Jambor
8a87dced20 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
2016-12-02 18:05:10 +01:00
Uros Bizjak
2e3af7e2f4 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
2016-12-02 17:53:23 +01:00
Tadek Kijkowski
d2c82d98de 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
2016-12-02 09:34:28 -07:00
Jakub Jelinek
17c69eff82 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
2016-12-02 17:28:41 +01:00
Jakub Jelinek
eb61d07eda 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
2016-12-02 16:42:04 +01:00
Andre Vieira
8261e476cb 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
2016-12-02 15:34:36 +00:00
Andre Vieira
c92e08e3d7 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
2016-12-02 15:33:26 +00:00
Andre Vieira
32ce1e4f24 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
2016-12-02 15:30:37 +00:00
Andre Vieira
de954d6a5f 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
2016-12-02 15:29:03 +00:00
Andre Vieira
9ad1f699b8 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
2016-12-02 15:27:03 +00:00
Andre Vieira
97b0656d67 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
2016-12-02 15:24:40 +00:00
Andre Vieira
de7b572345 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
2016-12-02 15:22:43 +00:00
Georg-Johann Lay
f1bca06f62 avr.c: Fix coding rule glitches.
* config/avr/avr.c: Fix coding rule glitches.

From-SVN: r243186
2016-12-02 15:08:27 +00:00
Cesar Philippidis
c5af52eb8c 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
2016-12-02 06:54:39 -08:00
Martin Jambor
69a71a6d07 [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
2016-12-02 15:42:15 +01:00
James Greenhalgh
04c452f40b [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
2016-12-02 14:31:10 +00:00
James Greenhalgh
474bbda167 [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
2016-12-02 14:29:35 +00:00
Sebastian Huber
e7a7f4bea8 [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
2016-12-02 14:13:12 +00:00
Bin Cheng
714445ae04 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
2016-12-02 14:13:11 +00:00
Sebastian Huber
d313d52cd5 [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
2016-12-02 14:10:33 +00:00
Jason Merrill
310a7f9699 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
2016-12-02 08:58:32 -05:00
Nathan Sidwell
03fd1ef632 diagnostic.c (diagnostic_report_diagnostic): Remove extraneous braces.
* diagnostic.c (diagnostic_report_diagnostic): Remove extraneous
	braces.

From-SVN: r243177
2016-12-02 13:14:01 +00:00
Dominik Vogt
d003d97f1d 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
2016-12-02 12:32:16 +00:00
Aldy Hernandez
cc9037a6e9 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
2016-12-02 12:20:42 +00:00
Andreas Krebbel
efa68ffca9 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
2016-12-02 11:52:58 +00:00
Georg-Johann Lay
45d5091d5c 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
2016-12-02 09:12:22 +00:00