aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-08-02re PR tree-optimization/34114 (Missed optimization: cannot determine loop ↵Bin Cheng4-15/+121
termination) PR tree-optimization/34114 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow information for more control IVs. gcc/testsuite PR tree-optimization/34114 * gcc.dg/tree-ssa/loop-42.c: New test. From-SVN: r238983
2016-08-02re PR tree-optimization/34114 (Missed optimization: cannot determine loop ↵Bin Cheng2-7/+66
termination) PR tree-optimization/34114 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR, PLUS_EXPR case. Handle SSA_NAME case. From-SVN: r238982
2016-08-02Skip scan-assembler test when -flto is usedJonathan Wakely2-0/+4
* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip test if -flto used. From-SVN: r238981
2016-08-02Support using -flto with libstdc++ testsuiteJonathan Wakely2-1/+7
* testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to additional flags for compiling libtestc++.a objects. From-SVN: r238978
2016-08-02[PATCH AArch64] Add more AArch64 NEON intrinsicsTamar Christina9-39/+166
Add vmaxnm_f64, vminnm_f64, vmax_f64, vmin_f64. Committed on behalf of Tamar Christina <tamar.christina@arm.com> . gcc/ * config/aarch64/aarch64-simd-builtins.def (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF. (__builtin_aarch64_fmaxdf): Likewise. (__builtin_aarch64_smin_nandf): Likewise. (__builtin_aarch64_smax_nandf): Likewise. * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove. * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to... (<fmaxmin><mode>3): ...this. * config/aarch64/arm_neon.h (vmaxnm_f64): New. (vminnm_f64): Likewise. (vmin_f64): Likewise. (vmax_f64): Likewise. * config/aarch64/iterators.md (FMAXMIN): Merge with... (FMAXMIN_UNS): ...this. (fmaxmin): Merged with (fmaxmin_op): ...this... (maxmin_uns_op): ...in to this. gcc/testsuite/ * gcc.target/aarch64/vminmaxnm.c: New. * gcc.target/aarch64/simd/vminmaxnm_1.c (main): Added float64x1_t tests. From-SVN: r238977
2016-08-02Daily bump.GCC Administrator1-1/+1
From-SVN: r238976
2016-08-01rs6000-c.c (altivec_resolve_overloaded_builtin): Add support for vec_extract ↵Michael Meissner10-17/+571
on vector float... [gcc] 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add support for vec_extract on vector float, vector int, vector short, and vector char vector types. * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add vector float, vector int, vector short, and vector char optimizations on 64-bit ISA 2.07 systems for both constant and variable element numbers. (rs6000_split_vec_extract_var): Likewise. * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be Altivec registers on ISA 2.07 and above. (vsx_extract_v4sf): Delete alternative that hard coded element 0, which never was matched due to the split occuring before register allocation (and the code would not have worked on little endian systems if it did match). Allow extracts to go to the Altivec registers if ISA 2.07 (power8). Change from using "" around the C++ code to using {}'s. (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float vec_extracts when the vector is in memory. (vsx_extract_v4sf_var): New insn to optimize vector float vec_extracts when the element number is variable on 64-bit ISA 2.07 systems. (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations for 64-bit ISA 2.07 as well as ISA 3.0. (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise. (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise. (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to optimize vector int, vector short, and vector char vec_extracts when the vector is in memory. (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to optimize vector int, vector short, and vector char vec_extracts when the element number is variable. [gcc/testsuite] 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/vec-extract-5.c: New tests to test vec_extract for vector float, vector int, vector short, and vector char. * gcc.target/powerpc/vec-extract-6.c: Likewise. * gcc.target/powerpc/vec-extract-7.c: Likewise. * gcc.target/powerpc/vec-extract-8.c: Likewise. * gcc.target/powerpc/vec-extract-9.c: Likewise. From-SVN: r238971
2016-08-01Warn about mangled name change even if DECL_REALLY_EXTERN.Jason Merrill2-29/+34
* mangle.c (mangle_decl): Warn about mangled name change even if DECL_REALLY_EXTERN. From-SVN: r238966
2016-08-01mangle.c (get_abi_tags): New.Jason Merrill2-17/+34
* mangle.c (get_abi_tags): New. (find_substitution, write_unqualified_name, write_abi_tags) (maybe_check_abi_tags): Use it. From-SVN: r238965
2016-08-01* mangle.c (mangle_decl): Fix mangled name change warning.Jason Merrill4-5/+8
From-SVN: r238964
2016-08-01Add non-const std::basic_string::data() for C++17Jonathan Wakely4-4/+117
* include/bits/basic_string.h (data() const): Update comment. (data()): Add non-const overload for C++17. * testsuite/21_strings/basic_string/operations/data/char/2.cc: New. * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New. From-SVN: r238963
2016-08-01re PR target/71948 ([avr] Make progmem work on reduced Tiny cores by adding ↵Georg-Johann Lay2-1/+7
0x4000 to symbols) PR target/71948 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that does not overlap with other symbol flags. From-SVN: r238961
2016-08-01This patch optimizes the prolog and epilog code to reduce the number of ↵Wilco Dijkstra12-221/+260
instructions and avoid multiple writes to SP. This patch optimizes the prolog and epilog code to reduce the number of instructions and avoid multiple writes to SP. The key idea is that epilogs are almost exact reverses of prologs, and thus all the decisions only need to be taken once. The frame layout is decided in aarch64_layout_frame() and decisions recorded in the new aarch64_frame fields initial_adjust, callee_adjust, callee_offset and final_adjust. A generic frame setup consists of 5 basic steps: 1. sub sp, sp, initial_adjust 2. stp reg1, reg2, [sp, -callee_adjust]! (push if callee_adjust != 0) 3. add fp, sp, callee_offset (if frame_pointer_needed) 4. stp reg3, reg4, [sp, callee_offset + N*16] (store remaining callee-saves) 5. sub sp, sp, final_adjust The epilog reverses this, and may omit step 3 if alloca wasn't used. gcc/ * config/aarch64/aarch64.h (aarch64_frame): Remove padding0 and hardfp_offset. Add locals_offset, initial_adjust, callee_adjust, callee_offset and final_adjust. * config/aarch64/aarch64.c (aarch64_layout_frame): Remove unused padding0 and hardfp_offset initializations. Choose frame layout and set frame variables accordingly. Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER. (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER. (aarch64_pop_regs): Likewise. (aarch64_expand_prologue): Remove all decision code, just emit prolog according to frame variables. (aarch64_expand_epilogue): Remove all decision code, just emit epilog according to frame variables. (aarch64_initial_elimination_offset): Use offset to local/arg area. testsuite/ * gcc.target/aarch64/test_frame_10.c: Fix test to check for a single stack adjustment, no writeback. * gcc.target/aarch64/test_frame_12.c: Likewise. * gcc.target/aarch64/test_frame_13.c: Likewise. * gcc.target/aarch64/test_frame_15.c: Likewise. * gcc.target/aarch64/test_frame_6.c: Likewise. * gcc.target/aarch64/test_frame_7.c: Likewise. * gcc.target/aarch64/test_frame_8.c: Likewise. * gcc.target/aarch64/test_frame_16.c: New test. From-SVN: r238960
2016-08-01Disable std::string and std::wstring extern templates for C++17Jonathan Wakely2-1/+4
* include/bits/basic_string.tcc: Disable explicit instantiation declarations for C++17. From-SVN: r238959
2016-08-01PR c++/72766 - ICE with VLAJason Merrill4-1/+22
* constexpr.c (cxx_eval_pointer_plus_expression): Check constancy of nelts. * cp-gimplify.c (cp_fully_fold): Only maybe_constant_value in C++11 and up. From-SVN: r238957
2016-08-01Convert V1TImode register to TImode in debug insnH.J. Lu4-0/+45
TImode register referenced in debug insn can be converted to V1TImode by scalar to vector optimization. When converting a TImode store to V1TImode, we need to check all debug insns on its use chain to convert the V1TImode register to SUBREG TImode if source register is undefined. gcc/ PR target/72748 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses after changing source register mode to V1TImode if source register is undefined. gcc/testsuite/ PR target/72748 * gcc.target/i386/pr72748.c: New test. From-SVN: r238956
2016-08-01re PR tree-optimization/71818 (ICE in as_a, at is-a.h:192 w/ -O2 ↵Alan Hayward4-1/+45
-ftree-vectorize) 2016-08-01 Alan Hayward <alan.hayward@arm.com> gcc/ PR tree-optimization/71818 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs with non invariant evolutions testsuite/ PR tree-optimization/71818 * gcc.dg/vect/pr71818.c: New From-SVN: r238955
2016-08-01Remove ignored "xfail" from dg-do compile directivesJonathan Wakely6-12/+18
* testsuite/23_containers/unordered_map/requirements/53339.cc: Remove ignored "xfail" from { dg-do compile { xfail selector } } directive. * testsuite/23_containers/unordered_multimap/requirements/53339.cc: Likewise. * testsuite/26_numerics/headers/cmath/ c99_classification_macros_c++11.cc: Likewise. * testsuite/26_numerics/headers/cmath/ c99_classification_macros_c++98.cc: Likewise. * testsuite/26_numerics/headers/cmath/ c99_classification_macros_c.cc: Likewise. From-SVN: r238954
2016-08-01Change dump expectation in PR71857Martin Liska2-1/+6
PR tree-optimization/71857 * gcc.dg/tree-ssa/ivopt_mult_4.c: Change expectation. From-SVN: r238953
2016-08-01Fix __gnu_cxx::hash_set test to pass in C++98 modeJonathan Wakely2-12/+17
* testsuite/backward/hash_set/check_construct_destroy.cc: Account for different construct/destroy counts in C++98 mode. From-SVN: r238952
2016-08-01* include/cpplib.h: Fix comment typo.Andreas Schwab2-1/+5
From-SVN: r238951
2016-08-01re PR target/72767 ([avr] Some branches report too small insn length)Georg-Johann Lay2-2/+8
PR target/72767 * config/avr/avr.md (length) [branch]: Correct insn length attribute for forward branches. From-SVN: r238948
2016-08-01extend.texi (AVR Built-in Functions): Document __builtin_avr_nops.Georg-Johann Lay4-0/+42
* doc/extend.texi (AVR Built-in Functions): Document __builtin_avr_nops. * config/avr/builtins.def (NOPS): New. * config/avr/avr.c (avr_expand_nops): New static function. (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS. From-SVN: r238947
2016-08-01Remove "-x c" from dg-options in libstdc++ C++ testJonathan Wakely2-1/+3
* testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options. From-SVN: r238946
2016-08-01Limit std::tuple tests to run for C++11 and laterJonathan Wakely3-1/+9
* testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and later. * testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc: Likewise. From-SVN: r238945
2016-08-01Make libstdc++ debug mode test valid for C++98Jonathan Wakely2-1/+4
* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use C++98-compatible initialization for array. From-SVN: r238944
2016-08-01Remove unused headers and variables from libstdc++ testsJonathan Wakely6-32/+12
* testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove unused header and variable from compile-only test. * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise. * testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise. * testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise. * testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc: Likewise. From-SVN: r238943
2016-08-01Remove duplicate dg-options directive in string_view testJonathan Wakely2-1/+3
* testsuite/experimental/string_view/operations/rfind/char/2.cc: Remove duplicate dg-options directive. From-SVN: r238942
2016-08-01Use -std=gnu++98 instead of -std=gnu++03 in testJonathan Wakely2-1/+4
* testsuite/20_util/specialized_algorithms/uninitialized_copy/ 808590.cc: Use -std=gnu++98 instead of -std=gnu++03. From-SVN: r238941
2016-08-01Remove linker options from compile-only testsJonathan Wakely3-2/+5
* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove linker options from compile-only tests. * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: Likewise. From-SVN: r238940
2016-08-01Run std::ios_base enum tests for C++11 and upJonathan Wakely4-9/+19
* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test supported for C++11 and later. * testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise. * testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise. From-SVN: r238939
2016-08-01[AArch64] Allow multiple-of-8 immediate offsets for TImode LDP/STPKyrylo Tkachov4-2/+34
* config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP addresses. * gcc.target/aarch64/ldp_stp_unaligned_1.c: New test. From-SVN: r238938
2016-08-01aarch64.c (vulcan_tunings): Update vulcan L1 cache_line_size.Virendra Pathak2-1/+6
2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com> * config/aarch64/aarch64.c (vulcan_tunings): Update vulcan L1 cache_line_size. From-SVN: r238937
2016-08-01extend shift count warnings to vector typesJan Beulich6-27/+148
gcc/c/ 2016-08-01 Jan Beulich <jbeulich@suse.com> * c-fold.c (c_fully_fold_internal): Also emit shift count warnings for vector types. * c-typeck.c (build_binary_op): Likewise. gcc/testsuite/ 2016-08-01 Jan Beulich <jbeulich@suse.com> * gcc.dg/vshift-6.c, gcc.dg/vshift-7.c: New. From-SVN: r238936
2016-08-01baseline_symbols.txt: Update.Uros Bizjak2-0/+89
* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update. From-SVN: r238934
2016-08-01Daily bump.GCC Administrator1-1/+1
From-SVN: r238933
2016-07-31Change std::conditional test to compile-onlyJonathan Wakely2-17/+10
* testsuite/20_util/conditional/requirements/typedefs.cc: Change to compile-only test. From-SVN: r238930
2016-07-31Ensure std::atomic test is compiled with optimizationJonathan Wakely2-1/+4
* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Ensure test is compiled with optimization. From-SVN: r238929
2016-07-31Fix DR 438 std::list test to pass in C++98 modeJonathan Wakely2-1/+4
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Adjust dg-prune-output pattern for error in C++98 mode. From-SVN: r238928
2016-07-31Enable std::regex test for C++11 or laterJonathan Wakely2-0/+4
* testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only run for C++11 or later. From-SVN: r238927
2016-07-31Fix non-portable std::regex test and test more casesJonathan Wakely2-4/+17
* testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix test to not rely on GNU extension (escaped normal characters in POSIX BRE). Enable tests for other strings which are now supported. From-SVN: r238926
2016-07-31Allow std::pair test to run in C++11 mode tooJonathan Wakely2-2/+4
* testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target c++11 instead of setting -std=gnu++14. From-SVN: r238925
2016-07-31libstdc++/72745 add static assertion for invalid tuple accessJonathan Wakely5-16/+94
PR libstdc++/72745 * include/std/array (get): Use positive message for static assertions. * include/std/functional (_Safe_tuple_element_t): Fix indentation. * include/std/tuple (tuple_element<I, tuple<>>): Add partial specialization for invalid indices, with static assertion. * testsuite/20_util/tuple/element_access/get_neg.cc: New test. From-SVN: r238924
2016-07-31Move dg-error directives to relevant linesJonathan Wakely10-164/+104
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move dg-error to relevant line. * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc: Likewise. * testsuite/23_containers/forward_list/requirements/dr438/ assign_neg.cc: Likewise. * testsuite/23_containers/forward_list/requirements/dr438/ constructor_1_neg.cc: Likewise. * testsuite/23_containers/forward_list/requirements/dr438/ constructor_2_neg.cc: Likewise. * testsuite/23_containers/forward_list/requirements/dr438/ insert_neg.cc: Likewise. * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc: Likewise. * testsuite/26_numerics/random/linear_congruential_engine/ requirements/non_uint_neg.cc: Likewise. * testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc: Likewise. Also test for std::atomic_address. From-SVN: r238923
2016-07-31Oops, ChangeLog didn't commitWilliam Schmidt1-0/+5
From-SVN: r238922
2016-07-31Add missing variable traits, fix testsuite failures.Ville Voutilainen13-9/+105
* include/bits/uses_allocator.h (uses_allocator_v): New. * include/std/functional (is_bind_expression_v, is_placeholder_v): Likewise. * testsuite/20_util/bind/is_placeholder_v.cc: Likewise. * testsuite/20_util/declval/requirements/1_neg.cc: Adjust. * testsuite/20_util/duration/literals/range.cc: Likewise. * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise. * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise. * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise. * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc: New. From-SVN: r238921
2016-07-31divkc3-1.c: Require POWER8 hardware.William Schmidt2-4/+2
2016-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * gcc.target/powerpc/divkc3-1.c: Require POWER8 hardware. * gcc.target/powerpc/mulkc3-1.c: Likewise. From-SVN: r238919
2016-07-31Check __STRICT_ANSI__ for 128-bit arithmetic typesJonathan Wakely10-1/+30
* testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do not test 128-bit types. * testsuite/20_util/is_floating_point/value.cc: Likewise. * testsuite/20_util/is_integral/value.cc: Likewise. * testsuite/20_util/is_signed/value.cc: Likewise. * testsuite/20_util/is_unsigned/value.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise. * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc: Likewise. * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: Likewise. From-SVN: r238918
2016-07-31Fix file extension of libstdc++ testJonathan Wakely2-0/+4
* testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc. From-SVN: r238917
2016-07-31Make check_effective_target_c++ work for libstdc++Jonathan Wakely2-5/+10
* lib/target-supports.exp (check_effective_target_c): Fix indentation. (check_effective_target_c++): Likewise. Also match for libstdc++. From-SVN: r238916