- 08 Feb, 2018 9 commits
-
-
2018-02-08 Martin Jambor <mjambor@suse.cz> * testsuite/libgomp.hsa.c/pr82416.c: Make the function with target clonable. From-SVN: r257485
Martin Jambor committed -
2018-02-08 Martin Jambor <mjambor@suse.cz> * hsa-gen.c (get_symbol_for_decl): Set program allocation for static local variables. libgomp/ * testsuite/libgomp.hsa.c/staticvar.c: New test. From-SVN: r257484
Martin Jambor committed -
2018-02-08 Richard Biener <rguenther@suse.de> PR tree-optimization/84278 * tree-vect-stmts.c (vectorizable_store): When looking for smaller vector types to perform grouped strided loads/stores make sure the mode is supported by the target. (vectorizable_load): Likewise. * gcc.target/i386/pr84278.c: New testcase. From-SVN: r257483
Richard Biener committed -
The shrinkwrap optimization added in GCC 7 allows each callee-save to be delayed and done only across blocks which need a particular callee-save. Although this reduces unnecessary memory traffic on code paths that need few callee-saves, it typically uses LDR/STR rather than LDP/STP. This means more memory accesses and increased codesize, ~1.0% on average. To improve this, if a particular callee-save must be saved/restored, also add the adjacent callee-save to allow use of LDP/STP. This significantly reduces codesize (for example gcc_r, povray_r, parest_r, xalancbmk_r are 1% smaller). This is a simple fix which can be backported. A more advanced approach would scan blocks for pairs of callee-saves, but that requires a full rewrite of all the callee-save code which is too late at this stage. An example epilog in a shrinkwrapped function before: ldp x21, x22, [sp,#16] ldr x23, [sp,#32] ldr x24, [sp,#40] ldp x25, x26, [sp,#48] ldr x27, [sp,#64] ldr x28, [sp,#72] ldr x30, [sp,#80] ldr d8, [sp,#88] ldp x19, x20, [sp],#96 ret And after this patch: ldr d8, [sp,#88] ldp x21, x22, [sp,#16] ldp x23, x24, [sp,#32] ldp x25, x26, [sp,#48] ldp x27, x28, [sp,#64] ldr x30, [sp,#80] ldp x19, x20, [sp],#96 ret gcc/ * config/aarch64/aarch64.c (aarch64_components_for_bb): Increase LDP/STP opportunities by adding adjacent callee-saves. From-SVN: r257482
Wilco Dijkstra committed -
The comparison function for SCHED_PRESSURE_MODEL is incorrect. If either instruction is not in target_bb, the ordering is not well defined. Since all instructions outside the target_bb get the highest model_index, all we need to do is sort on model_index. If the model_index is the same we defer to RFS_DEP_COUNT and/or RFS_TIE. gcc/ PR rtl-optimization/84068 PR rtl-optimization/83459 * haifa-sched.c (rank_for_schedule): Fix SCHED_PRESSURE_MODEL sorting. gcc/testsuite PR rtl-optimization/84068 PR rtl-optimization/83459 * gcc.dg/pr84068.c: New test. From-SVN: r257481
Wilco Dijkstra committed -
PR tree-optimization/84224 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Remove assert. * calls.c (gimple_alloca_call_p): Only return TRUE when we have non-zero arguments. From-SVN: r257480
Aldy Hernandez committed -
2018-02-08 Richard Biener <rguenther@suse.de> * g++.dg/vect/slp-pr56812.cc: Allow either basic-block or loop vectorization to happen. From-SVN: r257479
Richard Biener committed -
/cp 2018-02-08 Paolo Carlini <paolo.carlini@oracle.com> PR c++/83204 * pt.c (tsubst_copy_and_build): Use force_paren_expr for INDIRECT_REF. /testsuite 2018-02-08 Paolo Carlini <paolo.carlini@oracle.com> PR c++/83204 * g++.dg/cpp0x/lambda/lambda-ice25.C: New. From-SVN: r257478
Paolo Carlini committed -
From-SVN: r257477
GCC Administrator committed
-
- 07 Feb, 2018 31 commits
-
-
install.texi (Configuration): Document the --with-long-double-format={ibm,ieee} PowerPC configuration options. 2018-02-07 Michael Meissner <meissner@linux.vnet.ibm.com> * doc/install.texi (Configuration): Document the --with-long-double-format={ibm,ieee} PowerPC configuration options. From-SVN: r257473
Michael Meissner committed -
2018-02-07 Iain Sandoe <iain@codesourcery.com> * config/rs6000/altivec.md (*restore_world): Remove LR use. * config/rs6000/predicates.md (restore_world_operation): Adjust op count, remove one USE. From-SVN: r257472
Iain Sandoe committed -
[testsuite] 2018-02-07 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/vsxcopy.c: Update scan-assembler stanzas. From-SVN: r257471
Will Schmidt committed -
re PR target/84154 (PowerPC GCC 7 and 8 have regression in converting fp to short/char and returning it) [gcc] 2018-02-07 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/84154 * config/rs6000/rs6000.md (fix_trunc<SFDF:mode><QHI:mode>2): Convert from define_expand to be define_insn_and_split. Rework float/double/_Float128 conversions to QI/HI/SImode to work with both ISA 2.07 (power8) or ISA 3.0 (power9). Fix regression where conversions to QI/HImode types did a store and then a load to truncate the value. For conversions to VSX registers, don't split the insn, instead emit the code directly. Use the code iterator any_fix to combine signed and unsigned conversions. (fix<uns>_trunc<SFDF:mode>si2_p8): Likewise. (fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise. (fix_trunc<IEEE128:mode><QHI:mode>2): Likewise. (fix<uns>_trunc<SFDF:mode><QHI:mode>2): Likewise. (fix_<mode>di2_hw): Likewise. (fixuns_<mode>di2_hw): Likewise. (fix_<mode>si2_hw): Likewise. (fixuns_<mode>si2_hw): Likewise. (fix<uns>_<IEEE128:mode><SDI:mode>2_hw): Likewise. (fix<uns>_trunc<IEEE128:mode><QHI:mode>2): Likewise. (fctiw<u>z_<mode>_smallint): Rename fctiw<u>z_<mode>_smallint to fix<uns>_trunc<SFDF:mode>si2_p8. (fix_trunc<SFDF:mode><QHI:mode>2_internal): Delete, no longer used. (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise. (fix<uns>_<mode>_mem): Likewise. (fctiw<u>z_<mode>_mem): Likewise. (fix<uns>_<mode>_mem): Likewise. (fix<uns>_trunc<SFDF:mode><QHSI:mode>2_mem): On ISA 3.0, prevent the register allocator from doing a direct move to the GPRs to do a store, and instead use the ISA 3.0 store byte/half-word from vector register instruction. For IEEE 128-bit floating point, also optimize stores of 32-bit ints. (fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Likewise. [gcc/testsuite] 2018-02-07 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/84154 * gcc.target/powerpc/pr84154-1.c: New tests. * gcc.target/powerpc/pr84154-2.c: Likewise. * gcc.target/powerpc/pr84154-3.c: Likewise. From-SVN: r257470
Michael Meissner committed -
[testsuite] 2018-02-07 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/builtins-mergew-mergeow.c: Update dg-requires. From-SVN: r257469
Will Schmidt committed -
PR c++/84082 * parser.c (cp_parser_dot_deref_incomplete): New function. (cp_parser_postfix_dot_deref_expression): Use it. * g++.dg/template/incomplete11.C: New test. * g++.dg/parse/crash67.C: Expect an incomplete type diagnostics too. From-SVN: r257466
Jakub Jelinek committed -
2018-02-07 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/82994 * match.c (gfc_match_deallocate): Check for NULL pointer. 2018-02-07 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/82994 * gfortran.dg/deallocate_error_3.f90: New test. * gfortran.dg/deallocate_error_4.f90: New test. From-SVN: r257465
Steven G. Kargl committed -
From-SVN: r257464
Joseph Myers committed -
The escape analysis support is not yet good enough to avoid escaping the argument to funcPC. This causes unnecessary and often harmful memory allocation. E.g., (*cpuProfile).addExtra can be called from a signal handler, and it must not allocate memory. Move the calls to funcPC to use variables instead. This was done in the original migration to using funcPC, but was not done for newer code. In one case, in signal handling code, use getSigtramp. Reviewed-on: https://go-review.googlesource.com/92735 From-SVN: r257463
Ian Lance Taylor committed -
2018-02-07 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/68560 * trans-intrinsic.c (gfc_conv_intrinsic_shape): New function. (gfc_conv_intrinsic_function): Call it. 2018-02-07 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/68560 * gfortran.dg/shape_9.f90: New test. From-SVN: r257462
Thomas Koenig committed -
2018-02-06 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/82049 * match.c (gfc_match_type_spec): If the charlen is non-NULL, then try to resolve it. While here return early if possible. 2018-02-06 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/82049 * gfortran.dg/assumed_charlen_parameter.f90: New test. From-SVN: r257459
Steven G. Kargl committed -
* testsuite/libgomp.oacc-c-c++-common/pr84217.c (abort) [__cplusplus]: Declare extern "C". From-SVN: r257457
Rainer Orth committed -
lookup_name_fuzzy can offer some reserved words as suggestions for misspelled words, helping with "singed"/"signed" typos. PR c++/81610 and PR c++/80567 report problems where the C++ frontend suggested "if", "for" and "else" as corrections for misspelled variable names. The root cause is that in r247233 ("Fix spelling suggestions for reserved words (PR c++/80177)") I loosened the conditions on these reserved words, adding this condition: if (kind == FUZZY_LOOKUP_TYPENAME) to the logic for rejecting words that don't start decl-specifiers, to allow for "static_assert" to be offered. This is too loose a condition: we don't want to suggest *any* reserved word when we're in a context where we don't know we expect a typename. For the kinds of error-recover situations where we're suggesting spelling corrections we don't have much contextual information, so it seems prudent to be stricter about which reserved words we offer as spelling suggestions; I don't think it makes sense for us to suggest e.g. "for". This patch implements that by effectively reinstating the old logic, but special-casing RID_STATIC_ASSERT, moving the logic to a new subroutine (in case we want to allow for other special-cases). I attempted to add suggestions for the various RID_*CAST, to cope with e.g. "reinterptet_cast" (I can never type that correctly on the first try), but the following '<' token confuses the error-recovery enough that the suggestion code isn't triggered. gcc/cp/ChangeLog: PR c++/81610 PR c++/80567 * name-lookup.c (suggest_rid_p): New function. (lookup_name_fuzzy): Replace enum-rid-filtering logic with call to suggest_rid_p. gcc/testsuite/ChangeLog: PR c++/81610 PR c++/80567 * g++.dg/spellcheck-reswords.C: New test case. * g++.dg/spellcheck-stdlib.C: Remove xfail from dg-bogus suggestion of "if". From-SVN: r257456
David Malcolm committed -
2018-02-07 Alan Hayward <alan.hayward@arm.com> * genextract.c (push_pathstr_operand): New function to support [a-zA-Z]. (walk_rtx): Call push_pathstr_operand. (print_path): Support [a-zA-Z]. From-SVN: r257455
Alan Hayward committed -
PR c++/84181 * pt.c (extract_locals_r, extract_local_specs): New. (tsubst_pack_expansion): Use them. From-SVN: r257454
Jason Merrill committed -
2018-02-07 Richard Biener <rguenther@suse.de> PR tree-optimization/84037 * tree-vectorizer.h (struct _loop_vec_info): Add ivexpr_map member. (cse_and_gimplify_to_preheader): Declare. (vect_get_place_in_interleaving_chain): Likewise. * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize ivexpr_map. (_loop_vec_info::~_loop_vec_info): Delete it. (cse_and_gimplify_to_preheader): New function. * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Export. * tree-vect-stmts.c (vectorizable_store): CSE base and steps. (vectorizable_load): Likewise. For grouped stores always base the IV on the first element. * tree-vect-loop-manip.c (vect_loop_versioning): Unshare versioning condition before gimplifying. From-SVN: r257453
Richard Biener committed -
2018-02-07 Martin Liska <mliska@suse.cz> PR c++/84059. * class.c (add_method): Append argument value. * cp-tree.h (maybe_version_functions): Add new argument. * decl.c (decls_match): Call it if a declaration does not have DECL_FUNCTION_VERSIONED. (maybe_version_functions): record argument is added. 2018-02-07 Martin Liska <mliska@suse.cz> PR c++/84059. * g++.dg/ext/mv26.C: New test. From-SVN: r257451
Martin Liska committed -
* tree-eh.c (operation_could_trap_helper_p): Ignore honor_trapv for *DIV_EXPR and *MOD_EXPR. From-SVN: r257450
Jakub Jelinek committed -
2018-02-07 Tom de Vries <tom@codesourcery.com> * gcc.dg/pr83844.c: Require effective target alloca. From-SVN: r257447
Tom de Vries committed -
2018-02-07 Tom de Vries <tom@codesourcery.com> * gcc.dg/torture/pr83055.c: Require effective target global_constructor. From-SVN: r257446
Tom de Vries committed -
Since -fcf-protection requires both -mshstk and -mibt, use -fcf-protection=return with -mshstk in cet-intrin-4.c. PR target/84243 * gcc.target/i386/cet-intrin-4.c (dg-options): Use -fcf-protection=return. From-SVN: r257445
H.J. Lu committed -
Since ix86_option_override_internal sets the CF_SET bit in flag_cf_protection and it can be called more than once via pragma, we need to mask out the CF_SET bit when checking flag_cf_protection. PR target/84248 * config/i386/i386.c (ix86_option_override_internal): Mask out the CF_SET bit when checking -fcf-protection. From-SVN: r257444
H.J. Lu committed -
2018-02-07 Tom de Vries <tom@codesourcery.com> PR libgomp/84217 * omp-expand.c (expand_oacc_collapse_init): Ensure diff_type is large enough. * c-c++-common/goacc/pr84217.c: New test. * gfortran.dg/goacc/pr84217.f90: New test. * testsuite/libgomp.oacc-c-c++-common/pr84217.c: New test. From-SVN: r257443
Tom de Vries committed -
From-SVN: r257442
Jan Hubicka committed -
re PR tree-optimization/84204 ([graphite] ICE in set_codegen_error, at graphite-isl-ast-to-gimple.c:206) 2018-02-07 Richard Biener <rguenther@suse.de> PR tree-optimization/84204 * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in this place. * gcc.dg/graphite/pr84204.c: New testcase. PR tree-optimization/84205 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Also special-case isl_ast_op_zdiv_r. * gcc.dg/graphite/pr84205.c: New testcase. PR tree-optimization/84223 * graphite-scop-detection.c (gather_bbs::before_dom_children): Only add conditions from within the region. (gather_bbs::after_dom_children): Adjust. * gfortran.dg/graphite/pr84223.f90: New testcase. From-SVN: r257441
Richard Biener committed -
PR target/84209 * config/avr/avr.h (GENERAL_REGNO_P, GENERAL_REG_P): New macros. * config/avr/avr.md: Only post-reload split REG-REG moves if either register is REGERAL_REG_P. From-SVN: r257440
Georg-Johann Lay committed -
re PR c++/71662 ([DR 1485] ICE on invalid C++11 code with unqualified name look up: in tsubst_copy, at cp/pt.c:14010) 2018-02-07 Paolo Carlini <paolo.carlini@oracle.com> PR c++/71662 * g++.dg/cpp0x/scoped_enum7.C: New. From-SVN: r257439
Paolo Carlini committed -
2018-02-07 Christophe Lyon <christophe.lyon@linaro.org> PR tree-optimization/83008 * gcc.dg/cse_recip.c: Add -fno-tree-slp-vectorize. From-SVN: r257438
Christophe Lyon committed -
PR tree-optimization/84235 * tree-ssa-scopedtables.c (avail_exprs_stack::simplify_binary_operation): Fir MINUS_EXPR, punt if the subtraction is performed in floating point type where NaNs are honored. For *DIV_EXPR, punt for ALL_FRACT_MODE_Ps where we can't build 1. Formatting fix. * gcc.c-torture/execute/ieee/pr84235.c: New test. From-SVN: r257437
Jakub Jelinek committed -
Normally we ensure to build a single Btype for identical types. We did not do this for methods table of identical interface types, however. If there are two identical interface type I, I2, they have the same Btype BI, but different Btypes for their methods tables, BM and BM2. From the backend's point of view only one of them is linked to BI. This can cause inconsitency in the backend's type system, like unresolved placeholder. This CL ensures we create a single Btype for methods table of identical interface type. Reviewed-on: https://go-review.googlesource.com/92436 From-SVN: r257436
Ian Lance Taylor committed -
From-SVN: r257435
GCC Administrator committed
-