David Nadlinger
30bf4e121f
Do not optimize for host CPU by default.
...
GitHub: Fixes #323 .
2013-05-09 22:15:19 +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
David Nadlinger
7a58b2c1b2
Backport DMD pull request #1760 .
...
Fixes DMD test case 'xtest46'.
2013-03-18 13:05:04 +01:00
kai
7d65a311b1
More changes to std::vector usage.
...
Replace with std::vector with static array, llvm::SmallVector or
add code to reserve space.
2013-03-17 23:58:30 +01:00
David Nadlinger
99ebf1db6a
Bump runtime version to 2.062.
2013-03-17 19:53:35 +01:00
David Nadlinger
f6e1d32deb
Do not generate .di files for druntime modules.
...
DI generation now actually strips function bodies.
Also, finally all the platform-specific modules are installed,
irrespective of the current OS.
GitHub: Fixes #296 .
2013-03-17 19:23:22 +01:00
David Nadlinger
722c4b83ea
Remove excessive whitespace.
2013-03-17 18:12:33 +01:00
David Nadlinger
7d740a6d5b
Emit null init() ptr for zero-initialized structs.
...
Fixes std.algorithm tests.
2013-03-17 18:07:00 +01:00
David Nadlinger
bb5b60e591
Make '-O' equivalent to '-O3'.
...
I have seen it used several times in benchmarks comparing it
to 'gdc -O3' and 'dmd -O -inline' now, so people apparently
expect it to yield the highest available optimization level.
2013-03-17 02:09:54 +01:00
David Nadlinger
bc09ceae18
Remove useless log delimiters, we do have log scopes.
2013-03-17 02:00:42 +01:00
David Nadlinger
5f8e13fac7
Added comment about multi-include x86 asm parser.
2013-03-17 02:00:42 +01:00
David Nadlinger
06422ac594
Test suite updates.
2013-03-17 01:59:38 +01:00