gcc.git
7 years ago[PR80803 2/2] Diligent queuing in SRA grp_write prop
Martin Jambor [Tue, 13 Jun 2017 11:40:24 +0000 (13:40 +0200)]
[PR80803 2/2] Diligent queuing in SRA grp_write prop

2017-06-13  Martin Jambor  <mjambor@suse.cz>

PR tree-optimization/80803
PR tree-optimization/81063
* tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
(propagate_subaccesses_across_link): Enqueue subtree whneve necessary
instead of relying on the caller.

testsuite/
gcc.dg/tree-ssa/pr80803.c: New test.
gcc.dg/tree-ssa/pr81063.c: Likewise.

From-SVN: r249154

7 years ago[PR80803 1/2] Streamline SRA access enqueuing
Martin Jambor [Tue, 13 Jun 2017 11:34:51 +0000 (13:34 +0200)]
[PR80803 1/2] Streamline SRA access enqueuing

2017-06-13  Martin Jambor  <mjambor@suse.cz>

* tree-sra.c (add_access_to_work_queue): Only enqueue accesses
that have a first_link.
(sort_and_splice_var_accesses): Do not check first_link before
enquing.
(subtree_mark_written_and_enqueue): Likewise.
(propagate_all_subaccesses): Likewise and do not stop at first
parent with a first_link.

From-SVN: r249153

7 years agoTrivial fix in dump_access_tree_1
Martin Jambor [Tue, 13 Jun 2017 11:32:02 +0000 (13:32 +0200)]
Trivial fix in dump_access_tree_1

2017-06-13  Martin Jambor  <mjambor@suse.cz>

* tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
instead of f.

From-SVN: r249152

7 years agomatch.pd: New pattern.
Yury Gribov [Tue, 13 Jun 2017 11:19:23 +0000 (11:19 +0000)]
match.pd: New pattern.

2017-06-13  Yury Gribov  <tetra2005@gmail.com>

gcc/
* match.pd: New pattern.

gcc/testsuite/
* c-c++-common/fold-masked-cmp-3.c: New test.

From-SVN: r249151

7 years agotree-vrp.c (is_masked_range_test): New function.
Yury Gribov [Tue, 13 Jun 2017 11:16:15 +0000 (11:16 +0000)]
tree-vrp.c (is_masked_range_test): New function.

2017-06-13  Yury Gribov  <tetra2005@gmail.com>

gcc/
* tree-vrp.c (is_masked_range_test): New function.
(register_edge_assert_for): Determine ranges for
some bit tests.

From-SVN: r249150

7 years agore PR tree-optimization/67328 (range test rather than single bit test for code testin...
Yury Gribov [Tue, 13 Jun 2017 11:13:52 +0000 (11:13 +0000)]
re PR tree-optimization/67328 (range test rather than single bit test for code testing enum values)

2017-06-13  Yury Gribov  <tetra2005@gmail.com>

gcc/
PR tree-optimization/67328
* fold-const.c (maskable_range_p): New function.
(build_range_check): Generate bittests if possible.

gcc/testsuite/
PR tree-optimization/67328
* c-c++-common/fold-masked-cmp-1.c: New test.
* c-c++-common/fold-masked-cmp-2.c: Likewise.
* gcc.dg/pr46309.c: Fix pattern.
* gcc.dg/pr46309-2.c: Likewise.

From-SVN: r249149

7 years agosdiv_costs_1.c: Require arm_arch_v8a_ok and add march option.
Tamar Christina [Tue, 13 Jun 2017 10:23:51 +0000 (10:23 +0000)]
sdiv_costs_1.c: Require arm_arch_v8a_ok and add march option.

2017-06-13  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/arm/sdiv_costs_1.c:
Require arm_arch_v8a_ok and add march option.

From-SVN: r249148

7 years agoEnhance dump_probability function.
Martin Liska [Tue, 13 Jun 2017 08:59:28 +0000 (10:59 +0200)]
Enhance dump_probability function.

2017-06-13  Martin Liska  <mliska@suse.cz>

* gimple-pretty-print.c (dump_probability): Add new argument.
(dump_edge_probability): Dump both probability and count.
(dump_gimple_label): Likewise.
(dump_gimple_bb_header): Likewise.
2017-06-13  Martin Liska  <mliska@suse.cz>

* gcc.dg/tree-ssa/builtin-sprintf-2.c: Adjust scanned pattern.
* gcc.dg/tree-ssa/dump-2.c: Likewise.
* gcc.dg/tree-ssa/vrp101.c: Likewise.

From-SVN: r249147

7 years agore PR target/81072 ([avr] Support some XMEGA devices with flash seen in RAM address...
Georg-Johann Lay [Tue, 13 Jun 2017 08:25:07 +0000 (08:25 +0000)]
re PR target/81072 ([avr] Support some XMEGA devices with flash seen in RAM address space.)

PR target/81072
* config/avr/avr-devices.c: Fix indentation.
* config/avr/gen-avr-mmcu-specs.c: Dito.

From-SVN: r249146

7 years agotree-vect-loop.c (vect_model_reduction_cost): Do not fail, instead get vector type...
Richard Biener [Tue, 13 Jun 2017 07:10:06 +0000 (07:10 +0000)]
tree-vect-loop.c (vect_model_reduction_cost): Do not fail, instead get vector type from stmt_info.

2017-06-13  Richard Biener  <rguenther@suse.de>

* tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
instead get vector type from stmt_info.
(vectorizable_reduction): Adjust.  Remove dead code.

From-SVN: r249145

7 years agore PR sanitizer/81065 (UBSAN: false positive as a result of distribution involving...
Richard Biener [Tue, 13 Jun 2017 07:07:08 +0000 (07:07 +0000)]
re PR sanitizer/81065 (UBSAN: false positive as a result of distribution involving different types)

2017-06-13  Richard Biener  <rguenther@suse.de>

PR middle-end/81065
* fold-const.c (extract_muldiv_1): Remove bogus distribution
case of C * (x * C2 + C3).
(fold_addr_of_array_ref_difference): Properly fold index difference.

* c-c++-common/ubsan/pr81065.c: New testcase.

From-SVN: r249144

7 years agoruntime: clear isSystemGoroutine in goexit
Ian Lance Taylor [Tue, 13 Jun 2017 00:43:56 +0000 (00:43 +0000)]
runtime: clear isSystemGoroutine in goexit

    Otherwise it may be set when the g struct is reused via gfput/gfget.

    Test is golang.org/x/net/http2 with GOMAXPROCS=12.

    Reviewed-on: https://go-review.googlesource.com/45430

From-SVN: r249143

7 years agoDaily bump.
GCC Administrator [Tue, 13 Jun 2017 00:16:26 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r249142

7 years agoruntime: ignore _Gscan bit when checking status in CgocallDone
Ian Lance Taylor [Mon, 12 Jun 2017 23:14:05 +0000 (23:14 +0000)]
runtime: ignore _Gscan bit when checking status in CgocallDone

    Also always access the atomicstatus field atomically.

    The effect of not checking the _Gscan bit is that if the GC decides to
    scan the stack just as the goroutine is leaving the system call, the
    goroutine might fail to call exitsyscall.  Then then typically causes
    a runtime assertion failure later on.  If we do call exitsyscall as we
    should, it will stall (in casgstatus) until the _Gscan bit is cleared.

    No separate test.  I've observed causing sporadic failures running the
    misc/cgo tests, but we don't currently have a way to run those
    routinely for gccgo.  I should fix that.

    Reviewed-on: https://go-review.googlesource.com/45392

From-SVN: r249138

7 years agoFinish implementing P0426R1 "Constexpr for std::char_traits" for C++17
Pedro Alves [Mon, 12 Jun 2017 22:22:39 +0000 (22:22 +0000)]
Finish implementing P0426R1 "Constexpr for std::char_traits" for C++17

As discussed in PR c++/80265 ("__builtin_{memcmp,memchr,strlen} are
not usable in constexpr functions"), use __builtin_constant_p to tell
whether we can defer to a constexpr algorithm.

I used __always_inline__ just to be thorough.  It isn't really really
necessary as far as I could determine.

Changes like these:

 if (__n == 0)
   return 0;
 - return wmemcmp(__s1, __s2, __n);
 + else
 +   return wmemcmp(__s1, __s2, __n);

are necessary otherwise G++ complains that we're calling a
non-constexpr function, which looks like a a manifestation of PR67026
to me.

libstdc++-v3:
2017-06-12  Pedro Alves  <palves@redhat.com>

* doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr
char_traits status.
* doc/html/*: Regenerate.

* include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if
not already defined.
(__cpp_lib_constexpr_char_traits): Uncomment.
(__constant_string_p, __constant_char_array_p): New.
(std::char_traits<char>, std::char_traits<wchar_t>): Add
_GLIBCXX17_CONSTEXPR on compare, length and find and use
__constant_string_p, __constant_char_array_p and
__builtin_constant_p to defer to __gnu_cxx::char_traits at compile
time.

* testsuite/21_strings/char_traits/requirements/
constexpr_functions_c++17.cc: Uncomment
__cpp_lib_constexpr_char_traits tests.  Uncomment
test_compare<char>, test_length<char>, test_find<char>,
test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t>
static_assert tests.

From-SVN: r249137

7 years agostl_tree.h (_Rb_tree_impl()): Restore _Node_allocator default init.
François Dumont [Mon, 12 Jun 2017 20:38:16 +0000 (20:38 +0000)]
stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator default init.

2017-06-12  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/stl_tree.h (_Rb_tree_impl()): Restore _Node_allocator
default init.
* testsuite/util/testsuite_allocator.h
(__gnu_test::default_init_allocator<>) New.
* testsuite/23_containers/set/allocator/default_init.cc: New.
* testsuite/23_containers/map/allocator/default_init.cc: New.

From-SVN: r249136

7 years agoMore refinements to fixing sparc's PR target/80968.
David S. Miller [Mon, 12 Jun 2017 19:30:45 +0000 (19:30 +0000)]
More refinements to fixing sparc's PR target/80968.

gcc/

PR target/80968
* config/sparc/sparc.md (return expander): Emit frame blockage if
function uses alloca.

From-SVN: r249134

7 years agocompiler: avoid orphaning Bexpressions when processing conversions
Ian Lance Taylor [Mon, 12 Jun 2017 17:51:52 +0000 (17:51 +0000)]
compiler: avoid orphaning Bexpressions when processing conversions

    The method Type_conversion_expression::do_get_backend was (in some
    circumstances) creating a Bexpression for the source expression of the
    conversion and then throwing it away before using it. Fix up this
    method to insure that the call to get_backend() on the source
    expression is only made when the result will be used.

    Reviewed-on: https://go-review.googlesource.com/45350

From-SVN: r249131

7 years agoPR libstdc++/55917 do not handle exceptions in std::thread
Jonathan Wakely [Mon, 12 Jun 2017 16:37:28 +0000 (17:37 +0100)]
PR libstdc++/55917 do not handle exceptions in std::thread

PR libstdc++/55917
* src/c++11/thread.cc (execute_native_thread_routine): Remove
try-block so that exceptions propagate out of the thread and terminate
is called by the exception-handling runtime.
(execute_native_thread_routine_compat): Likewise.
* testsuite/30_threads/thread/cons/terminate.cc: New.

From-SVN: r249130

7 years agosplit-1.c: Require split_stack, don't require freorder.
Ian Lance Taylor [Mon, 12 Jun 2017 16:15:53 +0000 (16:15 +0000)]
split-1.c: Require split_stack, don't require freorder.

* gcc.dg/tree-prof/split-1.c: Require split_stack, don't require
freorder.  Update comment to explain test.

From-SVN: r249129

7 years agoFix pessimistic DImode handling in combine.c:make_field_assignment
Richard Sandiford [Mon, 12 Jun 2017 16:06:38 +0000 (16:06 +0000)]
Fix pessimistic DImode handling in combine.c:make_field_assignment

The make_field_assignment code:

      src = force_to_mode (src, mode,
       GET_MODE_PRECISION (mode) >= HOST_BITS_PER_WIDE_INT
       ? HOST_WIDE_INT_M1U
       : (HOST_WIDE_INT_1U << len) - 1,
       0);

would ignore the field length len for DImode, even though DImode can be
handled using HWIs.  I think the code should be testing len instead.

2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* combine.c (make_field_assignment): Check len rather than the mode
precision when calling force_to_mode.

From-SVN: r249128

7 years agoinline-lrint_1.c: Broaden regexp.
Tamar Christina [Mon, 12 Jun 2017 14:23:22 +0000 (14:23 +0000)]
inline-lrint_1.c: Broaden regexp.

2017-06-12  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/aarch64/inline-lrint_1.c: Broaden regexp.
* gcc.target/aarch64/inline-lrint_2.c: Likewise.
* gcc.target/aarch64/no-inline-lrint_1.c: Likewise.
* gcc.target/aarch64/no-inline-lrint_2.c: Likewise.

From-SVN: r249127

7 years agosdiv_costs_1.c: Require arm_v8_vfp_ok.
Tamar Christina [Mon, 12 Jun 2017 13:24:37 +0000 (13:24 +0000)]
sdiv_costs_1.c: Require arm_v8_vfp_ok.

2017-06-12  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/arm/sdiv_costs_1.c: Require arm_v8_vfp_ok.

From-SVN: r249125

7 years agoSupport multilibs and devices that see flash in RAM address range.
Georg-Johann Lay [Mon, 12 Jun 2017 12:52:30 +0000 (12:52 +0000)]
Support multilibs and devices that see flash in RAM address range.

gcc/
Support multilibs and devices that see flash in RAM address range.

PR target/81072
* config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
(avr_mcu_t) <flash_pm_offset>: New field.
(avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
* config/avr/avr.h (AVR_SHORT_CALLS): New define.
(AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
(AVR_TINY_PM_OFFSET): Remove macro.
* config/avr/avr.opt (-mshort-calls): New option.
* config/avr/gen-avr-mmcu-specs.c (print_mcu)
[*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
* config/avr/avr-c.c (avr_cpu_cpp_builtins)
<__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
<__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
instead of avr_arch->have_jmp_call.
<__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
[AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
avr_arch->flash_pm_offset to define.
* config/avr/avr-devices.c (avr_arch_types): Add initializers for
new field flash_pm_offset.  Add entry for avrxmega3.
(avr_texinfo): Add entry for avrxmega3.
* config/avr/avr-mcus.def: Add entries for: avrxmega3,
attiny212, attiny214,
attiny412, attiny414, attiny416, attiny417,
attiny814, attiny816, attiny817,
attiny1614, attiny1616, attiny1617,
attiny3214, attiny3216, attiny3217.
* config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
(avr_print_operand_address) [AVR_TINY]: Same.
(avr_asm_init_sections) <readonly_data_section>: Only patch
callback if avr_arch->flash_pm_offset = 0.
(avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
for rodata if avr_arch->flash_pm_offset != 0.
(avr_encode_section_info) [AVR_TINY]: Adjust comment.
* config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
(opts) [AVR_ISA_RCALL]: Append opt_rcall.
(m_options): Append opt_rcall.
(m_dirnames): Append dir_rcall.
* config/avr/t-multilib: Regenerate.
* configure.ac [target=avr]: Check whether avrxmega3 default
linker description file works as needed.
* configure: Regenerate.
* doc/avr-mmcu.texi: Regenerate.
* doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
<__AVR_ARCH__>: Document avrxmega3 and 103.
<__AVR_HAVE_JMP_CALL__>: Adjust documentation.
<__AVR_SHORT_CALLS__>: Document it.
<__AVR_PM_BASE_ADDRESS__>: Document it.
* doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
(AVR Variable Attributes) <progmem>: Document this is
not needed for avrxmega3.
(AVR Named Address Spaces) <__flash>: Dito.

From-SVN: r249124

7 years ago* cgraph.c (cgraph_node::dump): Complain about profile insanities.
Jan Hubicka [Mon, 12 Jun 2017 12:36:47 +0000 (14:36 +0200)]
* cgraph.c (cgraph_node::dump): Complain about profile insanities.

From-SVN: r249123

7 years agosdiv_costs_1.c: Disable on softfloat.
Tamar Christina [Mon, 12 Jun 2017 12:32:45 +0000 (12:32 +0000)]
sdiv_costs_1.c: Disable on softfloat.

2017-06-12  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/arm/sdiv_costs_1.c: Disable on softfloat.

From-SVN: r249122

7 years agoconfig.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
Doug Rupp [Mon, 12 Jun 2017 12:10:12 +0000 (12:10 +0000)]
config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".

2017-06-12  Doug Rupp  <rupp@adacore.com>

gcc/
* config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
Append vxworks-stdint.h to the tm_file list.
* config/vxworks-stdint.h: New file.

fixincludes/
* inclhack.def (AAB_vxworks_stdint): Remove hack.
* fixincl.x: Regenerate.

From-SVN: r249121

7 years agoCreate an extra BB in profile-generate (PR tree-optimization/81041).
Martin Liska [Mon, 12 Jun 2017 11:56:32 +0000 (13:56 +0200)]
Create an extra BB in profile-generate (PR tree-optimization/81041).

2017-06-12  Martin Liska  <mliska@suse.cz>

PR tree-optimization/81041
* tree-profile.c (gimple_gen_ic_func_profiler):
Create an extra BB in profile-generate
(gimple_gen_time_profiler): Likewise.

From-SVN: r249120

7 years agore PR bootstrap/80897 (gnat bootstrap broken on SPARC64/Linux)
Eric Botcazou [Mon, 12 Jun 2017 11:28:33 +0000 (11:28 +0000)]
re PR bootstrap/80897 (gnat bootstrap broken on SPARC64/Linux)

PR bootstrap/80897
* exp_ch3.adb (Make_Predefined_Primitive_Specs): Use Positive index.

From-SVN: r249119

7 years agors6000: Remove e500.h from config.gcc some more
Segher Boessenkool [Mon, 12 Jun 2017 11:16:11 +0000 (13:16 +0200)]
rs6000: Remove e500.h from config.gcc some more

* config.gcc: Remove rs6000/e500.h from tm_file for all targets.

From-SVN: r249117

7 years agore PR ada/81070 (build failure for s-intrr.adb)
Eric Botcazou [Mon, 12 Jun 2017 10:47:36 +0000 (10:47 +0000)]
re PR ada/81070 (build failure for s-intrr.adb)

PR ada/81070
* s-interr-hwint.adb: Reinstate.
* gcc-interface/Makefile.in (RTEMS): Use it again.

From-SVN: r249115

7 years agore PR tree-optimization/81003 (ICE: tree check: expected ssa_name, have integer_cst...
Jakub Jelinek [Mon, 12 Jun 2017 10:45:52 +0000 (12:45 +0200)]
re PR tree-optimization/81003 (ICE: tree check: expected ssa_name, have integer_cst in optimize_range_tests_to_bit_test, at tree-ssa-reassoc.c:2782)

PR tree-optimization/81003
* tree-ssa-reassoc.c (force_into_ssa_name): New function.
(update_range_test): Use it instead of force_gimple_operand_gsi.

* gcc.c-torture/compile/pr81003.c: New test.

From-SVN: r249114

7 years agore PR tree-optimization/81053 (ICE on valid code at -O3 on x86_64-linux-gnu: in as_a...
Richard Biener [Mon, 12 Jun 2017 10:42:57 +0000 (10:42 +0000)]
re PR tree-optimization/81053 (ICE on valid code at -O3 on x86_64-linux-gnu: in as_a, at is-a.h:192)

2017-06-12  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81053
* tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
with backedge value not defined in loop.  Simplify def stmt
compute.

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

From-SVN: r249113

7 years agoelf.c (backtrace_initialize): Always set *fileline_fn.
Ian Lance Taylor [Mon, 12 Jun 2017 03:25:04 +0000 (03:25 +0000)]
elf.c (backtrace_initialize): Always set *fileline_fn.

* elf.c (backtrace_initialize): Always set *fileline_fn.
* ttest.c: New file.
* btest.c: Move support functions into testlib.c.  Change calls to
check to pass file name.
* testlib.c: New file, copied from (part of) btest.c.
* testlib.h: New file, declarations for testlib.c.
* edtest.c: Use testlib.h and testlib.c.
* configure.ac: Test for -pthread, set HAVE_PTHREAD conditional.
* Makefile.am (btest_SOURCES): Add testlib.c.
(edtest_SOURCES): Likewise.
(CHECK_PROGRAMS): Add ttest if HAVE_PTHREAD.
(ttest_SOURCES, ttest_CFLAGS, ttest_LDADD): Define.
* configure, Makefile.in: Rebuild.

From-SVN: r249111

7 years agoDaily bump.
GCC Administrator [Mon, 12 Jun 2017 00:16:33 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r249110

7 years agoDisable constant pool for nvptx
Tom de Vries [Sun, 11 Jun 2017 21:54:00 +0000 (21:54 +0000)]
Disable constant pool for nvptx

2017-06-11  Tom de Vries  <tom@codesourcery.com>

PR target/79939
* config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
Return true.
(TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
nvptx_cannot_force_const_mem.

From-SVN: r249106

7 years agoopts.c (finish_options): Move test for flag_split_stack after it has been initialized.
Jan Hubicka [Sun, 11 Jun 2017 09:33:22 +0000 (11:33 +0200)]
opts.c (finish_options): Move test for flag_split_stack after it has been initialized.

* opts.c (finish_options): Move test for flag_split_stack after
it has been initialized.

From-SVN: r249105

7 years ago* error.c (dump_expr): Use is_this_parameter.
Jason Merrill [Sun, 11 Jun 2017 05:29:34 +0000 (01:29 -0400)]
* error.c (dump_expr): Use is_this_parameter.

From-SVN: r249104

7 years agotree.h (id_equal): New.
Jason Merrill [Sun, 11 Jun 2017 05:29:14 +0000 (01:29 -0400)]
tree.h (id_equal): New.

* tree.h (id_equal): New.

* dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
instead of strcmp of IDENTIFIER_POINTER.
c-family/
* c-ada-spec.c, c-pragma.c: Use it.
cp/
* cp-tree.h, decl2.c, mangle.c, parser.c, pt.c, semantics.c: Use it.

From-SVN: r249103

7 years agoDaily bump.
GCC Administrator [Sun, 11 Jun 2017 00:16:34 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r249102

7 years agoipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
Jan Hubicka [Sat, 10 Jun 2017 23:18:44 +0000 (01:18 +0200)]
ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h

* ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
(mark_all_inlined_calls_cdtor): Fix formating.
(inline_transform): Rescale profile before inlining.

From-SVN: r249098

7 years agocgraph.h (cgraph_edge::clone): Update prototype.
Jan Hubicka [Sat, 10 Jun 2017 23:07:11 +0000 (01:07 +0200)]
cgraph.h (cgraph_edge::clone): Update prototype.

* cgraph.h (cgraph_edge::clone): Update prototype.
* cgraphclones.c (cgraph_edge::clone): Update profile scaling.
(cgraph_node::create_clone): Update.
(cgraph_node::create_version_clone): Update.
* tree-inline.c (copy_bb): Update.
(expand_call_inline): Update.

From-SVN: r249097

7 years agors6000: Factor out emit_vrsave_prologue
Segher Boessenkool [Sat, 10 Jun 2017 22:22:54 +0000 (00:22 +0200)]
rs6000: Factor out emit_vrsave_prologue

This is a second patch to make the prologue code more manageable.

* config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
factored out from ...
(rs6000_emit_prologue): ... here.

From-SVN: r249096

7 years agors6000: Factor out emit_split_stack_prologue
Segher Boessenkool [Sat, 10 Jun 2017 22:21:34 +0000 (00:21 +0200)]
rs6000: Factor out emit_split_stack_prologue

This is a first patch to make the prologue code more manageable.

* config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
factored out from ...
(rs6000_emit_prologue): ... here.

From-SVN: r249095

7 years agopredict.c (drop_profile): Also drop individual bb/edge and cgraph edge counts.
Jan Hubicka [Sat, 10 Jun 2017 20:37:34 +0000 (22:37 +0200)]
predict.c (drop_profile): Also drop individual bb/edge and cgraph edge counts.

* predict.c (drop_profile): Also drop individual bb/edge and cgraph
edge counts.
(handle_missing_profiles): Fix computation of tp_first_run.
(counts_to_freqs): Do not touch freqs when count is 0.

From-SVN: r249094

7 years agocgraphbuild.c (cgraph_edge::rebuild_references): Do not touch profile.
Jan Hubicka [Sat, 10 Jun 2017 16:33:07 +0000 (18:33 +0200)]
cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch profile.

* cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
profile.

From-SVN: r249093

7 years agore PR fortran/80988 (171_swim fails)
Thomas Koenig [Sat, 10 Jun 2017 10:07:13 +0000 (10:07 +0000)]
re PR fortran/80988 (171_swim fails)

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

PR fortran/80988
* frontend-passes.c (traverse_io_block):  Also
check for variables occurring as indices multiple
time in a single implied DO loop.

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

PR fortran/80988
* gfortran.dg/implied_do_io_3.f90:  New test.

From-SVN: r249092

7 years agoAdd effective target signal
Tom de Vries [Sat, 10 Jun 2017 06:59:49 +0000 (06:59 +0000)]
Add effective target signal

2017-06-10  Tom de Vries  <tom@codesourcery.com>

* lib/target-supports.exp (check_effective_target_signal): New proc.
* lib/gcc.exp (gcc_target_compile): Remove appending of
-DSIGNAL_SUPPRESS to additional_flags.
* gcc.c-torture/execute/ieee/ieee.exp: Add -DSIGNAL_SUPPRESS to
additional_flags if effective target signal is not supported by the
target.
* gcc.c-torture/execute/20101011-1.c: Same.
* gcc.dg/c99-stdint-1.c: Same.
* gcc.dg/c99-stdint-2.c: Same.
* gcc.dg/c99-stdint-5.c: Same.
* gcc.dg/c99-stdint-6.c: Same.
* gcc.dg/stdint-width-1.c: Same.

* doc/sourcebuild.texi (Effective-Target Keywords, Environment
attributes): Document signal effective target.

From-SVN: r249091

7 years agoAdd effective target stack_size
Tom de Vries [Sat, 10 Jun 2017 06:59:26 +0000 (06:59 +0000)]
Add effective target stack_size

2017-06-10  Tom de Vries  <tom@codesourcery.com>

* lib/target-supports.exp (check_effective_target_stack_size)
(dg-effective-target-value): New proc.
* lib/gcc.exp (gcc_target_compile): Remove adding of DSTACK_SIZE to
additional_flags.
* lib/objc.exp (objc_target_compile): Same.
* lib/profopt.exp (profopt-get-options): Allow dg-additional-options.
* g++.old-deja/g++.eh/badalloc1.C: Add -DSTACK_SIZE=<value> using
dg-additional-options.
* gcc.c-torture/compile/20080806-1.c: Same.
* gcc.c-torture/compile/920723-1.c: Same.
* gcc.c-torture/compile/930621-1.c: Same.
* gcc.c-torture/compile/991214-2.c: Same.
* gcc.c-torture/compile/bcopy.c: Same.
* gcc.c-torture/compile/memtst.c: Same.
* gcc.c-torture/compile/msp.c: Same.
* gcc.c-torture/compile/stuct.c: Same.
* gcc.c-torture/execute/20011008-3.c: Same.
* gcc.c-torture/execute/20030209-1.c: Same.
* gcc.c-torture/execute/20031012-1.c: Same.
* gcc.c-torture/execute/20040805-1.c: Same.
* gcc.c-torture/execute/920410-1.c: Same.
* gcc.c-torture/execute/920501-7.c: Same.
* gcc.c-torture/execute/921113-1.c: Same.
* gcc.c-torture/execute/921202-1.c: Same.
* gcc.c-torture/execute/921208-2.c: Same.
* gcc.c-torture/execute/930106-1.c: Same.
* gcc.c-torture/execute/930406-1.c: Same.
* gcc.c-torture/execute/950221-1.c: Same.
* gcc.c-torture/execute/960521-1.c: Same.
* gcc.c-torture/execute/980605-1.c: Same.
* gcc.c-torture/execute/comp-goto-1.c: Same.
* gcc.c-torture/execute/comp-goto-2.c: Same.
* gcc.c-torture/execute/memcpy-1.c: Same.
* gcc.c-torture/execute/multi-ix.c: Same.
* gcc.c-torture/execute/nestfunc-4.c: Same.
* gcc.c-torture/execute/pr20621-1.c: Same.
* gcc.c-torture/execute/pr23135.c: Same.
* gcc.c-torture/execute/pr28982b.c: Same.
* gcc.dg/loop-3.c: Same.
* gcc.dg/struct-ret-3.c: Same.
* gcc.dg/torture/stackalign/comp-goto-1.c: Same.
* gcc.dg/torture/stackalign/non-local-goto-4.c: Same.
* gcc.dg/tree-prof/comp-goto-1.c: Same.
* gcc.dg/tree-prof/pr44777.c: Same.

* doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
Document effective target stack_size.

From-SVN: r249090

7 years agoMissing bits from N4268, constant evaluation for all non-type args.
Jason Merrill [Sat, 10 Jun 2017 00:40:50 +0000 (20:40 -0400)]
Missing bits from N4268, constant evaluation for all non-type args.

* call.c (build_converted_constant_expr): Rename from
build_integral_nontype_arg_conv, handle all types.
* pt.c (convert_nontype_argument): In C++17 call it for all types.
Move NOP stripping inside pointer case, don't strip ADDR_EXPR.
* cvt.c (strip_fnptr_conv): Also strip conversions to the same type.

From-SVN: r249089

7 years agoOverhaul pointer-to-member conversion and template argument handling.
Jason Merrill [Sat, 10 Jun 2017 00:40:44 +0000 (20:40 -0400)]
Overhaul pointer-to-member conversion and template argument handling.

* call.c (standard_conversion): Avoid creating ck_pmem when the
class type is the same.
* cvt.c (can_convert_qual): Split from
perform_qualification_conversions.
* constexpr.c (cxx_eval_constant_expression): Check it.
* typeck.c (convert_ptrmem): Only cplus_expand_constant if
adjustment is necessary.
* pt.c (check_valid_ptrmem_cst_expr): Compare class types.
(convert_nontype_argument): Avoid redundant error.

From-SVN: r249088

7 years agoDaily bump.
GCC Administrator [Sat, 10 Jun 2017 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r249087

7 years agoDon't fold conversion from a constant variable.
Jason Merrill [Fri, 9 Jun 2017 22:46:51 +0000 (18:46 -0400)]
Don't fold conversion from a constant variable.

* call.c (convert_like_real): Remove "inner" parameter.
Don't replace a constant with its value.
* cp-gimplify.c (cp_fully_fold): Use cp_fold_rvalue.

From-SVN: r249083

7 years agoAdd support for mutually-incompatible fix-it hints
David Malcolm [Fri, 9 Jun 2017 20:57:38 +0000 (20:57 +0000)]
Add support for mutually-incompatible fix-it hints

This patch adds a method:
  rich_location::fixits_cannot_be_auto_applied
for ensuring that mutually-incompatible fix-its hints don't
lead to insane output from -fdiagnostics-generate-patch.

Fix-it hints within such rich_location instances are printed
as normal by diagnostic_show_locus, but don't affect the output
of -fdiagnostics-generate-patch.

gcc/ChangeLog:
* diagnostic.c (diagnostic_report_diagnostic): Only add fixits
to the edit_context if they can be auto-applied.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic-test-show-locus-bw.c
(test_mutually_exclusive_suggestions): New test function.
* gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c
(test_mutually_exclusive_suggestions): New test function.
* gcc.dg/plugin/diagnostic-test-show-locus-parseable-fixits.c
(test_mutually_exclusive_suggestions): New test function.
* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
(test_show_locus): Add special-case for
"test_mutually_exclusive_suggestions".

libcpp/ChangeLog:
* include/line-map.h
(rich_location::fixits_cannot_be_auto_applied): New method.
(rich_location::fixits_can_be_auto_applied_p): New accessor.
(rich_location::m_fixits_cannot_be_auto_applied): New field.
* line-map.c (rich_location::rich_location): Initialize new field.

From-SVN: r249081

7 years agoFix template argument of nullptr_t type.
Jason Merrill [Fri, 9 Jun 2017 20:18:06 +0000 (16:18 -0400)]
Fix template argument of nullptr_t type.

* pt.c (convert_nontype_argument): Check NULLPTR_TYPE_P rather than
nullptr_node.

From-SVN: r249080

7 years agoFix array decay handling in constant expressions.
Jason Merrill [Fri, 9 Jun 2017 20:13:44 +0000 (16:13 -0400)]
Fix array decay handling in constant expressions.

* parser.c (cp_parser_constant_expression): Check
potential_rvalue_constant_expression after decay_conversion.
* pt.c (convert_nontype_argument): Don't require linkage in C++17.

From-SVN: r249079

7 years agoPR c++/80384 - ICE with dependent noexcept-specifier
Jason Merrill [Fri, 9 Jun 2017 20:13:38 +0000 (16:13 -0400)]
PR c++/80384 - ICE with dependent noexcept-specifier

* pt.c (dependent_type_p_r) [FUNCTION_TYPE]: Check for dependent
noexcept-specifier.

From-SVN: r249078

7 years ago* constexpr.c (potential_constant_expression_1): Allow 'this' capture.
Jason Merrill [Fri, 9 Jun 2017 20:13:32 +0000 (16:13 -0400)]
* constexpr.c (potential_constant_expression_1): Allow 'this' capture.

From-SVN: r249077

7 years agoopts.c (finish_options): If -fsplit-stack, disable implicit -forder-blocks-and-partition.
Ian Lance Taylor [Fri, 9 Jun 2017 18:44:28 +0000 (18:44 +0000)]
opts.c (finish_options): If -fsplit-stack, disable implicit -forder-blocks-and-partition.

gcc/:
* opts.c (finish_options): If -fsplit-stack, disable implicit
-forder-blocks-and-partition.
* doc/invoke.texi (Optimize Options): Document that when using
-fsplit-stack -forder-blocks-and-partition is not implicitly
enabled.
gcc/go/:
* go-lang.c (go_langhook_post_options): If -fsplit-stack is turned
on, disable implicit -forder-blocks-and-partition.
gcc/testsuite/:
* gcc.dg/tree-prof/split-1.c: New test.

From-SVN: r249071

7 years agobuiltin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST, [...]): New.
Jan Hubicka [Fri, 9 Jun 2017 18:36:50 +0000 (20:36 +0200)]
builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST, [...]): New.

* builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
* builtins.def (abort, trap, unreachable): Declare cold.
* calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
* tree-core.h (ECF_COLD): New.
* tree.c (set_call_expr_flags): Handle ECF_COLD.
(build_common_builtin_nodes): Mark unreachable and abort as cold.

* class.c (build_vtbl_initializer): Mark dvirt_fn as cold.
* decl.c (cxx_init_decl_processing, push_throw_library_fn): Likewise.
(excpet.c): Mark terminate as cold.

* gcc.dg/predict-14.c: Avoid cold function detection.
* gcc.target/i386/umod-3.c: Likewise.

From-SVN: r249070

7 years ago* predict.c (unlikely_executed_stmt_p): Cleanup.
Jan Hubicka [Fri, 9 Jun 2017 18:34:29 +0000 (18:34 +0000)]
* predict.c (unlikely_executed_stmt_p): Cleanup.

From-SVN: r249069

7 years ago* predict.c (unlikely_executed_stmt_p): Cleanup.
Jan Hubicka [Fri, 9 Jun 2017 18:32:47 +0000 (20:32 +0200)]
* predict.c (unlikely_executed_stmt_p): Cleanup.

From-SVN: r249068

7 years agoaarch64.md (lrint<GPF:mode><GPI:mode>2): New.
Tamar Christina [Fri, 9 Jun 2017 13:33:35 +0000 (13:33 +0000)]
aarch64.md (lrint<GPF:mode><GPI:mode>2): New.

2017-06-09  Tamar Christina  <tamar.christina@arm.com>

* config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.

gcc/testsuite/
2017-06-09  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/aarch64/lrint-matherr.h: New.
* gcc.target/aarch64/inline-lrint_1.c: New.
* gcc.target/aarch64/inline-lrint_2.c: New.
* gcc.target/aarch64/no-inline-lrint_1.c: New.
* gcc.target/aarch64/no-inline-lrint_2.c: New.

From-SVN: r249064

7 years agotree-ssa-loop-im.c (execute_sm): Do not force multi-threaded model if the ref is...
Richard Biener [Fri, 9 Jun 2017 13:31:27 +0000 (13:31 +0000)]
tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded model if the ref is always written to.

2017-06-09  Richard Biener  <rguenther@suse.de>

* tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
model if the ref is always written to.

From-SVN: r249063

7 years agoarm.c (arm_rtx_costs_internal): Make sdiv more expensive than udiv.
Tamar Christina [Fri, 9 Jun 2017 13:22:39 +0000 (13:22 +0000)]
arm.c (arm_rtx_costs_internal): Make sdiv more expensive than udiv.

2017-06-09  Tamar Christina  <tamar.christina@arm.com>

* config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive than udiv.

gcc/testsuite/
2017-06-09  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/arm/sdiv_costs_1.c: New.

From-SVN: r249062

7 years agoSupport move-only deleters in std::shared_ptr (LWG 2802)
Jonathan Wakely [Fri, 9 Jun 2017 13:20:37 +0000 (14:20 +0100)]
Support move-only deleters in std::shared_ptr (LWG 2802)

* doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes.
* include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters
(LWG 2802).
* include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter
(_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise.
* testsuite/20_util/shared_ptr/cons/lwg2802.cc: New.

From-SVN: r249061

7 years agoAdd "sorry, target cannot support label values" for nvptx
Tom de Vries [Fri, 9 Jun 2017 13:11:52 +0000 (13:11 +0000)]
Add "sorry, target cannot support label values" for nvptx

2017-06-09  Tom de Vries  <tom@codesourcery.com>

PR target/80855
* config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
"target cannot support label values" when encountering LABEL_REF.

* gcc.target/nvptx/label-values.c: New test.

From-SVN: r249060

7 years ago[ARM] Allow arm_arch_*_ok to test several macros
Thomas Preud'homme [Fri, 9 Jun 2017 12:55:38 +0000 (12:55 +0000)]
[ARM] Allow arm_arch_*_ok to test several macros

2017-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok):
    Test for null definitions instead of them being undefined.  Add entry
    for ARMv7VE.  Reindent entry for ARMv8-M Baseline.  Add comment warning
    about using the effective target for architecture extension.
    (check_effective_target_arm_arch_v7ve_ok): Remove.
    (add_options_for_arm_arch_v7ve): Likewise.

From-SVN: r249059

7 years agoSpeed-up indirect-call instrumentation
Martin Liska [Fri, 9 Jun 2017 12:54:53 +0000 (14:54 +0200)]
Speed-up indirect-call instrumentation

2017-06-09  Martin Liska  <mliska@suse.cz>

* tree-profile.c (gimple_gen_ic_profiler): Update comment.
(gimple_gen_ic_func_profiler): Emit direct comparison
of __gcov_indirect_call_callee with NULL.
(gimple_gen_time_profiler): Change probability from
PROB_VERY_UNLIKELY to PROB_UNLIKELY.
2017-06-09  Martin Liska  <mliska@suse.cz>

* libgcov-profiler.c (__gcov_indirect_call_profiler_v2):
Reset __gcov_indirect_call_callee to NULL.

From-SVN: r249058

7 years agoprofile.c (edge_gcov_counts): Turn to pointer.
Jan Hubicka [Fri, 9 Jun 2017 11:45:46 +0000 (13:45 +0200)]
profile.c (edge_gcov_counts): Turn to pointer.

* profile.c (edge_gcov_counts): Turn to pointer.
(compute_branch_probabilities, compute_branch_probabilities): Update.
(branch_prob): Do not clear edge_gcov_count.
* profile.h (edge_gcov_counts): Turn to pointer.
(edge_gcov_count): Update.

From-SVN: r249057

7 years agoprofile.c (edge_gcov_counts): Turn to pointer.
Jan Hubicka [Fri, 9 Jun 2017 11:38:35 +0000 (13:38 +0200)]
profile.c (edge_gcov_counts): Turn to pointer.

* profile.c (edge_gcov_counts): Turn to pointer.
(compute_branch_probabilities, compute_branch_probabilities): Update.
* profile.h (edge_gcov_counts): Turn to pointer.
(edge_gcov_count): Update.

From-SVN: r249056

7 years ago* gimple.h (gimple_check_failed): Mark cold.
Jan Hubicka [Fri, 9 Jun 2017 11:36:59 +0000 (13:36 +0200)]
* gimple.h (gimple_check_failed): Mark cold.

From-SVN: r249055

7 years agoAdd deduction guides for sequence containers (P0433R2, partial)
Jonathan Wakely [Fri, 9 Jun 2017 11:04:53 +0000 (12:04 +0100)]
Add deduction guides for sequence containers (P0433R2, partial)

* include/bits/forward_list.h (forward_list): Add deduction guide.
* include/bits/stl_deque.h (deque): Likewise.
* include/bits/stl_list.h (list): Likewise.
* include/bits/stl_vector.h (vector): Likewise.
* testsuite/23_containers/deque/cons/deduction.cc: New.
* testsuite/23_containers/forward_list/cons/deduction.cc: New.
* testsuite/23_containers/list/cons/deduction.cc: New.
* testsuite/23_containers/vector/cons/deduction.cc: New.

From-SVN: r249054

7 years agore PR tree-optimization/66623 (Unsafe FP math reduction used in strict math mode)
Richard Biener [Fri, 9 Jun 2017 09:40:45 +0000 (09:40 +0000)]
re PR tree-optimization/66623 (Unsafe FP math reduction used in strict math mode)

2017-06-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/66623
* tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
refactor check_reduction into two parts, properly computing
whether we have to check reduction validity for outer loop
vectorization.

* gcc.dg/vect/pr66623.c: New testcase.

From-SVN: r249053

7 years agore PR tree-optimization/79483 ([graphite] ICE: verify_ssa failed (error: definition...
Richard Biener [Fri, 9 Jun 2017 09:36:06 +0000 (09:36 +0000)]
re PR tree-optimization/79483 ([graphite] ICE: verify_ssa failed (error: definition in block 31 does not dominate use in block 28))

2017-06-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/79483
* graphite-scop-detection.c (order): New global.
(get_order): Compute bb to order mapping that satisfies code
generation constraints.
(cmp_pbbs): New helper.
(build_scops): Start domwalk at entry block, sort generated
pbbs.

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

From-SVN: r249052

7 years agore PR ipa/81007 (ICE with virtual function in broken class)
Richard Biener [Fri, 9 Jun 2017 09:35:05 +0000 (09:35 +0000)]
re PR ipa/81007 (ICE with virtual function in broken class)

2017-06-09  Richard Biener  <rguenther@suse.de>

PR middle-end/81007
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::restrict_to_inner_class):
Skip FIELD_DECLs with error_mark_node type.
* passes.def (all_lowering_passes): Run pass_build_cgraph_edges
last again.

* g++.dg/pr81007.C: New testcase.

From-SVN: r249051

7 years agoReverted r249005 until PowerPC and AIX issues sorted.
Tamar Christina [Fri, 9 Jun 2017 08:10:51 +0000 (08:10 +0000)]
Reverted r249005 until PowerPC and AIX issues sorted.

From-SVN: r249050

7 years agohard-reg-1-nov.c (mpx_test): Use "esp" instead of "rsp" for -m32.
Jakub Jelinek [Fri, 9 Jun 2017 08:02:00 +0000 (10:02 +0200)]
hard-reg-1-nov.c (mpx_test): Use "esp" instead of "rsp" for -m32.

* gcc.target/i386/mpx/hard-reg-1-nov.c (mpx_test): Use "esp"
instead of "rsp" for -m32.
* gcc.target/i386/mpx/hard-reg-2-lbv.c: Require sse2_runtime effective
target, add -msse2 to dg-options.
* gcc.target/i386/mpx/hard-reg-2-nov.c: Likewise.
* gcc.target/i386/mpx/hard-reg-2-ubv.c: Likewise.

From-SVN: r249049

7 years agoCome up with selftests for predict.c.
Martin Liska [Fri, 9 Jun 2017 07:38:52 +0000 (09:38 +0200)]
Come up with selftests for predict.c.

2017-06-09  Martin Liska  <mliska@suse.cz>

* predict.c (struct branch_predictor): New struct.
(test_prediction_value_range): New test.
(predict_c_tests): New function.
* selftest-run-tests.c (selftest::run_tests): Run the function.
* selftest.h: Declare new tests.

From-SVN: r249048

7 years agocompiler: additional lvalue/rvalue context fixes
Ian Lance Taylor [Fri, 9 Jun 2017 04:35:57 +0000 (04:35 +0000)]
compiler: additional lvalue/rvalue context fixes

    Fix lvalue/rvalue context mixup Set_and_use_temporary_expression's
    do_get_backend() method. Enhance Mark_lvalue_varexprs to handle
    conversions and temporary reference expressions, since occasionally
    the front end emits code such as "deref(conv(tempref)) = ...".

    Reviewed-on: https://go-review.googlesource.com/45141

From-SVN: r249047

7 years agors6000: Don't add an immediate to r0 (PR80966)
Segher Boessenkool [Fri, 9 Jun 2017 03:46:08 +0000 (05:46 +0200)]
rs6000: Don't add an immediate to r0 (PR80966)

If there is a large stack frame the rs6000 -fstack-limit code would
calculate the new stack pointer value using two insns (an addis and
an addi), with r0 as temporary.  Such instructions do not exist.

This patch changes add<mode>3 to expand using a different strategy in
such cases; to FAIL if there is no way to do it (namely, if the source
is r0 and there is no way to get a temporary reg); and it changes
rs6000_emit_allocate_stack to assert gen_add3_insn did in fact emit
instructions.

PR target/80966
* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
gen_add3_insn did not fail.
* config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
r0, construct that number in a temporary reg and add that reg to r0.
If asked to put the result in r0 as well, fail.

gcc/testsuite/
* gcc.target/powerpc/stack-limit.c: New testcase.

From-SVN: r249046

7 years agoDaily bump.
GCC Administrator [Fri, 9 Jun 2017 00:16:23 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r249045

7 years agors6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of vec_eqv.
Will Schmidt [Thu, 8 Jun 2017 20:51:42 +0000 (20:51 +0000)]
rs6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of vec_eqv.

[gcc]

2017-06-08  Will Schmidt  <will_schmidt@vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
for early expansion of vec_eqv.

[gcc/testsuite]

2017-06-08  Will Schmidt  <will_schmidt@vnet.ibm.com>

* testsuite/gcc.target/powerpc/fold-vec-logical-eqv-char.c: New.
* testsuite/gcc.target/powerpc/fold-vec-logical-eqv-float.c: New.
* testsuite/gcc.target/powerpc/fold-vec-logical-eqv-floatdouble.c: New.
* testsuite/gcc.target/powerpc/fold-vec-logical-eqv-int.c: New.
* testsuite/gcc.target/powerpc/fold-vec-logical-eqv-longlong.c: New.
* testsuite/gcc.target/powerpc/fold-vec-logical-eqv-short.c: New.

From-SVN: r249040

7 years agore PR c/81006 (ICE with zero-size array and #pragma omp task depend)
Jakub Jelinek [Thu, 8 Jun 2017 19:10:49 +0000 (21:10 +0200)]
re PR c/81006 (ICE with zero-size array and #pragma omp task depend)

PR c/81006
* c-typeck.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE
to sizetype before size_binop.

* semantics.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE
to sizetype before size_binop.

* c-c++-common/gomp/pr81006.c: New test.

From-SVN: r249035

7 years agolibgo: update to 1.8.3 release
Ian Lance Taylor [Thu, 8 Jun 2017 19:02:12 +0000 (19:02 +0000)]
libgo: update to 1.8.3 release

    Reviewed-on: https://go-review.googlesource.com/45150

From-SVN: r249033

7 years agore PR c++/81011 (ICE with #pragma omp task and inaccessible copy-constructor)
Jakub Jelinek [Thu, 8 Jun 2017 18:55:04 +0000 (20:55 +0200)]
re PR c++/81011 (ICE with #pragma omp task and inaccessible copy-constructor)

PR c++/81011
* cp-gimplify.c (cxx_omp_finish_clause): When changing clause
to OMP_CLAUSE_SHARED, also clear OMP_CLAUSE_SHARED_FIRSTPRIVATE
and OMP_CLAUSE_SHARED_READONLY flags.

* g++.dg/gomp/pr81011.C: New test.

From-SVN: r249031

7 years agore PR middle-end/81005 (-fsanitize=null and -fsanitize=alignment doesn't check aggreg...
Jakub Jelinek [Thu, 8 Jun 2017 18:53:16 +0000 (20:53 +0200)]
re PR middle-end/81005 (-fsanitize=null and -fsanitize=alignment doesn't check aggregate arguments of calls)

PR middle-end/81005
* ubsan.c (instrument_null): Avoid pointless code temporary.
(pass_ubsan::execute): Instrument aggregate arguments of calls.

* c-c++-common/ubsan/align-10.c: New test.
* c-c++-common/ubsan/null-13.c: New test.

From-SVN: r249030

7 years agocompiler: lvalue context fixes in Unary_expression::do_get_backend
Ian Lance Taylor [Thu, 8 Jun 2017 18:42:04 +0000 (18:42 +0000)]
compiler: lvalue context fixes in Unary_expression::do_get_backend

    A couple of the Backend::var_expression invocations in
    Unary_expression::do_get_backend were selecting "lvalue" context
    incorrectly (these var exprs were not in an assignment or LHS
    position); fix is to change back to "rvalue" context.

    Reviewed-on: https://go-review.googlesource.com/45136

From-SVN: r249029

7 years agore PR target/81015 (Bad codegen for __builtin_clz(unsigned short))
Uros Bizjak [Thu, 8 Jun 2017 17:28:19 +0000 (19:28 +0200)]
re PR target/81015 (Bad codegen for __builtin_clz(unsigned short))

PR target/81015
Revert:
2016-12-14  Uros Bizjak  <ubizjak@gmail.com>

PR target/59874
* config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
(*clzhi2): Ditto.

testsuite/ChangeLog:

PR target/81015
* gcc.target/i386/pr59874-1.c (foo): Call __builtin_ctzs.
* gcc.target/i386/pr59874-2.c (foo): Call __builtin_clzs.
* gcc.target/i386/pr81015.c: New test.

From-SVN: r249028

7 years agoRemove NO_TRAMPOLINES
Tom de Vries [Thu, 8 Jun 2017 17:16:10 +0000 (17:16 +0000)]
Remove NO_TRAMPOLINES

2017-06-08  Tom de Vries  <tom@codesourcery.com>

* gcc.c-torture/compile/930506-2.c: Use dg-require-effective-target
trampolines instead of NO_TRAMPOLINES.
* gcc.c-torture/execute/20000822-1.c: Same.
* gcc.c-torture/execute/920428-2.c: Same.
* gcc.c-torture/execute/920501-7.c: Same.
* gcc.c-torture/execute/920612-2.c: Same.
* gcc.c-torture/execute/921017-1.c: Same.
* gcc.c-torture/execute/921215-1.c: Same.
* gcc.c-torture/execute/931002-1.c: Same.
* gcc.c-torture/execute/comp-goto-2.c: Same.
* gcc.c-torture/execute/nestfunc-1.c: Same.
* gcc.c-torture/execute/nestfunc-2.c: Same.
* gcc.c-torture/execute/nestfunc-3.c: Same.
* gcc.c-torture/execute/nestfunc-5.c: Same.
* gcc.c-torture/execute/nestfunc-6.c: Same.
* gcc.c-torture/execute/pr24135.c: Same.
* gcc.dg/Wtrampolines.c: Same.
* gcc.dg/torture/stackalign/comp-goto-1.c: Same.
* gcc.dg/torture/stackalign/nested-5.c: Same.
* gcc.dg/torture/stackalign/nested-6.c: Same.
* gcc.dg/torture/stackalign/non-local-goto-3.c: Same.
* gcc.dg/torture/stackalign/non-local-goto-4.c: Same.
* gcc.dg/torture/stackalign/non-local-goto-5.c: Same.
* gcc.dg/trampoline-1.c: Same.
* gcc.dg/tree-prof/pr44777.c: Same.
* gcc.target/i386/pr67770.c: Same.
* lib/gcc.exp (gcc_target_compile): Remove appending of
-DNO_TRAMPOLINES to additional_flags.
* lib/objc.exp (objc_target_compile): Same.

From-SVN: r249027

7 years agoFix no_trampolines test in check_effective_target_trampolines
Tom de Vries [Thu, 8 Jun 2017 17:15:56 +0000 (17:15 +0000)]
Fix no_trampolines test in check_effective_target_trampolines

2017-06-08  Tom de Vries  <tom@codesourcery.com>

* lib/target-supports.exp (check_effective_target_trampolines): Test for
'gcc,no_trampolines' instead of 'no_trampolines'.

From-SVN: r249026

7 years agopredict.c (unlikely_executed_edge_p): Move ahead.
Jan Hubicka [Thu, 8 Jun 2017 16:41:35 +0000 (18:41 +0200)]
predict.c (unlikely_executed_edge_p): Move ahead.

* predict.c (unlikely_executed_edge_p): Move ahead.
(probably_never_executed_edge_p): Use it.

From-SVN: r249025

7 years agocompiler: fix undefined symbol error with unexported method
Ian Lance Taylor [Thu, 8 Jun 2017 16:40:21 +0000 (16:40 +0000)]
compiler: fix undefined symbol error with unexported method

    When an interface I1 in an imported package has an unexported method,
    and is then embedded into another interface I2, in a different
    package, that has other methods, and a type T2 is converted to I2, we
    failed to ever define the required interface method table.  Naturally
    T2 must implement the unexported method, and must therefore either be
    defined in the same package as I1, or embed a type from that package.
    In this case the compiler was assuming that that package would define
    the interface method table, but of course, since I2 was not defined in
    that package, that did not happen.

    The fix is to only assume that the interface method table will be
    defined elsewhere in the case where T2 and I2 are defined in the same
    package.  The compiler ensures that all such interface method tables
    are created, in Gogo::build_interface_method_tables.  This requires
    knowing the package in which an interface type is defined, a simple
    tweak to the importer.

    Testing this revealed that the special case for stub methods created
    for the embedded unexported methods of T2 needs to be done for
    function declarations as it currently is for function definitions, so
    that the newly created interface method tables use the correct name.

    Testing that revealed that the code to determine the pkgpath symbol
    for such stub methods was wrong.  It assumed that one could call
    pkgpath_for_symbol on the pkgpath to get the pkgpath symbol.  Would
    that it twere so simple.  Instead, add a function to look up the
    package, which must be known, and fetch the pkgpath symbol.

    The test for this is https://golang.org/cl/45085.

    Reviewed-on: https://go-review.googlesource.com/45086

From-SVN: r249024

7 years agore PR middle-end/79988 ([CHKP] ICE in tree check: accessed operand 5 of call_expr...
Alexander Ivchenko [Thu, 8 Jun 2017 16:05:59 +0000 (16:05 +0000)]
re PR middle-end/79988 ([CHKP] ICE in tree check: accessed operand 5 of call_expr with 4 operands in ix86_expand_builtin, at config/i386/i386.c:36851)

2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>

       PR middle-end/79988
       * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
       gimple_call_builtin_p call.

017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>

        PR middle-end/79988
        * gcc.target/i386/mpx/pr79988.c: New test.

From-SVN: r249023

7 years agosystem.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
Jan Hubicka [Thu, 8 Jun 2017 15:24:38 +0000 (17:24 +0200)]
system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.

* system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
* rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
rtl_check_failed_type2, rtl_check_failed_code1,
rtl_check_failed_code2, rtl_check_failed_code_mode,
rtl_check_failed_block_symbol, cwi_check_failed_bounds,
rtvec_check_failed_bounds, rtl_check_failed_flag,
_fatal_insn_not_found, _fatal_insn): Likewise.
* tree.h (tree_contains_struct_check_failed,
tree_check_failed, tree_not_check_failed,
tree_class_check_failed, tree_range_check_failed,
tree_not_class_check_failed, tree_int_cst_elt_check_failed,
tree_vec_elt_check_failed, phi_node_elt_check_failed,
tree_operand_check_failed, omp_clause_check_failed,
omp_clause_operand_check_failed, omp_clause_range_check_failed):
Likewise.

* cp-tree.h (lang_check_failed): Annotate by ATTRIBUTE_COLD.

From-SVN: r249022

7 years agocgraph.c (cgraph_edge::maybe_hot_p): Do not check flag_branch_probabilities.
Jan Hubicka [Thu, 8 Jun 2017 15:15:51 +0000 (17:15 +0200)]
cgraph.c (cgraph_edge::maybe_hot_p): Do not check flag_branch_probabilities.

* cgraph.c (cgraph_edge::maybe_hot_p): Do not check
flag_branch_probabilities.
* ipa-inline.c (edge_badness): Likewise.
* ipa-profile.c (ipa_propagate_frequency_1): Likewise.
* postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
* predict.c (maybe_hot_frequency_p): Likewise.
(probably_never_executed): Likewise.
* sched-ebb.c (schedule_ebbs): Likewise.
* sched-rgn.c (find_single_block_region): Likewise.
* tracer.c (tail_duplicate): Likewise.

From-SVN: r249020

7 years agoopts.c (finish_options): x_flag_reorder_blocks_and_partition no longer requires x_fla...
Jan Hubicka [Thu, 8 Jun 2017 14:47:26 +0000 (16:47 +0200)]
opts.c (finish_options): x_flag_reorder_blocks_and_partition no longer requires x_flag_profile_use.

* opts.c (finish_options): x_flag_reorder_blocks_and_partition no
longer requires x_flag_profile_use.

From-SVN: r249019

7 years agoPR libstdc++/81017 add noexcept to std::function move operations
Jonathan Wakely [Thu, 8 Jun 2017 14:27:45 +0000 (15:27 +0100)]
PR libstdc++/81017 add noexcept to std::function move operations

PR libstdc++/81017
* include/bits/std_function.h (function::function(function&&))
(function::operator=(funtion&&)): Add noexcept.
* testsuite/20_util/function/assign/move.cc: Check for noexcept.
* testsuite/20_util/function/cons/move.cc: Likewise.

From-SVN: r249018

7 years agocfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition instead of flag_reorde...
Jan Hubicka [Thu, 8 Jun 2017 14:23:43 +0000 (16:23 +0200)]
cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition instead of flag_reorder_blocks_and_partition.

* cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
instead of flag_reorder_blocks_and_partition.
* dbxout.c (dbxout_function_end): Likewise.
* dwarf2out.c (gen_subprogram_die): Likewise.
* haifa-sched.c (sched_create_recovery_edges): Likewise.
* hw-doloop.c (reorg_loops): Likewise.
* varasm.c (assemble_start_function,
assemble_end_function): Likewise.
(decide_function_section): Do not check for
flag_reorder_blocks_and_partition.

From-SVN: r249017

7 years agot-vxworks (LIBGCC2_INCLUDES): Add path to wrn/coreip to the set of -I options...
Olivier Hainque [Thu, 8 Jun 2017 14:08:56 +0000 (14:08 +0000)]
t-vxworks (LIBGCC2_INCLUDES): Add path to wrn/coreip to the set of -I options...

2017-06-08  Olivier Hainque  <hainque@adacore.com>

        * config/t-vxworks (LIBGCC2_INCLUDES): Add path to wrn/coreip to
        the set of -I options, support for direct inclusions of net/uio.h
        by VxWorks header files via ioLib.h.

From-SVN: r249016