Commit Graph

157925 Commits

Author SHA1 Message Date
Gerald Pfeifer 4c71819dda hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier from explicit instantiation of debug_helper.
* hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier
	from explicit instantiation of debug_helper.
	* vec.h (DEFINE_DEBUG_VEC): Ditto.

From-SVN: r255175
2017-11-27 17:29:06 +00:00
Stephan Bergmann 68e601d879 Fix std::unordered_map deduction guide
2017-11-27  Stephan Bergmann  <sbergman@redhat.com>

	* include/bits/unordered_map.h (unordered_map): Fix deduction guide.
	* include/debug/unordered_map (unordered_map): Likewise.

From-SVN: r255174
2017-11-27 16:43:39 +00:00
Richard Biener 42f7424573 gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code, refactor a bit.
2017-11-27  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code,
	refactor a bit.

From-SVN: r255172
2017-11-27 14:35:13 +00:00
Richard Biener 53d2b7cb86 tree.c (wide_int_to_tree): Free discarded INTEGER_CST.
2017-11-27  Richard Biener  <rguenther@suse.de>

	* tree.c (wide_int_to_tree): Free discarded INTEGER_CST.
	(type_hash_canon): Also clear int_cst_hash_table entry for
	TYPE_MIN/MAX_VALUE.
	(build_nonstandard_integer_type): Hash all TYPE_MAX_VALUEs.

From-SVN: r255171
2017-11-27 14:30:36 +00:00
Tamar Christina d7dccfa38d extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
2017-11-27  Tamar Christina  <tamar.christina@arm.com>

	* doc/extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
	* doc/invoke.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
	* doc/sourcebuild.texi: Add -A suffix (ARMv8*-A, ARMv7-A).

From-SVN: r255169
2017-11-27 14:21:18 +00:00
Jakub Jelinek cb358080c9 re PR c++/81675 (attribute(noreturn) of destructor in :? not honored)
PR c++/81675
	* cp-gimplify.c (cp_fold) <case COND_EXPR>: Don't return immediately
	for VOID_TYPE_P COND_EXPRs, instead fold the operands and if op0 is
	INTEGER_CST, ensure that both op1 and op2 are non-NULL and fall
	through into normal folding, otherwise just rebuild x if any op
	changed.

	* g++.dg/warn/pr81675.C: New test.

From-SVN: r255167
2017-11-27 14:13:22 +01:00
Markus Trippelsdorf 04f9150378 Fix UB in hash-map.h
bootstrap-ubsan shows:
  gcc/hash-map.h:277:19: runtime error: member access within null pointer of type 'struct hash_map'

Fix the issue by returning early.

From-SVN: r255166
2017-11-27 12:53:16 +00:00
Eric Botcazou ff27462edc cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll.
* cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll.
	* loop-unroll.c (decide_unroll_constant_iterations): Implement it.
	(decide_unroll_runtime_iterations): Likewise.
	(decide_unroll_stupid): Likewise.

From-SVN: r255165
2017-11-27 11:56:36 +00:00
Igor Tsimbalist 39335d1486 Fix code generation for buildtin_longjmp with CET.
According to the description of  inssp instruction from Intel CET it
adusts the shadow stack pointer (ssp) only by value in the range of
[0..255]. As a number of adjustment could be greater than 255 there
should be a loop generated to adjust ssp.

gcc/
	* config/i386/i386.md: Add a loop with incssp.
	* testsuite/gcc.target/i386/cet-sjlj-1.c: Fix test.
	* testsuite/gcc.target/i386/cet-sjlj-4.c: Likewise.

From-SVN: r255164
2017-11-27 12:54:17 +01:00
Martin Jambor be025a2d99 [PR 81248] Fix ipa-sra size check
2017-11-27  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/81248
	* tree-sra.c (splice_param_accesses): Remove size check.
	(decide_one_param_reduction): Fix size check.
	* gimple-pretty-print.c (dump_profile): Silence warning.
	* params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description.

	testsuite/
	* g++.dg/ipa/pr81248.C: New test.
	* gcc.dg/tree-ssa/ssa-pre-31.c: Disable IPA-SRA.
	* gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-2.c: Likewise.

From-SVN: r255163
2017-11-27 11:33:06 +01:00
Jakub Jelinek 8cb715989f null-8.C (bar): New function.
* g++.dg/ubsan/null-8.C (bar): New function.
	(foo): Use bar instead of __builtin_printf.

From-SVN: r255162
2017-11-27 11:29:03 +01:00
Jakub Jelinek b8cb3096f7 re PR debug/81307 (g++.dg/debug/debug9.C -gstabs FAILs)
PR debug/81307
	* dbxout.c (lastlineno): New variable.
	(dbx_debug_hooks): Use dbxout_switch_text_section as
	switch_text_section debug hook.
	(dbxout_function_end): Switch to current_function_section
	rather than function_section.  If crtl->has_bb_partition,
	output just one N_FUN, depending on in_cold_section_p.
	(dbxout_source_line): Remember last lineno in lastlineno.
	(dbxout_switch_text_section): New function.
	(dbxout_function_decl): Adjust dbxout_block caller.
	(dbx_block_with_cold_children): New function.
	(dbxout_block): Return true if any LBRAC/RBRAC have been
	emitted.  Use dbx_block_with_cold_children at depth == 0
	in second partition.  Add PARENT_BLOCKNUM argument, pass
	it optionally adjusted to children.  Output LBRAC/RBRAC
	around recursive call only if the block is in the current
	partition, if not and anything was output, emit empty
	range LBRAC/RBRAC.
	* final.c (final_scan_insn): Compute cold_function_name
	before calling switch_text_section debug hook.  Call
	that hook even if dwarf2out_do_frame if not emitting
	dwarf debug info.

	* g++.dg/debug/debug9.C: Remove -fno-reorder-blocks-and-partition
	workaround.

From-SVN: r255161
2017-11-27 09:48:56 +01:00
Jakub Jelinek 9adeb64ab9 re PR target/83100 (powerpc: internal compiler error: in get_variable_section, at varasm.c:1150 with -fdata-sections)
PR target/83100
	* varasm.c (bss_initializer_p): Return true for DECL_COMMON
	TREE_READONLY decls.

	* gcc.dg/pr83100-1.c: New test.
	* gcc.dg/pr83100-2.c: New test.
	* gcc.dg/pr83100-3.c: New test.
	* gcc.dg/pr83100-4.c: New test.

From-SVN: r255160
2017-11-27 09:34:50 +01:00
Markus Trippelsdorf 99282f81a6 Fix PR82488 - signed integer overflow in expr.c
bootstrap-ubsan shows:
 gcc/expr.c:4103:17: runtime error: signed integer overflow: 0 - -9223372036854775808 cannot be represented in type 'long int'

Fix by handling the saw_unknown case earlier.

	PR rtl-optimization/82488
	* expr.c (fixup_args_size_notes): Avoid signed integer overflow.

diff --git a/gcc/expr.c b/gcc/expr.c
index ee07de5aaa44..e9d8555c9452 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -4100,10 +4100,13 @@ fixup_args_size_notes (rtx_insn *prev, rtx_insn *last, int end_args_size)
       if (STACK_GROWS_DOWNWARD)
 	this_delta = -(unsigned HOST_WIDE_INT) this_delta;

-      args_size -= this_delta;
+      if (saw_unknown)
+	args_size = INT_MIN;
+      else
+	args_size -= this_delta;
     }

-  return saw_unknown ? INT_MIN : args_size;
+  return args_size;
 }

 #ifdef PUSH_ROUNDING
--
Markus

From-SVN: r255159
2017-11-27 05:20:43 +00:00
GCC Administrator 62e8530cd5 Daily bump.
From-SVN: r255158
2017-11-27 00:16:12 +00:00
Uros Bizjak c234d8319b i386.c (processor_target_table): Add skylake_cost for skylake-avx512.
* config/i386/i386.c (processor_target_table): Add skylake_cost for
	skylake-avx512.
	* config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset,
	skylake_cost): New.

	* config/i386/driver-i386.c (host_detect_local_cpu):
	Detect skylake-avx512.

	* config.gcc: Add -march=cannonlake.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake.
	* config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake.
	* config/i386/i386.c (processor_costs): Add m_CANNONLAKE.
	(PTA_CANNONLAKE): New.
	(processor_target_table): Add cannonlake.
	(ix86_option_override_internal): Ditto.
	(fold_builtin_cpu): Ditto.
	(get_builtin_code_for_version): Handle cannonlake.
	(M_INTEL_COREI7_CANNONLAKE): New.
	* config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New.
	* doc/invoke.texi: Add -march=cannonlake.

gcc/testsuite/

	* gcc.target/i386/funcspec-56.inc: Handle new march.
	* g++.dg/ext/mv16.C: Ditto.

libgcc/

	* config/i386/cpuinfo.c (get_intel_cpu): Handle cannonlake.
	* config/i386/cpuinfo.h (processor_subtypes): Add
	INTEL_COREI7_CANNONLAKE.

From-SVN: r255155
2017-11-26 17:11:29 +01:00
Boris Kolpackov 8c7dbea9f1 Plugin support on Windows/MinGW
config/ChangeLog:
2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>

	* gcc-plugin.m4: Add support for MinGW.

gcc/ChangeLog:
2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>

	* plugin.c (add_new_plugin): Use platform-specific library extensions.
	(try_init_one_plugin): Alternative implementation for MinGW.
	* Makefile.in (plugin_implib): New.
	(gengtype-lex.c): Fix broken AIX workaround.
	* configure: Regenerate.
	* doc/plugins.texi: Document support for MinGW.

gcc/c/ChangeLog:
2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>

	* Make-lang.in (c.install-plugin): Install backend import library.

gcc/cp/ChangeLog:
2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>

	* Make-lang.in (c++.install-plugin): Install backend import library.

libcc1/ChangeLog:
2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>

	* configure: Regenerate.

From-SVN: r255154
2017-11-26 13:00:48 +00:00
GCC Administrator 44dfb82280 Daily bump.
From-SVN: r255153
2017-11-26 00:16:15 +00:00
Jakub Jelinek e95be6330d re PR rtl-optimization/81553 (ICE in immed_wide_int_const, at emit-rtl.c:607)
PR rtl-optimization/81553
	* combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z)
	to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP
	is a shift where C1 has different mode than the whole shift, use C1's
	mode for MULT rather than the shift's mode.

	* gcc.c-torture/compile/pr81553.c: New test.

From-SVN: r255150
2017-11-25 20:35:47 +01:00
Andreas Schwab 5a2707633b structret1.C (FrameworkObject::action): Return a value.
* g++.dg/abi/structret1.C (FrameworkObject::action): Return a
value.

From-SVN: r255149
2017-11-25 18:57:01 +00:00
Jakub Jelinek b7f08b83e4 re PR target/82848 (ICE in expand_expr_real_2, at expr.c:8715)
PR target/82848
	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Don't fold
	builtins not enabled in the currently selected ISA.

	* gcc.target/powerpc/pr82848.c: New test.

From-SVN: r255148
2017-11-25 11:19:16 +01:00
GCC Administrator 430ddc2279 Daily bump.
From-SVN: r255147
2017-11-25 00:16:16 +00:00
Jakub Jelinek 3b3e6283a4 re PR fortran/81304 (Bogus warning with -Wsurprising and -fopenmp: Type specified for intrinsic function 'min' / 'max')
PR fortran/81304
	* trans-openmp.c (gfc_trans_omp_array_reduction_or_udr): Set
	attr.implicit_type in intrinsic_sym to avoid undesirable warning.

	* testsuite/libgomp.fortran/pr81304.f90: New test.

From-SVN: r255144
2017-11-24 22:40:21 +01:00
Jackson Woodruff 19cf3a3685 Factor out division by squares
This patch implements the some of the division optimizations discussed in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71026.

The division reciprocal optimization now handles divisions by squares:

     x / (y * y) -> x  * (1 / y) * (1 / y)

This requires at least one more division by y before it triggers - the
3 divisions of (1/ y) are then CSEd into a single division.  Overall
this changes 1 division into 1 multiply, which is generally much faster.


2017-11-24  Jackson Woodruff  <jackson.woodruff@arm.com>

    gcc/
	PR tree-optimization/71026
	* tree-ssa-math-opts (is_division_by_square, is_square_of): New.
	(insert_reciprocals): Change to insert reciprocals before a division
	by a square and to insert the square of a reciprocal.
	(execute_cse_reciprocals_1): Change to consider division by a square.
	(register_division_in): Add importance parameter.

    testsuite/
	PR tree-optimization/71026
	* gfortran.dg/extract_recip_1.f: New test.
	* gcc.dg/extract_recip_3.c: New test.
	* gcc.dg/extract_recip_4.c: New test.

From-SVN: r255141
2017-11-24 16:03:13 +00:00
Richard Biener 15b6695ac5 re PR tree-optimization/82402 (error: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set)
2017-11-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82402
	* tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly
	set SSA_NAME_OCCURS_IN_ABNORMAL_PHI.

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

From-SVN: r255140
2017-11-24 12:34:23 +00:00
Marc Glisse 406520e26f Simplify 0 - ptr.
2017-11-24  Marc Glisse  <marc.glisse@inria.fr>

	* match.pd (0-ptr): New transformation.

From-SVN: r255139
2017-11-24 12:09:14 +00:00
Jan Hubicka f4118c878d re PR bootstrap/83015 (bootstrap comparison failure on ia64)
PR bootstrap/83015
	* ipa-inline.c (inline_small_functions): Set current badnes correctly
	when skipping checking.

From-SVN: r255138
2017-11-24 11:24:55 +00:00
Janne Blomqvist 4dae9c641b Whitespace fix for libgfortran/ChangeLog
From-SVN: r255137
2017-11-24 11:57:52 +02:00
Richard Biener 6a248fce56 re PR tree-optimization/83128 (Unable to optimize {m,c}alloc when strings builtin are used)
2017-11-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/83128
	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle STRING_CSTs.
	(vn_reference_lookup_3): Likewise.

	* gcc.dg/tree-ssa/ssa-fre-62.c: New testcase.

From-SVN: r255136
2017-11-24 09:40:40 +00:00
Janne Blomqvist 97e1c8786b PR 36313 Replace int with gfc_charlen_type, take 3
Still some prototypes that didn't match the implementation.

2017-11-24  Janne Blomqvist  <jb@gcc.gnu.org>
        PR fortran/36313
        * m4/maxloc2s.m4: Replace int with gfc_charlen_type, take 3.
        * m4/minloc2s.m4: Likewise.
        * generated/maxloc2_16_s1.c: Regenerated.
        * generated/maxloc2_16_s4.c: Regenerated.
        * generated/maxloc2_4_s1.c: Regenerated.
        * generated/maxloc2_4_s4.c: Regenerated.
        * generated/maxloc2_8_s1.c: Regenerated.
        * generated/maxloc2_8_s4.c: Regenerated.
        * generated/minloc2_16_s1.c: Regenerated.
        * generated/minloc2_16_s4.c: Regenerated.
        * generated/minloc2_4_s1.c: Regenerated.
        * generated/minloc2_4_s4.c: Regenerated.
        * generated/minloc2_8_s1.c: Regenerated.
        * generated/minloc2_8_s4.c: Regenerated.

From-SVN: r255135
2017-11-24 10:51:15 +02:00
Jakub Jelinek 96281645bd re PR sanitizer/83014 (ICE in pretty-print with -fsanitize=bounds)
PR sanitizer/83014
	* ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer
	instead of pp_printf with HOST_WIDE_INT_PRINT_DEC.  Avoid calling
	tree_to_uhwi twice.

	* gcc.dg/ubsan/pr83014.c: New test.

From-SVN: r255134
2017-11-24 09:35:10 +01:00
Jakub Jelinek 51feb980c9 tree-object-size.c (pass_through_call): Use gimple_call_return_flags ERF_RETURN*ARG* for builtins other than...
* tree-object-size.c (pass_through_call): Use gimple_call_return_flags
	ERF_RETURN*ARG* for builtins other than BUILT_IN_ASSUME_ALIGNED,
	check for the latter with gimple_call_builtin_p.  Do not handle
	BUILT_IN_STPNCPY_CHK which is not a pass through call.

	* gcc.dg/builtin-object-size-18.c: New test.

From-SVN: r255133
2017-11-24 09:34:13 +01:00
Kirill Yukhin 489154e71b Add missing gcc/config.gcc hunks from r255121.
From-SVN: r255132
2017-11-24 07:39:57 +00:00
Kirill Yukhin 566bd102f7 Add missing hunks from r255121.
From-SVN: r255131
2017-11-24 06:49:04 +00:00
GCC Administrator fcb01caa4f Daily bump.
From-SVN: r255130
2017-11-24 00:16:21 +00:00
Jonathan Wakely a8541d9021 Add [[nodiscard]] attribute to std::launder
* libsupc++/new (launder): Add nodiscard attribute.
	* testsuite/18_support/launder/nodiscard.cc: New test.

From-SVN: r255127
2017-11-24 00:00:46 +00:00
Christophe Lyon 117e6b50b6 [ARM] Fix Dot Product NEON intrinsics
2017-11-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm_neon.h: Fix pragma GCC push_options before
	vdot_u32.

From-SVN: r255126
2017-11-24 00:24:51 +01:00
Eric Botcazou 773076a512 re PR ada/83091 (ICE with -g in arm-eabi compilation)
PR ada/83091
	* gcc-interface/decl.c (gnat_to_gnu_entity): Do not build a variant
	type for the implementation type of a packed array.

From-SVN: r255125
2017-11-23 22:55:05 +00:00
Jonathan Wakely d69f1ec7d1 Add [[nodiscard]] attribute to C++17 components
* include/bits/fs_path.h (path::empty): Add nodiscard attribute.
	* include/bits/range_access.h (empty): Likewise.
	* include/std/string_view (basic_string_view::empty): Likewise.
	* testsuite/21_strings/basic_string_view/capacity/empty_neg.cc: New
	test.
	* testsuite/24_iterators/range_access_cpp17_neg.cc: New test.
	* testsuite/27_io/filesystem/path/query/empty_neg.cc: New test.

From-SVN: r255124
2017-11-23 22:11:21 +00:00
Jonathan Wakely 4b9840f230 PR libstdc++/83134 Ensure std::__not_ converts B::value to bool
PR libstdc++/83134
	* include/std/type_traits (__not_): Explicitly convert to bool.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
	* testsuite/20_util/logical_traits/83134.cc: New test.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
	dg-error.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.

From-SVN: r255122
2017-11-23 21:35:27 +00:00
Julia Koval de8603793a Enable VBMI2 support [3/7]
gcc/
	config/i386/avx512vbmi2intrin.h (_mm512_mask_expand_epi8,
	_mm512_maskz_expand_epi8, _mm512_mask_expandloadu_epi8,
	_mm512_maskz_expandloadu_epi8, _mm512_mask_expand_epi16,
	_mm512_maskz_expand_epi16, _mm512_mask_expandloadu_epi16,
	_mm512_maskz_expandloadu_epi16): New intrinsics.
	config/i386/avx512vbmi2vlintrin.h (_mm_mask_expand_epi8,
	_mm_maskz_expand_epi8, _mm_mask_expandloadu_epi8,
	_mm_maskz_expandloadu_epi8, _mm_mask_expand_epi16,
	_mm_maskz_expand_epi16, _mm_mask_expandloadu_epi16,
	_mm_maskz_expandloadu_epi16, _mm256_mask_expand_epi16,
	_mm256_maskz_expand_epi16, _mm256_mask_expandloadu_epi16,
	_mm256_maskz_expandloadu_epi16, _mm256_mask_expand_epi8,
	_mm256_maskz_expand_epi8, _mm256_mask_expandloadu_epi8,
	_mm256_maskz_expandloadu_epi8): New intrinsics.
	config/i386/i386-builtin-types.def (V64QI_FTYPE_PCV64QI_V64QI_UDI,
	V32HI_FTYPE_PCV32HI_V32HI_USI, V32QI_FTYPE_PCV32QI_V32QI_USI,
	V16HI_FTYPE_PCV16HI_V16HI_UHI, V16QI_FTYPE_PCV16QI_V16QI_UHI,
	V8HI_FTYPE_PCV8HI_V8HI_UQI): New types.
	config/i386/i386.c (ix86_expand_special_args_builtin): Use new types.
	config/i386/sse.md (VI248_VLBW): New iterator.
	(expand<mode>_mask, expand<mode>_maskz): New patterns.

gcc/testsuite/
	gcc.target/i386/avx512f-vpexpandb-1.c: New test.
	gcc.target/i386/avx512f-vpexpandb-2.c: Ditto.
	gcc.target/i386/avx512f-vpexpandw-1.c: Ditto.
	gcc.target/i386/avx512f-vpexpandw-2.c: Ditto.
	gcc.target/i386/avx512vl-vpexpandb-1.c: Ditto.
	gcc.target/i386/avx512vl-vpexpandb-2.c: Ditto.
	gcc.target/i386/avx512vl-vpexpandw-1.c: Ditto.
	gcc.target/i386/avx512vl-vpexpandw-2.c: Ditto.

From-SVN: r255121
2017-11-23 21:03:55 +00:00
Julia Koval 11cca3ca7d Enable VBMI2 support [2/7]
gcc/
	config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers.
	config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8,
	_mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8,
	_mm512_mask_compress_epi16, _mm512_maskz_compress_epi16,
	_mm512_mask_compressstoreu_epi16): New.
	config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8,
	_mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16,
	_mm_mask_compress_epi16, _mm_maskz_compress_epi16,
	_mm256_mask_compress_epi16, _mm256_maskz_compress_epi16,
	_mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16,
	_mm256_mask_compress_epi8, _mm256_maskz_compress_epi8,
	_mm256_mask_compressstoreu_epi8): New.
	config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI,
	VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI,
	VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI,
	VOID_FTYPE_PV8HI_V8HI_UQI): New types.
	config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask,
	__builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask,
	__builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask,
	__builtin_ia32_compresshi128_mask,
	__builtin_ia32_compressstoreuqi512_mask,
	__builtin_ia32_compressstoreuhi512_mask,
	__builtin_ia32_compressstoreuqi256_mask,
	__builtin_ia32_compressstoreuqi128_mask,
	__builtin_ia32_compressstoreuhi256_mask,
	__builtin_ia32_compressstoreuhi128_mask): New builtins.
	config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args
	array for flags2.
	(ix86_expand_special_args_builtin): Handle new types.
	(s4fma_expand): Handle new builtin array.
	config/i386/immintrin.h: Include new headers.
	config/i386/sse.md (VI12_AVX512VLBW): New iterator.
	(compress<mode>_mask, compressstore<mode>_mask): New patterns.

gcc/testsuite/
	gcc.target/i386/avx512-check.h: Handle AVX512VBMI2 bit.
	gcc.target/i386/avx512f-vpcompressb-1.c: New test.
	gcc.target/i386/avx512f-vpcompressb-2.c: Ditto.
	gcc.target/i386/avx512f-vpcompressw-1.c: Ditto.
	gcc.target/i386/avx512f-vpcompressw-2.c: Ditto.
	gcc.target/i386/avx512vl-vpcompressb-1.c: Ditto.
	gcc.target/i386/avx512vl-vpcompressb-2.c: Ditto.
	gcc.target/i386/avx512vl-vpcompressw-1.c: Ditto.
	gcc.target/i386/avx512vl-vpcompressw-2.c: Ditto.
	gcc.target/i386/i386.exp (check_effective_target_avx512vbmi2): New.

From-SVN: r255119
2017-11-23 20:57:50 +00:00
Jakub Jelinek cd761692cb rs6000.c (rs6000_gimple_fold_builtin): Formatting fixes.
* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Formatting
	fixes.  Declare temp and g variables at the top in order to avoid
	{} in most of the cases.

From-SVN: r255118
2017-11-23 21:19:01 +01:00
Jakub Jelinek 9c378aa9f4 parser.c (cp_parser_omp_declare): Change return type to bool from void, return true for declare simd.
* parser.c (cp_parser_omp_declare): Change return type to bool from
	void, return true for declare simd.
	(cp_parser_pragma): Return cp_parser_omp_declare returned value
	rather than always false.

From-SVN: r255117
2017-11-23 21:18:10 +01:00
Jakub Jelinek 41521dee8e c-parser.c (c_parser_omp_declare_simd): Reject declare simd in pragma_stmt context.
* c-parser.c (c_parser_omp_declare_simd): Reject declare simd in
	pragma_stmt context.

	* gcc.dg/gomp/declare-simd-1.c (f9): Remove.
	* gcc.dg/gomp/declare-simd-5.c: New test.

From-SVN: r255116
2017-11-23 21:17:29 +01:00
Jakub Jelinek 3b575376fb re PR fortran/81841 (THREADPRIVATE (OpenMP) wrongly rejected in BLOCK DATA)
PR fortran/81841
	* parse.c (parse_spec): Allow ST_OMP_THREADPRIVATE inside of
	BLOCK DATA.

	* libgomp.fortran/pr81841.f90: New test.

From-SVN: r255115
2017-11-23 21:16:38 +01:00
Jakub Jelinek 11aa563708 pr65240-1.C: Add -Wno-return-type to dg-options.
* g++.dg/pr65240-1.C: Add -Wno-return-type to dg-options.
	* g++.dg/pr65240-2.C: Likewise.
	* g++.dg/pr65240-3.C: Likewise.
	* g++.dg/pr65240-4.C: Likewise.

From-SVN: r255114
2017-11-23 21:14:43 +01:00
Marc Glisse d43177addf Simplify ptr - 0
2017-11-23  Marc Glisse  <marc.glisse@inria.fr>

	* match.pd (ptr-0): New transformation.

From-SVN: r255113
2017-11-23 19:53:09 +00:00
Charles Baylis 612ea540d2 This patch adds support for modelling the varying costs of different addressing modes.
This patch adds support for modelling the varying costs of
different addressing modes. The generic cost table treats
all addressing modes as having equal cost.

gcc/ChangeLog:

2017-11-23  Charles Baylis  <charles.baylis@linaro.org>

        * config/arm/arm-protos.h (enum arm_addr_mode_op): New.
        (struct addr_mode_cost_table): New.
        (struct tune_params): Add field addr_mode_costs.
        * config/arm/arm.c (generic_addr_mode_costs): New.
        (arm_slowmul_tune): Initialise addr_mode_costs field.
        (arm_fastmul_tune): Likewise.
        (arm_strongarm_tune): Likewise.
        (arm_xscale_tune): Likewise.
        (arm_9e_tune): Likewise.
        (arm_marvell_pj4_tune): Likewise.
        (arm_v6t2_tune): Likewise.
        (arm_cortex_tune): Likewise.
        (arm_cortex_a8_tune): Likewise.
        (arm_cortex_a7_tune): Likewise.
        (arm_cortex_a15_tune): Likewise.
        (arm_cortex_a35_tune): Likewise.
        (arm_cortex_a53_tune): Likewise.
        (arm_cortex_a57_tune): Likewise.
        (arm_exynosm1_tune): Likewise.
        (arm_xgene1_tune): Likewise.
        (arm_cortex_a5_tune): Likewise.
        (arm_cortex_a9_tune): Likewise.
        (arm_cortex_a12_tune): Likewise.
        (arm_cortex_a73_tune): Likewise.
        (arm_v7m_tune): Likewise.
        (arm_cortex_m7_tune): Likewise.
        (arm_v6m_tune): Likewise.
        (arm_fa726te_tune): Likewise.
        (arm_mem_costs): Use table lookup to calculate cost of addressing
        mode.

From-SVN: r255112
2017-11-23 18:39:44 +00:00
Charles Baylis c138eb5ce4 [ARM] Refactor costs calculation for MEM.
This patch moves the calculation of costs for MEM into a
separate function, and reforms the calculation into two
parts. Firstly any additional cost of the addressing mode
is calculated, and then the cost of the memory access itself
is added.

In this patch, the calculation of the cost of the addressing
mode is omitted, to be added in a subsequent patch.

gcc/ChangeLog:

<date>  Charles Baylis  <charles.baylis@linaro.org>

        * config/arm/arm.c (arm_mem_costs): New function.
        (arm_rtx_costs_internal): Use arm_mem_costs.

gcc/testsuite/ChangeLog:

<date>  Charles Baylis  <charles.baylis@linaro.org>

        * gcc.target/arm/addr-modes-float.c: New test.
        * gcc.target/arm/addr-modes-int.c: New test.
        * gcc.target/arm/addr-modes.h: New header.

From-SVN: r255111
2017-11-23 18:37:18 +00:00