Skip to content
Snippets Groups Projects
  1. Feb 22, 2023
  2. Feb 21, 2023
    • Iain Buclaw's avatar
      libphobos: Merge upstream phobos e5a521ab2. · f77948c5
      Iain Buclaw authored
      Phobos changes:
      
          - Unicode tables have been updated to version 15.
      
      libphobos/ChangeLog:
      
      	* src/MERGE: Merge upstream phobos e5a521ab2.
      f77948c5
    • Iain Buclaw's avatar
      d: Merge upstream dmd, druntime 09faa4eacd, phobos 13ef27a56. · f99303eb
      Iain Buclaw authored
      D front-end changes:
      
      	- Import dmd v2.102.0-beta.1
      	- `static assert' now supports multiple message arguments.
      
      D runtime changes:
      
      	- Import druntime v2.102.0-beta.1
      	- The default `Throwable.TraceInfo' generation now is `@nogc'.
      	- `Object.factory' method has now been deprecated.
      
      Phobos changes:
      
      	- Import phobos v2.102.0-beta.1
      	- Added float- and double-precision implementations for log
      	  function families in std.math.
      	- `std.typecons.Unique' now calls `destroy` on struct types
      
      gcc/d/ChangeLog:
      
      	* Make-lang.in (D_FRONTEND_OBJS): Add d/location.o.
      	* d-lang.cc (d_init_options): Update for new front-end interface.
      	(d_post_options): Call Loc::set after handling options.
      	* dmd/MERGE: Merge upstream dmd 09faa4eacd.
      	* dmd/VERSION: Bump version to v2.102.0-beta.1.
      
      libphobos/ChangeLog:
      
      	* libdruntime/MERGE: Merge upstream druntime 09faa4eacd.
      	* src/MERGE: Merge upstream phobos 13ef27a56.
      	* testsuite/libphobos.exceptions/refcounted.d: Add test for chained
      	reference counted exceptions.
      	* testsuite/libphobos.shared/finalize.d: Add dg-warning for deprecated
      	factory interfaces.
      	* testsuite/libphobos.gc/issue22843.d: New test.
      
      gcc/testsuite/ChangeLog:
      
      	* gdc.dg/simd2a.d: Update.
      	* gdc.dg/simd2b.d: Update.
      	* gdc.dg/simd2c.d: Update.
      	* gdc.dg/simd2d.d: Update.
      	* gdc.dg/simd2e.d: Update.
      	* gdc.dg/simd2f.d: Update.
      	* gdc.dg/simd2g.d: Update.
      	* gdc.dg/simd2h.d: Update.
      	* gdc.dg/simd2i.d: Update.
      	* gdc.dg/simd2j.d: Update.
      f99303eb
    • Iain Buclaw's avatar
      libphobos: Add @nogc to gcc.backtrace and gcc.libbacktrace modules. · dfd39ed3
      Iain Buclaw authored
      libphobos/ChangeLog:
      
      	* libdruntime/gcc/backtrace.d (simpleErrorCallback): Add @nogc.
      	(LibBacktrace.initLibBacktrace): Likewise.
      	(LibBacktrace.this): Likewise.
      	(UnwindBacktrace.this): Likewise.
      	(getBacktrace): Likewise.
      	(getBacktraceSymbols): Likewise.
      	* libdruntime/gcc/libbacktrace.d.in (backtrace_create_state):
      	Likewise.
      	(backtrace_full): Likewise.
      	(backtrace_simple): Likewise.
      	(backtrace_print): Likewise.
      	(backtrace_pcinfo): Likewise.
      	(backtrace_syminfo): Likewise.
      dfd39ed3
  3. Feb 14, 2023
  4. Feb 13, 2023
    • Lorenzo Salvadore's avatar
      d: Update __FreeBSD_version values [PR107469] · daeb6c94
      Lorenzo Salvadore authored
      Update __FreeBSD_version values for the latest supported FreeBSD
      versions. In particular, add __FreeBSD_version for FreeBSD 14, which
      is necessary to compile libphobos successfully on FreeBSD 14.
      
      libphobos/ChangeLog:
      
      	PR d/107469
      	* libdruntime/core/sys/freebsd/config.d: Update __FreeBSD_version.
      daeb6c94
  5. Jan 18, 2023
  6. Jan 17, 2023
    • Martin Liska's avatar
      Regenerate Makefile.in files. · 42bf66e4
      Martin Liska authored
      libbacktrace/ChangeLog:
      
      	* Makefile.in: Regenerate.
      
      libgomp/ChangeLog:
      
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      
      libphobos/ChangeLog:
      
      	* Makefile.in: Regenerate.
      	* libdruntime/Makefile.in: Regenerate.
      
      libstdc++-v3/ChangeLog:
      
      	* src/libbacktrace/Makefile.in: Regenerate.
      42bf66e4
  7. Jan 16, 2023
  8. Jan 02, 2023
  9. Dec 12, 2022
  10. Dec 11, 2022
    • Iain Buclaw's avatar
      d: Merge upstream dmd, druntime c8ae4adb2e, phobos 792c8b7c1. · 6d799f0a
      Iain Buclaw authored
      D front-end changes:
      
      	- Import dmd v2.101.0.
      	- Deprecate the ability to call `__traits(getAttributes)' on
      	  overload sets.
      	- Deprecate non-empty `for' statement increment clause with no
      	  effect.
      	- Array literals assigned to `scope' array variables can now be
      	  allocated on the stack.
      
      D runtime changes:
      
      	- Import druntime v2.101.0.
      
      Phobos changes:
      
      	- Import phobos v2.101.0.
      
      gcc/d/ChangeLog:
      
      	* dmd/MERGE: Merge upstream dmd c8ae4adb2e.
      	* typeinfo.cc (check_typeinfo_type): Update for new front-end
      	interface.
      	(TypeInfoVisitor::visit (TypeInfoStructDeclaration *)): Remove warning
      	that toHash() must be declared 'nothrow @safe`.
      
      libphobos/ChangeLog:
      
      	* libdruntime/MERGE: Merge upstream druntime c8ae4adb2e.
      	* src/MERGE: Merge upstream phobos 792c8b7c1.
      6d799f0a
  11. Nov 21, 2022
  12. Nov 06, 2022
  13. Nov 05, 2022
    • Iain Buclaw's avatar
      d: Add support for vector comparison operators · 3c28d6a3
      Iain Buclaw authored
      The front-end added semantic support to permit comparing two vector
      expressions.  This removes the restriction in the code generator, as
      well as the intrisics that previously exposed the same operation.
      
      gcc/d/ChangeLog:
      
      	* d-target.cc (Target::isVectorOpSupported): Remove cases for
      	comparison operators.
      	* intrinsics.cc (maybe_set_intrinsic): Remove cases for vector
      	comparison intrinsics.
      	(maybe_warn_intrinsic_mismatch): Likewise.
      	(expand_intrinsic_vec_cond): Remove.
      	(maybe_expand_intrinsic): Remove cases for vector comparison
      	intrinsics.
      	* intrinsics.def (INTRINSIC_EQUALMASK): Remove.
      	(INTRINSIC_NOTEQUALMASK): Remove.
      	(INTRINSIC_GREATERMASK): Remove.
      	(INTRINSIC_GREATEREQUALMASK): Remove.
      
      libphobos/ChangeLog:
      
      	* libdruntime/gcc/simd.d (equalMask): Implement using generics.
      	(notEqualMask): Likewise.
      	(greaterMask): Likewise.
      	(greaterOrEqualMask): Likewise.
      	(notMask): Likewise.
      	(andAndMask): Likewise.
      	(orOrMask): Likewise.
      
      gcc/testsuite/ChangeLog:
      
      	* gdc.dg/Wbuiltin_declaration_mismatch2.d: Remove comparision tests.
      	* gdc.dg/simd2a.d: Update comparison tests.
      	* gdc.dg/simd2b.d: Likewise.
      	* gdc.dg/simd2c.d: Likewise.
      	* gdc.dg/simd2d.d: Likewise.
      	* gdc.dg/simd2e.d: Likewise.
      	* gdc.dg/simd2f.d: Likewise.
      	* gdc.dg/simd2g.d: Likewise.
      	* gdc.dg/simd2h.d: Likewise.
      	* gdc.dg/simd2i.d: Likewise.
      	* gdc.dg/simd2j.d: Likewise.
      3c28d6a3
  14. Oct 30, 2022
  15. Oct 29, 2022
    • Iain Buclaw's avatar
      d: Merge upstream dmd, druntime e4f8919591, phobos 3ad507b51. · 7e7ebe3e
      Iain Buclaw authored
      D front-end changes:
      
          - Import dmd v2.101.0-beta.1.
          - Add predefined version `D_Optimized' when compiling with `-O'.
          - Shortened method syntax (DIP1043) is now enabled by default.
          - Array literals assigned to `scope' array variables are now
            allocated on the stack.
          - Implement `@system' variables (DIP1035), available behind the
            preview feature flag `-fpreview=systemvariables'.
      
      D runtime changes:
      
          - Import druntime v2.101.0-beta.1.
      
      Phobos changes:
      
          - Import phobos v2.101.0-beta.1.
          - Added `std.typecons.SafeRefCounted', that can be used in `@safe'
            code with `-fpreview=dip1000'.
      
      gcc/d/ChangeLog:
      
      	* d-attribs.cc (apply_user_attributes): Update for new front-end
      	interface.
      	* d-builtins.cc (d_init_versions): Predefine `D_Optimized' with
      	compiling with optimizations enabled.
      	* d-lang.cc (d_handle_option): Update for new front-end interface.
      	Handle new option `-fpreview=systemvariables'.
      	* dmd/MERGE: Merge upstream dmd e4f8919591.
      	* dmd/VERSION: Bump version to v2.101.0-beta.1.
      	* expr.cc (ExprVisitor::visit (AssignExp *)): Treat construction of
      	static arrays from a call expression as a simple assignment.
      	(ExprVisitor::visit (ArrayLiteralExp *)): Handle array literals with
      	`scope' storage.
      	* gdc.texi: Update documentation of `-fpreview=' options.
      	* lang.opt (fpreview=shortenedmethods): Remove.
      	(fpreview=systemvariables):  New option.
      
      libphobos/ChangeLog:
      
      	* libdruntime/MERGE: Merge upstream druntime e4f8919591.
      	* src/MERGE: Merge upstream phobos 3ad507b51.
      
      gcc/testsuite/ChangeLog:
      
      	* gdc.dg/simd19630.d: Move tests with errors to ...
      	* gdc.dg/simd19630b.d: ... here.  New test.
      	* gdc.dg/simd19630c.d: New test.
      	* gdc.dg/simd_ctfe.d: Removed.
      	* gdc.dg/simd18867.d: New test.
      	* gdc.dg/simd19788.d: New test.
      	* gdc.dg/simd21469.d: New test.
      	* gdc.dg/simd21672.d: New test.
      	* gdc.dg/simd23077.d: New test.
      	* gdc.dg/simd23084.d: New test.
      	* gdc.dg/simd23085.d: New test.
      	* gdc.dg/torture/simd19632.d: New test.
      	* gdc.dg/torture/simd20041.d: New test.
      	* gdc.dg/torture/simd21673.d: New test.
      	* gdc.dg/torture/simd21676.d: New test.
      	* gdc.dg/torture/simd22438.d: New test.
      	* gdc.dg/torture/simd23009.d: New test.
      	* gdc.dg/torture/simd23077.d: New test.
      	* gdc.dg/torture/simd8.d: New test.
      	* gdc.dg/torture/simd9.d: New test.
      	* gdc.dg/torture/simd_prefetch.d: New test.
      7e7ebe3e
  16. Oct 13, 2022
  17. Oct 12, 2022
    • Martin Liska's avatar
      regenerate configure files · 6d2294a8
      Martin Liska authored
      Needed after a recent change.
      
      gcc/ChangeLog:
      
      	* configure: Regenerate.
      
      libatomic/ChangeLog:
      
      	* configure: Regenerate.
      
      libbacktrace/ChangeLog:
      
      	* configure: Regenerate.
      
      libcc1/ChangeLog:
      
      	* configure: Regenerate.
      
      libffi/ChangeLog:
      
      	* configure: Regenerate.
      
      libgfortran/ChangeLog:
      
      	* configure: Regenerate.
      
      libgomp/ChangeLog:
      
      	* configure: Regenerate.
      
      libitm/ChangeLog:
      
      	* configure: Regenerate.
      
      libobjc/ChangeLog:
      
      	* configure: Regenerate.
      
      liboffloadmic/ChangeLog:
      
      	* configure: Regenerate.
      	* plugin/configure: Regenerate.
      
      libphobos/ChangeLog:
      
      	* configure: Regenerate.
      
      libquadmath/ChangeLog:
      
      	* configure: Regenerate.
      
      libsanitizer/ChangeLog:
      
      	* configure: Regenerate.
      
      libssp/ChangeLog:
      
      	* configure: Regenerate.
      
      libstdc++-v3/ChangeLog:
      
      	* configure: Regenerate.
      
      libvtv/ChangeLog:
      
      	* configure: Regenerate.
      
      lto-plugin/ChangeLog:
      
      	* configure: Regenerate.
      
      zlib/ChangeLog:
      
      	* configure: Regenerate.
      6d2294a8
    • GCC Administrator's avatar
      Daily bump. · ab332cd7
      GCC Administrator authored
      ab332cd7
  18. Oct 11, 2022
    • Olivier Hainque's avatar
      Generic configury support for shared libs on VxWorks · 0ecd0f1c
      Olivier Hainque authored
      This change adds the configury bits to activate the build of
      shared libs on VxWorks ports configured with --enable-shared,
      for libraries variants where this is generally supported (rtp,
      code model !large - currently not compatible with -fPIC).
      
      Set lt_cv_deplibs_check_method in libtool.m4, so the build of
      libraries know how to establish dependencies.  This is useful in
      configurations such as aarch64 where proper support of LSE relies
      on accurate dependency information between libstdc++ and libgcc_s
      to begin with.
      
      Regenerate configure scripts to reflect libtool.m4 change.
      
      2022-10-09  Olivier Hainque  <hainque@adacore.com>
      
      	* libtool.m4 (*vxworks*): When enable_shared, set dynamic_linker
      	and friends for rtp !large. Assume the linker has the required
      	abilities and set lt_cv_deplibs_check_method.
      
      gcc/
      	* config.gcc (*vxworks*): Add t-slibgcc fragment
      	if enable_shared.
      
      libgcc/
      	* config.host (*vxworks*): When enable_shared, add
      	libgcc and crtstuff "shared" fragments for rtp except
      	large code model.
      	(aarch64*-wrs-vxworks7*): Remove t-slibgcc-libgcc from
      	the list of fragments.
      
      2022-10-09  Olivier Hainque  <hainque@adacore.com>
      
      gcc/
      	* configure: Regenerate.
      
      libatomic/
      	* configure: Regenerate.
      
      libbacktrace/
      	* configure: Regenerate.
      
      libcc1/
      	* configure: Regenerate.
      
      libffi/
      	* configure: Regenerate.
      
      libgfortran/
      	* configure: Regenerate.
      
      libgomp/
      	* configure: Regenerate.
      
      libitm/
      	* configure: Regenerate.
      
      libobjc/
      	* configure: Regenerate.
      
      liboffloadmic/
      	* configure: Regenerate.
      
      liboffloadmic/
      	* plugin/configure: Regenerate.
      
      libphobos/
      	* configure: Regenerate.
      
      libquadmath/
      	* configure: Regenerate.
      
      libsanitizer/
      	* configure: Regenerate.
      
      libssp/
      	* configure: Regenerate.
      
      libstdc++-v3/
      	* configure: Regenerate.
      
      libvtv/
      	* configure: Regenerate.
      
      lto-plugin/
      	* configure: Regenerate.
      
      zlib/
      	* configure: Regenerate.
      0ecd0f1c
  19. Sep 28, 2022
  20. Sep 27, 2022
    • Iain Buclaw's avatar
      d: Merge upstream dmd d579c467c1, phobos 88aa69b14. · c8dfa79c
      Iain Buclaw authored
      D front-end changes:
      
          - Throwing from contracts of `nothrow' functions has been
            deprecated, as this breaks the guarantees of `nothrow'.
          - Added language support for initializing the interior pointer of
            associative arrays using `new' keyword.
      
      Phobos changes:
      
          - The std.digest.digest module has been removed.
          - The std.xml module has been removed.
      
      gcc/d/ChangeLog:
      
      	* dmd/MERGE: Merge upstream dmd d579c467c1.
      	* decl.cc (layout_struct_initializer): Update for new front-end
      	interface.
      	* expr.cc (ExprVisitor::visit (AssignExp *)): Remove lowering of array
      	assignments.
      	(ExprVisitor::visit (NewExp *)): Add new lowering of new'ing
      	associative arrays to an _aaNew() library call.
      	* runtime.def (ARRAYSETASSIGN): Remove.
      	(AANEW): Define.
      
      libphobos/ChangeLog:
      
      	* libdruntime/MERGE: Merge upstream druntime d579c467c1.
      	* libdruntime/Makefile.am (DRUNTIME_DSOURCES): Remove
      	rt/arrayassign.d.
      	* libdruntime/Makefile.in: Regenerate.
      	* src/MERGE: Merge upstream phobos 88aa69b14.
      	* src/Makefile.am (PHOBOS_DSOURCES): Remove std/digest/digest.d,
      	std/xml.d.
      	* src/Makefile.in: Regenerate.
      c8dfa79c
  21. Aug 28, 2022
  22. Aug 27, 2022
    • Iain Buclaw's avatar
      d: Merge upstream dmd 817610b16d, phobos b578dfad9 · b7a586be
      Iain Buclaw authored
      D front-end changes:
      
          - Import latest bug fixes to mainline.
      
      Phobos changes:
      
          - Import latest bug fixes to mainline.
          - std.logger module has been moved out of experimental.
          - Removed std.experimental.typecons module.
      
      gcc/d/ChangeLog:
      
      	* dmd/MERGE: Merge upstream dmd 817610b16d.
      	* d-ctfloat.cc (CTFloat::parse): Update for new front-end interface.
      	* d-lang.cc (d_parse_file): Likewise.
      	* expr.cc (ExprVisitor::visit (AssignExp *)): Remove handling of array
      	assignments to non-trivial static and dynamic arrays.
      	* runtime.def (ARRAYASSIGN): Remove.
      	(ARRAYASSIGN_L): Remove.
      	(ARRAYASSIGN_R): Remove.
      
      libphobos/ChangeLog:
      
      	* libdruntime/MERGE: Merge upstream druntime 817610b16d.
      	* libdruntime/Makefile.am (DRUNTIME_DSOURCES): Add
      	core/internal/array/arrayassign.d.
      	* libdruntime/Makefile.in: Regenerate.
      	* src/MERGE: Merge upstream phobos b578dfad9.
      	* src/Makefile.am (PHOBOS_DSOURCES): Remove
      	std/experimental/typecons.d. Add std/logger package.
      	* src/Makefile.in: Regenerate.
      b7a586be
  23. Aug 04, 2022
  24. Aug 03, 2022
    • Iain Buclaw's avatar
      d: Merge upstream dmd d7772a2369, phobos 5748ca43f. · b6df1132
      Iain Buclaw authored
      In upstream dmd, the compiler front-end and run-time have been merged
      together into one repository.  Both dmd and libdruntime now track that.
      
      D front-end changes:
      
          - Deprecated `scope(failure)' blocks that contain `return' statements.
          - Deprecated using integers for `version' or `debug' conditions.
          - Deprecated returning a discarded void value from a function.
          - `new' can now allocate an associative array.
      
      D runtime changes:
      
          - Added avx512f detection to core.cpuid module.
      
      Phobos changes:
      
          - Changed std.experimental.logger.core.sharedLog to return
            shared(Logger).
      
      gcc/d/ChangeLog:
      
      	* dmd/MERGE: Merge upstream dmd d7772a2369.
      	* dmd/VERSION: Bump version to v2.100.1.
      	* d-codegen.cc (get_frameinfo): Check whether decision to generate
      	closure changed since semantic finished.
      	* d-lang.cc (d_handle_option): Remove handling of -fdebug=level and
      	-fversion=level.
      	* decl.cc (DeclVisitor::visit (VarDeclaration *)): Generate evaluation
      	of noreturn variable initializers before throw.
      	* expr.cc (ExprVisitor::visit (AssignExp *)): Don't generate
      	assignment for noreturn types, only evaluate for side effects.
      	* lang.opt (fdebug=): Undocument -fdebug=level.
      	(fversion=): Undocument -fversion=level.
      
      libphobos/ChangeLog:
      
      	* configure: Regenerate.
      	* configure.ac (libtool_VERSION): Update to 4:0:0.
      	* libdruntime/MERGE: Merge upstream druntime d7772a2369.
      	* libdruntime/Makefile.am (DRUNTIME_DSOURCES): Add
      	core/internal/array/duplication.d.
      	* libdruntime/Makefile.in: Regenerate.
      	* src/MERGE: Merge upstream phobos 5748ca43f.
      	* testsuite/libphobos.gc/nocollect.d:
      b6df1132
  25. Jul 07, 2022
  26. Jul 06, 2022
    • Iain Buclaw's avatar
      d: Merge upstream dmd 56589f0f4, druntime 651389b5, phobos 1516ecad9. · 208fbc77
      Iain Buclaw authored
      D front-end changes:
      
          - Import latest bug fixes to mainline.
      
      D runtime changes:
      
          - Import latest bug fixes to mainline.
      
      Phobos changes:
      
          - Import latest bug fixes to mainline.
      
      gcc/d/ChangeLog:
      
      	* dmd/MERGE: Merge upstream dmd 56589f0f4.
      
      libphobos/ChangeLog:
      
      	* libdruntime/MERGE: Merge upstream druntime 651389b5.
      	* src/MERGE: Merge upstream phobos 1516ecad9.
      208fbc77
  27. Jun 30, 2022
  28. Jun 29, 2022
    • Iain Buclaw's avatar
      d: Add SIMD intrinsics module and compiler built-ins. · b93ae1a0
      Iain Buclaw authored
      Vectors in D are exposed by the use of the `__vector(T[N])' type, and
      whilst most unary and binary operations work as you'd expect, there are
      some operations that are not possible without doing the operation
      unrolled, or calling some target-specific built-in, or with inline asm.
      
      This introduces a new `gcc.simd' module that introduces the following.
      
       - Prefetching has been exposed by a convenient `prefetch' function in
         the library.
      
       - Loading and storing from an unaligned address have been exposed by
         `loadUnaligned' and `storeUnaligned' intrinsics.
      
       - Vector permutations have been exposed by `shuffle`, and
         `shufflevector' intrinsics.
      
       - Converting between two vectors with a different element type has been
         exposed by a `convertvector' intrinsic.
      
       - The ternary operator has been exposed with a `blendvector' intrinsic.
      
       - Comparison operators have been exposed by `equalMask',
         `notEqualMask', `greaterMask', and `greaterEqualMask' intrinsics.
      
       - Logic operators have been exposed by convenient `notMask',
         `andAndMask', and `orOrMask' functions in the library.
      
      To be compatible with the LLVM D compiler's own SIMD intrinsic module,
      there is also the addition of an `extractelement' and `insertelement'
      convenience functions, and an alternative interface for calling the
      `shufflevector' function.
      
      The addition of these intrinsics lowers the boundary for users working
      in SIMD to get the desired codegen they want out of the compiler.
      
      Most of what is present here - apart from tests - is the adding of
      machinery in the intrinsics suite of functions to do validation on
      templated intrinsics.  Whilst these are still matched from the library
      by their generic (untyped) signature, there is a still an assumption
      that what has been instantiated and handed down to the code generator is
      valid, because why would these definitions be found outside of the
      in-tree D runtime library?  The majority of intrinsics are not
      templates, so the test on the mangled signature string still guarantees
      all types are as we expect them to be.  However there are still a small
      handful of other templated intrinsics (core.bitop.{rol,ror},
      core.math.toPrec, std.math.traits.isNaN, ...) that are currently
      unchecked, so would benefit from being included into this built-in
      checking function at some point in the future.
      
      gcc/d/ChangeLog:
      
      	* intrinsics.cc: Include diagnostic.h, langhooks.h,
      	vec-perm-indices.h.
      	(maybe_set_intrinsic): Add cases for new simd intrinsics.
      	(warn_mismatched_return_type): New function.
      	(warn_mismatched_argument): New function.
      	(build_shuffle_mask_type): New function.
      	(maybe_warn_intrinsic_mismatch): New function.
      	(expand_intrinsic_vec_cond): New function.
      	(expand_intrinsic_vec_convert): New function.
      	(expand_intrinsic_vec_blend): New function.
      	(expand_intrinsic_vec_shuffle): New function.
      	(expand_intrinsic_vec_shufflevector): New function.
      	(expand_intrinsic_vec_load_unaligned): New function.
      	(expand_intrinsic_vec_store_unaligned): New function.
      	(maybe_expand_intrinsic): Check signature of intrinsic before handing
      	off to front-end lowering.  Add cases for new simd intrinsics.
      	* intrinsics.def (INTRINSIC_LOADUNALIGNED): Define intrinsic.
      	(INTRINSIC_STOREUNALIGNED): Define intrinsic.
      	(INTRINSIC_SHUFFLE): Define intrinsic.
      	(INTRINSIC_SHUFFLEVECTOR): Define intrinsic.
      	(INTRINSIC_CONVERTVECTOR): Define intrinsic.
      	(INTRINSIC_BLENDVECTOR): Define intrinsic.
      	(INTRINSIC_EQUALMASK): Define intrinsic.
      	(INTRINSIC_NOTEQUALMASK): Define intrinsic.
      	(INTRINSIC_GREATERMASK): Define intrinsic.
      	(INTRINSIC_GREATEREQUALMASK): Define intrinsic.
      
      libphobos/ChangeLog:
      
      	* libdruntime/Makefile.am (DRUNTIME_DSOURCES): Add gcc/simd.d.
      	* libdruntime/Makefile.in: Regenerate.
      	* libdruntime/gcc/simd.d: New file.
      
      gcc/testsuite/ChangeLog:
      
      	* gdc.dg/Wbuiltin_declaration_mismatch.d: Rename to...
      	* gdc.dg/Wbuiltin_declaration_mismatch1.d: ...this.
      	* gdc.dg/Wbuiltin_declaration_mismatch2.d: New test.
      	* gdc.dg/torture/simd_blendvector.d: New test.
      	* gdc.dg/torture/simd_cond.d: New test.
      	* gdc.dg/torture/simd_convertvector.d: New test.
      	* gdc.dg/torture/simd_load.d: New test.
      	* gdc.dg/torture/simd_logical.d: New test.
      	* gdc.dg/torture/simd_shuffle.d: New test.
      	* gdc.dg/torture/simd_shufflevector.d: New test.
      	* gdc.dg/torture/simd_store.d: New test.
      b93ae1a0
    • GCC Administrator's avatar
      Daily bump. · fb29fdea
      GCC Administrator authored
      fb29fdea
  29. Jun 28, 2022
    • Iain Buclaw's avatar
      d: Add `@simd` and `@simd_clones` attributes to compiler and library · 62012774
      Iain Buclaw authored
      The `@simd` attribute is equivalent to `__attribute__((simd))`, and
      `@simd_clones` is a convenience alias to allow specifying whether the
      compiler should generated masked or non-masked simd clones.
      
      gcc/d/ChangeLog:
      
      	* d-attribs.cc (handle_omp_declare_simd_attribute): New function.
      	(d_handle_simd_attribute): New function.
      	(d_langhook_common_attribute_table): Add 'omp declare simd' attribute.
      	(d_langhook_attribute_table): Add simd attribute.
      
      libphobos/ChangeLog:
      
      	* libdruntime/gcc/attributes.d (simd): Define.
      
      gcc/testsuite/ChangeLog:
      
      	* gdc.dg/attr_simd1.d: New test.
      	* gdc.dg/attr_simd2.d: New test.
      62012774
  30. Jun 25, 2022
  31. Jun 24, 2022
    • Iain Buclaw's avatar
      d: Add `@register' attribute to compiler and library. · 91418c42
      Iain Buclaw authored
      The `@register` attribute specifies that a local or `__gshared` variable
      is to be given a register storage-class in the C sense of the term, and
      will be placed into a register named `registerName`.
      
      The variable needs to boiled down to a data type that fits the target
      register.  It also cannot have either thread-local or `extern` storage.
      It is an error to take the address of a register variable.
      
      	PR d/105413
      
      gcc/d/ChangeLog:
      
      	* d-attribs.cc (d_handle_register_attribute): New function.
      	(d_langhook_attribute_table): Add register attribute.
      	* d-codegen.cc (d_mark_addressable): Error if taken address of
      	register variable.
      	(build_frame_type): Error if register variable has non-local
      	references.
      	* d-tree.h (d_mark_addressable): Add complain parameter.
      	* decl.cc (get_symbol_decl): Mark register varibles DECL_REGISTER.
      	Error when register variable declared thread-local or extern.
      	* expr.cc (ExprVisitor::visit (IndexExp *)): Don't complain about
      	marking register vectors as addressable in an ARRAY_REF.
      
      libphobos/ChangeLog:
      
      	* libdruntime/gcc/attributes.d (register): Define.
      
      gcc/testsuite/ChangeLog:
      
      	* gdc.dg/attr_register1.d: New test.
      	* gdc.dg/attr_register2.d: New test.
      	* gdc.dg/attr_register3.d: New test.
      91418c42
    • Iain Buclaw's avatar
      d: Merge upstream dmd 529110f66, druntime 148608b7. · d97f3bca
      Iain Buclaw authored
      D front-end changes:
      
          - Import latest bug fixes to mainline.
      
      gcc/d/ChangeLog:
      
      	* dmd/MERGE: Merge upstream dmd 529110f66.
      	* decl.cc (DeclVisitor::visit (TupleDeclaration *)): Update for new
      	front-end interface.
      	* types.cc (layout_aggregate_members): Likewise.
      
      libphobos/ChangeLog:
      
      	* libdruntime/MERGE: Merge upstream druntime 148608b7.
      d97f3bca
  32. Jun 23, 2022
  33. Jun 22, 2022
    • Iain Buclaw's avatar
      d: Merge upstream dmd 6203135dc, druntime e150cca1, phobos a4a18d21c. · 445d8def
      Iain Buclaw authored
      D front-end changes:
      
          - Input parameters can now be applied on extern(C++) functions to
            bind to `const &' when the `-fpreview=in' flag is in effect.
      
      D runtime changes:
      
          - Run-time flag `--DRT-oncycle=deprecate' has been removed.
      
      Phobos changes:
      
          - Removed std.experimental.logger's capability to set the minimal
            LogLevel at compile time.
      
      gcc/d/ChangeLog:
      
      	* dmd/MERGE: Merge upstream dmd 6203135dc.
      	* typeinfo.cc (TypeInfoVisitor::visit (TypeInfoStructDeclaration *)):
      	Update for new front-end interface.
      	(SpeculativeTypeVisitor::visit (TypeStruct *)): Likewise.
      
      libphobos/ChangeLog:
      
      	* libdruntime/MERGE: Merge upstream druntime e150cca1.
      	* src/MERGE: Merge upstream phobos a4a18d21c.
      	* testsuite/libphobos.cycles/cycles.exp (cycle_test_list): Update
      	expected result of deprecate test.
      445d8def
  34. Jun 16, 2022
  35. Jun 15, 2022
    • Iain Buclaw's avatar
      d: Add `@no_sanitize' attribute to compiler and library. · 90f2a111
      Iain Buclaw authored
      The `@no_sanitize' attribute disables a particular sanitizer for this
      function, analogous to `__attribute__((no_sanitize))'.  The library also
      defines `@noSanitize' to be compatible with the LLVM D compiler's
      `ldc.attributes'.
      
      gcc/d/ChangeLog:
      
      	* d-attribs.cc (d_langhook_attribute_table): Add no_sanitize.
      	(d_handle_no_sanitize_attribute): New function.
      
      libphobos/ChangeLog:
      
      	* libdruntime/gcc/attributes.d (no_sanitize): Define.
      	(noSanitize): Define.
      
      gcc/testsuite/ChangeLog:
      
      	* gdc.dg/asan/attr_no_sanitize1.d: New test.
      	* gdc.dg/ubsan/attr_no_sanitize2.d: New test.
      90f2a111
Loading