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 214b0fdb26 .
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
kai
bbdf473ef0
Fix for issue #326 .
...
For a foreach (int i, dchar c; str) loop the compiler generates a
delegate with a different type signature then the runtime uses.
The runtime declares the parameters as void* and passes a pointer
to a size_t variable for the index. The code generated by the
compiler expects a ref int. This works on a little endian architecture,
but on a big endian architecture the index is always 0.
This fix changes the parameter type of the passed index to size_t
and generates a cast to the type specified by the user.
2013-04-11 08:23:33 +02:00
kai
a28f14320c
Wrap LDC specific code in #if IN_LLVM blocks.
...
Only for ForeachStatement as I have to investigate the code here.
2013-04-09 07:47:46 +02:00
David Nadlinger
ac30741e2d
Merge pull request #325 from John-Colvin/patch-1
...
typo
2013-04-08 15:09:10 -07:00
John Colvin
e74d9b79b6
typo
2013-04-09 00:02:55 +02: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
David Nadlinger
5884f884ed
Merged 2.062 frontend/runtime (branch 'merge-2.062').
2013-04-01 21:05:42 +02:00
David Nadlinger
adebe0a077
Merge pull request #322 from redstar/issue318
...
Workaround for issue #318 .
2013-03-31 08:02:11 -07:00
kai
254c055169
Workaround for issue #318 .
...
The std.range tests are failing because of a LLVM bug. See
PR15608 for deatils. The bug is fixed in LLVM 3.3.
The workaroung is to run the std.range test only with -O1.
2013-03-31 15:18:18 +02:00
kai
8625666132
Wrap LDC specific code.
2013-03-31 05:01:40 +02:00
kai
6ab2275f09
Mark string constants as unnamed_addr
2013-03-30 15:28:38 +01:00
kai
afb673e5a4
Add core/threadasm.S to druntime.
...
This is required for PPC and MIPS targets. Results in an empty
object file on other CPU architectures.
2013-03-30 14:29:58 +01:00
kai
971dc95c74
Do not emit warning about vararg for PPC64
2013-03-30 14:11:44 +01:00
kai
ec0bc749d0
Calling convention fastcc is not implemented on PPC64.
2013-03-29 21:45:12 +01:00
kai
e49082840f
Fix comments in abi-ppc64 files.
2013-03-29 20:15:37 +01:00
kai
312a85ce01
Fix a buffer overrun on Linux/PPC64.
...
The buffer in realToMangleBuffer() is too small for a longdouble.
2013-03-24 19:42:18 +01:00
kai
b13f3d3164
Merge branch 'master' into merge-2.062
...
Conflicts:
runtime/druntime
2013-03-24 19:39:39 +01:00
David Nadlinger
b889c20dca
Merge pull request #315 from klickverbot/o-o3
...
Make '-O' equivalent to '-O3'.
2013-03-23 09:52:58 -07:00
kai
dce378ba75
Return type must be of type DIComposite.
2013-03-23 16:21:21 +01:00
kai
c8d98ad31c
More Dwarf debug code changes.
...
Add a fix for LLVM 3.3 (`createTemporaryType()` was removed) and add
linkage name to `createGlobalVariable()` (new in 3.3).
2013-03-23 15:40:29 +01:00
David Nadlinger
4cd967c4b6
Workaround for private variables pulled in from CTFE'd template functions.
2013-03-22 11:23:34 +01:00
David Nadlinger
0c4a987fc4
Temporarily disable failing test.
2013-03-18 13:34:47 +01:00
David Nadlinger
862ece3ca4
Fix -lib with fully specified output name and '-c'.
...
The whole output path handling code is in dire need of a
cleanup/rework.
2013-03-18 13:33:55 +01:00