Christian Kamm
d7c984fbef
Explicitly include string.h for strdup.
2009-05-10 18:03:32 +02:00
Christian Kamm
226e85bf30
Automated merge with http://hg.dsource.org/projects/ldc
2009-05-10 17:58:35 +02:00
Christian Kamm
ba95eab71f
In config file: replace %%ldcbinarypath%% with the path to the ldc executable.
2009-05-10 17:58:09 +02:00
Tomas Lindquist Olsen
3fb2cb0322
Okay... Fix the assertion as well, since 20 really is enough yet it wanted MORE... Despite the message.
2009-05-10 17:31:56 +02:00
Tomas Lindquist Olsen
0ab77de246
Increased a buffer size in TypeInfo_StaticArray from 10 to 20 to avoid assertion failures! Thanks LeoD.
2009-05-10 17:25:47 +02:00
Tomas Lindquist Olsen
4f59c0cb7b
Removed fix from rev [1331] since rev [1333] adds a more general fix that catches more cases!
2009-05-10 15:50:51 +02:00
Christian Kamm
813c650517
Backport D2 CTFE cast behavior to allow cast(char[])char[n] to succeed.
2009-05-10 15:42:23 +02:00
Tomas Lindquist Olsen
ea00a120e9
Added testcase for #288 .
2009-05-10 14:37:30 +02:00
Tomas Lindquist Olsen
c6dca3fb76
Fixed CTFE evaluation on .dup . Fixes ticket #288 .
2009-05-10 14:32:23 +02:00
Tomas Lindquist Olsen
dbe4852b7b
Fixed D-style vararg arguments with types that have sizes bigger that pointers, yet are not aligned to pointer sizes. Fixes ticket #276 .
2009-05-10 04:37:03 +02:00
Frits van Bommel
d1f582583b
Turn new _d_array_slice_copy runtime call into memcpy when the slice lengths are
...
equal and alias analysis says it's safe.
2009-05-10 04:18:14 +02:00
Tomas Lindquist Olsen
dfea022a86
Changed array slice copying to call a runtime function when assertions or array bound checks are enabled instead of just doing a memcpy. This makes sure an exception is thrown if the copy is invalid (ie. different lengths or overlap). Fixes ticket #283 . Rebuilding the runtime is necessary.
2009-05-10 02:23:05 +02:00
Tomas Lindquist Olsen
54d9955abc
Added reference to DMD bug for latest dstress "regressions" compile/m/mixin_29_E.d and compile/m/mixin_29_F.d .
2009-05-10 00:50:35 +02:00
Tomas Lindquist Olsen
ecc106d7b7
Fixed dmdfe generated class invariant calls. Also insert proper "this !is null" check before it. Fixed invariant* dstress regressions and generally seems like a good idea. Hope I didn't break anything.. minitests run fine!
2009-05-10 00:46:09 +02:00
Christian Kamm
06108db87e
Yet another fdiv/fsub special case.
2009-05-09 20:13:05 +02:00
Christian Kamm
883f13dbce
Strip metadata for -singleobj as a workaround to a LLVM linking bug.
2009-05-09 18:57:21 +02:00
Christian Kamm
cae1f425a0
Update for LLVM rev > 71348: getTypePaddedSize -> getTypeAllocSize
2009-05-09 18:57:00 +02:00
Tomas Lindquist Olsen
3aeb56abec
Fixed compile unit for debug info for array operations, fixed ticket #280 .
2009-05-09 15:27:27 +02:00
Christian Kamm
81858cfc76
Automated merge with http://hg.dsource.org/projects/ldc
2009-05-09 08:58:55 +02:00
Christian Kamm
968e1148d8
Restrict second arg of certain floating-point stores to ST. Fix type postfix
...
for the two argument form of fistp and fisttp.
2009-05-09 08:58:41 +02:00
Frits van Bommel
634d623b34
Some tweaks to -simplify-drtcalls.
2009-05-09 02:34:27 +02:00
Frits van Bommel
039edd5cd4
Make sure this testcase keeps crashing with -O3.
...
Recent optimization improvements made LLVM realize the store-to-null was
unavoidable, so it deleted all of main() and replaced it with 'unreachable'.
Because the body of main() no longer even contained a return instruction,
calling it caused random code to be ran instead. This happened to be the code
that links in the ModuleInfo on my machine, which then returned "successfully".
2009-05-09 00:55:47 +02:00
Frits van Bommel
5b82f780f8
Allocate objects on the stack if they (a) don't have a destructor, and
...
(b) don't override the delete operator (on top of the regular conditions for
stack allocation that also apply to arrays, structs, etc.).
The "no destructor" clause is not strictly necessary, but calling them at the
right time would be tricky to say the least; it would involve, among other
things, "manually" inserting a try-finally block around anything that might
throw exceptions not caught in the current function.
Note: objects with custom new operators are automatically ignored because they
don't use the regular allocation runtime call, so there's no need to pay special
attention to them.
2009-05-09 00:50:15 +02:00
Frits van Bommel
adf1fd4d44
Work around an LLVM bug by not referring to globals from metadata. This was
...
only used for consistency checking anyway.
For the LLVM bug, see http://llvm.org/PR4180 / http://llvm.org/PR4046
2009-05-08 16:00:44 +02:00
Frits van Bommel
5c29832ee7
Fix a bug pointed out by valgrind: OutBuffer::write4() was writing 8 bytes on
...
platforms with 64-bit longs.
2009-05-08 12:21:53 +02:00
Christian Kamm
cde738111c
Fix type postfix for fistp/fisttp. Two operand form still broken (is it even legal?).
2009-05-07 21:49:58 +02:00
Frits van Bommel
f5b56ce346
Fix typo in function name
2009-05-07 15:33:06 +02:00
Christian Kamm
b6ad8b69ab
Add newline to get rid of warning.
2009-05-07 21:07:50 +02:00
Christian Kamm
2afbfbe8da
Automated merge with http://hg.dsource.org/projects/ldc
2009-05-07 21:01:57 +02:00
Christian Kamm
37edd5add6
Fix certain cases of floating point instruction mistranslation.
2009-05-07 21:01:44 +02:00
Tomas Lindquist Olsen
ca4f588c08
Fixed deal breaker bug for more-at-once compilation when any module contained aggregates. Fixes ticket #272 .
2009-05-07 02:10:29 +02:00
Frits van Bommel
7f07cf02ad
Automated merge with http://hg.dsource.org/projects/ldc
2009-05-06 20:29:27 +02:00
Frits van Bommel
52c22c6c27
Stack-allocate zero-initialized arrays.
2009-05-06 20:27:48 +02:00
Christian Kamm
108309a579
Ignore short/long prefix of labels instead of ignoring the whole branch
...
instruction!
2009-05-06 19:56:33 +02:00
Christian Kamm
c57f6212a6
Make the no-operand versions of floating point inline asm instructions always
...
pop the floating point stack - like dmd does.
2009-05-06 18:54:20 +02:00
Christian Kamm
8a8818104b
Translate fsub/fdiv correctly. See #256 .
2009-05-06 18:08:44 +02:00
Frits van Bommel
ec573df5b2
Some refactoring
2009-05-06 15:58:15 +02:00
Frits van Bommel
c6b6d1874a
Postpone (expensive) escape analysis until we're sure it's needed.
2009-05-06 14:11:37 +02:00
Kelly Wilson
c60ce29bde
fix wrong arg order for fmul/fadd
2009-05-05 11:51:00 -06:00
Frits van Bommel
5723fa7492
Add 'nounwind' attribute to the relevant runtime functions, and use it when
...
deciding whether or not to generate an invoke instead of a call.
2009-05-04 20:26:45 +02:00
Frits van Bommel
cf0b8936ce
Factor out the code to find gcc, and add a command-line option to override the
...
default executable name.
This should help cross-compilation by allowing a cross-gcc to be specified from
the configuration file instead of only through the CC environment variable.
2009-05-04 13:32:16 +02:00
Frits van Bommel
f7e54dce10
Don't forget to update the control flow when deleting an invoke.
...
Fixes #284 .
2009-05-04 12:08:30 +02:00
Frits van Bommel
fa79329102
Stack promotion for _d_newarrayvT. Array literals, concatenations (a ~ b) and
...
such are eligible for stack-allocation now.
2009-05-03 18:01:45 +02:00
Frits van Bommel
a2eee70761
Add -verify-each option to ease debugging
2009-05-03 21:58:28 +02:00
Frits van Bommel
67fc0aca20
Remove some overly verbose debug output
2009-05-03 20:19:49 +02:00
Frits van Bommel
865ae79e27
Strip metadata even when addPassesForOptLevel() isn't called, for instance when
...
only inlining or when manually specifying passes.
2009-05-03 20:16:15 +02:00
Frits van Bommel
3572944b90
Remove bogus noalias attribute from _d_arraysetlength[i]T.
2009-05-03 15:24:05 +02:00
Christian Kamm
77100f890c
Make static int[] a = [1, 2]; a[0] = 4; not segfault
...
by making the array data ptr a non-const global variable.
2009-05-03 11:16:54 +02:00
Frits van Bommel
c831367b24
Factor out some constants into the header so producers and consumers of
...
metadata stay in sync (and are more readable).
2009-05-02 20:42:58 +02:00
Benjamin Kramer
2b18460169
Force SVN to C locale
2009-05-02 14:00:57 +02:00