Commit Graph
100 Commits
Author SHA1 Message Date
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