GCC Administrator [Thu, 1 Dec 2016 00:16:23 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r243091
Joseph Myers [Wed, 30 Nov 2016 22:13:49 +0000 (22:13 +0000)]
* es.po: Update.
From-SVN: r243085
Ian Lance Taylor [Wed, 30 Nov 2016 20:28:28 +0000 (20:28 +0000)]
runtime: print C functions in traceback
Since gccgo can trace back through C code as easily as Go code, we
should print C functions in the traceback.
This worked before https://golang.org/cl/31230 for a dumb reason. The
default value for runtime.traceback_cache was, and is, 2 << 2, meaning
to print all functions. The old C code for runtime_parsedebugvars
would return immediately and do nothing if the environment variable
GODEBUG was not set (if GODEBUG was set it would later call
setTraceback. The new Go code for runtime.parsedebugvars does not
return immediately if GODEBUG is not set, and always calls
setTraceback. Either way, if GOTRACEBACK is not set, setTraceback
would set traceback_cache to 1 << 2, meaning to only print non-runtime
functions and having the effect of not printing plain C functions.
Keep the current handling of GODEBUG/GOTRACEBACK, which matches the gc
library, but add an extra check to print C functions by default.
Reviewed-on: https://go-review.googlesource.com/33717
From-SVN: r243083
Uros Bizjak [Wed, 30 Nov 2016 19:38:55 +0000 (20:38 +0100)]
* testsuite/ChangeLog: Fix some entries.
From-SVN: r243082
Martin Sebor [Wed, 30 Nov 2016 19:16:03 +0000 (19:16 +0000)]
PR tree-optimization/78586 - [7 Regression] Wrong code caused by printf-return-value
gcc/testsuite/ChangeLog:
PR tree-optimization/78586
* gcc.dg/tree-ssa/builtin-sprintf-2.c: New test cases.
From-SVN: r243081
Michael Meissner [Wed, 30 Nov 2016 18:43:17 +0000 (18:43 +0000)]
re PR target/78602 (PowerPC vec-extract-v2df.c can fail if -mcpu=power9 -O0)
2016-11-30 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/78602
* config/rs6000/rs6000.c (rs6000_expand_vector_extract): If the
element is not a constant or in a register, force it to a
register.
PR target/78560
* config/rs6000/rs6000.c (rs6000_expand_vector_set): Force value
that will be set to a vector element to be in a register.
* config/rs6000/vsx.md (vsx_set_<mode>_p9): Fix thinko that used
the wrong multiplier to convert the element number to a byte
offset.
From-SVN: r243044
Alexander Monakov [Wed, 30 Nov 2016 18:23:00 +0000 (21:23 +0300)]
libgomp: move data definitions from icv.c back to env.c
* config/nvptx/env.c: Delete.
* icv.c: Move definitions of ICV variables back ...
* env.c: ...here. Do not compile environment-related functionality if
LIBGOMP_OFFLOADED_ONLY is set.
From-SVN: r243041
Alexander Monakov [Wed, 30 Nov 2016 18:08:30 +0000 (21:08 +0300)]
libgomp: introduce LIBGOMP_OFFLOADED_ONLY macro
* configure.ac [nvptx*-*-*] (libgomp_offloaded_only): Set and use it...
(LIBGOMP_OFFLOADED_ONLY): ...here; new define.
* configure: Regenerate.
* config.h.in: Likewise.
From-SVN: r243040
Alexander Monakov [Wed, 30 Nov 2016 18:05:33 +0000 (21:05 +0300)]
libgomp: regenerate with automake-1.11.6
* Makefile.in: Regenerate with automake-1.11.6.
* aclocal.m4: Likewise.
* configure: Likewise.
* testsuite/Makefile.in: Likewise.
From-SVN: r243039
Vladimir Makarov [Wed, 30 Nov 2016 17:35:40 +0000 (17:35 +0000)]
re PR tree-optimization/77856 (wrong code at -O2 on x86_64-linux-gnu in 32-bit mode)
2016-11-30 Vladimir Makarov <vmakarov@redhat.com>
PR tree-optimization/77856
* lra-constraints.c (inherit_in_ebb): Check original regno for
invalid invariant regs too. Set only clobbered hard regs for the
invalid invariant regs.
2016-11-30 Vladimir Makarov <vmakarov@redhat.com>
PR tree-optimization/77856
* gcc.target/i386.c (pr77856.c): New.
From-SVN: r243038
Matthias Klose [Wed, 30 Nov 2016 16:39:30 +0000 (16:39 +0000)]
configure.ac: Set BDW_GC_CFLAGS and BDW_GC_LIBS after checking for the existence of the...
2016-11-30 Matthias Klose <doko@ubuntu.com>
* configure.ac: Set BDW_GC_CFLAGS and BDW_GC_LIBS after checking
for the existence of the pkg-config modules.
* Regenerate.
From-SVN: r243037
Ville Voutilainen [Wed, 30 Nov 2016 16:32:24 +0000 (18:32 +0200)]
Fix testsuite failures caused by the patch implementing LWG 2534.
* include/std/istream (__is_convertible_to_basic_istream):
Change the return types of __check, introduce istream_type.
(operator>>(_Istream&&, _Tp&&)):
Use __is_convertible_to_basic_istream::istream_type as the return type.
* include/std/ostream (__is_convertible_to_basic_ostream):
Change the return types of __check, introduce ostream_type.
(operator>>(_Ostream&&, _Tp&&)):
Use __is_convertible_to_basic_ostream::ostream_type as the return type.
From-SVN: r243036
David Edelsohn [Wed, 30 Nov 2016 16:14:10 +0000 (16:14 +0000)]
* g++.dg/debug/dwarf2/ptrdmem-1.C: Don't XFAIL scan-assembler-not on AI\X.
From-SVN: r243035
Andre Vehreschild [Wed, 30 Nov 2016 15:59:07 +0000 (16:59 +0100)]
single.c (_gfortran_caf_get_by_ref): Prevent compile time warning.
libgfortran/ChangeLog:
2016-11-30 Andre Vehreschild <vehre@gcc.gnu.org>
* caf/single.c (_gfortran_caf_get_by_ref): Prevent compile time
warning.
(_gfortran_caf_send_by_ref): Same.
(_gfortran_caf_is_present): Prevent fallthrough warnings.
gcc/testsuite/ChangeLog:
2016-11-30 Andre Vehreschild <vehre@gcc.gnu.org>
* ChangeLog: Removed wrongly placed entry.
* gfortran.dg/coarray_lib_alloc_4.f90: New test.
From-SVN: r243034
Pitchumani Sivanupandi [Wed, 30 Nov 2016 15:07:37 +0000 (15:07 +0000)]
Commit files forgotten in r242966.
2016-11-30 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
Commit files forgotten in r242966.
* config/avr/avr-arch.h (avr_mcu_t) [flash_size]: New member.
* config/avr/avr-devices.c (avr_mcu_types): Add flash size info.
* config/avr/gen-avr-mmcu-specs.c (print_mcu): Remove hard-coded
prefix check to find wrap-around value, instead use MCU flash size.
For 8k flash devices, update link_pmem_wrap spec string to
add --pmem-wrap-around=8k.
* config/avr/specs.h (LINK_RELAX_SPEC): Move link_pmem_wrap from
here...
(LINK_SPEC): ...to here.
From-SVN: r243033
David Edelsohn [Wed, 30 Nov 2016 15:07:28 +0000 (15:07 +0000)]
new1.C: XFAIL on AIX.
* g++.dg/eh/new1.C: XFAIL on AIX.
* g++.dg/eh/delete1.C: Same.
* g++.dg/init/new40.C: Same.
* g++.old-deja/g++.eh/new2.C: Same.
From-SVN: r243032
David Malcolm [Wed, 30 Nov 2016 14:54:43 +0000 (14:54 +0000)]
Fix typo in testcase name
gcc/testsuite/ChangeLog:
PR c/78498
* gcc.dg/format/pr78494.c: Rename to...
* gcc.dg/format/pr78498.c: ...this.
From-SVN: r243031
David Malcolm [Wed, 30 Nov 2016 14:50:43 +0000 (14:50 +0000)]
libiberty: avoid reading past end of buffer in strndup/xstrndup (PR c/78498)
gcc/ChangeLog:
PR c/78498
* selftest.c (selftest::assert_strndup_eq): New function.
(selftest::test_strndup): New function.
(selftest::test_libiberty): New function.
(selftest::selftest_c_tests): Call test_libiberty.
gcc/testsuite/ChangeLog:
PR c/78498
* gcc.dg/format/pr78494.c: New test case.
libiberty/ChangeLog:
PR c/78498
* strndup.c (strlen): Delete decl.
(strnlen): Add decl.
(strndup): Call strnlen rather than strlen.
* xstrndup.c (xstrndup): Likewise.
From-SVN: r243030
David Edelsohn [Wed, 30 Nov 2016 14:49:25 +0000 (14:49 +0000)]
ref-1.C: Don't XFAIL scan-assembler-not on AIX.
* g++.dg/debug/dwarf2/ref-1.C: Don't XFAIL scan-assembler-not on AIX.
* g++.dg/debug/dwarf2/imported-decl-2.C: Same.
* g++.dg/debug/dwarf2/refqual-1.C: Same.
* g++.dg/debug/dwarf2/refqual-2.C: Same.
From-SVN: r243029
Segher Boessenkool [Wed, 30 Nov 2016 14:47:01 +0000 (15:47 +0100)]
ira: Don't substitute into TRAP_IF insns (PR78610)
In the testcase, IRA propagates a constant into a TRAP_IF insn, which
then becomes an unconditional trap. Unconditional traps are control
flow insns so doing this requires surgery on the cfg. We cannot do
that here, so instead refuse to do the substitution.
PR rtl-optimization/78610
* ira.c (combine_and_move_insns): Don't substitute into TRAP_IF
instructions.
gcc/testsuite/
PR rtl-optimization/78610
* gcc.c-torture/compile/pr78610.c: New testcase.
From-SVN: r243028
Tim Shen [Wed, 30 Nov 2016 14:46:15 +0000 (14:46 +0000)]
Fix condition in shared_ptr assertion
2016-11-30 Tim Shen <timshen@google.com>
* include/bits/shared_ptr_base.h
(__shared_ptr_access<T, L, true, false>::operator*()): Fix assertion.
From-SVN: r243027
Bin Cheng [Wed, 30 Nov 2016 14:41:09 +0000 (14:41 +0000)]
re PR tree-optimization/78574 (ice on valid C code at -O2 and -O3 in both 32- and 64-bit modes on x86_64-linux-gnu (internal compiler error: Segmentation fault (program cc1)))
PR tree-optimization/78574
* tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Skip loop
header PHI that doesn't define biv.
gcc/testsuite
PR tree-optimization/78574
* gcc.c-torture/compile/pr78574.c: New test.
From-SVN: r243026
Andre Vehreschild [Wed, 30 Nov 2016 14:38:09 +0000 (15:38 +0100)]
Add the missing changelog entry to 243023.
libgfortran/ChangeLog:
2016-11-30 Andre Vehreschild <vehre@gcc.gnu.org>
* caf/single.c (_gfortran_caf_is_present): Prevent fallthrough
warnings.
From-SVN: r243025
Andre Vehreschild [Wed, 30 Nov 2016 14:34:13 +0000 (15:34 +0100)]
single.c (_gfortran_caf_is_present): Prevent fallthrough warnings.
libgfortran/ChangeLog:
2016-11-30 Andre Vehreschild <vehre@gcc.gnu.org>
* caf/single.c (_gfortran_caf_is_present): Prevent fallthrough
warnings.
From-SVN: r243024
David Edelsohn [Wed, 30 Nov 2016 14:33:02 +0000 (14:33 +0000)]
50594.cc: XFAIL on AIX.
* testsuite/18_support/50594.cc: XFAIL on AIX.
* testsuite/ext/mt_allocator/check_new.cc: Same.
* testsuite/ext/pool_allocator/check_new.cc: Same.
* testsuite/27_io/ios_base/storage/11584.cc: Same.
From-SVN: r243023
Arnaud Charlet [Wed, 30 Nov 2016 13:59:16 +0000 (14:59 +0100)]
[multiple changes]
2016-11-30 Gary Dismukes <dismukes@adacore.com>
* sem_prag.adb, sem_ch6.adb: Minor reformatting and typo fixes.
* g-sechas.adb: Minor reformatting.
* lib-xref.ads: minor grammar fix in comment.
* lib-xref-spark_specific.adb
(Is_SPARK_Reference): do not ignore references to concurrent
objects.
* sinfo.ads: Fix of unbalanced parens in comment
2016-11-30 Ed Schonberg <schonberg@adacore.com>
* lib-xref.adb (Get_Type_Reference): If the entity is a function
returning a classwide type, the type reference is obtained right
away and does not need further unwinding.
2016-11-30 Javier Miranda <miranda@adacore.com>
* sem_ch8.adb (Find_Renamed_Entity): For non-overloaded subprogram
actuals of generic units check that the spec of the renaming
and renamed entities match.
2016-11-30 Tristan Gingold <gingold@adacore.com>
* raise-gcc.c: For CERT runtimes: do not use gcc includes, simplify
the handling.
* sem_attr.adb (Analyze_Attribute): Check No_Dynamic_Priorities
restriction for Priority Attribute.
From-SVN: r243022
Andre Vehreschild [Wed, 30 Nov 2016 13:27:49 +0000 (14:27 +0100)]
libcaf.h: Add new action types for (de-)registration of allocatable components in derived...
libgfortran/ChangeLog:
2016-11-30 Andre Vehreschild <vehre@gcc.gnu.org>
* caf/libcaf.h: Add new action types for (de-)registration of
allocatable components in derived type coarrays. Add _caf_is_present
prototype.
* caf/single.c (_gfortran_caf_register): Add support for registration
only and allocation of already registered allocatable components in
derived type coarrays.
(_gfortran_caf_deregister): Add mode to deallocate but not deregister
an allocatable component in a derived type coarray.
(_gfortran_caf_is_present): New function. Query whether an
allocatable component in a derived type coarray on a remote image is
allocated.
gcc/testsuite/ChangeLog:
2016-11-30 Andre Vehreschild <vehre@gcc.gnu.org>
* gfortran.dg/coarray/alloc_comp_1.f90: Fix tree-dump scans to adhere
to the changed interfaces.
* gfortran.dg/coarray_alloc_comp_1.f08: Likewise.
* gfortran.dg/coarray_allocate_7.f08: Likewise.
* gfortran.dg/coarray_lib_alloc_1.f90: Likewise.
* gfortran.dg/coarray_lib_alloc_2.f90: Likewise.
* gfortran.dg/coarray_lib_alloc_3.f90: Likewise.
* gfortran.dg/coarray_lib_comm_1.f90: Likewise.
* gfortran.dg/coarray_lib_alloc_4.f90: New test.
gcc/fortran/ChangeLog:
2016-11-30 Andre Vehreschild <vehre@gcc.gnu.org>
* check.c (gfc_check_allocated): By pass the caf_get call and check on
the array.
* gfortran.h: Add optional flag to gfc_caf_attr.
* gfortran.texi: Document new enum values and _caf_is_present function.
* primary.c (caf_variable_attr): Add optional flag to indicate that the
expression is reffing a component.
(gfc_caf_attr): Likewise.
* trans-array.c (gfc_array_deallocate): Handle deallocation mode for
coarray deregistration.
(gfc_trans_dealloc_allocated): Likewise.
(duplicate_allocatable): Use constants instead of
creating custom constant tree node of zero or one. Use gfc_add_modify
convenience function.
(duplicate_allocatable_coarray): This function is similar to
duplicate_allocatable but tailored to handle coarrays.
(caf_enabled): Check whether in-derived-type coarray processing is
enabled.
(caf_in_coarray): Check that in-derived-type coarray processing is
enabled and currently in a derived-typed coarray.
(gfc_caf_is_dealloc_only): Return true, when deallocate only is
desired for components in derived typed coarrays.
(structure_alloc_comps): A mode for handling coarrays, that is no
longer encode in the purpose. This makes the use cases of the
routine more flexible without repeating. Allocatable components in
derived type coarrays are now registered only when nullifying an
object and allocated before copying data into them.
(gfc_nullify_alloc_comp): Use the caf_mode of structure_alloc_comps
now.
(gfc_deallocate_alloc_comp): Likewise.
(gfc_deallocate_alloc_comp_no_caf): Likewise.
(gfc_reassign_alloc_comp_caf): Likewise.
(gfc_copy_alloc_comp): Likewise.
(gfc_copy_only_alloc_comp): Likewise.
(gfc_alloc_allocatable_for_assignment): Make use to the cheaper way of
reallocating a coarray without deregistering and reregistering it.
(gfc_trans_deferred_array): Initialize the coarray token correctly for
deferred variables and tear them down on exit.
* trans-array.h: Change some prototypes to add the coarray (de-)
registration modes. Add prototype for checking if deallocate only is
selected for components in derived typed coarrays.
* trans-decl.c (gfc_build_builtin_function_decls): Generate the
declarations for the changed/new caf-lib routines.
(gfc_trans_deferred_vars): Ensure deferred variables are (de-)
registered correctly on procedure entry/exit.
(generate_coarray_sym_init): Use constants.
* trans-expr.c (gfc_conv_procedure_call): Propagate coarray allocation
modes accordingly.
(gfc_trans_alloc_subarray_assign): Likewise.
(gfc_trans_subcomponent_assign): Likewise.
(gfc_trans_structure_assign): Generate code to register the components
of a derived type coarray prior to initialization.
(gfc_conv_structure): Set flag that the structure is in a coarray.
(gfc_trans_scalar_assign): Add flag to indicate being in a coarray and
set the structure_alloc_comps modes correctly.
(gfc_trans_assignment_1): Figure being in a coarray expression.
* trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Adapt to new
structure_alloc_comps interface.
(conv_caf_send): Use the old API as long as possible.
(trans_caf_is_present): Generate code to check whether an allocatable
component in a derived typed coarray is allocated on a remote image.
(caf_this_image_ref): Return true, when only reffing this image.
(gfc_conv_allocated): Convert allocated queries on allocatable
components to the library API.
(conv_intrinsic_move_alloc): Adapt to new interface of
structure_alloc_comps.
* trans-openmp.c (gfc_walk_alloc_comps): Likewise.
(gfc_omp_clause_assign_op): Likewise.
(gfc_omp_clause_dtor): Likewise.
* trans-stmt.c (gfc_trans_deallocate): Figure which mode to use when
deallocating allocatable components in derived type coarras.
* trans.c (gfc_allocate_using_lib): Renamed to
gfc_allcate_using_caf_lib.
(gfc_allocate_allocatable): Set the registration mode/type of caf-
register calls adapting to all the possible allocatable objects.
(gfc_deallocate_with_status): Add deregistration mode for allocatable
components in derived type coarrays.
(gfc_deallocate_scalar_with_status): Likewise.
* trans.h (enum gfc_coarray_type): Renamed to gfc_coarray_regtype to
avoid collision with gfc_coarray_deregtype.
From-SVN: r243021
Janus Weil [Wed, 30 Nov 2016 13:23:17 +0000 (14:23 +0100)]
re PR fortran/78593 (ICE in gfc_match_varspec, at fortran/primary.c:2053)
2016-11-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/78593
* primary.c (gfc_match_varspec): Check if sym is non-null to avoid ICE.
2016-11-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/78593
* gfortran.dg/derived_result.f90: New test case.
From-SVN: r243020
Jakub Jelinek [Wed, 30 Nov 2016 13:02:48 +0000 (14:02 +0100)]
emit-rtl.c (verify_insn_sharing): Call verify_rtx_sharing instead of reset_used_flags.
* emit-rtl.c (verify_insn_sharing): Call verify_rtx_sharing instead of
reset_used_flags.
From-SVN: r243019
Jakub Jelinek [Wed, 30 Nov 2016 13:02:07 +0000 (14:02 +0100)]
i386.c (dimode_scalar_chain::convert_op): Avoid sharing the SUBREG rtx between move and following insn.
* config/i386/i386.c (dimode_scalar_chain::convert_op): Avoid
sharing the SUBREG rtx between move and following insn.
From-SVN: r243018
Jakub Jelinek [Wed, 30 Nov 2016 13:01:34 +0000 (14:01 +0100)]
ira.c (ira_update_equiv_info_by_shuffle_insn): Use copy_rtx for REG_EQUIV argument.
* ira.c (ira_update_equiv_info_by_shuffle_insn): Use copy_rtx
for REG_EQUIV argument.
From-SVN: r243017
Maxim Ostapenko [Wed, 30 Nov 2016 12:32:55 +0000 (12:32 +0000)]
Add PR sanitizer/78532 patch to libsanitizer/LOCAL_PATCHES.
From-SVN: r243016
Thomas Preud'homme [Wed, 30 Nov 2016 12:32:20 +0000 (12:32 +0000)]
Add multilib mapping for Cortex-M23 & Cortex-M33
2016-11-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
* config/arm/t-rmprofile: Add mappings for Cortex-M23 and Cortex-M33.
From-SVN: r243015
Maxim Ostapenko [Wed, 30 Nov 2016 12:31:07 +0000 (12:31 +0000)]
re PR sanitizer/78532 (libsanitizer fails to build on sparc64-linux-gnu)
PR sanitizer/78532
* sanitizer_common/sanitizer_platform_limits_posix.h
(__sanitizer_sigaction): Adjust for sparc targets and various Glibc
versions.
From-SVN: r243014
Thomas Preud'homme [Wed, 30 Nov 2016 12:30:52 +0000 (12:30 +0000)]
Force soft float in ARMv6-M and ARMv8-M Baseline options
2016-11-29 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/testsuite/
* lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
-mfloat-abi=soft option.
(add_options_for_arm_arch_v8m_base): Likewise. Reindent containing
foreach loop.
From-SVN: r243013
Markus Trippelsdorf [Wed, 30 Nov 2016 12:22:55 +0000 (12:22 +0000)]
Fix part of PR78555 - gcc/real.c:2890:25: runtime error: left shift of negative value -125
PR ipa/78555
* real.c (real_hash): Add cast to avoid left
shifting of negative values.
From-SVN: r243012
Kyrylo Tkachov [Wed, 30 Nov 2016 12:18:47 +0000 (12:18 +0000)]
[AArch64] PR target/78362: Make sure to only take REGNO of a register
PR target/78362
* config/aarch64/aarch64.md (add<mode>3): Extract inner expression
from a subreg in operands[1] and don't call REGNO on a non-reg
expression when deciding to force operands[2] into a reg.
* gcc.c-torture/compile/pr78362.c: New test.
From-SVN: r243011
Jakub Jelinek [Wed, 30 Nov 2016 11:42:04 +0000 (12:42 +0100)]
configure.ac (--enable-objc-gc): If not given, default to enable_objc_gc=no.
* configure.ac (--enable-objc-gc): If not given, default to
enable_objc_gc=no.
* configure: Regenerated.
From-SVN: r243010
Andrew Burgess [Wed, 30 Nov 2016 11:38:46 +0000 (11:38 +0000)]
arm/gcc: Tighten checks in check_effective_target_freorder
In check_effective_target_freorder we check to see if the target
supports -freorder-blocks-and-partition. However we disable
-freorder-blocks-and-partition when -fprofile-use is not supplied so for
some targets we'll not see any message about lack of support for
-freorder-blocks-and-partition unless -fprofile-use is also passed.
This commit extends check_effective_target_freorder to first try
-freorder-blocks-and-partition on its own, then try -fprofile-use and
-freorder-blocks-and-partition.
gcc/testsuite/ChangeLog:
* lib/target-supports.exp (check_effective_target_freorder): Check
additional case.
From-SVN: r243009
Georg-Johann Lay [Wed, 30 Nov 2016 11:08:37 +0000 (11:08 +0000)]
re PR lto/78562 (Wrong warning for built-in functions with -flto)
gcc/lto/
PR lto/78562
* lto-symtab.c (lto_symtab_merge_decls_2): Don't diagnose type
mismatch if the two types are built-in.
From-SVN: r243008
Andrew Burgess [Wed, 30 Nov 2016 11:08:06 +0000 (11:08 +0000)]
arc: Avoid store/load pipeline hazard
ARC700 targets have a store/load pipeline hazard, if we load within 2
cycles of a store, and the load/store are at the same address, then we
pay a multi-cycle penalty.
This commit avoids this by inserting nop instructions between the store
and the load.
gcc/ChangeLog:
* config/arc/arc-protos.h (arc_store_addr_hazard_p): Declare.
* config/arc/arc.c (arc_store_addr_hazard_p): New function.
(workaround_arc_anomaly): Call arc_store_addr_hazard_p for ARC700.
* config/arc/arc700.md: Add define_bypass for store/load.
gcc/testsuite/ChangeLog:
* gcc.target/arc/arc700-stld-hazard.c: New file.
From-SVN: r243007
Ville Voutilainen [Wed, 30 Nov 2016 09:59:50 +0000 (11:59 +0200)]
Implement LWG 2534, Constrain rvalue stream operators.
* include/std/istream (__is_convertible_to_basic_istream): New.
(__is_extractable): Likewise.
(operator>>(basic_istream<_CharT, _Traits>&&, _Tp&&)):
Turn the stream parameter into a template parameter
and constrain.
* include/std/ostream (__is_convertible_to_basic_ostream): New.
(__is_insertable): Likewise.
(operator<<(basic_ostream<_CharT, _Traits>&&, const _Tp&)):
Turn the stream parameter into a template parameter
and constrain.
* testsuite/27_io/basic_istream/extractors_other/char/4.cc: New.
* testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/6.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc: Likewise.
From-SVN: r243006
Janus Weil [Wed, 30 Nov 2016 09:50:04 +0000 (10:50 +0100)]
re PR fortran/78592 (ICE in gfc_find_specific_dtio_proc, at fortran/interface.c:4939)
2016-11-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/78592
* interface.c (gfc_find_specific_dtio_proc): Rearrange code to avoid
dereferencing a null pointer.
2016-11-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/78592
* gfortran.dg/dtio_18.f90: New test case.
From-SVN: r243005
Martin Liska [Wed, 30 Nov 2016 09:28:19 +0000 (10:28 +0100)]
Introduce -fdump-ipa-clones dump output
* cgraph.c (symbol_table::initialize): Initialize
ipa_clones_dump_file.
(cgraph_node::remove): Report to ipa_clones_dump_file.
* cgraph.h: Add new argument (suffix) to cloning methods.
* cgraphclones.c (dump_callgraph_transformation): New function.
(cgraph_node::create_clone): New argument.
(cgraph_node::create_virtual_clone): Likewise.
(cgraph_node::create_version_clone): Likewise.
* dumpfile.c: Add .ipa-clones dump file.
* dumpfile.h (enum tree_dump_index): Add TDI_clones
* ipa-inline-transform.c (clone_inlined_nodes): Report operation
to dump_callgraph_transformation.
From-SVN: r243004
Martin Liska [Wed, 30 Nov 2016 09:26:51 +0000 (10:26 +0100)]
Support nested functions (PR sanitizer/78541).
PR sanitizer/78541
* gcc.dg/asan/pr78541-2.c: New test.
* gcc.dg/asan/pr78541.c: New test.
PR sanitizer/78541
* asan.c (asan_expand_mark_ifn): Properly
select a VAR_DECL from FRAME.* component reference.
From-SVN: r243003
Martin Liska [Wed, 30 Nov 2016 09:26:03 +0000 (09:26 +0000)]
Add missing file
From-SVN: r243002
Christophe Lyon [Wed, 30 Nov 2016 08:49:01 +0000 (08:49 +0000)]
[libstdc++, testsuite] Add dg-require-thread-fence
2016-11-30 Christophe Lyon <christophe.lyon@linaro.org>
* testsuite/experimental/type_erased_allocator/2.cc: Add
dg-require-thread-fence.
From-SVN: r243001
Segher Boessenkool [Wed, 30 Nov 2016 08:41:26 +0000 (09:41 +0100)]
simplify-rtx: Add missing line for previous commit (PR78583)
The comment for the added case to simplify_truncation reads
/* Turn (truncate:M1 (*_extract:M2 (reg:M2) (len) (pos))) into
(*_extract:M1 (truncate:M1 (reg:M2)) (len) (pos')) if possible without
changing len. */
but I forgot to check the two modes M2 are actually the same.
PR rtl-optimization/78583
* simplify-rtx.c (simplify_truncation): Add check missing from the
previous commit.
From-SVN: r243000
Segher Boessenkool [Wed, 30 Nov 2016 08:24:59 +0000 (09:24 +0100)]
combine: Don't mess with subregs of floating point (PR78590)
PR78590 shows a problem in change_zero_ext, where we change a zero_extend
of a subreg to a logical and. We should only do this if the thing we are
taking the subreg of is a scalar integer, otherwise we will take a subreg
of (e.g.) a float in a different size, which is nonsensical and hits an
assert.
PR rtl-optimization/78590
* combine.c (change_zero_ext): Transform zero_extend of subregs only
if the subreg_reg is a scalar integer mode.
From-SVN: r242999
Jakub Jelinek [Wed, 30 Nov 2016 08:01:47 +0000 (09:01 +0100)]
re PR tree-optimization/78586 (Wrong code caused by printf-return-value)
PR tree-optimization/78586
* gimple-ssa-sprintf.c (format_integer): Use TYPE_MAX_VALUE or
TYPE_MIN_VALUE or build_all_ones_cst instead of folding LSHIFT_EXPR.
Don't build_int_cst min/max twice. Formatting fix.
* gcc.c-torture/execute/pr78586.c: New test.
From-SVN: r242998
Markus Trippelsdorf [Wed, 30 Nov 2016 07:30:55 +0000 (07:30 +0000)]
Fix PR78588 - rtlanal.c:5210:38: runtime error: shift exponent
4294967295 is too large for 64-bit type
Building gcc with -fsanitize=undefined shows:
rtlanal.c:5210:38: runtime error: shift exponent
4294967295 is too large for 64-bit type 'long unsigned int'
This happens because if_then_else_cond() in combine.c calls
num_sign_bit_copies() in rtlanal.c with mode==BLKmode.
5205 bitwidth = GET_MODE_PRECISION (mode);
5206 if (bitwidth > HOST_BITS_PER_WIDE_INT)
5207 return 1;
5208
5209 nonzero = nonzero_bits (x, mode);
5210 return nonzero & (HOST_WIDE_INT_1U << (bitwidth - 1))
5211 ? 1 : bitwidth - floor_log2 (nonzero) - 1;
This causes (bitwidth - 1) to wrap around.
PR rtl-optimization/78588
* combine.c (if_then_else_cond): Also guard against BLKmode.
* rtlanal.c (num_sign_bit_copies1): Add assert.
From-SVN: r242997
Janus Weil [Wed, 30 Nov 2016 07:25:36 +0000 (08:25 +0100)]
re PR fortran/78573 ([OOP] ICE in resolve_component, at fortran/resolve.c:13405)
2016-11-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/78573
* decl.c (build_struct): On error, return directly and do not build
class symbol.
2016-11-30 Janus Weil <janus@gcc.gnu.org>
PR fortran/78573
* gfortran.dg/class_61.f90: New test case.
From-SVN: r242996
Jeff Law [Wed, 30 Nov 2016 04:37:10 +0000 (21:37 -0700)]
arc-common.c (arc_handle_option): Remove unused variables.
* common/config/arc/arc-common.c (arc_handle_option): Remove unused
variables.
From-SVN: r242994
Jeff Law [Wed, 30 Nov 2016 04:15:55 +0000 (21:15 -0700)]
lra-constraints.c (check_and_process_move): Constrain the range of DCLASS and SCLASS to avoid false positive out of bounds...
* lra-constraints.c (check_and_process_move): Constrain the
range of DCLASS and SCLASS to avoid false positive out of bounds
array index warning.
From-SVN: r242993
Ian Lance Taylor [Wed, 30 Nov 2016 02:09:24 +0000 (02:09 +0000)]
runtime: fixes for -buildmode=c-archive
With -buildmode=c-archive, initsig is called before the memory
allocator has been initialized. The code was doing a memory
allocation because of the call to funcPC(sigtramp). When escape
analysis is fully implemented, that call should not allocate. For
now, finesse the issue by calling a C function to get the C function
pointer value of sigtramp.
When returning from a call from C to a Go function, a deferred
function is run to go back to syscall mode. When the call occurs on a
non-Go thread, that call sets g to nil, making it impossible to add
the _defer struct back to the pool. Just drop it and let the garbage
collector clean it up.
Reviewed-on: https://go-review.googlesource.com/33675
From-SVN: r242992
David Malcolm [Wed, 30 Nov 2016 01:23:44 +0000 (01:23 +0000)]
Remove stray character from install.texi
gcc/ChangeLog:
* doc/install.texi (--with-target-bdw-gc): Remove stray '@'.
From-SVN: r242991
David Malcolm [Wed, 30 Nov 2016 01:13:37 +0000 (01:13 +0000)]
substring locations and # line directives (PR preprocessor/78569)
The ICE in PR preprocessor/78569 appears to be due to an attempt to
generate substring locations in a .i file where the underlying .c file
has changed since the .i file was generated.
This can't work, so it seems safest for the on-demand substring
locations to be unavailable for such files, falling back to
"whole string" locations for such cases.
gcc/ChangeLog:
PR preprocessor/78569
* input.c (get_substring_ranges_for_loc): Fail gracefully if
line directives were present.
gcc/testsuite/ChangeLog:
PR preprocessor/78569
* gcc.dg/format/pr78569.c: New test case.
From-SVN: r242990
GCC Administrator [Wed, 30 Nov 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r242988
Matthias Klose [Wed, 30 Nov 2016 00:12:45 +0000 (00:12 +0000)]
Makefile.def: Remove reference to boehm-gc target module.
<toplevel>
2016-11-30 Matthias Klose <doko@ubuntu.com>
* Makefile.def: Remove reference to boehm-gc target module.
* configure.ac: Include pkg.m4, check for --with-target-bdw-gc
options and for the bdw-gc pkg-config module.
* configure: Regenerate.
* Makefile.in: Regenerate.
gcc/
2016-11-30 Matthias Klose <doko@ubuntu.com>
* doc/install.texi: Document configure options --enable-objc-gc
and --with-target-bdw-gc.
config/
2016-11-30 Matthias Klose <doko@ubuntu.com>
* pkg.m4: New file.
libobjc/
2016-11-30 Matthias Klose <doko@ubuntu.com>
* configure.ac (--enable-objc-gc): Allow to configure with a
system provided boehm-gc.
* configure: Regenerate.
* Makefile.in (OBJC_BOEHM_GC_LIBS): Get value from configure.
* gc.c: Include system bdw-gc headers.
* memory.c: Likewise
* objects.c: Likewise
boehm-gc/
2016-11-30 Matthias Klose <doko@ubuntu.com>
Remove
From-SVN: r242985
Michael Meissner [Wed, 30 Nov 2016 00:05:46 +0000 (00:05 +0000)]
re PR target/78594 (Bug in November 11th, 2016 change to rs6000.md)
2016-11-29 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/78594
* config/rs6000/rs6000.md (mov<mode>_internal, QHI iterator): Add
'x' to stxsi<wd>x print pattern, so that QImode and HImode values
residing in traditional altivec registers can be stored
correctly.
From-SVN: r242983
Max Filippov [Tue, 29 Nov 2016 22:22:13 +0000 (22:22 +0000)]
xtensa: Fix PR target/78603
2016-11-29 Max Filippov <jcmvbkbc@gmail.com>
gcc/
* config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero
overhead loop start between a call and its CALL_ARG_LOCATION
note.
From-SVN: r242979
Martin Sebor [Tue, 29 Nov 2016 21:56:57 +0000 (21:56 +0000)]
avoid false positives on ILP32 targets.
gcc/testsuite/ChangeLog:
avoid false positives on ILP32 targets.
* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Same.
From-SVN: r242977
Waldemar Brodkorb [Tue, 29 Nov 2016 21:41:07 +0000 (21:41 +0000)]
* config/bfin/linux.h (CPP_SPEC): Define.
From-SVN: r242976
Martin Sebor [Tue, 29 Nov 2016 21:08:02 +0000 (21:08 +0000)]
PR tree-optimization/78512 - [7 Regression] r242674 miscompiles Linux kernel
gcc/ChangeLog:
PR tree-optimization/78512
* config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Remove.
* config/rs6000/linux.h: Same.
* config/rs6000/linux64.h: Same.
* config/sol2.h: Same.
* config/sol2.c (solaris_printf_pointer_format): Remove.
* doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Remove.
* doc/tm.texi: Regenerate.
* gimple-ssa-sprintf.c (format_pointer): Rempove.
(pass_sprintf_length::compute_format_length): Return bool.
(pass_sprintf_length::handle_gimple_call): Adjust.
* target.def (printf_pointer_format): Remove.
* targhooks.c (default_printf_pointer_format): Remove.
(linux_printf_pointer_format): Same.
* targhooks.h (default_printf_pointer_format): Remove.
(linux_printf_pointer_format, solaris_printf_pointer_format): Same.
gcc/testsuite/ChangeLog:
PR tree-optimization/78512
* gcc.dg/tree-ssa/builtin-sprintf-6.c: Add test cases.
* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Remove test cases.
From-SVN: r242975
Uros Bizjak [Tue, 29 Nov 2016 19:26:49 +0000 (20:26 +0100)]
sse.md (UNSPEC_MASKOP): Move from i386.md.
* config/i386/sse.md (UNSPEC_MASKOP): Move from i386.md.
(mshift): Ditto.
(SWI1248_AVX512BWDQ): Ditto.
(SWI1248_AVX512BW): Ditto.
(k<any_logic:code><mode>): Ditto.
(kandn<mode>): Ditto.
(kxnor<mode>): Ditto.
(knot<mode>): Ditto.
(*k<any_lshift:code><mode>): Ditto.
(kortestzhi, kortestchi): Ditto.
(kunpckhi, kunpcksi, kunpckdi): Ditto.
testsuite/ChangeLog:
* gcc.target/i386/avx512f-kmovw-1.c (avx512f_test):
Force value through k register.
From-SVN: r242971
Andrew Pinski [Tue, 29 Nov 2016 19:16:15 +0000 (19:16 +0000)]
tree-vrp.c (simplify_stmt_using_ranges): Use boolean_type_node for the EQ_EXPR.
2016-11-29 Andrew Pinski <apinski@cavium.com>
* tree-vrp.c (simplify_stmt_using_ranges): Use boolean_type_node
for the EQ_EXPR.
From-SVN: r242970
Chen Gang [Tue, 29 Nov 2016 18:33:20 +0000 (18:33 +0000)]
re PR target/71331 (target-tilegx: nested-function-4.c: r10 is conflict which is both in function frame and in parameter.)
PR target/71331
* config/tilegx/tilegx.c (tilegx_function_profiler): Save r10
to stack before call mcount.
(tilegx_can_use_return_insn_p): Clean up code.
From-SVN: r242969
David Edelsohn [Tue, 29 Nov 2016 17:50:27 +0000 (17:50 +0000)]
re PR libstdc++/68838 (AIX 32 bit wchar_t testsuite failures)
PR libstdc++/68838
* testsuite/lib/libstdc++.exp (DEFAULT_CXXFLAGS): Add -Wl,-bmaxdata on AIX.
* testsuite/23_containers/vector/profile/vector.cc: Remove
dg-additional-options.
From-SVN: r242967
Pitchumani Sivanupandi [Tue, 29 Nov 2016 16:35:43 +0000 (16:35 +0000)]
avr-arch.h (avr_mcu_t): Add flash_size member.
* config/avr/avr-arch.h (avr_mcu_t): Add flash_size member.
* config/avr/avr-devices.c(avr_mcu_types): Add flash size info.
* config/avr/avr-mcu.def: Likewise.
* config/avr/gen-avr-mmcu-specs.c (print_mcu): Remove hard-coded prefix
check to find wrap-around value, instead use MCU flash size. For 8k flash
devices, update link_pmem_wrap spec string to add --pmem-wrap-around=8k.
* config/avr/specs.h: Remove link_pmem_wrap from LINK_RELAX_SPEC and
add to linker specs (LINK_SPEC) directly.
From-SVN: r242966
David Malcolm [Tue, 29 Nov 2016 16:25:01 +0000 (16:25 +0000)]
spellcheck bugfixes: don't offer the goal string as a suggestion
gcc/cp/ChangeLog:
PR c++/77922
* name-lookup.c (lookup_name_fuzzy): Filter out reserved words
that were filtered out by init_reswords.
gcc/ChangeLog:
PR c++/72774
PR c++/72786
PR c++/77922
PR c++/78313
* spellcheck.c (selftest::test_find_closest_string): Verify that
we don't offer the goal string as a suggestion.
* spellcheck.h (best_match::get_best_meaningful_candidate): Don't
offer the goal string as a suggestion.
gcc/testsuite/ChangeLog:
PR c++/72774
PR c++/72786
PR c++/77922
PR c++/78313
* g++.dg/spellcheck-c++-11-keyword.C: New test case.
* g++.dg/spellcheck-macro-ordering.C: New test case.
* g++.dg/spellcheck-pr78313.C: New test case.
From-SVN: r242965
Nathan Sidwell [Tue, 29 Nov 2016 15:28:52 +0000 (15:28 +0000)]
* cp-demangle.c (d_print_comp_inner): Fix parameter indentation.
From-SVN: r242963
Tamar Christina [Tue, 29 Nov 2016 14:53:46 +0000 (14:53 +0000)]
2016-11-29 Tamar Christina <tamar.christina@arm.com>
* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
(AARCH64_ONLY, CHECK_CRYPTO): New macros.
(Poly64x1_t, Poly64x2_t): Added types.
* gcc.target/aarch64/advsimd-intrinsics/p64_p128.c
(vmov_n_p64, vmovq_n_p64): Added.
(vld2_lane_p64, vld2q_lane_p64): Likewise.
(vld3_lane_p64, vld3q_lane_p64): Likewise.
(vld4_lane_p64, vld4q_lane_p64): Likewise.
(vst2_lane_p64, vst2q_lane_p64): Likewise.
(vst3_lane_p64, vst3q_lane_p64): Likewise.
(vst4_lane_p64, vst4q_lane_p64): Likewise.
(vget_lane_p64, vgetq_lane_p64): Likewise.
(vget_high_p64): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c:
Added AArch64 flags.
(vreint_vector, vreint_vector_res): Moved to header.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c:
Added Aarch64 flags.
(vreint_vector, vreint_vector_res): Moved to header.
From-SVN: r242962
Claudiu Zissulescu [Tue, 29 Nov 2016 14:26:28 +0000 (15:26 +0100)]
[ARC] Fix compact casesi option.
gcc/
2016-11-29 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc.c (arc_override_options): Avoid selection of
compact casesi for ARCv2.
From-SVN: r242961
Janus Weil [Tue, 29 Nov 2016 14:15:29 +0000 (15:15 +0100)]
[multiple changes]
2016-11-29 Tobias Burnus <burnus@net-b.de>
PR fortran/58175
* resolve.c (gfc_resolve_finalizers): Properly detect scalar finalizers.
2016-11-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/58175
* gfortran.dg/finalize_30.f90: New test case.
From-SVN: r242960
Richard Biener [Tue, 29 Nov 2016 14:01:32 +0000 (14:01 +0000)]
tree-cfg.c (lower_phi_internal_fn): Do not look for further PHIs after a regular stmt.
2016-11-29 Richard Biener <rguenther@suse.de>
* tree-cfg.c (lower_phi_internal_fn): Do not look for further
PHIs after a regular stmt.
(stmt_starts_bb_p): PHIs not preceeded by a PHI or a label
start a new BB.
From-SVN: r242959
Martin Liska [Tue, 29 Nov 2016 13:20:00 +0000 (14:20 +0100)]
Make one extra BB to prevent PHI argument clash (PR
PR gcov-profile/78582
* gcc.dg/pr78582.c: New test.
PR gcov-profile/78582
* tree-profile.c (gimple_gen_time_profiler): Make one extra BB
to prevent PHI argument clash.
From-SVN: r242958
Markus Trippelsdorf [Tue, 29 Nov 2016 13:13:31 +0000 (13:13 +0000)]
Remove r242480 from libsanitizer/LOCAL_PATCHES
The fix is now upstream.
* LOCAL_PATCHES: Remove r242480.
From-SVN: r242957
Claudiu Zissulescu [Tue, 29 Nov 2016 12:42:22 +0000 (13:42 +0100)]
[ARC] [COMMITTED] Fix typo in arc.opt
gcc/
2016-11-29 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc.opt (marclinux): Fix typo.
(marclinux_prof): Likewise.
From-SVN: r242956
Jiong Wang [Tue, 29 Nov 2016 11:47:48 +0000 (11:47 +0000)]
[Patch] New hook TARGET_STACK_PROTECT_RUNTIME_ENABLED_P to disable SSP runtime
gcc/
* target.def (stack_protect_runtime_enabled_p): New.
* function.c (expand_function_end): Guard stack_protect_epilogue with
targetm.stack_protect_runtime_enabled_p.
* cfgexpand.c (pass_expand::execute): Likewise.
* calls.c (expand_call): Likewise.
* doc/tm.texi.in (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): Add it.
* doc/tm.texi: Regenerate.
From-SVN: r242955
Senthil Kumar Selvaraj [Tue, 29 Nov 2016 11:21:46 +0000 (11:21 +0000)]
Fix bogus pr31096-1.c failure for avr
The dump expects literals which would only be present if the target's
int size is 32 bits.
Fix by explicitly using 32 bit ints for targets with __SIZEOF_INT__ < 4.
gcc/testsuite/
2016-11-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
* testsuite/gcc.dg/pr31096-1.c: Use __{U,}INT32_TYPE__ for
targets with sizeof(int) < 4.
From-SVN: r242954
Richard Biener [Tue, 29 Nov 2016 07:48:43 +0000 (07:48 +0000)]
re PR rtl-optimization/78546 (wrong code at -O2 and above)
2016-11-29 Richard Biener <rguenther@suse.de>
PR middle-end/78546
* match.pd: Add CST1 - (CST2 - A) -> CST3 + A missing case.
* gcc.dg/tree-ssa/forwprop-36.c: New testcase.
From-SVN: r242953
Janus Weil [Tue, 29 Nov 2016 07:04:44 +0000 (08:04 +0100)]
contrib.texi: Add a few missing gfortran contributors.
2016-11-29 Janus Weil <janus@gcc.gnu.org>
* doc/contrib.texi: Add a few missing gfortran contributors.
From-SVN: r242952
Segher Boessenkool [Tue, 29 Nov 2016 05:51:51 +0000 (06:51 +0100)]
rs6000: Testcases for rl*i*
These testcases test that we generate the expected code for all of the
rl*i* instructions, that is, rotate-and-mask and rotate-and-mask-insert
for immediate rotation counts. All the testcases do rotate, shift left,
as well as shift right; if that results in an instruction that does not
exist the testcases generate a multiplication instead, so that we can
detect if this is handled properly.
Many 32-bit instructions zero-extend their result properly in 64-bit
mode, but the rs6000 port does not yet know. These testcases test the
status quo, so they will need updating when ever we handle this.
gcc/testsuite/
* gcc.target/powerpc/rldic-0.c: New testcase.
* gcc.target/powerpc/rldic-1.c: New testcase.
* gcc.target/powerpc/rldic-2.c: New testcase.
* gcc.target/powerpc/rldicl-0.c: New testcase.
* gcc.target/powerpc/rldicl-1.c: New testcase.
* gcc.target/powerpc/rldicl-2.c: New testcase.
* gcc.target/powerpc/rldicr-0.c: New testcase.
* gcc.target/powerpc/rldicr-1.c: New testcase.
* gcc.target/powerpc/rldicr-2.c: New testcase.
* gcc.target/powerpc/rldicx.h: New file.
* gcc.target/powerpc/rldimi-0.c: New testcase.
* gcc.target/powerpc/rldimi-1.c: New testcase.
* gcc.target/powerpc/rldimi-2.c: New testcase.
* gcc.target/powerpc/rldimi.h: New file.
* gcc.target/powerpc/rlwimi-0.c: New testcase.
* gcc.target/powerpc/rlwimi-1.c: New testcase.
* gcc.target/powerpc/rlwimi-2.c: New testcase.
* gcc.target/powerpc/rlwimi.h: New file.
* gcc.target/powerpc/rlwinm-0.c: New testcase.
* gcc.target/powerpc/rlwinm-1.c: New testcase.
* gcc.target/powerpc/rlwinm-2.c: New testcase.
* gcc.target/powerpc/rlwinm.h: New file.
From-SVN: r242951
Segher Boessenkool [Tue, 29 Nov 2016 05:44:32 +0000 (06:44 +0100)]
combine: Tweak change_zero_ext
change_zero_ext handles (zero_extend:M1 (subreg:M2 (reg:M1) ...))
already; this patch extends it to also deal with any
(zero_extend:M1 (subreg:M2 (reg:M3) ...)) where the subreg is not
paradoxical.
* combine.c (change_zero_ext): Also handle extends from a subreg
to a mode bigger than that of the operand of the subreg.
From-SVN: r242950
Segher Boessenkool [Tue, 29 Nov 2016 05:29:47 +0000 (06:29 +0100)]
rs6000: Make deallocation of a large frame work (PR77687)
If we use ABI_V4 and we have a big stack frame, we end the epilogue
with a "mr 1,11" (or similar) instruction. This instruction however
has no dependencies on the earlier restores from stack (done via r11),
so sched2 can end up reordering the insns, which is bad because we
have no red zone so that you then restore from stack that is already
deallocated.
This fixes it by making that restore depend on the memory accesses.
PR target/77687
* config/rs6000/rs6000.c (rs6000_emit_stack_reset): Emit the
stack_restore_tie insn instead of stack_tie, for the SVR4 and
SPE ABIs.
* config/rs6000/rs6000.md (stack_restore_tie): New define_insn.
From-SVN: r242949
Segher Boessenkool [Tue, 29 Nov 2016 02:19:04 +0000 (03:19 +0100)]
shrink-wrap: New spread_components
This patch changes spread_components to use a simpler algorithm that
puts prologue components as early as possible, and epilogue components
as late as possible. This allows better scheduling, and also saves a
bit of code size. The blocks that run with some specific component
enabled after this patch is a strict superset of those that had it
before the patch.
It does this by finding for every component the basic blocks where that
component is not needed on some path from the entry block (it reuses
head_components to store this), and similarly the blocks where the
component is not needed on some path to the exit block (or the exit can
not be reached from that block) (stored in tail_components). Blocks
that then are not in both of those two sets get the component active.
* shrink-wrap.c (init_separate_shrink_wrap): Do not clear
head_components and tail_components.
(spread_components): New algorithm.
(emit_common_tails_for_components): Clear head_components and
tail_components.
(insert_prologue_epilogue_for_components): Write extra output to the
dump file for sibcalls and abnormal exits.
From-SVN: r242948
Segher Boessenkool [Tue, 29 Nov 2016 02:02:45 +0000 (03:02 +0100)]
combine: Make code after a new trap unreachable (PR78342)
Combine can turn a conditional trap into an unconditional trap. If it
does that it should make the code after it unreachable (an unconditional
trap should be the last insn in its bb, and that bb has no successors).
This patch seems to work. It is hard to be sure, this is very hard to
trigger. Quite a few other passes look like they need something similar
as well, but I don't see anything else handling it yet either.
PR rtl-optimization/78342
* combine.c: Include "cfghooks.h".
(try_combine): If we create an unconditional trap, break the basic
block in two just after it, and remove the edge between; also, set
the *new_direct_jump_p flag so that cleanup_cfg is run.
From-SVN: r242947
Segher Boessenkool [Tue, 29 Nov 2016 01:48:30 +0000 (02:48 +0100)]
simplify-rtx: Handle truncate of extract
simplify_truncation changes the truncation of many operations into
the operation on the truncation. This patch makes this code also
handle extracts.
* simplify-rtx.c (simplify_truncation): Handle truncate of zero_extract
and sign_extract.
From-SVN: r242946
Joseph Myers [Tue, 29 Nov 2016 00:45:40 +0000 (00:45 +0000)]
* es.po, fr.po: Update.
From-SVN: r242943
GCC Administrator [Tue, 29 Nov 2016 00:16:20 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r242941
Uros Bizjak [Mon, 28 Nov 2016 23:21:43 +0000 (00:21 +0100)]
i386.md (*and<mode>_1): Merge insn pattern from *andsi_1 and *andhi_1 using SWI24 mode iterator.
* config/i386/i386.md (*and<mode>_1): Merge insn pattern from
*andsi_1 and *andhi_1 using SWI24 mode iterator. Use multi-line
output template string.
(*anddi_1): Use multi-line output template string.
(*andqi_1): Ditto.
From-SVN: r242938
Jakub Jelinek [Mon, 28 Nov 2016 22:51:29 +0000 (23:51 +0100)]
re PR middle-end/78540 (ICE: in df_refs_verify, at df-scan.c:4062 with -O -march=core2)
PR middle-end/78540
* rtl.h (remove_reg_equal_equiv_notes): Return bool instead of void.
* rtlanal.c (remove_reg_equal_equiv_notes): Return true if any
note has been removed.
* postreload.c (reload_combine_recognize_pattern): If
remove_reg_equal_equiv_notes returns true, call df_notes_rescan.
* gcc.dg/pr78540.c: New test.
From-SVN: r242937
Martin Sebor [Mon, 28 Nov 2016 21:41:41 +0000 (21:41 +0000)]
PR middle-end/78521 - [7 Regression] incorrect byte count in -Wformat-length...
PR middle-end/78521 - [7 Regression] incorrect byte count in -Wformat-length warning with non-constant width or precision
PR middle-end/78520 - missing warning for snprintf with size greater than INT_MAX
gcc/ChangeLog:
PR middle-end/78520
* gimple-ssa-sprintf.c (target_max_value): Remove.
(target_int_max, target_size_max): Use TYPE_MAX_VALUE.
(get_width_and_precision): New function.
(format_integer, format_floating, get_string_length, format_string):
Correct handling of width and precision with unknown value.
(format_directive): Add warning.
(pass_sprintf_length::compute_format_length): Allow for precision
to consist of a sole period with no asterisk or digits after it.
gcc/testsuite/ChangeLog:
PR middle-end/78520
* gcc.dg/tree-ssa/builtin-sprintf-5.c: Add test cases.
* gcc.dg/tree-ssa/builtin-sprintf-6.c: New test.
* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Add test cases.
* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Add test cases.
From-SVN: r242935
Thomas Petazzoni [Mon, 28 Nov 2016 21:30:40 +0000 (21:30 +0000)]
re PR target/74748 (libgcc_s.so.1 isn't created correctly for Blackfin FDPIC)
PR gcc/74748
* libgcc/config/bfin/libgcc-glibc.ver, libgcc/config/bfin/t-linux:
use generic linker version information on Blackfin.
2016-11-27 Iain Sandoe <iain@codesourcery.com>
From-SVN: r242934
Thomas Petazzoni [Mon, 28 Nov 2016 21:27:47 +0000 (21:27 +0000)]
re PR target/74748 (libgcc_s.so.1 isn't created correctly for Blackfin FDPIC)
PR gcc/74748
* libgcc/mkmap-symver.awk: add support for skip_underscore
From-SVN: r242933
David Edelsohn [Mon, 28 Nov 2016 19:57:50 +0000 (14:57 -0500)]
Fix typo.
From-SVN: r242931
Jakub Jelinek [Mon, 28 Nov 2016 19:20:02 +0000 (20:20 +0100)]
re PR c++/72808 (ICE on valid c++ code in verify_type (gcc/tree.c:14047))
PR c++/72808
* decl.c (finish_enum_value_list): Call fixup_type_variants on
current_class_type after
insert_late_enum_def_into_classtype_sorted_fields.
* g++.dg/debug/pr72808.C: New test.
Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r242930
Jakub Jelinek [Mon, 28 Nov 2016 19:15:51 +0000 (20:15 +0100)]
re PR rtl-optimization/78546 (wrong code at -O2 and above)
PR rtl-optimization/78546
* simplify-rtx.c (neg_const_int): When negating most negative
number in mode wider than HOST_BITS_PER_WIDE_INT, use
simplify_const_unary_operation to produce CONST_DOUBLE or
CONST_WIDE_INT.
(simplify_plus_minus): Hanlde the case where neg_const_int
doesn't return a CONST_INT.
* gcc.dg/torture/pr78546-1.c: New test.
* gcc.dg/torture/pr78546-2.c: New test.
From-SVN: r242929
Markus Trippelsdorf [Mon, 28 Nov 2016 18:33:19 +0000 (18:33 +0000)]
Fix PR78556 - left shift of negative values
Running bootstrap-ubsan on ppc64le shows many instances of e.g.:
config/rs6000/rs6000.c:6217:36: runtime error: left shift of negative value -12301
PR target/78556
* config/rs6000/rs6000.c (vspltis_constant): Add casts to avoid
left shifting of negative values.
From-SVN: r242928
Jakub Jelinek [Mon, 28 Nov 2016 17:31:37 +0000 (18:31 +0100)]
re PR fortran/78298 (ICE in lookup_decl_in_outer_ctx, bei omp-low.c:4115)
PR fortran/78298
* tree-nested.c (convert_local_reference_stmt): After adding
shared (FRAME.NN) clause to omp parallel, task or target,
add it also to all outer omp parallel, task or target constructs.
* gfortran.dg/gomp/pr78298.f90: New test.
From-SVN: r242926