Commit Graph
130 Commits
Author SHA1 Message Date
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
Hans W. Uhlig 4f6204f191 Adding Space to Literal 2013-05-28 17:38:09 -07:00
kai 4343965106 Use /LARGEADDRESSAWARE:NO only for debug builds with LLVM 3.4.
Most of the LLVM bugs regarding relocations are fixed now.
2013-05-24 16:07:25 +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
kai a31d704941 Add missing include for Windows 2013-05-13 18:47:59 +02: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 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 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 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 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 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 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 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 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
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
kai b13f3d3164 Merge branch 'master' into merge-2.062
Conflicts:
	runtime/druntime
2013-03-24 19:39:39 +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 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 153caa9bf7 Print nice error message for wrong '-run' argument.
This fixes DMD test case 'diag6743'.
2013-03-16 14:02:01 +01:00
David Nadlinger 58908e044a Removed DMD code remnants from driver/main.cpp. 2013-03-16 13:37:07 +01:00
David Nadlinger 32eb24eebf Added '-Hkeep-all-bodies' switch.
The same behavior is triggered by the '-inline' switch for
DMD, but this doesn't quite translate to LDC.
2013-03-16 11:52:19 +01:00
David Nadlinger 74f92391c5 Merge branch 'master' into merge-2.062
Conflicts:
	runtime/druntime
2013-03-11 22:14:27 +01:00
jaten 6f6c776e9c initialize Params properly in constructor. 2013-03-11 00:38:43 -07:00
kai d04864103e Use the new Port::stricmp() method. 2013-03-08 06:53:12 +01:00
kai bf52dbe389 Merge of DMD 2.062. 2013-03-06 18:18:56 +01:00
kai aa4fe6a748 Remove DMDV1 and DMDV2. 2013-03-06 18:18:00 +01:00
kai 1e4a8fffc2 Remove DMDV1 and DMDV2. 2013-03-06 10:20:24 +01:00
David Nadlinger 92899dff96 Link in ws2_32 by default on MinGW. 2013-02-14 18:14:49 +01:00
David Nadlinger 8fd3eda728 Use the system assembler on MinGW.
MC does not support writing out the exception handling tables
to COFF files yet.
2013-02-13 00:07:55 +01:00
David Nadlinger ccffe99b8a Minor cleanup (avoid forward decl). 2013-02-13 00:07:54 +01:00
David Nadlinger f417500abc MinGW compilation fixes. 2013-02-13 00:07:53 +01:00
David Nadlinger e7bbacadb7 Removed useless -quiet switch. 2013-02-13 00:07:49 +01:00
David Nadlinger 243083b88c Factored out tool invocation code into separate file. 2013-02-13 00:07:48 +01:00
David Nadlinger 0a96aea868 Sort includes according to style guidelines:
1. Main include corresponding to .cpp file, if any.
 2. DMD and LDC includes.
 3. LLVM includes.
 4. System includes.

Also updated a few include guards to match the default format.
2013-02-07 21:20:55 +01:00
David Nadlinger 6de735de31 Small cleanup. 2013-02-07 21:20:54 +01:00
David Nadlinger d4b391249d Removed redundant global.params.os field.
I hope I have untangled the checks for "native" Windows (Triple::Win32)
vs. Windows/MinGW/Cygwin (Triple::isOSWindows) correctly.

MinGW needs some default libraries as well, has to be fixed later.
2013-02-07 21:20:54 +01:00
David Nadlinger 4e02f41f31 Factored out output name determination logic. 2013-02-07 17:36:55 +01:00
David Nadlinger 5f3ba41574 Removed redundant global.params.cpu field.
Now that we have global.params.targetTriple, the information
is only duplicated.
2013-02-07 17:36:54 +01:00
David Nadlinger bee0b9eba1 Remove global.params.isLE. 2013-02-07 14:37:21 +01:00
David Nadlinger 8ff3a8060a Use llvm_unreachable instead of assert(0).
Also removed some unused functions.
2013-02-07 03:38:15 +01:00
David Nadlinger 28a65ff689 Fix D1 build. 2013-02-07 00:49:52 +01:00
David Nadlinger 30caa4bfe6 Merge branch 'master' into merge-2.061-2 2013-01-12 01:27:02 +01:00
kai 6ddb524b91 More LLVM 3.3 changes 2013-01-11 22:46:36 +01:00
kai a11459bc31 "The Great Renaming" continues.
More changes to match the renamed files of LLVM 3.3.
2013-01-06 17:17:30 +01:00
David Nadlinger 43ca6a9581 LDMD: Fix -deps generation. 2013-01-04 16:48:10 +01:00