Tomas Lindquist Olsen
fa6f277bdd
merge
2008-08-21 15:35:39 +02:00
Tomas Lindquist Olsen
b5a54a5a1c
Updated the tango patch, removed some now unnecessarily complex inline asm.
2008-08-21 15:35:24 +02:00
Tomas Lindquist Olsen
6c78396d11
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
2008-08-20 19:03:28 +02:00
Tomas Lindquist Olsen
2e1a2bfe4a
Fixed problem with parameterized intrinsics taking bools.
2008-08-20 19:01:56 +02:00
Tomas Lindquist Olsen
5bf3e8911a
Added support for overloaded intrinsics.
...
Added atomic intrinsics in the intrinsics.di header.
2008-08-20 01:02:22 +02:00
Tomas Lindquist Olsen
3346a78e71
First step towards D abi compliance.
...
Framepointer elimination is now disabled for functions using inline asm (with a hack from aKor).
2008-08-19 20:18:01 +02:00
Tomas Lindquist Olsen
2b2291952c
Fixed problem when instantiating a template with private global variables.
2008-08-15 05:08:33 +02:00
Tomas Lindquist Olsen
5aae7a6bee
Merged DMD 1.034, array operations are not yet implemented ;)
2008-08-14 06:55:41 +02:00
Tomas Lindquist Olsen
c092165b3a
Fixed mini/missingti.d
2008-08-14 03:09:26 +02:00
Tomas Lindquist Olsen
7ffb43fdc6
Fixed uncaught, invalid use of nesting introduced in rev [498]
2008-08-13 17:11:03 +02:00
Tomas Lindquist Olsen
aae027961c
merge
2008-08-13 15:43:34 +02:00
Tomas Lindquist Olsen
0eeedba887
Fixed problems constant multidimensional static array initializers.
2008-08-13 15:43:13 +02:00
Tomas Lindquist Olsen
85a122a53f
missed one phobos test
2008-08-12 00:56:09 +02:00
Tomas Lindquist Olsen
bec4e850e4
fixed some failing minitests (badly classified / phobos)
2008-08-12 00:54:32 +02:00
Tomas Lindquist Olsen
148534637e
Removed debug info per default from the runtime makefiles, since llvm 2.4svn is currently buggy.
2008-08-12 00:20:04 +02:00
Tomas Lindquist Olsen
983a1b18a1
Fixed EH fatalerror printf'ing.
2008-08-10 22:05:30 +02:00
Tomas Lindquist Olsen
43567aca3b
Fixed a critical bug in the runtime, where _d_allocmemoryT would mark
...
the memory block as having pointers (for scanning) opposite of what it
should. So pointers would not be seen and freed. Should fix a bunch of
regressions with AAs.
2008-08-10 17:28:01 +02:00
Tomas Lindquist Olsen
9d7f16b967
Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in.
...
Reimplemented support for nested functions/class using a new approach.
Added error on taking address of intrinsic.
Fixed problems with the ->syntaxCopy of TypeFunction delegate exp.
Removed DtoDType and replaced all uses with ->toBasetype() instead.
Removed unused inplace stuff.
Fixed a bunch of issues in the runtime unittests, not complete yet.
Added mini tests.
2008-08-10 08:37:38 +02:00
Tomas Lindquist Olsen
323c45e768
Added missing llvmdc-build script in lphobos, added llvmdc.conf to lphobos.
2008-08-04 20:05:42 +02:00
Tomas Lindquist Olsen
641523be79
Added bash style rebuild to the lphobos dir
2008-08-04 20:01:36 +02:00
Tomas Lindquist Olsen
6fc52fd86b
Removed old moduleinit_backend from lphobos it's useless now.
2008-08-04 19:38:59 +02:00
Tomas Lindquist Olsen
3f1767fd49
Applied downs' lphobos update
2008-08-04 19:28:49 +02:00
Tomas Lindquist Olsen
9500e89eeb
Added 'Unix' predefined version identifier.
2008-08-04 19:08:39 +02:00
Tomas Lindquist Olsen
691a922850
Changed DMD to make a copy of the TypeFunction in DelegateExp.
2008-08-04 17:32:13 +02:00
Tomas Lindquist Olsen
7988ecb8be
added testcase for taking address of function as constant expr.
2008-08-04 03:40:08 +02:00
Tomas Lindquist Olsen
800497f2be
Fixed constant expression taking address of function.
2008-08-04 03:38:23 +02:00
Tomas Lindquist Olsen
daad516579
Removed the 'needsstorage' thing from Dsymbol. Arguments are not always given storage when applicable. This is not longer treat specially
...
in this regard. Code for accessing nested variables and contexts rewritten. Probably more. Fairly well tested.
2008-08-04 02:59:34 +02:00
Tomas Lindquist Olsen
b0a5f554d6
Fixed problem in AssignExp where the result value might be uninitialized. see mini/assign1.d
2008-08-03 16:59:28 +02:00
Tomas Lindquist Olsen
996c197aa8
stupid merges
2008-08-03 16:16:16 +02:00
Tomas Lindquist Olsen
0640b52d3e
Added a mini test case for nested stuff
2008-08-03 16:11:38 +02:00
Tomas Lindquist Olsen
dedc0f4829
Fixed problem with using the variable names _arguments and _argptr in non D-style vararg functions.
...
Fixed problem with compiling with LLVM 2.3
2008-08-03 16:10:00 +02:00
Tomas Lindquist Olsen
1ee9104354
Fixed AA Rvalue-only access (like indexing an AA return value immediately).
2008-08-02 22:35:24 +02:00
Tomas Lindquist Olsen
00072e5fd0
Fixed debug info and lazy arguments.
2008-08-02 21:51:49 +02:00
Tomas Lindquist Olsen
55639e01ea
Fixed inserting an AA entry with 'this' as key.
...
Fixed debug info for aggregate parameters. Only seems to work on byval arguments.
2008-08-02 17:24:10 +02:00
Tomas Lindquist Olsen
18b376ba66
Added generation of the llvm 'sret' parameter attribute where applicable.
...
Fixed some wrong argument handling code when setting parameter attributes.
Updated the tango unittest script in the tango patch, does not work yet, all modules don't compile...
2008-08-02 02:54:57 +02:00
Tomas Lindquist Olsen
0251a1e720
Fixed regressions
2008-08-02 01:23:53 +02:00
Tomas Lindquist Olsen
e31070a437
Fixed problems with nested 'this'. Fixes #39 .
...
Fixed problem with debug info order of intrinsic calls (func.start after declare).
2008-08-02 00:50:39 +02:00
Tomas Lindquist Olsen
3c5e28d6c7
merge ...
2008-08-01 21:56:13 +02:00
Tomas Lindquist Olsen
24386e4d3b
Trying to get the old QD demo to work.
2008-08-01 21:55:57 +02:00
Tomas Lindquist Olsen
885a805d26
Fixed problem where global variables did not resolve type before using it.
2008-08-01 21:54:40 +02:00
Tomas Lindquist Olsen
65406bba25
Fixed problem with invoking intrinsics, which llvm doesn't allow.
2008-08-01 19:54:31 +02:00
Tomas Lindquist Olsen
fd2fac6aa7
Fixed param attrs for return values (not really broken, but would be if more return attrs were added)
2008-08-01 18:07:33 +02:00
Tomas Lindquist Olsen
9b45fc5533
Changed the handling of variadic intrinsics a bit.
...
Removed the -fp80 option and made real be 80bit floats on X86, this is what the D spec really says it should be and fixes a bunch of issues.
Changed the handling of parameter attributes to a bit more generalized approach.
Added sext/zext attributes for byte/short/ubyte/ushort parameters, fixes #60 .
Parameter attribs now properly set for intrinsic calls if necessary.
Made the tango.math.Math patch less intrusive.
Fixed/added some mini tests.
2008-08-01 17:59:58 +02:00
Tomas Lindquist Olsen
858dd3e4fa
Updated tango patch. tango.math.Math was incorrect.
2008-08-01 01:12:33 +02:00
Tomas Lindquist Olsen
07cfb67178
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
...
Reworked the LLVMDC specific pragmas.
2008-08-01 00:32:06 +02:00
Tomas Lindquist Olsen
a8bf4e9579
Reverted bad cfg merge stuff
2008-07-30 10:45:20 +02:00
Tomas Lindquist Olsen
660290f640
stupid merge ... :/
2008-07-30 10:41:31 +02:00
Tomas Lindquist Olsen
905ca019dd
Added type param to DVarValue as DMD sometimes overrides the type of the VarDeclaration.
...
Added support for align(1)/packed structs, other alignments are still ignored.
Fixed some problems with accessing lazy arguments.
2008-07-30 10:12:55 +02:00
Tomas Lindquist Olsen
20d429e085
Fixed delegate casts.
2008-07-28 08:05:21 +02:00
Tomas Lindquist Olsen
713dfe71b5
clean out obj dir before running mini test.
2008-07-28 07:25:13 +02:00
Tomas Lindquist Olsen
dbebf04b85
removed the old tester.d test driver.
2008-07-28 03:18:15 +02:00
Tomas Lindquist Olsen
675e9b3cf0
testing the new mini test runner features.
2008-07-28 03:04:28 +02:00
Tomas Lindquist Olsen
57fd67aa35
Updated the mini test runner to allow classified tests as
...
compile,nocompile,run,norun.
2008-07-28 03:03:44 +02:00
Tomas Lindquist Olsen
8c98499193
Fixed issue with internal real representation, incorrect for non x86-32 architectures.
...
Cleaned up CallExp::toElem, moved implementation to tocall.cpp providing a single procedure to call arbitrary D functions fairly easily.
2008-07-28 02:11:34 +02:00
Tomas Lindquist Olsen
7a5dc3e05f
Fixed (I hope) problem with monitor/synchronized stuff not being properly initialized on Windows.
2008-07-27 15:03:04 +02:00
Tomas Lindquist Olsen
1f00395f0b
Fixed path seperator issue on windows in linker.
2008-07-27 14:15:22 +02:00
Tomas Lindquist Olsen
b2e13e1b36
Attempt to fix win32/mingw linking related to unresolved data segment start/end symbols.
2008-07-27 14:11:31 +02:00
Tomas Lindquist Olsen
5589f6b2b7
merge
2008-07-27 13:47:11 +02:00
Tomas Lindquist Olsen
fde6cc98a8
Removed unneeded references to _minit on Windows which breaks linking. _minit is an artifact of DMD on Win32.
2008-07-27 13:46:28 +02:00
Tomas Lindquist Olsen
1e87165fe7
Committed merge
2008-07-26 15:09:33 +02:00
Tomas Lindquist Olsen
70f16e36fb
Added bitcode filename to very verbose logging.
...
Fixed -O<n> switches from llvm 2.4.
Removed md5 from the kdevelop project filelist.
2008-07-26 15:02:57 +02:00
Tomas Lindquist Olsen
5ddcdea5f2
Added empty file to lib dir so it get's created by hg
2008-07-24 00:35:46 +02:00
Tomas Lindquist Olsen
100c42bca3
Fixed segfault when using va_arg.
...
Fixed segfault when accessing function symbols from inline asm.
2008-07-23 20:21:18 +02:00
Tomas Lindquist Olsen
d583262c98
[svn r394] Fixed the new DtoNullValue function
2008-07-15 15:16:56 +02:00
Tomas Lindquist Olsen
efd3f0dddf
[svn r387] Removed unused MD5 stuff.
...
Fixed incorrect __VENDOR__ variable and printed DMD frontend version.
2008-07-15 02:01:53 +02:00
Tomas Lindquist Olsen
86a3f53cfe
[svn r386] Fixed broken DtoBoolean.
...
Some code cleanup.
2008-07-15 00:17:03 +02:00
Tomas Lindquist Olsen
27674069e7
[svn r384] Some minor code cleanups.
2008-07-14 21:49:54 +02:00
Tomas Lindquist Olsen
45e8999c88
[svn r372] Fixed extern(C++) handling now same as DMD, which is to treat it like extern(C).
...
Fixed a problem in resolving struct types where the size of elements might not yet be known. Switched to using DMD size() instead
of LLVM ABI size (TargetData).
2008-07-14 03:23:43 +02:00
Tomas Lindquist Olsen
ee5d84a1fa
[svn r371] Fixed array init was still broken for immediate slices and complex values.
2008-07-14 01:03:53 +02:00
Tomas Lindquist Olsen
f03d8f37c1
[svn r370] Fixed landing pads on 64bit was broken (hardcoded 32bit type, should be size_t)
2008-07-13 21:41:45 +02:00
Tomas Lindquist Olsen
dbd640a3dc
[svn r368] Fixed custom class allocators with arbitrary user arguments. Closes #25
...
Removed some dead code.
Started on a more generalised approach to call misc. D functions.
2008-07-13 20:49:10 +02:00
Tomas Lindquist Olsen
c4982165ba
[svn r366] Fixed identity exprs for structs was comparing addresses, not content!
2008-07-13 04:27:02 +02:00
Tomas Lindquist Olsen
a4e4f34a34
[svn r365] Implemented raw struct equality comparison, uses C memcmp.
...
Renamed DtoDelegateCompare to DtoDelegateEquals, for consistency with the other equality helpers.
2008-07-13 04:11:08 +02:00
Tomas Lindquist Olsen
4b8d048d59
[svn r364] fixed mini/sync2.d test case.
2008-07-13 03:02:15 +02:00
Tomas Lindquist Olsen
5457969aab
[svn r363] Fixed a problem with the mini-test-driver.
2008-07-13 02:55:41 +02:00
Tomas Lindquist Olsen
cecb64b2e4
[svn r362] Started merging the old 'test' dir as well as the newer 'tangotests' dir into 'tests/mini' and 'tests/minicomplex'.
2008-07-13 02:51:19 +02:00
Tomas Lindquist Olsen
d1e41f611e
[svn r361] Removed some dead code.
2008-07-13 02:04:25 +02:00
Tomas Lindquist Olsen
85c1b42b1b
[svn r360] Another mostly rewrite of DtoArrayInit. Should be much more robust now, and probably faster code generated for the most common cases too!
...
Fixed issues with slice initialization (!!!) of multidimensional static arrays.
Attempt to fix issue with referencing nested 'this' pointers introduced in DMD 1.033 merge.
2008-07-13 01:29:49 +02:00
Tomas Lindquist Olsen
b8bde8c0b8
[svn r358] Forgot to add new files from DMD 1.033
2008-07-12 19:40:14 +02:00
Tomas Lindquist Olsen
832504e5d7
[svn r357] Merged DMD 1.033
2008-07-12 19:38:31 +02:00
Tomas Lindquist Olsen
fc6e0cfc65
[svn r356] Fixed problem with array length assignment introduced in [355]
2008-07-12 17:04:36 +02:00
Tomas Lindquist Olsen
8c48f86f0a
[svn r350] Fixed incorrect function types for lazy arguments. looks like lazy arguments have never even worked :o well.. now they should.
2008-07-11 01:34:04 +02:00
Tomas Lindquist Olsen
521de1a47e
[svn r349] Fixed problems with static arrays of void as well as a static arrays with zero length.
...
Fixed issues with DMD generated assert statements when using class invariants, generally due to incomplete ASTs.
Removed some dead code.
Added a few comments.
2008-07-11 00:17:00 +02:00
Tomas Lindquist Olsen
9c28c0263a
[svn r345] Fixed the new moduleinfo stuff to have consistent symbol names with the D style.
2008-07-10 00:13:09 +02:00
Tomas Lindquist Olsen
2dfb2fcf19
[svn r344] Fixed some very minor issues with the usage listing when calling llvmdc with no arguments.
...
Changed the way moduleinfo is registered to use the same approach as DMD, this eliminates the need for correct linking order and should make the way for using a natively compiled runtime library. This should speed up linking tremendously and should now be possible.
Fixed the llvm.used array to only be emitted if really necessary.
2008-07-09 23:43:51 +02:00
Tomas Lindquist Olsen
ad65788592
[svn r331] Fixed, forgot to default initialize the SynchronizedStatement enclosinghandler.
2008-06-28 11:50:28 +02:00
Tomas Lindquist Olsen
0d160ffc76
[svn r330] Implemented synchronized statements.
...
Changed the tryfinally handlers to a more generalized EnclosingHandler.
Changed ClassInfoS to be mutable so they can be used as locks.
Added new BB after throw ala return/break etc.
2008-06-28 11:37:53 +02:00
Tomas Lindquist Olsen
ac3744a59d
[svn r329] Cleaned up a bunch of array code for handling special slice cases no
...
longer relevant.
2008-06-28 05:57:16 +02:00
Tomas Lindquist Olsen
86d299a641
[svn r328] Fixed an issue with interfaces where the vtable type of a interface implemented could be invalid. Fixes several tango modules like, FileStream, ServerSocket
...
and most tina cluster modules :)
2008-06-28 03:45:18 +02:00
Tomas Lindquist Olsen
a3c7b8b369
[svn r327] Fixed some more MinGW32 issues. It's now very close to working.
...
Fixed problems with inline asm like: mov EAX, FS:4 , which incidentally is used in the runtime to get the stack bottom, on Windows.
2008-06-27 23:58:22 +02:00
Tomas Lindquist Olsen
03d26e1178
[svn r326] Fixed a bunch of issues with printf's that MinGW32 did not support.
...
Fixed problems with label collisions when using labels inside inline asm. LabelStatement is now easily reached given its
Identifier, which should be useful elsewhere too.
Enabled inline asm for building the lib/compiler/llvmdc runtime code, fixing branches out of asm makes this possible.
2008-06-27 22:04:35 +02:00
Tomas Lindquist Olsen
599f879149
[svn r316] Fixed array slice assignments like: int[] arr = ...; arr[] = 42;
...
There was problems with most non basic types...
Added an option to premake so we can do: premake --target gnu --no-boehm
to disable the Boehm GC.
2008-06-23 14:48:42 +02:00
Tomas Lindquist Olsen
33b9d4348c
[svn r312] Changed assert codegen to insert an unreachable terminator after the call to the assert function, which currently calls abort().
...
Changed array comparison runtime support to pass the array typeinfo instead of the element typeinfo. This allows a cleaner and faster implementation.
2008-06-21 21:16:26 +02:00
Tomas Lindquist Olsen
f3ea671ed6
[svn r311] Fixed: structs no longer output two static typeinfos.
...
Updated the DtoTypeInfoOf helper a bit after figuring out how it worked.
2008-06-21 17:57:36 +02:00
Tomas Lindquist Olsen
5f247bb394
[svn r310] Fixed a problem with incomplete types and templates in typeinfo code.
2008-06-21 16:22:29 +02:00
Tomas Lindquist Olsen
ffd38d355d
[svn r308] Really fixed multidimensional new expressions. the first length was bad in the resulting slice.
2008-06-21 05:03:42 +02:00
Tomas Lindquist Olsen
67dd564222
[svn r307] Fixed: multidimensional new expressions now work. Eg.:
...
auto ma = new int[][] (3,9);
2008-06-21 04:47:14 +02:00
Tomas Lindquist Olsen
5647598da9
[svn r306] Fixed: it's now possible to compile and link llvmdc with MinGW32 and msys on Win32 :D I tried it myself ;) Building the runtime still needs some work, but it's a step in the right direction.
2008-06-21 03:14:49 +02:00
Tomas Lindquist Olsen
f8b421d4ac
[svn r305] Started support for custom class allocators/deallocators. Allocators with more than one argument still need to be fixed.
...
Removed the LLVM stacktrace code from mars.c.
Moved the LLVM based default target detection code from mars.c to llvmhelpers.cpp.
2008-06-21 02:48:53 +02:00
Tomas Lindquist Olsen
baf0bdeac6
[svn r300] Removed some win32 stuff that was causing problems on mingw32.
2008-06-20 22:25:07 +02:00