Robert Clipsham
cf08cc2844
Automated merge with http://hg.dsource.org/projects/ldc
2009-06-01 19:02:20 +01:00
Robert Clipsham
24f426c1bc
Removed unused files to allow for a pull.
2009-06-01 19:02:09 +01:00
Robert Clipsham
91ddf6140a
More tweaks.
2009-06-01 18:58:21 +01:00
Frits van Bommel
0a8db2289d
Remove redundant null-check in member functions of structs that don't have an
...
invariant.
2009-06-01 01:28:18 +02:00
Kelly Wilson
19149bc542
change mingw32 versioning to version(Windows)
2009-05-31 11:20:26 -06:00
Kelly Wilson
23919b4de4
fix assembly code for mingw32 in minitests
2009-05-31 11:01:02 -06:00
Frits van Bommel
2fe8f2cd74
Improve ABI conformance on x86 by passing the sret parameter in EAX if there's
...
no `this`.
2009-05-31 12:43:59 +02:00
Frits van Bommel
1e9ad13b12
Automated merge with http://hg.dsource.org/projects/ldc
2009-05-31 17:11:51 +02:00
Kelly Wilson
008d81afb0
Fix "garbage at end of line" errors on mingw...shouldn't affect linux/macosx
2009-05-31 09:10:33 -06:00
Frits van Bommel
06a0322478
Update patch for Tango 0.99.8
2009-05-31 15:47:59 +02:00
Frits van Bommel
46cd6504fa
Adjust some more code that was depending on the function and delegate calling
...
conventions being equal.
There's also an instance in `tango.text.convert.Layout` that should be adjusted:
{{{
Index: tango/text/convert/Layout.d
===================================================================
--- tango/text/convert/Layout.d (revision 4578)
+++ tango/text/convert/Layout.d (working copy)
-660,8 +660,12 @@
case TypeCode.STRUCT:
auto s = cast(TypeInfo_Struct) type;
- if (s.xtoString)
- return Utf.fromString8 (s.xtoString(p), result);
+ if (s.xtoString) {
+ char[] delegate() toString;
+ toString.ptr = p;
+ toString.funcptr = cast(char[] function()) s.xtoString;
+ return Utf.fromString8 (toString(), result);
+ }
goto default;
case TypeCode.INTERFACE:
}}}
2009-05-31 15:27:01 +02:00
Christian Kamm
78aa98fdfb
Error on invalid array cast. See DMD3041.
2009-05-31 15:07:04 +02:00
Frits van Bommel
a517adb426
Adjust runtime for recent ABI change on x86-64, since member functions are no
...
longer equivalent to regular functions with `this` as their first argument.
(They weren't anyway, but it happened to work as long as there was no `sret`
parameter)
2009-05-31 14:27:01 +02:00
Frits van Bommel
3718bd23fb
Add nest attribute to this parameters on x86-64. This is a free extra
...
parameter register :).
2009-05-31 10:41:20 +02:00
Frits van Bommel
c8b10643f9
Add some missing returns.
2009-05-30 23:48:22 +02:00
Kelly Wilson
2e6e578ea1
Fix test for mingw
2009-05-30 14:57:48 -06:00
Kelly Wilson
3eb4a4d389
merging
2009-05-30 14:36:00 -06:00
Kelly Wilson
71477fcb8c
Forgot one windows underscore for asm output
2009-05-30 14:35:03 -06:00
Robert Clipsham
c5be82c5ae
LDC 2 compiles again.
2009-05-30 17:23:32 +01:00
Frits van Bommel
da593c99dc
Remove code duplication for vtable loads and improve instruction naming to make
...
bitcode with virtual calls easier to read.
2009-05-30 13:04:49 +02:00
Christian Kamm
a05ed9a171
Fix #309 : allow -of with multiple source files if -singleobj is given.
2009-05-30 12:58:04 +02:00
Christian Kamm
7815318f9b
Automated merge with http://hg.dsource.org/projects/ldc
2009-05-30 12:47:51 +02:00
Christian Kamm
750260070a
Define __C99FEATURES__ in lexer.c for Solaris. Fixes #313 .
2009-05-30 12:47:35 +02:00
Kelly Wilson
e35b95f35e
merging
2009-05-29 01:09:38 -06:00
Kelly Wilson
01c608f457
Fix - add Path.native for mingw support...thanks mp4/jaffa
2009-05-29 01:08:39 -06:00
Christian Kamm
5d4fe64ac2
Get rid of old phobos-based tests.
2009-05-28 22:00:08 +02:00
Christian Kamm
e03a897bad
Make sure complex -> integral casts are not used when casting to bool.
...
Error instead of assert on unimplemented cast.
2009-05-28 21:45:14 +02:00
Christian Kamm
803156b035
Allow complex -> integral casts.
2009-05-28 20:26:26 +02:00
Frits van Bommel
b06fa1f05e
I ran into another issue like the one fixed by r1318, so update all of
...
`tests/mini/norun_debug*` to hopefully keep crashing using the same trick.
2009-05-28 02:28:30 +02:00
Frits van Bommel
a24a2201f1
Teach -dgc2stack to preserve the call graph. This should allow for more
...
efficient execution by the pass manager.
2009-05-28 02:14:01 +02:00
Frits van Bommel
6619190ba5
* Add -functionattrs to default pass list so -dgc2stack is more effective
...
when callees aren't inlined. This should also improve various standard LLVM
optimizations.
* Comment out some verbose logging.
2009-05-28 00:07:21 +02:00
Kelly Wilson
1ec75f0536
merging
2009-05-27 12:42:28 -06:00
Kelly Wilson
cab7aeb843
just a simple change to cmake for mingw
2009-05-27 12:41:41 -06:00
Christian Kamm
30aa3fa00b
Added tag 0.9.1 for changeset a6dfd3cb5b99
2009-05-27 19:52:47 +02:00
Christian Kamm
7fd43e8bf7
Error instead of assert on delegate literals as constant expressions.
...
Make function literal linkage internal inside functions and external otherwise.
2009-05-27 19:20:18 +02:00
Frits van Bommel
e7b3f5415f
Make "aa[key]" use the same runtime call as "key in aa". The runtime calls
...
these were using were different, but with equivalent definitions.
With `ldc -O3`, the following functions now all compile to the exact same code:
{{{
int[int] y;
void foo(int x) {
if (x in y) {
auto z = x in y;
sink(*z);
}
}
void bar(int x) {
if (x in y) {
sink(y[x]);
}
}
void baz(int x) {
if (auto p = x in y) {
sink(*p);
}
}
}}}
2009-05-25 12:50:40 +02:00
Frits van Bommel
c8665ddc88
Revert ldmd back to use bash instead of sh to unbreak it on Ubuntu.
2009-05-23 23:18:47 +02:00
Kelly Wilson
a178d9563d
Fix for mingw32 segfault
2009-05-23 14:59:04 -06:00
Frits van Bommel
1791d7b8b4
Fix a behavioral change accidentally introduced by the move to the LLVM
...
commandline system: `-output-(bc|ll|s)` used to disable generation of an object
file unless explicitly requested with `-output-o`. Now they do so again.
2009-05-23 20:57:22 +02:00
Christian Kamm
52329f071e
Fix regression dstress.nocompile.finally_07. The EnclosingTryFinally handler
...
should not be set when emitting the landing pad's finally code.
2009-05-23 09:02:36 +02:00
Christian Kamm
2665fc4f3c
Add test from #308 to minitests.
2009-05-23 00:26:38 +02:00
Christian Kamm
5b799deeb4
Fix #308 by giving finally code emitted by EnclosingTryFinally a different landing pad.
2009-05-23 00:23:39 +02:00
Frits van Bommel
adfc5b3ee9
Fix scope(exit) foreach (ref v; arr) foo(v);
2009-05-22 21:38:01 +02:00
Frits van Bommel
59f9b35cea
Count the sret register as well when keeping track of how many integer registers
...
are available for extern(C) functions on x86-64.
Interestingly, llvm-g++ seems to have a very similar bug: http://llvm.org/pr4242
(So this breaks ABI-compatibility with llvm-gcc for this corner case, but gains
it with gcc...)
To clarify, this is about code like this:
{{{
struct S { void*[3] data; }
struct T { void*[2] data; }
// The T should be passed in memory, and p in the last int register.
extern(C) S fail(int, int, int, int, T t, void* p) {
S s;
s.data[0] = t.data[0];
s.data[1] = t.data[1];
s.data[2] = p;
return s;
}
}}}
which should generate code functionally equivalent to this:
{{{
extern(C) S* succeed(S* s, int, int, int, int, T t, void* p) {
s.data[0] = t.data[0];
s.data[1] = t.data[1];
s.data[2] = p;
return s;
}
}}}
(with the same definitions for S and T)
2009-05-22 13:17:06 +02:00
Christian Kamm
86e1457dde
Automated merge with http://hg.dsource.org/projects/ldc
2009-05-22 10:18:04 +02:00
Christian Kamm
c433604243
Fix bug #307 by doing what DMD does: add the arrayop to
...
sc->module->importedFrom instead of sc->module. That way array ops in template
instantiations will be semantic3'ed.
2009-05-22 10:17:47 +02:00
Frits van Bommel
2739cd108c
Let TargetABI::passByValue() know when a parameter is byref (either explicitly
...
or because it's a static array) by giving it the pointer type instead of the
type itself.
This fixes Derelict compilation on x86-64, where the ABI wasn't expecting a
static array to be passed in at all.
2009-05-22 00:19:54 +02:00
Christian Kamm
d537ad0d48
Allow package protected members to be accessed by the declaring module even if
...
it isn't in a package.
2009-05-21 18:08:31 +02:00
Frits van Bommel
2f150ddd62
Oops, didn't mean to change debug info linkage.
2009-05-21 15:26:46 +02:00
Frits van Bommel
a520661667
Now that templates instantiations are no longer emitted for all modules that
...
even blink at them they seem to break due to being linkonce (if compiled with
any optimization level > 0), so let's give them weak linkage instead.
The difference is that unreferenced linkonce symbols can be deleted, while
weak symbols need to be preserved.
2009-05-21 15:23:28 +02:00