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