d: Merge upstream dmd 09db0c41e, druntime e68a5ae3.
authorIain Buclaw <ibuclaw@gdcproject.org>
Sat, 25 Apr 2020 00:19:04 +0000 (02:19 +0200)
committerIain Buclaw <ibuclaw@gdcproject.org>
Sat, 25 Apr 2020 00:19:04 +0000 (02:19 +0200)
commit018730326d878d98b85b1256ff220e76665ed97e
tree39976b0fbb3c7afa4583d54d0be78c63ec5ff351
parent873878bb82443ce738f35b1ad3c9ef98f6aeb6da
d: Merge upstream dmd 09db0c41e, druntime e68a5ae3.

* New core.math.toPrec templates have been added as an intrinsic.

  Some floating point algorithms, such as Kahan-Babuska-Neumaier
  Summation, require rounding to specific precisions. Rounding to
  precision after every operation, however, loses overall precision in
  the general case and is a runtime performance problem.

  Adding these functions guarantee the rounding at required points in
  the code, and document where in the algorithm the requirement exists.

* Support IBM long double types in core.internal.convert.

* Add missing aliases for 64-bit vectors in core.simd.

* RUNNABLE_PHOBOS_TEST directive has been properly integrated into the
  D2 language testsuite.

Reviewed-on: https://github.com/dlang/druntime/pull/3063
     https://github.com/dlang/dmd/pull/11054

gcc/d/ChangeLog:

* intrinsics.cc (expand_intrinsic_toprec): New function.
(maybe_expand_intrinsic): Handle toPrec intrinsics.
* intrinsics.def (TOPRECF, TOPREC, TOPRECL): Add toPrec intrinsics.
61 files changed:
gcc/d/ChangeLog
gcc/d/dmd/MERGE
gcc/d/intrinsics.cc
gcc/d/intrinsics.def
gcc/testsuite/gdc.test/compilable/interpret3.d
gcc/testsuite/gdc.test/runnable/builtin.d
gcc/testsuite/gdc.test/runnable/complex.d
gcc/testsuite/gdc.test/runnable/constfold.d
gcc/testsuite/gdc.test/runnable/foreach4.d
gcc/testsuite/gdc.test/runnable/ifti.d
gcc/testsuite/gdc.test/runnable/implicit.d
gcc/testsuite/gdc.test/runnable/inner.d
gcc/testsuite/gdc.test/runnable/interpret.d
gcc/testsuite/gdc.test/runnable/issue8671.d
gcc/testsuite/gdc.test/runnable/lazy.d
gcc/testsuite/gdc.test/runnable/mars1.d
gcc/testsuite/gdc.test/runnable/mixin1.d
gcc/testsuite/gdc.test/runnable/mixin2.d
gcc/testsuite/gdc.test/runnable/s2ir.d
gcc/testsuite/gdc.test/runnable/stress.d
gcc/testsuite/gdc.test/runnable/template4.d
gcc/testsuite/gdc.test/runnable/template9.d
gcc/testsuite/gdc.test/runnable/test10942.d
gcc/testsuite/gdc.test/runnable/test11.d
gcc/testsuite/gdc.test/runnable/test12.d
gcc/testsuite/gdc.test/runnable/test12197.d
gcc/testsuite/gdc.test/runnable/test15.d
gcc/testsuite/gdc.test/runnable/test22.d
gcc/testsuite/gdc.test/runnable/test23.d
gcc/testsuite/gdc.test/runnable/test24.d
gcc/testsuite/gdc.test/runnable/test27.d
gcc/testsuite/gdc.test/runnable/test28.d
gcc/testsuite/gdc.test/runnable/test34.d
gcc/testsuite/gdc.test/runnable/test37.d
gcc/testsuite/gdc.test/runnable/test42.d
gcc/testsuite/gdc.test/runnable/test5305.d
gcc/testsuite/gdc.test/runnable/test60.d
gcc/testsuite/gdc.test/runnable/testaa.d
gcc/testsuite/gdc.test/runnable/testbitarray.d
gcc/testsuite/gdc.test/runnable/testdstress.d
gcc/testsuite/gdc.test/runnable/testfile.d
gcc/testsuite/gdc.test/runnable/testformat.d
gcc/testsuite/gdc.test/runnable/testline.d
gcc/testsuite/gdc.test/runnable/testmmfile.d
gcc/testsuite/gdc.test/runnable/testscope2.d
gcc/testsuite/gdc.test/runnable/testsignals.d
gcc/testsuite/gdc.test/runnable/testsocket.d
gcc/testsuite/gdc.test/runnable/teststdio.d
gcc/testsuite/gdc.test/runnable/testthread2.d
gcc/testsuite/gdc.test/runnable/testtypeid.d
gcc/testsuite/gdc.test/runnable/traits.d
gcc/testsuite/gdc.test/runnable/wc.d
gcc/testsuite/gdc.test/runnable/wc2.d
gcc/testsuite/gdc.test/runnable/wc3.d
gcc/testsuite/gdc.test/runnable/xtest46.d
gcc/testsuite/gdc.test/runnable/xtest55.d
libphobos/libdruntime/MERGE
libphobos/libdruntime/core/cpuid.d
libphobos/libdruntime/core/internal/convert.d
libphobos/libdruntime/core/math.d
libphobos/libdruntime/core/simd.d