Commit Graph
100 Commits
Author SHA1 Message Date
David Nadlinger a8ae435c69 Remove bogous DtoMemCpy assertion.
DtoMemCpy is called with identical pointer arguments in
some legal cases.
2013-06-07 02:23:00 +02:00
David Nadlinger 25522ea8b0 Merge branch 'release-0.11.0'.
Conflicts:
	cmake/Modules/FindLLVM.cmake
	runtime/phobos
2013-06-05 17:50:16 +02:00
David Nadlinger c41ef6b95e Fold in MinGW Phobos test update. 2013-06-05 17:46:40 +02:00
David Nadlinger 5423a90c25 Search LLVM_ROOT_DIR before system directories. 2013-06-05 17:11:08 +02:00
David Nadlinger 47a1815892 Try llvm-config binaries with version suffix.
This allows us to pick up the newest available version on
several common Debian derivatives.

[Cherry-picked 2b4f49b4e from master.]
2013-06-05 17:11:05 +02:00
David Nadlinger 89f9c239fa Merge branch 'release-0.11.0' 2013-06-04 16:50:08 +02:00
David Nadlinger b2bacba7f4 Correct wiki URL in debug info.
The wiki is not available using SSL; thanks to Kai for noticing
this.
2013-06-04 16:46:15 +02:00
David Nadlinger e84b2692b1 Fold in missed MinGW math bug fix. 2013-06-04 16:45:04 +02:00
David Nadlinger 3b38d34698 Fix up botched merge in 005f993. 2013-06-02 22:02:09 +02:00
David Nadlinger 005f993982 Merge branch 'release-0.11.0'.
Conflicts:
	gen/llvmhelpers.cpp
2013-06-02 21:53:41 +02:00
David Nadlinger 98e8c37bf5 Merge pull request #379 from klickverbot/initializer-type-mismatch
Fix initializer type mismatch crash
2013-06-02 12:44:02 -07:00
David Nadlinger ec59399e21 Change all URLs to point to wiki.dlang.org for the time being. 2013-06-02 21:27:02 +02:00
David Nadlinger c89d4809d6 Be more lenient with initializer type mismatch; zext as necessary.
The integer initializer width mismatch issue should really be
fixed in the frontend, but is related to forward referencing
and thus hard to track down.

Also fixes an unlisted regression since the 2.061 merge, where
there would be a const(char*) vs. immutable(char*) mismatch
reported for some string constants.

GitHub: Fixes #378.
2013-06-02 21:05:33 +02:00
David Nadlinger ae48a19251 Refactoring-only part of DtoConstExpInit fix. 2013-06-02 21:05:33 +02:00
David Nadlinger d9ce9ce67b Removed TODO-riddled DtoInitializer only used in DtoVarDeclaration. 2013-06-02 21:05:33 +02:00
David Nadlinger 0a7eec400f Removed dead global initializer code. 2013-06-02 21:05:33 +02:00
David Nadlinger feeb5e95cc Merge tag 'v0.11.0-beta1' into release-0.11.0
The merge of the MinGW Port updates accidentally didn't make
it into the GitHub version of the release branch, even though
the tag was correct.
2013-06-01 13:53:47 +02:00
David Nadlinger b84fd60f6d Merge pull request #377 from klickverbot/minimize-dmd-diff
Pick some low-hanging DMD-diff reduction fruit
2013-06-01 03:56:03 -07:00
David Nadlinger 9dd573d96d Remove what seems to be an ancient LLVM-only issue 314 fix. 2013-05-31 22:42:21 +02:00
David Nadlinger c0a5145829 Remove DMDV2 to align with 2.062 upstream source. 2013-05-31 22:42:21 +02:00
David Nadlinger 1b4f0c5d4a Remove LDC-only workaround for 2206.
The bug has been fixed in upstream at least since 2.052.
2013-05-31 22:42:21 +02:00
David Nadlinger 7e7af8c920 Prefer Port over #if-switching on the compiler.
The issue might have to be revisited (with proper testing)
for FreeBSD or ARM.
2013-05-31 22:42:21 +02:00
David Nadlinger ca3cd82805 Removed obsolete html.{h, c}.
Gone from upstream in 2.062 as well.
2013-05-31 22:42:21 +02:00
David Nadlinger 54696e3d3c Reflect the LLVM 3.1+ requirement in the CMake build system. 2013-05-31 22:33:21 +02:00
David Nadlinger 2b4f49b4e7 Try llvm-config binaries with version suffix.
This allows us to pick up the newest available version on
several common Debian derivatives.

GitHub: Fixes #376.
2013-05-31 22:31:38 +02:00
David Nadlinger b9722d6671 Merge branch 'release-0.11.0'.
GitHub: Closes #375.
2013-05-31 22:22:50 +02:00
David Nadlinger 2617db0395 Merge pull request #346 from klickverbot/m32m64
Only specify -m32/-m64 for archs where the variants exist.
2013-05-31 12:10:49 -07:00
David Nadlinger 759f47f6bf Merge pull request #374 from klickverbot/remove-3.0
Remove LLVM 3.0 support
2013-05-31 12:09:44 -07:00
David Nadlinger 3f358ac57b Removed LLVM support from druntime as well. 2013-05-31 20:48:38 +02:00
David Nadlinger c02b38fe9a Removed LLVM 3.0 compatibility code.
There might be still some pieces left here and there, and
there is certainly code that could be rewritten in a nicer
way with the 3.0 requirement out of the picture.
2013-05-31 20:48:38 +02:00
David Nadlinger 84a00b3fe9 Stop running Travis tests using LLVM 3.0.
Sets the stage for removal of 3.0 support.
2013-05-31 20:48:38 +02:00
David Nadlinger f538dfc47f Merge branch 'klickverbot/shorten-readme' into release-0.11.0. 2013-05-31 20:00:46 +02:00
David Nadlinger 60bb550254 Merge pull request #369 from klickverbot/shorten-readme
Shorten readme
2013-05-31 08:53:36 -07:00
David Nadlinger abfa498efb Merge pull request #370 from Uhlisys/master
Correct LDC Specific C++11 Violation
2013-05-31 08:42:14 -07:00
David Nadlinger 35b91f4e98 Merge pull request #371 from redstar/release-0.11.0
Change version number for release
2013-05-30 07:59:05 -07:00
David Nadlinger fa7ad4cbc7 Merged in MinGW port updates.
This has been submitted to upstream DMD as GitHub pull
request #2086, but didn't make it in time for 2.063.
2013-05-29 22:19:13 +02:00
David Nadlinger 798a8e7822 MinGW: Fixed long double formatting. 2013-05-29 22:18:55 +02:00
David Nadlinger 0b5989c51a MinGW: Use actually working strtold.
Like their whole runtime in general, the MSVC version does
not handle 80 bit reals/long doubles.
2013-05-29 22:18:42 +02:00
David Nadlinger bf4df5fcc4 Remove unnecessary #undefs in Port header.
The Port function names are actually camel-cased and
as such do not collide with the math macros, and undefining
the names in the header is just annoying on platforms where
you want to use the system macros in the implementation.
2013-05-29 22:18:27 +02:00
David Nadlinger 7ab407da38 Separate out MinGW Port implementation.
This explicit style is generally preferred in DMD for platform-
specific code, and makes sense here as long doubles are tricky
on MinGW.
2013-05-29 22:18:16 +02:00
David Nadlinger 39313e7735 Ugly workaround for broken asm support in older CMake versions.
The only justification for this is the fact that we need it
to work for the release process.
2013-05-27 20:06:51 +02:00
David Nadlinger 00c073819f Avoid setting C compiler flags on threadasm.S. 2013-05-27 19:00:55 +02:00
David Nadlinger 9c4d6e2c5a *LLVM-based* D compiler. 2013-05-27 16:37:23 +02:00
David Nadlinger a4a975df6c Rewrap to 70 characters. 2013-05-21 00:03:58 +02:00
David Nadlinger 6fcfa2db54 Removed brief build instructions. 2013-05-21 00:03:03 +02:00
David Nadlinger 6e57b6c213 Merge pull request #361 from klickverbot/osx
PIC by default on OS X; cleanups.
2013-05-19 15:33:11 -07:00
David Nadlinger d402cd382e Always add 'uwtable' attribute on x86_64.
This is what Clang does, and omitting it could lead to problems
w.r.t. the System V ABI. Doesn't seem to have caused any issues
so far, though.
2013-05-19 21:47:15 +02:00
David Nadlinger edbace8ae8 Default to PIC on OS X.
driver/target.h is due for a refactoring after the next
release is branched off.
2013-05-19 21:19:37 +02:00
David Nadlinger 4597423dc5 More IN_LLVM. 2013-05-19 20:52:51 +02:00
David Nadlinger 4ad1b94f11 Remove piece of dead code gone from upstream as well.
We do not support building with DMC anyway, so no
functionality change implied.
2013-05-19 20:52:42 +02:00
David Nadlinger ad4eb1b6bd Align unused real alignment code to upstream source.
We set the target-specific values at runtime in Type::init().
2013-05-19 20:52:42 +02:00
David Nadlinger 8123c1c7b9 Pull in hack to reduce GC root ranges on Linux.
GitHub: #233.
2013-05-19 20:52:26 +02:00
David Nadlinger 8d0749c394 Merge pull request #360 from klickverbot/union-initializer
Unify struct initializer codegen, fix it for unions
2013-05-19 11:49:55 -07:00
David Nadlinger 87c8a96545 Check initializer type size in IrStruct::getDefaultInit(). 2013-05-19 20:25:16 +02:00
David Nadlinger 1fed92b9b7 VarExp::toElem refactoring and global size assertion.
Frontend errors shouldn't be used for glue layer consistency
checks – maybe the error was actually hit in ancient versions.
2013-05-19 20:25:16 +02:00
David Nadlinger 41e580a79f Get rid of now-obsolete DtoConstInitializerType. 2013-05-19 20:25:16 +02:00
David Nadlinger eef05ba019 Do not try to guess exact initializer type.
This might have been required with the old (pre-3.0) LLVM
type system, but the module linker handles global type
resolution just fine now.

Also, it is virtually impossible to determine the type in
advance for some cases, e.g. an array of unions with an
initializer that contains pointers to the array itself.
2013-05-19 20:25:11 +02:00
David Nadlinger f8f405000b Avoid confusing naming convention.
We generally do not really use underscore prefixes. But if
they are used in other codebases, they typically refer to
member variables.
2013-05-18 19:51:37 +02:00
David Nadlinger 7b435c2c87 Unify handling of struct initializers.
GitHub: Fixes #351.
2013-05-18 19:51:37 +02:00
David Nadlinger b577d1cf0b Handle different element initializer types in array literals. 2013-05-18 16:46:57 +02:00
David Nadlinger b49cbeaaf1 Factored out struct initializer constant generation. 2013-05-17 01:02:02 +02:00
David Nadlinger beed5c3044 Get rid of empty IrBase class.
It isn't useful in any way now that the GC is out of the
picture, and the existance of a "dummy" toChars() method is
annoying when debugging.
2013-05-15 20:28:53 +02:00
David Nadlinger f57eac796f Expand on IrType::get rationale. 2013-05-15 20:19:44 +02:00
David Nadlinger b3dbf9cd9c Merge pull request #349 from klickverbot/fix-moduleinfo
Fixed ModuleInfo module name emission
2013-05-12 05:21:08 -07:00
David Nadlinger 7048c69d51 Merge pull request #350 from klickverbot/oss-response-expand
Replaced response_expand with BSD-licensed reimplementation.
2013-05-12 05:01:14 -07:00
David Nadlinger db270a9a94 Replaced response_expand with BSD-licensed reimplementation.
Cleanup to follow later.

GitHub: Fixes #267.
2013-05-12 13:38:23 +02:00
David Nadlinger b2ca861f64 Fixed ModuleInfo module name emission.
The name string is actually emitted inline, not as a pointer
to a global.

GitHub: Fixes #243.
2013-05-12 01:25:48 +02:00
David Nadlinger e1501c712f Moved constant array creation helper to llvmhelpers.h. 2013-05-12 01:25:12 +02:00
David Nadlinger ad03a435ad Remove code for emitting the old ModuleInfo layout. 2013-05-12 00:47:49 +02:00
David Nadlinger b2da152704 Remove D1 ModuleInfo remnants. 2013-05-12 00:39:15 +02:00
David Nadlinger fc8e0c4c20 Revert -float-abi implementation.
The new command line option conflicted with a builtin LLVM 3.0
one. The functionality will be added back in after the 0.11.0
release branch has been created.

This reverts commit 6a1bc70bd7 and
subsequent fixes.
2013-05-12 00:18:44 +02:00
David Nadlinger 7500673395 Merge pull request #348 from klickverbot/fix-eh
Update catch landingpad codegen to match latest druntime change.
2013-05-11 14:56:04 -07:00
David Nadlinger f894a7809c Update catch landingpad codegen to match latest druntime change. 2013-05-11 23:29:39 +02:00
David Nadlinger 7fe8406ec2 Merge in test cases for GitHub issue #340. 2013-05-11 22:03:08 +02:00
David Nadlinger 23d82b9620 Only specify -m32/-m64 for archs where the variants exist. 2013-05-11 21:49:19 +02:00
David Nadlinger 8da8bdd209 LLVM pre-3.2 does not have llvm::Triple::Android.
Strangely enough, the Travis pull request status was
definitely green before I merged it in.
2013-05-11 21:44:05 +02:00
David Nadlinger e37f0e0d35 Fix ARM default floating-point ABI.
It shouldn't really matter, as we probably aren't going to
support anything but AAPCS anytime soon.
2013-05-11 21:33:20 +02:00
David Nadlinger 17ef7f7d09 Merge pull request #345 from klickverbot/template-function-label
Fix inline asm labels in template functions.
2013-05-11 12:24:30 -07:00
David Nadlinger b5dd0e07f2 Merge pull request #344 from klickverbot/float-abi
Added -float-abi and auto-detection logic for ARM.
2013-05-11 12:17:19 -07:00
David Nadlinger 6a1bc70bd7 Added -float-abi and auto-detection logic for ARM.
Even though this argument design conflates two separate concepts
(ABI and hardware/software implementation), I chose to go
with it since users are liekly know it from GCC and the
combination of softloat operations with hardfloat ABI makes
no sense.

I didn't implement it for old LLVM versions, as ARM EABI
exception handling requires LLVM 3.3+ anyway, without which
LDC would be useless anyway.
2013-05-11 21:07:54 +02:00
David Nadlinger 5742a0219c Fix inline asm labels in template functions.
This is a giant kludge to avoid a redesign of the inline asm
handling code. I'd be glad if somebody came up with a better
solution.

GitHub: Fixes #340.
2013-05-11 21:01:24 +02:00
David Nadlinger 15fd67be03 Remove code for unimplemented goto-into-asm check.
The check was never fully implemented. We need to look into
this again, as currently we fail with a fairly unintellegible
LLVM ICE (added as GitHub #).
2013-05-11 20:18:34 +02:00
David Nadlinger 8b9deecf34 Remove dead code. 2013-05-11 20:12:25 +02:00
David Nadlinger d15a3bacac Minor cleanup. 2013-05-11 18:43:41 +02:00
David Nadlinger 2fb8d6d51b callWithStackShell for ARM. 2013-05-10 01:52:14 +02:00
David Nadlinger a792ecbaf2 Fix function attribute handling on LLVM 3.3+.
The issue was that when merging in the old attributes, attrs
wasn't assigned to, thus silently dropping all of them
(leading e.g. to noinline being omitted on functions containing
inline asm).

The new code hopefully also makes the intent clearer.
2013-05-09 22:57:33 +02:00
David Nadlinger 10f5d74737 Fix uninitialized vars in EnumDeclaration
'protection' and 'parent' are used in ScopeDSymbol::search
detected by Valgrind). The assignment in semantic0 is enough to
fix the bug, but I also added an initialization to the constructor.

This is a backport of DMD commit 4dfaf02d4d by Don Clugston.
2013-05-09 22:33:08 +02:00
David Nadlinger e5d6cf4dd8 Merge pull request #341 from klickverbot/default-target-cpu
Use generic target CPU by default
2013-05-09 13:16:02 -07:00
David Nadlinger 30bf4e121f Do not optimize for host CPU by default.
GitHub: Fixes #323.
2013-05-09 22:15:19 +02:00
David Nadlinger 251607a1df LLVM 3.3+: Initialize TargetTransformInfo. 2013-05-09 19:51:57 +02:00
David Nadlinger fa729c2faa Backported fix for broken test case. 2013-05-09 17:46:53 +02:00
David Nadlinger 56e35e31a0 Factored out target creation logic to separate functions.
Care was taken to avoid dependencies on the host of
command line globals.

std::string should probably replaced by llvm::StringRef
in some places.
2013-05-09 17:27:35 +02:00
David Nadlinger b86b62835a Merge pull request #335 from klickverbot/avoid-unnecessary-memset
Avoid unnecessary memset when allocating array literals.
2013-05-04 13:24:55 -07:00
David Nadlinger 0a376b9c71 Avoid unnecessary memset when allocating array literals.
This completes the merge of pull request #294. Thanks a lot to
Chris Holdsworth who originally wrote the patch!

GitHub: Fixes #294.
GitHub: Fixes #141.
2013-05-04 21:20:09 +02:00
David Nadlinger f2662c3660 Merge pull request #333 from ldc-developers/vector-init-fix
Fixed vector global initialization for > 1 byte elements.
2013-05-04 00:07:38 -07:00
David Nadlinger 2bf0789364 Fixed vector global initialization for > 1 byte elements. 2013-05-04 06:29:34 +02:00
David Nadlinger c9a2e534fb OS X build fix.
Thanks to Timothee Cour for reporting the issue.
2013-05-02 19:55:57 +02:00
David Nadlinger ac30741e2d Merge pull request #325 from John-Colvin/patch-1
typo
2013-04-08 15:09:10 -07:00
David Nadlinger 5e598af541 Merge remote-tracking branch 'redstar/issue133'. 2013-04-02 17:01:45 +02:00
David Nadlinger b8cdfad8c0 global.params.useAvailableExternally -> global.inExtraInliningSemantic.
This will hopefully make the associated code a bit easier
to read.
2013-04-01 21:17:13 +02:00