Commit Graph

169158 Commits

Author SHA1 Message Date
Ian Lance Taylor c2f879e1fe compiler: make escape analysis work with imported inlineable functions
The escape analysis was written before we import inlineable
    function bodies, and in some places it skipped functions that are
    not in the local package. Now that there are imported function
    bodies, make the escape analysis work with them.
    
    Note that it is necessary for the escape analysis to run on
    imported function bodies, even if they are already tagged. The
    tags only have the information of the parameters (receiver,
    results), but not the internal nodes, e.g. local variables. We
    still need to do the analysis to get all the information. (In the
    future maybe we could export/import escape info for internal
    nodes also, then we don't need to redo the analysis.)
    
    Also add assertions to ensure that if we analyze the same
    function in multiple places, they'd better agree with each other.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/181537

From-SVN: r272124
2019-06-10 19:30:21 +00:00
Uros Bizjak f359611b36 i386-protos.h (ix86_split_fp_absneg_operator): New prototype.
* config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
	New prototype.
	* config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
	Emit clobber also for non-sse operations.
	(ix86_split_fp_absneg_operator): New function.
	* config/i386/i386.md (SSEMODEF): New mode iterator.
	(ssevecmodef): New mode attribute.
	(<code>tf2): Use absneg code iterator.
	(*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
	Add three-operand AVX alternatives.
	(*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
	Use absneg code iterator and X87MODEF mode iterator.
	(absneg fp_reg non-sse splitter): Call absneg code iterator
	and X87MODEF mode iterator.
	(absneg general_reg non-sse splitter): Use absneg code iterator
	and X87MODEF mode iterator.  Use ix86_split_fp_absneg_operator.
	(*<code><mode>2_1): Rename from *absneg<mode>2.  Use absneg
	code iterator.  Add three-operand AVX alternative.
	(absneg sse_reg splitter): Use absneg code iterator
	and SSEMODEF mode iterator.  Handle AVX operands.
	(absneg fp_reg splitter): Use absneg code iterator
	and MODEF mode iterator.
	(absneg general_reg splitter): Merge splitters using MODEF mode
	iterator.  Use absneg code iterator.  Call
	ix86_split_fp_absneg_operator.
	(*<code><mode>2_i387): Rename from *<code><mode>2_1.
	Do not enable for non-sse modes before reload.
	(CSGNMODE): Remove.
	(CSGNVMODE): Ditto.
	(copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
	ssevecmodef mode attribute instaed of CSGNVMODE.
	(copysign<mode>3_const): Ditto.
	(copysign<mode>3_var): Ditto.
	* config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
	Use absneg code iterator.  Simplify code using std::swap.
	* config/i386/predicates.md (absneg_operator): Remove.

From-SVN: r272123
2019-06-10 21:17:57 +02:00
Jakub Jelinek f2ee751da8 re PR testsuite/90772 (g++.dg/cpp1y/feat-cxx14.C and several others fails starting with r272011)
PR testsuite/90772
	* g++.dg/cpp1y/feat-cxx14.C: Use std::size_t instead of size_t.
	* g++.dg/cpp1z/feat-cxx1z.C: Likewise.
	* g++.dg/cpp2a/feat-cxx2a.C: Likewise.
	* g++.dg/cpp1z/pr85569.C: Include <functional>.
	* g++.dg/tree-ssa/pr80293.C: Include <cstdint>.
	* g++.dg/tree-ssa/pr69336.C: Include <stdexcept>.

From-SVN: r272122
2019-06-10 18:18:52 +02:00
Jonathan Wakely 39d1184ba8 PR other/90695 reduce testcase to remove library dependency
This reproduces the original ICE fixed by r178857 (tested at r178852 and
r178860), without depending on a libstdc++ header that keeps changing.

The number of errors differs between C++14 and C++17 modes, so the fixed
test uses dg-excess-errors to match any number of them. The precise
errors aren't what's being tested for here anyway, the point of the test
is to verify the ICE in PR 50391 is fixed.

	PR other/90695
	* g++.dg/cpp0x/noexcept15.C: Remove dependency on library header.

From-SVN: r272121
2019-06-10 16:55:36 +01:00
Martin Sebor 97623b520b gimple-fold.c (get_range_strlen): Update comment that didn't make it into r267503 or related commits.
gcc/ChangeLog:

	* gimple-fold.c (get_range_strlen): Update comment that didn't
	make it into r267503 or related commits.

From-SVN: r272120
2019-06-10 09:54:58 -06:00
Vladislav Ivanishin c31783fd18 gcov-tool: Mark {merge,rewrite}_usage with noreturn attribute
2019-06-10  Vladislav Ivanishin  <vlad@ispras.ru>

	* gcov-tool.c (merge_usage, rewrite_usage): Mark with
	ATTRIBUTE_NORETURN thus making consistent with overlap_usage.

From-SVN: r272119
2019-06-10 14:17:53 +00:00
Jakub Jelinek bf38f7e9aa tree.def (OMP_SCAN): New tree code.
* tree.def (OMP_SCAN): New tree code.
	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
	OMP_CLAUSE_EXCLUSIVE.
	* tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
	(OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
	* tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
	OMP_CLAUSE_{IN,EX}CLUSIVE.
	(walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
	* tree-nested.c (convert_nonlocal_reference_stmt,
	convert_local_reference_stmt, convert_gimple_call): Handle
	GIMPLE_OMP_SCAN.
	* tree-pretty-print.c (dump_omp_clause): Handle
	OMP_CLAUSE_{IN,EX}CLUSIVE.
	(dump_generic_node): Handle OMP_SCAN.
	* gimple.def (GIMPLE_OMP_SCAN): New gimple code.
	* gimple.h (gomp_scan): New type.
	(is_a_helper <gomp_scan *>::test,
	is_a_helper <const gomp_scan *>::test): New templates.
	(gimple_build_omp_scan): Declare.
	(gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
	gimple_omp_scan_set_clauses): New inline functions.
	(CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
	* gimple.c (gimple_build_omp_scan): New function.
	(gimple_copy): Handle GIMPLE_OMP_SCAN.
	* gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
	* gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
	GIMPLE_OMP_TASKGROUP.
	(dump_gimple_omp_scan): New function.
	(pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
	* gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
	* tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
	* gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
	(is_gimple_stmt): Handle OMP_SCAN.
	(gimplify_scan_omp_clauses): Reject inscan reductions on constructs
	other than OMP_FOR or OMP_SIMD.  Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
	(gimplify_adjust_omp_clauses): Diagnose inscan reductions not
	mentioned in nested #pragma omp scan.  Handle
	OMP_CLAUSE_{IN,EX}CLUSIVE.
	(gimplify_expr): Handle OMP_SCAN.
	* omp-low.c (check_omp_nesting_restrictions): For parent context,
	look through GIMPLE_OMP_SCAN context.  Allow #pragma omp scan in
	simd constructs.
	(scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
	GIMPLE_OMP_SCAN.
c-family/
	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_SCAN.
	* c-pragma.c (omp_pragmas_simd): Add #pragma omp scan.
	* c-omp.c (c_omp_split_clauses): Diagnose inscan reductions on
	combined/composite constructs where it is not allowed.  Copy over
	OMP_CLAUSE_REDUCTION_INSCAN.
c/
	* c-parser.c (c_parser_pragma): Reject PRAGMA_OMP_SCAN.
	(c_parser_omp_clause_reduction): Don't sorry_at on inscan reductions.
	(c_parser_omp_scan_loop_body): New function.
	(c_parser_omp_for_loop): Call c_parser_omp_scan_loop_body if there are
	inscan reduction clauses.
	* c-typeck.c (c_finish_omp_clauses): Reject mixing inscan with
	non-inscan reductions on the same construct, or inscan reductions with
	ordered or schedule clauses, or inscan array reductions.
cp/
	* parser.c (cp_parser_omp_clause_reduction): Don't sorry_at on inscan
	reductions.
	(cp_parser_omp_scan_loop_body): New function.
	(cp_parser_omp_for_loop): Call cp_parser_omp_scan_loop_body if there
	are inscan reduction clauses.
	(cp_parser_pragma): Reject PRAGMA_OMP_SCAN.
	* semantics.c (finish_omp_clauses): Reject mixing inscan with
	non-inscan reductions on the same construct, or inscan reductions with
	ordered or schedule clauses, or inscan array reductions.
	* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
	(tsubst_expr): Handle OMP_SCAN.
testsuite/
	* c-c++-common/gomp/scan-1.c: New test.
	* c-c++-common/gomp/scan-2.c: New test.
	* c-c++-common/gomp/scan-3.c: New test.
	* c-c++-common/gomp/scan-4.c: New test.

From-SVN: r272117
2019-06-10 14:20:30 +02:00
Martin Liska 07ca30a0d7 Update __gcov_* scanned function name in a test-case.
2019-06-10  Martin Liska  <mliska@suse.cz>

	* gcc.dg/no_profile_instrument_function-attr-1.c: Fix
	function name.

From-SVN: r272116
2019-06-10 11:28:49 +00:00
Martin Liska 97e5962756 Reduce SCCs in IPA postorder.
2019-06-10  Martin Liska  <mliska@suse.cz>

	* ipa-cp.c (ignore_edge_p): New function.
	(build_toporder_info): Use it.
	* ipa-inline.c (ignore_edge_p): New function/
	(inline_small_functions): Use it.
	* ipa-pure-const.c (ignore_edge_for_nothrow):
	Verify opt_for_fn for caller and callee.
	(ignore_edge_for_pure_const): Likewise.
	* ipa-reference.c (ignore_edge_p): Extend to check
	for opt_for_fn.
	* ipa-utils.c (searchc): Refactor.
	* ipa-utils.h: Fix coding style.

From-SVN: r272115
2019-06-10 11:07:24 +00:00
Martin Liska 54e2d83caf Add missing ATTR_UNUSED (PR bootstrap/90808).
2019-06-10  Martin Liska  <mliska@suse.cz>

	PR bootstrap/90808
	* libgcov.h: Add ATTRIBUTE_UNUSED.

From-SVN: r272114
2019-06-10 09:53:46 +00:00
Claudiu Zissulescu d797b11519 [ARC] Update RTX costs.
Update RTX costs to reflect better the ARC architecture.

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_rtx_costs): Update costs.

/gcc/testsuite
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

	* gcc.target/arc/jumptables.c: Update test.

From-SVN: r272113
2019-06-10 10:25:37 +02:00
Claudiu Zissulescu 03301dcc84 [ARC] Improve code gen when compiling for size
When optimizing for size, try to avoid using long immediate by
employing alternative instructions.

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

        * config/arc/arc-protos.h (arc_check_ior_const): Declare.
        (arc_split_ior): Likewise.
        (arc_check_mov_const): Likewise.
        (arc_split_mov_const): Likewise.
        * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
        (arc_rtx_costs): Replace check Crr with Cax constraint.
        (prepare_move_operands): Cleanup, remove unused code.
        (arc_split_ior): New function.
        (arc_check_ior_const): Likewise.
        (arc_split_mov_const): Likewise.
        (arc_check_mov_const): Likewise.
        * config/arc/arc.md (movsi_insn): Restructure it, and convert it
        in define_insn_and_split pattern.
        (iorsi3): Likewise.
        (mulsi3_v2): Add new matching variant.
        (andsi3_i): Cleanup pattern.
        (rotrsi3_cnt1): Update pattern.
        (rotrsi3_cnt8): New pattern.
        (ashlsi2_cnt8): Likewise.
        (ashlsi2_cnt16): Likewise.
        * config/arc/constraints.md (C0p): Update constraint.
        (Crr): Remove it.
        (C0x): New pattern.
        (Cax): New pattern.

testsuite/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

        * gcc.target/arc/and-cnst-size.c: New test.
        * gcc.target/arc/mov-cnst-size.c: Likewise.
        * gcc.target/arc/or-cnst-size.c: Likewise.
        * gcc.target/arc/store-merge-1.c: Update test.
        * gcc.target/arc/arc700-stld-hazard.c: Likewise.
        * gcc.target/arc/cmem-1.c: Likewise.
        * gcc.target/arc/cmem-2.c: Likewise.
        * gcc.target/arc/cmem-3.c: Likewise.
        * gcc.target/arc/cmem-4.c: Likewise.
        * gcc.target/arc/cmem-5.c: Likewise.
        * gcc.target/arc/cmem-6.c: Likewise.
        * gcc.target/arc/loop-4.c: Likewise.
        * gcc.target/arc/movh_cl-1.c: Likewise.
        * gcc.target/arc/sdata-3.c: Likewise.

From-SVN: r272112
2019-06-10 10:25:25 +02:00
Martin Liska 07b8d0afe8 IPA ICF: enhance dump about items in a non-singular class.
2019-06-10  Martin Liska  <mliska@suse.cz>

	* ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
	Update coding style.
	(sem_item_optimizer::dump_cong_classes):
	Print how many items are in a non-singular class.  Improve
	coding style.
2019-06-10  Martin Liska  <mliska@suse.cz>

	* gcc.dg/ipa/pr68035.c: Update scanned pattern.

From-SVN: r272111
2019-06-10 07:43:11 +00:00
Martin Liska de1ee900b0 Add warn_unused_result attribute for memory-related functions in libiberty.
2019-06-10  Martin Liska  <mliska@suse.cz>

	* ansidecl.h (ATTRIBUTE_WARN_UNUSED_RESULT): New macro.
	* libiberty.h (xmalloc): Use it.
	(xrealloc): Likewise.
	(xcalloc): Likewise.
	(xstrdup): Likewise.
	(xstrndup): Likewise.
	(xmemdup): Likewise.

From-SVN: r272110
2019-06-10 07:42:43 +00:00
Martin Liska 3bb0dcb6c0 Add alloc_size for libiberty memory allocation functions.
2019-06-10  Martin Liska  <mliska@suse.cz>

	* ansidecl.h:
	(ATTRIBUTE_RESULT_SIZE_1): Define new macro.
	(ATTRIBUTE_RESULT_SIZE_2): Likewise.
	(ATTRIBUTE_RESULT_SIZE_1_2): Likewise.
	* libiberty.h (xmalloc): Add RESULT_SIZE attribute.
	(xrealloc): Likewise.
	(xcalloc): Likewise.

From-SVN: r272109
2019-06-10 07:42:22 +00:00
Martin Liska 74ac8f1fe9 Update a bit dump format.
2019-06-10  Martin Liska  <mliska@suse.cz>

	* value-prof.c (dump_histogram_value): Change dump format.
	(gimple_mod_subtract_transform): Remove legacy comment.

From-SVN: r272108
2019-06-10 07:39:34 +00:00
Martin Liska 6cea7e3976 Dump histograms only if present.
2019-06-10  Martin Liska  <mliska@suse.cz>

	* value-prof.c (dump_histogram_value): Print histogram values
	only if present.

From-SVN: r272107
2019-06-10 07:39:20 +00:00
Martin Liska 92d417175b Implement N disk counters for single value and indirect call counters.
2019-06-10  Martin Liska  <mliska@suse.cz>

	* gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
	(GCOV_SINGLE_VALUE_COUNTERS): Likewise.
	* ipa-profile.c (ipa_profile_generate_summary):
	Use get_most_common_single_value.
	* tree-profile.c (gimple_init_gcov_profiler):
	Instrument with __gcov_one_value_profiler_v2
	and __gcov_indirect_call_profiler_v4.
	* value-prof.c (dump_histogram_value):
	Print all values for HIST_TYPE_SINGLE_VALUE.
	(stream_out_histogram_value): Update assert for
	N values.
	(stream_in_histogram_value): Set number of
	counters for HIST_TYPE_SINGLE_VALUE.
	(get_most_common_single_value): New.
	(gimple_divmod_fixed_value_transform):
	Use get_most_common_single_value.
	(gimple_ic_transform): Likewise.
	(gimple_stringops_transform): Likewise.
	(gimple_find_values_to_profile): Set number
	of counters for HIST_TYPE_SINGLE_VALUE.
	* value-prof.h (get_most_common_single_value):
	New.
2019-06-10  Martin Liska  <mliska@suse.cz>

	* Makefile.in: Add __gcov_one_value_profiler_v2,
	__gcov_one_value_profiler_v2_atomic and
	__gcov_indirect_call_profiler_v4.
	* libgcov-merge.c (__gcov_merge_single): Change
	function signature.
	(merge_single_value_set): New.
	* libgcov-profiler.c (__gcov_one_value_profiler_body):
	Update functionality.
	(__gcov_one_value_profiler): Remove.
	(__gcov_one_value_profiler_v2): ... this.
	(__gcov_one_value_profiler_atomic): Rename to ...
	(__gcov_one_value_profiler_v2_atomic): this.
	(__gcov_indirect_call_profiler_v3): Rename to ...
	(__gcov_indirect_call_profiler_v4): ... this.
	* libgcov.h (__gcov_one_value_profiler): Remove.
	(__gcov_one_value_profiler_atomic): Remove.
	(__gcov_one_value_profiler_v2_atomic): New.
	(__gcov_indirect_call_profiler_v3): Remove.
	(__gcov_one_value_profiler_v2): New.
	(__gcov_indirect_call_profiler_v4): New.
	(gcov_get_counter_ignore_scaling): New function.

From-SVN: r272106
2019-06-10 07:38:59 +00:00
Iain Sandoe b076a52602 testsuite - Require alias support in a test using it.
2019-06-10  Iain Sandoe  <iain@sandoe.co.uk>

	* gcc.dg/attr-copy-6.c: Require alias support.

From-SVN: r272105
2019-06-10 07:04:55 +00:00
Martin Liska 48f8fefe5b Fix build with --enable-gather-detailed-mem-stats.
2019-06-10  Martin Liska  <mliska@suse.cz>

	* hash-map.h: Pass default value to hash_table ctor.
	* hash-table.h: Add default value to call of a ctor.

From-SVN: r272104
2019-06-10 07:04:39 +00:00
GCC Administrator 027c94b8b4 Daily bump.
From-SVN: r272102
2019-06-10 00:16:22 +00:00
Marek Polacek 3645c6e286 re PR c++/65175 (ICE forming a typedef with an alias template)
PR c++/65175
	* g++.dg/cpp0x/alias-decl-69.C: New test.

From-SVN: r272098
2019-06-09 23:18:28 +00:00
Marek Polacek dcba286a9a re PR c++/60366 (ICE with self-invoking lambdas)
PR c++/60366
	* g++.dg/cpp0x/lambda/lambda-ice32.C: New test.

From-SVN: r272092
2019-06-09 15:41:07 +00:00
Paul Thomas 5834bdc3d4 re PR fortran/89365 (Inquiry functions for assumed rank objects fail)
2019-06-09  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/89365
	* gfortran.dg/assumed_rank_bounds_3.f90 : New test.

From-SVN: r272090
2019-06-09 09:43:37 +00:00
GCC Administrator 0002187783 Daily bump.
From-SVN: r272089
2019-06-09 00:16:18 +00:00
Edward Smith-Rowland 79f31e3d18 Test for C++20 p0858 - ConstexprIterator requirements.
2019-06-08  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Test for C++20 p0858 - ConstexprIterator requirements.
	* testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc:
	New test.
	* testsuite/23_containers/array/requirements/constexpr_iter.cc:
	New test.

From-SVN: r272085
2019-06-08 22:18:36 +00:00
Paul Thomas 8e73afcf40 re PR fortran/90786 (ICE on procedure pointer assignment to function with class pointer result)
2019-06-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/90786
	* trans-expr.c (pointer_assignment_is_proc_pointer) Remove as
	it is very simple and only called from one place.
	(gfc_trans_pointer_assignment): Rename non_proc_pointer_assign
	as non_proc_ptr_assign. Assign to it directly, rather than call
	to above, deleted function and use gfc_expr_attr instead of
	only checking the reference chain.

2019-06-08  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/90786
	* gfortran.dg/proc_ptr_51.f90 : New test.

From-SVN: r272084
2019-06-08 15:52:38 +00:00
Marek Polacek ec332875f8 re PR c++/52269 ([C++11] Body of constexpr function templates instantiated too eagerly in unevaluated operands)
PR c++/52269
	* g++.dg/cpp0x/constexpr-decltype4.C: New test.

From-SVN: r272083
2019-06-08 14:10:42 +00:00
Thomas Koenig 304d779b9e re PR fortran/90744 (Bogus length for character temporaries passed to external procedures since r268992)
2019-06-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
	Tomáš Trnka  <trnka@scm.com>

	PR fortran/90744
	* trans-types.c (get_formal_from_actual_arglist): Unset typespec
	flags which make no sense for procedures without explicit
	interface.

2019-06-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
	Tomáš Trnka  <trnka@scm.com>

	PR fortran/90744
	* gfortran.dg/deferred_character_33.f90: New test.
	* gfortran.dg/deferred_character_33a.f90: New test.

From-SVN: r272082
2019-06-08 13:50:42 +00:00
Jonathan Wakely 604ba08ab4 Use consistent spelling of PCLMUL instruction
* doc/invoke.texi (C Dialect Options): Minor grammatical change.
	(x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"

From-SVN: r272081
2019-06-08 14:40:25 +01:00
Marek Polacek eb37013fb5 re PR c++/77548 (ICE on invalid C++ code with overloaded functions: in instantiate_type, at cp/class.c:8270)
PR c++/77548
	* g++.dg/other/pr77548.C: New test.

From-SVN: r272079
2019-06-08 13:13:48 +00:00
Marek Polacek 8d7a99bd33 re PR c++/72845 (gcc crashes (ICE) when compiling program with complex noexcept declaration)
PR c++/72845
	* g++.dg/cpp0x/noexcept41.C: New test.

From-SVN: r272078
2019-06-08 12:51:07 +00:00
Prathamesh Kulkarni 3a9debbd76 init_1.c: Remove options -O2 -fno-schedule-insns and instead pass -O.
2019-06-08  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* gcc.target/aarch64/sve/init_1.c: Remove options
	-O2 -fno-schedule-insns and instead pass -O.
	Update assembly in comments. 
	* gcc.target/aarch64/sve/init_2.c: Likewise.
	* gcc.target/aarch64/sve/init_3.c: Likewise.
	* gcc.target/aarch64/sve/init_4.c: Likewise.
	* gcc.target/aarch64/sve/init_5.c: Likewise and additionally
	adjust dg-scan.
	* gcc.target/aarch64/sve/init_6.c: Likewise.
	* gcc.target/aarch64/sve/init_7.c: Likewise.
	* gcc.target/aarch64/sve/init_8.c: Likewise.
	* gcc.target/aarch64/sve/init_9.c: Likewise.
	* gcc.target/aarch64/sve/init_10.c: Likewise.
	* gcc.target/aarch64/sve/init_11.c: Likewise.
	* gcc.target/aarch64/sve/init_12.c: Likewise.

From-SVN: r272073
2019-06-08 08:24:43 +00:00
Marek Polacek a5edb3fa22 re PR c++/77747 (GCC allows inheriting constructors from indirect base)
PR c++/77747
	* g++.dg/cpp0x/inh-ctor33.C: New test.

From-SVN: r272071
2019-06-08 00:48:54 +00:00
Marek Polacek 5521a71850 re PR c++/77967 (ICE in cp_parser_type_name, at cp/parser.c:16419 (trying to add a method to a template alias))
PR c++/77967
	* g++.dg/cpp0x/alias-decl-68.C: New test.

From-SVN: r272070
2019-06-08 00:30:51 +00:00
Marek Polacek da643428a3 re PR c++/77771 (internal compiler error: in cxx_eval_bit_field_ref, at cp/constexpr.c:2090)
PR c++/77771
	* g++.dg/cpp0x/constexpr-77771.C: New test.

From-SVN: r272068
2019-06-08 00:17:13 +00:00
GCC Administrator f48cc0aa94 Daily bump.
From-SVN: r272067
2019-06-08 00:16:31 +00:00
John David Anglin 7486a74390 scanasm.exp (dg-function-on-line): Add pattern for hppa*-*-linux*.
* lib/scanasm.exp (dg-function-on-line): Add pattern for hppa*-*-linux*.

From-SVN: r272060
2019-06-07 23:15:49 +00:00
John David Anglin e13896a3a9 re PR target/90751 (-fpatchtable-function-entry broken on hppa-linux-gnu-gcc/hppa64-linux-gnu-gcc)
PR target/90751
	* config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
	Call pa_output_function_label>
	(TARGET_ASM_FUNCTION_PROLOGUE): define.
	* config/pa/pa-protos.h (pa_output_function_label): Declare.
	* config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
	to declaration.
	(pa_linux_output_function_prologue): Declare.
	(TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
	(pa_output_function_label): New.
	(pa_output_function_prologue): Revise to use pa_output_function_label.
	(pa_linux_output_function_prologue): New.
	* config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.

From-SVN: r272059
2019-06-07 23:13:08 +00:00
Aldy Hernandez 1ef8f50e4f Split up value_range::intersect into base (value_range_base) and
derived versions (value_range).

From-SVN: r272058
2019-06-07 22:18:24 +00:00
Thomas Rodgers f32ee8a25e Synchronize libstdc++ PSTL with upstream LLVM PSTL
Rename PSTL macro's consistent with libstdc++ (and llvm upstream
	project) standards.
	* include/bits/c++config: Rename all macros of the form __PSTL* to
	_PSTL*.
	* include/std/algorithm: Likewise.
	* include/std/execution: Likewise.
	* include/std/numeric: Likewise.
	* include/std/memory: Likewise.
	* include/pstl/glue_memory_impl.h: Likewise.
	* include/pstl/numeric_impl.h: Likewise.
	* include/pstl/glue_memory_defs.h: Likewise.
	* include/pstl/execution_defs.h: Likewise.
	* include/pstl/utils.h: Likewise.
	* include/pstl/algorithm_fwd.h: Likewise.
	* include/pstl/unseq_backend_simd.h: Likewise.
	* include/pstl/glue_execution_defs.h: Likewise.
	* include/pstl/algorithm_impl.h: Likewise.
	* include/pstl/parallel_impl.h: Likewise.
	* include/pstl/memory_impl.h: Likewise.
	* include/pstl/glue_numeric_defs.h: Likewise.
	* include/pstl/parallel_backend_utils.h: Likewise.
	* include/pstl/glue_algorithm_defs.h: Likewise.
	* include/pstl/parallel_backend.h: Likewise.
	* include/pstl/glue_numeric_impl.h: Likewise.
	* include/pstl/parallel_backend_tbb.h: Likewise.
	* include/pstl/numeric_fwd.h: Likewise.
	* include/pstl/glue_algorithm_impl.h: Likewise.
	* include/pstl/execution_impl.h: Likewise.
	* include/pstl/pstl_config.h: Likewise.
	* testsuite/util/pstl/pstl_test_config.h: Likewise.
	* testsuite/util/pstl/test_utils.h: Likewise.
	* testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
	Likewise.
	* testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
	Likewise.
	* testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
	Likewise.
	* testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
	* testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: Likewise.
	* testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
	Likewise.
	* testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: Likewise.

	Rename header guards to be consistent with upstream project's
	conventions.
	* include/pstl/glue_memory_impl.h: Rename all macros of the form
	_PSTL_(.*)_H to _PSTL_\U\1_H.
	* include/pstl/numeric_impl.h: Likewise.
	* include/pstl/glue_memory_defs.h: Likewise.
	* include/pstl/execution_defs.h: Likewise.
	* include/pstl/utils.h: Likewise.
	* include/pstl/algorithm_fwd.h: Likewise.
	* include/pstl/unseq_backend_simd.h: Likewise.
	* include/pstl/glue_execution_defs.h: Likewise.
	* include/pstl/algorithm_impl.h: Likewise.
	* include/pstl/parallel_impl.h: Likewise.
	* include/pstl/memory_impl.h: Likewise.
	* include/pstl/glue_numeric_defs.h: Likewise.
	* include/pstl/parallel_backend_utils.h: Likewise.
	* include/pstl/glue_algorithm_defs.h: Likewise.
	* include/pstl/parallel_backend.h: Likewise.
	* include/pstl/glue_numeric_impl.h: Likewise.
	* include/pstl/parallel_backend_tbb.h: Likewise.
	* include/pstl/numeric_fwd.h: Likewise.
	* include/pstl/glue_algorithm_impl.h: Likewise.
	* include/pstl/execution_impl.h: Likewise.
	* include/pstl/pstl_config.h: Likewise.
	* testsuite/util/pstl/pstl_test_config.h: Likewise.

	Synchronize libstdc++ parallel algorithms with upstream
	project.
	* include/pstl/algorithm_fwd.h: Synchronize with
	upstream PSTL project.
	* include/pstl/algorithm_impl.h: Likewise.
	* include/pstl/execution_defs.h: Likewise.
	* include/pstl/execution_impl.h: Likewise.
	* include/pstl/glue_algorithm_impl.h: Likewise.
	* include/pstl/glue_execution_defs.h: Likewise.
	* include/pstl/numeric_fwd.h: Likewise.
	* include/pstl/numeric_impl.h: Likewise.
	* include/pstl/parallel_backend.h: Likewise.
	* include/pstl/pstl_config.h: Likewise.
	* include/pstl/unseq_backend_simd.h: Likewise.
	* include/pstl/parallel_backend_serial.h: New file.
	* include/Makefile.am (pstl_headers): Add
	parallel_backend_serial.h.
	* include/Makefile.in: Regenerate.

	Clean up non-conforming names
	* include/pstl/algorithm_impl.h (__parallel_set_union_op):
	Uglfiy copy_range1 and copy_range2
	(__pattern_walk2_n): Rename local n to __n
	* include/pstl/parallel_backend_tbb.h (struct __binary_no_op):
	Rename parameter _T to _Tp.

	Integrate non-TBB serial backend support
	* include/bits/c++config: Adjust TBB detection logic to select serial
	PSTL backend if no TBB present.
	* testsuite/utils/pstl/test_utils.h: Remove check for
	_PSTL_USE_PAR_POLICIES

From-SVN: r272056
2019-06-07 22:01:16 +00:00
Ian Lance Taylor 1afab7a878 compiler: improve write barrier generation
For string, slice, interface values, do assignments field by
    field instead of using typedmemmove.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/181297

From-SVN: r272055
2019-06-07 21:16:11 +00:00
Jason Merrill 7a649ef59f Avoid constexpr garbage for implicit conversion to void.
* constexpr.c (cxx_eval_constant_expression): Call
	STRIP_ANY_LOCATION_WRAPPER early.
	[CONVERT_EXPR]: Don't build anything for conversion to void.
	[ADDR_EXPR]: ggc_free unused ADDR_EXPR.

From-SVN: r272054
2019-06-07 17:08:26 -04:00
Jonathan Wakely c1b4c4f491 Fix test that gets skipped as unsupported
* testsuite/24_iterators/container_access.cc: Move dg-options before
	dg-do directive so the target check uses the -std option.

From-SVN: r272051
2019-06-07 20:57:28 +01:00
Jonathan Wakely 2b32668568 PR libstdc++/90770 fix missing src/debug/Makefile
PR libstdc++/90770
	* configure: Regenerate.
	* src/Makefile.am (stamp-debug): Also test for missing makefile.
	* src/Makefile.in: Regenerate.

From-SVN: r272050
2019-06-07 20:57:19 +01:00
Jakub Jelinek ac72e850e5 Makefile.in (genprogerr): Add condmd.
* Makefile.in (genprogerr): Add condmd.
	(genprog): Remove it here.

From-SVN: r272047
2019-06-07 17:38:35 +02:00
Mark Eggleston fe763d2666 re PR fortran/89100 (Default widths for i, f and g format specifiers in format strings)
2019-06-07  Mark Eggleston <mark.eggleston@codethink.com>

	PR fortran/89100
	* gfortran.dg/fmt_f_default_field_width_3.f90: Modify dg-error
	to allow use when kind=16 is not supported.
	* gfortran.dg/fmt_g_default_field_width_3.f90: Modify dg-error
	to allow use when kind=16 is not supported.

From-SVN: r272046
2019-06-07 14:25:39 +00:00
Ian Lance Taylor 6e54439795 compiler: support inlining functions with if statements
This increases the number of inlinable functions from 455 to 500.
    An example of a newly inlinable function is strings.Compare.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/181137

From-SVN: r272045
2019-06-07 14:19:51 +00:00
Andrew Stubbs e94a64a078 Document -march=gfx906 option.
2019-06-07  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* doc/invoke.texi (AMD GCN Options): Add gfx906.

From-SVN: r272044
2019-06-07 14:00:58 +00:00
Ian Lance Taylor ab658f56a5 compiler: do simple deadcode elimination
Normally the backend will do deadcode elimination and this is
    sufficient. However, the escape analysis operates on the AST that
    may have deadcode, and may cause things to escape that otherwise
    do not.
    
    This CL adds a simple deadcode elimination, run before the escape
    analysis.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/181080

From-SVN: r272043
2019-06-07 13:40:26 +00:00