Commit Graph

1658 Commits

Author SHA1 Message Date
David Nadlinger
a8ae435c69 Remove bogous DtoMemCpy assertion.
DtoMemCpy is called with identical pointer arguments in
some legal cases.
2013-06-07 02:23:00 +02:00
kai
f589bb4271 Improve debug info for vector types and skeleton for enums.
Adds the missing array information. Printing vector values work now.
Also adds a skeleton for enum types.
2013-06-06 07:27:58 +02:00
kai
905da30ce1 Implement debug info for static arrays.
This fixes issue #356.
2013-06-05 07:19:55 +02:00
David Nadlinger
89f9c239fa Merge branch 'release-0.11.0' 2013-06-04 16:50:08 +02:00
David Nadlinger
b2bacba7f4 Correct wiki URL in debug info.
The wiki is not available using SSL; thanks to Kai for noticing
this.
2013-06-04 16:46:15 +02:00
David Nadlinger
3b38d34698 Fix up botched merge in 005f993. 2013-06-02 22:02:09 +02:00
David Nadlinger
005f993982 Merge branch 'release-0.11.0'.
Conflicts:
	gen/llvmhelpers.cpp
2013-06-02 21:53:41 +02:00
David Nadlinger
98e8c37bf5 Merge pull request #379 from klickverbot/initializer-type-mismatch
Fix initializer type mismatch crash
2013-06-02 12:44:02 -07:00
David Nadlinger
ec59399e21 Change all URLs to point to wiki.dlang.org for the time being. 2013-06-02 21:27:02 +02:00
David Nadlinger
c89d4809d6 Be more lenient with initializer type mismatch; zext as necessary.
The integer initializer width mismatch issue should really be
fixed in the frontend, but is related to forward referencing
and thus hard to track down.

Also fixes an unlisted regression since the 2.061 merge, where
there would be a const(char*) vs. immutable(char*) mismatch
reported for some string constants.

GitHub: Fixes #378.
2013-06-02 21:05:33 +02:00
David Nadlinger
ae48a19251 Refactoring-only part of DtoConstExpInit fix. 2013-06-02 21:05:33 +02:00
David Nadlinger
d9ce9ce67b Removed TODO-riddled DtoInitializer only used in DtoVarDeclaration. 2013-06-02 21:05:33 +02:00
David Nadlinger
0a7eec400f Removed dead global initializer code. 2013-06-02 21:05:33 +02:00
David Nadlinger
b9722d6671 Merge branch 'release-0.11.0'.
GitHub: Closes #375.
2013-05-31 22:22:50 +02:00
kai
26eb95d91e Add debug info for vector types. 2013-05-31 22:22:19 +02:00
David Nadlinger
c02b38fe9a Removed LLVM 3.0 compatibility code.
There might be still some pieces left here and there, and
there is certainly code that could be rewritten in a nicer
way with the 3.0 requirement out of the picture.
2013-05-31 20:48:38 +02:00
kai
1af71fa536 Fix LLVM 3.4 change to DIBuilder.createFunction().
DIBuilder.createFunction() now requires the return type to be of
subroutine type and consequently needs a DICompositeType.
2013-05-24 08:40:48 +02:00
David Nadlinger
d402cd382e Always add 'uwtable' attribute on x86_64.
This is what Clang does, and omitting it could lead to problems
w.r.t. the System V ABI. Doesn't seem to have caused any issues
so far, though.
2013-05-19 21:47:15 +02:00
David Nadlinger
8d0749c394 Merge pull request #360 from klickverbot/union-initializer
Unify struct initializer codegen, fix it for unions
2013-05-19 11:49:55 -07:00
David Nadlinger
1fed92b9b7 VarExp::toElem refactoring and global size assertion.
Frontend errors shouldn't be used for glue layer consistency
checks – maybe the error was actually hit in ancient versions.
2013-05-19 20:25:16 +02:00
David Nadlinger
41e580a79f Get rid of now-obsolete DtoConstInitializerType. 2013-05-19 20:25:16 +02:00
David Nadlinger
eef05ba019 Do not try to guess exact initializer type.
This might have been required with the old (pre-3.0) LLVM
type system, but the module linker handles global type
resolution just fine now.

Also, it is virtually impossible to determine the type in
advance for some cases, e.g. an array of unions with an
initializer that contains pointers to the array itself.
2013-05-19 20:25:11 +02:00
David Nadlinger
f8f405000b Avoid confusing naming convention.
We generally do not really use underscore prefixes. But if
they are used in other codebases, they typically refer to
member variables.
2013-05-18 19:51:37 +02:00
David Nadlinger
7b435c2c87 Unify handling of struct initializers.
GitHub: Fixes #351.
2013-05-18 19:51:37 +02:00
David Nadlinger
b577d1cf0b Handle different element initializer types in array literals. 2013-05-18 16:46:57 +02:00
kai
23df06a3ba Add <cctype> to asm-x86.h.
This removes a conditional block introduced for MSVC.
2013-05-13 21:19:01 +02:00
David Nadlinger
b2ca861f64 Fixed ModuleInfo module name emission.
The name string is actually emitted inline, not as a pointer
to a global.

GitHub: Fixes #243.
2013-05-12 01:25:48 +02:00
David Nadlinger
e1501c712f Moved constant array creation helper to llvmhelpers.h. 2013-05-12 01:25:12 +02:00
David Nadlinger
ad03a435ad Remove code for emitting the old ModuleInfo layout. 2013-05-12 00:47:49 +02:00
David Nadlinger
b2da152704 Remove D1 ModuleInfo remnants. 2013-05-12 00:39:15 +02:00
David Nadlinger
5742a0219c Fix inline asm labels in template functions.
This is a giant kludge to avoid a redesign of the inline asm
handling code. I'd be glad if somebody came up with a better
solution.

GitHub: Fixes #340.
2013-05-11 21:01:24 +02:00
David Nadlinger
15fd67be03 Remove code for unimplemented goto-into-asm check.
The check was never fully implemented. We need to look into
this again, as currently we fail with a fairly unintellegible
LLVM ICE (added as GitHub #).
2013-05-11 20:18:34 +02:00
David Nadlinger
8b9deecf34 Remove dead code. 2013-05-11 20:12:25 +02:00
David Nadlinger
d15a3bacac Minor cleanup. 2013-05-11 18:43:41 +02:00
kai
e233f803ff Merge branch 'memcpy' 2013-05-10 13:48:39 +02:00
kai
522c06ff7f Do not memcpy with same source and destination.
This can happen for sret_args. Drop the assignment in this case.
2013-05-10 12:59:14 +02:00
David Nadlinger
a792ecbaf2 Fix function attribute handling on LLVM 3.3+.
The issue was that when merging in the old attributes, attrs
wasn't assigned to, thus silently dropping all of them
(leading e.g. to noinline being omitted on functions containing
inline asm).

The new code hopefully also makes the intent clearer.
2013-05-09 22:57:33 +02:00
kai
2e7884a80d Add support for new parameter attribute returned.
Starting with LLVM 3.3 a new parameter attribute `returned` is supported.
The attribute states that the parameter is the return value, too. This is the
case in constructors. (Destructors and postblits do not return `this`.)
Attribute `returned` is now added to the `this` parameter of constructors.
2013-05-05 16:17:34 +02:00
David Nadlinger
0a376b9c71 Avoid unnecessary memset when allocating array literals.
This completes the merge of pull request #294. Thanks a lot to
Chris Holdsworth who originally wrote the patch!

GitHub: Fixes #294.
GitHub: Fixes #141.
2013-05-04 21:20:09 +02:00
David Nadlinger
2bf0789364 Fixed vector global initialization for > 1 byte elements. 2013-05-04 06:29:34 +02:00
John Colvin
e74d9b79b6 typo 2013-04-09 00:02:55 +02:00
David Nadlinger
5e598af541 Merge remote-tracking branch 'redstar/issue133'. 2013-04-02 17:01:45 +02:00
David Nadlinger
b8cdfad8c0 global.params.useAvailableExternally -> global.inExtraInliningSemantic.
This will hopefully make the associated code a bit easier
to read.
2013-04-01 21:17:13 +02:00
kai
6ab2275f09 Mark string constants as unnamed_addr 2013-03-30 15:28:38 +01:00
kai
971dc95c74 Do not emit warning about vararg for PPC64 2013-03-30 14:11:44 +01:00
kai
ec0bc749d0 Calling convention fastcc is not implemented on PPC64. 2013-03-29 21:45:12 +01:00
kai
e49082840f Fix comments in abi-ppc64 files. 2013-03-29 20:15:37 +01:00
kai
b13f3d3164 Merge branch 'master' into merge-2.062
Conflicts:
	runtime/druntime
2013-03-24 19:39:39 +01:00
David Nadlinger
b889c20dca Merge pull request #315 from klickverbot/o-o3
Make '-O' equivalent to '-O3'.
2013-03-23 09:52:58 -07:00
kai
dce378ba75 Return type must be of type DIComposite. 2013-03-23 16:21:21 +01:00