158227 Commits

Author SHA1 Message Date
Jonathan Wakely
f297ebafdc Test whitespace handling in std::complex extraction
* testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
	Add tests using noskipws.

From-SVN: r255632
2017-12-14 11:47:42 +00:00
Eric Botcazou
4d39941ea9 gigi.h (pad_type_has_rm_size): Declare.
* gcc-interface/gigi.h (pad_type_has_rm_size): Declare.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Do not build
	a padding type for the alignment before validating the size.
	Flip conditional construct and add a comment.
	* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Size>: Make sure to
	apply the exception for padded objects to the type of the object.
	* gcc-interface/utils.c (hash_pad_type): New static function.
	(lookup_and_insert_pad_type): Rename into...
	(canonicalize_pad_type): ...this.  Call hash_pad_type, do only one
	lookup with insertion and always return the canonical type.
	(maybe_pad_type): Adjust to above changes.  Set debug type later.
	(pad_type_has_rm_size): New predicate.
	(set_reverse_storage_order_on_pad_type): Adjust to above changes.

From-SVN: r255631
2017-12-14 11:47:24 +00:00
Jonathan Wakely
02aee32767 Improve std::complex test and move to sub-directory
* testsuite/26_numerics/complex/dr2714.cc: Move to ...
	* testsuite/26_numerics/complex/inserters_extractors/char/dr2714.cc:
	... Here. Remove duplicate header and dg-options. Check first invalid
	character gets putback. Remove wchar_t test.

From-SVN: r255630
2017-12-14 11:28:41 +00:00
Richard Biener
b72805798a re PR middle-end/83415 (ICE during gimplification of assignment to read-only vector)
2017-12-14  Richard Biener  <rguenther@suse.de>

	PR c/83415
	c/
	* c-fold.c (c_fully_fold_internal): Treat VIEW_CONVERT_EXPR
	like REALPART_EXPR for the behavior of whether its operand
	is an lvalue.

	* gcc.dg/pr83415.c: New testcase.

From-SVN: r255629
2017-12-14 11:13:34 +00:00
Richard Biener
e729c8e003 re PR tree-optimization/83418 (ICE in extract_range_for_var_from_comparison_expr, at vr-values.c:448)
2017-12-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/83418
	* vr-values.c (vr_values::extract_range_for_var_from_comparison_expr):
	Instead of asserting we don't get unfolded comparisons deal with
	them.

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

From-SVN: r255628
2017-12-14 11:12:52 +00:00
Jakub Jelinek
6dfb83e8d8 re PR bootstrap/83396 (Bootstrap failures with Statement Frontiers)
PR bootstrap/83396
	* var-tracking.c (vt_initialize): Ignore non-DEBUG_INSNs outside of
	basic blocks.  Assert debug bind insns don't appear outside of bbs,
	don't reset them.  Assert insns without BLOCK_FOR_INSN are outside of
	bb.  Simplify.

	* gcc.dg/pr83396.c: New test.

From-SVN: r255627
2017-12-14 12:02:37 +01:00
Jakub Jelinek
aa215959c5 re PR tree-optimization/83198 (ICE in format_floating, at gimple-ssa-sprintf.c:1900)
PR tree-optimization/83198
	* gimple-ssa-sprintf.c (format_floating): Set type solely based on
	dir.modifier, regardless of TREE_TYPE (arg).  Assume non-REAL_CST
	value if arg is a REAL_CST with incompatible type.

	* gcc.dg/pr83198.c: New test.
	* gcc.dg/tree-ssa/pr83198.c: New test.

From-SVN: r255626
2017-12-14 12:01:17 +01:00
Sudakshina Das
8332c5ee8c [PATCH PR81228][AARCH64]Fix ICE by adding LTGT in vec_cmp<mode><v_int_equiv>
This patch is a follow up to the existing discussions on
https://gcc.gnu.org/ml/gcc-patches/2017-07/msg01904.html
Bin had earlier submitted this patch to fix the ICE that
occurs because of the missing LTGT in aarch64-simd.md.
That discussion opened up a new bug report PR81647 for
an inconsistent behavior.

As discussed earlier on the gcc-patches discussion and on
the bug report, PR81647 was occurring because of how UNEQ
was handled in aarch64-simd.md rather than LTGT.
Since __builtin_islessgreater is guaranteed to not give an
FP exception but LTGT might, __builtin_islessgreater gets
converted to ~UNEQ very early on in fold_builtin_unordered_cmp.
Thus I will post a separate patch for correcting how UNEQ and
other unordered comparisons are handled in aarch64-simd.md.

This patch is only adding the missing LTGT to plug the ICE.

Testing done: Checked for regressions on bootstrapped
aarch64-none-linux-gnu and added a new compile time test case
that gives out LTGT to make sure it doesn't ICE

*** gcc/ChangeLog ***

2017-12-14  Sudakshina Das  <sudi.das@arm.com>
	    Bin Cheng  <bin.cheng@arm.com>

	PR target/81228
	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Move LTGT
	to CCFPEmode.
	* config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Add
	LTGT.

*** gcc/testsuite/ChangeLog ***

2017-12-14  Sudakshina Das  <sudi.das@arm.com>

	PR target/81228
	* gcc.dg/pr81228.c: New.

Co-Authored-By: Bin Cheng <bin.cheng@arm.com>

From-SVN: r255625
2017-12-14 10:35:38 +00:00
Kyrylo Tkachov
30af63d7cb [AArch64] Specify fp16 support for Cortex-A55 and Cortex-A75
The Cortex-A55 and Cortex-A75 processors support the fp16 extension.
We already specify them as such in the arm port.
This patch makes aarch64 consistent on this front.

Bootstrapped and tested on aarch64-none-linux-gnu.
Manually checked that compiling with aarch64-none-linux-gnu-gcc -mcpu=cortex-a55 -dM -E - < /dev/null
shows __ARM_FEATURE_FP16_VECTOR_ARITHMETIC and __ARM_FEATURE_FP16_SCALAR_ARITHMETIC being specified
as expected whereas they were not before this patch.

	* config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75,
	cortex-a75.cortex-a55): Specify AARCH64_FL_F16 in the arch features.

From-SVN: r255624
2017-12-14 09:50:33 +00:00
Jakub Jelinek
9096c2c543 re PR c++/79650 (ICE on invalid c++ code with label arithmetic in convert_nontype_argument (pt.c:6515))
PR c++/79650
	* pt.c (convert_nontype_argument): Diagnose
	reduced_constant_expression_p expressions that aren't INTEGER_CST.

	* g++.dg/template/pr79650.C: New test.

From-SVN: r255623
2017-12-14 09:16:51 +01:00
Jerry DeLisle
606778c6f5 re PR libfortran/78549 (Very slow formatted internal file output)
2017-12-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR libgfortran/78549
        * io/inquire.c (inquire_via_unit): Adjust test for existence for
        pre-connected internal units.
        * io/transfer.c (finalize_transfer): When done with a transfer
        to internal units, free the format buffer and close the stream.
        (st_read_done): Delete freeing the stream, now handled using
        sclose in finalize_transfer. (st_write_done): Likewise.
        * io/unit.c (get_unit): Return NULL for special reserved unit
        numbers, signifying not accessible to the user.
        (init_units): Insert the two special internal units into the
        unit treap. This makes these unit structures available without
        further allocations for later use by internal unit I/O. These
        units are automatically deleted by normal program termination.
        * io/unix.c (mem_close): Add a guard check to protect from double free.

From-SVN: r255621
2017-12-14 02:30:49 +00:00
GCC Administrator
e69319afa6 Daily bump.
From-SVN: r255620
2017-12-14 00:16:14 +00:00
Richard Sandiford
e535b963b4 poly_int: add poly-int.h
This patch adds a new "poly_int" class to represent polynomial integers
of the form:

  C0 + C1*X1 + C2*X2 ... + Cn*Xn

It also adds poly_int-based typedefs for offsets and sizes of various
precisions.  In these typedefs, the Ci coefficients are compile-time
constants and the Xi indeterminates are run-time invariants.  The number
of coefficients is controlled by the target and is initially 1 for all
ports.

Most routines can handle general coefficient counts, but for now a few
are specific to one or two coefficients.  Support for other coefficient
counts can be added when needed.

The patch also adds a new macro, IN_TARGET_CODE, that can be
set to indicate that a TU contains target-specific rather than
target-independent code.  When this macro is set and the number of
coefficients is 1, the poly-int.h classes define a conversion operator
to a constant.  This allows most existing target code to work without
modification.  The main exceptions are:

- values passed through ..., which need an explicit conversion to a
  constant

- ?: expression in which one arm ends up being a polynomial and the
  other remains a constant.  In these cases it would be valid to convert
  the constant to a polynomial and the polynomial to a constant, so a
  cast is needed to break the ambiguity.

The patch also adds a new target hook to return the estimated
value of a polynomial for costing purposes.

The patch also adds operator<< on wide_ints (it was already defined
for offset_int and widest_int).  I think this was originally excluded
because >> is ambiguous for wide_int, but << is useful for converting
bytes to bits, etc., so is worth defining on its own.  The patch also
adds operator% and operator/ for offset_int and widest_int, since those
types are always signed.  These changes allow the poly_int interface to
be more predictable.

I'd originally tried adding the tests as selftests, but that ended up
bloating cc1 by at least a third.  It also took a while to build them
at -O2.  The patch therefore uses plugin tests instead, where we can
force the tests to be built at -O0.  They still run in negligible time
when built that way.

2017-12-14  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

gcc/
	* poly-int.h: New file.
	* poly-int-types.h: Likewise.
	* coretypes.h: Include them.
	(POLY_INT_CONVERSION): Define.
	* target.def (estimated_poly_value): New hook.
	* doc/tm.texi.in (TARGET_ESTIMATED_POLY_VALUE): New hook.
	* doc/tm.texi: Regenerate.
	* doc/poly-int.texi: New file.
	* doc/gccint.texi: Include it.
	* doc/rtl.texi: Describe restrictions on subreg modes.
	* Makefile.in (TEXI_GCCINT_FILES): Add poly-int.texi.
	* genmodes.c (NUM_POLY_INT_COEFFS): Provide a default definition.
	(emit_insn_modes_h): Emit a definition of NUM_POLY_INT_COEFFS.
	* targhooks.h (default_estimated_poly_value): Declare.
	* targhooks.c (default_estimated_poly_value): New function.
	* target.h (estimated_poly_value): Likewise.
	* wide-int.h (WI_UNARY_RESULT): Use wi::binary_traits.
	(wi::unary_traits): Delete.
	(wi::binary_traits::signed_shift_result_type): Define for
	offset_int << HOST_WIDE_INT, etc.
	(generic_wide_int::operator <<=): Define for all types and use
	wi::lshift instead of <<.
	(wi::hwi_with_prec): Add a default constructor.
	(wi::ints_for): New class.
	(operator <<): Define for all wide-int types.
	(operator /): New function.
	(operator %): Likewise.
	* selftest.h (ASSERT_KNOWN_EQ, ASSERT_KNOWN_EQ_AT, ASSERT_MAYBE_NE)
	(ASSERT_MAYBE_NE_AT): New macros.

gcc/testsuite/
	* gcc.dg/plugin/poly-int-tests.h,
	gcc.dg/plugin/poly-int-test-1.c,
	gcc.dg/plugin/poly-int-01_plugin.c,
	gcc.dg/plugin/poly-int-02_plugin.c,
	gcc.dg/plugin/poly-int-03_plugin.c,
	gcc.dg/plugin/poly-int-04_plugin.c,
	gcc.dg/plugin/poly-int-05_plugin.c,
	gcc.dg/plugin/poly-int-06_plugin.c,
	gcc.dg/plugin/poly-int-07_plugin.c: New tests.
	* gcc.dg/plugin/plugin.exp: Run them.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r255617
2017-12-14 00:06:02 +00:00
Eric Botcazou
b9f92c0bb7 re PR middle-end/78468 (libgomp.c/reduction-10.c and many more FAIL)
PR middle-end/78468
	* emit-rtl.c (init_emit): Remove ??? comment.
	* explow.c (get_dynamic_stack_size): Take known alignment of stack
	pointer + STACK_DYNAMIC_OFFSET into account in lieu of STACK_BOUNDARY.
	* config/sparc/sparc.h (INIT_EXPANDERS): In 32-bit mode, lower the
	alignment of 3 virtual registers to BITS_PER_WORD.

	* config/sparc/sparc.c (sparc_compute_frame_size): Simplify.

Co-Authored-By: Dominik Vogt <vogt@linux.vnet.ibm.com>

From-SVN: r255616
2017-12-13 23:16:56 +00:00
Peter Bergner
f4615940b1 ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define.
gcc/
	* config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define.
	* config/rs6000/rs6000.c (cpu_supports_info): Use it.

gcc/testsuite/
	* gcc.target/powerpc/cpu-builtin-1.c (htm-no-suspend): Add test.

From-SVN: r255614
2017-12-13 15:20:51 -06:00
Paolo Carlini
ae51fb4781 re PR c++/81061 (ICE modifying read-only variable)
/cp
2017-12-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/81061
	* typeck.c (cp_build_modify_expr): Upon cxx_readonly_error
	immediately return error_mark_node.

/testsuite
2017-12-13  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/81061
	* g++.dg/other/const5.C: New.

From-SVN: r255613
2017-12-13 20:29:11 +00:00
Alexandre Oliva
5ef54d5722 [SFN] don't eliminate regs in markers
Eliminate regs in debug bind insns, but not in markers.

for  gcc/ChangeLog

	PR bootstrap/83396
	* reload1.c (eliminate_regs_in_insn): Skip debug markers.

From-SVN: r255612
2017-12-13 19:09:45 +00:00
Jakub Jelinek
7bd169c861 tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts with the exception of debug begin stmt markers appear...
* tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts
	with the exception of debug begin stmt markers appear before
	labels.

From-SVN: r255611
2017-12-13 19:48:23 +01:00
Jakub Jelinek
60012ddc08 re PR bootstrap/83396 (Bootstrap failures with Statement Frontiers)
PR bootstrap/83396
	* final.c (rest_of_handle_final): Call variable_tracking_main only
	if !flag_var_tracking.

From-SVN: r255610
2017-12-13 19:47:45 +01:00
Alexandre Oliva
3b778d9d12 re PR bootstrap/83396 (Bootstrap failures with Statement Frontiers)
PR bootstrap/83396
	PR debug/83391
	* tree-cfgcleanup.c (remove_forwarder_block): Keep after
	labels debug stmts that can only appear after labels.

	* gcc.dg/torture/pr83396.c: New test.
	* g++.dg/torture/pr83391.C: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r255609
2017-12-13 19:46:43 +01:00
Jonathan Wakely
3ca652c199 PR libstdc++/59568 fix error handling for std::complex stream extraction
PR libstdc++/59568
	* include/std/complex (operator>>): Implement proposed resolution to
	LWG 2714. Use putback if and only if a character has been successfully
	extracted but isn't a delimiter. Use ctype::widen and traits::eq when
	testing if extracted characters match delimiters.
	* testsuite/26_numerics/complex/dr2714.cc: New test.

From-SVN: r255608
2017-12-13 17:02:14 +00:00
Alexander Monakov
8041c62955 sel-sched: fix sel_rank_for_schedule for qsort (PR 82398)
PR rtl-optimization/82398
	* sel-sched.c (sel_rank_for_schedule): Fix check for zero
	EXPR_USEFULNESS in priority comparison.

From-SVN: r255607
2017-12-13 19:30:29 +03:00
Segher Boessenkool
2046f23f52 combine: Fix PR83393
In move_deaths we move a REG_DEAD note if the instruction combination
has extended the lifetime of a register so that the existing note is
no longer valid.  We find that note using reg_stat, but what that finds
can refer to a later insn.  If so, we cannot use the cached value.  This
patch implements that.


	PR rtl-optimization/83393
	* combine.c (move_deaths): If reg_stat points to a too new insn in
	last_death, do not use it: find the proper insn instead.

gcc/testsuite/
	PR rtl-optimization/83393
	* gcc.dg/pr83393.c: New testcase.

From-SVN: r255606
2017-12-13 15:05:57 +01:00
Nathan Sidwell
2b031ef48e [PR C++/15272] lookups with ambiguating dependent base
https://gcc.gnu.org/ml/gcc-patches/2017-12/msg00766.html
	PR c++/15272
	* pt.c (tsubst_baselink): Don't repeat the lookup for
	non-dependent baselinks.

	PR c++/15272
	* g++.dg/template/pr71826.C: Adjust for 15272 fix.

From-SVN: r255605
2017-12-13 12:40:45 +00:00
Eric Botcazou
0c8af82a15 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Initialize locus.
From-SVN: r255603
2017-12-13 09:30:25 +00:00
Eric Botcazou
692317f431 trans.c (process_freeze_entity): Be prepared for a package without body.
* gcc-interface/trans.c (process_freeze_entity): Be prepared for a
	package without body.

From-SVN: r255601
2017-12-13 09:18:24 +00:00
Eric Botcazou
a3fc8f169f decl.c (gnat_to_gnu_entity): Robustify test for types descendant of System.Address.
* gcc-interface/decl.c (gnat_to_gnu_entity): Robustify test for types
	descendant of System.Address.
	(gnat_to_gnu_subprog_type): Likewise.

From-SVN: r255599
2017-12-13 09:05:07 +00:00
Kito Cheng
b8d7e076ed Use C version of multi3 for RVE support.
libgcc/
	* config/riscv/t-elf: Use multi3.c instead of multi3.S.
	* config/riscv/multi3.c: New file.
	* config/riscv/multi3.S: Remove.

From-SVN: r255598
2017-12-12 22:25:06 -08:00
GCC Administrator
9e921ddb43 Daily bump.
From-SVN: r255596
2017-12-13 00:16:21 +00:00
Jeff Law
df80fc5328 re PR tree-optimization/83298 (wrong code at -O1, -O2 and -O3 on x86_64-linux-gnu)
PR tree-optimization/83298
	PR tree-optimization/83362
	PR tree-optimization/83383
	* gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Make
	push_value_range a public interface.  Add new argument to
	record_ranges_from_stmt.
	* gimple-ssa-evrp-analyze.c
	(evrp_range_analyzer::record_ranges_from_stmt): Add new argument.
	Update comments.  Handle recording temporary equivalences.
	* tree-ssa-dom.c (dom_opt_opt_walker::before_dom_children): Add
	new argument to call to evrp_range_analyzer::record_ranges_from_stmt.
	* gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Likewise.
	* tree-ssa-threadedge.c: Include alloc-pool.h, vr-values.h and
	gimple-ssa-evrp-analyze.h.
	(record_temporary_equivalences_from_phis): Add new argument.  When
	the PHI arg is an SSA_NAME, set the result's range to the range
	of the PHI arg.
	(record_temporary_equivalences_from_stmts_at_dest): Record ranges
	from statements too.
	(thread_through_normal_block): Accept new argument, evrp_range_analyzer.
	Pass it down to children as needed.
	(thread_outgoing_edges): Likewise.
	(thread_across_edge): Likewise.   Push/pop range state as needed.
	* tree-ssa-threadedge.h (thread_outgoing_edges): Update prototype.

	PR tree-optimization/83298
	PR tree-optimization/83362
	PR tree-optimization/83383
	* gcc.c-torture/execute/pr83298.c: New test.
	* gcc.c-torture/execute/pr83362.c New test.
	* gcc.c-torture/execute/pr83383.c New test.

From-SVN: r255593
2017-12-12 15:46:46 -07:00
Aaron Sawdey
708eab9b5b re PR target/82190 (Possibly latent miscompilation issue on ppc64le-linux-gnu for memcpy-bi.c with -fweb -fno-optimize-strlen)
2017-12-12  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

	PR target/82190
	* config/rs6000/rs6000-string.c (expand_block_compare,
	expand_strn_compare): Fix set_mem_size() calls.

From-SVN: r255592
2017-12-12 16:22:53 -06:00
Jason Merrill
48f43f9547 Remove type_dependent_init_p.
* decl.c (value_dependent_init_p): Check the type of a CONSTRUCTOR.
	(type_dependent_init_p): Remove.

From-SVN: r255591
2017-12-12 17:09:48 -05:00
Jason Merrill
5eb63cfd03 PR c++/82115 - ICE with variable initialized with its own address.
* cp-tree.h (struct lang_decl_base): Add dependent_init_p.
	(DECL_DEPENDENT_INIT_P, SET_DECL_DEPENDENT_INIT_P): New.
	* decl.c (cp_finish_decl): Set it.
	(duplicate_decls): Copy it.
	* pt.c (tsubst_decl): Clear it.
	(value_dependent_expression_p): Revert earlier change.  Check it.

From-SVN: r255590
2017-12-12 17:09:42 -05:00
Uros Bizjak
331e2db3b8 i386.c (PTA_SKYLAKE_AVX512): Add PTA_CLWB.
* config/i386/i386.c (PTA_SKYLAKE_AVX512): Add PTA_CLWB.
	(PTA_CANNONLAKE): Remove PTA_CLWB.

From-SVN: r255589
2017-12-12 23:05:19 +01:00
Bill Schmidt
95e5bea001 re PR target/83332 (new test case gfortran.dg/vect/pr81303.f fails (r255499))
2017-12-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/83332
	* config/rs6000/vector.md (vcondv2dfv2di): New define_expand.
	(vcondv2div2df): Likewise.
	(vconduv2dfv2di): Likewise.

From-SVN: r255588
2017-12-12 20:44:57 +00:00
Thomas Koenig
8eedea2cde intrinsic.texi (MAXLOC): Remove double description of return value.
2017-12-12  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* intrinsic.texi (MAXLOC): Remove double description
	of return value.
	(MINLOC): Likewise.

From-SVN: r255587
2017-12-12 19:29:53 +00:00
Jakub Jelinek
be19453896 builtins.def (BUILT_IN_NEXTAFTER, [...]): Use ATTR_MATHFN_ERRNO instead of ATTR_MATHFN_FPROUNDING_ERRNO.
* builtins.def (BUILT_IN_NEXTAFTER, BUILT_IN_NEXTAFTERF,
	BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, BUILT_IN_NEXTTOWARDF,
	BUILT_IN_NEXTTOWARDL): Use ATTR_MATHFN_ERRNO instead of
	ATTR_MATHFN_FPROUNDING_ERRNO.

From-SVN: r255586
2017-12-12 19:53:01 +01:00
Jonathan Wakely
91d01b33e8 PR libstdc++/83395 fix invocable traits for INVOKE<cv void>
PR libstdc++/83395
	* include/std/type_traits (__is_invocable_impl): Remove partial
	specialization for INVOKE<void> and restore is_void<R> check in
	primary template.
	(__is_nt_invocable_impl): Likewise.
	* testsuite/20_util/is_invocable/83395.cc: New test.
	* testsuite/20_util/is_nothrow_invocable/83395.cc: New test.

From-SVN: r255584
2017-12-12 17:42:19 +00:00
Steven Munroe
71b2d1371a Updated email in MAINTAINERS file.
From-SVN: r255583
2017-12-12 17:40:24 +00:00
Tony Reix
acdef7f88a go-lang.c (TARGET_AIX): Define if not defined.
* go-lang.c (TARGET_AIX): Define if not defined.
	(go_langhook_init): Set nil_check_size_threshold to -1 on AIX.

Co-Authored-By: Ian Lance Taylor <iant@golang.org>

From-SVN: r255582
2017-12-12 17:29:27 +00:00
Stafford Horne
842df93eca configure.ac: Remove logic adding gdb to noconfigsdirs for or1k.
2017-12-12  Stafford Horne  <shorne@gmail.com>

	* configure.ac: Remove logic adding gdb to noconfigsdirs for or1k.
	* configure: Regenerate.

From-SVN: r255581
2017-12-12 14:23:05 +00:00
Rainer Orth
2f1392aee1 Fix g++.old-deja/g++.pt/const2.C on Solaris
* lib/gcc-dg.exp (process-message): Avoid additional whitespace in
	$expmsg.

From-SVN: r255580
2017-12-12 13:08:31 +00:00
Richard Biener
a365945b40 re PR tree-optimization/83385 ([graphite] Wrong code w/ -O1 -floop-nest-optimize)
2017-12-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/83385
	* graphite-scop-detection.c (get_order, order): Remove.
	(bb_to_rpo): New global.
	(cmp_pbbs): Adjust.
	(build_scops): Sort pbbs in RPO order.

	* gcc.dg/graphite/pr83385.c: New testcase.

From-SVN: r255579
2017-12-12 12:15:38 +00:00
James Greenhalgh
c5060cadf0 [Patch combine] Don't create vector mode ZERO_EXTEND from subregs
The code in simplify set to handle transforming the paradoxical subreg
expression:

  (set FOO (subreg:M (mem:N BAR) 0))

in to:

  (set FOO (zero_extend:M (mem:N BAR)))

Does not consider the case where M is a vector mode, allowing it to
construct (for example):

  (zero_extend:V4SI (mem:SI))

For one, this has the wrong semantics - but fortunately we fail long
before then in expand_compound_operation.

We need to explicitly reject vector modes from this transformation.

gcc/

	* combine.c (simplify_set): Do not transform subregs to zero_extends
	if the destination mode is a vector mode.

From-SVN: r255578
2017-12-12 11:27:54 +00:00
Marek Polacek
49e6a6c023 re PR c/82679 (Uses of typedefs of arrays of _Atomic-qualified types are rejected)
PR c/82679
	* c-decl.c (grokdeclarator): Check declspecs insted of atomicp.

	* gcc.dg/c11-atomic-5.c: New test.

From-SVN: r255577
2017-12-12 10:38:09 +00:00
Jakub Jelinek
6c939c2e9c re PR rtl-optimization/83363 (wrong code at -O2 -fno-forward-propagate)
PR rtl-optimization/83363
	PR rtl-optimization/83364
	* gcc.dg/pr83363.c: New test.
	* gcc.dg/pr83364.c: New test.

From-SVN: r255576
2017-12-12 10:51:05 +01:00
Jakub Jelinek
555758de90 re PR tree-optimization/83359 (ICE in expand_LOOP_DIST_ALIAS, at internal-fn.c:2362)
PR tree-optimization/83359
	* tree-cfg.h (fold_loop_internal_call): Declare.
	* tree-vectorizer.c (fold_loop_internal_call): Moved to ...
	* tree-cfg.c (fold_loop_internal_call): ... here.  No longer static.
	(find_loop_dist_alias): New function.
	(move_sese_region_to_fn): If any dloop->orig_loop_num value is
	updated, also adjust any corresponding LOOP_DIST_ALIAS internal
	calls.

	* gcc.dg/graphite/pr83359.c: New test.

From-SVN: r255575
2017-12-12 10:21:35 +01:00
Jakub Jelinek
12c667b5b4 re PR tree-optimization/80631 (Compiling with -O3 -mavx2 gives wrong code)
PR tree-optimization/80631
	* tree-vect-loop.c (get_initial_def_for_reduction): Fix comment typo.
	(vect_create_epilog_for_reduction): Add INDUC_VAL and INDUC_CODE
	arguments, for INTEGER_INDUC_COND_REDUCTION use INDUC_VAL instead of
	hardcoding zero as the value if COND_EXPR is never true.  For
	INTEGER_INDUC_COND_REDUCTION don't emit the final COND_EXPR if
	INDUC_VAL is equal to INITIAL_DEF, and use INDUC_CODE instead of
	hardcoding MAX_EXPR as the reduction operation.
	(is_nonwrapping_integer_induction): Allow negative step.
	(vectorizable_reduction): Compute INDUC_VAL and INDUC_CODE for
	vect_create_epilog_for_reduction, if no value is suitable, don't
	use INTEGER_INDUC_COND_REDUCTION for now.  Formatting fixes.

	* gcc.dg/vect/pr80631-1.c: New test.
	* gcc.dg/vect/pr80631-2.c: New test.
	* gcc.dg/vect/pr65947-13.c: Expect integer induc cond reduction
	vectorization.

From-SVN: r255574
2017-12-12 09:55:02 +01:00
Richard Biener
5b0c69ae65 re PR middle-end/81889 (bogus warnings with -Wmaybe-uninitialized -O3)
2017-12-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/81889
	* tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness): Use
	range info from the non-wrapping IV instead of just the range
	of the type.

	* gfortran.dg/pr81889.f90: New testcase.
	* gcc.dg/tree-ssa/pr64183.c: Adjust.

From-SVN: r255573
2017-12-12 08:50:31 +00:00
Julia Koval
e157d45677 Enable VAES support [2/5]
gcc/
	* config.gcc: Add vaesintrin.h.
	* config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI): New type.
	* config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
	__builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi): New builtins.
	* config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
	* config/i386/immintrin.h: Include vaesintrin.h.
	* config/i386/sse.md (vaesdec_<mode>): New pattern.
	* config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
	_mm_aesdec_epi128): New intrinsics.

gcc/testsuite/
	* gcc.target/i386/avx512-check.h: Handle bit_VAES.
	* gcc.target/i386/avx512f-aesdec-2.c: New test.
	* gcc.target/i386/avx512fvl-vaes-1.c: Ditto.
	* gcc.target/i386/avx512vl-aesdec-2.c: Ditto.
	* gcc.target/i386/i386.exp (check_effective_target_avx512vaes): New.

From-SVN: r255572
2017-12-12 05:55:23 +00:00