aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-10-28re PR fortran/81758 ([OOP] Broken vtab)Paul Thomas4-1/+93
2017-10-28 Paul Thomas <pault@gcc.gnu.org> PR fortran/81758 * trans-expr.c (trans_class_vptr_len_assignment): 'vptr_expr' must only be set if the right hand side expression is of type class. 2017-10-28 Paul Thomas <pault@gcc.gnu.org> PR fortran/81758 * gfortran.dg/class_63.f90: New test. From-SVN: r254195
2017-10-28target.c (struct gomp_coalesce_buf): New type.Jakub Jelinek2-34/+207
* target.c (struct gomp_coalesce_buf): New type. (MAX_COALESCE_BUF_SIZE, MAX_COALESCE_BUF_GAP): Define. (gomp_coalesce_buf_add, gomp_to_device_kind_p): New functions. (gomp_copy_host2dev): Add CBUF argument, if copying into the cached ranges, memcpy into buffer instead of copying into device. (gomp_map_vars_existing, gomp_map_pointer, gomp_map_fields_existing): Add CBUF argument, pass it through to other calls. (gomp_map_vars): Aggregate copies from host to device if small enough and with small enough gaps in between into memcpy into a buffer and fewer host to device copies from the buffer. (gomp_update): Adjust gomp_copy_host2dev caller. From-SVN: r254194
2017-10-28re PR fortran/82620 ([PDT] ICE: free_expr0(): Bad expr type (at ↵Steven G. Kargl4-1/+26
fortran/expr.c:497)) 2017-10-27 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/82620 * match.c (gfc_match_allocate): Exit early on syntax error. 2017-10-27 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/82620 * gfortran.dg/allocate_error_7.f90: new test. From-SVN: r254193
2017-10-28Daily bump.GCC Administrator1-1/+1
From-SVN: r254192
2017-10-27re PR c++/82218 ([C++1x] constexpr on static member function causes segfault)Paolo Carlini2-0/+133
2017-10-27 Paolo Carlini <paolo.carlini@oracle.com> PR c++/82218 * g++.dg/cpp1y/constexpr-82218.C: New. From-SVN: r254189
2017-10-27bb-reorder.c (find_traces_1_round): Fix off-by-one index.Eric Botcazou5-19/+114
* bb-reorder.c (find_traces_1_round): Fix off-by-one index. Move comment around. Do not reset best_edge for a copiable destination if the copy would cause a partition change. (better_edge_p): Remove redundant check. From-SVN: r254188
2017-10-27PR target/82268 Correct FAIL when configured --with-cpuDaniel Santos2-1/+5
* gcc.target/i386/pr82196-1.c (dg-options): Add -mno-avx. From-SVN: r254186
2017-10-27i386-protos.h (ix86_fp_compare_mode): Remove prototype.Uros Bizjak4-8/+8
* config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype. From-SVN: r254184
2017-10-27builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases for math ↵Michael Meissner24-69/+454
functions that have _Float<N> and... [gcc] 2017-10-27 Michael Meissner <meissner@linux.vnet.ibm.com> * builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases for math functions that have _Float<N> and _Float<N>X variants. (mathfn_built_in_2): Add support for math functions that have _Float<N> and _Float<N>X variants. (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro. (expand_builtin_mathfn_ternary): Add support for fma with _Float<N> and _Float<N>X variants. (expand_builtin): Likewise. (fold_builtin_3): Likewise. * builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to create math function _Float<N> and _Float<N>X variants as external library builtins. (BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using the __builtin_ prefix and if not strict ansi, without the prefix. (BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise. (BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise. (BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise. (BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise. (BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise. (BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise. * builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New function signatures for fma _Float<N> and _Float<N>X variants. (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise. (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise. (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise. (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise. (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise. (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise. * gencfn-macros.c (print_case_cfn): Add support for math functions that have _Float<N> and _Float<N>X variants. (print_define_operator_list): Likewise. (fltfn_suffixes): Likewise. (main): Likewise. * internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro for math functions that have _Float<N> and _Float<N>X variants. (SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N> and _Float<N>X variants. (COPYSIGN): Likewise. (FMIN): Likewise. (FMAX): Likewise. * fold-const.c (tree_call_nonnegative_warnv_p): Add support for copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X variants. (integer_valued_read_call_p): Likewise. * fold-const-call.c (fold_const_call_ss): Likewise. (fold_const_call_sss): Add support for copysign, fmin, and fmax _Float<N> and _Float<N>X variants. (fold_const_call_ssss): Add support for fma _Float<N> and _Float<N>X variants. * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add support for copysign and fma _Float<N> and _Float<N>X variants. (backprop::process_builtin_call_use): Likewise. * tree-call-cdce.c (can_test_argument_range); Add support for sqrt _Float<N> and _Float<N>X variants. (edom_only_function): Likewise. (get_no_error_domain): Likewise. * tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise. * tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for copysign _Float<N> and _Float<N>X variants. * config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now handled by machine independent code. (FMAF128): Likewise. * doc/cpp.texi (Common Predefined Macros): Document defining __FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports fma _Float<N> and _Float<N>X variants. [gcc/c] 2017-10-27 Michael Meissner <meissner@linux.vnet.ibm.com> * c-decl.c (header_for_builtin_fn): Add support for copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X variants. [gcc/c-family] 2017-10-27 Michael Meissner <meissner@linux.vnet.ibm.com> * c-cppbuiltin.c (mode_has_fma): Add support for PowerPC KFmode. (c_cpp_builtins): If a machine has a fast fma _Float<N> and _Float<N>X variant, define __FP_FAST_FMA<N> and/or __FP_FAST_FMA<N>X. [gcc/testsuite] 2017-10-27 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/float128-hw.c: Add support for all 4 FMA variants. Check various conversions to/from float128. Check negation. Use {\m...\M} in the tests. * gcc.target/powerpc/float128-hw2.c: New test for implicit _Float128 math functions. * gcc.target/powerpc/float128-hw3.c: New test for strict ansi mode not implicitly adding the _Float128 math functions. * gcc.target/powerpc/float128-fma2.c: Delete, test is no longer valid. * gcc.target/powerpc/float128-sqrt2.c: Likewise. From-SVN: r254168
2017-10-27re PR target/82692 (Ordered comparisons used for unordered built-ins)Uros Bizjak10-108/+177
PR target/82692 * config/i386/i386-modes.def (CCFPU): Remove definition. * config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling. (ix86_cc_modes_compatible): Ditto. (ix86_expand_carry_flag_compare): Ditto. (ix86_expand_int_movcc): Ditto. (ix86_expand_int_addcc): Ditto. (ix86_reverse_condition): Ditto. (ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode. Return true/false for unordered/ordered fp comparisons. (ix86_cc_mode): Always return CCFPmode for float mode comparisons. (ix86_prepare_fp_compare_args): Update for rename. (ix86_expand_fp_compare): Update for rename. Generate unordered compare RTXes wrapped with UNSPEC_NOTRAP unspec. (ix86_expand_sse_compare_and_jump): Ditto. * config/i386/predicates.md (fcmov_comparison_operator): Remove CCFPU mode handling. (ix86_comparison_operator): Ditto. (ix86_carry_flag_operator): Ditto. * config/i386/i386.md (UNSPEC_NOTRAP): New unspec. (*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec. (*cmpu<mode>_cc_i387): Ditto. (FPCMP): Remove mode iterator. (unord): Remove mode attribute. (unord_subst): New define_subst transformation (unord): New define_subst attribute. (unordered): Ditto. (*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation. (*cmpi<unord>xf_i387): Ditto. * config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name> using unord_subst transformation. * config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes. (round_saeonly): Also handle CCFP mode. * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec. Remove UNSPEC_SAHF unspec handling. testsuite/ChangeLog: PR target/82692 * gcc.dg/torture/pr82692.c: New test. From-SVN: r254167
2017-10-27* x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.Jan Hubicka2-1/+5
From-SVN: r254166
2017-10-27fold-vec-neg-char.c: New.Will Schmidt6-0/+104
[testsuite] 2017-10-27 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-neg-char.c: New. * gcc.target/powerpc/fold-vec-neg-floatdouble.c: New. * gcc.target/powerpc/fold-vec-neg-int.c: New. * gcc.target/powerpc/fold-vec-neg-longlong.c: New. * gcc.target/powerpc/fold-vec-neg-short.c: New. From-SVN: r254164
2017-10-27re PR libfortran/81938 (valgrind error message and heap-buffer-overflow on ↵Jerry DeLisle2-1/+9
address sanitized libgfortran.so) 2017-10-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> Rimvydas (RJ) PR libgfortran/81938 io/format.c (free_format_data): Don't try to free vlist descriptors past the end of the fnode array. From-SVN: r254163
2017-10-27Simplify _Node_insert_return to avoid including <tuple>Jonathan Wakely2-5/+35
* include/bits/node_handle.h (_Node_insert_return::get): Avoid use of std::tie and std::get. From-SVN: r254162
2017-10-27List headers in Makefile in alphabetical orderJonathan Wakely3-2/+5
* include/Makefile.am: Put headers in alphabetical order. * include/Makefile.in: Regenerate. From-SVN: r254161
2017-10-27Remove noexcept from filesystem iterators and operations (LWG 3013, 3014)Jonathan Wakely5-24/+32
* include/bits/fs_dir.h (directory_iterator): Remove noexcept from constructors and increment member (LWG 3013). (recursive_directory_iterator): Likewise. * include/bits/fs_ops.h (copy, copy_file, create_directories) (is_empty, remove_all): Remove noexcept (LWG 3013 and LWG 3014). * src/filesystem/std-dir.cc (directory_iterator::increment) (recursive_directory_iterator::increment): Remove noexcept. * src/filesystem/std-ops.cc (copy, copy_file, create_directories) (is_empty, remove_all): Remove noexcept From-SVN: r254160
2017-10-27Make filesystem::file_status default constructor non-explicit (LWG 2787)Jonathan Wakely4-3/+168
* include/bits/fs_dir.h (file_status): Make default constructor non-explicit (LWG 2787). * testsuite/27_io/filesystem/file_status/1.cc: New test. * testsuite/experimental/filesystem/file_status/1.cc: New test. From-SVN: r254159
2017-10-27pt.c (invalid_nontype_parm_type_p): Return a bool instead of an int.Paolo Carlini2-13/+17
2017-10-27 Paolo Carlini <paolo.carlini@oracle.com> * pt.c (invalid_nontype_parm_type_p): Return a bool instead of an int. From-SVN: r254158
2017-10-27re PR fortran/56342 (MATMUL with PARAMETER: Simplification usually doesn't work)Thomas Koenig4-1/+27
2017-10-27 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/56342 * simplify.c (is_constant_array_expr): If the expression is a parameter array, call gfc_simplify_expr. 2017-10-27 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/56342 * gfortran.dg/matmul_const.f90: New test. From-SVN: r254157
2017-10-27gimple-ssa-sprintf.c: Include domwalk.h.Jeff Law2-30/+53
* gimple-ssa-sprintf.c: Include domwalk.h. (class sprintf_dom_walker): New class, derived from dom_walker. (sprintf_dom_walker::before_dom_children): New function. (struct call_info): Moved into sprintf_dom_walker class (compute_formath_length, handle_gimple_call): Likewise. (sprintf_length::execute): Call the dominator walker rather than walking the statements. From-SVN: r254156
2017-10-27tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle gimple ↵Jeff Law2-7/+8
statement locations. * tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle gimple statement locations. (check_array_bounds): Corresponding changes. Get the statement's location directly from wi->stmt. From-SVN: r254154
2017-10-27RISC-V: Correct and improve the "-mabi" documentationPalmer Dabbelt2-3/+25
The documentation for the "-mabi" argument on RISC-V was incorrect. We chose to treat this as a documentation bug rather than a code bug, and to make the documentation match what GCC currently does. In the process, I also improved the documentation a bit. Thanks to Alex Bradbury for finding the bug! PR target/82717: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82717 gcc/ChangeLog 2017-10-27 Palmer Dabbelt <palmer@dabbelt.com> PR target/82717 * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve. From-SVN: r254153
2017-10-27x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY, [...]): Disable for Haswell ↵Jan Hubicka2-3/+10
and newer CPUs. * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY, X86_TUNE_MOVX): Disable for Haswell and newer CPUs. From-SVN: r254152
2017-10-27Fix profiledbootstrap.Martin Liska3-4/+10
2017-10-27 Martin Liska <mliska@suse.cz> * Makefile.tpl: Use proper name of folder as it was renamed during transition to 4 stages. * Makefile.in: Regenerate. From-SVN: r254150
2017-10-27Provide filesystem::path overloads for file streams (LWG 2676, partial)Jonathan Wakely9-5/+472
* include/std/fstream (basic_filebuf::_If_path): New SFINAE helper. (basic_filebuf::open<Path>(const Path&, const ios_base::openmode&)) (basic_ifstream<Path>(const Path&, const ios_base::openmode&)) (basic_ifstream::open<Path>(const Path&, const ios_base::openmode&)) (basic_ofstream<Path>(const Path&, const ios_base::openmode&)) (basic_ofstream::open<Path>(const Path&, const ios_base::openmode&)) (basic_fstream<Path>(const Path&, const ios_base::openmode&)) (basic_fstream::open<Path>(const Path&, const ios_base::openmode&)): New constructors and member functions. * testsuite/27_io/basic_filebuf/open/char/path.cc: New test. * testsuite/27_io/basic_fstream/cons/char/path.cc: New test. * testsuite/27_io/basic_fstream/open/char/path.cc: New test. * testsuite/27_io/basic_ifstream/cons/char/path.cc: New test. * testsuite/27_io/basic_ifstream/open/char/path.cc: New test. * testsuite/27_io/basic_ofstream/cons/char/path.cc: New test. * testsuite/27_io/basic_ofstream/open/char/path.cc: New test. From-SVN: r254148
2017-10-27* gcc.target/i386/pr70021.c: Add -mtune=skylake.Jan Hubicka2-1/+5
From-SVN: r254147
2017-10-27re PR target/82703 (Wrong addition of std::array components with -O2 ↵Jakub Jelinek6-23/+46
-ftree-loop-vectorize -ftree-slp-vectorize (works fine with -O2)) PR target/82703 * config/i386/i386-protos.h (maybe_get_pool_constant): Removed. * config/i386/i386.c (maybe_get_pool_constant): Removed. (ix86_split_to_parts): Use avoid_constant_pool_reference instead of maybe_get_pool_constant. * config/i386/predicates.md (zero_extended_scalar_load_operand): Likewise. * gcc.dg/pr82703.c: New test. From-SVN: r254145
2017-10-27Define std::filesystem::path::format enum (P0430R2)Jonathan Wakely3-5/+132
* include/bits/fs_path.h (path::format): Define new enumeration type. (path(string_type&&), path<Source>(const Source&)) (path<InputIterator>(InputIterator, InputIterator)) (path<Source>(const Source&, const locale&)) (path<InputIterator>(InputIterator, InputIterator, const locale&)): Add format parameter. * testsuite/27_io/filesystem/path/construct/format.cc: New test. From-SVN: r254144
2017-10-27Update install.texi for Solaris 12 renameRainer Orth2-11/+15
* doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas 2.26 caveat. Update gas and gld versions. (Specific, *-*-solaris2*): Update binutils version. Remove caveat reference. From-SVN: r254143
2017-10-27Extend ipa-pure-const pass to propagate malloc attribute.Prathamesh Kulkarni14-15/+526
2017-10-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> * cgraph.h (set_malloc_flag): Declare. * cgraph.c (set_malloc_flag_1): New function. (set_malloc_flag): Likewise. * ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee. * ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to false. (read_ipa_call_summary): Add support for reading is_return_callee. (write_ipa_call_summary): Stream is_return_callee. * ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary. * ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h, ipa-prop.h, ipa-fnsummary.h. (pure_const_names): Change to static. (malloc_state_e): Define. (malloc_state_names): Define. (funct_state_d): Add field malloc_state. (varying_state): Set malloc_state to STATE_MALLOC_BOTTOM. (check_retval_uses): New function. (malloc_candidate_p): Likewise. (analyze_function): Add support for malloc attribute. (pure_const_write_summary): Stream malloc_state. (pure_const_read_summary): Add support for reading malloc_state. (dump_malloc_lattice): New function. (propagate_malloc): New function. (warn_function_malloc): New function. (ipa_pure_const::execute): Call propagate_malloc and ipa_free_fn_summary. (pass_local_pure_const::execute): Add support for malloc attribute. * ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro. * doc/invoke.texi: Document Wsuggest-attribute=malloc. testsuite/ * gcc.dg/ipa/propmalloc-1.c: New test-case. * gcc.dg/ipa/propmalloc-2.c: Likewise. * gcc.dg/ipa/propmalloc-3.c: Likewise. From-SVN: r254140
2017-10-27re PR c++/71385 (Internal compiler error when using concept as placeholder)Paolo Carlini2-0/+17
2017-10-27 Paolo Carlini <paolo.carlini@oracle.com> PR c++/71385 * g++.dg/concepts/pr71385.C: New. From-SVN: r254139
2017-10-27re PR c++/80739 (Accessing value of X through a Y glvalue in a constant ↵Paolo Carlini2-0/+25
expression) 2017-10-27 Paolo Carlini <paolo.carlini@oracle.com> PR c++/80739 * g++.dg/cpp1y/constexpr-80739.C: New. From-SVN: r254138
2017-10-27Document --coverage and fork-like functions (PR gcov-profile/82457).Martin Liska2-3/+9
2017-10-27 Martin Liska <mliska@suse.cz> PR gcov-profile/82457 * doc/invoke.texi: Document that one needs a non-strict ISO mode for fork-like functions to be properly instrumented. From-SVN: r254137
2017-10-27re PR middle-end/81659 (ICE in verify_dominators, at dominance.c:1184)Richard Biener4-1/+34
2017-10-27 Richard Biener <rguenther@suse.de> PR middle-end/81659 * tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator info when we redirected EH. * g++.dg/torture/pr81659.C: New testcase. From-SVN: r254136
2017-10-27aarch64.md (<optab>_trunc><vf><GPI:mode>2): New pattern.Michael Collison6-9/+83
2017-10-26 Michael Collison <michael.collison@arm.com> * config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2): New pattern. (<optab>_trunchf<GPI:mode>2: New pattern. (<optab>_trunc<vgp><GPI:mode>2: New pattern. * config/aarch64/iterators.md (wv): New mode attribute. (vf, VF): New mode attributes. (vgp, VGP): New mode attributes. (s): Update attribute with SImode and DImode prefixes. * testsuite/gcc.target/aarch64/fix_trunc1.c: New testcase. * testsuite/gcc.target/aarch64/vect-vcvt.c: Fix scan-assembler directives to allow float or integer destination registers for fcvtz[su]. From-SVN: r254133
2017-10-27Daily bump.GCC Administrator1-1/+1
From-SVN: r254131
2017-10-27Protect more algorithms from overloaded comma operatorsJonathan Wakely9-47/+159
* include/bits/stl_algo.h (__find_if_not_n, generate_n): Cast to void to ensure overloaded comma not used. * include/bits/stl_algobase.h (__fill_n_a, equal): Likewise. * include/bits/stl_uninitialized.h (__uninitialized_fill_n) (__uninitialized_fill_n_a, __uninitialized_default_n_1) (__uninitialized_default_n_a, __uninitialized_copy_n) (__uninitialized_copy_n_pair): Likewise * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc: Use test iterator wrappers with overloaded comma operator. * testsuite/25_algorithms/fill_n/1.cc: Likewise. * testsuite/25_algorithms/generate_n/1.cc: New test. * testsuite/25_algorithms/stable_partition/1.cc: New test. * testsuite/util/testsuite_iterators.h (operator,): Add deleted non-member comma operator with iterator wrappers as right operand. From-SVN: r254128
2017-10-26compiler: explicitly convert between type aliasesIan Lance Taylor2-6/+12
Otherwise we can get a crash in the backend. Test case is https://golang.org/cl/73790. Reviewed-on: https://go-review.googlesource.com/73810 From-SVN: r254126
2017-10-26constraints.md ("S"): Match r0rel_constant_p too.Sandra Loosemore8-18/+165
2017-10-26 Sandra Loosemore <sandra@codesourcery.com> gcc/ * config/nios2/constraints.md ("S"): Match r0rel_constant_p too. * config/nios2/nios2-protos.h (r0rel_constant_p): Declare. * config/nios2/nios2.c: (nios2_r0rel_sec_regex): New. (nios2_option_overide): Initialize it. Don't allow R0-relative addressing with PIC. (nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p. (nios2_symbolic_constant_p): Likewise. (nios2_legitimate_address_p): Likewise. (nios2_r0rel_section_name_p): New. (nios2_symbol_ref_in_r0rel_data_p): New. (nios2_emit_move_sequence): Handle r0rel_constant_p. (r0rel_constant_p): New. (nios2_print_operand_address): Handle r0rel_constant_p. (nios2_cdx_narrow_form_p): Likewise. * config/nios2/nios2.opt (mr0rel-sec=): New option. * doc/invoke.texi (Option Summary): Add -mr0rel-sec. (Nios II Options): Document -mr0rel-sec. gcc/testsuite/ * gcc.target/nios2/gpopt-r0rel-sec.c: New. From-SVN: r254124
2017-10-26nios2.c: Include xregex.h.Sandra Loosemore6-1/+94
2017-10-26 Sandra Loosemore <sandra@codesourcery.com> gcc/ * config/nios2/nios2.c: Include xregex.h. (nios2_gprel_sec_regex): New. (nios2_option_overide): Initialize it. Don't allow GP-relative addressing with PIC. (nios2_small_section_name_p): Check for regex match. * config/nios2/nios2.opt (mgprel-sec=): New option. * doc/invoke.texi (Option Summary): Add -mgprel-sec. (Nios II Options): Document -mgprel-sec. gcc/testsuite/ * gcc.target/nios2/gpopt-gprel-sec.c: New. From-SVN: r254123
2017-10-26Fix hyphenation build-time path and install-time path.Jim Wilson1-1/+1
gcc/ * doc/invoke.texi (-fdebug-prefix-map): Expand documentation. From-SVN: r254122
2017-10-26Add some usage info -fdebug-prefix-map= docs.James E Wilson2-1/+10
gcc/ * doc/invoke.texi (-fdebug-prefix-map): Expand documentation. From-SVN: r254121
2017-10-26Fix unsharing of GIMPLE_OMP_{SINGLE,TARGET,TEAMS} in gimple_copyTom de Vries2-1/+31
2017-10-26 Tom de Vries <tom@codesourcery.com> PR tree-optimization/82707 * gimple.c (gimple_copy): Fix unsharing of GIMPLE_OMP_{SINGLE,TARGET,TEAMS}. From-SVN: r254120
2017-10-26Adding missing CMP* intrinsicsOlga Makhotina7-71/+520
gcc/ * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask, _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask, _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask, _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask, _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask, _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask, _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask, _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask, _mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask, _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask, _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask, _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask, _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask, _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask, _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask, _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask, _mm512_mask_cmpunord_ps_mask): New intrinsics. gcc/testsuite/ * gcc.target/i386/avx512f-vcmpps-1.c (_mm512_cmpeq_ps_mask, _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask, _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask, _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask, _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask, _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask, _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask, _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask, _mm512_mask_cmpunord_ps_mask): Test new intrinsics. * gcc.target/i386/avx512f-vcmpps-2.c (_mm512_cmpeq_ps_mask, _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask, _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask, _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask, _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask, _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask, _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask, _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask, _mm512_mask_cmpunord_ps_mask): Test new intrinsics. * gcc.target/i386/avx512f-vcmppd-1.c (_mm512_cmpeq_pd_mask, _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask, _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask, _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask, _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask, _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask, _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask, _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask, _mm512_mask_cmpunord_pd_mask): Test new intrinsics. * gcc.target/i386/avx512f-vcmppd-2.c (_mm512_cmpeq_pd_mask, _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask, _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask, _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask, _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask, _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask, _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask, _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask, _mm512_mask_cmpunord_pd_mask): Test new intrinsics. From-SVN: r254118
2017-10-26aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double default to IBM.Michael Meissner6-10/+75
[gcc] 2017-10-26 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double default to IBM. * config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise. * config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the warning to rs6000.c. Remove the Undocumented flag, since it has been documented. (-mabi=ibmlongdouble): Likewise. * config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not already set, set the default format for long double. (rs6000_debug_reg_global): Print whether long double is IBM or IEEE. (rs6000_option_override_internal): Rework setting long double format. Only warn if the user is changing the long double default and they did not use -Wno-psabi. * doc/invoke.texi (PowerPC options): Update the documentation for -mabi=ieeelongdouble and -mabi=ibmlongdouble. From-SVN: r254116
2017-10-26Add wider_subreg_mode helper functionsRichard Sandiford8-46/+89
This patch adds helper functions that say which of the two modes involved in a subreg is the larger, preferring the outer mode in the event of a tie. It also converts IRA and reload to track modes instead of byte sizes, since this is slightly more convenient when variable-sized modes are added later. 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * rtl.h (wider_subreg_mode): New function. * ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode * rather than an unsigned int *. * ira-color.c (regno_max_ref_width): Replace with... (regno_max_ref_mode): ...this new variable. (coalesced_pseudo_reg_slot_compare): Update accordingly. Use wider_subreg_mode. (ira_sort_regnos_for_alter_reg): Likewise. Take a machine_mode * rather than an unsigned int *. * lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode. (process_alt_operands): Likewise. (invariant_p): Likewise. * lra-spills.c (assign_mem_slot): Likewise. (add_pseudo_to_slot): Likewise. * lra.c (collect_non_operand_hard_regs): Likewise. (add_regs_to_insn_regno_info): Likewise. * reload1.c (regno_max_ref_width): Replace with... (regno_max_ref_mode): ...this new variable. (reload): Update accordingly. Update call to ira_sort_regnos_for_alter_reg. (alter_reg): Update to use regno_max_ref_mode. Call wider_subreg_mode. (init_eliminable_invariants): Update to use regno_max_ref_mode. (scan_paradoxical_subregs): Likewise. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r254115
2017-10-26Introduce emit_frame_chainWilco Dijkstra3-12/+25
The current frame code combines the separate concepts of a frame chain (saving old FP,LR in a record and pointing new FP to it) and a frame pointer used to access locals. Add emit_frame_chain to the aarch64_frame descriptor and use it in the prolog and epilog code. For now just initialize it as before, so generated code is identical. Also correctly set EXIT_IGNORE_STACK. The current AArch64 epilog code restores SP from FP if alloca is used. If a frame pointer is used but there is no alloca, SP must remain valid for the epilog to work correctly. gcc/ * config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used. (aarch64_frame): Add emit_frame_chain boolean. * config/aarch64/aarch64.c (aarch64_frame_pointer_required) Move eh_return case to aarch64_layout_frame. (aarch64_layout_frame): Initialize emit_frame_chain. (aarch64_expand_prologue): Use emit_frame_chain. From-SVN: r254114
2017-10-26Deduction guides for associative containers, debug mode deduction guide fixes.Ville Voutilainen26-0/+1524
* include/bits/stl_iterator.h (__iter_key_t) (__iter_val_t, __iter_to_alloc_t): New. * include/bits/stl_map.h: Add deduction guides. * include/bits/stl_multimap.h: Likewise. * include/bits/stl_multiset.h: Likewise. * include/bits/stl_set.h: Likewise. * include/bits/unordered_map.h: Likewise. * include/bits/unordered_set.h: Likewise. * include/debug/deque: Likewise. * include/debug/forward_list: Likewise. * include/debug/list: Likewise. * include/debug/map.h: Likewise. * include/debug/multimap.h: Likewise. * include/debug/multiset.h: Likewise. * include/debug/set.h: Likewise. * include/debug/unordered_map: Likewise. * include/debug/unordered_set: Likewise. * include/debug/vector: Likewise. * testsuite/23_containers/map/cons/deduction.cc: New. * testsuite/23_containers/multimap/cons/deduction.cc: Likewise. * testsuite/23_containers/multiset/cons/deduction.cc: Likewise. * testsuite/23_containers/set/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_multimap/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_multiset/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise. From-SVN: r254113
2017-10-26Simplify frame layout for stack probingWilco Dijkstra2-16/+17
This patch makes some changes to the frame layout in order to simplify stack probing. We want to use the save of LR as a probe in any non-leaf function. With shrinkwrapping we may only save LR before a call, so it is useful to define a fixed location in the callee-saves. So force LR at the bottom of the callee-saves even with -fomit-frame-pointer. Also remove a rarely used frame layout that saves the callee-saves first with -fomit-frame-pointer. Doing so allows the store of LR to be used as a valid stack probe in all frames. gcc/ * config/aarch64/aarch64.c (aarch64_layout_frame): Ensure LR is always stored at the bottom of the callee-saves. Remove rarely used frame layout which saves callee-saves at top of frame, so the store of LR can be used as a valid probe in all cases. From-SVN: r254112
2017-10-26Improve addressing of TI/TFmodeWilco Dijkstra4-4/+35
In https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01125.html Jiong pointed out some addressing inefficiencies due to a recent change in regcprop (https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00775.html). This patch improves aarch64_legitimize_address_displacement to split unaligned offsets of TImode and TFmode accesses. The resulting code is better and no longer relies on the original regcprop optimization. For the test we now produce: add x1, sp, 4 stp xzr, xzr, [x1, 24] rather than: mov x1, sp add x1, x1, 28 stp xzr, xzr, [x1] gcc/ * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement): Improve unaligned TImode/TFmode base/offset split. testsuite/ * gcc.target/aarch64/ldp_stp_unaligned_2.c: New file. From-SVN: r254111