Commit Graph
2535 Commits
Author SHA1 Message Date
David Nadlinger 60ebf5b968 Fix building against the OS X 10.8 SDK.
This is a backport of DMD commit 47bee50a39 by Justin Holewinski.

GitHub: Fixes #218.
2012-11-17 22:29:23 +01:00
David Nadlinger a2089e8c55 Merged druntime .di generation updates by jerro.
GitHub: fixes #207.
2012-11-17 21:16:10 +01:00
Jernej Krempuš 2818f2460e Install all headers in core/sys on all platforms. 2012-11-17 20:54:30 +01:00
David Nadlinger 93d4d90239 Inline IR testsuite updates. 2012-11-17 11:07:55 +01:00
David Nadlinger 30aba033c8 Don't push -L-l/-L-L using -Xlinker. 2012-11-15 23:02:06 +01:00
David Nadlinger 34e1415f35 Merge pull request #226 from jerro/pragma-llvm-inline-ir
Pragma llvm_inline_ir
2012-11-15 12:05:17 -08:00
David Nadlinger be1327bfba Merge pull request #232 from alexrp/master
Correctly set MIPS64 version identifier.
2012-11-15 07:48:46 -08:00
alexrp 811dca3cf6 Correctly set MIPS64 version identifier. 2012-11-15 16:47:37 +01:00
David Nadlinger 237b0f25dc druntime '_end'/'end' updates.
This should fix the test suite build on Arch Linux.
2012-11-15 11:54:27 +01:00
David Nadlinger 636b37d056 D1 tests: Updated local copy of object.di.
The type info layout was changed in DMD; Tango already has the changes.
2012-11-11 00:42:08 +01:00
David Nadlinger 540888d6d0 Removed tautological #if block. 2012-11-11 00:32:15 +01:00
David Nadlinger d14a869c19 Only emit a single bitcast for struct literal padding.
Mostly a cosmetic change.
2012-11-10 20:22:56 +01:00
David Nadlinger 5944e9cc51 Correctly zero out real padding in struct literals.
Fixes the std.variant unit tests on x86_64.
2012-11-10 20:11:10 +01:00
David Nadlinger ab94a6d60c Don't treat __ensure specially in LDC.
The only change here is commenting out the Id::ensure check,
the rest is just alignment of the code to upstream DMD.
2012-11-08 23:53:50 +01:00
Jernej Krempuš 7bbe782615 Pragma llvm_inline_ir
Adding pragma llvm_inline_ir.

Improved the error messages.

Append "ret void" when the return type is void

Improved the error message

in case when the string passed as llvm inline ir isn't valid llvm
assembly language.

LLVM 3.2 fix.

Add attribute AlwaysInline inside DtoInlineIRFunction.

Always generate a body for llvm_inline_ir

Also, always make llvm_inline_ir functions linkonce_odr. Because
the body is always generated when a module uses a llvm_inline_ir
function, the fact that the linker removes the function shouldn't
cause problems.
2012-11-08 22:05:15 +01:00
David Nadlinger 45a3060da7 Prettied up nested context debug output.
The assertion is currently triggered when building the Tango/D1 unit tests.
2012-11-08 21:44:14 +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 c558f9caab Added -disable-simplify-libcalls.
-disable-simplify-drtcalls was only intended to disable our
custom druntime call simplication pass for debugging purposes.

The new flag controls C runtime library calls optimizations as
performed by the LLVM pass, just as the corresponding LLVM tool
flags do.
2012-11-06 23:53:59 +01:00
David Nadlinger 03ef134aad StripExternals only makes sense with GlobalDCE for cleanup afterwards. 2012-11-06 23:48:19 +01:00
David Nadlinger fbd62f0532 It makes no sense to not inline alwaysinline functions. 2012-11-06 23:47:12 +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
David Nadlinger 0647cfb50c Re-enable inlining by default for -O2 and above.
This fixes a bug introduced in 2f78dc686.

Thanks to Jernej (jerro) for the fix!
2012-11-06 19:40:18 +01:00
David Nadlinger 08a8f5df9b Fixed LLVM function attribute handling.
Previously, set_param_attrs would overwrite any pre-existing
attributes, which is problematic, as per-function attributes are
also stored in a slot in that attribute list. This for example
lead to "noinline" being dropped for functions with inline asm.
2012-11-04 17:48:26 +01:00
David Nadlinger f95371aeb5 Amend -verify-each description to PassManagerBuilder changes.
We can't verify after each pass anymore with PassManagerBuilder, but
-verify-each is a hidden flag mainly useful for debugging our own
passes anyway.
2012-11-04 00:56:36 +01:00
David Nadlinger dbe5e97d85 Clean up optimizer command line switch descriptions. 2012-11-04 00:56:36 +01:00
David Nadlinger 2f78dc686d Use llvm::PassManagerBuilder for optimization scheduling.
This commit is based on Kai's pull request #157.
2012-11-04 00:56:36 +01:00
David Nadlinger 2e8dac5f38 Merge pull request #219 from singularpoint/master
More accurate building of llvm bitcode libraries
2012-11-01 13:56:11 -07:00
David Nadlinger 6bd71b0a81 Merge pull request #215 from jerro/gccbuiltin-attributes
Added pure, @safe and nothrow to gccbuiltins.
2012-10-24 22:06:22 -07:00
Jernej Krempuš 021f067963 Added pure, safe and nothrow to gccbuiltins. 2012-10-25 02:17:06 +02: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
David Nadlinger c67e6f137d Merge pull request #211 from alexrp/master
A bunch of updates to version identifiers and platform detection.
2012-10-22 16:30:56 -07: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
David Nadlinger 07888f95e4 D1: Fixed accessing parameters in contracts.
This reverts the changes from commit f7e5245 and implements the
proper fix – in D1, contracts are treated as normal nested functions.

GitHub: Fix #138.
2012-10-21 01:11:04 +02:00
David Nadlinger ece5176aa9 D1: Fix Tango build.
'this' for methods nested in structs is now internally passed as a
pointer, even if struct this is by value in D1.
2012-10-21 01:11:04 +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 fde625b33d More changes to the Attributes class in LLVM 3.2. 2012-10-20 17:22:55 +02:00
kai 141dfa338e Add a post build event in Visual Studio to copy the config file ldc2.conf into Debug/Release folder.
This is required to build druntime and phobos with msbuild and Visual Studio.
2012-10-19 22:11:31 +02:00
kai add8e91653 Locate Intrinsics.td in CMakeLists.txt.
The LLVM_INCLUDE_DIR is not always defined (e.g. missing in Windows). We simply locate the file and pass the folder path to the tool.
2012-10-18 07:12:13 +02:00
David Nadlinger 7674e4292f Fixed GitHub #204 – TableGen requires RTTI. 2012-10-17 20:36:47 +02:00
kai 434d56b4db Fix link error on Travis Cl. 2012-10-17 08:39:41 +02:00
kai e7d5628370 Change CMakeLists.txt to compile gen_gccbuiltins with MSVC, too. 2012-10-17 07:13:20 +02:00
kai 641f0f9964 Extend copile support for MSVC.
- Add an option to choose between dynamic or static library version of libconfig++
- Add an option to choose linking the runtime against dynamic or static CRT library
2012-10-17 06:56:52 +02:00
kai 79e0b53fe7 Retrieve location of gen_gccbuiltins from CMake.
This is required for the MSVC build because binaries are placed in a Debug or Release folder.
2012-10-15 18:32:01 +02:00
kai 657fc42221 And still more changes for LLVM 3.2
There were additional changes to the Attributes class.
2012-10-15 18:31:18 +02:00
kai 0ebceb4e16 Make gen_gccbuiltins compilable with LLVM 3.2. 2012-10-14 21:42:17 +02:00
kai fb108eed12 More LLVM 3.2 changes. 2012-10-14 18:45:31 +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