Commit graph

806 commits

Author SHA1 Message Date
kinke
bc0af1193c Merge pull request #1707 from klickverbot/cmake-target
cmake: Avoid deprecated TARGET/LOCATION property
2016-08-18 21:31:02 +02:00
Rainer Schuetze
7720d5528d fix AppVeyor builds by adding support for double exception handling with UCRT lib 10.0.14393.0 2016-08-18 08:45:19 +02:00
David Nadlinger
6f09cba73a cmake: Avoid deprecated TARGET/LOCATION property 2016-08-16 02:49:31 +02:00
Martin
a5e5bd1716 Keep _d_newclass() semantics, re-introduce _d_allocclass() instead
And use that one in DtoNewClass(), keeping 3rd party code from breaking.
2016-08-15 13:19:11 +02:00
Martin
97921fbb8d Fix issue #966 (initializing class instances twice) 2016-08-14 15:18:40 +02:00
Kai Nacke
3b8ab63ecc ppc/ppc64: small druntime fixes 2016-08-07 22:07:04 +02:00
Heromyth
6a2c52ec35 FreeBSD: Fix shared library build, working Hello World
Based off GitHub pull request #1660, with minor edits.
2016-08-05 19:55:47 +01:00
Johan Engelen
0c729376b7 Merge DDMD tag 2.071.2-b2
(no druntime changes)
2016-08-01 22:17:42 +02:00
Kai Nacke
60e841dd27 Add latest changes for cent/ucent data type.
- Enhanced druntime modules
- Updates test cases
2016-07-31 18:38:58 +02:00
Johan Engelen
246c0c359c Update profile-rt-40 2016-07-28 13:56:39 +02:00
Johan Engelen
3469151500 Implement @optStrategy UDA.
Resolves #1549.
2016-07-24 16:05:24 +02:00
Kai Nacke
67e755134a OpenBSD: More additions to core.sys.posix.*
Update to druntime, cherry-picked from upstream.
2016-07-24 14:00:11 +02:00
Johan Engelen
4d4f670229 Update profile-rt-40 to llvm svn r276522 2016-07-23 15:26:33 +02:00
Martin
d034ede92e Phobos: Cherry-pick std.conv.toChars() fix 2016-07-22 01:15:35 +02:00
Johan Engelen
45ab1e2b67 Add LLVM4.0 PGO runtime and llvm-profdata tool 2016-07-19 17:57:50 +02:00
Kai Nacke
e0e2638594 Add latest addition to druntime and Phobos
- OpenBSD definitions
- sys.linux.sys.auxv module
- ARM assembly implementation of biguint
2016-07-10 15:07:04 +02:00
Johan Engelen
765126a2f5 Update to Phobos with inlining fixes. 2016-07-02 17:08:48 +02:00
Martin
328f10d236 druntime: Fix getpwuid_r and getpwnam_r for Solaris 2016-07-01 00:29:39 +02:00
Johan Engelen
e216b1180d Merge 2.071.1 (relative to 2.071.1-b2, only Phobos and dmd-testsuite changed) 2016-06-30 11:24:47 +02:00
Martin
82005009e7 Refactor and fix intrinsics for variadic functions
I.e., va_start(), va_copy() and va_arg().
2016-06-28 22:40:14 +02:00
Johan Engelen
0c7afcc8ab [profile-rt] Add check for defining COMPILER_RT_HAS_FCNTL_LCK in CMake script.
This is for file-locking during the awesome on-the-fly profile merging feature using `%m` in `-fprofile-instr-generate=abc_%m_xyz` (for example).
2016-06-23 00:16:35 +02:00
David Nadlinger
6de981af75 codegen, runtime: Go back to old executable .bss range detection
We had switched to a somewhat simplified implementation Martin
came up with for DMD based on our old one. Unfortunately, that
turned out not to work for certain ld.bfd versions on Linux
(e.g. 2.26.0.20160501), where the .bss section from other shared
objects would be picked up instead.

This reverts commit 08ad4fddb5.

GitHub: Fixes #1534.
2016-06-21 11:25:36 +01:00
David Nadlinger
94fe1a6dc8 Merge pull request #1219 from JohanEngelen/pgo
Profile-guided optimizations (PGO)
2016-06-20 21:53:13 +01:00
Martin
db6f562fe8 Update druntime (Solaris) and dmd-testsuite (issue #953) 2016-06-20 20:25:04 +02:00
Johan Engelen
21c2c6dd4b [PGO] Update ldc-profdata-3.9 and profile-rt-39 to svn r273081 2016-06-20 17:39:46 +02:00
Johan Engelen
176961f325 [PGO] Fix tests on Win x86. Add testcase for extern(C++) function passed as template alias parameter. 2016-06-20 17:38:28 +02:00
Johan Engelen
ea7a2e0d0f [PGO] Update ldc-profdata-3.9 and profile-rt-39 to svn r270319 2016-06-20 17:28:33 +02:00
Johan Engelen
103c6f557e [PGO] Update llvm-profdata-3.9 and profile-rt-39 to LLVM r269788. 2016-06-20 17:28:31 +02:00
Johan Engelen
e1c06c1e64 [PGO] Move link hint for ws2_32.lib to cmake script 2016-06-20 17:28:30 +02:00
Johan Engelen
5633042a59 Fix multilib building of ldc-profile-rt 2016-06-20 17:28:30 +02:00
Johan Engelen
9233813fd4 [PGO] Attempt to fix Windows linking problem. 2016-06-20 17:28:28 +02:00
Johan Engelen
ec6c0953b1 Update profile-rt to trunk rev. 265227 2016-06-20 17:28:25 +02:00
Johan Engelen
e0d9c58443 [PGO] Add PGO to LDC. Supported for LLVM >= 3.7
Add the commandline options -fprofile-instr-generate[=filename] and -profile-instr-use=filename
-fprofile-instr-generate
-- Add instrumentation on branches, switches, and function entry; uses LLVM's InstrProf pass.
-- Link to profile runtime that writes instrumentation counters to a file.
-fprofile-instr-use
-- Read profile data from a file and apply branch weights to branches and switches, and annotate functions with entrycount in LLVM IR.
-- Functions with low or high entrycount are marked with 'cold' or 'inlinehint'.

The only statement type without PGO yet is "try-finally".

A new pragma, `pragma(LDC_profile_instr, [ true | false ])`, is added to selectively disable/enable instrumentation of functions (granularity = whole functions).

The runtime library ldc-profile-rt is a copy of LLVM compiler-rt lib/profile. It has to be exactly in-sync with the LLVM version, and thus we need a copy for each PGO-supported LLVM (>=3.7).
import ldc.profile for a D interface to ldc-profile-rt (for example to reset execution counts after a program startup phase).

The instrumentation data is mainly passed on to LLVM: function-entry counts and branch counts/probabilities. LDC marks functions as hot when "execution count is 30% of the maximum function execution count", and marks functions as cold if their count is 1% of maximum function execution count.

The source of LLVM's llvm-profdata tool is hereby included in LDCs repository (different source for each LLVM version), and the binary is included in the install bin folder.
The executable is named "ldc-profdata" to avoid clashing with llvm-profdata on the same machine. This is needed because profdata executable has to be in-sync with the LLVM version used to build LDC.

Maintenance burden: for trunk LLVM, we have to keep ldc-profile-rt and llvm-profdata in sync. There is no diff with upstream; but because of active development there are the occasional API changes.
2016-06-20 17:28:22 +02:00
Martin
4839594d45 Merge branch 'ltsmaster'
Conflicts:
	runtime/druntime
	runtime/phobos
2016-06-18 13:41:22 +02:00
Johan Engelen
28487120dc Merge DMD tag 'v2.071.1-b2' 2016-05-30 11:08:00 +02:00
Johan Engelen
2e6740842f SIMD: Fix loadUnaligned for newer LLVM types and add storeUnaligned.
Resolves issue #1518. Combines druntime patches from Martin Novak and Ilya Yaroshenko.
2016-05-28 01:01:48 +02:00
Johan Engelen
108acee6b7 Add @fastmath and @llvmFMF LDC magic attributes to enable aggressive math optimizations. 2016-05-22 20:06:57 +02:00
Johan Engelen
a834124548 Update phobos submodule. 2016-05-19 14:16:55 +02:00
Rainer Schuetze
2bcb3abcaa update druntime with fix for https://github.com/ldc-developers/ldc/issues/1491 2016-05-16 10:53:56 +02:00
Johan Engelen
ffaf350147 Update druntime (Solaris fixes). 2016-05-11 18:27:59 +02:00
Johan Engelen
7fe21c2948 Update Phobos: fixes Windows datetime test. 2016-05-10 18:37:58 +02:00
Johan Engelen
a7f2b827c6 Solaris: fix stdio issue for x64 OS
druntime PR https://github.com/ldc-developers/druntime/pull/72
2016-05-10 16:31:07 +02:00
David Nadlinger
da5ba0bd49 Merge in latest 2.071 Phobos commit 2016-05-06 20:09:55 +01:00
David Nadlinger
219758756c Merge branch 'merge-2.071' 2016-05-06 19:24:48 +01:00
Johan Engelen
7b6a94f59e Update Windows timezones in Phobos to fix AppVeyor testing.
(cherry-picked dlang/phobos 7e49cce48d2093ca32ed8dbac044c3b9af6f0802)
2016-05-03 22:19:44 +02:00
Rainer Schuetze
a5d3e015b1 update druntime 2016-05-01 09:53:37 +02:00
Kai Nacke
0b2d7e7969 Merge remote-tracking branch 'origin/ltsmaster' 2016-04-30 16:35:00 -04:00
Kai Nacke
3197d68453 druntime: Linux/PPC64: Fix use of __tls_get_addr
This fixes the build error on the OpenPowerHub builder.
2016-04-30 14:38:16 -04:00
Kai Nacke
4921b4eb98 druntime: Solaris: add utsname. 2016-04-30 13:43:05 -04:00
Rainer Schuetze
3db59b89d7 update phobos 2016-04-30 10:18:14 +02:00