]>
git.ipfire.org Git - thirdparty/gcc.git/log
msebor [Wed, 12 Jun 2019 16:33:04 +0000 (16:33 +0000)]
PR tree-optimization/90662 - strlen of a string in a vla plus offset not folded
gcc/ChangeLog:
PR tree-optimization/90662
* tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
to arrays.
gcc/testsuite/ChangeLog:
PR tree-optimization/90662
* gcc.dg/strlenopt-62.c: New test.
* gcc.dg/strlenopt-63.c: New test.
* gcc.dg/strlenopt-64.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272197
138bc75d -0d04-0410-961f-
82ee72b054a4
vries [Wed, 12 Jun 2019 14:56:18 +0000 (14:56 +0000)]
[nvptx] Assert fork has at most one join in nvptx_find_par
With the test-case of PR90009 we run into a SIGSEGV in nvptx_neuter_pars,
because par->join_insn and par->join_block are NULL.
Detect this problem earlier, by adding an assert in nvptx_find_par that
asserts that a fork cannot be paired with more than one join.
Build and tested on x86_64 with nvptx accelerator enabled.
2019-06-12 Tom de Vries <tdevries@suse.de>
PR tree-optimization/90009
* config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272189
138bc75d -0d04-0410-961f-
82ee72b054a4
redi [Wed, 12 Jun 2019 14:52:09 +0000 (14:52 +0000)]
Improve static_assert messages for std::variant
Also fix a warning with -Wunused-parameter -Wsystem-headers.
* include/std/variant (get<T>, get<N>, get_if<N>, get_if<T>)
(variant::emplace): Change static_assert messages from "should be"
to "must be".
(hash<monostate>::operator()): Remove name of unused parameter.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272188
138bc75d -0d04-0410-961f-
82ee72b054a4
redi [Wed, 12 Jun 2019 14:52:06 +0000 (14:52 +0000)]
Simplify std::scoped_lock destructor
* include/std/mutex (scoped_lock::~scoped_lock()): Use fold
expression.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272187
138bc75d -0d04-0410-961f-
82ee72b054a4
redi [Wed, 12 Jun 2019 14:52:02 +0000 (14:52 +0000)]
Replace std::to_string for integers with optimized version
The std::to_chars functions from C++17 can be used to implement
std::to_string with much better performance than calling snprintf. Only
the __detail::__to_chars_len and __detail::__to_chars_10 functions are
needed for to_string, because it always outputs base 10 representations.
The return type of __detail::__to_chars_10 should not be declared before
C++17, so the function body is extracted into a new function that can be
reused by to_string and __detail::__to_chars_10.
The existing tests for to_chars rely on to_string to check for correct
answers. Now that they use the same code that doesn't actually ensure
correctness, so add new tests for std::to_string that compare against
printf output.
* include/Makefile.am: Add new <bits/charconv.h> header.
* include/Makefile.in: Regenerate.
* include/bits/basic_string.h (to_string(int), to_string(unsigned))
(to_string(long), to_string(unsigned long), to_string(long long))
(to_string(unsigned long long)): Rewrite to use __to_chars_10_impl.
* include/bits/charconv.h: New header.
(__detail::__to_chars_len): Move here from <charconv>.
(__detail::__to_chars_10_impl): New function extracted from
__detail::__to_chars_10.
* include/std/charconv (__cpp_lib_to_chars): Add, but comment out.
(__to_chars_unsigned_type): New class template that reuses
__make_unsigned_selector_base::__select to pick a type.
(__unsigned_least_t): Redefine as __to_chars_unsigned_type<T>::type.
(__detail::__to_chars_len): Move to new header.
(__detail::__to_chars_10): Add inline specifier. Move code doing the
output to __detail::__to_chars_10_impl and call that.
* include/std/version (__cpp_lib_to_chars): Add, but comment out.
* testsuite/21_strings/basic_string/numeric_conversions/char/
to_string.cc: Fix reference in comment. Remove unused variable.
* testsuite/21_strings/basic_string/numeric_conversions/char/
to_string_int.cc: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272186
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Wed, 12 Jun 2019 13:07:07 +0000 (13:07 +0000)]
Disable hash-table sanitization for mem stats maps.
2019-06-12 Martin Liska <mliska@suse.cz>
* ggc-common.c (ggc_prune_overhead_list): Do not sanitize
the created map.
* hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
* mem-stats.h (mem_alloc_description::mem_alloc_description):
Do not sanitize created maps.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272183
138bc75d -0d04-0410-961f-
82ee72b054a4
aldyh [Wed, 12 Jun 2019 12:53:20 +0000 (12:53 +0000)]
Remove value_range_constant_singleton in favor of value_range::singleton_p.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272182
138bc75d -0d04-0410-961f-
82ee72b054a4
jakub [Wed, 12 Jun 2019 09:31:26 +0000 (09:31 +0000)]
PR target/90811
* cfgexpand.c (align_local_variable): Add really_expand argument,
don't SET_DECL_ALIGN if it is false.
(add_stack_var): Add really_expand argument, pass it through to
align_local_variable.
(expand_one_stack_var_1): Pass true as really_expand to
align_local_variable.
(expand_one_ssa_partition): Pass true as really_expand to
add_stack_var.
(expand_one_var): Pass really_expand through to add_stack_var.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272181
138bc75d -0d04-0410-961f-
82ee72b054a4
ktkachov [Wed, 12 Jun 2019 08:27:59 +0000 (08:27 +0000)]
[arm] Implement usadv16qi and ssadv16qi standard names
This patch implements the usadv16qi and ssadv16qi standard names for arm.
The V16QImode variant is important as it is the most commonly used pattern:
reducing vectors of bytes into an int.
The midend expects the optab to compute the absolute differences of operands 1
and 2 and reduce them while widening along the way up to SImode. So the inputs
are V16QImode and the output is V4SImode.
I've based my solution on Aarch64 usadv16qi and ssadv16qi standard names
current implementation (r260437). This solution emits below sequence of
instructions:
VABDL.u8 tmp, op1, op2 # op1, op2 lowpart
VABAL.u8 tmp, op1, op2 # op1, op2 highpart
VPADAL.u16 op3, tmp
So, for the code:
$ arm-none-linux-gnueabihf-gcc -S -O3 -march=armv8-a+simd -mfpu=auto -mfloat-abi=hard usadv16qi.c -dp
#define N 1024
unsigned char pix1[N];
unsigned char pix2[N];
int
foo (void)
{
int i_sum = 0;
int i;
for (i = 0; i < N; i++)
i_sum += __builtin_abs (pix1[i] - pix2[i]);
return i_sum;
}
we now generate on arm:
foo:
movw r3, #:lower16:pix2 @ 57 [c=4 l=4] *arm_movsi_vfp/3
movt r3, #:upper16:pix2 @ 58 [c=4 l=4] *arm_movt/0
vmov.i32 q9, #0 @ v4si @ 3 [c=4 l=4] *neon_movv4si/2
movw r2, #:lower16:pix1 @ 59 [c=4 l=4] *arm_movsi_vfp/3
movt r2, #:upper16:pix1 @ 60 [c=4 l=4] *arm_movt/0
add r1, r3, #1024 @ 8 [c=4 l=4] *arm_addsi3/4
.L2:
vld1.8 {q11}, [r3]! @ 11 [c=8 l=4] *movmisalignv16qi_neon_load
vld1.8 {q10}, [r2]! @ 10 [c=8 l=4] *movmisalignv16qi_neon_load
cmp r1, r3 @ 21 [c=4 l=4] *arm_cmpsi_insn/2
vabdl.u8 q8, d20, d22 @ 12 [c=8 l=4] neon_vabdluv8qi
vabal.u8 q8, d21, d23 @ 15 [c=88 l=4] neon_vabaluv8qi
vpadal.u16 q9, q8 @ 16 [c=8 l=4] neon_vpadaluv8hi
bne .L2 @ 22 [c=16 l=4] arm_cond_branch
vadd.i32 d18, d18, d19 @ 24 [c=120 l=4] quad_halves_plusv4si
vpadd.i32 d18, d18, d18 @ 25 [c=8 l=4] neon_vpadd_internalv2si
vmov.32 r0, d18[0] @ 30 [c=12 l=4] vec_extractv2sisi/1
instead of:
foo:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
movw r3, #:lower16:pix1
movt r3, #:upper16:pix1
vmov.i32 q9, #0 @ v4si
movw r2, #:lower16:pix2
movt r2, #:upper16:pix2
add r1, r3, #1024
.L2:
vld1.8 {q8}, [r3]!
vld1.8 {q11}, [r2]!
vmovl.u8 q10, d16
cmp r1, r3
vmovl.u8 q8, d17
vmovl.u8 q12, d22
vmovl.u8 q11, d23
vsub.i16 q10, q10, q12
vsub.i16 q8, q8, q11
vabs.s16 q10, q10
vabs.s16 q8, q8
vaddw.s16 q9, q9, d20
vaddw.s16 q9, q9, d21
vaddw.s16 q9, q9, d16
vaddw.s16 q9, q9, d17
bne .L2
vadd.i32 d18, d18, d19
vpadd.i32 d18, d18, d18
vmov.32 r0, d18[0]
2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
* config/arm/iterators.md (VABAL): New int iterator.
* config/arm/neon.md (<sup>sadv16qi): New define_expand.
* config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S, UNSPEC_VABAL_U
values.
* gcc.target/arm/ssadv16qi.c: New test.
* gcc.target/arm/usadv16qi.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272180
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Wed, 12 Jun 2019 07:17:42 +0000 (07:17 +0000)]
Remove wrong assert about single value profiler.
2019-06-12 Martin Liska <mliska@suse.cz>
* value-prof.c (stream_out_histogram_value): Only first value
can't be negative.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272179
138bc75d -0d04-0410-961f-
82ee72b054a4
jakub [Wed, 12 Jun 2019 07:14:08 +0000 (07:14 +0000)]
PR c/90760
* symtab.c (symtab_node::set_section): Allow being called on aliases
as long as they aren't analyzed yet.
* gcc.dg/pr90760.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272178
138bc75d -0d04-0410-961f-
82ee72b054a4
gccadmin [Wed, 12 Jun 2019 00:16:15 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272177
138bc75d -0d04-0410-961f-
82ee72b054a4
mbelivea [Tue, 11 Jun 2019 20:15:43 +0000 (20:15 +0000)]
removed extra .com, fixed e-mail.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272170
138bc75d -0d04-0410-961f-
82ee72b054a4
law [Tue, 11 Jun 2019 20:09:57 +0000 (20:09 +0000)]
* config/mips/mips.c (mips_final_postscan_insn): Modify call
to `mips_set_text_contents_type' to indicate whether a
non-debug insn follows.
* gcc.target/mips/data-sym-pool.c: Update expected output.
* gcc.target/mips/data-sym-multi-pool.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272169
138bc75d -0d04-0410-961f-
82ee72b054a4
mbelivea [Tue, 11 Jun 2019 19:31:36 +0000 (19:31 +0000)]
* MAINTAINERS (Write After Approval): Add myself.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272168
138bc75d -0d04-0410-961f-
82ee72b054a4
iains [Tue, 11 Jun 2019 18:22:58 +0000 (18:22 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272167
138bc75d -0d04-0410-961f-
82ee72b054a4
meissner [Tue, 11 Jun 2019 17:36:58 +0000 (17:36 +0000)]
Do not enable -mpcrel by default at the current time
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272165
138bc75d -0d04-0410-961f-
82ee72b054a4
jakub [Tue, 11 Jun 2019 16:40:10 +0000 (16:40 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272161
138bc75d -0d04-0410-961f-
82ee72b054a4
emsr [Tue, 11 Jun 2019 16:29:35 +0000 (16:29 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272159
138bc75d -0d04-0410-961f-
82ee72b054a4
glisse [Tue, 11 Jun 2019 15:22:43 +0000 (15:22 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272158
138bc75d -0d04-0410-961f-
82ee72b054a4
mpolacek [Tue, 11 Jun 2019 15:03:21 +0000 (15:03 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272157
138bc75d -0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 11 Jun 2019 14:03:41 +0000 (14:03 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272156
138bc75d -0d04-0410-961f-
82ee72b054a4
jakub [Tue, 11 Jun 2019 13:01:40 +0000 (13:01 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272152
138bc75d -0d04-0410-961f-
82ee72b054a4
glisse [Tue, 11 Jun 2019 12:48:26 +0000 (12:48 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272151
138bc75d -0d04-0410-961f-
82ee72b054a4
jason [Tue, 11 Jun 2019 12:40:08 +0000 (12:40 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272150
138bc75d -0d04-0410-961f-
82ee72b054a4
nickc [Tue, 11 Jun 2019 12:05:49 +0000 (12:05 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272148
138bc75d -0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 11 Jun 2019 08:30:47 +0000 (08:30 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272146
138bc75d -0d04-0410-961f-
82ee72b054a4
jakub [Tue, 11 Jun 2019 08:20:02 +0000 (08:20 +0000)]
PR bootstrap/90819
* trans-mem.c (tm_memopt_compute_available): Add assertion
that blocks is not empty. Formatting fix.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272145
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Tue, 11 Jun 2019 07:55:19 +0000 (07:55 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272144
138bc75d -0d04-0410-961f-
82ee72b054a4
jakub [Tue, 11 Jun 2019 07:54:17 +0000 (07:54 +0000)]
* libgcov-merge.c (__gcov_merge_single): Revert previous change.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272143
138bc75d -0d04-0410-961f-
82ee72b054a4
gccadmin [Tue, 11 Jun 2019 00:16:16 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272141
138bc75d -0d04-0410-961f-
82ee72b054a4
uros [Mon, 10 Jun 2019 21:51:42 +0000 (21:51 +0000)]
* config/i386/i386.md (absneg fp_reg splitter): Fix operator mode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272134
138bc75d -0d04-0410-961f-
82ee72b054a4
ian [Mon, 10 Jun 2019 21:34:12 +0000 (21:34 +0000)]
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
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272133
138bc75d -0d04-0410-961f-
82ee72b054a4
ian [Mon, 10 Jun 2019 21:08:42 +0000 (21:08 +0000)]
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
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272132
138bc75d -0d04-0410-961f-
82ee72b054a4
ian [Mon, 10 Jun 2019 21:02:20 +0000 (21:02 +0000)]
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
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272131
138bc75d -0d04-0410-961f-
82ee72b054a4
ian [Mon, 10 Jun 2019 20:35:14 +0000 (20:35 +0000)]
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
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272130
138bc75d -0d04-0410-961f-
82ee72b054a4
mpolacek [Mon, 10 Jun 2019 20:35:00 +0000 (20:35 +0000)]
PR c++/87250
* g++.dg/cpp0x/pr87250.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272129
138bc75d -0d04-0410-961f-
82ee72b054a4
jason [Mon, 10 Jun 2019 19:32:34 +0000 (19:32 +0000)]
* constexpr.c (free_constructor): New.
(cxx_eval_call_expression): Free parameter value CONSTRUCTORs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272127
138bc75d -0d04-0410-961f-
82ee72b054a4
jason [Mon, 10 Jun 2019 19:32:30 +0000 (19:32 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272126
138bc75d -0d04-0410-961f-
82ee72b054a4
jason [Mon, 10 Jun 2019 19:31:49 +0000 (19:31 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272125
138bc75d -0d04-0410-961f-
82ee72b054a4
ian [Mon, 10 Jun 2019 19:30:21 +0000 (19:30 +0000)]
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
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272124
138bc75d -0d04-0410-961f-
82ee72b054a4
uros [Mon, 10 Jun 2019 19:17:57 +0000 (19:17 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272123
138bc75d -0d04-0410-961f-
82ee72b054a4
jakub [Mon, 10 Jun 2019 16:18:52 +0000 (16:18 +0000)]
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>.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272122
138bc75d -0d04-0410-961f-
82ee72b054a4
redi [Mon, 10 Jun 2019 15:55:36 +0000 (15:55 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272121
138bc75d -0d04-0410-961f-
82ee72b054a4
msebor [Mon, 10 Jun 2019 15:54:58 +0000 (15:54 +0000)]
gcc/ChangeLog:
* gimple-fold.c (get_range_strlen): Update comment that didn't
make it into r267503 or related commits.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272120
138bc75d -0d04-0410-961f-
82ee72b054a4
vlad [Mon, 10 Jun 2019 14:17:53 +0000 (14:17 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272119
138bc75d -0d04-0410-961f-
82ee72b054a4
jakub [Mon, 10 Jun 2019 12:20:30 +0000 (12:20 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272117
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Mon, 10 Jun 2019 11:28:49 +0000 (11:28 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272116
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Mon, 10 Jun 2019 11:07:24 +0000 (11:07 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272115
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Mon, 10 Jun 2019 09:53:46 +0000 (09:53 +0000)]
Add missing ATTR_UNUSED (PR bootstrap/90808).
2019-06-10 Martin Liska <mliska@suse.cz>
PR bootstrap/90808
* libgcov.h: Add ATTRIBUTE_UNUSED.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272114
138bc75d -0d04-0410-961f-
82ee72b054a4
claziss [Mon, 10 Jun 2019 08:25:37 +0000 (08:25 +0000)]
[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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272113
138bc75d -0d04-0410-961f-
82ee72b054a4
claziss [Mon, 10 Jun 2019 08:25:25 +0000 (08:25 +0000)]
[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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272112
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Mon, 10 Jun 2019 07:43:11 +0000 (07:43 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272111
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Mon, 10 Jun 2019 07:42:43 +0000 (07:42 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272110
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Mon, 10 Jun 2019 07:42:22 +0000 (07:42 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272109
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Mon, 10 Jun 2019 07:39:34 +0000 (07:39 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272108
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Mon, 10 Jun 2019 07:39:20 +0000 (07:39 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272107
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Mon, 10 Jun 2019 07:38:59 +0000 (07:38 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272106
138bc75d -0d04-0410-961f-
82ee72b054a4
iains [Mon, 10 Jun 2019 07:04:55 +0000 (07:04 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272105
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Mon, 10 Jun 2019 07:04:39 +0000 (07:04 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272104
138bc75d -0d04-0410-961f-
82ee72b054a4
gccadmin [Mon, 10 Jun 2019 00:16:22 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272102
138bc75d -0d04-0410-961f-
82ee72b054a4
mpolacek [Sun, 9 Jun 2019 23:18:28 +0000 (23:18 +0000)]
PR c++/65175
* g++.dg/cpp0x/alias-decl-69.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272098
138bc75d -0d04-0410-961f-
82ee72b054a4
mpolacek [Sun, 9 Jun 2019 15:41:07 +0000 (15:41 +0000)]
PR c++/60366
* g++.dg/cpp0x/lambda/lambda-ice32.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272092
138bc75d -0d04-0410-961f-
82ee72b054a4
pault [Sun, 9 Jun 2019 09:43:37 +0000 (09:43 +0000)]
2019-06-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/89365
* gfortran.dg/assumed_rank_bounds_3.f90 : New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272090
138bc75d -0d04-0410-961f-
82ee72b054a4
gccadmin [Sun, 9 Jun 2019 00:16:18 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272089
138bc75d -0d04-0410-961f-
82ee72b054a4
emsr [Sat, 8 Jun 2019 22:18:36 +0000 (22:18 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272085
138bc75d -0d04-0410-961f-
82ee72b054a4
pault [Sat, 8 Jun 2019 15:52:38 +0000 (15:52 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272084
138bc75d -0d04-0410-961f-
82ee72b054a4
mpolacek [Sat, 8 Jun 2019 14:10:42 +0000 (14:10 +0000)]
PR c++/52269
* g++.dg/cpp0x/constexpr-decltype4.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272083
138bc75d -0d04-0410-961f-
82ee72b054a4
tkoenig [Sat, 8 Jun 2019 13:50:42 +0000 (13:50 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272082
138bc75d -0d04-0410-961f-
82ee72b054a4
redi [Sat, 8 Jun 2019 13:40:25 +0000 (13:40 +0000)]
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"
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272081
138bc75d -0d04-0410-961f-
82ee72b054a4
mpolacek [Sat, 8 Jun 2019 13:13:48 +0000 (13:13 +0000)]
PR c++/77548
* g++.dg/other/pr77548.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272079
138bc75d -0d04-0410-961f-
82ee72b054a4
mpolacek [Sat, 8 Jun 2019 12:51:07 +0000 (12:51 +0000)]
PR c++/72845
* g++.dg/cpp0x/noexcept41.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272078
138bc75d -0d04-0410-961f-
82ee72b054a4
prathamesh3492 [Sat, 8 Jun 2019 08:24:43 +0000 (08:24 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272073
138bc75d -0d04-0410-961f-
82ee72b054a4
mpolacek [Sat, 8 Jun 2019 00:48:54 +0000 (00:48 +0000)]
PR c++/77747
* g++.dg/cpp0x/inh-ctor33.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272071
138bc75d -0d04-0410-961f-
82ee72b054a4
mpolacek [Sat, 8 Jun 2019 00:30:51 +0000 (00:30 +0000)]
PR c++/77967
* g++.dg/cpp0x/alias-decl-68.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272070
138bc75d -0d04-0410-961f-
82ee72b054a4
mpolacek [Sat, 8 Jun 2019 00:17:13 +0000 (00:17 +0000)]
PR c++/77771
* g++.dg/cpp0x/constexpr-77771.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272068
138bc75d -0d04-0410-961f-
82ee72b054a4
gccadmin [Sat, 8 Jun 2019 00:16:31 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272067
138bc75d -0d04-0410-961f-
82ee72b054a4
danglin [Fri, 7 Jun 2019 23:15:49 +0000 (23:15 +0000)]
* lib/scanasm.exp (dg-function-on-line): Add pattern for hppa*-*-linux*.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272060
138bc75d -0d04-0410-961f-
82ee72b054a4
danglin [Fri, 7 Jun 2019 23:13:08 +0000 (23:13 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272059
138bc75d -0d04-0410-961f-
82ee72b054a4
aldyh [Fri, 7 Jun 2019 22:18:24 +0000 (22:18 +0000)]
Split up value_range::intersect into base (value_range_base) and
derived versions (value_range).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272058
138bc75d -0d04-0410-961f-
82ee72b054a4
rodgertq [Fri, 7 Jun 2019 22:01:16 +0000 (22:01 +0000)]
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
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272056
138bc75d -0d04-0410-961f-
82ee72b054a4
ian [Fri, 7 Jun 2019 21:16:11 +0000 (21:16 +0000)]
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
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272055
138bc75d -0d04-0410-961f-
82ee72b054a4
jason [Fri, 7 Jun 2019 21:08:26 +0000 (21:08 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272054
138bc75d -0d04-0410-961f-
82ee72b054a4
redi [Fri, 7 Jun 2019 19:57:28 +0000 (19:57 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272051
138bc75d -0d04-0410-961f-
82ee72b054a4
redi [Fri, 7 Jun 2019 19:57:19 +0000 (19:57 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272050
138bc75d -0d04-0410-961f-
82ee72b054a4
jakub [Fri, 7 Jun 2019 15:38:35 +0000 (15:38 +0000)]
* Makefile.in (genprogerr): Add condmd.
(genprog): Remove it here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272047
138bc75d -0d04-0410-961f-
82ee72b054a4
jvdelisle [Fri, 7 Jun 2019 14:25:39 +0000 (14:25 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272046
138bc75d -0d04-0410-961f-
82ee72b054a4
ian [Fri, 7 Jun 2019 14:19:51 +0000 (14:19 +0000)]
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
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272045
138bc75d -0d04-0410-961f-
82ee72b054a4
ams [Fri, 7 Jun 2019 14:00:58 +0000 (14:00 +0000)]
Document -march=gfx906 option.
2019-06-07 Andrew Stubbs <ams@codesourcery.com>
gcc/
* doc/invoke.texi (AMD GCN Options): Add gfx906.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272044
138bc75d -0d04-0410-961f-
82ee72b054a4
ian [Fri, 7 Jun 2019 13:40:26 +0000 (13:40 +0000)]
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
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272043
138bc75d -0d04-0410-961f-
82ee72b054a4
rguenth [Fri, 7 Jun 2019 12:14:55 +0000 (12:14 +0000)]
2019-06-07 Richard Biener <rguenther@suse.de>
PR debug/90574
* tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
that appear after user labels.
* gcc.misc-tests/gcov-pr90574-1.c: New testcase.
* gcc.misc-tests/gcov-pr90574-2.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272040
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Fri, 7 Jun 2019 12:13:13 +0000 (12:13 +0000)]
Enable sanitization for hash tables.
2019-06-07 Martin Liska <mliska@suse.cz>
* cselib.c (cselib_init): Disable hash table
sanitization.
* hash-set.h: Pass new default argument to m_table.
* hash-table.c: Add global variable with hash table
sanitization limit.
* hash-table.h (Allocator>::hash_table): Add new argument
to ctor.
(hashtab_chk_error): New.
* params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
* toplev.c (process_options): Set hash_table_sanitize_eq_limit
from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272038
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Fri, 7 Jun 2019 08:15:00 +0000 (08:15 +0000)]
* common.opt (flto-odr-type-merging): Ignore.
* invoke.texi (-flto-odr-type-merging): Remove.
* ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
(can_be_vtable_hashed_p): Remove.
(hash_odr_vtable): Remove.
(odr_vtable_hasher::hash): Remove.
(types_same_for_odr): Remove.
(types_odr_comparable): Remove.
(odr_vtable_hasher::equal): Remove.
(odr_vtable_hash_type, odr_vtable_hash): Remove.
(add_type_duplicate): Do not synchronize vtable and name hashtables.
(get_odr_type): Do not use vtable hash.
(dump_odr_type): Remove commented out code.
(build_type_inheritance_graph): Do not allocate vtable hash.
(rebuild_type_inheritance_graph): Do not delete vtable hash.
* ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
(odr_type_p): Likewise.
* tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272037
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Fri, 7 Jun 2019 08:14:04 +0000 (08:14 +0000)]
Make aliasing_component_refs_p to work harder when same_type_for_tbaa returns -1
* tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
immediately after same_types_for_tbaa_p returns -1 and continue
looking for possible exact match; if matching types are arrays
watch for partial overlaps.
(indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
(indirect_refs_may_alias_p): Do type based disambiguation first;
update comment.
* gcc.dg/lto/alias-access-path-2.0.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272036
138bc75d -0d04-0410-961f-
82ee72b054a4
rsandifo [Fri, 7 Jun 2019 07:40:20 +0000 (07:40 +0000)]
Fix fwprop call to call to paradoxical_subreg_p
"mode" is the mode of "x", not the replacement value.
2019-06-06 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272032
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Fri, 7 Jun 2019 06:41:58 +0000 (06:41 +0000)]
Remove indirect call top N counter type.
2019-06-07 Martin Liska <mliska@suse.cz>
* doc/invoke.texi: Remove param.
* gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
Remove.
* gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
(GCOV_ICALL_TOPN_NCOUNTS): Likewise.
* params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
* profile.c (instrument_values): Remove
HIST_TYPE_INDIR_CALL_TOPN.
* tree-profile.c (init_ic_make_global_vars):
Always build __gcov_indirect_call only.
(gimple_init_gcov_profiler): Remove usage
of PARAM_INDIR_CALL_TOPN_PROFILE.
(gimple_gen_ic_profiler): Likewise.
* value-prof.c (dump_histogram_value): Likewise.
(stream_in_histogram_value): Likewise.
(gimple_indirect_call_to_profile): Likewise.
(gimple_find_values_to_profile): Likewise.
* value-prof.h (enum hist_type): Likewise.
2019-06-07 Martin Liska <mliska@suse.cz>
* Makefile.in: Remove usage of
_gcov_merge_icall_topn.
* libgcov-driver.c (gcov_sort_n_vals): Remove.
(gcov_sort_icall_topn_counter): Likewise.
(gcov_sort_topn_counter_arrays): Likewise.
(dump_one_gcov): Remove call to gcov_sort_topn_counter_arrays.
* libgcov-merge.c (__gcov_merge_icall_topn): Remove.
* libgcov-profiler.c (__gcov_topn_value_profiler_body):
Likewise.
(GCOV_ICALL_COUNTER_CLEAR_THRESHOLD): Remove.
(struct indirect_call_tuple): Remove.
(__gcov_indirect_call_topn_profiler): Remove.
* libgcov-util.c (__gcov_icall_topn_counter_op): Remove.
* libgcov.h (gcov_sort_n_vals): Remove.
(L_gcov_merge_icall_topn): Likewise.
(__gcov_merge_icall_topn): Likewise.
(__gcov_indirect_call_topn_profiler): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272030
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Fri, 7 Jun 2019 05:35:19 +0000 (05:35 +0000)]
Fix a thinko in tree-ssa-loop.c.
2019-06-07 Martin Liska <mliska@suse.cz>
* tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272029
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Fri, 7 Jun 2019 05:33:11 +0000 (05:33 +0000)]
Add warn_unused_result for malloc-like functions (PR tree-optimization/78902).
2019-06-07 Martin Liska <mliska@suse.cz>
PR tree-optimization/78902
* builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
(ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
(ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
(ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
(ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
(ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
(ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
(ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
(ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
(ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
(ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
(ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
(ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
New.
(ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
(ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
(ATTR_MALLOC_NOTHROW_NONNULL): Remove.
(ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
(ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
(ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
(ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
(ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
* builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
warn_unused_result attribute.
(BUILT_IN_STRDUP): Likewise.
(BUILT_IN_STRNDUP): Likewise.
(BUILT_IN_ALLOCA): Likewise.
(BUILT_IN_CALLOC): Likewise.
(BUILT_IN_MALLOC): Likewise.
(BUILT_IN_REALLOC): Likewise.
2019-06-07 Martin Liska <mliska@suse.cz>
PR tree-optimization/78902
* c-c++-common/asan/alloca_loop_unpoisoning.c: Use result
of __builtin_alloca.
* c-c++-common/asan/pr88619.c: Likewise.
* g++.dg/overload/using2.C: Likewise for malloc.
* gcc.dg/attr-alloc_size-5.c: Add new dg-warning.
* gcc.dg/nonnull-3.c: Use result of __builtin_strdup.
* gcc.dg/pr43643.c: Likewise.
* gcc.dg/pr59717.c: Likewise for calloc.
* gcc.dg/torture/pr71816.c: Likewise.
* gcc.dg/tree-ssa/pr78886.c: Likewise.
* gcc.dg/tree-ssa/pr79697.c: Likewise.
* gcc.dg/pr78902.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272028
138bc75d -0d04-0410-961f-
82ee72b054a4
gccadmin [Fri, 7 Jun 2019 00:16:19 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272027
138bc75d -0d04-0410-961f-
82ee72b054a4
ian [Fri, 7 Jun 2019 00:07:50 +0000 (00:07 +0000)]
go/internal/gccgoimporter: ignore unexported and imported names
Due to inlining, we can now see unexported functions and variables,
and functions and variables imported from different packages.
Ignore them rather than reporting them from this package.
Handle $hash and $equal functions consistently, so that we discard the
inline body if there is one.
Ignore names created for result parameters for inlining purposes.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/180758
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272023
138bc75d -0d04-0410-961f-
82ee72b054a4