Commit Graph

2911 Commits

Author SHA1 Message Date
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