- 19 Nov, 2018 18 commits
-
-
As work towards fixing PR tree-optimization/87025, this patch eliminates global state from optinfo-emit-json.cc in favor of adding an optional m_json_writer field to dump_context, replacing the m_forcibly_enable_optinfo flag. This allows for writing selftests for the interaction of the JSON-building code with the dumpfile.c code. In particular, the existing selftest that created optinfo instances now exercise the JSON-building code (although no JSON is actually written out). The patch also simplifies the layering by replacing optinfo::emit () with dump_context::emit_optinfo, so that dump_context has responsibility for keeping track of dump destinations. gcc/ChangeLog: PR tree-optimization/87025 * dump-context.h: Include "optinfo.h". (class optrecord_json_writer): New forward decl. (dump_context::forcibly_enable_optinfo_p): Delete. (dump_context::optinfo_enabled_p): New member function. (dump_context::optimization_records_enabled_p): New member function. (dump_context::set_json_writer): New member function. (dump_context::emit_optinfo): New member function. (dump_context::m_forcibly_enable_optinfo): Delete. (dump_context::m_json_writer): New member data. * dumpfile.c (dump_context::set_json_writer): New member function. (dump_context::finish_any_json_writer): New member function. (dump_context::end_scope): Replace call to optimization_records_maybe_pop_dump_scope with call to m_json_writer->pop_scope. (dump_context::optinfo_enabled_p): New member function. (dump_context::end_any_optinfo): Replace call to optinfo::emit with call to dump_context::emit_optinfo. (dump_context::emit_optinfo): New member function. (temp_dump_context::temp_dump_context): Replace m_forcibly_enable_optinfo with call to set_json_writer. (temp_dump_context::~temp_dump_context): Clean up any json writer. * optinfo-emit-json.cc (class optrecord_json_writer): Move to optinfo-emit-json.h (the_json_writer): Delete. (optimization_records_start): Delete. (optimization_records_finish): Delete. (optimization_records_enabled_p): Delete, in favor of dump_context::optimization_records_enabled_p. (optimization_records_maybe_record_optinfo): Delete. (optimization_records_maybe_pop_dump_scope): Delete. * optinfo-emit-json.h: Include "json.h". Delete forward decl of opt_pass. (optimization_records_start): Delete. (optimization_records_finish): Delete. (optimization_records_enabled_p): Delete. (optimization_records_maybe_record_optinfo): Delete. (optimization_records_maybe_pop_dump_scope): Delete. (class optrecord_json_writer): Move here from optinfo-emit-json.cc. * optinfo.cc (optinfo::emit_for_opt_problem): Replace call to optinfo::emit with call to dump_context::emit_optinfo. (optinfo::emit): Delete, in favor of dump_context::emit_optinfo. (optinfo_enabled_p): Delete, in favor of dump_context::optinfo_enabled_p. (optinfo_wants_inlining_info_p): Update for conversion o optimization_records_enabled_p to a member function of dump_context. * optinfo.h (optinfo_enabled_p): Delete, in favor of dump_context::optinfo_enabled_p. (optinfo::emit): Delete, in favor of dump_context::emit_optinfo. * toplev.c: Include "dump-context.h". (compile_file): Replace call to optimization_records_finish with dump_context::finish_any_json_writer. (do_compile): Replace call to optimization_records_start with conditionally creating a optrecord_json_writer for the dump_context. From-SVN: r266279
David Malcolm committed -
re PR libstdc++/87855 (std::optional<T> only copy-constructible if T is trivially copy-constructible) PR libstdc++/87855 Also implement P0602R4 (variant and optional should propagate copy/move triviality) for std::optional. * include/std/optional (_Optional_payload): Change the main constraints to check constructibility in addition to assignability. (operator=): Make constexpr. (_M_reset): Likewise. (_M_construct): Likewise. (operator->): Likewise. * testsuite/20_util/optional/assignment/8.cc: Adjust. * testsuite/20_util/optional/assignment/9.cc: New. From-SVN: r266278
Ville Voutilainen committed -
2018-11-19 Martin Liska <mliska@suse.cz> PR lto/88077 * lto-symtab.c (lto_symtab_merge): Transform the condition before r256989. 2018-11-19 Martin Liska <mliska@suse.cz> PR lto/88077 * gcc.dg/lto/pr88077_0.c: New test. * gcc.dg/lto/pr88077_1.c: New test. From-SVN: r266277
Martin Liska committed -
PR tree-optimization/88071 * tree-vect-loop.c (vectorize_fold_left_reduction): Pass true instead of false as last argument to gsi_remove. * tree-vect-stmts.c (vect_finish_replace_stmt): Pass true instead of false as last argument to gsi_replace. * gcc.dg/pr88071.c: New test. From-SVN: r266276
Jakub Jelinek committed -
PR c++/60994 * g++.dg/lookup/pr60994.C: New test. From-SVN: r266275
Jakub Jelinek committed -
PR debug/87039 * omp-expand.c: Don't include debug.h. (adjust_context_and_scope): Add REGION argument. Find DECL_CONTEXT from innermost outer parallel, task, teams or target that has a child_fn set, or, if there is no such outer region, use current_function_decl. Do the DECL_CONTEXT adjustment regardless of whether a suitable BLOCK is found or not. (expand_parallel_call, expand_teams_call): Don't call adjust_context_and_scope here. (grid_expand_target_grid_body): Revert 2017-01-25 changes. (expand_omp_taskreg, expand_omp_target): Likewise. Call adjust_context_and_scope. * dwarf2out.c (dwarf2out_early_global_decl): For decl_function_context recurse instead of calling dwarf2out_decl. * g++.dg/gomp/pr78363-4.C: New test. * g++.dg/gomp/pr78363-5.C: New test. * g++.dg/gomp/pr78363-6.C: New test. * g++.dg/gomp/pr78363-7.C: New test. From-SVN: r266272
Jakub Jelinek committed -
2018-11-19 Richard Biener <rguenther@suse.de> PR lto/87229 * tree.c (free_lang_data_in_one_sizepos): Free non-gimple-val sizepos values. * g++.dg/lto/pr87229_0.C: New testcase. From-SVN: r266271
Richard Biener committed -
2018-11-19 Martin Liska <mliska@suse.cz> * g++.dg/gcov/pr84548.C: Remove remove-gcda. * g++.dg/gcov/ternary.C: Likewise. * lib/gcov.exp: Support pattern of following form: count(1*). From-SVN: r266270
Martin Liska committed -
* include/std/string_view (basic_string_view::copy): Use traits to copy. * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc: New test. * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc: New test. From-SVN: r266269
Jonathan Wakely committed -
* compare-elim.c (struct comparison): Add not_in_a field. (is_not): New static function. (strip_not): Likewise. (conforming_compare): Handle a NOT in the first operand. (can_eliminate_compare): Likewise. (find_comparison_dom_walker::before_dom_children): Likewise. (try_eliminate_compare): Likewise. * config/visium/visium.md (negsi2_insn_set_carry): Turn into... (neg<mode>2_insn_set_carry): ...this and add missing NEG operation. From-SVN: r266268
Eric Botcazou committed -
* doc/extend.texi (Common Type Attributes): Fix typos. From-SVN: r266267
Jonathan Wakely committed -
From-SVN: r266266
Eric Botcazou committed -
From-SVN: r266265
Eric Botcazou committed -
decl2.c (grokfield): Remove obsolete _vptr check; fix explicit template argument list error location. /cp 2018-11-18 Paolo Carlini <paolo.carlini@oracle.com> * decl2.c (grokfield): Remove obsolete _vptr check; fix explicit template argument list error location. /testsuite 2018-11-18 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/template/crash91.C: Check location too. From-SVN: r266264
Paolo Carlini committed -
2018-11-19 Martin Liska <mliska@suse.cz> PR gcov-profile/88045 * coverage.c (coverage_begin_function): Add assert. 2018-11-19 Martin Liska <mliska@suse.cz> PR gcov-profile/88045 * g++.dg/gcov/pr88045.C: New test. From-SVN: r266262
Martin Liska committed -
2018-11-19 Martin Liska <mliska@suse.cz> * check_GNU_style_lib.py: Detect mixed usage of spaces and tabs. From-SVN: r266261
Martin Liska committed -
2018-11-18 Sandra Loosemore <sandra@codesourcery.com> PR other/40498 gcc/ * doc/extend.texi (Common Function Attributes): Document that no_instrument_function applies to -p and -pg, too. * doc/invoke.texi (Instrumentation Options): Add cross-references to docs for -p, -pg, and -finstrument-functions. From-SVN: r266260
Sandra Loosemore committed -
From-SVN: r266259
GCC Administrator committed
-
- 18 Nov, 2018 9 commits
-
-
libphobos/ChangeLog: 2018-11-19 Iain Buclaw <ibuclaw@gdcproject.org> * src/Makefile.am: Remove std.internal.digest.sha_SSSE3 and std.internal.math.biguintx86 modules. * src/Makefile.in: Rebuild. * src/std/internal/digest/sha_SSSE3.d: Remove. * src/std/internal/math/biguintx86.d: Remove. From-SVN: r266256
Iain Buclaw committed -
2018-11-16 Michele Pezzutti <mpezz@tiscali.it> Edward Smith-Rowland <3dw4rd@verizon.net> PR libstdc++/83566 - cyl_bessel_j returns wrong result for x>1000 for high orders. * include/tr1/bessel_function.tcc: Perform no fewer than nu/2 iterations of the asymptotic series (nu is the Bessel order). * testsuite/tr1/5_numerical_facilities/special_functions/ 09_cyl_bessel_j/check_value.cc: Add tests at nu=100, 1000<=x<=2000. * testsuite/tr1/5_numerical_facilities/special_functions/ 11_cyl_neumann/check_value.cc: Ditto. * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: Ditto. * testsuite/special_functions/10_cyl_neumann/check_value.cc: Ditto. Co-Authored-By: Edward Smith-Rowland <3dw4rd@verizon.net> From-SVN: r266252
Michele Pezzutti committed -
2018-11-18 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/88073 * frontend-passes.c (combine_array_constructor): Do not do anything if in a WHERE statement. 2018-11-18 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/88073 * gfortran.dg/where_7.f90: New test. From-SVN: r266251
Thomas Koenig committed -
Also give target access to the gnu-user.h LINK_GCC_C_SEQUENCE_SPEC. * config/gnu-user.h (GNU_USER_TARGET_CRTI): Define. (GNU_USER_TARGET_STARTFILE_SPEC): Use it here. (GNU_USER_TARGET_CRTN): Define. (GNU_USER_TARGET_ENDFILE_SPEC): Use it here. (GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Define. From-SVN: r266250
Alan Modra committed -
The HAVE_LD_PIE variant doesn't contain anything that will break linking when !HAVE_LD_PIE that isn't already broken if you choose to build PIEs with a linker that doesn't support PIE. All this HAVE_LD_PIE protects is the choice of different crt files, which is more about libc capability than linker capability. * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Delete !HAVE_LD_PIE variant. (GNU_USER_TARGET_ENDFILE_SPEC): Likewise. From-SVN: r266249
Alan Modra committed -
2018-11-18 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/70260 * expr.c (gfc_check_assign): Reject assigning to an external symbol. (gfc_check_pointer_assign): Add suppress_type_test argument. Insert line after if. A non-proc pointer can not point to a constant. Only check types if suppress_type_test is false. * gfortran.h (gfc_check_pointer_assign): Add optional suppress_type_test argument. * resolve.c (gfc_resolve_code): Move up gfc_check_pointer_assign and give it the extra argument. (resolve_fl_procedure): Set error on value for a function with an inizializer. 2018-11-18 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/70260 * gfortran.dg/proc_ptr_result_5.f90: Add dg-error directive. * gfortran.dg/protected_4.f90: Split line to allow for extra error. * gfortran.dg/protected_6.f90: Likewise. * gfortran.dg/assign_11.f90: New test. * gfortran.dg/pointer_assign_12.f90: New test. From-SVN: r266248
Thomas Koenig committed -
From-SVN: r266247
Nick Clifton committed -
2018-11-17 Eric Gallager <egallager@gcc.gnu.org> Sandra Loosemore <sandra@codesourcery.com> PR driver/31357 gcc/ * doc/invoke.texi (Overall Options): Document that --help and --help=<value> options cannot be combined. Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com> From-SVN: r266246
Nick Clifton committed -
From-SVN: r266245
GCC Administrator committed
-
- 17 Nov, 2018 13 commits
-
-
Define the thread-safe pool resource, using a shared_mutex to allow multiple threads to concurrently allocate from thread-specific pools. Define new weak symbols for the pthread_rwlock_t functions, to avoid making libstdc++.so depend on libpthread.so When the necessary Gthread support is absent only define the feature-test macro to 1, rather than 201603. This is intended to imply incomplete support, because everything except synchronized_pool_resource works. Implement std::pmr::synchronized_pool_resource * config/abi/pre/gnu.ver: Add new symbols. * include/std/memory_resource [_GLIBCXX_HAS_GTHREADS] (__cpp_lib_memory_resource): Define to expected value, 201603. (synchronized_pool_resource): New class. [!_GLIBCXX_HAS_GTHREADS] (__cpp_lib_memory_resource): Define to 1. * include/std/shared_mutex (__glibcxx_rwlock_rdlock) (__glibcxx_rwlock_tryrdlock, __glibcxx_rwlock_wrlock) (__glibcxx_rwlock_trywrlock, __glibcxx_rwlock_unlock) (__glibcxx_rwlock_destroy, __glibcxx_rwlock_init) (__glibcxx_rwlock_timedrdlock, __glibcxx_rwlock_timedwrlock): Define weak symbols for POSIX rwlock functions. (__shared_mutex_pthread): Use weak symbols. * include/std/version (__cpp_lib_memory_resource): Define. * src/c++17/memory_resource.cc [_GLIBCXX_HAS_GTHREADS] (synchronized_pool_resource::_TPools): New class. (destroy_TPools): New function for pthread_key_create destructor. (synchronized_pool_resource::synchronized_pool_resource) (synchronized_pool_resource::~synchronized_pool_resource) (synchronized_pool_resource::release) (synchronized_pool_resource::do_allocate) (synchronized_pool_resource::do_deallocate): Define public members. (synchronized_pool_resource::_M_thread_specific_pools) (synchronized_pool_resource::_M_alloc_tpools) (synchronized_pool_resource::_M_alloc_shared_tpools): Define private members. * testsuite/20_util/synchronized_pool_resource/allocate.cc: New test. * testsuite/20_util/synchronized_pool_resource/cons.cc: New test. * testsuite/20_util/synchronized_pool_resource/is_equal.cc: New test. * testsuite/20_util/synchronized_pool_resource/multithreaded.cc: New test. * testsuite/20_util/synchronized_pool_resource/release.cc: New test. * testsuite/performance/20_util/memory_resource/pools.cc: Add multithreaded tests using pmr::synchronized_pool_resource. From-SVN: r266242
Jonathan Wakely committed -
gcc/ * config/riscv/riscv.c (epilogue_cfa_sp_offset): New. (riscv_restore_reg): If restoring HARD_FRAME_POINTER_REGNUM, and epilogue_cfa_sp_offset set, then add REG_CFA_DEF_CFA regnote. (riscv_expand_epilogue): Initialize epilogue_cfa_sp_offset. Set it to step2 if frame_pointer_needed and step1 is 0. From-SVN: r266241
Jim Wilson committed -
2018-11-17 Sandra Loosemore <sandra@codesourcery.com> PR c++/4225 gcc/ * doc/cpp.texi (System Headers): Add note about implicit extern "C" block on targets that define SYSTEM_IMPLICIT_EXTERN_C. From-SVN: r266240
Sandra Loosemore committed -
2018-11-17 Sandra Loosemore <sandra@codesourcery.com> PR c++/4025 gcc/ * doc/invoke.texi (C++ Dialect Options): Clarify usage of -fno-implicit-templates. From-SVN: r266239
Sandra Loosemore committed -
Backport from upstream phobos 2.079 for AArch64. Reviewed-on: https://github.com/dlang/phobos/pull/5965 From-SVN: r266238
Iain Buclaw committed -
PR tree-optimization/87546 * tree-vect-patterns.c (vect_look_through_possible_promotion): Add min_precision variable, initially set it to orig_precision, only does something if op_type's precision is <= min_precision and update min_precision whenever calling set_op. * gcc.dg/vect/O3-pr87546.c: New test. From-SVN: r266237
Jakub Jelinek committed -
PR rtl-optimization/88018 * cfgrtl.c (fixup_abnormal_edges): Guard moving insns to fallthru edge on the presence of fallthru edge, rather than if it is a USE or not. * g++.dg/tsan/pr88018.C: New test. From-SVN: r266236
Jakub Jelinek committed -
re PR ipa/87957 (ICE tree check: expected tree that contains ‘decl minimal’ structure, have ‘identifier_node’ in warn_odr, at ipa-devirt.c:1051 since r265519) PR ipa/87957 * ipa-devirt.c (warn_odr): Look for main variant to get TYPE_DECL. From-SVN: r266235
Jan Hubicka committed -
The D language expects the value to be the minimum alignment required for the type, not the preferred alignment. gcc/d/ChangeLog: 2018-11-17 Iain Buclaw <ibuclaw@gdcproject.org> PR d/87824 * d-target.cc (Target::alignsize): Return min_align_of_type. From-SVN: r266234
Iain Buclaw committed -
2018-11-16 Sandra Loosemore <sandra@codesourcery.com> gcc/ * doc/invoke.texi (Option Summary): Fix whitespace and line breaks in @gccoptlist environments. (Warning Options): Likewise. (Optimize Options): Likewise. (PowerPC SPE Options): Likewise. (RS/6000 and PowerPC Options): Likewise. From-SVN: r266233
Sandra Loosemore committed -
* config/mn10300/mn10300.md (adddi3_degenerate): Remove bogus gcc_assert. From-SVN: r266232
Jeff Law committed -
2018-11-16 Sandra Loosemore <sandra@codesourcery.com> PR middle-end/23197 gcc/ * doc/invoke.texi (Optimize Options): Update options enabled by fprofile-generate, -fprofile-use, and -fauto-profile. From-SVN: r266231
Sandra Loosemore committed -
2018-11-17 Jozef Lawrynowicz <jozef.l@mittosystems.com> PR middle-end/87854 * g++.dg/parse/concat1.C: Add dg-error for targets with size_t < 32 bits. Update comment. * gcc.dg/concat2.c: Likewise. * gcc.c-torture/compile/pr46534.c: Likewise. From-SVN: r266230
Jozef Lawrynowicz committed
-