Commit Graph
2944 Commits
Author SHA1 Message Date
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
kai 80c4f953c0 Add test case for issue #328 2013-05-11 23:05:34 +02:00
kai 2e4b85d2d6 Fix for issue #328.
The wrong pointer is passed to the landing pad. This wrong pointer is used
if the stack unwinding resumes.
2013-05-11 22:18:23 +02:00
David Nadlinger 7fe8406ec2 Merge in test cases for GitHub issue #340. 2013-05-11 22:03:08 +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
kai 91d653c730 Backport of changes for Linux/PPC64.
Most endian issues and some other problems are gone. Makes the whole thing fly a lot easier.
2013-05-10 14:00:36 +02:00
kai e233f803ff Merge branch 'memcpy' 2013-05-10 13:48:39 +02:00
kai fa3054c7cc Fix uninitialized var in TemplateDeclaration.
This is a partial backport of https://github.com/D-Programming-Language/dmd/commit/214b0fdb26837a7ec0d79070c30d1a116cd571d1.
2013-05-10 13:10:40 +02:00
kai 522c06ff7f Do not memcpy with same source and destination.
This can happen for sret_args. Drop the assignment in this case.
2013-05-10 12:59:14 +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
kai 8f2687762a Intrinsics from LLVM 3.3 are also available in LLVM 3.4. 2013-05-09 16:44:40 +02:00
kai 51e1a6cb54 Replace hard-coded path with registry lookup on Windows.
A hard-coded path does not play nicely with a generic installer.
The installation path is now looked up in the registry with the
key SOFTWARE\\ldc-developers\\LDC\\<version>\\Path.
It is the responsibility of the installer to set this value.
2013-05-06 07:52:25 +02:00
kai 41bbc8fbf5 Rewrite the llvm::Linker fix for LLVM 3.3.
The previous commit changed the behaviour a bit. This solution should have an identical result.
2013-05-05 20:27:12 +02:00
kai ebaa3f08b3 Fix LLVM 3.3 build error.
llvm/Linker.h was changed. This commit reflects the new logic.
2013-05-05 18:42:14 +02:00
kai 2e7884a80d Add support for new parameter attribute returned.
Starting with LLVM 3.3 a new parameter attribute `returned` is supported.
The attribute states that the parameter is the return value, too. This is the
case in constructors. (Destructors and postblits do not return `this`.)
Attribute `returned` is now added to the `this` parameter of constructors.
2013-05-05 16:17:34 +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
kai a0c259205c Fix endian issue in dmd2/mtype.c.
The initial value for floats was 0 and not NaN due to an endian issue.
This was discovered by a test in object_.d.
2013-04-20 20:03:02 +02:00
kai 308919f371 Revert "Linker flag /LARGEADDRESSAWARE is not required with LLVM 3.3.".
There is still an issue left in LLVM. I need to investigate this further.
2013-04-20 14:07:30 +02:00
kai 47853ac078 Add changes to druntime and phobos. 2013-04-20 14:04:14 +02:00
kai df212f98a4 Fix linking issue with std.math.yl2x (issue #305). 2013-04-19 07:15:35 +02:00
kai d8aed3627e Linker flag /LARGEADDRESSAWARE is not required with LLVM 3.3.
With a recent commit support for the missing relocations was added.
This change removes the flag from the linker command line.
2013-04-15 07:08:46 +02:00