David Nadlinger
139e1a9c2a
Implement stripModifiers using castMod(0).
...
Reduces the potentail for bugs in the fragile code; castMod(0) is
used like this in DMD code.
2012-09-07 03:51:33 +02:00
David Nadlinger
57b2eb3dad
Fixed crash on nested functions with parameters that have a postblit.
...
Implementing the recursion in DeclarationExp::apply, which seems more
natural, lead to a "cannot interpret" CTFE error in Phobos.
An upstream bug will be raised about this.
2012-09-07 03:51:33 +02:00
David Nadlinger
88f08cf927
Workaround for LLVM bug 11479.
...
The LLVM module name doesn't really seem to impact much aynway.
2012-09-07 03:51:33 +02:00
David Nadlinger
05b9b14fa9
Fixed -debuglib in LDMD.
2012-09-07 03:51:33 +02:00
David Nadlinger
6275c66a89
Fixed segfault on invalid naked functions.
...
Emitting a frontend error during codegen is somewhat problematic in
any case, but stopping if an error ocurred should work just fine here.
2012-09-07 03:51:33 +02:00
David Nadlinger
45d9efb203
Call element postblit on "return array[0]".
...
Fixes DMD testcase 'sdtor'.
2012-09-07 03:51:33 +02:00
David Nadlinger
1cecab16cf
Emit correct TypeInfo argument for _d_arrayassign.
...
Fixes part of DMD testcase 'sdtor'.
2012-09-07 03:51:33 +02:00
David Nadlinger
207033c427
Removed LDC-only dead code.
...
Helps avoid broken merges.
2012-09-07 03:51:33 +02:00
David Nadlinger
d4eafe53e0
Removed obsolete nested context styles.
...
NChybrid was the only one that didn't instantly trigger a "not
implemented" assertion on any code using nested function for a long
time, and removing the cruft greatly improves code readability
(maintainability is a moot point anyway given its current state).
2012-09-07 03:51:33 +02:00
David Nadlinger
ee4285f934
Properly handle DMD-internal "reference variables".
...
Previously, we just had a hack to make ref foreach statements work.
This commit enables them to work in other cases as well, like the
implicit __result variable for functions with out-contracts (which
is such a magic ref variable for ref-returning functions).
Fixes DMD testcase 'testcontracts'.
2012-09-07 03:51:33 +02:00
David Nadlinger
6b1b84a28d
Pass library file arguments to linker _before_ custom switches.
...
This allows specifying a static D library specified at the LDC
command line to pick up symbols from druntime/Phobos.
Fixes DMD testcase 'test39'.
2012-09-07 03:51:32 +02:00
David Nadlinger
4b23e794ca
Removed linkExecutable() (dead code).
2012-09-07 03:51:32 +02:00
David Nadlinger
1cb982f568
druntime updates.
2012-09-07 03:51:32 +02:00
David Nadlinger
16847dd5d5
Disregard modifiers when checking for initializer type match.
...
Previously, only const'ness was dropped, but DMD 2.060 started to
emit initializers with incompatible shared modifiers as well.
2012-09-07 03:51:32 +02:00
kai
8987f2da30
Fix format for MSVC.
2012-09-07 03:51:32 +02:00
David Nadlinger
4ae14449ea
Emit new TypeInfo layout.
...
Includes untested support for RTInfo.
2012-09-07 03:51:32 +02:00
David Nadlinger
8ebd2ce5a6
More CRLF->LF line ending conversion.
2012-09-07 03:51:32 +02:00
David Nadlinger
c941640d17
Fixed '-debug' and '-version' handling in LDMD.
...
No idea how the old version once passed the test suite.
2012-09-07 03:51:32 +02:00
David Nadlinger
6fea7358dc
Fixed several asm-related error message formats.
2012-09-07 03:51:32 +02:00
David Nadlinger
7a162b6f6d
Fixed rvalue delegate property access.
...
Covered by DMD testcase 'test42'.
2012-09-07 03:51:32 +02:00
David Nadlinger
364cfb6714
Improved initializer ICE error message.
2012-09-07 03:51:32 +02:00
David Nadlinger
508652fd8b
Initialization of vector types with single value.
...
Fixes DMD testcase 'testargtypes'.
2012-09-07 03:51:32 +02:00
David Nadlinger
9ac1582726
Update druntime/Phobos library version.
2012-09-07 03:51:31 +02:00
David Nadlinger
0fe41a1f30
druntime updates.
2012-09-07 03:51:31 +02:00
David Nadlinger
31e732911a
Fixed templated interface member call codegen.
...
Fixes DMD testcase 'test7618'.
2012-09-07 03:51:31 +02:00
David Nadlinger
270979ffd6
Testsuite updates.
2012-09-07 03:51:31 +02:00
David Nadlinger
d163799758
Imported D2 testsuite (v2.060) as submodule.
2012-09-07 03:51:31 +02:00
David Nadlinger
1645eff596
Created separate tests directory for D1.
2012-09-07 03:51:31 +02:00
David Nadlinger
837ef30fec
Merged DMD 2.060 frontend.
...
Upstream Git tag v2.060 (e8fe11c20249cb9e42538be88c99b74ede4d12e3).
2012-09-07 03:51:31 +02:00
David Nadlinger
e03e027002
Removed all CRLF line endings from DMD source.
...
Some files in our copy of the DMD 2 source had CRLF line endings.
This was not only inconsistent, but also made merging DMD patches
(where LF is used throughout) unnecessarily painful.
2012-09-07 03:51:31 +02:00
kai
1205e3ea83
Use TargetData to get size of certain types (instead of hard-coded values).
2012-08-25 01:29:42 +02:00
kai
2173b52aea
Make LDC1 compile with LLVM 3.2 trunk.
2012-08-17 15:44:20 +02:00
kai
692d624db4
Make LDC1 compile again.
2012-08-17 15:34:17 +02:00
kai
e6a07ffdfe
Several changes to optimizer related code.
...
- New functions codeGenOptLevel() and verifyModule() to remove code duplication
- Hidden option no-verify renamed to disable-verify and moved to optimizer (like opt tool)
- Removed global.params.noVerify
2012-08-16 23:26:52 +02:00
kai
34d595de26
Enable FunctionAttrsPass again.
...
This pass requires an alias analysis, which is also added.
2012-08-11 19:17:18 +02:00
David Nadlinger
56233a373c
Merge pull request #151 from jerro/master
...
Add pragma for emitting LLVM shufflevector instructions.
2012-08-06 12:04:59 -07:00
Jernej Krempuš
100907ffa2
Added pragma shufflevector.
2012-08-06 20:50:33 +02:00
Jernej Krempuš
3d108ee684
Fixed a bug in gen/tollvm.cpp.
2012-08-05 18:46:52 +02:00
kai
5216fa48d8
Remove conditional compiled code by favouring the 3.1 solution.
2012-08-03 22:57:01 +02:00
kai
c01cae1c2b
Prefer C++-style casts.
...
This is based on Item 2 of "More Effective C++". In general, the C++ cast operators are more expressive and easy to find,
e.g. by grep. Using const_cast also shuts up some compiler warnings.
2012-08-03 22:46:14 +02:00
kai
76cf66f50b
Expose LLVM as global version symbol.
...
Required because prototypes of intrinsics changed between 3.0 and 3.1.
2012-08-03 16:44:34 +02:00
kai
6e427fe818
Prefer C++-style casts.
...
This is based on Item 2 of "More Effective C++". In general, the C++ cast operators are more expressive and easy to find,
e.g. by grep. Using const_cast also shuts up some compiler warnings.
2012-08-03 06:36:35 +02:00
kai
311297b096
Prefer C++-style casts.
...
This is based on Item 2 of "More Effective C++". In general, the C++ cast operators are more expressive and easy to find,
e.g. by grep. Using const_cast also shuts up some compiler warnings.
2012-08-03 06:32:23 +02:00
kai
2dbee75523
Prefer C++-style casts.
...
This is based on Item 2 of "More Effective C++". In general, the C++ cast operators are more expressive and easy to find,
e.g. by grep. Using const_cast also shuts up some compiler warnings.
2012-08-02 19:55:29 +02:00
kai
9dad0a6b3b
Convert output of llvm-config --targets-built to a list. This fixes #148 .
2012-08-01 06:47:37 +02:00
kai
8d06145ac0
Fixes ticket 457 from dsource.org.
...
-mattr=help does not printout help without source file
2012-07-29 20:46:14 +02:00
kai
e144d8d4ad
In FindLLVM.cmake metachars must be escaped before embedding paths into regex.
2012-07-29 19:18:48 +02:00
kai
b53544b389
Simplify code by using the right type.
...
Removes some comditional compiling by replacing unsigned with llvm::Attributes.
2012-07-29 18:18:36 +02:00
kai
dbb5a34eda
Add changes for LLVM 3.2.
2012-07-29 17:31:50 +02:00
kai
bf2aaaca84
More unification work.
2012-07-29 16:13:52 +02:00