- 14 Dec, 2018 9 commits
-
-
2018-12-14 Richard Biener <rguenther@suse.de> * gimple-ssa-split-paths.c (is_feasible_trace): Remove duplicated code block. From-SVN: r267126
Richard Biener committed -
Masking CALL_LONG from the cookie was done in order to simplify and correct length attribute calculations for indirect calls at one point in my call series tidy when the indirect patterns used alternatives "0,n" on the cookie operand. (Leaving the CALL_LONG in place calculated the wrong length for long calls without fp args.) This is no longer necessary now that the indirect sysv call patterns explicitly test for the fp arg bits in their length attribute expressions. And without the CALL_LONG to disable insns like call_value_local_svsv, combine merrily replaces the indirect long call sequence with a direct call. As it should. This patch reinstates the CALL_LONG bit. PR rtl-optimization/88311 * config/rs6000/rs6000.c (rs6000_call_sysv): Do not mask cookie. (rs6000_sibcall_sysv): Likewise. From-SVN: r267123
Alan Modra committed -
The new insn here (temporarily) illegally shares RTL. This fixes it. PR rtl-optimization/88001 * function.c (match_asm_constraints_1): Don't invalidly share RTL. From-SVN: r267122
Segher Boessenkool committed -
* auto-profile.c (afdo_annotate_cfg): Call update_max_bb_count even if autofdo counts are all zeros. From-SVN: r267121
Bin Cheng committed -
* auto-profile.c (afdo_indirect_call): Skip generating histogram value for internal call. From-SVN: r267120
Bin Cheng committed -
* auto-profile.c (AFDO_EINFO): New macro. (class edge_info): New class. (is_edge_annotated, set_edge_annotated): Delete. (afdo_propagate_edge, afdo_propagate_circuit, afdo_propagate): Remove parameter. Adjust edge count computation and annotation using class edge_info. (afdo_calculate_branch_prob, afdo_annotate_cfg): Likewise. From-SVN: r267119
Bin Cheng committed -
* ipa-cp.c (print_all_lattices): Skip cp clones. * gcc.dg/lto/pr88297_0.c: New test. * gcc.dg/lto/pr88297_1.c: New test. From-SVN: r267118
Michael Ploujnikov committed -
From-SVN: r267117
GCC Administrator committed -
From-SVN: r267114
Michael Ploujnikov committed
-
- 13 Dec, 2018 29 commits
-
-
re PR tree-optimization/88444 (ICE: tree check: expected ssa_name, have integer_cst in live_on_edge, at tree-vrp.c:468; or ICE: tree check: expected ssa_name, have integer_cst in get_value_range, at vr-values.c:84) PR tree-optimization/88444 * tree-inline.c (fold_marked_statements): Iterate up to last_basic_block_for_fn rather than n_basic_blocks_for_fn. * gcc.dg/tree-ssa/pr88444.c: New test. From-SVN: r267113
Jakub Jelinek committed -
PR rtl-optimization/88470 * cfgcleanup.c (outgoing_edges_match): If the function is shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake edge to EXIT, return false. * gcc.target/i386/pr88470.c: New test. From-SVN: r267112
Jakub Jelinek committed -
gcc/ChangeLog: * doc/extend.texi: Consistently use @code for const and volatile qualifiers, the true and false constants, and asm statements. From-SVN: r267111
Martin Sebor committed -
2018-12-13 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/88414 * lra-int.h (lra_asm_error_p): New. * lra-assigns.c (lra_assign): Check lra_asm_error_p for checking call crossed pseudo assignment correctness. (lra_split_hard_reg_for): Set up lra_asm_error_p. * lra-constraints.c (curr_insn_transform): Ditto. * lra.c (lra_asm_error_p): New. (lra): Reset lra_asm_error_p. 2018-12-13 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/88414 * gcc.target/i386/pr88414.c: New. From-SVN: r267109
Vladimir Makarov committed -
* mangle.c (write_expression): Handle TARGET_EXPR and VIEW_CONVERT_EXPR. * pt.c (convert_nontype_argument): Don't call get_template_parm_object for value-dependent expressions. * g++.dg/cpp2a/nontype-class9.C: New test. From-SVN: r267108
Marek Polacek committed -
Fix path appending and concatenating to work correctly for a leading root-name. Check a new macro, SLASHSLASH_IS_ROOT_NAME, instead of making the behaviour depend directly on __CYGWIN__. * src/filesystem/std-path.cc (SLASHSLASH_IS_ROOT_NAME): New macro to control whether interpret paths with two slashes as a root-name. (path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Add a root-directory when appending to a root-name. (path::_M_append(basic_string_view<value_type>)) [SLASHSLASH_IS_ROOT_NAME]: Likewise. (path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Likewise. (path::_M_concat(basic_string_view<value_type>)) [SLASHSLASH_IS_ROOT_NAME]: Likewise. (path::lexically_normal()) [SLASHSLASH_IS_ROOT_NAME]: Use += instead of /= to add a root-directory to the result. * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Fix expected result for Cygwin. From-SVN: r267107
Jonathan Wakely committed -
This new implementation has a smaller footprint than the previous implementation, due to replacing std::vector<_Cmpt> with a custom pimpl type that only needs a single pointer. The _M_type enumeration is also combined with the pimpl type, by using a tagged pointer, reducing sizeof(path) further still. Construction and modification of paths is now done more efficiently, by splitting the input into a stack-based buffer of string_view objects instead of a dynamically-allocated vector containing strings. Once the final size is known only a single allocation is needed to reserve space for it. The append and concat operations no longer require constructing temporary path objects, nor re-parsing the entire native pathname. This results in algorithmic improvements to path construction, and working with large paths is much faster. PR libstdc++/71044 * include/bits/fs_path.h (path::path(path&&)): Add noexcept when appropriate. Move _M_cmpts instead of reparsing the native pathname. (path::operator=(const path&)): Do not define as defaulted. (path::operator/=, path::append): Call _M_append. (path::concat): Call _M_concat. (path::path(string_type, _Type): Change type of first parameter to basic_string_view<value_type>. (path::_M_append(basic_string_view<value_type>)): New member function. (path::_M_concat(basic_string_view<value_type>)): New member function. (_S_convert(value_type*, __null_terminated)): Return string view. (_S_convert(const value_type*, __null_terminated)): Return string view. (_S_convert(value_type*, value_type*)) (_S_convert(const value_type*, const value_type*)): Add overloads for pairs of pointers. (_S_convert(_InputIterator, __null_terminated)): Construct string_type explicitly, for cases where _S_convert returns a string view. (path::_S_is_dir_sep): Replace with non-member is_dir_sep. (path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir) (path::_M_add_filename): Remove. (path::_M_type()): New member function to replace _M_type data member. (path::_List): Define new struct type instead of using std::vector. (path::_Cmpt::_Cmpt(string_type, _Type, size_t)): Change type of first parameter to basic_string_view<value_type>. (path::operator+=(const path&)): Do not define inline. (path::operator+=(const string_type&)): Call _M_concat. (path::operator+=(const value_type*)): Likewise. (path::operator+=(value_type)): Likewise. (path::operator+=(basic_string_view<value_type>)): Likewise. (path::operator/=(const path&)): Do not define inline. (path::_M_append(path)): Remove. * python/libstdcxx/v6/printers.py (StdPathPrinter): New printer that understands the new path::_List type. * src/filesystem/std-path.cc (is_dir_sep): New function to replace path::_S_is_dir_sep. (path::_Parser): New helper class to parse strings as paths. (path::_List::_Impl): Define container type for path components. (path::_List): Define members. (path::operator=(const path&)): Define explicitly, to provide the strong exception safety guarantee. (path::operator/=(const path&)): Implement manually by processing each component of the argument, rather than using _M_split_cmpts to parse the entire string again. (path::_M_append(string_type)): Likewise. (path::operator+=(const path&)): Likewise. (path::_M_concat(string_type)): Likewise. (path::remove_filename()): Perform trim directly instead of calling _M_trim(). (path::_M_split_cmpts()): Rewrite in terms of _Parser class. (path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir) (path::_M_add_filename): Remove. * testsuite/27_io/filesystem/path/append/source.cc: Test appending a string view that aliases the path. testsuite/27_io/filesystem/path/concat/strings.cc: Test concatenating a string view that aliases the path. From-SVN: r267106
Jonathan Wakely committed -
PR rtl-optimization/88416 * valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify even if !AUTO_INC_DEC. * gcc.target/i386/pr88416.c: New test. From-SVN: r267105
Jakub Jelinek committed -
* config/rs6000/rs6000.c (rs6000_function_arg): Ensure type is non-NULL. (rs6000_arg_partial_bytes): Same. From-SVN: r267104
David Edelsohn committed -
libitm/ * config/powerpc/target.h (htm_available): Add support for PPC_FEATURE2_HTM_NO_SUSPEND. Use __builtin_cpu_supports if available. From-SVN: r267101
Peter Bergner committed -
Libgomp test-case libgomp.c/target-5.c is failing to compile when building for x86_64 with nvptx accelerator due to missing: - getpid - gethostname - isatty (pulled in by fwrite) in the nvptx newlib. This patch fixes the build failure by: - adding a function gomp_print_string which limits the use of fwrite to a single location (in affinity-fmt.c), and - creating an nvptx version of affinity-fmt.c, which: - overrides the configure test results HAVE_GETPID and HAVE_GETHOSTNAME, and - implements fwrite using write. Build and reg-tested on x86_64 with nvptx accelerator. 2018-12-13 Tom de Vries <tdevries@suse.de> * affinity-fmt.c (gomp_print_string): New function, factored out of ... (omp_display_affinity, gomp_display_affinity_thread): ... here, and ... * fortran.c (omp_display_affinity_): ... here. * libgomp.h (gomp_print_string): Declare. * config/nvptx/affinity-fmt.c: New file. Include affinity-fmt.c, undefining HAVE_GETPID and HAVE_GETHOSTNAME, and mapping fwrite to write. From-SVN: r267100
Tom de Vries committed -
* gdbinit.in (pp): New macro. (pbb): Remove. From-SVN: r267098
Jason Merrill committed -
re PR tree-optimization/88464 (AVX-512 vectorization of masked scatter failing with "not suitable for scatter store") PR tree-optimization/88464 * tree-vect-stmts.c (vect_build_gather_load_calls): Handle INTEGER_TYPE masktype if mask is non-NULL. (vectorizable_load): Don't reject masked gather loads if masktype in the decl is INTEGER_TYPE. * gcc.target/i386/avx512f-pr88462-1.c: New test. * gcc.target/i386/avx512f-pr88462-2.c: New test. From-SVN: r267097
Jakub Jelinek committed -
https://gcc.gnu.org/ml/gcc-patches/2018-12/msg00929.html PR c++/87531 * class.c (finish_struct): Set DECL_CONTEXT of template assign op. * name-lookup.c (get_class_binding_direct): Don't strip using-decl of overload here. * parser.c (cp_parser_postfix_expression): Cope with using decl in overload set. * semantics.c (finish_id_expr): Likewise. * g++.dg/lookup/pr87531-2.C: New. From-SVN: r267096
Nathan Sidwell committed -
PR testsuite/88041 * lib/gdc-dg.exp (gdc-dg-test): Strip gdc.test prefix. * gdc.test/gdc-test.exp (gdc-do-test): Create $subdir link. Include $subdir in filename. Cleanup generated source. * gdc.test/compilable/ddoc9676a.d (EXTRA_SOURCES): Don't use absolute path. * gdc.test/compilable/depsOutput9948.d: Likewise. From-SVN: r267094
Rainer Orth committed -
PR libgomp/88460 * testsuite/libgomp.c++/for-24.C (results): Include it in omp declare target region. (main): Use map (always, tofrom: results) instead of map (tofrom: results). From-SVN: r267093
Jakub Jelinek committed -
PR testsuite/88454 * gcc.dg/tree-ssa/split-path-5.c (__ctype_ptr__): Change type from const char * to const signed char *. (bmhi_init): Change pattern parameter's type the same. Use __builtin_strlen instead of undeclared strlen. From-SVN: r267092
Jakub Jelinek committed -
The normalized paths contain backslashes so fix the expected values to use backslashes too. * testsuite/27_io/filesystem/path/generation/proximate.cc: Use preferred directory separators for normalized paths. * testsuite/27_io/filesystem/path/generation/relative.cc: Likewise. From-SVN: r267090
Jonathan Wakely committed -
* testsuite/27_io/filesystem/path/itr/traversal.cc: Fix test for mingw. From-SVN: r267089
Jonathan Wakely committed -
The (unsigned) long int to double vector conversion instructions expect 2 immediate parameters. One for the inexact suppression control and another one for the rounding mode. However, the vec_double builtin has just the vector source operand. The 2 addtional operands need to be added with an intermediate expander. The expanders were already there but unfortunately not wired up correctly to the builtin. gcc/ChangeLog: 2018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> * config/s390/s390-builtins.def (s390_vec_double_s64): Map to s390_vec_double_s64 instead of s390_vcdgb. (s390_vec_double_u64): Map to s390_vec_double_u64 instead of s390_vcdlgb. gcc/testsuite/ChangeLog: 2018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> * gcc.target/s390/zvector/vec-double-1.c: New test. * gcc.target/s390/zvector/vec-double-2.c: New test. From-SVN: r267084
Andreas Krebbel committed -
2018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> * config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64") ("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT. ("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT. From-SVN: r267083
Andreas Krebbel committed -
* testsuite/27_io/filesystem/path/construct/80762.cc: Skip test if the Filesystem TS support is not configured. * testsuite/experimental/filesystem/path/construct/80762.cc: Likewise. From-SVN: r267082
Jonathan Wakely committed -
We've received reports about the -msve-vector-bits=128 bits being somewhat ambiguous. It isn't clear whether -msve-vector-bits=128 forces vector-length-agnostic code or whether -msve-vector-bits=scalable forces 128-bit vector-lengh-specific code. The latter is a, perhaps unintuitive, reading that we want to exclude. This patch makes it more explicit that -msve-vector-bits=128 is special and produces vector-length *agnostic* code. In the end, I've rewritten the whole option documentation. Checked make pdf that the output looks reasonable. * doc/invoke.texi (-msve-vector-bits): Clarify -msve-vector-bits=128 behavior. From-SVN: r267081
Kyrylo Tkachov committed -
gcc/ * common/config/i386/i386-common.c (processor_names): Add cascadelake. (processor_alias_table): Add cascadelake. * config.gcc: Add -march=cascadelake. * config/i386/i386-c.c (ix86_target_macros_internal): Handle cascadelake. * config/i386/i386.c (Add m_CASCADELAKE): New. (processor_cost_table): Add cascadelake. (get_builtin_code_for_version): Handle cascadelake. * config/i386/i386.h (TARGET_CASCADELAKE, PROCESSOR_CASCADELAKE): New. (PTA_CASCADELAKE): Ditto. * doc/invoke.texi: Add -march=cascadelake. gcc/testsuite/ * gcc.target/i386/funcspec-56.inc: Handle new march. From-SVN: r267080
Wei Xiao committed -
Part of RC12-001 From-SVN: r267079
Arnaud Charlet committed -
PR target/88465 * config/i386/i386.md (*movdi_internal, *movsi_internal, *movhi_internal, *movqi_internal): Add alternative(s) to load 0 or -1 into k registers using kxor or kxnoq instructions. * gcc.target/i386/avx512f-pr88465.c: New test. * gcc.target/i386/avx512dq-pr88465.c: New test. From-SVN: r267078
Jakub Jelinek committed -
PR target/88461 * config/i386/sse.md (VI1248_AVX512VLBW, AVX512ZEXTMASK): New mode iterators. (<avx512>_testm<mode>3<mask_scalar_merge_name>, <avx512>_testnm<mode>3<mask_scalar_merge_name>): Merge patterns with VI12_AVX512VL and VI48_AVX512VL iterators into ones with VI1248_AVX512VLBW iterator. (*<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext, *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask, *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext, *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask): New define_insns. * gcc.target/i386/pr88461.c: New test. From-SVN: r267077
Jakub Jelinek committed -
PR target/88461 * config/i386/i386.md (*zero_extendsidi2, zero_extend<mode>di2, *zero_extend<mode>si2, *zero_extendqihi2): Add =*k, *km alternatives. From-SVN: r267076
Jakub Jelinek committed -
From-SVN: r267074
GCC Administrator committed
-
- 12 Dec, 2018 2 commits
-
-
The type table encoding can be DW_EH_PE_absptr, but this case was missing, which was causing abort on ARM32 EABI. Add the missing case. Reviewed-on: https://go-review.googlesource.com/c/153857 From-SVN: r267070
Ian Lance Taylor committed -
re PR fortran/88463 (Rejects conforming source, OpenMP Parallel region Default(None) reference to module parameter array, separate source) PR fortran/88463 * trans-openmp.c (gfc_omp_predetermined_sharing): Handle TREE_READONLY VAR_DECLs with DECL_EXTERNAL like those with TREE_STATIC. * testsuite/libgomp.fortran/pr88463-1.f90: New test. * testsuite/libgomp.fortran/pr88463-2.f90: New test. From-SVN: r267069
Jakub Jelinek committed
-