1. 16 Apr, 2019 11 commits
    • [ARC] Remove Rs5 constraint. · fa27cbfe
      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
    • [ARC] Refurb eliminate regs. · 47d8cb23
      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
    • [ARC] Emit blockage regardless to avoid delay slot scheduling. · 1ec86e1e
      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
    • [NDS32] Fix nds32_split_ashiftdi3 with large shift amount. · 85b24296
      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
    • [NDS32] Handle subreg correctly in wext_odd_dep_p. · 7f85e52c
      gcc/
      	* config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
      	subreg.
      
      From-SVN: r270382
      Chung-Ju Wu committed
    • re PR target/90096 (Misleading option hint for AVX intrinsics) · 8feb61a3
      	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
    • re PR rtl-optimization/90082 (ICE in delete_unmarked_insns, at dce.c:653) · 234b5365
      	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
    • re PR tree-optimization/90090 (ICE in mark_reachable_handlers, at tree-eh.c:3938 since r219202) · 41b5808d
      	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
    • re PR tree-optimization/56049 (Simplification to constants not done) · 8c996ec6
      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: Fix configure test for backtrace-supported.h · 5d71d6f2
      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
    • Daily bump. · 80d3ca49
      From-SVN: r270376
      GCC Administrator committed
  2. 15 Apr, 2019 13 commits
  3. 14 Apr, 2019 9 commits
    • re PR lto/89358 (Combining -std=c++14 and -std=c++17 objects gives ODR warnings) · d2a0371d
      
      	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
    • re PR fortran/85448 (Report binding label clash with a global identifyer) · ceae614e
      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
    • re PR fortran/89843 (CFI_section delivers incorrect result descriptor) · 0d78e4aa
      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 Fix D build on windows hosts · 4d024c32
      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
    • Enable libphobos on Solaris 11/x86 · 7d31d331
      	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
    • Work around lack of dlpi_tls_modid before Solaris 11.5 · 235d1c46
      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
    • Work around Solaris ld bug linking __tls_get_addr on 64-bit x86 · ba838aa6
      	* 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
    • Use gcc/sections/elf_shared.d on Solaris 11.5 (PR d/88150) · 4d513120
      	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
    • Daily bump. · 77086e01
      From-SVN: r270344
      GCC Administrator committed
  4. 13 Apr, 2019 7 commits
    • libphobos: Move rt.sections modules to gcc.sections · 8b651828
      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
    • * gcc.pot: Regenerate. · 151c5c0b
      From-SVN: r270340
      Jakub Jelinek committed
    • re PR target/89093 (C++ exception handling clobbers d8 VFP register) · 6cf58810
      	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
    • re PR fortran/79842 (i18n: subword translation in "Can't use the same %smodule") · 91797170
      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
    • * gcc.pot: Regenerate. · 4b4f5ccd
      From-SVN: r270337
      Jakub Jelinek committed
    • compiler: improve type handling for string concat ops on constants · fdc59f56
          
          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
    • Daily bump. · b1593748
      From-SVN: r270335
      GCC Administrator committed