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
David Nadlinger
2f8705f4d6
Don't pass file name to executable on '-run'.
2013-01-04 01:42:01 +01:00
David Nadlinger
615a2b5839
LDMD: Fixed -run parameter parsing.
2013-01-03 21:12:56 +01:00
kai
272e7b7a55
Follow "The Great Renaming" in LLVM 3.3
...
This time VMCore was renamed to IR. Several top level include
files were moved to new subfolder IR.
2013-01-03 08:52:23 +01:00
David Nadlinger
1caf4c9c26
Handle plain AA type <-> AA struct return type mismatch.
...
GitHub: Fixes #214 .
2012-12-31 12:10:46 +01:00
David Nadlinger
08708917bc
D1 build fix.
...
The workaround could later be merged to D1 if the same problem
starts to appear there as well.
2012-12-31 06:27:11 +01:00
David Nadlinger
dc7e328356
Merge druntime TypeInfo declaration fix.
...
GitHub: Fixes #250 .
2012-12-31 05:57:05 +01:00
David Nadlinger
39e3e3a678
Replace template symbol module fix with more localized hack.
...
This reverts commit c4adbedcc , which would have fixed the
problem at its roots, but caused strange template function
attribute inference failures in D-YAML, presumably due to
the different order of semantic3 execution on the templates.
2012-12-31 05:46:29 +01:00
kai
2898e5cac3
Add support for PPC 128bit doubledouble type.
...
On a PowerPC target the datatype real is mapped to PPC 128bit doubledouble type.
Please note that this yet does not work if you cross compile from a different
architecture.
2012-12-30 17:18:36 +01:00
kai
ce47e5a083
Change in core.stdc.stdarg for PPC64
2012-12-30 17:18:11 +01:00
kai
e684d10ac7
Cleanup of complex type handling.
...
- replace if .. else cascades with swicth
- replace assert(0) with llvm_unreachable as default case
- add some whitespaces in parameter lists
2012-12-30 14:56:53 +01:00
kai
a3975b7f47
Replace llvm::Function.getFnAttributes with llvm::Function.getAttributes.
...
This is a recent change in LLVM 3.3.
2012-12-30 14:27:51 +01:00
David Nadlinger
c4adbedcc6
Emit template symbols into correct module during many-at-once compilation.
...
Previously, it could happen that regular symbols referenced
only as part of a template instance (e.g. a lambda passed as
an alias parameter) were not even emitted in the wrong module,
but not at all because mustDefineSymbol would return false to
them when being analyzed during codegen of the wrong module.
This issue might affect incremental compilation with DMD as
well, and the fix should be discussed with the upstream devs.
GitHub: Fixes #249 .
2012-12-30 02:37:54 +01:00
David Nadlinger
87e72d27b3
Cleanup: Added missing include, killed superfluous newline in debug log.
2012-12-30 02:36:54 +01:00
kai
b571d7a6c5
Add core.stdc.stdarg support for PPC64
2012-12-29 02:47:54 +01:00
kai
14b48bdca4
Add some comments to ABI interface
2012-12-28 20:41:05 +01:00
David Nadlinger
f1f0486b6e
Implement ordered delegate comparisons.
...
GitHub: Fixes #256 .
2012-12-28 18:08:49 +01:00
David Nadlinger
33093a7403
Factor out TOK to icmp predicate conversion into helper method.
2012-12-28 18:08:49 +01:00
kai
7b5055b2a2
Started to add support for PPC64 in druntime
2012-12-28 05:50:50 +01:00
David Nadlinger
b25b46f65b
Merge test case update.
2012-12-27 23:28:01 +01:00
David Nadlinger
eac742b9f7
Don't create IrType twice for aggregate arrays with forward references.
...
GitHub: Fixes #257 .
2012-12-27 23:22:46 +01:00
kai
e8a084f9ae
Add palignr and pshufb to x86_32
2012-12-26 21:27:19 +01:00
kai
7ccd510c11
Add missing forward declaration
2012-12-25 16:47:37 +01:00
David Nadlinger
48c251179a
Merge pull request #255 from foutrelis/master
...
Fix llvm/IRBuilder.h include when using LLVM 3.2
2012-12-24 20:11:12 -08:00
Evangelos Foutras
984207e348
Fix llvm/IRBuilder.h include when using LLVM 3.2
2012-12-25 04:58:25 +02:00
David Nadlinger
8880645bf6
Typo fix.
...
Turns out I still had USE_METADATA=OFF in the CMake cache when
testing the previous commit.
2012-12-24 02:22:40 +01:00
David Nadlinger
a0971b7c4b
Use more portable integer log from LLVM.
2012-12-24 02:05:06 +01:00
David Nadlinger
8094e3c21b
dgc2stack: Added size limit for stack promotion.
2012-12-23 21:20:55 +01:00