Commit Graph

1613 Commits

Author SHA1 Message Date
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
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
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
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
kai
93c4cf3ea5 Replace more occurances of std::vector with an array. 2013-03-17 00:50:05 +01:00
kai
31decc27df Cosmetic changes to gen/todebug.h.
Remove an unused prototype and transform comment from JavaDoc-style
to Doxygen.
2013-03-16 23:43:19 +01:00
kai
36be9b5af4 Better encoding of basic types.
The new code distinguishes between bool, int, char, float and complex types.
2013-03-16 21:35:03 +01:00
kai
46f8d999c5 Fix a LLVM 3.3 problem with debug info generation.
In some cases an assertion is triggered because the debug context of a
local variale is verified. It turns out that LLVM returns always false
for DISubprogram.Verify() if the return type is not a composite type.
Reading the Clang source it looks like the return type must be a
subroutine type. This commit introduces a dummy subroutine type to
define the return type.
2013-03-16 21:09:40 +01:00
David Nadlinger
82ba7fe548 Fix casting typeof(null) to bool.
Covered by the DMD testsuite.
2013-03-16 09:35:29 +01:00
David Nadlinger
99819d0c63 Merge branch 'master' into merge-2.062. 2013-03-11 23:07:32 +01:00
kai
0b19b81ac9 Add new intrinsic LDC_never_inline.
LDC_never_inline is a complementary intrinsic to LDC_allow_inline.
It tells the LLVM optimizer to never inline a function. This can be
useful if inlining creates incorrect code.
A possible application is core.thread.getStackTop().
2013-03-11 22:32:40 +01:00
kai
71171dbc24 Merge branch 'master' into merge-2.062
Conflicts:
	gen/llvmhelpers.cpp
2013-03-08 06:07:34 +01:00
David Nadlinger
a303622074 Allow casting AAs to void*.
GitHub: Fixes #302.
2013-03-07 23:18:08 +01:00
kai
d5744346c6 Change naked asm functions to accept enum declaration.
An enum defines constant values which can be used without trouble in
naked asm functions.
2013-03-06 18:18:56 +01:00
kai
ecd9f14b0d Remove SARRAYVALUE 2013-03-06 18:18:00 +01:00
kai
0fd586a818 Remove STRUCTTHISREF 2013-03-06 18:18:00 +01:00
kai
aa4fe6a748 Remove DMDV1 and DMDV2. 2013-03-06 18:18:00 +01:00
David Nadlinger
c8a54de074 Merge Kai's D1 removal commits. 2013-03-06 16:41:29 +01:00
kai
37558273c2 Remove SARRAYVALUE 2013-03-06 10:20:24 +01:00
kai
c3801d65f5 Remove STRUCTTHISREF 2013-03-06 10:20:24 +01:00
kai
1e4a8fffc2 Remove DMDV1 and DMDV2. 2013-03-06 10:20:24 +01:00
David Nadlinger
10bc3fd52b Merge pull request #298 from redstar/bitops
Fix big-endian code generation for btc, btr and bts.
2013-03-04 09:51:22 -08:00
kai
5a9336bf25 Fix another attribute problem with LLVM 3.3. 2013-03-03 15:10:33 +01:00
kai
1ab2204e0b Fix big-endian code generation for btc, btr and bts.
These intrinsics operate on size_t words. The generated LLVM IR operates
on bytes and therefore assumes a little-endian architecture.
The fix is to change the generated IR to work on size_t words.
2013-03-02 19:30:34 +01:00
kai
820f6dbc7c Fix deprecation messages for non-vendor pragmas.
The deprecation message for non-vendor pragmas was never shown.
2013-02-28 08:00:43 +01:00
kai
72b04d6ef8 Fix LLVM 3.3 build.
llvm/CallingConv.h was moved to folder llvm/IR.
2013-02-28 06:56:18 +01:00
David Nadlinger
2d3de4a3d4 Fix ABI on Win32.
We can't simply use the C calling convention, as the D(MD)
ABI is callee-pop, and this is hardcoded in naked functions
with stack parameters.

The \1 "trick" is normally used to avoid prefixes added by
LLVM; on the 3.2 release, a patch is needed to make it work
for the @<n> stdcall suffixes as well.
2013-02-26 13:14:32 +01:00
David Nadlinger
d2f8c929d0 MinGW: pragma(lib,...) DMD compatibility hacks. 2013-02-26 13:14:32 +01:00
David Nadlinger
3392f70a4e Move calling convention conversion into TargetABI.
The code is tightly coupled to TargetABI (the transformations
there only make sense knowing that the right CC is selected).
2013-02-26 00:20:45 +01:00
David Nadlinger
1a132d5d41 Integrate obj_includelib into its only caller. 2013-02-26 00:20:45 +01:00
kai
7fd4fc81c3 Fix LLVM 3.3 compile errors. 2013-02-25 21:18:10 +01:00
kai
4ec9fbc011 Small cleanup of gen/pragma.cpp
- Added locations to many error messages
- Fixed indentation
2013-02-25 20:32:35 +01:00
David Nadlinger
6449d5dea2 Fix MinGW names for naked functions. 2013-02-13 00:07:55 +01:00
David Nadlinger
3662b06a88 Remove unused variable. 2013-02-13 00:07:52 +01:00
David Nadlinger
8b71c78571 Minor code cleanup.
No functionality change intended.
2013-02-11 08:25:30 +01:00
Sebastian Graf
673a974260 Un-unroll static array,
[David Nadlinger] Note that DtoStructLiteralValues was/is used
only once across the codebase.
2013-02-11 04:20:59 +01:00
Sebastian Graf
5ae17a59e4 Fixed broken static struct member initializer 2013-02-11 04:20:59 +01:00
sgraf812
db9edaf053 Fix #265: Use declared struct type in initexpr. 2013-02-11 04:20:59 +01:00
Martin
51b45675cc Support for Windows x64 ABI. 2013-02-10 22:08:35 +01:00
David Nadlinger
d49e1529ed Revert "Revert "Fix overly conservative inlining prediction".",
The previous failures were caused by the issue in
callWithStackShell(), which is fixed now.

This reverts commit 4a6444c320.
2013-02-09 10:42:52 +01:00
David Nadlinger
70dedd14e2 Some more assert(false) -> llvm_unreachable. 2013-02-08 16:46:05 +01:00
David Nadlinger
d13a997bd0 Added back NULL returns accidentally removed in 8ff3a8060.
No functionality change, as the return value wasn't used
anywhere.
2013-02-08 16:37:52 +01:00