Commit Graph
352 Commits
Author SHA1 Message Date
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
Christian Kamm c2697dbce0 [svn r369] Fix nested classes when nestedVar is not generated. 2008-07-13 21:16:40 +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
Christian Kamm 3f37dbe005 [svn r367] In web dstress statistics, write change lists sorted by filename. 2008-07-13 09:14:01 +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
Christian Kamm c67753508b [svn r359] Try to fix DtoArrayInit. Unfinished, breaks for arrays of primitive types. 2008-07-12 23:56:56 +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
Christian Kamm 717d52d4f0 [svn r355] Get rid of IRState::exps and topexp. 2008-07-12 15:43:13 +02:00
Christian Kamm f0d8b9e153 [svn r354] Fix the regressions between [346] and [353] by making constructors and destructors outside classes fatal errors.
Fix tests makefile and add minimize to gc.d.
2008-07-12 09:23:14 +02:00
Christian Kamm f5dbc0e0d2 [svn r353] Fix typo. (fixes empty catch handlers, like catch_02.d) 2008-07-11 22:33:21 +02:00
Christian Kamm 485b638272 [svn r352] Implement SwitchErrorStatement. Fixes #52. 2008-07-11 21:06:39 +02:00
Christian Kamm 1d92d5a86b [svn r351] Remove unused runtime file for DMD-style exception handling.
Improved comments on exception handling runtime.
2008-07-11 20:23:42 +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
Christian Kamm bace4dd0e7 [svn r348] Switch on class invariants (except in release mode).
Generate correct member for classInvariant in classinfo struct.
2008-07-10 22:00:27 +02:00
Christian Kamm fdca461a61 [svn r347] Foundation for adding tangobos to test environment is in place. 2008-07-10 21:29:15 +02:00
Christian Kamm 6a45ce2474 [svn r346] Fixed #55 - llvmdc can link as fast as dmd now!
Made runtime to compile to native by default. Changed linker.cpp to link in native runtime library.
This change requires a runtime rebuild as well as a new symbolic link in lib/ to tango/lib/libtango-base-llvmdc-native.a.
2008-07-10 19:38:34 +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
Christian Kamm 64ab226a4b [svn r343] Move object.di used for running dstress into separate directory. 2008-07-09 17:02:55 +02:00
Christian Kamm d16ddb524f [svn r342] Fix DMD bug 2206.
Implement mixin declarations in LLVMDC.
2008-07-09 17:01:08 +02:00
Christian Kamm 8b1bcd5724 [svn r341] Fix all regressions between [332] and [340]:
- fixed assert on empty catch body
- fixed(?) typedefed classes in catch specification
- fixed assert with catchall
Added some documentation.
2008-07-05 13:05:29 +02:00
Christian Kamm ce79feeb9b [svn r340] Rework exception handling to work with nested tryfinally and trycatch. 2008-07-05 10:22:56 +02:00
Christian Kamm 4fc93770a9 [svn r339] Add cleanup handling when within an action chain and some more documentation to the eh personality function. 2008-07-04 09:00:49 +02:00
Christian Kamm 0e43caf1cc [svn r338] Intrinsic calls can never be invokes. 2008-07-04 08:55:58 +02:00
Christian Kamm 5f15274bc0 [svn r337] Reverted changes to toobj.cpp: Module constructor calls can never be invokes. 2008-07-04 08:51:49 +02:00
Christian Kamm 37305fb47e [svn r336] Made sure calls within a landing pad area are invokes.
Nested trys still need some consideration.
2008-07-03 22:05:45 +02:00
Christian Kamm 9f0b3fb062 [svn r335] The basics of exception handling are in place.
Still need to make sure calls are turned into invokes everywhere. (NewExpression for instance)
Still some rough edges and corner cases to figure out.
Needs testing!
2008-07-02 22:20:18 +02:00
Christian Kamm 7d4ea30633 [svn r334] Produce an error for zero-size types instead of segfaulting. 2008-06-29 22:22:37 +02:00
Christian Kamm ff52c70e1d [svn r333] Fix inline asm bug with multiple branches to the same label. 2008-06-29 22:07:15 +02:00
Christian Kamm 7dd287be94 [svn r332] Fix codegen for continue within switch. 2008-06-28 18:37:27 +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
Christian Kamm b064c794de [svn r325] Removed dead code.
Added license info to code from GDC (David Friedman permitted us to use the files under the Artistic License).
Added asmLabel check to DtoGoto to avoid jumping into inline asm. Doesn't work currently as LabelDsymbol::asmLabel is never set to true.
2008-06-25 23:42:38 +02:00
Christian Kamm 7250b0630c [svn r324] Small indentation fixes.
Added end of line to complex.cpp.
2008-06-25 20:42:30 +02:00
Christian Kamm 7b37093cff [svn r323] Branching out of inline asm works.
Renamed emit_finallyblocks to DtoFinallyBlocks and moved to llvmhelpers.
Added enclosingtryfinally to AsmBlockStatement, so branches out of asm blocks respect finallys.
Refactored some GotoStatement code into DtoGoto.
2008-06-25 20:39:09 +02:00