Commit Graph
2734 Commits
Author SHA1 Message Date
Martin 25b6b3abf2 Remove AsmOpInfo::takesLabel(), add FIXME comment. 2013-01-28 21:05:48 +01:00
Martin 8a463444ab Fix negated sc->func->naked for x64 and remove !IN_LLVM block. 2013-01-28 20:00:08 +01:00
Martin 62cb04f6f6 Merged x86 and x86_64 assembly parsers. 2013-01-27 15:31:26 +01:00
kai a817a85bf8 Merge branch 'master' into merge-2.061-2 2013-01-27 00:38:47 +01:00
kai 6cb782791e Fix build warnings 2013-01-27 00:38:17 +01:00
kai a3fcdafd1f Merge branch 'master' into merge-2.061-2
Conflicts:
	gen/runtime.cpp
2013-01-27 00:20:21 +01:00
Kai Nacke de596d994c Merge pull request #272 from redstar/tollvm
Replace std::vector with llvm::SmallVector and C arrays in gen/tollvm.cpp.
2013-01-26 15:17:01 -08:00
kai 28e3a4d80f Replace std::vector with llvm::SmallVector in gen/tollvm.cpp. 2013-01-27 00:13:20 +01:00
Kai Nacke 6e3d847ca0 Merge pull request #271 from redstar/runtime
Replace std::vector with llvm::SmallVector in gen/runtime.cpp.
2013-01-26 12:20:56 -08:00
kai ed5ede3fda Replace std::vector with llvm::SmallVector in gen/runtime.cpp.
The vector arrays for the parameter lists are a perfect fit for
llvm::SmallVector: the vector size is small and known in advance.
2013-01-26 21:01:33 +01:00
kai e68a0fa2a6 Merge branch 'master' into merge-2.061-2 2013-01-26 17:40:24 +01:00
kai c0284bac2b 2nd attempt on the latest LLVM 3.3 changes.
The previous commit only worked on Windows.
2013-01-26 17:34:08 +01:00
kai 26385c55fe More LLVM 3.3 changes to the AttributeSet class. 2013-01-26 16:27:20 +01:00
kai b2f4ac0772 Do not mix release and debug build for MSVC 2013-01-26 15:52:55 +01:00
kai dc69c67bbe Merge branch 'master' into merge-2.061-2 2013-01-26 13:24:33 +01:00
sgraf812 98669eef5b using rsp instead of esp
Using esp resulted in crashes on x64.
2013-01-26 13:24:13 +01:00
kai 6a02db791a Add new LLVM 3.3 intrinsics 2013-01-25 20:25:32 +01:00
kai ad4e0e57d2 Added new LLVM 3.3 intrinsics 2013-01-25 19:42:19 +01:00
kai bc182ab901 Merge branch 'master' into merge-2.061-2 2013-01-24 07:35:58 +01:00
kai b4aca21422 More LLVM 3.3 changes.
There is ongoing rework on the AttributeSet class. Also the constructor
of APFloat changed.
2013-01-23 18:22:45 +01:00
kai cb22044f58 Merge branch 'master' into merge-2.061-2
Conflicts:
	dmd2/interpret.c
2013-01-21 18:06:13 +01:00
Kai Nacke 4005410794 Merge pull request #268 from redstar/endian
Make frontend endian-aware.
2013-01-21 00:11:32 -08:00
kai 55560bf382 Make frontend endian-aware.
In many parts the DMD frontend assumes a little endian CPU. In some
parts there are checks for endianess but they are incomplete and the
used definition is wrong. (Test for endianess will be removed in dmd
2.062.)
In this commit I add the required #if's and also add a CMake test for
endianess because there is no single compiler definition to check for.
2013-01-21 08:41:21 +01:00
kai b158749083 Merge branch 'master' into merge-2.061-2 2013-01-13 12:03:18 +01:00
David Nadlinger 9e9acb9c4b Split Travis test execution into debug and release tests.
Hopefully enough to reliably make it below the time limit,
even if the load distribution is not quite symmetric.
2013-01-12 18:33:18 +01:00
David Nadlinger 7974c33c61 Merge branch 'master' into merge-2.061-2. 2013-01-12 14:31:54 +01:00
David Nadlinger 4a6444c320 Revert "Fix overly conservative inlining prediction".
The commit itself should be fine, but the more aggressive
inlining being done on the GC code (due to the gcbits functions
being in available in gc.gcx) seems to have uncovered a
misoptimization bug in LLVM (at least in 3.2) on x86, leading to
various unit tests failing in relase mode.

This reverts part of commit f02e4b1925.
2013-01-12 14:30:59 +01:00
David Nadlinger 30caa4bfe6 Merge branch 'master' into merge-2.061-2 2013-01-12 01:27:02 +01:00
David Nadlinger 81aee147cf Fold in ctlz/cttz updates. 2013-01-12 01:23:55 +01:00
David Nadlinger f02e4b1925 Fix overly conservative inlining prediction.
A "statementsToo" flag was added to DMD, which disables inlining
of pretty much any functions that actually return a value – set it
to false for our purposes.

The other parts of the diff are just cosmetic.
2013-01-12 01:23:55 +01:00
kai 6ddb524b91 More LLVM 3.3 changes 2013-01-11 22:46:36 +01:00
David Nadlinger b99b78558b Hack to make nested struct .init results an rvalue.
The code still needs closer scrunity, as the 'nested' test
from the DMD testsuite doesn't fully pass yet.
2013-01-11 21:34:45 +01:00
kai a11459bc31 "The Great Renaming" continues.
More changes to match the renamed files of LLVM 3.3.
2013-01-06 17:17:30 +01:00
David Nadlinger 7a4c378788 Correctly set 'outer' reference of nested inner classes.
Fixes DMD testcase 'test11'.
2013-01-04 16:48:10 +01:00
David Nadlinger 43ca6a9581 LDMD: Fix -deps generation. 2013-01-04 16:48:10 +01:00
David Nadlinger 859177fe3d Do not unnecessarily call postblit after rvalue array initializers.
Fixes DMD testcases 'sdtor' and 'structlit'.
2013-01-04 16:48:10 +01:00
David Nadlinger bcd8f26b26 Removed completely wrong postblit invocation.
This piece of code was invoking the postblit on the _source_
of the copy operation.
2013-01-04 16:48:10 +01:00
David Nadlinger 1a3fc9f97f Fix break out of non-nothrow range foreach.
Fixes DMD testcase 'test9068'.
2013-01-04 16:48:10 +01:00
kai 82a3216619 Simplify code.
The code to generate a constant string is too complex. Just use the
method provided by LLVM.
The complexity was introduced during a LLVM refactoring....
2013-01-04 14:35:24 +01:00
David Nadlinger c3d517e17f Correctly handle ref variables in an outer frame.
Fixes DMD testcase 'testcontracts'.
2013-01-04 07:31:18 +01:00
David Nadlinger 0508acf10b Cleanup: Remove redundant piece of code.
This case is already handled in DtoCreateNestedContextType.
2013-01-04 07:31:18 +01:00
David Nadlinger a797e686a0 Updated hidden method error message according to DMD issue 6373.
Fixes DMD testcase 'diag6373'.
2013-01-04 07:31:17 +01:00
David Nadlinger 86a6a6ba05 Use DMD's C++ name mangling functionality.
Likely wrong for MinGW/MSVC.

Fixes DMD testcase 'test7030'.
2013-01-04 06:22:57 +01:00
David Nadlinger eb56e934a5 Restore original Parameter::ForeachDg signature.
Having two functions is not pretty, but shorter than messing
around with a custom context object, and much, MUCH better than
requiring a lot of changes to the rest of the code base.
2013-01-04 06:22:57 +01:00
David Nadlinger 55fb4798a7 Added workaround for DMD accepts-invalid regression 9268. 2013-01-04 06:22:57 +01:00
David Nadlinger b3f59134c1 Adapt to new DMD lambda inference mechanism.
Rewriting types this late is a questionable design and prone
to break non-DMD client code; this should be discussed
again with Kenji.
2013-01-04 06:22:57 +01:00
David Nadlinger 26217eabb2 Remove LDC-specific callable literal kind inference hack. 2013-01-04 06:22:57 +01:00
David Nadlinger 5c518a16ec Merged 2.061 frontend. 2013-01-04 06:22:53 +01:00
David Nadlinger 326aedd0e4 Align AlignDeclaration constructor signature to upstream version.
If there still are error messages benefiting from the added
location information, the change should be upstreamed, as usual.
2013-01-04 01:50:51 +01:00
David Nadlinger d694e37f4a Fix test suite builds: backport copyright year change. 2013-01-04 01:43:56 +01:00