Commit Graph

169083 Commits

Author SHA1 Message Date
Iain Sandoe
e7f5de7d65 Darwin, testsuite - Fix PR 65364 (uninit-19.c).
This test currently fails on Darwin, because the port inlines fn2 for
both PIC (and non-pic for m32).  Fixed by adjusting the target condition.

2019-06-11  Iain Sandoe  <iain@sandoe.co.uk>

	PR testsuite/65364
	* gcc.dg/uninit-19.c (fn1): Adjust target condition for Darwin.
	(fn2): Likewise.

From-SVN: r272167
2019-06-11 18:22:58 +00:00
Michael Meissner
85775141e3 Do not enable -mpcrel by default at the current time
From-SVN: r272165
2019-06-11 17:36:58 +00:00
Jakub Jelinek
ce9c4ec3c5 re PR target/90811 ([nvptx] ptxas error on OpenMP offloaded code)
PR target/90811
	* config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
	instead of and.u%d.

	* testsuite/libgomp.c/pr90811.c: New test.

From-SVN: r272161
2019-06-11 18:40:10 +02:00
Edward Smith-Rowland
d37c29f942 Fix ConstexprIterator requirements tests - No constexpr algorithms!
2019-06-09  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Fix ConstexprIterator requirements tests - No constexpr algorithms!
	* testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc:
	Replace copy with hand-rolled loop.
	* testsuite/23_containers/array/requirements/constexpr_iter.cc:
	Ditto.

From-SVN: r272159
2019-06-11 16:29:35 +00:00
Marc Glisse
9adfa8e25f Allow conversions in X/[ex]4 < Y/[ex]4
2019-06-11  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* match.pd (X/[ex]4<Y/[ex]4): Handle conversions.

gcc/testsuite/
	* gcc.dg/tree-ssa/cmpexactdiv-5.c: New file.

From-SVN: r272158
2019-06-11 15:22:43 +00:00
Matthew Beliveau
d3786ebbb0 PR c++/90449 - add -Winaccessible-base option.
* doc/invoke.texi (Winaccessible-base): Document.

       * c.opt (Winaccessible-base): Added new option.

       * class.c (warn_about_ambiguous_bases): Changed name to:
       maybe_warn_about_inaccessible_bases.
       (maybe_warn_about_inaccessible_bases):  Implemented new
       Winaccessible-base warning option for both direct and virtual
       base warnings.
       (layout_class_type): Call to warn_about_ambiguous_bases changed to fit
       new name.

       	* g++.dg/warn/Winaccessible-base-1.C: New file.
       	* g++.dg/warn/Winaccessible-base-2.C: New file.
       	* g++.dg/warn/Winaccessible-virtual-base-1.C: New file.
       	* g++.dg/warn/Winaccessible-virtual-base-2.C: New file.

From-SVN: r272157
2019-06-11 15:03:21 +00:00
Richard Biener
da10c17800 re PR c++/90801 (A recurring hang)
2019-06-11  Richard Biener  <rguenther@suse.de>

	PR c++/90801
	* typeck2.c (split_nonconstant_init_1): Avoid ordered remove
	from CONSTRUCTOR by marking to remove elements and doing all
	of them in a O(n) scan.

From-SVN: r272156
2019-06-11 14:03:41 +00:00
Jakub Jelinek
5a5da48013 re PR c++/90810 (Different intrinsics behavior on G++ 7.4 and G++ 8.3)
PR c++/90810
	* init.c (constant_value_1): Handle VECTOR_CST DECL_INITIAL for
	!DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P decls like CONSTRUCTOR.

	* g++.dg/ext/vector37.C: New test.

From-SVN: r272152
2019-06-11 15:01:40 +02:00
Marc Glisse
7ac9a20184 fold_real_zero_addition_p for vectors
2019-06-11  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/62041
	* fold-const.c (fold_real_zero_addition_p): Handle vectors.

From-SVN: r272151
2019-06-11 12:48:26 +00:00
Jason Merrill
9281275764 gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
* gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.

	* tree.c (get_tree_code_name): Likewise.
	* print-tree.c (print_node): Only briefly print a node with an
	invalid code.

From-SVN: r272150
2019-06-11 08:40:08 -04:00
Nick Clifton
de6abd8514 Import these changes from the binutils/gdb repository:
2019-05-28  Nick Alcock  <nick.alcock@oracle.com>

	* Makefile.def (dependencies): configure-libctf depends on all-bfd
	and all its deps.
	* Makefile.in: Regenerated.

	2019-05-28  Nick Alcock  <nick.alcock@oracle.com>

	* Makefile.def (host_modules): Add libctf.
	* Makefile.def (dependencies): Likewise.
	libctf depends on zlib, libiberty, and bfd.
	* Makefile.in: Regenerated.
	* configure.ac (host_libs): Add libctf.
	* configure: Regenerated.

From-SVN: r272148
2019-06-11 12:05:49 +00:00
Richard Biener
f75d370110 toir.cc (pop_label): Only queue labels in a vector.
2019-06-11  Richard Biener  <rguenthe@suse.de>

	d/90778
	* toir.cc (pop_label): Only queue labels in a vector.
	(cmp_labels): Label decl comparator.
	(pop_binding_level): Pop labels in DECL_UID order to avoid
	debug info differences.

From-SVN: r272146
2019-06-11 08:30:47 +00:00
Jakub Jelinek
9f95c526a9 re PR bootstrap/90819 (-Walloc-size-larger-than error in trans-mem.c)
PR bootstrap/90819
	* trans-mem.c (tm_memopt_compute_available): Add assertion
	that blocks is not empty.  Formatting fix.

From-SVN: r272145
2019-06-11 10:20:02 +02:00
Martin Liska
3f2cf03657 Disable htable sanitization in pt.c (PR c++/87847).
2019-06-11  Martin Liska  <mliska@suse.cz>

	PR c++/87847
	* hash-table.h: Extend create_gcc, add one parameter
	that is passed into hash_table::hash_table.
2019-06-11  Martin Liska  <mliska@suse.cz>

	PR c++/87847
	* pt.c (init_template_processing): Disable hash table
	sanitization for decl_specializations and type_specializations.

From-SVN: r272144
2019-06-11 07:55:19 +00:00
Jakub Jelinek
0d7b3e477b * libgcov-merge.c (__gcov_merge_single): Revert previous change.
From-SVN: r272143
2019-06-11 09:54:17 +02:00
GCC Administrator
c36d06eb92 Daily bump.
From-SVN: r272141
2019-06-11 00:16:16 +00:00
Uros Bizjak
4f59794ba6 * config/i386/i386.md (absneg fp_reg splitter): Fix operator mode.
From-SVN: r272134
2019-06-10 23:51:42 +02:00
Ian Lance Taylor
e898243c23 compiler: support inlining functions that use index expressions
Also move the determine_types pass on an inlined function body to one
    place, rather than doing it ad hoc as needed.
    
    This adds 79 new inlinable functions in the standard library, such as
    bytes.HasPrefix and bytes.LastIndexByte.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/181261

From-SVN: r272133
2019-06-10 21:34:12 +00:00
Ian Lance Taylor
35c19de696 compiler: make heap expression's write barrier conditional
Heap_expression::do_get_backend emits an unconditional write
    barrier if the type has pointers and it is not a stack allocation.
    This CL changes it to use a write barrier for the assignment only
    when write barriers are enabled. While here, also change it to
    call gcWriteBarrier instead of typedmemmove for pointer-shaped
    types.
    
    For this to work, Function::build needs to be adjusted so that
    Heap_expression::do_get_backend is called when there is a parent
    block.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/181540

From-SVN: r272132
2019-06-10 21:08:42 +00:00
Ian Lance Taylor
fc917b4265 compiler: permit inlining functions with labels and goto statements
This permits inlining functions with for loops and some switches, as
    they are lowered to if and goto statements before exporting them.
    
    This by itself only adds three new inlinable functions in the standard
    library: sort.Search, context.(*emptyCtx).String, and
    cmd/go/internal/work.(*Builder).disableBuildID.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/181197

From-SVN: r272131
2019-06-10 21:02:20 +00:00
Ian Lance Taylor
d480455f2d compiler: use gcWriteBarrier for pointer-shaped struct/array
If a struct/array is pointer-shaped (i.e. having a single field
    that is pointer-shaped), we can use gcWriteBarrier instead of
    typedmemmove for the write barrier.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/181539

From-SVN: r272130
2019-06-10 20:35:14 +00:00
Matthew Beliveau
fa237d91e8 re PR c++/87250 (Internal compiler error with -Os -fsyntax-only)
PR c++/87250
	* g++.dg/cpp0x/pr87250.C: New test.

From-SVN: r272129
2019-06-10 20:35:00 +00:00
Jason Merrill
620adbec08 constexpr.c (free_constructor): New.
* constexpr.c (free_constructor): New.

	(cxx_eval_call_expression): Free parameter value CONSTRUCTORs.

From-SVN: r272127
2019-06-10 15:32:34 -04:00
Jason Merrill
9b9eb42a41 Reduce unsharing in constexpr call evaluation.
* constexpr.c (unshare_constructor): Only unshare if T is itself a
	CONSTRUCTOR.
	(cxx_eval_call_expression): Don't call it on the result here.

From-SVN: r272126
2019-06-10 15:32:30 -04:00
Jason Merrill
3c961dc755 Reduce constexpr_call memory consumption.
* constexpr.c (cxx_bind_parameters_in_call): Use TREE_VEC rather
	than TREE_LIST.
	(constexpr_call_hasher::equal, cxx_bind_parameters_in_call)
	(cxx_eval_call_expression): Adjust.

From-SVN: r272125
2019-06-10 15:31:49 -04:00
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