Commit Graph

1778 Commits

Author SHA1 Message Date
David Nadlinger
31e732911a Fixed templated interface member call codegen.
Fixes DMD testcase 'test7618'.
2012-09-07 03:51:31 +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
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
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
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
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
kai
e13b115583 More unification work. 2012-07-29 14:22:56 +02:00
kai
9bf65bc9a2 Start unification of master and llvm-3.1 branch. 2012-07-29 13:50:30 +02:00
kai
508dd9ff70 Simplify CMakeLists.txt.
This version works with LLVM 3.0 and 3.1.
2012-07-24 23:33:15 +02:00
kai
fcd3ac6a11 Do not add a second underscore to naked functions on Windows.
This leads to missing symbols during linking on Windows x64. If
this changes breaks other Windows platforms then we have to analyze
the triple instead of global.params.os.
2012-07-14 18:25:27 +02:00
David Nadlinger
f7e5245e03 Fix #138 – in precondition of methods broken in D1.
Not sure why the code was special-cased for D2 in the first place –
are there any cases where we expect a »full« context struct in the
contracts for D1. At least, they don't occur in DStress/Tango/….

As a general note, this is one of many bugs which would have not gone
unnoticed if we didn't use so many bitcasts.
2012-07-13 11:38:56 +02:00
David Nadlinger
c630ab56ff Fix #136 - return static arrays as sret parameters on non-x86.
This should eventually be done on x86 and x86_64 as well, but as
discussed in GitHub issue #110/pull request #120, the ABI there needs a
closer look: at least on x86_64, we need to treat static arrays exactly
like if they were a struct containing T.length members of the same type
to be compatible with DMD (as soon as the ABI is correctly implemented
there, that is).

While for this reason I want to avoid a ABI change which could silently
break some code only to change the x86 ABI again shortly after, this
commit only touches the "default" ABI for unknown targets and thus
should be safe (as we give absoultely no ABI guarantees there anyway).
2012-07-07 23:53:46 +02:00
David Nadlinger
cef19fb225 Fix #125 – Nested class context pointer invalid (D1).
Patch originally by Alexey Prokhin, thanks.
2012-06-24 16:18:47 +02:00
David Nadlinger
67f12fe8b5 Fixed DSource #330 – Many-at-a-time nested context crash (D1). 2012-06-24 11:30:32 +02:00
David Nadlinger
61e61e47f0 Fix #125 - fix generation of nested context chains.
Just declaring the type of the parent is obviously not enoguh, we need to have run this very code for determining level and context type (if the parent is also nested, that is).
2012-06-23 17:05:59 +02:00
David Nadlinger
6f236518b5 Fixes #123 – Linking of pre/post-condition in interface fails when interface implemented in separate module. 2012-06-19 22:37:46 +02:00
David Nadlinger
62bfda0259 Fix #113 - promotion of small static array arguments to registers. 2012-06-06 22:55:59 +02:00
David Nadlinger
ba9fb721ed Removed trailing whitespace. 2012-06-06 20:41:46 +02:00
David Nadlinger
d5084d9051 Factored out x86 ABI code to separate file. 2012-06-06 20:39:38 +02:00
David Nadlinger
260faae6ec Remove inreg attribute from static arrays when enregistering them. 2012-06-06 15:44:54 +02:00
Dan Sanduleac
2748cdaa88 Fix #49: Static arrays that don't fit in a register should be passed using byval 2012-06-05 02:52:25 +01:00
David Nadlinger
d24592b3e7 Fix #77 - LDC1 fails to compile tango.io.vfs.ZipFolder.
I think the same rewrite for contract this should be valid in D1 - if I missed something crucial, feel free to revert.
2012-06-02 19:21:36 +02:00
kai
48f8ffeb0b Further changes to compile using MSVC. 2012-05-23 17:36:26 +02:00
Alexey Prokhin
8c5cf40bb5 Fixed compilation of ldc1 2012-04-22 12:26:25 +04:00
Alexey Prokhin
f4d8021e5a Merge branch 'master' of github.com:ldc-developers/ldc 2012-04-22 12:17:01 +04:00
Alexey Prokhin
67df422667 Fixed a segfault when using opDollar for struct and class indexing operations 2012-04-22 12:11:02 +04:00
Alexey Prokhin
07bf68afa3 DMD Issue 5590 - Regression(2.036) ICE(e2ir.c): when using .values on enum which is associative array 2012-04-21 22:37:36 +04:00
Alexey Prokhin
d739588d4a Fix dmd bug 7504: Cannot assign an object of type 'typeof(null)' to an array 2012-04-21 22:37:36 +04:00
Alexey Prokhin
8364ad4675 Fixed a crash when calling a function by an alias 2012-04-21 22:37:36 +04:00
Alexey Prokhin
1bd4e725e8 Fixed appending function literals to an array 2012-04-21 22:37:36 +04:00
Alexey Prokhin
2f60c4dcda Codegen the try block before the catches and finally 2012-04-21 22:37:32 +04:00
Alexey Prokhin
bca73ec8b9 Merged dmd 2.059beta 2012-04-05 15:30:00 +04:00
Eldar Insafutdinov
a8398d64e8 Moved configfile to the driver 2012-04-03 21:18:16 +01:00
Eldar Insafutdinov
feefad412c Move cl_options out of LDCShared 2012-04-02 14:53:52 +01:00
Eldar Insafutdinov
71044056e4 split toobj.cpp and moved writeModule outside of LDCShared 2012-04-02 00:11:30 +01:00
Eldar Insafutdinov
0b411b873c Separated compiler from the driver into the shared library 2012-04-01 22:06:08 +01:00
Alexey Prokhin
f6111f23f2 Fixed #85 — ICE with a non-POD local struct literal in a class method 2012-03-06 10:47:24 +04:00
Alexey Prokhin
120bf4429c Partially reverted fix for #66.
ldc still supports -soname switch but does not set soname by default as
suggested in issue #66.
2012-03-06 10:29:37 +04:00
Alexey Prokhin
d69d2a835c Fixed #83 — ldc claim a main block when trying to build as shared lib 2012-03-06 10:29:31 +04:00
kai
53f9964b95 Fix LDC1 compile error. 2012-02-18 18:08:26 +01:00
Alexey Prokhin
ae7f0ca7e7 Preliminary vector support 2012-02-16 14:42:23 +04:00
Alexey Prokhin
8282153738 Removed special treatment of -property switch 2012-02-15 13:23:23 +04:00
Alexey Prokhin
6687a6624b Fixed #66 — -shared do not set a SONAME 2012-02-15 13:23:23 +04:00
Alexey Prokhin
fb5618e336 Fixed #65 — Renaming shared lib 2012-02-15 13:23:23 +04:00