- 09 Dec, 2018 11 commits
-
-
gcc/fortran/ * trans-openmp.c (gfc_trans_oacc_combined_directive): Set the location of combined acc loops. gcc/testsuite/ * gfortran.dg/goacc/combined-directives-3.f90: New file. Reviewed-by: Thomas Schwinge <thomas@codesourcery.com> From-SVN: r266924
Thomas Schwinge committed -
The C++ FE doesn't set the expr_location of the split acc loop in combined acc parallel/kernels loop directives. This only happens for with combined directives, otherwise cp_parser_omp_construct would be responsible for setting the location. After fixing this bug, I was able to resolve a couple of long standing diagnostics discrepancies between the C/C++ FEs in the test suite. gcc/cp/ * parser.c (cp_parser_oacc_kernels_parallel): Adjust EXPR_LOCATION on the combined acc loop. gcc/testsuite/ * c-c++-common/goacc/combined-directives-3.c: New test. * c-c++-common/goacc/loop-2-kernels.c (void K): Adjust test. * c-c++-common/goacc/loop-2-parallel.c (void P): Adjust test. * c-c++-common/goacc/loop-3.c (void p2): Adjust test. Reviewed-by: Thomas Schwinge <thomas@codesourcery.com> From-SVN: r266923
Cesar Philippidis committed -
Don't duplicate in the Fortran front end what's generically being checked in the middle end. gcc/fortran/ * openmp.c (resolve_oacc_loop_blocks): Remove checking of OpenACC loop clauses. gcc/testsuite/ * gfortran.dg/goacc/loop-2-kernels.f95: Update. * gfortran.dg/goacc/loop-2-parallel.f95: Likewise. * gfortran.dg/goacc/nested-parallelism.f90: Likewise. From-SVN: r266922
Thomas Schwinge committed -
gcc/testsuite/ * gfortran.dg/goacc/loop-2.f95: Split into... * gfortran.dg/goacc/loop-2-kernels-nested.f95: ... this new file... * gfortran.dg/goacc/loop-2-kernels-tile.f95: ..., and this new file... * gfortran.dg/goacc/loop-2-kernels.f95: ..., and this new file... * gfortran.dg/goacc/loop-2-parallel-3.f95: ..., and this new file... * gfortran.dg/goacc/loop-2-parallel-nested.f95: ..., and this new file... * gfortran.dg/goacc/loop-2-parallel-tile.f95: ..., and this new file... * gfortran.dg/goacc/loop-2-parallel.f95: ..., and this new file. From-SVN: r266921
Thomas Schwinge committed -
The Fortran front end declares that the OpenACC "Clause SEQ conflicts with INDEPENDENT". While that combination doesn't make too much sense indeed, it's still valid; these are orthogonal concepts. gcc/fortran/ PR fortran/88420 * openmp.c (resolve_oacc_loop_blocks): Remove "Clause SEQ conflicts with INDEPENDENT" diagnostic. gcc/testsuite/ PR fortran/88420 * gfortran.dg/goacc/loop-1-2.f95: Update. * gfortran.dg/goacc/loop-1.f95: Likewise. From-SVN: r266920
Thomas Schwinge committed -
libgomp/ * target.c (gomp_map_vars): Call gomp_copy_host2dev instead of devicep->host2dev_func. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r266919
Thomas Schwinge committed -
* ipa-cp.c (update_profiling_info): Call adjust_for_ipa_scaling for zero profile count. From-SVN: r266918
Bin Cheng committed -
2018-12-08 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88048 * resolve.c (check_data_variable): Named constant cannot be a data object. 2018-12-08 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88048 * gfortran.dg/pr88048.f90: New test. From-SVN: r266916
Steven G. Kargl committed -
PR fortran/87945 * decl.c (var_element): Inquiry parameters cannit be data objects. 20180-12-08 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/87945 * gfortran.dg/pr87945_1.f90: New test. * gfortran.dg/pr87945_2.f90: New test. From-SVN: r266915
Steven G. Kargl committed -
2018-12-08 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88025 * expr.c (gfc_apply_init): Remove asserts that cannot trigger. Check for a NULL pointer. 2018-12-08 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88025 * gfortran.dg/pr88025.f90: New test. From-SVN: r266913
Steven G. Kargl committed -
From-SVN: r266912
GCC Administrator committed
-
- 08 Dec, 2018 7 commits
-
-
I noticed I accidentally copied a line too many from the "volatile" handling to the "inline" handling. This fixes it. gcc/c/ * c-parser (c_parser_asm_statement) [RID_INLINE]: Delete stray line setting "quals". From-SVN: r266909
Segher Boessenkool committed -
2018-12-08 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88357 * class.c (insert_component_ref): Check for NULL pointer and previous error message issued. * parse.c (parse_associate): Check for NULL pointer. * resolve.c (resolve_assoc_var): Check for NULL pointer. 2018-12-08 Steven G. Kargl <kargl@gcc.gnu.org> * gfortran.dg/pr88357_1.f90: New test. * gfortran.dg/pr88357_2.f90: New test. From-SVN: r266908
Steven G. Kargl committed -
PR fortran/88304 * tree-nested.c (convert_local_reference_stmt): Handle clobbers where lhs is not a decl normally, don't call use_pointer_in_frame on that lhs. * gfortran.fortran-torture/compile/pr88304-2.f90: New test. From-SVN: r266907
Jakub Jelinek committed -
PR rtl-optimization/88390 * dwarf2cfi.c (struct dw_cfi_row): Add window_save field. (cfi_row_equal_p): Compare it. (dwarf2out_frame_debug_cfa_window_save): Add FAKE parameter. If FAKE is false, set window_save of the current row. (dwarf2out_frame_debug) <REG_CFA_TOGGLE_RA_MANGLE>: Call above function with FAKE parameter set to true. <REG_CFA_WINDOW_SAVE>: Likewise but with FAKE parameter set to false. (change_cfi_row): Emit a DW_CFA_GNU_window_save if necessary. From-SVN: r266906
Eric Botcazou committed -
* Makefile.am (AM_MAKEFLAGS): Pass CCASFLAGS, GDCFLAGS. * Makefile.in: Regenerate. From-SVN: r266905
Rainer Orth committed -
re PR libgomp/87995 (libgomp.c/../libgomp.c-c++-common/cancel-taskgroup-3.c fails consistently after r265930) PR libgomp/87995 * testsuite/libgomp.c-c++-common/cancel-taskgroup-3.c: Require tls_runtime effective target. (t): New threadprivate variable. (main): Set t in threads which execute iterations of the worksharing loop. Propagate that to the task after the loop and don't abort if the current taskgroup hasn't been cancelled. From-SVN: r266904
Jakub Jelinek committed -
From-SVN: r266903
GCC Administrator committed
-
- 07 Dec, 2018 16 commits
-
-
decl2.c (grokbitfield): Use DECL_SOURCE_LOCATION in error messages about bit-fields with function type... /cp 2018-12-07 Paolo Carlini <paolo.carlini@oracle.com> * decl2.c (grokbitfield): Use DECL_SOURCE_LOCATION in error messages about bit-fields with function type, warn_if_not_aligned type, and static bit-fields; avoid DECL_NAME for unnamed declarations. /testsuite 2018-12-07 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/other/bitfield7.C: New. * g++.dg/parse/bitfield8.C: Likewise. * g++.dg/parse/bitfield9.C: Likewise. * g++.dg/pr53037-4.C: Test the locations too. From-SVN: r266900
Paolo Carlini committed -
gcc/ PR target/87496 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow -mabi=ieeelongdouble and -mabi=ibmlongdouble without -mlong-double-128. Do not error for -mabi=ibmlongdouble and no ISA 2.06 support. * doc/invoke.texi: Document -mabi=ibmlongdouble and -mabi=ieeelongdouble require -mlong-double-128. gcc/testsuite/ PR target/87496 * gcc.target/powerpc/pr87496.c: Rename from this... * gcc.target/powerpc/pr87496-1.c: ...to this. Update comment. * gcc.target/powerpc/pr87496-2.c: New test. * gcc.target/powerpc/pr87496-3.c: New test. From-SVN: r266899
Peter Bergner committed -
On top of the previous patch that implements TARGET_ESTIMATED_POLY_VALUE and adds an sve_width tuning field to the CPU structs, this patch implements an -moverride knob to adjust this sve_width field to allow for experimentation. Again, reminder that this only has an effect when compiling for VLA-SVE that is, without msve-vector-bits=<foo>. This just adjusts tuning heuristics in the compiler,, like profitability thresholds for vectorised versioned loops, and others. It can be used, for example like -moverride=sve_width=256 to set the sve_width tuning field to 256. Widths outside of the accepted SVE widths [128 - 2048] are rejected as you'd expect. * config/aarch64/aarch64.c (aarch64_tuning_override_functions): Add sve_width entry. (aarch64_parse_sve_width_string): Define. * gcc.target/aarch64/sve/override_sve_width_1.c: New test. From-SVN: r266898
Kyrylo Tkachov committed -
* gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Add m_update_global_ranges member. Add corresponding argument to ctor. * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer): Add new argument and initialize m_update_global_ranges. (evrp_range_analyzer::set_ssa_range_info): Assert that we are updating global ranges. (evrp_range_analyzer::record_ranges_from_incoming_edge): Only update global ranges if explicitly requested. (evrp_range_analyzer::record_ranges_from_phis): Similarly. (evrp_range_analyzer::record_ranges_from_stmt): Similarly. * gimple-ssa-evrp.c (evrp_dom_walker): Pass new argument to evrp_range_analyzer ctor. * gimple-ssa-sprintf.c (sprintf_dom_walker): Similarly. * tree-ssa-dom.c (dom_opt_dom_walker): Similarly. * gcc.c-torture/builtins/strnlen.x: New file to filter -Og from options to test. From-SVN: r266897
Jeff Law committed -
The hook TARGET_ESTIMATED_POLY_VALUE allows a target to give an estimate for a poly_int run-time value. It is used exclusively in tuning decisions, things like estimated loop iterations, probabilities etc. It is not relied on for correctness. If we know the SVE width implemented in hardware we can make more more informed decisions in the implementation of TARGET_ESTIMATED_POLY_VALUE, even when compiling for VLA vectorisation. This patch adds an sve_width field to our tuning structs and sets it for the current CPU tunings. A new value is introduced to the aarch64_sve_vector_bits_enum enum that indicates that SVE is not available: SVE_NOT_IMPLEMENTED. I set it to the same value as SVE_SCALABLE so that parts of the aarch64 backend that follow the pattern: if (vector_width == SVE_SCALABLE) do_vla_friendly_action () else assume_specific_width_for_correctness () continue to work without change, but the CPU tuning structs can use a more appropriate moniker for indicating the absence of SVE. This sets sve_width to SVE_NOT_IMPLEMENTED for all cores. I aim to add an -moverride switch in the next patch that allows a power user to experiment with different values of it for investigations. * config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): Add SVE_NOT_IMPLEMENTED value. * config/aarch64/aarch64-protos.h (struct tune_params): Add sve_width field. * config/aarch64/aarch64.c (generic_tunings,cortexa35_tunings, cortexa53_tunings, cortexa57_tunings, cortexa72_tunings, cortexa73_tunings, exynosm1_tunings, thunderx_tunings, thunderx_tunings, tsv110_tunings, xgene1_tunings, qdf24xx_tunings, saphira_tunings, thunderx2t99_tunings, emag_tunings): Specify sve_width. (aarch64_estimated_poly_value): Define. (TARGET_ESTIMATED_POLY_VALUE): Define. From-SVN: r266896
Kyrylo Tkachov committed -
A recent patch inadvertently added the use of "vector" to mmintrin.h when all such uses should be "__vector". [gcc] 2018-12-07 Paul A. Clarke <pc@us.ibm.com> PR target/88408 * config/rs6000/mmintrin.h (_mm_packs_pu16): Correctly use "__vector". From-SVN: r266895
Paul A. Clarke committed -
2018-12-07 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/88349 * ira-costs.c (record_operand_costs): Check bigger reg class on NO_REGS. 2018-12-07 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/88349 * gcc.target/mips/pr88349.c: New. From-SVN: r266894
Vladimir Makarov committed -
PR c++/86669 * call.c (make_temporary_var_for_ref_to_temp): Call pushdecl even for automatic vars. * g++.dg/cpp0x/initlist105.C: New test. * g++.dg/cpp0x/initlist106.C: New test. * g++.dg/other/pr86669.C: New test. From-SVN: r266893
Jakub Jelinek committed -
When using the unpredicated immediate forms of MUL, LSL, LSR and ASR, the rtl patterns would still have the predicate operand we created for the other forms. This patch splits the patterns after reload in order to get rid of the predicate, like we already do for WHILE. 2018-12-07 Richard Sandiford <richard.sandiford@arm.com> gcc/ * config/aarch64/aarch64-sve.md (*mul<mode>3, *v<optab><mode>3): Split the patterns after reload if we don't need the predicate operand. (*post_ra_mul<mode>3, *post_ra_v<optab><mode>3): New patterns. gcc/testsuite/ * gcc.target/aarch64/sve/pred_elim_2.c: New test. From-SVN: r266892
Richard Sandiford committed -
When using the unpredicated all-register forms of FADD, FSUB and FMUL, the rtl patterns would still have the predicate operand we created for the other forms. This patch splits the patterns after reload in order to get rid of the predicate, like we already do for WHILE. 2018-12-07 Richard Sandiford <richard.sandiford@arm.com> gcc/ * config/aarch64/iterators.md (SVE_UNPRED_FP_BINARY): New code iterator. (sve_fp_op): Handle minus and mult. * config/aarch64/aarch64-sve.md (*add<mode>3, *sub<mode>3) (*mul<mode>3): Split the patterns after reload if we don't need the predicate operand. (*post_ra_<sve_fp_op><mode>3): New pattern. gcc/testsuite/ * gcc.target/aarch64/sve/pred_elim_1.c: New test. From-SVN: r266891
Richard Sandiford committed -
Path from Rainer Orth. Reviewed-on: https://go-review.googlesource.com/c/153118 From-SVN: r266890
Ian Lance Taylor committed -
From-SVN: r266889
Rainer Orth committed -
* gcc.target/i386/ipa-stack-alignment-2.c: Add -fomit-frame-pointer to dg-options. From-SVN: r266888
Rainer Orth committed -
Add a recursion limit to libiberty's demangling code. The limit is enabled by default, but can be disabled via a new demangling option. include * demangle.h (DMGL_NO_RECURSE_LIMIT): Define. (DEMANGLE_RECURSION_LIMIT): Define PR 87681 PR 87675 PR 87636 PR 87350 PR 87335 libiberty * cp-demangle.h (struct d_info): Add recursion_level field. * cp-demangle.c (d_function_type): Add recursion counter. If the recursion limit is reached and the check is not disabled, then return with a failure result. (cplus_demangle_init_info): Initialise the recursion_level field. (d_demangle_callback): If the recursion limit is enabled, check for a mangled string that is so long that there is not enough stack space for the local arrays. * cplus-dem.c (struct work): Add recursion_level field. (squangle_mop_up): Set the numb and numk fields to zero. (work_stuff_copy_to_from): Handle the case where a btypevec or ktypevec field is NULL. (demangle_nested_args): Add recursion counter. If the recursion limit is not disabled and reached, return with a failure result. From-SVN: r266886
Nick Clifton committed -
profile-count.h (profile_count::oeprator>=): Fix typo by inverting return condition when *this is precise zero. * profile-count.h (profile_count::oeprator>=): Fix typo by inverting return condition when *this is precise zero. From-SVN: r266885
Bin Cheng committed -
From-SVN: r266884
GCC Administrator committed
-
- 06 Dec, 2018 6 commits
-
-
re PR target/85593 (GCC on ARM allocates R3 for local variable when calling naked function with O2 optimizations enabled) PR target/85593 * final.c (rest_of_handle_final): Don't call collect_fn_hard_reg_usage for functions with naked attribute. * gcc.target/i386/pr85593.c: New test. From-SVN: r266881
Jakub Jelinek committed -
re PR rtl-optimization/85770 (ICE: in lra_eliminate, at lra-eliminations.c:1439 with -march=nano-1000) PR rtl-optimization/85770 * gcc.target/i386/pr85770.c: Require int128 effective target. From-SVN: r266880
Jakub Jelinek committed -
PR fortran/88377 * trans-openmp.c (gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op, gfc_omp_clause_linear_ctor, gfc_omp_clause_dtor): Only consider GFC_DECL_GET_SCALAR_ALLOCATABLE vars as scalar allocatables if they have pointer type. * gfortran.dg/gomp/pr88377.f90: New test. From-SVN: r266879
Jakub Jelinek committed -
PR c/88367 * tree-vrp.c (extract_range_from_binary_expr): For POINTER_PLUS_EXPR with -fno-delete-null-pointer-checks, set_nonnull only if the pointer is non-NULL and offset is known to have most significant bit clear. * vr-values.c (vr_values::vrp_stmt_computes_nonzero): For ADDR_EXPR of MEM_EXPR, return true if the MEM_EXPR has non-zero offset with most significant bit clear. If offset does have most significant bit set and -fno-delete-null-pointer-checks, don't return true even if the base pointer is non-NULL. * gcc.dg/tree-ssa/pr88367.c: New test. From-SVN: r266878
Jakub Jelinek committed -
PR c++/87506 * constexpr.c (adjust_temp_type): Handle EMPTY_CLASS_EXPR. * g++.dg/cpp0x/constexpr-87506.C: New test. From-SVN: r266877
Jakub Jelinek committed -
/cp 2018-12-06 Paolo Carlini <paolo.carlini@oracle.com> * class.c (check_bitfield_decl): In error message about non-integral type print the type itself too. * decl.c (grokdeclarator): Do not ICE on unnamed bit-fields declared friends; when calling build_decl for a FIELD_DECL possibly pass the declarator->id_loc. /testsuite 2018-12-06 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/parse/bitfield7.C: New. * g++.dg/other/bitfield2.C: Check location and type. * g++.dg/parse/bitfield1.C: Likewise. * g++.dg/parse/bitfield2.C: Likewise. From-SVN: r266876
Paolo Carlini committed
-