David Nadlinger
59a4a02e49
Cleanup: Avoid signed/unsigned comparisons.
...
The ones ones left are for DMD-defined constants.
2012-12-20 01:21:09 +01:00
David Nadlinger
fca550e534
Cleanup: Remove warning overrides and fix two more warnings.
2012-12-20 01:00:57 +01:00
David Nadlinger
2988bc46e0
Removed long obsolete (and broken) LLVM IR annotation code.
...
If someone wants to redo this properly, an idea that actually works
would be to use a custom llvm::AssemblyAnnotationWriter.
2012-12-19 01:50:48 +01:00
kai
ca2cc75567
Mark LDC changes and remove unused debug? switches.
...
The Param struct is very different between DMD and LDC. This is a start
to mark the differences. This also includes identifying unused switches
- like the debug? switches.
2012-12-17 00:08:46 +01:00
David Nadlinger
b713afe9c4
Cleaned up version output.
...
I removed the copyright notice. I don't think we are obliged to
display it for DMD; on the other hand, if we do, we might also
have to display the libconfig one (LGPL). Thus, this seemed like
the better choice.
The indentation is to align with the registered target output,
which we cannot control.
2012-12-16 18:08:19 +01:00
David Nadlinger
2f54d8ec86
Fixed LDMD help output indentation.
2012-12-16 18:07:53 +01:00
David Nadlinger
1bb14c45d2
Removed trailing whitespace.
2012-12-16 17:19:15 +01:00
David Nadlinger
9458911839
Added LLVM-style license headers to all our files.
2012-12-16 17:19:14 +01:00
David Nadlinger
8b7320c7c2
Removed last instance of CRLF newlines.
2012-12-16 17:19:14 +01:00
kai
e239bd6e87
Windows: Add /DEBUG to linker command line if debug symbols are requested.
2012-11-27 06:32:52 +01:00
David Nadlinger
fece2d2641
LDMD: Don't enable -singleobj for D1.
2012-11-24 23:19:11 +01:00
David Nadlinger
049f482208
Removed extra dash in "-singleobj" emitted by LDMD.
...
Purely cosmetic change.
2012-11-24 12:32:18 +01:00
David Nadlinger
30aba033c8
Don't push -L-l/-L-L using -Xlinker.
2012-11-15 23:02:06 +01:00
alexrp
811dca3cf6
Correctly set MIPS64 version identifier.
2012-11-15 16:47:37 +01:00
David Nadlinger
7708d2e27a
Added '-vdmd' option to LDMD.
...
The name is not optimal; it has been chosen for GDC compatibility.
Thanks to Jonathan Mercier for the original patch.
2012-11-07 00:14:40 +01:00
David Nadlinger
b7ecd71d75
Don't run inlining semantic3's on unit test builds.
...
Fixes build of std.net.curl unit tests.
2012-11-06 23:16:50 +01:00
David Nadlinger
441419a60f
Fix unhandled switch case warning.
2012-11-06 22:53:43 +01:00
kai
1423a9adb4
Add new platform AIX.
...
I have now access to a POWER7 box, so I hope to really supports this in druntime, too.
2012-10-23 08:42:16 +02:00
alexrp
05e634c267
Check for MIPS64 when using LLVM 3.1+.
2012-10-22 20:29:27 +02:00
alexrp
a54c2cf0f6
Drop Alpha and S/390 support.
2012-10-22 20:24:16 +02:00
alexrp
b5420eb22c
A bunch of updates to version identifiers and platform detection.
2012-10-22 18:34:01 +02:00
kai
83a7258ae4
Add address space number to getPointerSize() calls.
...
This is required for LLVM 3.2.
2012-10-20 17:49:58 +02:00
kai
8519f448f8
Improve error message if gcc or other tools can not be found.
...
This fixes #192 .
2012-10-14 12:39:35 +02:00
kai
b50c6a8026
Look for configuration file in folder etc relative to executable.
...
Fixes issue #195 .
2012-10-14 00:25:08 +02:00
kai
83d14c54da
Explicit call conversion operator on Setting class.
...
This fixes issue #196 .
2012-10-13 19:48:13 +02:00
kai
a7c7b514c0
Add changes for LLVM 3.2
...
- The Attributes class was changed again
- TargetData was renamed to DataLayout
Compiles again with LLVm 3.0, 3.1 and trunk(3.2).
2012-10-13 18:54:42 +02:00
David Nadlinger
0777102e9d
Workaround for --help output being truncated when redirecting to file.
2012-10-07 15:08:24 +02:00
David Nadlinger
9c3bb1ecd3
LDMD: Remove DMD-only options from help output.
2012-10-07 14:58:30 +02:00
kai
3847471b0e
DMD defines Win32 and Win64 mutually exclusive. Now LDC does the same.
2012-10-06 14:30:26 +02:00
David Nadlinger
9d52cf6855
Workaround for LLVM bug 11479 in -singleobj mode.
...
This applies the same fix as in 88f08cf for multiple object file
builds.
Fixes std.socket unit test builds.
2012-10-06 13:27:54 +02:00
David Nadlinger
0c0e88dda1
Add missing LDMD option handling code.
...
Reusing the existing parsing code for DMD compatibility was a good
idea, copy-pasting the tool together in the middle of the night not
so much.
2012-10-03 19:51:04 +02:00
David Nadlinger
e37cb50999
Use -of for object name when building executable with -singleobj.
...
This is what DMD does, and arguably the expected behavior – otherwise,
there would be no way other than using -od to prevent races if two
compiler instances could ever compile the same file(s) at the same
time (e.g. for debug/release configurations).
Should we transition to assuming -singleobj by default?
2012-10-03 18:01:58 +02:00
David Nadlinger
407e534504
LDMD: Fix handling unknown switches from DFLAGS.
2012-09-29 22:45:42 +02:00
kai
940d6e907f
Take advantage of Triple and TargetData.
...
A lot of system specific knowledge is already present in LLVM. This is used to populate several fields in global.params instead of hard coded values in main(). Ensures that the frontend and LLVM have always the same values.
2012-09-16 19:50:21 +02:00
kai
c6b3f0a4e1
Add support for MS Link.
...
If the target OS is Windows using the MS runtime then use LINK.EXE as the linker.
2012-09-16 13:49:47 +02:00
kai
9bc844b6dd
Refactor code to create directory into new function.
2012-09-16 12:00:14 +02:00
kai
1773f7c7d9
Refactor common code to execute a program.
...
The common code for linking, creating libraries and running the created program is moved into a new function `ExecuteToolAndWait`.
2012-09-16 10:54:28 +02:00
kai
6e554c6647
Add support for MS Lib.
...
If the target OS is Windows using the MS runtime then use LIB.EXE as the archiver.
2012-09-16 00:03:27 +02:00
kai
4b0c4bf4ae
Get rid of global.params.dataLayout.
...
The string representation of the data layout is retrieved from the TargetData class (in main) and passed via global.params.dataLayout to the module. Since the gTargetData is also a global variable it makes no sense to pass this information using another global variable.
2012-09-08 20:25:42 +02:00
David Nadlinger
bf0d8afc88
Merge branch 'dmd-2.060' into master.
...
Conflicts:
dmd2/func.c
dmd2/mars.c
2012-09-07 04:15:44 +02:00
David Nadlinger
05b9b14fa9
Fixed -debuglib in LDMD.
2012-09-07 03:51:33 +02:00
David Nadlinger
6b1b84a28d
Pass library file arguments to linker _before_ custom switches.
...
This allows specifying a static D library specified at the LDC
command line to pick up symbols from druntime/Phobos.
Fixes DMD testcase 'test39'.
2012-09-07 03:51:32 +02:00
David Nadlinger
4b23e794ca
Removed linkExecutable() (dead code).
2012-09-07 03:51:32 +02:00
David Nadlinger
c941640d17
Fixed '-debug' and '-version' handling in LDMD.
...
No idea how the old version once passed the test suite.
2012-09-07 03:51:32 +02:00
David Nadlinger
837ef30fec
Merged DMD 2.060 frontend.
...
Upstream Git tag v2.060 (e8fe11c20249cb9e42538be88c99b74ede4d12e3).
2012-09-07 03:51:31 +02:00
kai
9a3cdf2e10
Use .obj extension on Windows.
...
The Windows linker LINK insists on the .obj extension. The following changes are made:
- CMake uses the same extension as the C compiler
- global.obj_ext_alt (aka .obj) is recognized as objectfile extension
- global.obj_ext_alt is used on Windows
2012-09-05 19:23:34 +02:00
kai
af69672dc7
Fixed a bug regarding lifetime of C strings.
...
The string returned by c_str() is only valid as long as the object exists. Now the object 'triple' exists until the end.
2012-08-28 06:52:29 +02:00
kai
e6a07ffdfe
Several changes to optimizer related code.
...
- New functions codeGenOptLevel() and verifyModule() to remove code duplication
- Hidden option no-verify renamed to disable-verify and moved to optimizer (like opt tool)
- Removed global.params.noVerify
2012-08-16 23:26:52 +02:00
kai
c01cae1c2b
Prefer C++-style casts.
...
This is based on Item 2 of "More Effective C++". In general, the C++ cast operators are more expressive and easy to find,
e.g. by grep. Using const_cast also shuts up some compiler warnings.
2012-08-03 22:46:14 +02:00
kai
76cf66f50b
Expose LLVM as global version symbol.
...
Required because prototypes of intrinsics changed between 3.0 and 3.1.
2012-08-03 16:44:34 +02:00