Commit Graph

164260 Commits

Author SHA1 Message Date
H.J. Lu a70b966196 i386: Correct _mm512_mask3_fmaddsub_round_pd
Define _mm512_mask3_fmaddsub_round_pd with
__builtin_ia32_vfmaddsubpd512_mask, instead of
__builtin_ia32_vfmaddpd512_mask.

	PR target/87517
	* config/i386/avx512fintrin.h (_mm512_mask_fmaddsub_round_pd):
	Defined with __builtin_ia32_vfmaddsubpd512_mask.

From-SVN: r264935
2018-10-08 07:54:53 -07:00
Richard Biener 45e87b24f3 x86-tune-costs.h (znver1_cost): Make AVX256 vector loads cost the same as AVX128 ones.
2018-10-08  Richard Biener  <rguenther@suse.de>

	* config/i386/x86-tune-costs.h (znver1_cost): Make AVX256 vector loads
	cost the same as AVX128 ones.

From-SVN: r264934
2018-10-08 14:47:40 +00:00
Ian Lance Taylor 3cbb7cbb09 libgo: update to Go 1.11.1 release
Reviewed-on: https://go-review.googlesource.com/c/140277

From-SVN: r264932
2018-10-08 14:21:30 +00:00
Paul Koning a3368b8ea1 Fix ICE on block move when using LRA.
* config/pdp11/pdp11-protos.h (output_block_move): Remove.
    (expand_block_move): New function.
    * config/pdp11/pdp11.c (output_block_move): Remove.
    (expand_block_move): New function.
    * config/pdp11/pdp11.h (MOVE_RATIO): New definition.
    * config/pdp11/pdp11.md (movmemhi): Use expand_block_move.
    (*movmemhi1): Remove.

From-SVN: r264930
2018-10-08 10:16:13 -04:00
Martin Liska a3927ffb90 Come up with gcc/testsuite/g++.target/i386/i386.dg and move there some tests.
2018-10-08  Martin Liska  <mliska@suse.cz>

	* gcc.target/i386/i386.exp: Move procedures to
	target-supports.exp.
	* g++.target/i386/i386.exp: New file.
	* gcc.target/i386/mv*.C: Move here tests and remove
	target filter in these tests.

From-SVN: r264929
2018-10-08 14:12:53 +00:00
Cesar Philippidis ed9984a030 [Fortran] Disable "Assignment to contiguous pointer from non-contiguous target" error
gcc/fortran/
	* expr.c (gfc_check_pointer_assign): Demote "Assignment to
	contiguous pointer from non-contiguous target" to a warning.

	gcc/testsuite/
	* gfortran.dg/contiguous_4.f90: Adjust.
	* gfortran.dg/contiguous_4.f90: New test.

From-SVN: r264928
2018-10-08 07:04:45 -07:00
Robin Dapp 49108562af S/390: Increase latencies for some FP instructions
This patch increases the latency of some floating point instructions to better
match the real machine's behavior.

2018-10-08  Robin Dapp  <rdapp@linux.ibm.com>

	* config/s390/2827.md: Increase latencies for some FP instructions.

From-SVN: r264927
2018-10-08 13:16:32 +00:00
Richard Biener 269ba95042 tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Open a dump scope.
2018-10-08  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
	Open a dump scope.
	* tree-vectorizer.c (dump_stmt_cost): Add cost param and dump it.
	* tree-vectorizer.h (dump_stmt_cost): Adjust.
	(add_stmt_cost): Dump return value of the hook.

From-SVN: r264923
2018-10-08 12:29:51 +00:00
Jonathan Wakely aca0dcde1f PR libstdc++/87538 Verify fix for std::experimental::not_fn
PR libstdc++/87538
	* testsuite/experimental/functional/87538.cc: New test.

From-SVN: r264922
2018-10-08 13:17:58 +01:00
Jonathan Wakely 606f6be67b PR libstdc++/87538 fix std::not_fn exception specifications
PR libstdc++/87538
	* include/std/functional (_Not_fn::operator()): Check value of
	__is_nothrow_invocable as well.
	* testsuite/20_util/function_objects/not_fn/87538.cc: New test.

From-SVN: r264921
2018-10-08 13:07:22 +01:00
Paul Thomas 0054ef84b0 re PR fortran/86372 (Segfault on ASSOCIATE statement with CHARACTER variable)
2018-10-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/86372
	* trans-stmt.c (trans_associate_var): Character associate names
	with variable string length do not have to be deferred length
	for the string length to be set, if variable.

2018-10-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/86372
	* gfortran.dg/associate_41.f90: New test.

From-SVN: r264919
2018-10-08 11:17:10 +00:00
Rainer Orth 87454aad99 Require string merging support in gnat.dg/string_merge?.adb etc.
* gcc.dg/merge-all-constants-2.c: Require string_merging support.
	* gnat.dg/string_merge1.adb: Likewise.
	* gnat.dg/string_merge2.adb: Likewise.

From-SVN: r264918
2018-10-08 11:03:22 +00:00
Rainer Orth 1a2a0b6044 Require constructor priority support in c-c++-common/Wprio-ctor-dtor.c
* c-c++-common/Wprio-ctor-dtor.c: Require init_priority support.

From-SVN: r264917
2018-10-08 10:59:36 +00:00
Martin Liska 1a097fd827 Limit a MV test just for x86 target.
2018-10-08  Martin Liska  <mliska@suse.cz>

	* g++.dg/ext/pr82625.C: Add dg-compile filter.

From-SVN: r264916
2018-10-08 09:53:44 +00:00
Paul Thomas c16ac98ea9 re PR fortran/86372 (Segfault on ASSOCIATE statement with CHARACTER variable)
2018-10-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/86372
	* trans-stmt.c (trans_associate_var): Character associate names
	with variable string length do not have to be deferred length
	for the string length to be set, if variable.

2018-10-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/86372
	* gfortran.dg/associate_41.f90: New test.

From-SVN: r264915
2018-10-08 09:11:03 +00:00
Paolo Carlini a52cdecf11 re PR c++/71128 ([concepts] ICE on ill-formed explicit instantiation of a function concept)
/cp
2018-10-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71128
	* pt.c (do_decl_instantiation): Per 12.6.8/5, a concept cannot be
	explicitly instantiated.

/testsuite
2018-10-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71128
	* g++.dg/concepts/pr71128.C: New.

From-SVN: r264914
2018-10-08 09:02:55 +00:00
Richard Sandiford 8656dafa39 Don't ICE on vectors of enums (PR 87286)
We've traditionally allowed vectors of enums (not sure if that's
deliberate) but vector_types_compatible_elements_p checked for
INTEGER_TYPE rather than INTEGRAL_TYPE_P.

2018-10-08  Richard Sandiford  <richard.sandiford@arm.com>

gcc/c-family/
	PR c/87286
	* c-common.c (vector_types_compatible_elements_p): Use
	INTEGRAL_TYPE_P instead of checking only for INTEGER_TYPE.

gcc/testsuite/
	PR c/87286
	* gcc.dg/pr87286.c: New test.

From-SVN: r264913
2018-10-08 08:16:13 +00:00
Richard Biener 090680870b re PR middle-end/63155 (memory hog)
2018-10-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63155
	* tree-ssa-propagate.c (add_ssa_edge): Do cheap check first.
	(ssa_propagation_engine::ssa_propagate): Remove redundant
	bitmap bit clearing.

From-SVN: r264912
2018-10-08 07:16:28 +00:00
François Dumont edec2bad9a list (list<>::cbegin()): Use C++11 direct initialization.
2018-10-08  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/list (list<>::cbegin()): Use C++11 direct
	initialization.
	(list<>::cend()): Likewise.
	(list<>::emplace<>(const_iterator, _Args&&...)): Likewise.
	(list<>::insert(const_iterator, initializer_list<>)): Likewise.
	(list<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
	(list<>::erase(const_iterator, const_iterator)): Ensure consistent
	iterator comparisons.
	(list<>::splice(const_iterator, list&&, const_iterator,
	const_iterator)): Likewise.

From-SVN: r264911
2018-10-08 05:49:12 +00:00
GCC Administrator c0485831b7 Daily bump.
From-SVN: r264910
2018-10-08 00:16:56 +00:00
GCC Administrator 7a7bd6960d Daily bump.
From-SVN: r264906
2018-10-07 00:16:21 +00:00
Janne Blomqvist c0ab1530d4 Use gfc_charlen_type instead of int for string lenghts
This patch cleans up a few places where I noticed the code was still
using int instead gfc_charlen_type for string lengths.  Regtested on
x86_64-pc-linux-gnu, committed as obvious.

libgfortran/ChangeLog:

2018-10-06  Janne Blomqvist  <jb@gcc.gnu.org>

	* io/unix.c (compare_file_filename): Use gfc_charlen_type instead
	of int for string length.
	(inquire_sequential): Likewise.
	(inquire_direct): Likewise.
	(inquire_formatted): Likewise.
	(inquire_unformatted): Likewise.
	(inquire_access): Likewise.
	(inquire_read): Likewise.
	(inquire_write): Likewise.
	(inquire_readwrite): Likewise.
	* io/unix.h (compare_file_filename): Likewise.
	(inquire_sequential): Likewise.
	(inquire_direct): Likewise.
	(inquire_formatted): Likewise.
	(inquire_unformatted): Likewise.
	(inquire_read): Likewise.
	(inquire_write): Likewise.
	(inquire_readwrite): Likewise.

From-SVN: r264901
2018-10-06 21:21:00 +03:00
Thomas Koenig 7318fdcaaa re PR fortran/86111 (ICE in gfc_arith_concat, at fortran/arith.c:985)
2018-10-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/86111
	* gfortran.h (enum arith): Add ARITH_WRONGCONCAT.
	* arith.h (gfc_arith_error): Issue error for ARITH_WRONGCONCAT.
	(gfc_arith_concat):  If the types of op1 and op2 are not
	character of if their kinds do not match, issue ARITH_WRONGCONCAT.

2018-10-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/86111
	* gfortran.dg/array_constructor_type_23.f90: New test.

From-SVN: r264900
2018-10-06 18:20:14 +00:00
Paul Thomas 2b03b800d8 re PR fortran/83999 (ICE in gfc_trans_assignment_1, at fortran/trans-expr.c:10233)
2018-10-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/83999
	* resolve.c (resolve_fl_procedure): Include class functions in
	the test that elemental function results be scalar.

2018-10-06  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/83999
	* gfortran.dg/elemental_function_4.f90 : New test.

From-SVN: r264899
2018-10-06 15:14:29 +00:00
Thomas Koenig f64b9ed94c re PR fortran/84640 (gcc/fortran/simplify.c:2587:9: runtime error: pointer index expression with base 0x0000090de160 overflowed to 0xffffffffc0632960)
2018-10-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/84640
	* simplify.c (gfc_simplify_cshift): Extend size of hs_ex and ss_ex
	by one. Set extents one past the array boundaries to zero to avoid
	warning with instrumented compiler.
	(gfc_simplify_eoshift): Likewise, only for ss_ex.

From-SVN: r264898
2018-10-06 11:45:05 +00:00
Peter Bergner a141f2d862 re PR rtl-optimization/86939 (IRA incorrectly creates an interference between a pseudo register and a hard register)
gcc/
	PR rtl-optimization/86939
	PR rtl-optimization/87479
	* ira.h (non_conflicting_reg_copy_p): New prototype.
	* ira-lives.c (ignore_reg_for_conflicts): New static variable.
	(make_hard_regno_dead): Don't add conflicts for register
	ignore_reg_for_conflicts.
	(make_object_dead): Likewise.
	(non_conflicting_reg_copy_p): New function.
	(process_bb_node_lives): Set ignore_reg_for_conflicts for copies.
	Remove special conflict handling of REAL_PIC_OFFSET_TABLE_REGNUM.
	* lra-lives.c (ignore_reg_for_conflicts): New static variable.
	(make_hard_regno_dead): Don't add conflicts for register
	ignore_reg_for_conflicts.  Remove special conflict handling of
	REAL_PIC_OFFSET_TABLE_REGNUM.  Remove now unused argument
	check_pic_pseudo_p and update callers.
	(mark_pseudo_dead): Don't add conflicts for register
	ignore_reg_for_conflicts.
	(process_bb_lives): Set ignore_reg_for_conflicts for copies.

gcc/testsuite/
	PR rtl-optimization/86939
	PR rtl-optimization/87479
	* gcc.target/powerpc/pr86939.c: New test.
	* gcc/testsuite/gcc.target/i386/pr49095.c: Fix expected results.

From-SVN: r264897
2018-10-05 21:12:30 -05:00
GCC Administrator fb6f9bbc75 Daily bump.
From-SVN: r264896
2018-10-06 00:17:07 +00:00
Andrew Waterman 1fcbfb00fc RISC-V: Fix -fsignaling-nans for glibc testsuite.
gcc/
	* config/riscv/riscv.md (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4):
	Add define_expand.  Add ! HONOR_SNANS check to current pattern.  Add
	new pattern using HONOR_SNANS that emits one extra instruction.

Co-Authored-By: Jim Wilson <jimw@sifive.com>

From-SVN: r264892
2018-10-05 13:18:21 -07:00
Segher Boessenkool a3a81f2922 rs6000: Some mfcr pattern simplification
* config/rs6000/rs6000.md (unnamed mfcr scc_comparison_operator
	patterns): Merge SI and DI patterns to a GPR pattern.
	(unnamed define_insn and define_split for record form of that): Merge
	to a single define_insn_and_split pattern.

From-SVN: r264889
2018-10-05 21:40:36 +02:00
Bernd Edlinger c1ec62f1fb string_merge1.adb: Fix test expectations.
2018-10-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gnat.dg/string_merge1.adb: Fix test expectations.
        * gnat.dg/string_merge2.adb: Likewise.

From-SVN: r264888
2018-10-05 19:19:42 +00:00
David Malcolm 0d48e8779c Support string locations for C++ in -Wformat (PR c++/56856)
-Wformat in the C++ FE doesn't work as well as it could:
(a) it doesn't report precise locations within the string literal, and
(b) it doesn't underline arguments for those arguments !CAN_HAVE_LOCATION_P,
despite having location wrapper nodes.

For example:

  Wformat-ranges.C:32:10: warning: format '%s' expects argument of type 'char*', but argument 2 has type 'int' [-Wformat=]
  32 |   printf("hello %s", 42);
     |          ^~~~~~~~~~

(a) is due to not wiring up the langhook for extracting substring
    locations.

    This patch uses the one in c-family; it also fixes string literal
    parsing so that it records string concatenations (needed for
    extracting substring locations from concatenated strings).

(b) is due to the call to maybe_constant_value here:
       fargs[j] = maybe_constant_value (argarray[j]);
    within build_over_call.

    The patch fixes this by building a vec of location_t values when
    calling check_function_arguments.
    I attempted to eliminate the maybe_constant_value call here, but
    it's needed by e.g. check_function_sentinel for detecting NULL,
    and that code is in "c-family", so it can't simply call into
    maybe_constant_value (which is in "cp").

With this patch, the output for the above example is improved to:

  Wformat-ranges.C:32:18: warning: format '%s' expects argument of type 'char*', but argument 2 has type 'int' [-Wformat=]
  32 |   printf("hello %s", 42);
     |                 ~^   ~~
     |                  |   |
     |                  |   int
     |                  char*
     |                 %d

gcc/cp/ChangeLog:
	PR c++/56856
	* call.c (build_over_call): Build a vec of locations of the
	arguments before the call to maybe_constant_value, and pass to
	check_function_arguments.
	* cp-lang.c (LANG_HOOKS_GET_SUBSTRING_LOCATION): Define as
	c_get_substring_location.
	* parser.c (cp_parser_string_literal): Capture string
	concatenation locations.

gcc/ChangeLog:
	PR c++/56856
	* input.c (expand_location_to_spelling_point): Add param "aspect"
	and use rather than hardcoding LOCATION_ASPECT_CARET.
	(get_substring_ranges_for_loc): Handle the case of a single token
	within a macro expansion.
	* input.h (expand_location_to_spelling_point): Add "aspect" param,
	defaulting to LOCATION_ASPECT_CARET.

gcc/testsuite/ChangeLog:
	PR c++/56856
	* g++.dg/ext/builtin4.C: Set expected location for warning to the
	correct location within the format string.
	* g++.dg/plugin/plugin.exp (plugin_test_list): Add the plugin and
	files for testing locations within string literal locations from
	the C frontend.
	* g++.dg/warn/Wformat-method.C: New test.
	* g++.dg/warn/Wformat-pr71863.C: New test.
	* g++.dg/warn/Wformat-ranges-c++11.C: New test.
	* g++.dg/warn/Wformat-ranges.C: New test, based on
	gcc.dg/format/diagnostic-ranges.c.
	* gcc.dg/plugin/diagnostic-test-string-literals-1.c
	(test_multitoken_macro): Generalize expected output to work with
	both C and C++.
	* gcc.dg/plugin/diagnostic-test-string-literals-2.c
	(test_stringified_token_1): Likewise.
	(test_stringified_token_3): Likewise.

From-SVN: r264887
2018-10-05 19:02:17 +00:00
Uros Bizjak 1f58c814c0 * config/i386/i386.md: Reorder cmpi patterns.
From-SVN: r264886
2018-10-05 20:59:04 +02:00
Uros Bizjak 874761d228 i386.md (*cmpxf_cc_i387): Remove pattern.
* config/i386/i386.md (*cmpxf_cc_i387): Remove pattern.
	(*cmp<mode>_cc_i387): Ditto.
	(*cmpu<mode>_cc_i387): Ditto.
	(*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
	* config/i386/i386.c (ix86_expand_fp_compare): Remove
	"scratch" argument.
	<case IX86_FPCMP_SAHF>: Do not generate pattern with HImode clobber.
	Emit x86_sahf_1 pattern.
	(ix86_expand_compare): Update call to ix86_expand_fp_compare.
	(ix86_expand_carry_flag_compare): Ditto.

From-SVN: r264884
2018-10-05 20:48:56 +02:00
Paul Koning 7717110a42 Add some pdp11 target hook definitions for C++
* config/pdp11/pdp11.c (TARGET_CXX_GUARD_TYPE): Define.
    (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define.
    (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
    (pdp11_guard_type): New function.

From-SVN: r264883
2018-10-05 14:08:34 -04:00
Ian Lance Taylor 7fc9c2e52f libgo: use inline assembly in favor of call to _xgetbv()
Use inline assembly in the implementation of internal_cpu.xgetbv as
    opposed to a call to the intrinsic _xgetbv(), since non-gcc compilers
    (e.g. clang) may or may not have support for it.
    
    Reviewed-on: https://go-review.googlesource.com/c/140137

From-SVN: r264882
2018-10-05 17:51:57 +00:00
Paul Koning d5a9895595 Remove -mfloat32, -mfloat64 switches from pdp11 target.
* config/pdp11/pdp11.h (FLOAT_TYPE_SIZE): Always 32.
    * config/pdp11/pdp11.opt (mfloat32): Remove.
    (mfloat64): Remove.
    * doc/invoke.texi (pdp11 -mfloat32): Remove:
    (pdp11 -mfloat64): Remove.

From-SVN: r264881
2018-10-05 13:37:56 -04:00
David Malcolm 9a85d982cc testsuite: multiline.exp: implement optional target/xfail selector
gcc/testsuite/ChangeLog:
	* lib/multiline.exp (proc dg-end-multiline-output): Check argument
	count.  If there's a 3rd argument, use dg-process-target on it,
	bailing out, or recording expected failures as "maybe_x".
	(proc handle-multiline-outputs): Extract "maybe_x", and use it
	to convert pass/fail into xpass/xfail.

From-SVN: r264880
2018-10-05 17:35:55 +00:00
Uros Bizjak 08993ffb52 i386.md (*cmpxf_i387): Change operand 2 predicate to reg_or_0_operand.
* config/i386/i386.md (*cmpxf_i387): Change operand 2 predicate
	to reg_or_0_operand.  Add "C" constraint.
	(*cmpxf_cc_i387): Ditto.
	(*cmp<mode>_i387): Change operand 2 predicate
	to nonimm_or_0_operand.  Add "C" constraint.
	(*cmp<mode>_cc_i387): Ditto.
	(*cmp<mode>_0_i387): Remove insn pattern.
	(*cmp<mode>_0_cc_i387): Ditto.

From-SVN: r264879
2018-10-05 19:07:17 +02:00
Uros Bizjak 808d8de5a2 constraints.md ("C"): Do not depend on TARGET_SSE.
* config/i386/constraints.md ("C"): Do not depend on TARGET_SSE.
	* config/i386/predicates.md (nonimm_or_0_operand): Rename
	from vector_move_operand.  Update all uses.

From-SVN: r264877
2018-10-05 18:45:52 +02:00
Martin Sebor f343165275 PR tree-optimization/87490 - ICE in expand_builtin_strnlen with a constant argument and non-constant bound
gcc/ChangeLog:

	PR tree-optimization/87490
	* builtins.c (expand_builtin_strnlen): Handle a null data.decl
	consistently.

gcc/testsuite/ChangeLog:

	PR tree-optimization/87490
	* gcc.dg/pr87490.c: New test.
	* gcc.dg/warn-strnlen-no-nul-2.c: Same.

From-SVN: r264876
2018-10-05 10:43:11 -06:00
François Dumont e0b9bc230a 2018-10-05 François Dumont <fdumont@gcc.gnu.org>
* include/bits/stl_tree.h
	(_Rb_tree_iterator<>::operator==): Make inline friend.
	(_Rb_tree_iterator<>::operator!=): Likewise.
	(_Rb_tree_const_iterator<>::operator==): Likewise.
	(_Rb_tree_const_iterator<>::operator!=): Likewise.
	(operator==(const _Rb_tree_iterator<>&,
	const _Rb_tree_const_iterator&)): Remove.
	(operator!=(const _Rb_tree_iterator<>&,
	const _Rb_tree_const_iterator&)): Remove.
	(operator==(const _Rb_tree<>&, const _Rb_tree<>&)): Make inline friend.
	(operator<(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
	(operator!=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise and
	deprecate.
	(operator>(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
	(operator<=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
	(operator>=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise.
	* include/debug/map.h (map<>::erase(const_iterator, const_iterator)):
	Compare __victim with _Base::cend().
	* include/debug/multimap.h
	(multimap<>::erase(const_iterator, const_iterator)): Likewise.
	* include/debug/set.h (set<>::erase(const_iterator, const_iterator)):
	Compare __victim with _Base::cend().
	* include/debug/multiset.h
	(multiset<>::erase(const_iterator, const_iterator)): Likewise.

From-SVN: r264875
2018-10-05 16:01:39 +00:00
Steve Ellcey 825e64583e re PR tree-optimization/71625 (missing strlen optimization on different array initialization style)
2018-10-05  Steve Ellcey  <sellcey@cavium.com>

	PR tree-optimization/71625
	* /gcc.target/aarch64/vclz.c (test_vclz_s8): Add noinline attribute.
	(test_vclz_s16): Ditto.
	(test_vclz_s32): Ditto.
	(test_vclzq_s8): Ditto.
	(test_vclzq_s16): Ditto.
	(test_vclzq_s32): Ditto.
	(test_vclz_u8): Ditto.
	(test_vclz_u16): Ditto.
	(test_vclz_u32): Ditto.
	(test_vclzq_u8): Ditto.
	(test_vclzq_u16): Ditto.
	(test_vclzq_u32): Ditto.
	* gcc.target/aarch64/vneg_s.c (test_vneg_s8): Ditto.
	(test_vneg_s16): Ditto.
	(test_vneg_s32): Ditto.
	(test_vneg_s64): Ditto.
	(test_vnegd_s64): Ditto.
	(test_vnegq_s8): Ditto.
	(test_vnegq_s16): Ditto.
	(test_vnegq_s32): Ditto.
	(test_vnegq_s64): Ditto.

From-SVN: r264874
2018-10-05 15:26:40 +00:00
Ian Lance Taylor cbba2e1e47 runtime: remove checkgoarm function
Nothing in libgo calls checkgoarm, and it relies on a variable, goarm,
    that is not set.
    
    Reviewed-on: https://go-review.googlesource.com/c/140057

From-SVN: r264872
2018-10-05 14:21:01 +00:00
Ian Lance Taylor a2a86641b7 re PR libbacktrace/87529 (libbacktrace API forces users to have memory leaks)
PR libbacktrace/87529
	* backtrace.h: Document that backtrace_create_state should be
	called only once.

From-SVN: r264871
2018-10-05 14:09:07 +00:00
Richard Biener f48bd5e43a re PR middle-end/63155 (memory hog)
2018-10-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63155
	* tree-ssa-ccp.c (ccp_propagate::visit_phi): Avoid excess
	vertical space in dumpfiles.
	* tree-ssa-propagate.h
	(ssa_propagation_engine::process_ssa_edge_worklist): Remove.
	* tree-ssa-propagate.c (cfg_blocks_back): New global.
	(ssa_edge_worklist_back): Likewise.
	(curr_order): Likewise.
	(cfg_blocks_get): Remove abstraction.
	(cfg_blocks_add): Likewise.
	(cfg_blocks_empty_p): Likewise.
	(add_ssa_edge): Add to current or next worklist based on
	RPO index.
	(add_control_edge): Likewise.
	(ssa_propagation_engine::process_ssa_edge_worklist): Fold
	into ...
	(ssa_propagation_engine::ssa_propagate): ... here.  Unify
	iteration from CFG and SSA edge worklist so we process
	everything in RPO order, prioritizing forward progress
	over iteration.
	(ssa_prop_init): Allocate new worklists, do not dump
	immediate uses.
	(ssa_prop_fini): Free new worklists.

From-SVN: r264869
2018-10-05 12:54:51 +00:00
Richard Biener 700adeb6fd tree-core.h (tree_block::abstract_flag): Remove.
2018-10-05  Richard Biener  <rguenther@suse.de>

	* tree-core.h (tree_block::abstract_flag): Remove.
	(tree_block::block_num): Make full 32bits.
	* tree.def (BLOCK): Remove docs about BLOCK_ABSTRACT.
	* tree.h (BLOCK_ABSTRACT): Remove.
	* dwarf2out.c (gen_lexical_block_die): Remove dead code
	resulting from BLOCK_ABSTRACT being always false.
	(gen_inlined_subroutine_die): Likewise.
	(gen_block_die): Likewise.
	* tree.c (block_ultimate_origin): Likewise.
	* tree-pretty-print.c (dump_block_node): Remove code dealing
	with BLOCK_ABSTRACT.
	* tree-ssa-live.c (dump_scope_block): Likewise.
	* tree-streamer-in.c (unpack_ts_block_value_fields): Likewise.
	* tree-streamer-out.c (pack_ts_block_value_fields): Likewise.

From-SVN: r264868
2018-10-05 11:46:12 +00:00
Richard Biener 3f41c986d2 i386.c (ix86_add_stmt_cost): When scalar cost is asked for initialize mode to the component mode of the...
2018-10-05   Richard Biener  <rguenther@suse.de>

	* config/i386/i386.c (ix86_add_stmt_cost): When scalar cost
	is asked for initialize mode to the component mode of the
	vector type.

From-SVN: r264866
2018-10-05 11:40:50 +00:00
H.J. Lu ae36de9153 i386: Don't pass -msse2avx to assembler for -mavx
With

gcc -O2 -fPIC -flto -g -c -o a.o a.c
gcc -O2 -fPIC -flto -g -mavx   -c -o b.o b.c
gcc -shared -O2 -fPIC -flto -g -o lib1.so a.o b.o

LTO correctly generates AVX for b.o and SSE for a.o.  But the GCC driver
passes -msse2avx to assembler, which encodes SSE instructions as AVX
instructions.  We shouldn't pass -msse2avx to assembler for -mavx.

	PR target/87522
	* config/i386/gnu-user.h (ASM_SPEC): Don't pass -msse2avx to
	assembler for -mavx.
	* config/i386/gnu-user64.h (ASM_SPEC): Likewise.

From-SVN: r264864
2018-10-05 04:29:44 -07:00
Segher Boessenkool 49022a8b83 rs6000: Various fixes for the new fpscr builtins (PR87509)
With these fixes all testcases test clean for me, both on
powerpc64-linux {-m32,-m64} and on powerpc64le-linux, with all
relevant -mcpu= settings.


	PR target/87509
	* config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_SET_FPSCR_DRN): Use
	RS6000_BTM_DFP.
	* config/rs6000/rs6000.md (rs6000_set_fpscr_rn): Require the operand
	to be DImode.  When using mffscrn, force the operand to a register.

gcc/testsuite/
	PR target/87509
	* gcc.target/powerpc/test_fpscr_drn_builtin.c: Use hard_dfp instead
	of dfp_hw.  Don't include <altivec.h>.
	* gcc.target/powerpc/test_fpscr_drn_builtin_error.c: Ditto.  Require
	lp64.
	* gcc.target/powerpc/test_fpscr_rn_builtin.c: Don't include <altivec.h>.
	* gcc.target/powerpc/test_fpscr_rn_builtin_error.c: Ditto.
	* gcc.target/powerpc/test_mffsl.c: Ditto.

From-SVN: r264863
2018-10-05 12:52:33 +02:00
Paul Thomas 3665f77c7f re PR testsuite/87487 (New test case gfortran.dg/deferred_character_24.f90 in r264721 fails on big endian)
2018-10-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/87487
	* trans-decl.c (gfc_get_symbol_decl): Make sure that deferred
	character length pointer initializer has the right type to fix
	problem with deferred_character_24.f90 on big endian.

From-SVN: r264862
2018-10-05 07:01:57 +00:00