Commit Graph
2547 Commits
Author SHA1 Message Date
David Nadlinger fece2d2641 LDMD: Don't enable -singleobj for D1. 2012-11-24 23:19:11 +01:00
David Nadlinger 288fd47707 Merged 1.075 frontend. 2012-11-24 21:10:13 +01:00
David Nadlinger 2d02270434 Re-enabled codegen optimization on LLVM 3.2.
The bug (PR14376) has been fixed in both master and the release branch.
2012-11-24 14:07:17 +01:00
David Nadlinger 19f570bcb9 AttrListPtr also requires the context arg in LLVM 3.2 now. 2012-11-24 12:40:12 +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 146649af1a Fixed OS X TLS GC. 2012-11-22 00:33:26 +01:00
kai 2fec23b84e AttrlistPtr::get() now requires context as first argument.
This is the first LLVM 3.3 related change.
2012-11-21 22:10:26 +01:00
David Nadlinger 9162724956 Merge pull request #237 from jerro/master
Fix issue #236
2012-11-19 14:19:19 -08:00
Jernej Krempuš 755b271096 Fix issue #236 2012-11-19 23:05:53 +01:00
kai dcff6c92c7 Conditionally add error() prototype and remove inifile().
This is alyready done in `dmd2/mars.h`.
2012-11-18 18:04:35 +01:00
kai 45848d19fc Remove unused include. This fixes yet another MSVC-related compile problem.
Root cause is the `root.h` defines `strtof` which is used in `llvm/Target/TargetLibraryInfo.h` as an enumeration identifier.
2012-11-18 17:52:10 +01:00
kai ccde570520 Fixed a compiler error with MSVC.
Maybe caused by recent changes to `expression.c`.
2012-11-18 13:37:55 +01:00
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