aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-11-07[AArch64] Use aarch64_reg_or_imm instead of nonmemory_operandRichard Sandiford2-3/+9
Some of the shift expanders accepted nonmemory_operands but were only able to handle register_operands or CONST_INTs. This is probably academic without SVE, since we're not likely to see shifts by other types of constant (const_wide_ints, consts, etc). But for SVE, it's possible for a vectorised shift induction to have a CONST_POLY_INT shift amount. This patch makes the expanders use aarch64_reg_or_imm instead. 2017-11-07 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * config/aarch64/aarch64.md (ashl<mode>3, ashr<mode>3, lshr<mode>3) (rotr<mode>3, rotl<mode>3): Use aarch64_reg_or_imm instead of nonmmory_operand. From-SVN: r254499
2017-11-07match.pd: Fix build.Richard Biener2-1/+5
2017-11-07 Richard Biener <rguenther@suse.de> * match.pd: Fix build. From-SVN: r254498
2017-11-07PR71026: Canonicalize negates in divisionWilco Dijkstra4-1/+28
Canonicalize x / (- y) into (-x) / y. This moves negates out of the RHS of a division in order to allow further simplifications and potentially more reciprocal CSEs. 2017-11-07 Wilco Dijkstra <wdijkstr@arm.com> Jackson Woodruff <jackson.woodruff@arm.com> gcc/ PR tree-optimization/71026 * match.pd: Canonicalize negate in division. testsuite/ PR 71026/tree-optimization/71026 * gcc.dg/div_neg: New test. From-SVN: r254497
2017-11-07PR80131: Simplification of 1U << (31 - x)Sudakshina Das4-0/+54
Currently the code A << (B - C) is not simplified. However at least a more specific case of 1U << (C -x) where C = precision(type) - 1 can be simplified to (1 << C) >> x. This is done by adding a new simplification rule in match.pd. 2017-11-07 Sudakshina Das <sudi.das@arm.com> gcc/ PR middle-end/80131 * match.pd: Simplify 1 << (C - x) where C = precision (x) - 1. testsuite/ PR middle-end/80131 * testsuite/gcc.dg/pr80131-1.c: New Test. From-SVN: r254496
2017-11-07More bitop simplifications in match.pdMarc Glisse4-0/+123
2017-11-07 Marc Glisse <marc.glisse@inria.fr> gcc/ * match.pd ((a&~b)|(a^b),(a&~b)^~a,(a|b)&~(a^b),a|~(a^b), (a|b)|(a&^b),(a&b)|~(a^b),~(~a&b),~X^Y): New transformations. gcc/testsuite/ * gcc.dg/tree-ssa/bitops-1.c: New file. From-SVN: r254495
2017-11-07More fold_negate in match.pdMarc Glisse5-2/+54
gcc/ChangeLog: 2017-11-07 Marc Glisse <marc.glisse@inria.fr> * fold-const.c (negate_expr_p) [PLUS_EXPR, MINUS_EXPR]: Handle non-scalar integral types. * match.pd (negate_expr_p): Handle MINUS_EXPR. (-(A-B), -(~A)): New transformations. gcc/testsuite/ChangeLog: 2017-11-07 Marc Glisse <marc.glisse@inria.fr> * gcc.dg/tree-ssa/negminus.c: New test. From-SVN: r254494
2017-11-07[powerpcspe] Remove semicolon after do {} while (0) in ↵Tom de Vries7-6/+16
SUBTARGET_OVERRIDE_OPTIONS 2017-11-07 Tom de Vries <tom@codesourcery.com> * config/powerpcspe/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove semicolon after "do {} while (0)". * config/powerpcspe/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same. * config/powerpcspe/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same. * config/powerpcspe/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same. * config/powerpcspe/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same. * config/powerpcspe/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same. From-SVN: r254493
2017-11-07[rs6000] Remove semicolon after do {} while (0) in SUBTARGET_OVERRIDE_OPTIONSTom de Vries7-6/+16
2017-11-07 Tom de Vries <tom@codesourcery.com> * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove semicolon after "do {} while (0)". * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same. * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same. * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same. * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same. * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same. From-SVN: r254492
2017-11-07[libgcc, rs6000] Remove semicolon after do {} while (0) in ↵Tom de Vries2-1/+6
REGISTER_CFA_OFFSET_FOR 2017-11-07 Tom de Vries <tom@codesourcery.com> * config/rs6000/aix-unwind.h (REGISTER_CFA_OFFSET_FOR): Remove semicolon after "do {} while (0)". From-SVN: r254491
2017-11-07[arm] Remove semicolon after while {} do (0) in HANDLE_NARROW_SHIFT_ARITHTom de Vries2-4/+12
2017-11-07 Tom de Vries <tom@codesourcery.com> PR other/82784 * config/arm/arm.c (HANDLE_NARROW_SHIFT_ARITH): Remove semicolon after "while {} do (0)". (arm_rtx_costs_internal): Add missing semicolon after HANDLE_NARROW_SHIFT_ARITH call. From-SVN: r254490
2017-11-07[libgcc] Remove semicolon after do {} while (0) in FP_HANDLE_EXCEPTIONSTom de Vries6-5/+15
2017-11-07 Tom de Vries <tom@codesourcery.com> PR other/82784 * config/aarch64/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Remove semicolon after "do {} while (0)". * config/i386/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Same. * config/ia64/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Same. * config/mips/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Same. * config/rs6000/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Same. From-SVN: r254489
2017-11-07P0704R1 - fixing const-qualified pointers to membersJason Merrill3-10/+49
* typeck2.c (build_m_component_ref): Also accept in lower stds with a pedwarn. From-SVN: r254487
2017-11-07Require ngettext in test of system gettext implementationAlan Modra3-21/+26
gcc currently uses ngettext in a number of places (gcc/cp/pt.c, gcc/diagnostic.c, gcc/collect2.c). Apparently there are (or used to be) gettext implementations that lack ngettext. See config/gettext.m4. This patch arranges for intl/ to be compiled when the system gettext lacks ngettext. * configure.ac: Invoke AM_GNU_GETTEXT with need_ngettext. * configure: Regenerate. From-SVN: r254486
2017-11-07rs6000: Don't clear TARGET_ISEL implicitlySegher Boessenkool2-11/+6
We want to actually use isel, so we shouldn't disable it. It is already not set by default on CPUs that don't have it, or where we do not want to use it. * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't disable isel if it was not set explicitly. From-SVN: r254485
2017-11-07FT32 makes use of multiple address spaces.James Bowman2-2/+9
FT32 makes use of multiple address spaces. When trying to inspect objects in GDB, GDB was treating them as a straight "const". The cause seems to be in GCC DWARF2 output. This output is handled in gcc/gcc/dwarf2out.c, where modified_type_die() checks that TYPE has qualifiers CV_QUALS. However while TYPE has ADDR_SPACE qualifiers, the modified_type_die() explicitly discards the ADDR_SPACE qualifiers. This patch retains the ADDR_SPACE qualifiers as modified_type_die() outputs the DWARF type tree. This allows the types to match, and correct type information for the object is emitted. [gcc] 2017-11-06 James Bowman <james.bowman@ftdichip.com> * gcc/dwarf2out.c (modified_type_die): Retain ADDR_SPACE qualifiers. (add_type_attribute) likewise. From-SVN: r254484
2017-11-07Daily bump.GCC Administrator1-1/+1
From-SVN: r254483
2017-11-06i386: Use reference of struct ix86_frame to avoid copyH.J. Lu2-6/+10
When there is no need to make a copy of ix86_frame, we can use reference of struct ix86_frame to avoid copy. Tested on x86-64. * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference of struct ix86_frame. (ix86_initial_elimination_offset): Likewise. (ix86_expand_split_stack_prologue): Likewise. From-SVN: r254480
2017-11-06stack-check-12.c: Revert to initial version.Jeff Law2-3/+8
* gcc.target/i386/stack-check-12.c: Revert to initial version. Then.. Add -fomit-frame-pointer. From-SVN: r254479
2017-11-06Update comment in tree-vrp.hMarc Glisse2-1/+5
2017-11-06 Marc Glisse <marc.glisse@inria.fr> * tree-vrp.h (enum value_range_type): Update stale comment. From-SVN: r254478
2017-11-06tr1.cc: Compile with -O0.François Dumont2-1/+5
2017-11-06 François Dumont <fdumont@gcc.gnu.org> * testsuite/libstdc++-prettyprinters/tr1.cc: Compile with -O0. From-SVN: r254477
2017-11-06compiler: disable escape analysis for runtimeIan Lance Taylor2-1/+7
Currently the runtime is hard-coded to non-escape in various places. Don't run escape analysis for runtime. Reviewed-on: https://go-review.googlesource.com/76210 From-SVN: r254476
2017-11-06libgo: pass flags to recursive makeIan Lance Taylor3-5/+5
"make check" runs make recursively to check each package. Pass the flags through. So it is possible to run "make check" with different settings easily. Reviewed-on: https://go-review.googlesource.com/76029 From-SVN: r254475
2017-11-06[AArch64] Pass number of units to aarch64_expand_vec_perm(_const)Richard Sandiford4-11/+26
This patch passes the number of units to aarch64_expand_vec_perm and aarch64_expand_vec_perm_const, which avoids a to_constant () once GET_MODE_NUNITS is variable. 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm) (aarch64_expand_vec_perm_const): Take the number of units too. * config/aarch64/aarch64.c (aarch64_expand_vec_perm) (aarch64_expand_vec_perm_const): Likewise. * config/aarch64/aarch64-simd.md (vec_perm_const<mode>) (vec_perm<mode>): Update accordingly. Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com> Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r254469
2017-11-06[AArch64] Pass number of units to aarch64_simd_vect_par_cnst_halfRichard Sandiford4-39/+64
This patch passes the number of units to aarch64_simd_vect_par_cnst_half, which avoids a to_constant () once GET_MODE_NUNITS is variable. 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * config/aarch64/aarch64-protos.h (aarch64_simd_vect_par_cnst_half): Take the number of units too. * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Likewise. (aarch64_simd_check_vect_par_cnst_half): Update call accordingly, but check for a vector mode before rather than after the call. * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>) (move_hi_quad_<mode>, vec_unpack<su>_hi_<mode>) (vec_unpack<su>_lo_<mode, vec_widen_<su>mult_lo_<mode>) (vec_widen_<su>mult_hi_<mode>, vec_unpacks_lo_<mode>) (vec_unpacks_hi_<mode>, aarch64_saddl2<mode>, aarch64_uaddl2<mode>) (aarch64_ssubl2<mode>, aarch64_usubl2<mode>, widen_ssum<mode>3) (widen_usum<mode>3, aarch64_saddw2<mode>, aarch64_uaddw2<mode>) (aarch64_ssubw2<mode>, aarch64_usubw2<mode>, aarch64_sqdmlal2<mode>) (aarch64_sqdmlsl2<mode>, aarch64_sqdmlal2_lane<mode>) (aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>) (aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmlal2_n<mode>) (aarch64_sqdmlsl2_n<mode>, aarch64_sqdmull2<mode>) (aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>) (aarch64_sqdmull2_n<mode>): Update accordingly. Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com> Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r254468
2017-11-06[AArch64] Pass number of units to aarch64_reverse_maskRichard Sandiford4-11/+25
This patch passes the number of units to aarch64_reverse_mask, which avoids a to_constant () once GET_MODE_NUNITS is variable. 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * config/aarch64/aarch64-protos.h (aarch64_reverse_mask): Take the number of units too. * config/aarch64/aarch64.c (aarch64_reverse_mask): Likewise. * config/aarch64/aarch64-simd.md (vec_load_lanesoi<mode>) (vec_store_lanesoi<mode>, vec_load_lanesci<mode>) (vec_store_lanesci<mode>, vec_load_lanesxi<mode>) (vec_store_lanesxi<mode>): Update accordingly. Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com> Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r254467
2017-11-06[AArch64] Add an endian_lane_rtx helper routineRichard Sandiford7-66/+126
Later patches turn the number of vector units into a poly_int. We deliberately don't support applying GEN_INT to those (except in target code that doesn't distinguish between poly_ints and normal constants); gen_int_mode needs to be used instead. This patch therefore replaces instances of: GEN_INT (ENDIAN_LANE_N (builtin_mode, INTVAL (op[opc]))) with uses of a new endian_lane_rtx function. 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * config/aarch64/aarch64-protos.h (aarch64_endian_lane_rtx): Declare. * config/aarch64/aarch64.c (aarch64_endian_lane_rtx): New function. * config/aarch64/aarch64.h (ENDIAN_LANE_N): Take the number of units rather than the mode. * config/aarch64/iterators.md (nunits): New mode attribute. * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use aarch64_endian_lane_rtx instead of GEN_INT (ENDIAN_LANE_N ...). * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>) (aarch64_dup_lane_<vswap_width_name><mode>, *aarch64_mul3_elt<mode>) (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise. (*aarch64_mul3_elt_to_64v2df, *aarch64_mla_elt<mode>): Likewise. (*aarch64_mla_elt_<vswap_width_name><mode>, *aarch64_mls_elt<mode>) (*aarch64_mls_elt_<vswap_width_name><mode>, *aarch64_fma4_elt<mode>) (*aarch64_fma4_elt_<vswap_width_name><mode>):: Likewise. (*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt<mode>): Likewise. (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise. (*aarch64_fnma4_elt_to_64v2df, reduc_plus_scal_<mode>): Likewise. (reduc_plus_scal_v4sf, reduc_<maxmin_uns>_scal_<mode>): Likewise. (reduc_<maxmin_uns>_scal_<mode>): Likewise. (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise. (*aarch64_get_lane_zero_extendsi<mode>): Likewise. (aarch64_get_lane<mode>, *aarch64_mulx_elt_<vswap_width_name><mode>) (*aarch64_mulx_elt<mode>, *aarch64_vgetfmulx<mode>): Likewise. (aarch64_sq<r>dmulh_lane<mode>, aarch64_sq<r>dmulh_laneq<mode>) (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Likewise. (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise. (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Likewise. (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Likewise. (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise. (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise. (aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Likewise. (aarch64_sqdmull2_lane<mode>_internal): Likewise. (aarch64_sqdmull2_laneq<mode>_internal): Likewise. (aarch64_vec_load_lanesoi_lane<mode>): Likewise. (aarch64_vec_store_lanesoi_lane<mode>): Likewise. (aarch64_vec_load_lanesci_lane<mode>): Likewise. (aarch64_vec_store_lanesci_lane<mode>): Likewise. (aarch64_vec_load_lanesxi_lane<mode>): Likewise. (aarch64_vec_store_lanesxi_lane<mode>): Likewise. (aarch64_simd_vec_set<mode>): Update use of ENDIAN_LANE_N. (aarch64_simd_vec_setv2di): Likewise. Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com> Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r254466
2017-11-06Fix ChangeLog entryRichard Sandiford1-2/+0
From-SVN: r254465
2017-11-06rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8 definitions.Carl Love9-25/+510
gcc/ChangeLog: 2017-11-06 Carl Love <cel@us.ibm.com> * config/rs6000/rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8 definitions. (P9V_BUILTIN_VEC_REVB): Remove the power 9 instance definitions. * config/rs6000/altivec.h (vec_revb): Change the #define from power 9 to power 8. * config/rs6000/r6000-protos.h (swap_endian_selector_for_mode): Add new extern declaration. * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Add function. * config/rs6000/rs6000-builtin.def (BU_P8V_VSX_1, BU_P8V_OVERLOAD_1): Add power 8 macro expansions. (BU_P9V_OVERLOAD_1): Remove power 9 overload expansion. * config/rs6000/vsx.md (revb_<mode>): Add define_expand to generate power 8 instructions. (VSX_XXBR): Add iterator. gcc/testsuite/ChangeLog: 2017-11-06 Carl Love <cel@us.ibm.com> * gcc.target/powerpc/builtins-revb-runnable.c: New runnable test file. From-SVN: r254464
2017-11-06[Arm] Cleanup IT attributesWilco Dijkstra7-260/+107
A recent change to remove the movdi_vfp_cortexa8 meant that ldrd was used in ITs block even when arm_restrict_it was enabled. Rather than just fixing this latent issue, change the default of predicable_short_it to "no" so that only 16-bit instructions need to be marked with it. As a result there are far fewer patterns that need the attribute, and omitting predicable_short_it is no longer causing issues. * config/arm/arm.md (predicable_short_it): Change default to "no", improve documentation, remove uses that are identical to the default. (enabled_for_depr_it): Rename to enabled_for_short_it. * gcc/config/arm/arm-fixed.md (predicable_short_it): Remove default uses. * gcc/config/arm/ldmstm.md (predicable_short_it): Likewise. * gcc/config/arm/sync.md (predicable_short_it): Likewise. * gcc/config/arm/thumb2.md (predicable_short_it): Likewise. * gcc/config/arm/vfp.md (predicable_short_it): Likewise. From-SVN: r254463
2017-11-06re PR target/82748 (ICE with __builtin_fabsq and __float128 in ↵Michael Meissner8-134/+279
copy_to_mode_reg, at explow.c:612) [gcc] 2017-11-06 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/82748 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete float128 helper macros, which are no longer used after deleting the old 'q' built-in functions, and moving the round to odd built-in functions to being special built-in functions. (BU_FLOAT128_2): Likewise. (BU_FLOAT128_1_HW): Likewise. (BU_FLOAT128_2_HW): Likewise. (BU_FLOAT128_3_HW): Likewise. (FABSQ): Delete old 'q' built-in functions. (COPYSIGNQ): Likewise. (SQRTF128_ODD): Move round to odd built-in functions to be special built-in functions, so that we can handle -mabi=ieeelongdouble. (TRUNCF128_ODD): Likewise. (ADDF128_ODD): Likewise. (SUBF128_ODD): Likewise. (MULF128_ODD): Likewise. (DIVF128_ODD): Likewise. (FMAF128_ODD): Likewise. * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q' built-in names to 'f128'. * config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the old 'q' built-in functions, as the machine independent code for 'f128' built-in functions handles this. (rs6000_expand_builtin): Add expansion for float128 round to odd functions, keying off on -mabi=ieeelongdouble of whether to use the KFmode or TFmode variant. (rs6000_init_builtins): Initialize the _Float128 round to odd built-in functions. * doc/extend.texi (PowerPC Built-in Functions): Document the old _Float128 'q' built-in functions are now mapped into the new 'f128' built-in functions. [gcc/testsuite] 2017-11-06 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/82748 * gcc.target/powerpc/pr82748-1.c: New test. * gcc.target/powerpc/pr82748-2.c: Likewise. From-SVN: r254462
2017-11-06re PR c++/65579 ([C++11] gcc requires definition of a static constexpr ↵Paolo Carlini4-0/+36
member even though it is not odr-used) /cp 2017-11-06 Paolo Carlini <paolo.carlini@oracle.com> PR c++/65579 * decl2.c (finish_static_data_member_decl): If there's an initializer, complete the type and re-apply the quals. /testsuite 2017-11-06 Paolo Carlini <paolo.carlini@oracle.com> PR c++/65579 * g++.dg/cpp0x/constexpr-template11.C: New. From-SVN: r254461
2017-11-06collect2.c (add_lto_object): Compile for OBJECT_COFF.David Edelsohn2-3/+24
* collect2.c (add_lto_object): Compile for OBJECT_COFF. (scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects. From-SVN: r254460
2017-11-06* gcc-interface/misc.c (gnat_post_options): Clear warn_return_type.Eric Botcazou2-0/+7
From-SVN: r254459
2017-11-06ipa-fnsummary.c: fix use-after-free crash (PR jit/82826)David Malcolm4-0/+21
gcc/ChangeLog: PR jit/82826 * ipa-fnsummary.c (ipa_fnsummary_c_finalize): New function. * ipa-fnsummary.h (ipa_fnsummary_c_finalize): New decl. * toplev.c: Include "ipa-fnsummary.h". (toplev::finalize): Call ipa_fnsummary_c_finalize. From-SVN: r254458
2017-11-06re PR tree-optimization/82838 (ICE in verify_ssa failed w/ store-merging)Jakub Jelinek4-4/+32
PR tree-optimization/82838 * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Call force_gimple_operand_1 on a separate gimple_seq which is then appended to seq. * gcc.c-torture/compile/pr82838.c: New test. From-SVN: r254457
2017-11-06re PR target/82788 (wrong code with -fstack-clash-protection ↵Jeff Law4-23/+54
--param=stack-clash-protection-probe-interval=10 on simple code) PR target/82788 * config/i386/i386.c (PROBE_INTERVAL): Remove. (get_probe_interval): New functions. (ix86_adjust_stack_and_probe_stack_clash): Use get_probe_interval. (ix86_adjust_stack_and_probe): Likewise. (output_adjust_stack_and_probe): Likewise. (ix86_emit_probe_stack_range): Likewise. (ix86_expand_prologue): Likewise. PR target/82788 * gcc.dg/pr82788.c: New test. From-SVN: r254456
2017-11-06Check in right version of stack-check-12.cJeff Law1-2/+2
From-SVN: r254455
2017-11-06PR82816: Widening multiplies of bitfieldsRichard Sandiford4-0/+33
In this PR we tried to create a widening multiply of two 3-bit numbers, but that isn't a widening multiply at the optab/rtl level, since both the input and output still have the same mode. We could trap this either in is_widening_mult_p or (as the patch does) in the routines that actually ask for an optab. The latter seemed more natural since is_widening_mult_p doesn't otherwise care about modes. 2017-11-03 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ PR tree-optimization/82816 * tree-ssa-math-opts.c (convert_mult_to_widen): Return false if the modes of the two types are the same. (convert_plusminus_to_widen): Likewise. gcc/testsuite/ * gcc.c-torture/compile/pr82816.c: New test. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r254454
2017-11-06[gcc]Bill Schmidt7-1/+244
2017-11-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * config/rs6000/altivec.md (*p9_vadu<mode>3) Rename to p9_vadu<mode>3. (usadv16qi): New define_expand. (usadv8hi): New define_expand. [gcc/testsuite] 2017-11-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * gcc.target/powerpc/sad-vectorize-1.c: New file. * gcc.target/powerpc/sad-vectorize-2.c: New file. * gcc.target/powerpc/sad-vectorize-3.c: New file. * gcc.target/powerpc/sad-vectorize-4.c: New file. From-SVN: r254453
2017-11-06re PR bootstrap/82832 (Broken PGO LTO bootstrap on x86_64 after r254379)Jan Hubicka5-17/+57
PR bootstrap/82832 * ipa-inline-transform.c (update_noncloned_frequencies): Always scale. (inline_transform): Likewise. * predict.c (counts_to_freqs): Remove useless conditional. * profile-count.h (profile_count::apply_scale): Move sanity check. * tree-inline.c (copy_bb): Always scale. (copy_cfg_body): Likewise. From-SVN: r254452
2017-11-06Fix -Wreturn-type fallout.Martin Liska33-20/+103
2017-11-06 Martin Liska <mliska@suse.cz> * c-c++-common/cilk-plus/AN/pr57541-2.c (foo1): Return a value for functions with non-void return type, or change type to void, or add -Wno-return-type for test. (foo2): Likewise. * c-c++-common/cilk-plus/AN/pr57541.c (foo): Likewise. (foo1): Likewise. * c-c++-common/cilk-plus/CK/errors.c: Likewise. * c-c++-common/cilk-plus/CK/pr60197.c: Likewise. * c-c++-common/cilk-plus/CK/spawn_in_return.c: Likewise. * c-c++-common/fold-masked-cmp-1.c (test_pic): Likewise. (test_exe): Likewise. * c-c++-common/fold-masked-cmp-2.c (test_exe): Likewise. * g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc (my_func): Likewise. * g++.dg/cilk-plus/CK/pr68997.cc (fa2): Likewise. * g++.dg/eh/sighandle.C (dosegv): Likewise. * g++.dg/ext/vector14.C (foo): Likewise. (main): Likewise. * g++.dg/graphite/pr41305.C: Likewise. * g++.dg/graphite/pr42930.C: Likewise. * g++.dg/opt/pr46640.C (struct QBasicAtomicInt): Likewise. (makeDir): Likewise. * g++.dg/other/i386-8.C (foo): Likewise. * g++.dg/pr45788.C: Likewise. * g++.dg/pr64688.C (at_c): Likewise. * g++.dg/pr65032.C (G::DecodeVorbis): Likewise. * g++.dg/pr71633.C (c3::fn2): Likewise. * g++.dg/stackprotectexplicit2.C (A): Likewise. * g++.old-deja/g++.law/weak.C (main): Likewise. 2017-11-06 Martin Liska <mliska@suse.cz> * testsuite/libgomp.c++/loop-2.C: Return a value for functions with non-void return type, or change type to void, or add -Wno-return-type for test. * testsuite/libgomp.c++/loop-4.C: Likewise. * testsuite/libgomp.c++/parallel-1.C: Likewise. * testsuite/libgomp.c++/shared-1.C: Likewise. * testsuite/libgomp.c++/single-1.C: Likewise. * testsuite/libgomp.c++/single-2.C: Likewise. 2017-11-06 Martin Liska <mliska@suse.cz> * testsuite/27_io/basic_fstream/cons/char/path.cc (main): Return a value for functions with non-void return type, or change type to void, or add -Wno-return-type for test. * testsuite/27_io/basic_ifstream/cons/char/path.cc (main): Likewise. * testsuite/27_io/basic_ofstream/open/char/path.cc (main): Likewise. From-SVN: r254451
2017-11-06deduction.cc: Avoid -Wreturn-type warnings.Paolo Carlini8-54/+68
2017-11-06 Paolo Carlini <paolo.carlini@oracle.com> * testsuite/20_util/optional/cons/deduction.cc: Avoid -Wreturn-type warnings. * testsuite/20_util/pair/cons/deduction.cc: Likewise. * testsuite/20_util/pair/traits.cc: Likewise. * testsuite/20_util/tuple/cons/deduction.cc: Likewise. * testsuite/20_util/variant/compile.cc: Likewise. * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc: Likewise. From-SVN: r254450
2017-11-06gcov: New directory.Eric Botcazou3-0/+77
* gnat.dg/gcov: New directory. * gnat.dg/gcov/gcov.exp: New driver. * gnat.dg/gcov/check.adb: New test. From-SVN: r254447
2017-11-06[ARM] PR 67591 ARM v8 Thumb IT blocks are deprecated part 2Christophe Lyon2-0/+11
2017-11-06 Christophe Lyon <christophe.lyon@linaro.org> PR target/67591 * config/arm/arm.md (*sub_shiftsi): Add predicable_short_it attribute. (*cmp_ite0): Add enabled_for_depr_it attribute. (*cmp_ite1): Likewise. From-SVN: r254446
2017-11-06[testsuite] Fix directives orderChristophe Lyon29-29/+60
2017-11-06 Christophe Lyon <christophe.lyon@linaro.org> * gcc.c-torture/execute/pr23135.c: Move dg-add-options after dg-options. * gcc.dg/torture/pr78305.c: Move dg-do as first directive. * gcc.misc-tests/gcov-3.c: Likewise. * gcc.target/arm/cmse/baseline/cmse-11.c: Move dg-options before dg-add-options. * gcc.target/arm/cmse/baseline/cmse-13.c: Likewise. * gcc.target/arm/cmse/baseline/cmse-2.c: Likewise. * gcc.target/arm/cmse/baseline/cmse-6.c: Likewise. * gcc.target/arm/cmse/baseline/softfp.c: Likewise. * gcc.target/arm/cmse/mainline/hard-sp/cmse-13.c: Likewise. * gcc.target/arm/cmse/mainline/hard-sp/cmse-5.c: Likewise. * gcc.target/arm/cmse/mainline/hard-sp/cmse-7.c: Likewise. * gcc.target/arm/cmse/mainline/hard-sp/cmse-8.c: Likewise. * gcc.target/arm/cmse/mainline/hard/cmse-13.c: Likewise. * gcc.target/arm/cmse/mainline/hard/cmse-5.c: Likewise. * gcc.target/arm/cmse/mainline/hard/cmse-7.c: Likewise. * gcc.target/arm/cmse/mainline/hard/cmse-8.c: Likewise. * gcc.target/arm/cmse/mainline/soft/cmse-13.c: Likewise. * gcc.target/arm/cmse/mainline/soft/cmse-5.c: Likewise. * gcc.target/arm/cmse/mainline/soft/cmse-7.c: Likewise. * gcc.target/arm/cmse/mainline/soft/cmse-8.c: Likewise. * gcc.target/arm/cmse/mainline/softfp-sp/cmse-5.c: Likewise. * gcc.target/arm/cmse/mainline/softfp-sp/cmse-7.c: Likewise. * gcc.target/arm/cmse/mainline/softfp-sp/cmse-8.c: Likewise. * gcc.target/arm/cmse/mainline/softfp/cmse-13.c: Likewise. * gcc.target/arm/cmse/mainline/softfp/cmse-5.c: Likewise. * gcc.target/arm/cmse/mainline/softfp/cmse-7.c: Likewise. * gcc.target/arm/cmse/mainline/softfp/cmse-8.c: Likewise. * gcc.target/arm/lp1189445.c: Likewise. From-SVN: r254445
2017-11-06re PR c++/80955 (Macros expanded in definition of user-defined literals)Mukesh Kapoor4-4/+50
/libcpp 2017-11-06 Mukesh Kapoor <mukesh.kapoor@oracle.com> PR c++/80955 * lex.c (lex_string): When checking for a valid macro for the warning related to -Wliteral-suffix (CPP_W_LITERAL_SUFFIX), check that the macro name does not start with an underscore before calling is_macro(). /gcc/testsuite 2017-11-06 Mukesh Kapoor <mukesh.kapoor@oracle.com> PR c++/80955 * g++.dg/cpp0x/udlit-macros.C: New. From-SVN: r254443
2017-11-06[multiple changes]Paul Thomas4-3/+51
2017-11-06 Paul Thomas <pault@gcc.gnu.org> PR fortran/69739 * trans-expr.c (gfc_map_intrinsic_function): Return false for bounds without the DIM argument instead of ICEing. 2017-11-06 Paul Thomas <pault@gcc.gnu.org> PR fortran/69739 * gfortran.dg/pr69739.f90: New test. From-SVN: r254441
2017-11-06Fix test-suite fallout of default -Wreturn-type.Martin Liska528-350/+1367
2017-11-06 Martin Liska <mliska@suse.cz> * c-c++-common/Wimplicit-fallthrough-8.c: Return a value for functions with non-void return type, or change type to void, or add -Wno-return-type for test. * c-c++-common/asan/pr63638.c (f): Likewise. * c-c++-common/goacc/parallel-1.c (firstprivate): Likewise. * c-c++-common/gomp/sink-1.c (depend): Likewise. * c-c++-common/missing-symbol.c: Likewise. * c-c++-common/pr36513-2.c (main2): Likewise. * c-c++-common/pr36513.c (main1): Likewise. * c-c++-common/pr49706-2.c: Likewise. * c-c++-common/pr65120.c: Likewise. * c-c++-common/tm/volatile-1.c (f): Likewise. * c-c++-common/vector-1.c (f): Likewise. * c-c++-common/vector-2.c (f): Likewise. * g++.dg/abi/abi-tag14.C (f): Likewise. (g): Likewise. * g++.dg/abi/abi-tag18.C (f): Likewise. * g++.dg/abi/abi-tag18a.C (f): Likewise. * g++.dg/abi/covariant2.C (struct c3): Likewise. (struct c7): Likewise. * g++.dg/abi/covariant3.C (c1::f6): Likewise. * g++.dg/abi/mangle7.C (f1): Likewise. * g++.dg/asan/pr81340.C (class e): Likewise. (e::f): Likewise. * g++.dg/concepts/fn8.C (struct S): Likewise. * g++.dg/concepts/pr65575.C (f): Likewise. * g++.dg/concepts/template-parm11.C (f): Likewise. * g++.dg/conversion/op6.C: Likewise. * g++.dg/cpp0x/Wunused-variable-1.C (foo): Likewise. * g++.dg/cpp0x/access01.C: Likewise. * g++.dg/cpp0x/alignas3.C (class alignas): Likewise. * g++.dg/cpp0x/auto2.C (f): Likewise. (struct A): Likewise. (main): Likewise. * g++.dg/cpp0x/constexpr-array17.C (struct D): Likewise. * g++.dg/cpp0x/constexpr-defarg2.C (a): Likewise. (B::foo): Likewise. (B::bar): Likewise. * g++.dg/cpp0x/constexpr-memfn1.C (struct Y): Likewise. * g++.dg/cpp0x/dc1.C (struct D): Likewise. * g++.dg/cpp0x/dc3.C (struct D): Likewise. * g++.dg/cpp0x/decltype12.C: Likewise. * g++.dg/cpp0x/decltype17.C (main): Likewise. * g++.dg/cpp0x/decltype3.C: Likewise. * g++.dg/cpp0x/decltype41.C (struct C): Likewise. (struct D): Likewise. * g++.dg/cpp0x/defaulted28.C (f): Likewise. * g++.dg/cpp0x/enum_base3.C (struct D): Likewise. * g++.dg/cpp0x/gen-attrs-4.C (five): Likewise. * g++.dg/cpp0x/initlist96.C: Likewise. * g++.dg/cpp0x/lambda/lambda-58566.C (struct A): Likewise. * g++.dg/cpp0x/lambda/lambda-conv10.C: Likewise. * g++.dg/cpp0x/lambda/lambda-conv12.C: Likewise. * g++.dg/cpp0x/lambda/lambda-defarg3.C: Likewise. * g++.dg/cpp0x/lambda/lambda-ice3.C (Klass::dostuff): Likewise. * g++.dg/cpp0x/lambda/lambda-ice5.C (foo): Likewise. * g++.dg/cpp0x/lambda/lambda-nested2.C (f1): Likewise. * g++.dg/cpp0x/lambda/lambda-template12.C (class X): Likewise. * g++.dg/cpp0x/lambda/lambda-template2.C (struct T): Likewise. * g++.dg/cpp0x/lambda/lambda-this12.C (struct A): Likewise. * g++.dg/cpp0x/nolinkage1.C (main): Likewise. * g++.dg/cpp0x/nolinkage1a.cc (dummy): Likewise. * g++.dg/cpp0x/nsdmi-template5.C: Likewise. * g++.dg/cpp0x/parse1.C (B::B): Likewise. * g++.dg/cpp0x/pr34054.C (foo): Likewise. * g++.dg/cpp0x/pr47416.C: Likewise. * g++.dg/cpp0x/pr58781.C: Likewise. * g++.dg/cpp0x/pr70538.C: Likewise. * g++.dg/cpp0x/pr81325.C: Likewise. * g++.dg/cpp0x/range-for13.C (begin): Likewise. (end): Likewise. * g++.dg/cpp0x/range-for14.C (begin): Likewise. (end): Likewise. * g++.dg/cpp0x/rv2n.C (test2_18): Likewise. (test2_28): Likewise. (test2_38): Likewise. (test2_58): Likewise. (test2_68): Likewise. (test2_78): Likewise. * g++.dg/cpp0x/rv3n.C (test3_128): Likewise. * g++.dg/cpp0x/static_assert10.C (foo): Likewise. * g++.dg/cpp0x/static_assert11.C (struct A): Likewise. * g++.dg/cpp0x/static_assert12.C: Likewise. * g++.dg/cpp0x/static_assert13.C: Likewise. * g++.dg/cpp0x/trailing1.C (struct A): Likewise. * g++.dg/cpp0x/trailing5.C (foo): Likewise. (bar): Likewise. * g++.dg/cpp0x/variadic114.C: Likewise. * g++.dg/cpp0x/variadic57.C (Dims...>::foo): Likewise. (bar): Likewise. * g++.dg/cpp0x/variadic65.C: Likewise. * g++.dg/cpp0x/variadic66.C (bind): Likewise. * g++.dg/cpp0x/variadic97.C: Likewise. * g++.dg/cpp0x/variadic98.C (__attribute__): Likewise. * g++.dg/cpp1y/auto-fn11.C: Likewise. * g++.dg/cpp1y/auto-fn29.C: Likewise. * g++.dg/cpp1y/auto-fn38.C: Likewise. * g++.dg/cpp1y/constexpr-return2.C: Likewise. * g++.dg/cpp1y/lambda-init7.C (foo): Likewise. * g++.dg/cpp1y/pr63996.C: Likewise. * g++.dg/cpp1y/pr65202.C: Likewise. * g++.dg/cpp1y/pr66443-cxx14.C (Ok): Likewise. * g++.dg/cpp1y/pr79253.C (struct D): Likewise. * g++.dg/cpp1y/static_assert1.C: Likewise. * g++.dg/cpp1y/static_assert2.C: Likewise. * g++.dg/cpp1y/var-templ44.C: Likewise. * g++.dg/cpp1z/fold6.C (f): Likewise. * g++.dg/cpp1z/inline-var2.C (foo): Likewise. * g++.dg/cpp1z/lambda-this1.C (struct B): Likewise. * g++.dg/cpp1z/static_assert-nomsg.C: Likewise. * g++.dg/debug/dwarf-eh-personality-1.C (foobar): Likewise. * g++.dg/debug/dwarf2/dwarf4-typedef.C (struct B): Likewise. * g++.dg/debug/dwarf2/icf.C: Likewise. * g++.dg/debug/dwarf2/pr61433.C (main): Likewise. * g++.dg/debug/nullptr01.C (g): Likewise. * g++.dg/debug/pr16792.C (foo): Likewise. * g++.dg/debug/pr46241.C (class btCollisionWorld): Likewise. * g++.dg/debug/pr46338.C (struct S): Likewise. * g++.dg/debug/pr47106.C (baz): Likewise. (bar): Likewise. (foo): Likewise. * g++.dg/debug/pr71057.C (fn1): Likewise. * g++.dg/debug/pr71432.C (class CLIParameterType): Likewise. (CLIParameterType::checkSwitched): Likewise. * g++.dg/debug/pr80461.C (struct B): Likewise. * g++.dg/dfp/44473-1.C (bar): Likewise. * g++.dg/dfp/44473-2.C (bar): Likewise. (foo): Likewise. * g++.dg/eh/builtin1.C: Likewise. * g++.dg/eh/builtin2.C: Likewise. * g++.dg/eh/builtin3.C: Likewise. * g++.dg/eh/pr45569.C (j): Likewise. * g++.dg/eh/unwind2.C: Likewise. * g++.dg/expr/bitfield11.C: Likewise. * g++.dg/expr/static_cast7.C (f): Likewise. * g++.dg/ext/altivec-14.C: Likewise. * g++.dg/ext/asm13.C (fn1): Likewise. * g++.dg/ext/builtin-object-size3.C: Likewise. * g++.dg/ext/has_nothrow_assign_odr.C (main): Likewise. (S::operator=): Likewise. * g++.dg/ext/label7.C (f): Likewise. * g++.dg/ext/label8.C (f): Likewise. * g++.dg/ext/tmplattr7.C (test): Likewise. * g++.dg/ext/vector8.C (f): Likewise. * g++.dg/ext/visibility/anon1.C: Likewise. * g++.dg/ext/visibility/anon2.C (f): Likewise. * g++.dg/ext/visibility/namespace1.C (__attribute): Likewise. * g++.dg/ext/vla16.C (fn1): Likewise. * g++.dg/goacc/reference.C: Likewise. * g++.dg/gomp/pr37189.C: Likewise. * g++.dg/gomp/pr39495-1.C: Likewise. * g++.dg/gomp/pr39495-2.C: Likewise. * g++.dg/gomp/pr82054.C: Likewise. * g++.dg/inherit/covariant10.C (struct c6): Likewise. (struct c17): Likewise. * g++.dg/inherit/covariant11.C (struct c1): Likewise. (struct c3): Likewise. (struct c11): Likewise. (struct c15): Likewise. * g++.dg/inherit/protected1.C (A::operator==): Likewise. * g++.dg/init/inline1.C (struct A): Likewise. * g++.dg/init/new18.C: Likewise. * g++.dg/init/reference2.C (f): Likewise. * g++.dg/init/reference3.C: Likewise. * g++.dg/init/switch1.C (f): Likewise. * g++.dg/ipa/devirt-10.C (struct wxDCBase): Likewise. * g++.dg/ipa/devirt-13.C (main): Likewise. * g++.dg/ipa/devirt-14.C (main): Likewise. * g++.dg/ipa/devirt-15.C (main): Likewise. * g++.dg/ipa/devirt-16.C (main): Likewise. * g++.dg/ipa/devirt-17.C (main): Likewise. * g++.dg/ipa/devirt-18.C (main): Likewise. * g++.dg/ipa/devirt-19.C: Likewise. * g++.dg/ipa/devirt-21.C (main): Likewise. * g++.dg/ipa/devirt-23.C (main): Likewise. * g++.dg/ipa/devirt-38.C: Likewise. * g++.dg/ipa/devirt-40.C (A::m_fn1): Likewise. * g++.dg/ipa/devirt-41.C (main): Likewise. * g++.dg/ipa/devirt-42.C (main): Likewise. * g++.dg/ipa/devirt-44.C (struct A): Likewise. (main): Likewise. * g++.dg/ipa/devirt-45.C (struct A): Likewise. (main): Likewise. * g++.dg/ipa/devirt-48.C (struct B): Likewise. (struct D): Likewise. * g++.dg/ipa/devirt-52.C: Likewise. * g++.dg/ipa/nothrow-1.C (main): Likewise. * g++.dg/ipa/pr43812.C (LocalSurface::bbox): Likewise. * g++.dg/ipa/pr44372.C: Likewise. * g++.dg/ipa/pr45572-1.C (fgetc_unlocked): Likewise. (putc_unlocked): Likewise. (getline): Likewise. (ferror_unlocked): Likewise. * g++.dg/ipa/pr58371.C: Likewise. * g++.dg/ipa/pr59176.C: Likewise. * g++.dg/ipa/pr60640-1.C (class G): Likewise. * g++.dg/ipa/pr61540.C (struct top): Likewise. * g++.dg/ipa/pr63470.C (class FTjackSupport): Likewise. * g++.dg/ipa/pr63587-1.C: Likewise. * g++.dg/ipa/pr63587-2.C: Likewise. * g++.dg/ipa/pr63838.C (__attribute__): Likewise. * g++.dg/ipa/pr63894.C (J::m_fn3): Likewise. * g++.dg/ipa/pr64068.C (class A): Likewise. (A::m_fn2): Likewise. (class C): Likewise. * g++.dg/ipa/pr64896.C (struct D): Likewise. * g++.dg/ipa/pr65002.C: Likewise. * g++.dg/ipa/pr65008.C (__attribute__): Likewise. * g++.dg/ipa/pr65465.C (struct D): Likewise. * g++.dg/ipa/pr66896.C (struct A): Likewise. * g++.dg/ipa/pr68851.C (class G): Likewise. (C::checkPseudoClass): Likewise. * g++.dg/ipa/pr78211.C: Likewise. * g++.dg/ipa/pr79931.C (AttrImpl::insertBefore): Likewise. * g++.dg/ipa/pure-const-1.C (main): Likewise. * g++.dg/ipa/pure-const-2.C (main): Likewise. * g++.dg/ipa/pure-const-3.C (main): Likewise. * g++.dg/ipa/remref-1.C (main): Likewise. * g++.dg/ipa/remref-2.C (main): Likewise. * g++.dg/lookup/builtin2.C (f): Likewise. * g++.dg/lookup/crash3.C (struct A): Likewise. (struct B): Likewise. (crash): Likewise. * g++.dg/lookup/friend20.C: Likewise. * g++.dg/lookup/pr80891-5.C (vf2_subgraph_iso): Likewise. * g++.dg/lookup/struct2.C (A::c): Likewise. * g++.dg/lto/20080709_0.C (f): Likewise. * g++.dg/lto/20080907_0.C: Likewise. * g++.dg/lto/20080915_0.C (struct Baz): Likewise. * g++.dg/lto/20080916_0.C (g): Likewise. * g++.dg/lto/20081022_0.C (main): Likewise. * g++.dg/lto/20081023_0.C (main): Likewise. * g++.dg/lto/20081118_0.C (foo::method): Likewise. * g++.dg/lto/20081118_1.C (bar::method): Likewise. * g++.dg/lto/20081120-1_0.C: Likewise. * g++.dg/lto/20081120-1_1.C: Likewise. * g++.dg/lto/20081127_1.C (main): Likewise. * g++.dg/lto/20081217-2_0.C (struct A): Likewise. * g++.dg/lto/20090303_0.C: Likewise. * g++.dg/lto/20090311-1_0.C: Likewise. * g++.dg/lto/20090312_0.C: Likewise. * g++.dg/lto/20090315_0.C (main): Likewise. * g++.dg/lto/20091002-1_0.C: Likewise. * g++.dg/lto/20091002-2_0.C (class DataArray): Likewise. * g++.dg/lto/20091002-3_0.C (class DataArray): Likewise. * g++.dg/lto/20091004-1_0.C: Likewise. * g++.dg/lto/20091004-2_0.C: Likewise. * g++.dg/lto/20091004-3_1.C (All_Torus_Intersections): Likewise. * g++.dg/lto/20100721-1_0.C (__gthread_active_p): Likewise. * g++.dg/lto/20101010-1_0.C: Likewise. * g++.dg/lto/20101010-2_0.C: Likewise. * g++.dg/lto/pr45679-1_0.C: Likewise. * g++.dg/lto/pr45679-1_1.C: Likewise. * g++.dg/lto/pr45679-2_0.C: Likewise. * g++.dg/lto/pr48042_0.C (B::x): Likewise. * g++.dg/lto/pr51650-1_0.C (fn): Likewise. (main): Likewise. * g++.dg/lto/pr51650-3_0.C (fn): Likewise. (main): Likewise. * g++.dg/lto/pr63270_1.C: Likewise. * g++.dg/lto/pr65193_0.C: Likewise. * g++.dg/lto/pr65302_0.C: Likewise. * g++.dg/lto/pr65316_0.C: Likewise. * g++.dg/lto/pr65475c_0.C: Likewise. * g++.dg/lto/pr65549_0.C (main): Likewise. * g++.dg/lto/pr69077_0.C (cWeightedStdDev::netPack): Likewise. * g++.dg/lto/pr69589_0.C: Likewise. * g++.dg/opt/combine.C (qvariant_cast): Likewise. (QScriptDebuggerBackendPrivate::trace): Likewise. * g++.dg/opt/complex3.C (j): Likewise. * g++.dg/opt/covariant1.C (struct T): Likewise. * g++.dg/opt/declone3.C (Item::m_fn1): Likewise. * g++.dg/opt/dump1.C (__attribute__): Likewise. * g++.dg/opt/inline15.C (struct C): Likewise. (fn2): Likewise. * g++.dg/opt/local1.C (h): Likewise. * g++.dg/opt/memcpy1.C (csBoxClipper::Clip): Likewise. * g++.dg/opt/new1.C: Likewise. * g++.dg/opt/nrv8.C (main): Likewise. * g++.dg/opt/pr23299.C (struct A): Likewise. (struct B): Likewise. (struct C): Likewise. * g++.dg/opt/pr27826.C (struct Geometry): Likewise. * g++.dg/opt/pr44919.C (back_inserter): Likewise. * g++.dg/opt/pr47615.C (main): Likewise. * g++.dg/opt/pr55329.C (struct A): Likewise. * g++.dg/opt/pr61456.C (Set): Likewise. * g++.dg/opt/pr65003.C (D::foo): Likewise. (F::foo): Likewise. * g++.dg/opt/pr65554.C: Likewise. * g++.dg/opt/pr69432.C (struct C): Likewise. * g++.dg/opt/pr78373.C (struct D): Likewise. (Traits>::m_fn4): Likewise. * g++.dg/opt/pr79267.C (struct F): Likewise. * g++.dg/opt/pr82159-2.C: Likewise. * g++.dg/other/array3.C (reserve): Likewise. * g++.dg/other/crash-5.C (f): Likewise. * g++.dg/other/crash-8.C: Likewise. * g++.dg/other/error34.C (S): Likewise. * g++.dg/other/pr22003.C (c3::func): Likewise. * g++.dg/other/pr24623.C (RefCountPointer): Likewise. * g++.dg/other/pr29610.C (struct __normal_iterator): Likewise. (Painter::for_each): Likewise. (Painter::redraw_window): Likewise. * g++.dg/other/pr42645-1.C (struct S): Likewise. * g++.dg/other/pr42645-2.C (foo): Likewise. (f3): Likewise. * g++.dg/other/pr52048.C: Likewise. * g++.dg/other/typedef3.C (XalanCProcessor::getParseOption): Likewise. * g++.dg/overload/defarg4.C (class foo): Likewise. (bar::Initialize): Likewise. * g++.dg/overload/operator5.C (equalIgnoringCase): Likewise. * g++.dg/overload/ref-conv1.C: Likewise. * g++.dg/overload/template5.C (test): Likewise. * g++.dg/parse/crash40.C (class AAA): Likewise. * g++.dg/parse/crash61.C: Likewise. * g++.dg/parse/crash67.C: Likewise. * g++.dg/parse/ctor5.C: Likewise. * g++.dg/parse/defarg4.C (Foo): Likewise. * g++.dg/parse/defarg6.C: Likewise. * g++.dg/parse/error5.C (class Foo): Likewise. * g++.dg/parse/expr2.C (foo): Likewise. * g++.dg/parse/friend7.C: Likewise. * g++.dg/parse/namespace1.C (bar): Likewise. * g++.dg/parse/namespace9.C (g): Likewise. * g++.dg/parse/ret-type2.C: Likewise. * g++.dg/parse/typedef8.C (foo): Likewise. * g++.dg/pch/static-1.C (LocalStaticTest): Likewise. (main): Likewise. * g++.dg/plugin/diagnostic-test-expressions-1.C (test_structure_references): Likewise. (test_postfix_incdec): Likewise. (test_sizeof): Likewise. (test_alignof): Likewise. (test_prefix_incdec): Likewise. * g++.dg/plugin/dumb-plugin-test-1.C (func): Likewise. * g++.dg/plugin/self-assign-test-1.C (func): Likewise. * g++.dg/plugin/self-assign-test-2.C (func): Likewise. * g++.dg/plugin/self-assign-test-3.C (func): Likewise. * g++.dg/pr55513.C (main): Likewise. * g++.dg/pr55604.C (main): Likewise. * g++.dg/pr57662.C: Likewise. * g++.dg/pr58389.C (F::m_fn1): Likewise. * g++.dg/pr59510.C: Likewise. * g++.dg/pr67989.C: Likewise. * g++.dg/pr70590-2.C: Likewise. * g++.dg/pr70590.C: Likewise. * g++.dg/pr70965.C (foo): Likewise. * g++.dg/pr77550.C: Likewise. * g++.dg/pr80287.C (struct A): Likewise. * g++.dg/pr80707.C (A::m_fn1): Likewise. * g++.dg/pr81194.C: Likewise. * g++.dg/spellcheck-identifiers.C: Likewise. * g++.dg/tc1/dr152.C: Likewise. * g++.dg/template/aggr-init1.C (CreateA): Likewise. * g++.dg/template/anon1.C (struct x): Likewise. (struct vector): Likewise. * g++.dg/template/array29.C: Likewise. * g++.dg/template/array7.C (bar): Likewise. * g++.dg/template/canon-type-8.C: Likewise. * g++.dg/template/conv1.C (First::Foo): Likewise. * g++.dg/template/crash107.C: Likewise. * g++.dg/template/crash23.C (f): Likewise. * g++.dg/template/crash8.C (struct bar): Likewise. * g++.dg/template/defarg4.C (struct A): Likewise. * g++.dg/template/dependent-expr9.C: Likewise. * g++.dg/template/error10.C (Btest): Likewise. * g++.dg/template/friend32.C (f): Likewise. * g++.dg/template/init6.C (Graph::Inner::get): Likewise. (main): Likewise. * g++.dg/template/memfriend7.C (A::h): Likewise. * g++.dg/template/new10.C (Analyzer::ReadDictionary): Likewise. * g++.dg/template/nontype12.C (baz): Likewise. * g++.dg/template/overload12.C (foo2): Likewise. * g++.dg/template/overload5.C (foo::f): Likewise. * g++.dg/template/overload8.C (struct A): Likewise. * g++.dg/template/partial10.C (fn): Likewise. (main): Likewise. * g++.dg/template/partial9.C (f): Likewise. * g++.dg/template/qual1.C (shift_compare): Likewise. * g++.dg/template/show-template-tree-3.C: Likewise. * g++.dg/template/sizeof8.C (S<sizeof): Likewise. * g++.dg/template/sizeof9.C (d): Likewise. * g++.dg/template/spec6.C: Likewise. * g++.dg/template/spec7.C (h): Likewise. * g++.dg/template/typedef8.C: Likewise. * g++.dg/template/using20.C (f): Likewise. * g++.dg/template/vla1.C (label): Likewise. * g++.dg/tm/cgraph_edge.C: Likewise. * g++.dg/tm/pr46646.C: Likewise. * g++.dg/tm/pr47554.C (class list): Likewise. * g++.dg/tm/pr47573.C (getStringHeight): Likewise. * g++.dg/tm/unsafe1.C (f): Likewise. * g++.dg/tm/unsafe2.C (g): Likewise. * g++.dg/torture/pr70971.C: Likewise. * g++.dg/torture/20070621-1.C: Likewise. * g++.dg/torture/20090329-1.C: Likewise. * g++.dg/torture/20141013.C: Likewise. * g++.dg/torture/pr33134.C (fxsaveGIF): Likewise. * g++.dg/torture/pr33340.C (new): Likewise. * g++.dg/torture/pr33627.C (class pf_Frag): Likewise. * g++.dg/torture/pr34222.C (readFloat): Likewise. * g++.dg/torture/pr34241.C (test): Likewise. * g++.dg/torture/pr34641.C: Likewise. * g++.dg/torture/pr34850.C (OctetString::operator^=): Likewise. * g++.dg/torture/pr35164-1.C: Likewise. * g++.dg/torture/pr36745.C: Likewise. * g++.dg/torture/pr38705.C (S::bar): Likewise. * g++.dg/torture/pr38811.C (AbcAbcdTracer::TestIsoAbcde): Likewise. * g++.dg/torture/pr39362.C: Likewise. * g++.dg/torture/pr39732.C (f): Likewise. * g++.dg/torture/pr40991.C: Likewise. * g++.dg/torture/pr41775.C: Likewise. * g++.dg/torture/pr42183.C: Likewise. * g++.dg/torture/pr42450.C: Likewise. * g++.dg/torture/pr42704.C: Likewise. * g++.dg/torture/pr42760.C (baz): Likewise. (bar): Likewise. * g++.dg/torture/pr42773.C (Cell::obscuringCells): Likewise. * g++.dg/torture/pr42883.C: Likewise. * g++.dg/torture/pr43905.C (struct Matrix): Likewise. * g++.dg/torture/pr44148.C: Likewise. * g++.dg/torture/pr44295.C: Likewise. * g++.dg/torture/pr44357.C: Likewise. * g++.dg/torture/pr44813.C: Likewise. * g++.dg/torture/pr45580.C: Likewise. * g++.dg/torture/pr45874.C (Mpeg2FrameConstructor::ParsePictureHeader): Likewise. * g++.dg/torture/pr45877.C: Likewise. * g++.dg/torture/pr46383.C: Likewise. * g++.dg/torture/pr46469.C (__attribute__): Likewise. (identifierByPthreadHandle): Likewise. * g++.dg/torture/pr47313.C: Likewise. * g++.dg/torture/pr48271.C: Likewise. * g++.dg/torture/pr49615.C (Dispatch): Likewise. (C::f): Likewise. * g++.dg/torture/pr49770.C (main): Likewise. * g++.dg/torture/pr49938.C: Likewise. * g++.dg/torture/pr51436.C: Likewise. * g++.dg/torture/pr51482.C (anim_track_bez_wvect::tangent): Likewise. * g++.dg/torture/pr51737.C (id_state::start_file): Likewise. * g++.dg/torture/pr51959.C: Likewise. * g++.dg/torture/pr52772.C (class c6): Likewise. * g++.dg/torture/pr52918-2.C (__cxa_allocate_exception): Likewise. * g++.dg/torture/pr53011.C: Likewise. * g++.dg/torture/pr53602.C: Likewise. * g++.dg/torture/pr53752.C: Likewise. * g++.dg/torture/pr54838.C: Likewise. * g++.dg/torture/pr54902.C: Likewise. * g++.dg/torture/pr56029.C: Likewise. * g++.dg/torture/pr56768.C (operator!=): Likewise. * g++.dg/torture/pr57107.C: Likewise. * g++.dg/torture/pr57140.C: Likewise. * g++.dg/torture/pr57235.C: Likewise. * g++.dg/torture/pr58252.C: Likewise. * g++.dg/torture/pr58555.C: Likewise. * g++.dg/torture/pr59208.C (get_dbx_doc): Likewise. * g++.dg/torture/pr60438-1.C (foo): Likewise. * g++.dg/torture/pr60746.C (Two::run): Likewise. * g++.dg/torture/pr61554.C: Likewise. * g++.dg/torture/pr63419.C: Likewise. * g++.dg/torture/pr63476.C: Likewise. * g++.dg/torture/pr63512.C (C::m_fn3): Likewise. * g++.dg/torture/pr64282.C (class H): Likewise. * g++.dg/torture/pr64378.C (struct top): Likewise. * g++.dg/torture/pr64565.C: Likewise. * g++.dg/torture/pr64568-2.C: Likewise. * g++.dg/torture/pr64669.C (Lex::advance_one_char): Likewise. * g++.dg/torture/pr64686.C (B::m_fn1): Likewise. * g++.dg/torture/pr64978.C (B::m_fn2): Likewise. * g++.dg/torture/pr64995.C (A::m_fn2): Likewise. * g++.dg/torture/pr65655.C: Likewise. * g++.dg/torture/pr65851.C: Likewise. * g++.dg/torture/pr67055.C: Likewise. * g++.dg/torture/pr67191.C: Likewise. * g++.dg/torture/pr68852.C: Likewise. * g++.dg/torture/pr69264.C: Likewise. * g++.dg/torture/pr77674.C: Likewise. * g++.dg/torture/pr77947.C (B::m_fn2): Likewise. * g++.dg/torture/pr78268.C: Likewise. * g++.dg/torture/pr78507.C: Likewise. * g++.dg/torture/pr78692.C (F::g): Likewise. * g++.dg/torture/pr80171.C: Likewise. * g++.dg/torture/pr82154.C (class f): Likewise. (f::k): Likewise. * g++.dg/tree-ssa/copyprop.C: Likewise. * g++.dg/tree-ssa/pr22444.C: Likewise. * g++.dg/tree-ssa/pr23948.C (make_scheduler_request): Likewise. * g++.dg/tree-ssa/pr24172.C (dummy): Likewise. * g++.dg/tree-ssa/pr24351-3.C: Likewise. * g++.dg/tree-ssa/pr27283.C: Likewise. * g++.dg/tree-ssa/pr27291.C: Likewise. * g++.dg/tree-ssa/pr27548.C: Likewise. * g++.dg/tree-ssa/pr34355.C (Parse_Float): Likewise. * g++.dg/tree-ssa/pr42337.C: Likewise. * g++.dg/tree-ssa/pred-1.C (main): Likewise. * g++.dg/ubsan/pr65019.C (C::foo): Likewise. * g++.dg/ubsan/pr65583.C: Likewise. * g++.dg/vect/pr60836.cc (norm_): Likewise. * g++.dg/vect/pr68145.cc: Likewise. * g++.dg/vect/pr70729-nest.cc (my_alloc): Likewise. * g++.dg/vect/pr70729.cc (my_alloc): Likewise. * g++.dg/warn/Waddress-3.C: Likewise. * g++.dg/warn/Wconversion-null-2.C (warn_for___null): Likewise. * g++.dg/warn/Wnull-conversion-2.C (main): Likewise. * g++.dg/warn/Wparentheses-10.C: Likewise. * g++.dg/warn/Wparentheses-11.C: Likewise. * g++.dg/warn/Wparentheses-12.C: Likewise. * g++.dg/warn/Wparentheses-25.C: Likewise. * g++.dg/warn/Wparentheses-6.C: Likewise. * g++.dg/warn/Wparentheses-7.C: Likewise. * g++.dg/warn/Wparentheses-8.C: Likewise. * g++.dg/warn/Wparentheses-9.C: Likewise. * g++.dg/warn/Wshadow-5.C: Likewise. * g++.dg/warn/Wtype-limits-Wextra.C (ff): Likewise. (gg): Likewise. * g++.dg/warn/Wtype-limits-no.C (ff): Likewise. (gg): Likewise. * g++.dg/warn/Wtype-limits.C (ff): Likewise. (gg): Likewise. * g++.dg/warn/Wunused-local-typedefs.C: Likewise. * g++.dg/warn/Wzero-as-null-pointer-constant-5.C: Likewise. * g++.dg/warn/pmf1.C (a::f): Likewise. * g++.old-deja/g++.benjamin/p13417.C: Likewise. * g++.old-deja/g++.brendan/crash24.C (main): Likewise. * g++.old-deja/g++.ext/constructor.C: Likewise. * g++.old-deja/g++.ext/namedret1.C (f): Likewise. * g++.old-deja/g++.ext/namedret3.C: Likewise. * g++.old-deja/g++.ext/return1.C: Likewise. * g++.old-deja/g++.jason/anon4.C (main): Likewise. * g++.old-deja/g++.jason/enum6.C: Likewise. * g++.old-deja/g++.jason/lineno2.C (main): Likewise. * g++.old-deja/g++.jason/lineno3.C: Likewise. * g++.old-deja/g++.jason/lineno4.C: Likewise. * g++.old-deja/g++.jason/new2.C (main): Likewise. * g++.old-deja/g++.jason/new4.C (main): Likewise. * g++.old-deja/g++.jason/shadow1.C (main): Likewise. * g++.old-deja/g++.jason/tempcons.C (struct A): Likewise. * g++.old-deja/g++.jason/thunk2.C (main): Likewise. * g++.old-deja/g++.law/builtin1.C (main): Likewise. * g++.old-deja/g++.law/enum9.C: Likewise. * g++.old-deja/g++.law/except3.C: Likewise. * g++.old-deja/g++.law/init6.C: Likewise. * g++.old-deja/g++.law/profile1.C (main): Likewise. * g++.old-deja/g++.law/shadow2.C (main): Likewise. * g++.old-deja/g++.law/temps4.C (main): Likewise. * g++.old-deja/g++.mike/bool2.C (main): Likewise. * g++.old-deja/g++.mike/eh1.C: Likewise. * g++.old-deja/g++.mike/eh10.C: Likewise. * g++.old-deja/g++.mike/eh13.C (main): Likewise. * g++.old-deja/g++.mike/eh16.C: Likewise. * g++.old-deja/g++.mike/eh17.C: Likewise. * g++.old-deja/g++.mike/eh2.C: Likewise. * g++.old-deja/g++.mike/eh23.C: Likewise. * g++.old-deja/g++.mike/eh24.C: Likewise. * g++.old-deja/g++.mike/eh25.C: Likewise. * g++.old-deja/g++.mike/eh26.C: Likewise. * g++.old-deja/g++.mike/eh27.C: Likewise. * g++.old-deja/g++.mike/eh28.C: Likewise. * g++.old-deja/g++.mike/eh29.C: Likewise. * g++.old-deja/g++.mike/eh30.C: Likewise. * g++.old-deja/g++.mike/eh31.C: Likewise. * g++.old-deja/g++.mike/eh35.C: Likewise. * g++.old-deja/g++.mike/eh36.C: Likewise. * g++.old-deja/g++.mike/eh37.C: Likewise. * g++.old-deja/g++.mike/eh38.C: Likewise. * g++.old-deja/g++.mike/eh39.C: Likewise. * g++.old-deja/g++.mike/eh40.C: Likewise. * g++.old-deja/g++.mike/eh47.C: Likewise. * g++.old-deja/g++.mike/eh50.C: Likewise. * g++.old-deja/g++.mike/eh51.C: Likewise. * g++.old-deja/g++.mike/eh7.C: Likewise. * g++.old-deja/g++.mike/eh8.C: Likewise. * g++.old-deja/g++.mike/eh9.C: Likewise. * g++.old-deja/g++.mike/mangle1.C: Likewise. * g++.old-deja/g++.mike/p5958.C: Likewise. * g++.old-deja/g++.mike/p6004.C: Likewise. * g++.old-deja/g++.mike/p700.C: Likewise. * g++.old-deja/g++.mike/p7912.C: Likewise. * g++.old-deja/g++.mike/p811.C (main): Likewise. * g++.old-deja/g++.mike/virt4.C (main): Likewise. * g++.old-deja/g++.oliva/nameret1.C: Likewise. * g++.old-deja/g++.oliva/nameret2.C: Likewise. * g++.old-deja/g++.other/decl1.C (bar): Likewise. * g++.old-deja/g++.other/expr1.C (struct T): Likewise. (main): Likewise. * g++.old-deja/g++.other/inline8.C (main): Likewise. * g++.old-deja/g++.other/loop1.C: Likewise. * g++.old-deja/g++.other/syntax1.C (main): Likewise. * g++.old-deja/g++.pt/repo3.C (main): Likewise. * g++.old-deja/g++.robertl/eb27.C (main): Likewise. * g++.old-deja/g++.robertl/eb83.C (main): Likewise. * gcc.dg/pr44545.c: Likewise. * obj-c++.dg/comp-types-8.mm: Likewise. * obj-c++.dg/demangle-3.mm: Likewise. * obj-c++.dg/super-class-1.mm: Likewise. From-SVN: r254440
2017-11-06rs6000: Implement insn_cost for mfcr, mfcrfSegher Boessenkool2-0/+7
This gives mfcrf a cost of three integer insns, just like we do for sync and load-with-reservation already. * config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and TYPE_MFCRF. From-SVN: r254439
2017-11-06Fix all tests that fail with -sanitize=return.Martin Liska31-25/+112
2017-11-06 Martin Liska <mliska@suse.cz> * c-c++-common/dfp/call-by-value.c (foo32): Return a default value of change return type to void. (foo64): Likewise. (foo128): Likewise. * g++.dg/bprob/g++-bprob-1.C: Likewise. * g++.dg/cpp0x/lambda/lambda-template.C (f): Likewise. * g++.dg/cpp0x/range-for6.C (foo): Likewise. * g++.dg/cpp0x/udlit-template.C: Likewise. * g++.dg/cpp1z/eval-order3.C (struct A): Likewise. (operator>>): Likewise. * g++.dg/expr/cond12.C (struct X): Likewise. (X::operator=): Likewise. * g++.dg/gcov/gcov-1.C: Likewise. * g++.dg/gcov/gcov-threads-1.C (ContentionNoDeadlock_thread): Likewise. * g++.dg/ipa/devirt-21.C: Likewise. * g++.dg/ipa/devirt-23.C: Likewise. * g++.dg/ipa/devirt-34.C (t): Likewise. * g++.dg/missing-return.C: New test. Likewise. * g++.dg/opt/20050511-1.C (bar): Likewise. * g++.dg/opt/const3.C (A::foo1): Likewise. (A::foo2): Likewise. * g++.dg/opt/pr23299.C (E::c): Likewise. * g++.dg/other/copy2.C (A::operator=): Likewise. * g++.dg/overload/addr1.C: Likewise. * g++.dg/pr48484.C: Likewise. * g++.dg/tls/thread_local3.C (thread_main): Likewise. * g++.dg/tls/thread_local3g.C (thread_main): Likewise. * g++.dg/tls/thread_local5.C (thread_main): Likewise. * g++.dg/tls/thread_local5g.C (thread_main): Likewise. * g++.dg/tls/thread_local6.C (thread_main): Likewise. * g++.dg/tls/thread_local6g.C (thread_main): Likewise. * g++.dg/torture/pr34850.C (OctetString::operator^=): Likewise. * g++.dg/tree-prof/pr79259.C (fn2): Likewise. * g++.dg/tree-ssa/pr33604.C (struct Value): Likewise. * g++.dg/tree-ssa/pr81408.C (struct p): Likewise. (av): Likewise. * g++.dg/warn/string1.C (test): Likewise. From-SVN: r254438