Commit Graph

157136 Commits

Author SHA1 Message Date
Wilco Dijkstra
b832b29f65 Remove DImode expansions for 1-bit shifts
A left shift of 1 can always be done using an add, so slightly adjust rtx
cost for DImode left shift by 1 so that adddi3 is preferred in all cases,
and the arm_ashldi3_1bit is redundant.

DImode right shifts of 1 are rarely used (6 in total in the GCC binary),
so there is little benefit of the arm_ashrdi3_1bit and arm_lshrdi3_1bit
patterns.  The generated code is better and faster without these shifts
as it allows early expansion, optimization and better register allocation.

    gcc/
	* config/arm/arm.md (ashldi3): Remove shift by 1 expansion.
	(arm_ashldi3_1bit): Remove pattern.
	(ashrdi3): Remove shift by 1 expansion.
	(arm_ashrdi3_1bit): Remove pattern.
	(lshrdi3): Remove shift by 1 expansion.
	(arm_lshrdi3_1bit): Remove pattern.
	* config/arm/arm.c (arm_rtx_costs_internal): Slightly increase
	cost of ashldi3 by 1.
	* config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion.
	(<shift>di3_neon): Likewise.

From-SVN: r254237
2017-10-30 18:46:02 +00:00
Dominik Infuehr
0d1cf53834 Wrong type-attribute for stp and str
Fix the type attributes of the integer stores in aarch64_simd_mov.

    gcc/
	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
	both identically named patterns to (*aarch64_simd_mov<VD:mode>)
	and (*aarch64_simd_mov<VQ:mode>).
	(*aarch64_simd_mov<VD:mode>): Change type attribute to match
	pattern alternative.
	(*aarch64_simd_mov<VQ:mode>): Re-order and change type
	attributes to match pattern alternative.

From-SVN: r254236
2017-10-30 18:35:32 +00:00
Steven Munroe
daff6cdf8e Part 2/2 for contributing PPC64LE support for X86 SSE2 instrisics.
This patch includes testsuite/gcc.target tests for the intrinsics
in emmintrin.h.  For these tests I added -Wno-psabi to dg-options
to suppress warnings associated with the vector ABI change in GCC5.

From-SVN: r254235
2017-10-30 18:32:07 +00:00
Steven Munroe
09359ea364 Part 1/2 for contributing PPC64LE support for X86 SSE2 instrisics.
Part 1/2 for contributing PPC64LE support for X86 SSE2
instrisics. This patch includes the new (for PPC) emmintrin.h,
changes x86intrin.h to include xmmintrin.h, and associated
config.gcc changes.

From-SVN: r254234
2017-10-30 18:28:36 +00:00
Wilco Dijkstra
1df07b3da8 backport: unnecessary duplication and repeating bugs like PR78439 due to changes being applied only to one of the duplicates.
Merge the movdi_vfp_cortexa8 pattern into movdi_vfp and remove it to avoid
unnecessary duplication and repeating bugs like PR78439 due to changes being
applied only to one of the duplicates.

    gcc/
        * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8.
        * (movdi_vfp_cortexa8): Remove pattern.

From-SVN: r254233
2017-10-30 18:01:59 +00:00
Rainer Orth
863db6b6b2 Remove Tru64 UNIX and IRIX references in install.texi
* doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1
	etc. reference.
	(Specific, alpha*-dec-osf5.1): Remove.
	(Specific, mips-sgi-irix5): Remove.
	(Specific, mips-sgi-irix6): Remove.

From-SVN: r254230
2017-10-30 16:43:40 +00:00
Jonathan Wakely
97b99f9c77 Don't create broken symlink in libstdc++-v3/include/bits
* include/Makefile.am (stamp-bits-sup): Do not create broken symlink
	to stamp-bits.
	* include/Makefile.in: Regenerate.

From-SVN: r254229
2017-10-30 16:28:13 +00:00
Jakub Jelinek
4403d99aef re PR middle-end/22141 (Missing optimization when storing structures)
PR middle-end/22141
	* gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix
	arguments to clear_bit_region_be.

From-SVN: r254228
2017-10-30 17:20:24 +01:00
James E Wilson
6b139f0d93 Fix ia64 build failure.
gcc/
	* gimplify.c: Include memmodel.h.

From-SVN: r254227
2017-10-30 08:38:30 -07:00
Jonathan Wakely
0a6e98b78b Remove ios_mode::trunc from basic_ofstream openmode arguments
* include/std/fstream (basic_ifstream, basic_ofstream, basic_fstream):
	Remove outdated comments about calling c_str() to create a file stream
	from a std::string.
	(basic_ofstream::basic_ofstream, basic_ofstream::open): Remove
	redundant ios_mode::trunc bits from default arguments and comments.

From-SVN: r254226
2017-10-30 15:35:02 +00:00
Martin Jambor
791929c91a [hsa] Add missing guard in OMP gridification
2017-10-30  Martin Jambor  <mjambor@suse.cz>

	* omp-grid.c (grid_attempt_target_gridification): Also insert a
	condition whether loop should be executed at all.

From-SVN: r254225
2017-10-30 16:07:20 +01:00
Jonathan Wakely
932bfa9bc7 Minor tweak to libstdc++ FAQ
* doc/xml/faq.xml: Adjust "What is libstdc++?" answer slightly.

From-SVN: r254224
2017-10-30 14:56:23 +00:00
Jonathan Wakely
02a2c6303f Minor header reorganization for unordered containers
* include/bits/hashtable_policy.h: Include <tuple>.
	* include/std/unordered_map: Only include <bits/stl_pair.h> instead
	of <utility> and <tuple>.
	* include/std/unordered_set: Likewise.

From-SVN: r254223
2017-10-30 14:54:28 +00:00
Ville Voutilainen
ccbbf8df05 Implement LWG 2485
* include/debug/array (get(const array<_Tp, _Nm>&&)): New.
* include/std/array (get(const array<_Tp, _Nm>&&)): Likewise.
* include/std/tuple (get(const tuple<_Elements...>&&)): Likewise.
(get(const tuple<_Types...>&&)): Likewise.
* include/std/utility
(__pair_get::__const_move_get(const std::pair<_Tp1, _Tp2>&&)):
Likewise.
(get(const std::pair<_Tp1, _Tp2>&&)): Likewise.
(get(const pair<_Tp, _Up>&&)): Likewise.
(get(const pair<_Up, _Tp>&&)): Likewise.
* testsuite/20_util/pair/astuple/get.cc: Add tests for
new overloads.
* testsuite/20_util/pair/astuple/get_by_type.cc: Likewise.
* testsuite/20_util/tuple/element_access/get2.cc: Likewise.
* testsuite/20_util/tuple/element_access/get2_by_type.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/get.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/tuple_element_debug_neg.cc:
Adjust.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.

From-SVN: r254222
2017-10-30 16:31:04 +02:00
Will Schmidt
198a8e3cc5 rs6000.c (rs6000_gimple_fold_builtin): Add support for gimple folding of vec_madd() intrinsics.
[gcc]

2017-10-30  Will Schmidt <will_schmidt@vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
	gimple folding of vec_madd() intrinsics.
	* config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to
	fmav8hi4.  (altivec_vmladduhm): Rename to fmav8hi4.
	* config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4

From-SVN: r254221
2017-10-30 14:10:17 +00:00
Will Schmidt
78effffca5 fold-vec-perm-longlong.c: Update to use long long types for testcase arguments.
2017-10-30  Will Schmidt  <will_schmidt@vnet.ibm.com>

	* gcc.target/powerpc/fold-vec-perm-longlong.c: Update to use long long
	types for testcase arguments.

From-SVN: r254220
2017-10-30 14:03:15 +00:00
Richard Biener
bfe6f07666 re PR lto/82757 (r251560 causes: plugin needed to handle lto object)
2017-10-30  Richard Biener  <rguenther@suse.de>

	PR lto/82757
	* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
	Strip two leading _s from the __gnu_lto_* symbols.

From-SVN: r254219
2017-10-30 12:48:53 +00:00
Richard Biener
51a9f20ca9 revert: [multiple changes]
2017-10-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82762
	Revert
	2017-10-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82129
	Revert
	2017-08-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/81181
	* tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
	(compute_antic): ... end of iteration here.

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

From-SVN: r254218
2017-10-30 12:45:53 +00:00
Richard Biener
c113686443 gimple-parser.c (c_parser_gimple_statement): Parse conditional stmts.
2017-10-30  Richard Biener  <rguenther@suse.de>

	c/
	* gimple-parser.c (c_parser_gimple_statement): Parse conditional
	stmts.

	* gcc.dg/gimplefe-27.c: New testcase.

From-SVN: r254217
2017-10-30 12:43:45 +00:00
Joseph Myers
c76dc9c32d Add -std=c17, -std=gnu17.
C17, a bug-fix version of the C11 standard with DR resolutions
integrated, will soon go to ballot.  This patch adds corresponding
options -std=c17, -std=gnu17 (new default version, replacing
-std=gnu11 as the default), -std=iso9899:2017.  As a bug-fix version
of the standard, there is no need for flag_isoc17 or any options for
compatibility warnings; however, there is a new __STDC_VERSION__
value, so new cpplib languages CLK_GNUC17 and CLK_STDC17 are added to
support using that new value with the new options.  (If the standard
ends up being published in 2018 and being known as C18, option aliases
can be added.  Note however that -std=iso9899:199409 corresponds to a
__STDC_VERSION__ value rather than a publication date.)

(There are a couple of DR resolutions needing implementing in GCC, but
that's independent of the new options.)

(I'd propose to add -std=c2x / -std=gnu2x / -Wc11-c2x-compat for the
next major C standard revision once there are actually C2x drafts
being issued with new features included.)

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

gcc:
	* doc/invoke.texi (C Dialect Options): Document -std=c17,
	-std=iso9899:2017 and -std=gnu17.
	* doc/standards.texi (C Language): Document C17 support.
	* doc/cpp.texi (Overview): Mention -std=c17.
	(Standard Predefined Macros): Document C11 and C17 values of
	__STDC_VERSION__.  Do not refer to C99 support as incomplete.
	* doc/extend.texi (Inline): Do not list individual options for
	standards newer than C99.
	* dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle
	"GNU C17".
	* config/rl78/rl78.c (rl78_option_override): Handle "GNU C17"
	language name.

gcc/c-family:
	* c.opt (std=c17, std=gnu17, std=iso9899:2017): New options.
	* c-opts.c (set_std_c17): New function.
	(c_common_init_options): Use gnu17 as default C version.
	(c_common_handle_option): Handle -std=c17 and -std=gnu17.

gcc/testsuite:
	* gcc.dg/c17-version-1.c, gcc.dg/c17-version-2.c: New tests.

libcpp:
	* include/cpplib.h (enum c_lang): Add CLK_GNUC17 and CLK_STDC17.
	* init.c (lang_defaults): Add GNUC17 and STDC17 data.
	(cpp_init_builtins): Handle C17 value of __STDC_VERSION__.

From-SVN: r254216
2017-10-30 12:17:40 +00:00
Maxim Ostapenko
aa650b6410 asan.c (asan_finish_file): Align asan globals array by shadow granularity.
2017-10-30  Maxim Ostapenko  <m.ostapenko@samsung.com>

	* asan.c (asan_finish_file): Align asan globals array by shadow
	granularity.

From-SVN: r254214
2017-10-30 13:09:44 +02:00
Jakub Jelinek
a62b3dc5f9 re PR middle-end/22141 (Missing optimization when storing structures)
PR middle-end/22141
	* gimple-ssa-store-merging.c: Include rtl.h and expr.h.
	(struct store_immediate_info): Add bitregion_start and bitregion_end
	fields.
	(store_immediate_info::store_immediate_info): Add brs and bre
	arguments and initialize bitregion_{start,end} from those.
	(struct merged_store_group): Add bitregion_start, bitregion_end,
	align_base and mask fields.  Drop unnecessary struct keyword from
	struct store_immediate_info.  Add do_merge method.
	(clear_bit_region_be): Use memset instead of loop storing zeros.
	(merged_store_group::do_merge): New method.
	(merged_store_group::merge_into): Use do_merge.  Allow gaps in between
	stores as long as the surrounding bitregions have no gaps.
	(merged_store_group::merge_overlapping): Use do_merge.
	(merged_store_group::apply_stores): Test that bitregion_{start,end}
	is byte aligned, rather than requiring that start and width are
	byte aligned.  Drop unnecessary struct keyword from
	struct store_immediate_info.  Allocate and populate also mask array.
	Make start of the arrays relative to bitregion_start rather than
	start and size them according to bitregion_{end,start} difference.
	(struct imm_store_chain_info): Drop unnecessary struct keyword from
	struct store_immediate_info.
	(pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8.
	(pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary
	struct keyword from struct store_immediate_info.
	(imm_store_chain_info::coalesce_immediate_stores): Allow gaps in
	between stores as long as the surrounding bitregions have no gaps.
	Formatting fixes.
	(struct split_store): Add orig non-static data member.
	(split_store::split_store): Initialize orig to false.
	(find_constituent_stmts): Return store_immediate_info *, non-NULL
	if there is exactly a single original stmt.  Change stmts argument
	to pointer from reference, if NULL, don't push anything to it.  Add
	first argument, use it to optimize skipping over orig stmts that
	are known to be before bitpos already.  Simplify.
	(split_group): Return unsigned int count how many stores are or
	would be needed rather than a bool.  Add allow_unaligned argument.
	Change split_stores argument from reference to pointer, if NULL,
	only do a dry run computing how many stores would be produced.
	Rewritten algorithm to use both alignment and misalign if
	!allow_unaligned and handle bitfield stores with gaps.
	(imm_store_chain_info::output_merged_store): Set start_byte_pos
	from bitregion_start instead of start.  Compute allow_unaligned
	here, if true, do 2 split_group dry runs to compute which one
	produces fewer stores and prefer aligned if equal.  Punt if
	new count is bigger or equal than original before emitting any
	statements, rather than during that.  Remove no longer needed
	new_ssa_names tracking.  Replace num_stmts with
	split_stores.length ().  Use 32-bit stack allocated entries
	in split_stores auto_vec.  Try to reuse original store lhs/rhs1
	if possible.  Handle bitfields with gaps.
	(pass_store_merging::execute): Ignore bitsize == 0 stores.
	Compute bitregion_{start,end} for the stores and construct
	store_immediate_info with that.  Formatting fixes.

	* gcc.dg/store_merging_10.c: New test.
	* gcc.dg/store_merging_11.c: New test.
	* gcc.dg/store_merging_12.c: New test.
	* g++.dg/pr71694.C: Add -fno-store-merging to dg-options.

From-SVN: r254213
2017-10-30 12:04:49 +01:00
Uros Bizjak
5603c1d9db re PR target/82725 ([x86_64] internal compiler error: in change_address_1, at emit-rtl.c:2162)
PR target/82725
	* config/i386/i386.c (legitimate_pic_address_disp_p): Allow
	UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset.

testsuite/ChangeLog:

	PR target/82725
	* g++.dg/pr82725.C: New test.

From-SVN: r254212
2017-10-30 11:33:40 +01:00
James E Wilson
87039aa266 Fix cygwin builds, broken by PR sanitizer/82517 fix.
gcc/
	* gimplify.c: Include tm_p.h.

From-SVN: r254211
2017-10-29 18:57:59 -07:00
GCC Administrator
fd573116a0 Daily bump.
From-SVN: r254210
2017-10-30 00:16:21 +00:00
James E Wilson
e7e95821dd Emit a no longer supported warning for gcoff* options.
gcc/
	* common.opt (gcoff): Re-add as ignored option.
	(gcoff1, gcoff2, gcoff3): Likewise.

From-SVN: r254207
2017-10-29 16:01:36 -07:00
James E Wilson
180295ed63 Delete obsolete SDB debug info support.
gcc/
	* Makefile.in (OBJS): Delete sdbout.o.
	(GTFILES): Delete $(srcdir)/sdbout.c.
	* debug.h: Delete sdb_debug_hooks.
	* final.c: Delete sdbout.h include.
	(final_scan_insn): Delete SDB_DEBUG check.
	(rest_of_clean_state): Likewise.
	* output.h: Delete sdb_begin_function_line.
	* sdbout.c: Delete.
	* sdbout.h: Delete.
	* toplev.c: Delete sdbout.h include.
	(process_options): Delete SDB_DEBUG check.
	* tree-core.h (tree_type_common): Delete pointer field of
	tree_type_symtab.
	* tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of
	TYPE_SYMTAB_POINTER.
	* tree.h (TYPE_SYMTAB_POINTER): Delete.
	(TYPE_SYMTAB_IS_POINTER): Delete.
	(TYPE_SYMTAB_IS_DIE): Renumber.
	* xcoffout.c: Refer to former sdbout.c file.
	(xcoffout_begin_prologue): Use past tense for sdbout.c reference.

	* doc/install.texi (--with-stabs): Delete COFF and ECOFF info.
	* doc/invoke.texi (SEEALSO): Delete adb and sdb references.
	(Debugging Options): Delete -gcoff.
	(-gstabs): Delete SDB reference.
	(-gcoff): Delete.
	(-gcoff@var{level}): Delete.
	* doc/passes.texi (Debugging information output): Delete SDB and
	sdbout.c references.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref.
	(SDB and DWARF): Change node name to DWARF and delete SDB and COFF
	references.
	(DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references.
	(PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references.
	(SDB_DEBUGGING_INFO): Delete.
	(PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES)
	SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete.
	* target.def (output_source_filename): Delete COFF reference.

	* common.opt (gcoff): Delete.
	(gxcoff+): Update Negative chain.
	* defaults.h: Delete all references to SDB_DEBUGGING_INFO and
	SDB_DEBUG.
	* dwarf2out.c (gen_array_type_die): Change SDB to debuggers.
	* flag-types.h (enum debug_info_type): Delete SDB_DEBUG.
	* function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG,
	and SDB references.
	(expand_function_start): Change sdb reference to past tense.
	(expand_function_end): Change sdb reference to past tense.
	* gcc.c (cpp_unique_options): Delete gcoff3 reference.
	* opts.c (debug_type_names): Delete coff entry.
	(common_handle_option): Delete OPT_gcoff case.
	* system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison.

	* config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG.
	* config/cris/cris.h: Delete SDB reference in comment.
	* config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO.
	(ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment.
	* config/i386/gas.h: Don't define SDB_DEBUGGING_INFO.
	* config/i386/i386.c (svr4_dbx_register_map): Change SDB references
	to past tense.
	(ix86_expand_prologue): Likewise.
	* config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG.
	* config/ia64/ia64.h: Likewise.
	* config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference.
	* config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff*
	support.
	* config/mmix/mmix.h: Likewise.
	* config/nds32/nds32.c: Likewise.
	* config/stormy/storym16.h: Likewise.
	* config/visium/visium.h: Likewise.
	* config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef.

	gcc/fortran/
	* invoke.texi: Delete adb and sdb references.

	gccc/testsuite/
	* lib/gcc-dg.exp (gcc-dg-debug-runtest): Delete -gcoff.
	* lib/gfortran-dg.exp (gfortran-dg-debug-runtest): Delete
	-gcoff.

From-SVN: r254206
2017-10-29 15:45:41 -07:00
Uros Bizjak
7719f04695 * gcc.dg/torture/pr82692.c: Move from gcc.target/i386.
From-SVN: r254205
2017-10-29 08:31:56 +01:00
Sandra Loosemore
9bba3b254a nios2.h (FRAME_GROWS_DOWNWARD): Define to 1.
2017-10-28  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1.
	* config/nios2/nios2.c (nios2_initial_elimination_offset):  Make
	FRAME_POINTER_REGNUM point at high end of local var area.

From-SVN: r254204
2017-10-28 22:55:32 -04:00
GCC Administrator
bf8d56e201 Daily bump.
From-SVN: r254203
2017-10-29 00:16:12 +00:00
Uros Bizjak
48b960eb9f * ChangeLog: Fix whitespace.
From-SVN: r254200
2017-10-28 21:42:06 +02:00
Paolo Carlini
a3cbda1b7c re PR c++/70971 (ICE in parameter pack expansion)
2017-10-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/70971
	* g++.dg/torture/pr70971.C: New.

From-SVN: r254199
2017-10-28 16:10:10 +00:00
Andre Vehreschild
5ce15f69d2 check.c (gfc_check_co_reduce): Clarify error message.
gcc/fortran/ChangeLog:

2017-10-28  Andre Vehreschild  <vehre@gcc.gnu.org>

	* check.c (gfc_check_co_reduce): Clarify error message.

From-SVN: r254197
2017-10-28 14:10:59 +02:00
Paul Thomas
575b527e57 re PR fortran/81758 ([OOP] Broken vtab)
2017-10-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/81758
	* trans-expr.c (trans_class_vptr_len_assignment): 'vptr_expr'
	must only be set if the right hand side expression is of type
	class.

2017-10-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/81758
	* gfortran.dg/class_63.f90: New test.

From-SVN: r254195
2017-10-28 08:49:26 +00:00
Jakub Jelinek
7324369a12 target.c (struct gomp_coalesce_buf): New type.
* target.c (struct gomp_coalesce_buf): New type.
	(MAX_COALESCE_BUF_SIZE, MAX_COALESCE_BUF_GAP): Define.
	(gomp_coalesce_buf_add, gomp_to_device_kind_p): New functions.
	(gomp_copy_host2dev): Add CBUF argument, if copying into
	the cached ranges, memcpy into buffer instead of copying
	into device.
	(gomp_map_vars_existing, gomp_map_pointer, gomp_map_fields_existing):
	Add CBUF argument, pass it through to other calls.
	(gomp_map_vars): Aggregate copies from host to device if small enough
	and with small enough gaps in between into memcpy into a buffer and
	fewer host to device copies from the buffer.
	(gomp_update): Adjust gomp_copy_host2dev caller.

From-SVN: r254194
2017-10-28 09:02:39 +02:00
Steven G. Kargl
fdfcd5ecc5 re PR fortran/82620 ([PDT] ICE: free_expr0(): Bad expr type (at fortran/expr.c:497))
2017-10-27  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/82620
	* match.c (gfc_match_allocate): Exit early on syntax error.

2017-10-27  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/82620
	* gfortran.dg/allocate_error_7.f90: new test.

From-SVN: r254193
2017-10-28 01:06:18 +00:00
GCC Administrator
615c85eefa Daily bump.
From-SVN: r254192
2017-10-28 00:16:19 +00:00
Paolo Carlini
df7a517dfa re PR c++/82218 ([C++1x] constexpr on static member function causes segfault)
2017-10-27  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/82218
	* g++.dg/cpp1y/constexpr-82218.C: New.

From-SVN: r254189
2017-10-27 23:14:43 +00:00
Eric Botcazou
eada55b96e bb-reorder.c (find_traces_1_round): Fix off-by-one index.
* bb-reorder.c (find_traces_1_round): Fix off-by-one index.
	Move comment around.  Do not reset best_edge for a copiable
	destination if the copy would cause a partition change.
	(better_edge_p): Remove redundant check.

From-SVN: r254188
2017-10-27 22:55:59 +00:00
Daniel Santos
a3123cd867 PR target/82268 Correct FAIL when configured --with-cpu
* gcc.target/i386/pr82196-1.c (dg-options): Add -mno-avx.

From-SVN: r254186
2017-10-27 22:15:32 +00:00
Uros Bizjak
b5176e0ab5 i386-protos.h (ix86_fp_compare_mode): Remove prototype.
* config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype.

From-SVN: r254184
2017-10-27 23:52:26 +02:00
Michael Meissner
ee5fd23a48 builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases for math functions that have _Float<N> and...
[gcc]
2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases
	for math functions that have _Float<N> and _Float<N>X variants.
	(mathfn_built_in_2): Add support for math functions that have
	_Float<N> and _Float<N>X variants.
	(DEF_INTERNAL_FLT_FLOATN_FN): New helper macro.
	(expand_builtin_mathfn_ternary): Add support for fma with
	_Float<N> and _Float<N>X variants.
	(expand_builtin): Likewise.
	(fold_builtin_3): Likewise.
	* builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to
	create math function _Float<N> and _Float<N>X variants as external
	library builtins.
	(BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use
	DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using
	the __builtin_ prefix and if not strict ansi, without the prefix.
	(BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise.
	(BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise.
	(BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise.
	(BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise.
	(BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise.
	(BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise.
	* builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New
	function signatures for fma _Float<N> and _Float<N>X variants.
	(BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise.
	(BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise.
	(BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise.
	(BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise.
	(BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise.
	(BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise.
	* gencfn-macros.c (print_case_cfn): Add support for math functions
	that have _Float<N> and _Float<N>X variants.
	(print_define_operator_list): Likewise.
	(fltfn_suffixes): Likewise.
	(main): Likewise.
	* internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro
	for math functions that have _Float<N> and _Float<N>X variants.
	(SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N>
	and _Float<N>X variants.
	(COPYSIGN): Likewise.
	(FMIN): Likewise.
	(FMAX): Likewise.
	* fold-const.c (tree_call_nonnegative_warnv_p): Add support for
	copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X
	variants.
	(integer_valued_read_call_p): Likewise.
	* fold-const-call.c (fold_const_call_ss): Likewise.
	(fold_const_call_sss): Add support for copysign, fmin, and fmax
	_Float<N> and _Float<N>X variants.
	(fold_const_call_ssss): Add support for fma _Float<N> and
	_Float<N>X variants.
	* gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add
	support for copysign and fma _Float<N> and _Float<N>X variants.
	(backprop::process_builtin_call_use): Likewise.
	* tree-call-cdce.c (can_test_argument_range); Add support for
	sqrt _Float<N> and _Float<N>X variants.
	(edom_only_function): Likewise.
	(get_no_error_domain): Likewise.
	* tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise.
	* tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for
	copysign _Float<N> and _Float<N>X variants.
	* config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now
	handled by machine independent code.
	(FMAF128): Likewise.
	* doc/cpp.texi (Common Predefined Macros): Document defining
	__FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports
	fma _Float<N> and _Float<N>X variants.

[gcc/c]
2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* c-decl.c (header_for_builtin_fn): Add support for copysign, fma,
	fmax, fmin, and sqrt _Float<N> and _Float<N>X variants.

[gcc/c-family]
2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* c-cppbuiltin.c (mode_has_fma): Add support for PowerPC KFmode.
	(c_cpp_builtins): If a machine has a fast fma _Float<N> and
	_Float<N>X variant, define __FP_FAST_FMA<N> and/or
	__FP_FAST_FMA<N>X.

[gcc/testsuite]
2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/float128-hw.c: Add support for all 4 FMA
	variants.  Check various conversions to/from float128.  Check
	negation.  Use {\m...\M} in the tests.
	* gcc.target/powerpc/float128-hw2.c: New test for implicit
	_Float128 math functions.
	* gcc.target/powerpc/float128-hw3.c: New test for strict ansi mode
	not implicitly adding the _Float128 math functions.
	* gcc.target/powerpc/float128-fma2.c: Delete, test is no longer
	valid.
	* gcc.target/powerpc/float128-sqrt2.c: Likewise.

From-SVN: r254168
2017-10-27 18:15:38 +00:00
Uros Bizjak
3f563e0b55 re PR target/82692 (Ordered comparisons used for unordered built-ins)
PR target/82692
	* config/i386/i386-modes.def (CCFPU): Remove definition.
	* config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling.
	(ix86_cc_modes_compatible): Ditto.
	(ix86_expand_carry_flag_compare): Ditto.
	(ix86_expand_int_movcc): Ditto.
	(ix86_expand_int_addcc): Ditto.
	(ix86_reverse_condition): Ditto.
	(ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode.
	Return true/false for unordered/ordered fp comparisons.
	(ix86_cc_mode): Always return CCFPmode for float mode comparisons.
	(ix86_prepare_fp_compare_args): Update for rename.
	(ix86_expand_fp_compare): Update for rename.  Generate unordered
	compare RTXes wrapped with UNSPEC_NOTRAP unspec.
	(ix86_expand_sse_compare_and_jump): Ditto.
	* config/i386/predicates.md (fcmov_comparison_operator):
	Remove CCFPU mode handling.
	(ix86_comparison_operator): Ditto.
	(ix86_carry_flag_operator): Ditto.
	* config/i386/i386.md (UNSPEC_NOTRAP): New unspec.
	(*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec.
	(*cmpu<mode>_cc_i387): Ditto.
	(FPCMP): Remove mode iterator.
	(unord): Remove mode attribute.
	(unord_subst): New define_subst transformation
	(unord): New define_subst attribute.
	(unordered): Ditto.
	(*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation.
	(*cmpi<unord>xf_i387): Ditto.
	* config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge
	from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name>
	using unord_subst transformation.
	* config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes.
	(round_saeonly): Also handle CCFP mode.
	* reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec.
	Remove UNSPEC_SAHF unspec handling.

testsuite/ChangeLog:

	PR target/82692
	* gcc.dg/torture/pr82692.c: New test.

From-SVN: r254167
2017-10-27 20:13:14 +02:00
Jan Hubicka
68d1c4bfd7 * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.
From-SVN: r254166
2017-10-27 18:05:14 +00:00
Will Schmidt
759ebd17e3 fold-vec-neg-char.c: New.
[testsuite]

2017-10-27  Will Schmidt  <will_schmidt@vnet.ibm.com>

	* gcc.target/powerpc/fold-vec-neg-char.c: New.
	* gcc.target/powerpc/fold-vec-neg-floatdouble.c: New.
	* gcc.target/powerpc/fold-vec-neg-int.c: New.
	* gcc.target/powerpc/fold-vec-neg-longlong.c: New.
	* gcc.target/powerpc/fold-vec-neg-short.c: New.

From-SVN: r254164
2017-10-27 17:52:55 +00:00
Jerry DeLisle
730de5a59e re PR libfortran/81938 (valgrind error message and heap-buffer-overflow on address sanitized libgfortran.so)
2017-10-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Rimvydas (RJ)

	PR libgfortran/81938
	io/format.c (free_format_data): Don't try to free vlist
	descriptors past the end of the fnode array.

From-SVN: r254163
2017-10-27 17:50:22 +00:00
Jonathan Wakely
6c6705a904 Simplify _Node_insert_return to avoid including <tuple>
* include/bits/node_handle.h (_Node_insert_return::get): Avoid
	use of std::tie and std::get.

From-SVN: r254162
2017-10-27 18:49:36 +01:00
Jonathan Wakely
5880ce184a List headers in Makefile in alphabetical order
* include/Makefile.am: Put headers in alphabetical order.
	* include/Makefile.in: Regenerate.

From-SVN: r254161
2017-10-27 18:49:32 +01:00
Jonathan Wakely
29453a9ffd Remove noexcept from filesystem iterators and operations (LWG 3013, 3014)
* include/bits/fs_dir.h (directory_iterator): Remove noexcept from
	constructors and increment member (LWG 3013).
	(recursive_directory_iterator): Likewise.
	* include/bits/fs_ops.h (copy, copy_file, create_directories)
	(is_empty, remove_all): Remove noexcept (LWG 3013 and LWG 3014).
	* src/filesystem/std-dir.cc (directory_iterator::increment)
	(recursive_directory_iterator::increment): Remove noexcept.
	* src/filesystem/std-ops.cc (copy, copy_file, create_directories)
	(is_empty, remove_all): Remove noexcept

From-SVN: r254160
2017-10-27 18:49:29 +01:00
Jonathan Wakely
9a3effa411 Make filesystem::file_status default constructor non-explicit (LWG 2787)
* include/bits/fs_dir.h (file_status): Make default constructor
	non-explicit (LWG 2787).
	* testsuite/27_io/filesystem/file_status/1.cc: New test.
	* testsuite/experimental/filesystem/file_status/1.cc: New test.

From-SVN: r254159
2017-10-27 18:49:21 +01:00