- 16 Apr, 2019 11 commits
-
-
New LRA algorithms require the all the register constraints to be defined using define_register_constraint keyword. However, Rs5 constraint was not LRA proof. Remove it and replace it by equivalent Rcd constraint. gcc/ xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.md (sibcall_insn): Use Rcd constraint. (sibcall_value_insn): Likewise. * config/arc/constraints.md (Rs5): Remove. From-SVN: r270386
Claudiu Zissulescu committed -
gcc/ xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes for last two fake registers. (arc_conditional_register_usage): Make sure fake frame and arg pointer regs are in general regs class. (FRAME_POINTER_MASK): Remove. (RETURN_ADDR_MASK): Remove. (arc_must_save_register): Use hard frame regnum. (frame_restore_reg): Use hard_frame_pointer_rtx. (arc_save_callee_saves): Likewise. (arc_restore_callee_saves): Likewise. (arc_save_callee_enter): Likewise. (arc_restore_callee_leave): Likewise. (arc_save_callee_milli): Likewise. (arc_eh_return_address_location): Likewise. (arc_check_multi): Use hard frame regnum. (arc_can_eliminate): Likewise. * config/arc/arc.h (FIXED_REGISTERS): Make FP register available for register allocator. (REG_CLASS_CONTENTS): Update GENERAL_REGS. (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM. (FRAME_POINTER_REGNUM): Change it to a fake register. (HARD_FRAME_POINTER_REGNUM): Defined. (ARG_POINTER_REGNUM): Change it to a new fake register. (ELIMINABLE_REGS): Update. (REGISTER_NAMES): Update names. * config/arc/arc.md (LP_START): Remove. (LP_END): Likewise. (shift_si3_loop): Update pattern. From-SVN: r270385
Claudiu Zissulescu committed -
1.The delay slot scheduler can reschedule some of the frame related instructions resulting in having incorect CFI information. This patch introduces a schedule blockage to avoid this problem. 2.There are cases when an interrupt may happen and not all the current function stack operations are done, which may result in stack corruption. Such an example is accessing an returning a local structure members, which members are allocated on stack. The stack adjustment and the accessing of the struct member can be reorder as they may not use both the SP register for the access. 3.Also, do not save/restore SP when in interrupt. The SP is switch by the core IRQ machinery. gcc/ xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless to avoid delay slot scheduling. (arc_must_save_register): Don't save SP. * config/arc/arc.md (stack_tie): Remove. (UNSPEC_ARC_STKTIE): Likewise. From-SVN: r270384
Claudiu Zissulescu committed -
gcc/ * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong code gen with large shift amount. Co-Authored-By: Shiva Chen <shiva0217@gmail.com> From-SVN: r270383
Kito Cheng committed -
gcc/ * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle subreg. From-SVN: r270382
Chung-Ju Wu committed -
PR target/90096 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only print -m64/-mx32/-m32 if it is true. (ix86_debug_options, ix86_function_specific_print): Pass true as ADD_ABI_P to ix86_target_string. (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32. * gcc.target/i386/pr90096.c: New test. * gcc.target/i386/pr69255-1.c: Adjust expected diagnostics. * gcc.target/i386/pr69255-2.c: Likewise. * gcc.target/i386/pr69255-3.c: Likewise. From-SVN: r270381
Jakub Jelinek committed -
PR rtl-optimization/90082 * dce.c (can_delete_call): New function. (deletable_insn_p, mark_insn): Use it. * gcc.dg/pr90082.c: New test. From-SVN: r270380
Jakub Jelinek committed -
PR tree-optimization/90090 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can throw internally. (is_division_by_square): Likewise. Formatting fix. * g++.dg/opt/pr90090.C: New test. From-SVN: r270379
Jakub Jelinek committed -
2019-04-16 Richard Biener <rguenther@suse.de> PR tree-optimization/56049 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set equality check if alias-set zero will prevail. * gfortran.dg/pr56049.f90: New testcase. From-SVN: r270378
Richard Biener committed -
libphobos/ChangeLog: 2019-04-16 Iain Buclaw <ibuclaw@gdcproject.org> * config.h.in: Regenerate. * configure: Regenerate. * m4/druntime/libraries.m4 (DRUNTIME_LIBRARIES_BACKTRACE): Set CPPFLAGS correctly for backtrace support test. From-SVN: r270377
Iain Buclaw committed -
From-SVN: r270376
GCC Administrator committed
-
- 15 Apr, 2019 13 commits
-
-
* config/microblaze/microblaze.c (microblaze_expand_block_move): Treat size and alignment as unsigned. From-SVN: r270373
Jeff Law committed -
PR d/90059 PR d/90060 PR d/90062 libphobos: Merge upstream druntime 70b9fea6 Backports fixes in the extern(C) bindings for the Solaris/SPARC port. Initial patch by Rainer Orth. Reviewed-on: https://github.com/dlang/druntime/pull/2555 From-SVN: r270372
Iain Buclaw committed -
2019-04-15 Richard Biener <rguenther@suse.de> PR debug/90074 * tree-loop-distribution.c (destroy_loop): Preserve correct debug info. * gcc.dg/guality/pr90074.c: New testcase. From-SVN: r270370
Richard Biener committed -
2019-04-15 Richard Biener <rguenther@suse.de> PR tree-optimization/90071 * tree-ssa-reassoc.c (init_range_entry): Do not pick up abnormal operands from def stmts. * gcc.dg/torture/pr90071.c: New testcase. From-SVN: r270369
Richard Biener committed -
The code that checks if an auto-increment from i0 or i1 is not lost is a bit shaky. The code to check the same for i2 is non-existent, and cannot be implemented in a similar way at all. So, this patch counts all auto-increments, and makes sure we end up with the same number as we started with. This works because we still have a check that we will not duplicate any. We should do this some better way, but not while we are in stage 4. PR rtl-optimization/89794 * combine.c (count_auto_inc): New function. (try_combine): Count how many auto_inc expressions there were in the original instructions. Ensure we have the same number in the new instructions. Remove the code that tried to ensure auto_inc side effects on i1 and i0 are not lost. gcc/testsuite/ PR rtl-optimization/89794 * gcc.dg/torture/pr89794.c: New testcase. From-SVN: r270368
Segher Boessenkool committed -
2019-04-15 Richard Biener <rguenther@suse.de> PR ipa/88936 * tree.h (auto_var_p): Declare. * tree.c (auto_var_p): New function, split out from ... (auto_var_in_fn_p): ... here. * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid member. (new_var_info): Initialize it. (set_uids_in_ptset): Also set the shadow variable uid if required. (ipa_pta_execute): Postprocess points-to solutions assigning shadow variable uids for locals that may reach their containing function recursively. * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not assert but instead check whether the points-to solution is a singleton. * gcc.dg/torture/pr88936-1.c: New testcase. * gcc.dg/torture/pr88936-2.c: Likewise. * gcc.dg/torture/pr88936-3.c: Likewise. From-SVN: r270366
Richard Biener committed -
2019-04-15 Martin Jambor <mjambor@suse.cz> PR ipa/pr89693 * cgraph.c (clone_of_p): Loop over clone chain for each step in the thunk chain. testsuite/ * g++.dg/ipa/pr89693.C: New test. From-SVN: r270364
Martin Jambor committed -
libgcc/ * config/nds32/linux-unwind.h (SIGRETURN): Remove. (RT_SIGRETURN): Update. (nds32_fallback_frame_state): Update. From-SVN: r270363
Monk Chiang committed -
gcc/ * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes. From-SVN: r270362
Monk Chiang committed -
gcc/ * config/nds32/nds32-md-auxiliary.c (nds32_legitimize_pic_address): Use new PIC pattern. (nds32_legitimize_tls_address): Use new TLS pattern. (nds32_output_symrel): New. * config/nds32/nds32-protos.h (nds32_output_symrel): Declare. (nds32_alloc_relax_group_id): Ditto. * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New. (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use relax_group_id. (nds32_group_tls_insn): Ditto. (nds32_group_float_insns): Ditto. * config/nds32/nds32.md (tls_le): New. (sym_got): Ditto. Co-Authored-By: Kito Cheng <kito.cheng@gmail.com> Co-Authored-By: Shiva Chen <shiva0217@gmail.com> From-SVN: r270361
Monk Chiang committed -
2019-04-15 Dominique d'Humieres <dominiq@gcc.gnu.org> PR tree-optimization/90020 * gcc.dg/torture/pr90020.c: Add linker options for darwin. From-SVN: r270360
Dominique d'Humieres committed -
[NDS32] Provide one valid nds32 assembly instruction to check assembler debugging options and features. gcc/ * configure: Add nds32 target for dwarf2 debug_line checking. * configure.ac: Regenerated. From-SVN: r270359
Chung-Ju Wu committed -
From-SVN: r270358
GCC Administrator committed
-
- 14 Apr, 2019 9 commits
-
-
PR lto/89358 * g++.dg/lto/pr89358_0.C: New testcase. * g++.dg/lto/pr89358_1.C: New testcase. * ipa-devirt.c (skip_in_fields_list_p): New. (odr_types_equivalent_p): Use it. From-SVN: r270355
Jan Hubicka committed -
2019-04-14 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/85448 * gfortran.dg/bind_c_usage_33.f90: New test and... * gfortran.dg/bind_c_usage_33_c.c: Additional source. From-SVN: r270354
Thomas Koenig committed -
2019-04-14 Paul Thomas <pault@gcc.gnu.org> PR fortran/89843 * trans-decl.c (gfc_get_symbol_decl): Assumed shape and assumed rank dummies of bind C procs require deferred initialization. (convert_CFI_desc): New procedure to convert incoming CFI descriptors to gfc types and back again. (gfc_trans_deferred_vars): Call it. * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Null the CFI descriptor pointer. Free the descriptor in all cases. PR fortran/89846 * expr.c (is_CFI_desc): New function. (is_subref_array): Tidy up by referencing the symbol directly. * gfortran.h : Prototype for is_CFI_desc. * trans_array.c (get_CFI_desc): New function. (gfc_get_array_span, gfc_conv_scalarized_array_ref, gfc_conv_array_ref): Use it. * trans.c (get_array_span): Extract the span from descriptors that are indirect references. PR fortran/90022 * trans-decl.c (gfc_get_symbol_decl): Make sure that the se expression is a pointer type before converting it to the symbol backend_decl type. * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Eliminate temporary creation for intent(in). 2019-04-14 Paul Thomas <pault@gcc.gnu.org> PR fortran/89843 * gfortran.dg/ISO_Fortran_binding_4.f90: Modify the value of x in ctg. Test the conversion of the descriptor types in the main program. * gfortran.dg/ISO_Fortran_binding_10.f90: New test. * gfortran.dg/ISO_Fortran_binding_10.c: Called by it. PR fortran/89846 * gfortran.dg/ISO_Fortran_binding_11.f90: New test. * gfortran.dg/ISO_Fortran_binding_11.c: Called by it. PR fortran/90022 * gfortran.dg/ISO_Fortran_binding_1.c: Correct the indexing for the computation of 'ans'. Also, change the expected results for CFI_is_contiguous to comply with standard. * gfortran.dg/ISO_Fortran_binding_1.f90: Correct the expected results for CFI_is_contiguous to comply with standard. * gfortran.dg/ISO_Fortran_binding_9.f90: New test. * gfortran.dg/ISO_Fortran_binding_9.c: Called by it. 2019-04-14 Paul Thomas <pault@gcc.gnu.org> PR fortran/89843 * runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc): Only return immediately if the source pointer is null. Bring forward the extraction of the gfc type. Extract the kind so that the element size can be correctly computed for sections and components of derived type arrays. Remove the free of the CFI descriptor since this is now done in trans-expr.c. (gfc_desc_to_cfi_desc): Only allocate the CFI descriptor if it is not null. (CFI_section): Normalise the difference between the upper and lower bounds by the stride to correctly calculate the extents of the section. PR fortran/89846 * runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc): Use the stride measure for the gfc span if it is not a multiple of the element length. Otherwise use the element length. PR fortran/90022 * runtime/ISO_Fortran_binding.c (CFI_is_contiguous) : Return 1 for true and 0 otherwise to comply with the standard. Correct the contiguity check for rank 3 and greater by using the stride measure of the lower dimension rather than the element length. From-SVN: r270353
Paul Thomas committed -
PR d/87799 * d-system.h (_mkdir): Forward _mkdir on MinGW to mkdir in system.h. * configure.ac: Remove d from unsupported languages on mingw and cygwin. * configure: Regenerate. From-SVN: r270349
Johannes Pfau committed -
toplevel: * configure.ac (enable_libphobos): Check LIBPHOBOS_SUPPORTED. * configure: Regenerate. libphobos: * configure.tgt (LIBPHOBOS_SUPPORTED): Default to no. Set to yes explicitly. * configure.ac: Handle --enable-libphobos. (x86_64-*-solaris2.* | i?86-*-solaris2.*): Only mark supported with gas. (ENABLE_LIBPHOBOS): New conditional. * configure: Regenerate. * Makefile.am (SUBDIRS): Only set if ENABLE_LIBPHOBOS. * Makefile.in: Regenerate. From-SVN: r270348
Rainer Orth committed -
2019-04-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> Iain Buclaw <ibuclaw@gdcproject.org> PR d/88150 * m4/druntime/os.m4 (DRUNTIME_OS_DLPI_TLS_MODID): New macro. * configure.ac: Use it. Call AC_USE_SYSTEM_EXTENSIONS. * configure: Regenerate. * Makefile.in, libdruntime/Makefile.in, src/Makefile.in, testsuite/Makefile.in: Regenerate. * libdruntime/gcc/config.d.in (OS_Have_Dlpi_Tls_Modid): Define. * libdruntime/gcc/sections/elf_shared.d: Import gcc.config. (scanSegments) <PT_TLS> [OS_Have_Dlpi_Tls_Modid]: Use dlpi_tls_modid. [Solaris]: Use dlinfo(RTLD_DI_LINKMAP) to get rt_tlsmodid. Otherwise clear pdso._tlsMod, pdso._tlsSize. (getTLSRange) [Solaris && !OS_Have_Dlpi_Tls_Modid]: Readjust mod. Co-Authored-By: Iain Buclaw <ibuclaw@gdcproject.org> From-SVN: r270347
Rainer Orth committed -
* m4/druntime/os.m4 (DRUNTIME_OS_LINK_SPEC): New macro. * configure.ac: Call it. * configure: Regenerate. * Makefile.in, libdruntime/Makefile.in, src/Makefile.in, testsuite/Makefile.in: Regenerate. * src/libgphobos.spec.in (*link): Append OS_LINK_SPEC. From-SVN: r270346
Rainer Orth committed -
PR d/88150 * libdruntime/gcc/sections/elf_shared.d [Solaris] (SharedELF): Set to true. Import core.sys.solaris.dlfcn, core.sys.solaris.link, core.sys.solaris.sys.elf, core.sys.solaris.sys.link. (dummy_ref): Declare. (initSections): Initialize dummy_ref. (getDependencies): Set strtab. (handleForName): Don't dlclose handle. (findDSOInfoForAddr): Set IterateManually. (getprogname): Declare. (progname): Use it. * libdruntime/gcc/sections/package.d [Solaris]: Import gcc.sections.elf_shared instead of gcc.sections.solaris. * libdruntime/gcc/sections/solaris.d: Remove. * libdruntime/Makefile.am (DRUNTIME_DSOURCES): Remove gcc/sections/solaris.d. From-SVN: r270345
Rainer Orth committed -
From-SVN: r270344
GCC Administrator committed
-
- 13 Apr, 2019 7 commits
-
-
These modules depend on a mixture between how the compiler emits run-time module information, and what functions are exposed by the platform to inquire about loaded global and thread-local data sections. As the upstream implementation is written to work only with how the reference D compiler writes out data, much of what is present does not apply to the GCC D front-end. So it has been moved to a non-upstream location in the source tree, where most of it will be rewritten once each port has been completed. The only tested module sections/elf_shared.d has been cleaned up so that all deprecated declarations have been removed, as well as the brittle module collision checking, which required bss_sections.c. All other ports have been left unchanged apart from a commonizing of attributes. libphobos/ChangeLog: 2019-04-13 Iain Buclaw <ibuclaw@gdcproject.org> * libdruntime/Makefile.am (DRUNTIME_CSOURCES): Remove bss_sections.c. (DRUNTIME_DSOURCES): Rename rt/sections_* modules to gcc/sections/*. * libdruntime/Makefile.in: Regenerate. * libdruntime/gcc/sections/android.d: New file. * libdruntime/gcc/sections/elf_shared.d: New file. * libdruntime/gcc/sections/osx.d: New file. * libdruntime/gcc/sections/package.d: New file. * libdruntime/gcc/sections/solaris.d: New file. * libdruntime/gcc/sections/win32.d: New file. * libdruntime/gcc/sections/win64.d: New file. * libdruntime/rt/bss_section.c: Remove. * libdruntime/rt/sections.d: Publicly import gcc.sections. * libdruntime/rt/sections_android.d: Remove. * libdruntime/rt/sections_elf_shared.d: Remove. * libdruntime/rt/sections_osx.d: Remove. * libdruntime/rt/sections_solaris.d: Remove. * libdruntime/rt/sections_win32.d: Remove. * libdruntime/rt/sections_win64.d: Remove. From-SVN: r270341
Iain Buclaw committed -
From-SVN: r270340
Jakub Jelinek committed -
PR target/89093 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp instead of strncmp when checking for thumb and arm. Formatting fixes. * gcc.target/arm/pr89093.c: New test. From-SVN: r270339
Jakub Jelinek committed -
2019-04-13 Dominique d'Humieres <dominiq@gcc.gnu.org> PR fortran/79842 * module.c (gfc_use_module): use complete sentences. From-SVN: r270338
Dominique d'Humieres committed -
From-SVN: r270337
Jakub Jelinek committed -
Resolve a small problem with concatenation of string constants: in a string concat X + Y where X has named type and Y has abstract string type, insure that the result has X's type, and disable folding if the both sides have a concrete type that does not match. Fixes golang/go#31412. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/171797 From-SVN: r270336
Ian Lance Taylor committed -
From-SVN: r270335
GCC Administrator committed
-