Commit Graph
3384 Commits
Author SHA1 Message Date
kai b7d80963ee Mark more differences between DMD and LDC. 2013-11-06 02:27:08 +01:00
Kai Nacke 254579df2c Correct issues found by AddressSanitizer. 2013-11-05 11:44:21 +01:00
Kai Nacke 248d3f2b66 Merge branch 'master' into merge-2.064 2013-11-05 10:47:43 +01:00
kai 6fe28e1660 Small code modifications to Ir-Classes.
Adds some constructors and moves the code to the header file. Uses some of the new constructors.

A big problem with the source are the different strategies used for otherwise similar classes.
E.g. a IrField registers itself with the VarDeclaration. Same is required for IrParameter, but
in this case it is done by the caller.
2013-11-05 10:31:14 +01:00
Kai Nacke f772efaec3 Merge branch 'master' into merge-2.064 2013-11-04 02:24:02 +01:00
kai 8d7f0bf0eb Fix for issue #535.
The symbols must have weak_odr linkage if they result from a template instantiation.
2013-11-04 02:21:05 +01:00
Kai Nacke 2f8f68fabd Update to DMD@a9eedd1.
Also include latest phobos changes.
2013-11-04 00:02:41 +01:00
Kai Nacke f7f62a609d Declare more TypeClass instances as builtin.
Another difference to DMD. With the new TypeInfo, this should work now.
2013-11-03 15:23:11 +01:00
Kai Nacke ecefd81c42 Possible fix for the current segfaults.
DMD treats immutable(char)[] and cons(char)[] as builtin.
The latter was missing in LDC.
2013-11-03 13:45:25 +01:00
kai bf4c6f8ff2 Fix CR/LF horror which prevents compiling with MSVC 2013-11-02 20:23:31 +01:00
kai 1310337d6e Add more IN_LLVM sections and minimize more differences to DMD. 2013-11-02 19:56:47 +01:00
Kai Nacke 27ccce3d1f Make std.math.ldexp @trusted 2013-11-01 20:21:59 +01:00
Kai Nacke a225ee934d _d_hidden_func needs a parameter.
The DMD implementation is a bit odd. A parameter is passed to the function but the function
itself is declared without a parameter. Then inline assembly is required to retrieve the
parameter.
Just do the same as gdc: declare the passed parameter.
2013-11-01 19:01:29 +01:00
Kai Nacke 81775dfb9a Fix version number 2013-11-01 18:59:58 +01:00
Kai Nacke 054d78934a Update to b52c07.
Also includes latest druntime changes.
2013-11-01 17:55:34 +01:00
Kai Nacke d48c72d435 Enable delete again.
Some Travis-CI errors may be caused by out-of-memory.
2013-10-31 12:21:33 +01:00
Kai Nacke 72f34e3d8e Update source to eb1b004.
This brings the source beyond beta4.
2013-10-30 21:52:45 +01:00
Kai Nacke 3a85bbec94 Merge latest druntime/phobos changes. 2013-10-29 21:03:00 +01:00
Kai Nacke 4041855110 Update use of Typeinfo. 2013-10-29 19:21:15 +01:00
David Nadlinger d9b137bb45 Implement new ModuleInfo discovery/druntime startup scheme on Linux.
This is the same implementation that is used for DMD and
supports shared libraries (not yet tested).
2013-10-29 19:21:15 +01:00
David Nadlinger 82c202bb60 Adjust _d_assert_msg return type. 2013-10-29 19:21:15 +01:00
David Nadlinger 2b800b8732 Fix catch clause codegen.
In the 2.064 frontend, the catch variables have a zero
initializer, so DtoDeclarationExp overwrote the actually
caught exception with null.
2013-10-29 19:21:15 +01:00
David Nadlinger 55c02f725a Fix IRLandingPadCatchInfo initialization order warning. 2013-10-29 19:21:15 +01:00
David Nadlinger e36385214c Do not leave __xopEquals for structs undefined. 2013-10-29 19:21:15 +01:00
David Nadlinger d918115e64 Remove assertion triggered due to qualifier mismatch. 2013-10-29 19:21:15 +01:00
David Nadlinger 1d142129e3 Handle "initializer outlining" for loop rewrites in 2.064. 2013-10-29 19:21:15 +01:00
David Nadlinger cb341586e3 First merge of 2.064 beta.
This corresponds to DMD commit a913ce4bc59a94a022a27e390fc841f4aededffb.

Doesn't build Phobos yet.
2013-10-29 19:21:15 +01:00
David Nadlinger c400d180d2 Immediately exit on function type mismatch to avoid LLVM crash. 2013-10-29 19:21:14 +01:00
David Nadlinger 01b6d55770 Diff reduction: Remove Scope::ignoreTemplates and friends.
It is unused since my change to the way codegen is
driven. If we want to optimize template codegen again,
we should do it properly, contributing the changes back
to DMD.
2013-10-29 19:21:14 +01:00
David Nadlinger 5ac894c32d Diff reduction: Remove unnecessary forward declarations. 2013-10-29 19:21:14 +01:00
David Nadlinger f67cbcda98 DtoType -> DtoFunctionType. 2013-10-29 19:21:14 +01:00
kai 8408afcf6d Add SSE4.1, SSE4.2, AES and SHA opcodes.
Also adds comments for all AVX opcodes supported by DMD.
This fixes issue #514.
2013-10-29 17:31:43 +01:00
Kai Nacke c03ed8eea9 Merge pull request #532 from klickverbot/gc2stack-fixes
gc2stack: Cleanup, handle _d_allocmemory.
2013-10-27 23:14:31 -07:00
David Nadlinger 9f1c26b52a gc2stack: Handle _d_allocmemory.
This allows us to clean up after inlining closures.
2013-10-27 17:05:19 +01:00
David Nadlinger 3539e201f8 gc2stack: Move TypeInfo handling code into FunctionInfo subclass.
This is to properly support calls that don't involve TypeInfo
at all, like it is already the case for _d_newclass, and will be
for _d_allocmemory.
2013-10-27 17:05:19 +01:00
David Nadlinger 5b9208ef85 gc2stack: Extract static size checking code into helper function. 2013-10-27 17:05:19 +01:00
David Nadlinger e1a6d8144b gc2stack: Replace return type bool with proper enum flag.
This makes the code much easier to read.
2013-10-27 15:43:12 +01:00
David Nadlinger 27b4f730aa gc2stack: Remove unused safeToDelete mechanism. 2013-10-27 15:36:14 +01:00
Kai Nacke 5bf42f86aa Remove -Werror from LLVM_CXXFLAGS.
This flag causes compile errors we can't fix.
2013-10-25 23:30:32 +02:00
kai a73e4602ee Simplify EmitMemSet in GarbageCollect2Stack.
Simply take advantage of the predefined `CreateMemSet()` function.
2013-10-25 23:28:29 +02:00
kai 835e972e6b Fix va_arg handling.
The change of symbol emission ignored the fact that the va_arg intrinsic must be
handled in a special way. This commit corrects the omission (which leads to seg
faults on Linux/PPC64).
2013-10-25 16:15:52 +02:00
Kai Nacke e5fe110280 Merge pull request #526 from klickverbot/newclass-signature
Correct signature of _d_newclass runtime call.
2013-10-23 21:43:11 -07:00
Kai Nacke cdecb99891 Merge pull request #525 from klickverbot/fix-gc2stack-ir
Do not generate invalid IR in dgc2stack pass.
2013-10-23 21:42:51 -07:00
David Nadlinger b052b30442 Correct signature of _d_newclass runtime call.
Fixes programs trying to directly access it (e.g. the
GtkD bindings). Not sure why this didn't come up earlier.
2013-10-24 00:27:09 +02:00
David Nadlinger 1f59740524 _d_allocclass -> "_d_newclass".
The define is a leftover from the times when we supported
both D1 and D2.
2013-10-24 00:25:36 +02:00
David Nadlinger 3d8e2e5e5c Add virtual destructor to GarbageCollect2Stack to silence GCC warning. 2013-10-24 00:24:55 +02:00
David Nadlinger 36b70b68e8 Do not generate invalid IR in dgc2stack pass.
Branching to a block that starts with a landing pad
instruction is illegal.

GitHub: Fixes #524.
2013-10-23 22:53:18 +02:00
Kai Nacke 287e089927 Add info to -version if compiled with address sanitizer 2013-10-23 02:53:53 +02:00
Kai Nacke e6ffffdace Files from DRV_SRC and DRV_HDR should be compiled with same flags as other files. 2013-10-23 01:26:28 +02:00
David Nadlinger 847b7ac611 Merge pull request #522 from redstar/sanitize
Build LDC with address sanitizer enabled.
2013-10-22 02:57:56 -07:00