Commit Graph

151015 Commits

Author SHA1 Message Date
Jakub Jelinek 8a1f09e4d9 re PR rtl-optimization/79003 (r238991 breaks ODR)
PR bootstrap/79003
	* Makefile.in (CFLAGS, CPPFLAGS, LDFLAGS): Remove -fno-lto.
	(NOLTO_FLAGS): New variable.
	(ALL_CFLAGS): Use it.
	* configure.ac (nolto_flags): New ACX_PROG_CC_WARNING_OPTS,
	check for whether -fno-lto works.
	* configure: Regenerated.

From-SVN: r244208
2017-01-08 17:43:30 +01:00
Jan Hubicka d8dc87c24c re PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000 GAP)
PR middle-end/77484
	* predict.def (PRED_INDIR_CALL): Set to 86.

From-SVN: r244207
2017-01-08 09:53:06 +00:00
Jason Merrill 38285dd719 PR c++/78948 - instantiation from discarded statement
PR c++/78948 - instantiation from discarded statement
	* parser.h (struct cp_parser): Remove in_discarded_stmt field.
	* cp-tree.h (in_discarded_stmt): Declare it.
	(struct saved_scope): Add discarded_stmt bitfield.
	(in_discarded_stmt): New macro.
	* decl2.c (mark_used): Check it.
	* parser.c (cp_parser_selection_statement): Adjust.
	(cp_parser_jump_statement): Adjust.

From-SVN: r244206
2017-01-08 01:36:10 -05:00
Sandra Loosemore c3e50bc4e4 re PR preprocessor/54124 (GCC 4.7.1 manual: -dM and similar options hard to find)
2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>

	PR preprocessor/54124

	gcc/
	* doc/cppopts.texi: Reformat -d subtable to list the full name
	of the options.  Add cross-reference to the docs for the general
	compiler -d options.
	* doc/invoke.texi (Developer Options): Add cross-reference to the
	preprocessor-specific -d option documentation.

From-SVN: r244205
2017-01-07 20:42:26 -05:00
GCC Administrator 49bf00b933 Daily bump.
From-SVN: r244204
2017-01-08 00:16:17 +00:00
Sandra Loosemore 1fce841966 re PR preprocessor/13498 (CPP include search path documentation is incorrect)
2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>

	PR preprocessor/13498

	gcc/
	* doc/cpp.texi (Search Path): Rewrite to remove obsolete and
	redudant material, and reflect new command-line options.
	(System Headers): Likewise.

From-SVN: r244201
2017-01-07 17:46:13 -05:00
Sandra Loosemore ec85a97831 cppdiropts.texi: Merge documentation of -I, -iquote, -isystem, and -idirafter.
2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/cppdiropts.texi: Merge documentation of -I, -iquote,
	-isystem, and -idirafter.  Copy-edit.
	* doc/cppopts.texi: Copy-edit.  Remove contradiction about 
	default for -ftrack-macro-expansion.  Delete obsolete and 
	badly-formatted implementation details about -fdebug-cpp output.
	* doc/cppwarnopts.texi: Copy-edit.

From-SVN: r244200
2017-01-07 17:37:55 -05:00
David Malcolm 5ccf1d8d10 Fix linemap corruption after very wide source lines (PR c++/72803)
PR c++/72803 describes an issue where a fix-it hint is to be emitted at
column 512 of a 511-column source line, leading to an ICE.

The root cause is a bug in linemap_line_start, when transitioning from
lines >= 512 in width to narrow lines.

The wide line in the reproducer has a line map with:
  m_column_and_range_bits = 15, m_range_bits = 5
giving 10 effective bits for representing columns, so that columns <= 1023
can be represented.

When parsing the following line,
  linemap_line_start (..., ..., max_column_hint=0);
is called.  This leads to the "add_map" logic, due to this condition:
      || (max_column_hint <= 80 && effective_column_bits >= 10)
i.e. the new line is sufficiently narrower than the old one to
potentially use a new linemap (so as to conserve values within the
location_t space).

It then attempts to avoid allocating a new line map.  Part of the logic
to determine if we really need a new line map is this condition:
   SOURCE_COLUMN (map, highest) >= (1U << column_bits)
The above condition is incorrect: we need to determine if the highest
column we've handed out will fit within the proposed *effective* column
bits, but "column_bits" here is the column plus the range bits, rather
than just the column bits.

Hence in this case linemap_line_start erroneously decides that we don't
need a new line map, and updates the column bits within the existing
line map, so any location_t values we've already handed out within it
that are offset from the start by
  >= (1<<new_column_and_range_bits)
effectively change meaning, leading to incorrect line&column information
when decoding them, and various "interesting" ways for the linemap
code to fail.

The fix is to use the effective column bits in the above conditional.

gcc/ChangeLog:
	PR c++/72803
	* input.c (selftest::test_accessing_ordinary_linemaps): Verify
	that the transition from a max line width >= 1<<10 to narrower
	lines works correctly.

gcc/testsuite/ChangeLog:
	PR c++/72803
	* g++.dg/diagnostic/pr72803.C: New test case.

libcpp/ChangeLog:
	PR c++/72803
	* line-map.c (linemap_line_start): When determining if the highest
	column given out so far will fit into a proposed change to the
	current map, use the effective number of column bits, rather than
	the total number of column + range bits.

From-SVN: r244199
2017-01-07 21:33:59 +00:00
Alexandre Oliva ff98fa955b [-fcompare-debug] var tracking options are not optimization options
If we include them in the ICF hash, they may cause congruence_groups to
be processed in a different order due to different hashes, which in turn
causes different funcdef_nos to be assigned to functions.  Since these
numbers are included in -fcompare-debug dumps, they cause failures.

Since these options are not optimization options, in that they do not
(or should not, save for bugs like this) affect the executable code
output by the compiler, they should not be marked as such.

This patch replaces the Optimization flag in the var-tracking options
with the newly-introduced PerFunction flag, so that it can still be
controlled on a per-function basis, but that disregards it in the hash
computation used by ICF.

This fixes -fcompare-debug failures in numerous LTO testcases.

for  gcc/ChangeLog

	* doc/options.texi (PerFunction): New.
	* opt-functions.awk (switch_flags): Map both Optimization and
	PerFunction to CL_OPTIMIZATION.
	* opth-gen.awk: Test for PerFunction flag along with
	Optimization.
	* optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
	it only when the latter is present.  Skip those that don't in
	the hash function generator.
	* common.opt (fvar-tracking): Mark as PerFunction instead of
	Optimization.
	(fvar-tracking-assignments): Likewise.
	(fvar-tracking-assignments-toggle): Likewise.
	(fvar-tracking-uninit): Likewise.

From-SVN: r244198
2017-01-07 19:53:13 +00:00
Martin Sebor 42002dfec3 attr-alloc_size-3.c: Remove regex made redundant by r243461.
gcc/testsuite/ChangeLog:

	* gcc.dg/attr-alloc_size-3.c: Remove regex made redundant by r243461.
	* gcc.dg/attr-alloc_size-4.c: Same.

From-SVN: r244197
2017-01-07 12:45:33 -07:00
Andre Vehreschild de91486c74 re PR fortran/78781 ([Coarray] ICE in gfc_deallocate_scalar_with_status, at fortran/trans.c:1588)
gcc/fortran/ChangeLog:

2017-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/78781
	PR fortran/78935
	* expr.c (gfc_check_pointer_assign): Return the same error message for
	rewritten coarray pointer assignments like for plain ones.
	* gfortran.h: Change prototype.
	* primary.c (caf_variable_attr): Set attributes used ones only only
	ones.  Add setting of pointer_comp attribute.
	(gfc_caf_attr): Add setting of pointer_comp attribute.
	* trans-array.c (gfc_array_allocate): Add flag that the component to
	allocate is not an ultimate coarray component.  Add allocation of
	pointer arrays.
	(structure_alloc_comps): Extend nullify to treat pointer components in
	coarrays correctly.  Restructure nullify to remove redundant code.
	(gfc_nullify_alloc_comp): Allow setting caf_mode flags.
	* trans-array.h: Change prototype of gfc_nullify_alloc_comp ().
	* trans-decl.c (generate_coarray_sym_init): Call nullify_alloc_comp for
	derived type coarrays with pointer components.
	* trans-expr.c (gfc_trans_structure_assign): Also treat pointer
	components.
	(trans_caf_token_assign): Handle assignment of token of scalar pointer
	components.
	(gfc_trans_pointer_assignment): Call above routine.
	* trans-intrinsic.c (conv_expr_ref_to_caf_ref): Add treating pointer
	components.
	(gfc_conv_intrinsic_caf_get): Likewise.
	(conv_caf_send): Likewise.
	* trans-stmt.c (gfc_trans_allocate): After allocating a derived type in
	a coarray pre-register the tokens.
	(gfc_trans_deallocate): Simply determining the coarray type (scalar or
	array) and deregistering it correctly.
	* trans-types.c (gfc_typenode_for_spec): Replace in_coarray flag by the
	actual codim to allow lookup of array types in the cache.
	(gfc_build_array_type): Likewise.
	(gfc_get_array_descriptor_base): Likewise.
	(gfc_get_array_type_bounds): Likewise.
	(gfc_get_derived_type): Likewise.
	* trans-types.h: Likewise.
	* trans.c (gfc_deallocate_with_status): Enable deregistering of all kind
	of coarray components.
	(gfc_deallocate_scalar_with_status): Use free() in fcoarray_single mode
	instead of caf_deregister.

libgfortran/ChangeLog:

2017-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/78781
	PR fortran/78935
	* caf/single.c (send_by_ref): Fix addressing of non-allocatable scalar
	destination components.

gcc/testsuite/ChangeLog:

2017-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>

	* gfortran.dg/coarray/ptr_comp_1.f08: New test.
	* gfortran.dg/coarray/ptr_comp_2.f08: New test.
	* gfortran.dg/coarray/ptr_comp_3.f08: New test.
	* gfortran.dg/coarray/ptr_comp_4.f08: New test.
	* gfortran.dg/coarray_ptr_comp_1.f08: New test.
	* gfortran.dg/coarray_ptr_comp_2.f08: New test.
	* gfortran.dg/coarray_ptr_comp_3.f08: New test.

From-SVN: r244196
2017-01-07 18:26:58 +01:00
Jakub Jelinek 0fc08a17f0 re PR translation/79018 (translatable string typo in params.def:1105)
PR translation/79018
	* params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
	the and store.

From-SVN: r244195
2017-01-07 09:37:06 +01:00
GCC Administrator ebeba0306a Daily bump.
From-SVN: r244191
2017-01-07 00:16:13 +00:00
Joseph Myers 168a6d4935 * fr.po: Update.
From-SVN: r244187
2017-01-06 22:20:46 +00:00
Jonathan Wakely 3330ac383c Add more tests for std::basic_string::find
* testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
	* testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.

From-SVN: r244185
2017-01-06 21:22:40 +00:00
Mikael Pettersson c24900be6b re PR target/57583 (large switches with jump tables are horribly broken on m68k)
2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>

	PR target/57583
	* config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
	* config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
	TARGET_LONG_JUMP_TABLE_OFFSETS.
	* config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
	* config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
	* config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
	(ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
	* config/m68k/m68k.md (tablejump expander): Likewise.
	(*tablejump_pcrel_hi): Renamed from unnamed insn, reject
	TARGET_LONG_JUMP_TABLE_OFFSETS.
	(*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
	* doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.

From-SVN: r244184
2017-01-06 14:21:02 -07:00
Edgar E. Iglesias b69195a0f4 Make MicroBlaze support DWARF EH (old Xilinx patch, needed for glibc build).
This patch, taken from
<https://git.busybox.net/buildroot/tree/package/gcc/5.4.0/840-microblaze-enable-dwarf-eh-support.patch>
and with a few formatting cleanups and an update for the removal of
gen_rtx_raw_REG, enables DWARF EH support for MicroBlaze.

This is needed for building glibc with a compiler that includes shared
libgcc; right now all glibc builds for MicroBlaze are failing with my
bot for lack of this support.  (It's dubious if we should have glibc
ports at all where required support is missing in FSF GCC.)

Tested building glibc with build-many-glibcs.py.  I have *not* done
any other testing or any execution testing for MicroBlaze.

2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
	    David Holsgrove <david.holsgrove@xilinx.com>

	* common/config/microblaze/microblaze-common.c
	(TARGET_EXCEPT_UNWIND_INFO): Remove.
	* config/microblaze/microblaze-protos.h (microblaze_eh_return):
	New prototype.
	* config/microblaze/microblaze.c (microblaze_must_save_register)
	(microblaze_expand_epilogue, microblaze_return_addr): Handle
	calls_eh_return.
	(microblaze_eh_return): New function.
	* config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
	(EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
	(EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
	* config/microblaze/microblaze.md (eh_return): New pattern.

Co-Authored-By: David Holsgrove <david.holsgrove@xilinx.com>

From-SVN: r244183
2017-01-06 20:54:34 +00:00
Jakub Jelinek 75213cc0e4 system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, [...]): Define.
* system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
	GCC_DIAGNOSTIC_STRINGIFY): Define.

	* simplify.c (simplify_transformation_to_array): Use
	GCC_DIAGNOSTIC_PUSH_IGNORED and GCC_DIAGNOSTIC_POP instead of
	#pragma GCC diagnostic {push,ignored,pop}.

From-SVN: r244179
2017-01-06 19:41:23 +01:00
Jakub Jelinek 9a38f84e27 read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
* read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare
	warning.

From-SVN: r244178
2017-01-06 19:40:31 +01:00
Aaron Sawdey f55a925e02 memcmp-1.c: New.
2017-01-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
	* gcc.dg/memcmp-1.c: New.
	* gcc.dg/strncmp-1.c: New.
New testcases to check that builtin expansion of memcmp and strncmp works properly.

From-SVN: r244177
2017-01-06 12:06:35 -06:00
Jonathan Wakely 3907f9e59c Add missing <cassert> include to testcase
* testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
	Include <cassert> header.

From-SVN: r244176
2017-01-06 17:51:24 +00:00
Andre Vieira f3caa11824 [ARM] Implement support for ACLE Coprocessor MCRR and MRRC intrinsics
gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/arm/arm.md (<mcrr>): New.
	(<mrrc>): New.
	* config/arm/arm.c (arm_arch5te): New.
	(arm_option_override): Set arm_arch5te.
	(arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
	and mrrc2.
	* config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
	(arm_mcrr_qualifiers): ... this. New.
	(MRRC_QUALIFIERS): Define to...
	(arm_mrrc_qualifiers): ... this. New.
	* config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
	__arm_mrrc2): New.
	* config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
	* config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
	(MRRCI, mrrc, MRRC): New.
	* config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
	VUNSPEC_MRRC2): New.

gcc/testsuite/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* gcc.target/arm/acle/mcrr: New.
	* gcc.target/arm/acle/mcrr2: New.
	* gcc.target/arm/acle/mrrc: New.
	* gcc.target/arm/acle/mrrc2: New.

From-SVN: r244175
2017-01-06 17:49:12 +00:00
Andre Vieira ecc9a25b97 [ARM] Implement support for ACLE Coprocessor MCR and MRC intrinsics
gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/arm/arm.md (<mcr>): New.
	(<mrc>): New.
	* config/arm/arm.c (arm_coproc_builtin_available): Add
	support for mcr, mrc, mcr2 and mrc2.
	* config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
	(arm_mcr_qualifiers): ... this. New.
	(MRC_QUALIFIERS): Define to ...
	(arm_mrc_qualifiers): ... this. New.
	(MCR_QUALIFIERS): Define to ...
	(arm_mcr_qualifiers): ... this. New.
	* config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
	__arm_mrc2): New.
	* config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
	* config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
	* config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
	VUNSPEC_MRC2): New.

gcc/testsuite/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* gcc.target/arm/acle/mcr.c: New.
	* gcc.target/arm/acle/mrc.c: New.
	* gcc.target/arm/acle/mcr2.c: New.
	* gcc.target/arm/acle/mrc2.c: New.

From-SVN: r244174
2017-01-06 17:40:50 +00:00
Andre Vieira 3811581f8b [ARM] Implement support for ACLE Coprocessor LDC and STC intrinsics
gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/arm/arm.md (*ldc): New.
	(*stc): New.
	(<ldc>): New.
	(<stc>): New.
	* config/arm/arm.c (arm_coproc_builtin_available): Add
	support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
	(arm_coproc_ldc_stc_legitimate_address): New.
	* config/arm/arm-builtins.c (arm_type_qualifiers): Add
	'qualifier_const_pointer'.
	(LDC_QUALIFIERS): Define to...
	(arm_ldc_qualifiers): ... this. New.
	(STC_QUALIFIERS): Define to...
	(arm_stc_qualifiers): ... this. New.
	* config/arm/arm-protos.h
	(arm_coproc_ldc_stc_legitimate_address): New.
	* config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
	__arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
	* config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
	stc2, stcl, stc2l): New.
	* config/arm/constraints.md (Uz): New.
	* config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
	* config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
	VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
	VUNSPEC_STC2L): New.

gcc/testsuite/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* gcc.target/arm/acle/ldc: New.
	* gcc.target/arm/acle/ldc2: New.
	* gcc.target/arm/acle/ldcl: New.
	* gcc.target/arm/acle/ldc2l: New.
	* gcc.target/arm/acle/stc: New.
	* gcc.target/arm/acle/stc2: New.
	* gcc.target/arm/acle/stcl: New.
	* gcc.target/arm/acle/stc2l: New.

From-SVN: r244173
2017-01-06 17:37:39 +00:00
Andre Vieira d57daa0c9d [ARM] Implement support for ACLE Coprocessor CDP intrinsics
gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/arm/arm.md (<cdp>): New.
	* config/arm/arm.c (neon_const_bounds): Rename this ...
	(arm_const_bounds): ... this.
	(arm_coproc_builtin_available): New.
	* config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
	(arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
	(CDP_QUALIFIERS): Define to...
	(arm_cdp_qualifiers): ... this. New.
	(void_UP): Define.
	(arm_expand_builtin_args): Add case for 6 arguments.
	* config/arm/arm-protos.h (neon_const_bounds): Rename this ...
	(arm_const_bounds): ... this.
	(arm_coproc_builtin_available): New.
	* config/arm/arm_acle.h (__arm_cdp): New.
	(__arm_cdp2): New.
	* config/arm/arm_acle_builtins.def (cdp): New.
	(cdp2): New.
	* config/arm/iterators.md (CDPI,CDP,cdp): New.
	* config/arm/neon.md: Rename all 'neon_const_bounds' to
	'arm_const_bounds'.
	* config/arm/types.md (coproc): New.
	* config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
	* gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
	* gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
	arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.

gcc/testsuite/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* gcc.target/arm/acle/acle.exp: Run tests for different options
	and make sure fat-lto-objects is used such that we can still do
	assemble scans.
	* gcc.target/arm/acle/cdp.c: New.
	* gcc.target/arm/acle/cdp2.c: New.
	* lib/target-supports.exp (check_effective_target_arm_coproc1_ok): New.
	(check_effective_target_arm_coproc1_ok_nocache): New.
	(check_effective_target_arm_coproc2_ok): New.
	(check_effective_target_arm_coproc2_ok_nocache): New.
	(check_effective_target_arm_coproc3_ok): New.
	(check_effective_target_arm_coproc3_ok_nocache): New.
	(check_effective_target_arm_coproc4_ok): New.
	(check_effective_target_arm_coproc4_ok_nocache): New.

From-SVN: r244172
2017-01-06 17:35:23 +00:00
Andre Vieira 7a2c8e28bd [ARM] Move CRC builtins to refactored framework
gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
	(UBINOP_QUALIFIERS): New.
	(si_UP): Define.
	(acle_builtin_data): New. Change comment.
	(arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
	ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
	ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
	arm_acle_builtins.def.
	(ARM_BUILTIN_ACLE_PATTERN_START): Define.
	(arm_init_acle_builtins): New.
	(CRC32_BUILTIN): Remove.
	(bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
	crc32cb, crc32ch and crc32cw.
	(arm_init_crc32_builtins): Remove.
	(arm_init_builtins): Use arm_init_acle_builtins rather
	than arm_init_crc32_builtins.
	(arm_expand_acle_builtin): New.
	(arm_expand_builtin): Use 'arm_expand_acle_builtin'.
	* config/arm/arm_acle_builtins.def: New.

From-SVN: r244171
2017-01-06 17:28:47 +00:00
Andre Vieira 131e1faa22 [ARM] Refactor NEON builtin framework to work for other builtins
gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
	(arm_builtin_datum): ... this.
	(arm_init_neon_builtin): Rename to ...
	(arm_init_builtin): ... this. Add a new parameters PREFIX
	and USE_SIG_IN_NAME.
	(arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
	'arm_init_builtin'. Replace type 'neon_builtin_datum' with
	'arm_builtin_datum'.
	(arm_init_vfp_builtins): Likewise.
	(builtin_arg): Rename enum's replacing 'NEON_ARG' with
	'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
	(arm_expand_neon_args): Rename to ...
	(arm_expand_builtin_args): ... this. Rename builtin_arg
	enum values and differentiate between ARG_BUILTIN_MEMORY
	and ARG_BUILTIN_NEON_MEMORY.
	(arm_expand_neon_builtin_1): Rename to ...
	(arm_expand_builtin_1): ... this. Rename builtin_arg enum
	values, arm_expand_builtin_args and add bool parameter NEON.
	(arm_expand_neon_builtin): Use arm_expand_builtin_1.
	(arm_expand_vfp_builtin): Likewise.
	(NEON_MAX_BUILTIN_ARGS): Remove, it was unused.

From-SVN: r244170
2017-01-06 17:26:11 +00:00
Jonathan Wakely ea4ad78e2c Check for __cxa_thread_atexit for freebsd crosses
PR libstdc++/78968
	* crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
	* configure: Regenerate.

From-SVN: r244169
2017-01-06 17:06:24 +00:00
Jan Hubicka 834a27157d Fix changelog entry.
From-SVN: r244168
2017-01-06 16:16:49 +00:00
Jan Hubicka 350de209bf re PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000 GAP)
PR middle-end/77484
	* predict.def (PRED_POLYMORPHIC_CALL): Set to 58
	* predict.c (tree_estimate_probability_bb): Reverse direction of
	polymorphic call predictor.

From-SVN: r244167
2017-01-06 16:10:09 +00:00
Ian Lance Taylor 12e917fff2 runtime: actually remove go-alloc.h
Accidentally omitted from the commit of CL 34797 (SVN revision 244036).

From-SVN: r244166
2017-01-06 16:06:42 +00:00
Ian Lance Taylor 08934aed39 re PR go/78978 (runtime/pprof FAILs on Solaris 2/x86)
PR go/78978
    libgo: build with -Wa,-nH if possible on Solaris
    
    By default the Solaris assembler records the required hardware
    capability in the object file.  This means that the AES hashing code
    breaks on systems that do not support AES, even though the code uses a
    runtime check to only actually invoke the AES instructions on systems
    that support it.  An earlier fix for the problem only fixed the shared
    library, not the static libgo.a.  Fix the problem for real by using an
    assembler option to not record the hardware capability.
    
    For GCC PR 78978.
    
    Patch by Rainer Orth.
    
    Reviewed-on: https://go-review.googlesource.com/34910

From-SVN: r244165
2017-01-06 16:04:01 +00:00
Martin Sebor 8a123229ae PR middle-end/78605 - bogus -Wformat-length=1 with %f
gcc/testsuite/ChangeLog:
	* gcc.dg/tree-ssa/pr78605.c: New test.

From-SVN: r244164
2017-01-06 08:45:42 -07:00
Barrett Adair 258ee761eb Use fold expressions to reduce std::variant instantiation depth
2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* include/std/variant (variant, swap): Replace __and_ usage with fold
	expressions.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>

From-SVN: r244163
2017-01-06 15:27:01 +00:00
Rainer Orth 1ec62aa9e1 Build libgo with -Wa,-nH if possible (PR go/78978) [non-libgo parts]
libstdc++-v3:
	PR go/78978
	* acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
	* configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
	GLIBCXX_CHECK_ASSEMBLER_HWCAP.
	* fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
	HWCAP_FLAGS.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in, doc/Makefile.in, include/Makefile.in,
	libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
	src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
	src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.

	config:
	PR go/78978
	* hwcaps.m4 (GCC_CHECK_ASSEMBLER_HWCAP): New macro.

From-SVN: r244162
2017-01-06 14:33:47 +00:00
David Malcolm bad86e8d42 passes.c: split out pass-skipping logic into subroutines
gcc/ChangeLog:
	* passes.c (execute_one_pass): Split out pass-skipping logic
	into...
	(determine_pass_name_match): ...this new function and...
	(should_skip_pass_p): ...this new function.

From-SVN: r244160
2017-01-06 14:15:20 +00:00
Nathan Sidwell 5406184ce7 lto-partition.c (promote_symbol): Write to dump file sooner, include alias promoting too.
* lto-partition.c (promote_symbol): Write to dump file sooner,
	include alias promoting too.

From-SVN: r244159
2017-01-06 14:08:02 +00:00
Nathan Sidwell 24d3f3251c ipa-visibility.c (function_and_variable_visibility): Reformat comments and long lines.
gcc/
	* ipa-visibility.c (function_and_variable_visibility): Reformat
	comments and long lines.  Remove extrneous if.
	* symtab.c (symtab_node::make_decl_local): Fix code format.
	(symtab_node::set_section_for_node): Fix comment typo.

	gcc/lto/
	* lto-partition.c (lto_balanced_map): Reformat/respell comment.
	(may_need_named_section_p): Likewise.
	(rename_statics): Likewise.
	(lto_promote_cross_file_statics): Likewise.

From-SVN: r244156
2017-01-06 14:04:05 +00:00
Martin Liska eb0f878074 Fix lto-bootstrap (PR bootstrap/79003).
2017-01-06  Martin Liska  <mliska@suse.cz>

	PR bootstrap/79003
	* lra-constraints.c: Rename invariant to lra_invariant.
	* predict.c (set_even_probabilities): Initialize e to NULL.
2017-01-06  Martin Liska  <mliska@suse.cz>

	PR bootstrap/79003
	* Makefile.in: Add -fno-lto to {C,CPP,LD}FLAGS.

From-SVN: r244155
2017-01-06 13:56:48 +00:00
Arnaud Charlet b41f45e7a5 [multiple changes]
2017-01-06  Bob Duff  <duff@adacore.com>

	* bindgen.adb (Gen_Adainit, Gen_Adafinal): Change
	"Bind_Main_Program" to "not Bind_For_Library", because otherwise
	we won't generate the call to s_stalib_adafinal when the main
	is not written in Ada.

2017-01-06  Bob Duff  <duff@adacore.com>

	* sem_prag.adb: Minor: remove pragma Warnings.

2017-01-06  Tristan Gingold  <gingold@adacore.com>

	* Makefile.rtl: Do not compile s-stchop by default.

From-SVN: r244154
2017-01-06 14:28:43 +01:00
Jonathan Wakely 8b790281d5 Don't redefine _GLIBCXX_ASSERTIONS if already defined
* include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.

From-SVN: r244151
2017-01-06 12:34:11 +00:00
Jonathan Wakely 6807f08628 PR78991 make __gnu_cxx::__ops constructors explicit
PR libstdc++/78991
	* include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
	(_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
	(_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
	move function objects.
	(__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
	(__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
	* testsuite/25_algorithms/sort/78991.cc: New test.

From-SVN: r244150
2017-01-06 12:33:58 +00:00
Arnaud Charlet 88456bc19d Minor reformatting.
From-SVN: r244149
2017-01-06 13:06:54 +01:00
Patrick Bernardi eae66578ce aspects.adb, [...]: Reverted previous change for now.
2017-01-06  Patrick Bernardi  <bernardi@adacore.com>

	* aspects.adb, aspects.ads, exp_ch3.adb, exp_ch9.adb, par-prag.adb,
	sem_ch13.adb, sem_prag.adb, sem_prag.ads, snames.adb-tmpl,
	snames.ads-tmpl, s-secsta.adb, s-secsta.ads, s-tarest.adb,
	s-tarest.ads, s-taskin.adb, s-taskin.ads, s-tassta.adb, s-tassta.ads:
	Reverted previous change for now.

From-SVN: r244148
2017-01-06 13:06:41 +01:00
Ed Schonberg e666e74478 exp_ch3.adb (Build_Initialization_Call): Apply predicate check to default discriminant value if checks are enabled.
2017-01-06  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Build_Initialization_Call): Apply predicate
	check to default discriminant value if checks are enabled.
	(Build_Assignment): If type of component has static predicate,
	apply check to its default value, if any.

From-SVN: r244147
2017-01-06 13:04:33 +01:00
Patrick Bernardi 73bfca7886 aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size.
2017-01-06  Patrick Bernardi  <bernardi@adacore.com>

	* aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size.
	* exp_ch3.adb (Build_Init_Statements): As part of initialising
	the value record of a task, set its _Secondary_Stack_Size field
	if present.
	* exp_ch9.adb (Expand_N_Task_Type_Declaration): Create
	a _Secondary_Stack_Size field in the value record of
	the task if a Secondary_Stack_Size rep item is present.
	(Make_Task_Create_Call): Include secondary stack size
	parameter. If No_Secondary_Stack restriction is in place, passes
	stack size of 0.
	* par-prag.adb, sem_prag.adb, sem_prag.ads: Added new pragma
	Secondary_Stack_Size.
	* s-secsta.adb, s-secsta.ads (Minimum_Secondary_Stack_Size): New
	function to define the overhead of the secondary stack.
	* s-tarest.adb (Create_Restricted_Task,
	Create_Restricted_Task_Sequential): Functions now include
	Secondary_Stack_Size parameter to pass to Initialize_ATCB.
	* s-tarest.adb (Create_Restricted_Task,
	Create_Restricted_Task_Sequential): Calls to Initialize_ATCB
	now include Secondary_Stack_Size parameter.
	(Task_Wrapper):
	Secondary stack now allocated to the size specified by the
	Secondary_Stack_Size parameter in the task's ATCB.
	* s-taskin.adb, s-taskin.adb (Common_ATCB, Initialise_ATCB): New
	Secondary_Stack_Size component.
	* s-tassta.adb, s-tassta.ads (Create_Restricted_Task,
	Create_Restricted_Task_Sequential): Function now include
	Secondary_Stack_Size parameter.
	(Task_Wrapper): Secondary stack
	now allocated to the size specified by the Secondary_Stack_Size
	parameter in the task's ATCB.
	* sem_ch13.adb (Analyze_Aspect_Specification): Add support
	for Secondary_Stack_Size aspect, turning the aspect into its
	corresponding internal attribute.
	(Analyze_Attribute_Definition):
	Process Secondary_Stack_Size attribute.
	* snames.adb-tmpl, snames.ads-tmpl: Added names
	Name_Secondary_Stack_Size, Name_uSecondary_Stack_Size,
	Attribute_Secondary_Stack_Size and Pragma_Secondary_Stack_Size.

From-SVN: r244146
2017-01-06 13:02:09 +01:00
Pascal Obry f6c5454e6b a-direio.adb, [...]: Add Flush to Sequential_IO and Direct_IO.
2017-01-06  Pascal Obry  <obry@adacore.com>

	* a-direio.adb, a-direio.ads, a-sequio.adb, a-sequio.ads: Add Flush to
	Sequential_IO and Direct_IO.

From-SVN: r244145
2017-01-06 12:58:56 +01:00
Bob Duff 533e3abc48 snames.ads-tmpl (Renamed): New name for the pragma argument.
2017-01-06  Bob Duff  <duff@adacore.com>

	* snames.ads-tmpl (Renamed): New name for the pragma argument.
	* par-ch2.adb: Allow the new pragma (with analysis deferred
	to Sem_Prag).
	* sinfo.ads, sinfo.adb (Map_Pragma_Name, Pragma_Name_Mapped):
	Keep a mapping from new pragma names to old names.
	* sem_prag.adb: Check legality of pragma Rename_Pragma, and
	implement it by calling Map_Pragma_Name.
	* checks.adb, contracts.adb, einfo.adb, errout.adb,
	* exp_attr.adb, exp_ch3.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
	* exp_prag.adb, exp_util.adb, freeze.adb, frontend.adb, ghost.adb,
	* inline.adb, lib-writ.adb, scans.adb, scans.ads, sem_attr.adb,
	* sem_aux.adb, sem_ch10.adb, sem_ch13.adb, sem_ch6.adb, sem_ch9.adb,
	* sem_elab.adb, sem_res.adb, sem_util.adb, sem_util.ads,
	* sem_warn.adb: Call Pragma_Name_Mapped instead of Pragma_Name
	as appropriate.

From-SVN: r244144
2017-01-06 12:56:16 +01:00
Hristian Kirtchev a62e6287d9 exp_ch9.adb: Minor reformatting.
2017-01-06  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch9.adb: Minor reformatting.

From-SVN: r244143
2017-01-06 12:54:00 +01:00
Tristan Gingold dbf2a2d34a exp_ch9.ads, [...] (Build_Entry_Names): Remove (unused).
2017-01-06  Tristan Gingold  <gingold@adacore.com>

	* exp_ch9.ads, exp_ch9.adb (Build_Entry_Names): Remove (unused).
	* rtsfind.ads (RE_Task_Entry_Names_Array, RO_ST_Set_Entry_Names)
	(RE_Protected_Entry_Names_Array, RO_PE_Set_Entry_Names): Remove
	(unused).
	* s-taskin.ads, s-taskin.adb (Set_Entry_Names,
	Task_Entry_Names_Array, Task_Entry_Names_Access): Remove.
	* s-tpoben.ads, s-tpoben.adb (Set_Entry_Names,
	Protected_Entry_Names_Array, Protected_Entry_Names_Access): Remove.

From-SVN: r244142
2017-01-06 12:50:15 +01:00