- 18 Mar, 2019 21 commits
-
-
segher authored
It currently wants to see lvx insns on AIX, and no lvx insns on Linux. What is really wanted is lvx insns when no VSX, and lxv* insns if VSX. This fixes it. * gcc.target/powerpc/altivec-7.c: Look for lxv* if generating VSX instructions, and lvx if not. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269772 138bc75d-0d04-0410-961f-82ee72b054a4
-
segher authored
Currently these bswap testcases use global variables, which causes problems with -m32: the memory access is a D-form access, and when combine tries to combine that with the bswap it tries a D-form store with byte reverse. That instruction does not exist, and since combine started with only two insns here it will not try splitting this. This should be improved, but it is not what this test is testing, and the "load" case already uses a pointer, so let's do that for the store case as well. * gcc.target/powerpc/bswap16.c: Use a pointer instead of a global for the "store" test as well. * gcc.target/powerpc/bswap32.c: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269771 138bc75d-0d04-0410-961f-82ee72b054a4
-
segher authored
For the big stack frame in the test GCC used to say pr18096-1.c:7:6: error: total size of local objects too large but now it says pr18096-1.c:7:6: error: total size of local objects 2147483647 exceeds maximum 2147483392 Let's just allow both in the test. gcc/testsuite/ * gcc.target/powerpc/pr18096-1.c: Allow an error message that says "exceeds" instead of just one that talks about "too large". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269770 138bc75d-0d04-0410-961f-82ee72b054a4
-
tkoenig authored
PR fortran/68009 * iresolve.c: Include trans.h. (gfc_resolve_fe_runtine_error): Set backend_decl on resolved_sym. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269769 138bc75d-0d04-0410-961f-82ee72b054a4
-
jason authored
Here we were pushing into the right access context, but we were called from a deferred checking context, so didn't end up doing the checks until after we left the access context. * pt.c (tsubst_default_argument): Don't defer access checks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269766 138bc75d-0d04-0410-961f-82ee72b054a4
-
rguenth authored
PR middle-end/88945 * tree-ssanames.c (release_ssa_name_fn): For released SSA names use a TREE_TYPE of error_mark_node to avoid ICEs when dumping basic-blocks that are removed. Remove restoring SSA_NAME_VAR. * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269765 138bc75d-0d04-0410-961f-82ee72b054a4
-
ams authored
2019-03-18 Andrew Stubbs <ams@codesourcery.com> gcc/ * config/gcn/gcn-run.c (struct output): Make next_output unsigned. Extend queue to 1024 entries. Add "consumed" field. (gomp_print_output): Remove print_index parameter. Add final parameter. Change limit to unsigned. Use consumed field to implement circular buffer. Detect interrupted print in final pass. Flush output at the end. (run): Update gomp_print_output usage. (main): Initialize kernargs->output_data.consumed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269764 138bc75d-0d04-0410-961f-82ee72b054a4
-
rsandifo authored
This patch fixes a case in which we vectorised something with a fully-predicated loop even after the cost model had rejected it. E.g. the loop in the testcase has the costs: Vector inside of loop cost: 27 Vector prologue cost: 0 Vector epilogue cost: 0 Scalar iteration cost: 7 Scalar outside cost: 6 Vector outside cost: 0 prologue iterations: 0 epilogue iterations: 0 and we can see that the loop executes at most three times, but we decided to vectorise it anyway. (The costs here are equal for three iterations, but the same thing happens even when the vector code is strictly more expensive.) The problem is the handling of "/VF" in: /* Calculate number of iterations required to make the vector version profitable, relative to the loop bodies only. The following condition must hold true: SIC * niters + SOC > VIC * ((niters-PL_ITERS-EP_ITERS)/VF) + VOC where SIC = scalar iteration cost, VIC = vector iteration cost, VOC = vector outside cost, VF = vectorization factor, PL_ITERS = prologue iterations, EP_ITERS= epilogue iterations SOC = scalar outside cost for run time cost model check. */ We treat the "/VF" as truncating, but for fully-predicated loops, it's closer to a ceil division, since fractional iterations are handled by a full iteration with some predicate bits set to false. The easiest fix seemed to be to calculate the minimum number of vector iterations first, then use that to calculate the minimum number of scalar iterations. Calculating the minimum number of vector iterations might make sense for unpredicated loops too, since calculating the scalar niters directly doesn't take into account the fact that the VIC multiple has to be an integer. But the handling of PL_ITERS and EP_ITERS for unpredicated loops is a bit hand-wavy anyway, so maybe vagueness here cancels out vagueness there? Either way, changing this for unpredicated loops would be much too invasive for stage 4, so the patch keeps it specific to fully-predicated loops (i.e. SVE) for now. There's no functional change for other targets. 2019-03-18 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the calculation of the minimum number of scalar iterations for fully-predicated loops. gcc/testsuite/ * gcc.target/aarch64/sve/cost_model_1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269763 138bc75d-0d04-0410-961f-82ee72b054a4
-
jamborm authored
2019-03-18 Martin Jambor <mjambor@suse.cz> PR tree-optimization/89546 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if any propagation to its children took place. testsuite/ * gcc.dg/tree-ssa/pr89546.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269761 138bc75d-0d04-0410-961f-82ee72b054a4
-
aburgess authored
This fixes PR target/89627. The RISC-V ABI document[1] says: For the purposes of this section, "struct" refers to a C struct with its hierarchy flattened, including any array fields. That is, struct { struct { float f[1]; } g[2]; } and struct { float f; float g; } are treated the same. Fields containing empty structs or unions are ignored while flattening, even in C++, unless they have nontrivial copy constructors or destructors. However, this flattening only applies when one of the fields of the flattened structure can be placed into a floating point register, otherwise no flattening occurs. Currently GCC fails to correctly consider that empty C++ structures have a non-zero size when constructing the arguments from a flattened structure, and as a result, trying to pass a C++ structure like this: struct sf { struct {} e; float f; }; Doesn't work correctly, GCC fails to take the offset of 'f' within 'sf' into account and will actually pass the space backing 'e' as the contents of 'f'. This patch fixes this so that 'f' will be passed correctly. A couple of new tests are added to cover this functionality. [1] https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md gcc/ChangeLog: PR target/89627 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset parameter, and make use of it. (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single. gcc/testsuite/ChangeLog: PR target/89627 * g++.target/riscv/call-with-empty-struct-float.C: New file. * g++.target/riscv/call-with-empty-struct-int.C: New file. * g++.target/riscv/call-with-empty-struct.H: New file. * g++.target/riscv/riscv.exp: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269760 138bc75d-0d04-0410-961f-82ee72b054a4
-
paolo authored
2019-03-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/85014 * semantics.c (finish_non_static_data_member): Check return value of context_for_name_lookup and immediately return error_mark_node if isn't a type. /testsuite 2019-03-18 Paolo Carlini <paolo.carlini@oracle.com> PR c++/85014 * g++.dg/cpp0x/pr85014.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269759 138bc75d-0d04-0410-961f-82ee72b054a4
-
claziss authored
xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.opt (mcode-density-frame): Get the inital value from TARGET_CODE_DENSITY_FRAME_DEFAULT. * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define. * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define. * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to match what the ops is doing. (push_multi_fp_blink): Likewise. * config/arc/arc.c (arc_override_options): Enable enter/leave when compiling for size and elf target. (arc_save_callee_enter): Adjust note to match what enter/leave operation does. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269758 138bc75d-0d04-0410-961f-82ee72b054a4
-
claziss authored
xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.md (tst_movb): Fix constraint. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269757 138bc75d-0d04-0410-961f-82ee72b054a4
-
claziss authored
xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269756 138bc75d-0d04-0410-961f-82ee72b054a4
-
claziss authored
The ARC port is changing the allocation order in the arc_conditional_register_usage function, but this is not the proper way. Thus, we employ ADJUST_REG_ALLOC_ORDER hook for this task. gcc/ xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare. * config/arc/arc.c (arc_conditional_register_usage): Remove all reg_alloc_order references. (size_alloc_order): Define. (arc_adjust_reg_alloc_order): New function. * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register order. (ADJUST_REG_ALLOC_ORDER): Define. (HONOR_REG_ALLOC_ORDER): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269755 138bc75d-0d04-0410-961f-82ee72b054a4
-
rguenth authored
PR target/87561 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided loads and stores a bit more. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269754 138bc75d-0d04-0410-961f-82ee72b054a4
-
rguenth authored
PR target/87561 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided load pessimization to stores as well. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269753 138bc75d-0d04-0410-961f-82ee72b054a4
-
jakub authored
* gcc.dg/pr86979.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269752 138bc75d-0d04-0410-961f-82ee72b054a4
-
abel authored
* sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible successor, use NULL as its av set. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269751 138bc75d-0d04-0410-961f-82ee72b054a4
-
tkoenig authored
PR fortran/88008 * gfortran.h (expr_t): Add EXPR_UNKNOWN. * expr.c (gfc_copy_expr): Add EXPR_UNKNOWN to switch statement. (gfc_simplify_expr): Likewise. * module.c (mio_expr): Likewise. * resovle.c (extract_compcall_passed_object): Issue error on unknown type. (check_typebound_baseobject): Issue error on wrong type. * trans-expr.c (gfc_apply_interface_mapping_to_expr): Add EXPR_UNKNOWN to switch statement. 2019-03-17 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/88008 * gfortran.dg/typebound_call_31.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269750 138bc75d-0d04-0410-961f-82ee72b054a4
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269749 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 17 Mar, 2019 6 commits
-
-
jason authored
Earlier changes to defer instantiating a defaulted noexcept-specifier that depends on yet-unparsed default member initializers broke this testcase, where instantiation fails for another reason. In this case there's no reason to defer and try again later, so let's not. * pt.c (maybe_instantiate_noexcept): Only return false if defaulted. (regenerate_decl_from_template): Use it for noexcept-specs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269746 138bc75d-0d04-0410-961f-82ee72b054a4
-
danglin authored
* gcc.dg/compat/pr83487-1_y.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269745 138bc75d-0d04-0410-961f-82ee72b054a4
-
danglin authored
* gfortran.dg/temporary_3.f90: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269744 138bc75d-0d04-0410-961f-82ee72b054a4
-
danglin authored
* gcc.dg/warn-abs-1.c: Likewise. * gfortran.dg/ISO_Fortran_binding_1.f90: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269743 138bc75d-0d04-0410-961f-82ee72b054a4
-
danglin authored
* c-c++-common/builtin-has-attribute-3.c: Define SKIP_ALIAS on hppa*-*-hpux*. * gcc.dg/attr-copy.c: Require alias support. * gcc.dg/ipa/ipa-icf-39.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269742 138bc75d-0d04-0410-961f-82ee72b054a4
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269737 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 16 Mar, 2019 11 commits
-
-
jakub authored
* scanner.c (load_line): Remove linenum and current_line static variables, add warned_tabs automatic variable. Use current_file->line instead of current_line and warned_tabs boolean to avoid diagnosing tabs multiple times on the same line. * gfortran.dg/continuation_15.f90: New test. * gfortran.dg/continuation_16.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269734 138bc75d-0d04-0410-961f-82ee72b054a4
-
danglin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269733 138bc75d-0d04-0410-961f-82ee72b054a4
-
danglin authored
* g++.dg/abi/ref-temp1.C: Skip on 32-bit hppa*-*-hpux*. * g++.dg/cpp0x/pr84497.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269732 138bc75d-0d04-0410-961f-82ee72b054a4
-
danglin authored
* gcc.dg/attr-copy-6.c: Likewise. * gcc.dg/pr87793.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269731 138bc75d-0d04-0410-961f-82ee72b054a4
-
danglin authored
* gcc.dg/pr84941.c: Skip on hppa*-*-*. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269730 138bc75d-0d04-0410-961f-82ee72b054a4
-
danglin authored
* gcc.dg/gimplefe-34.c: Likewise. * gcc.dg/compat/pr83487-2_x.c: Use -fno-common option on hppa*-*-hpux*. * gcc.dg/compat/pr83487-2_y.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269729 138bc75d-0d04-0410-961f-82ee72b054a4
-
danglin authored
* gcc.dg/Wattributes-6.c: Skip warning check at line 404 on hppa*64*-*-*. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269728 138bc75d-0d04-0410-961f-82ee72b054a4
-
danglin authored
* c-c++-common/Wattributes.c: Skip a warning check on hppa*64*-*-*. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269727 138bc75d-0d04-0410-961f-82ee72b054a4
-
danglin authored
hppa*-*-hpux*. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269726 138bc75d-0d04-0410-961f-82ee72b054a4
-
tkoenig authored
PR fortran/84394 * symbol.c (gfc_add_subroutine): If we are encountering a subrtoutine within a BLOCK DATA and the name starts with an underscore, do not check. 2019-03-16 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/84394 * gfortran.dg/blockdata_11.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269721 138bc75d-0d04-0410-961f-82ee72b054a4
-
gccadmin authored
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269720 138bc75d-0d04-0410-961f-82ee72b054a4
-
- 15 Mar, 2019 2 commits
-
-
anlauf authored
PR fortran/60091 * expr.c (gfc_check_pointer_assign): Correct and improve error messages for invalid pointer assignments. PR fortran/60091 * gfortran.dg/pointer_remapping_3.f08: Adjust error messages. * gfortran.dg/pointer_remapping_7.f90: Adjust error message. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269717 138bc75d-0d04-0410-961f-82ee72b054a4
-
segher authored
PR89721 shows LRA treating an unspec_volatile's result as invariant, which of course isn't correct. This patch fixes it. PR rtl-optimization/89721 * lra-constraints (invariant_p): Return false if side_effects_p holds. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@269716 138bc75d-0d04-0410-961f-82ee72b054a4
-