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
kai
9b6df6ae32
Add support for Linux/PPC64 to Druntime.
...
With these commits Druntime compiles without patches on Linux/PPC64.
2013-03-12 06:54:22 +01:00
David Nadlinger
525a86f89d
Merge getStackTop() x86 fix.
2013-03-11 23:18:41 +01:00
David Nadlinger
1ca562db7e
README: We no longer support D1.
2013-03-11 23:04:19 +01:00
David Nadlinger
480d668ec9
Travis: Print "ldc2 -version" output after build is complete.
...
This is useful as it contains the host arch, ...
2013-03-11 23:04:19 +01:00
David Nadlinger
f9583f372c
Merge pull request #310 from redstar/noinline
...
Add new intrinsic LDC_no_inline.
2013-03-11 14:58:20 -07:00
David Nadlinger
d33bfb0d42
LLVM 3.1: Use -O1 instead of -O3 for std.exception tests.
2013-03-11 22:45:44 +01:00
kai
5854fbfeb1
Fix comments
2013-03-11 22:32:41 +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
David Nadlinger
8a4a2ea38e
Merge pull request #307 from glycerine/master
...
fix for issue 304
2013-03-11 13:42:58 -07:00
kai
4560b2c97d
Add new druntime code.
...
Changes in core/thread.d and rt/lifetime.d, mainly to support PPC64.
2013-03-11 21:02:06 +01:00
jaten
6f6c776e9c
initialize Params properly in constructor.
2013-03-11 00:38:43 -07:00
David Nadlinger
a303622074
Allow casting AAs to void*.
...
GitHub: Fixes #302 .
2013-03-07 23:18:08 +01:00
David Nadlinger
0b5e04580c
Removed a few D1 leftovers.
2013-03-06 16:46:32 +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
kai
10e7276058
Simple part of removing D1
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
a7bed6c488
Fix prototypes from DMD2.
...
The prototypes for obj_includelib and obj_startaddress are DMD-specific.
Update them to match DMD 2.061.
2013-02-28 07:58:28 +01:00
kai
5c6ba2ec3b
Add missing pragma and deprecation warning.
...
The LDC_allow_inline pragma is not recognized. The deprecation message for
non-vendor pragmas is missing.
2013-02-28 06:58:45 +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
f28504db23
MinGW runtime and test suite updates.
2013-02-26 13:14:32 +01:00
David Nadlinger
6dc122b424
MinGW: Use __mingw_strtold instead of strtold.
...
The latter fails to parse hex floating point literals.
2013-02-26 13:14:32 +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
e05a5c6f22
Fold in d_do_test Windows fixes.
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
fcadfdf9e2
Various MinGW runtime fixes.
2013-02-15 00:45:24 +01:00
David Nadlinger
92899dff96
Link in ws2_32 by default on MinGW.
2013-02-14 18:14:49 +01:00
David Nadlinger
f85ed37cf1
Revert "Use CMake-detected make program."
...
CMAKE_MAKE_PROGRAM isn't always (GNU) make, but refers to the
"make" equivalent of the target generator, for example the
"ninja" executable if the Ninja generator is used.
Using find_program or something similar would probably still
be a good idea.
This reverts commit 5a6176316a .
2013-02-13 16:04:01 +01:00
David Nadlinger
8bda7ff0c8
MinGW LLVM compiler flag fixes.
...
Our CMake code should be rewritten to not expect things as strings
that really aren't, but this would entail a whole lot of cross-
platform testing, so I'm postponing it for now.
2013-02-13 16:00:08 +01:00
David Nadlinger
19dcb7710e
DW2 EH for MinGW.
2013-02-13 00:07:56 +01:00
David Nadlinger
6449d5dea2
Fix MinGW names for naked functions.
2013-02-13 00:07:55 +01:00
David Nadlinger
8fd3eda728
Use the system assembler on MinGW.
...
MC does not support writing out the exception handling tables
to COFF files yet.
2013-02-13 00:07:55 +01:00
David Nadlinger
ccffe99b8a
Minor cleanup (avoid forward decl).
2013-02-13 00:07:54 +01:00
David Nadlinger
f417500abc
MinGW compilation fixes.
2013-02-13 00:07:53 +01:00