Commit Graph

327 Commits

Author SHA1 Message Date
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
Christian Kamm
37a74d1975 [svn r322] More asm-to-outside jumping work. Unfinished. 2008-06-24 22:48:33 +02:00
Christian Kamm
57977cd420 [svn r321] Fix bug in argument remapping functions. 2008-06-24 22:27:55 +02:00
Christian Kamm
84dd282b8c [svn r320] Begun work on branches out of asm blocks. Unfinished. 2008-06-24 21:38:23 +02:00
Christian Kamm
f621a5a77b [svn r319] Call substatement->toIR in LabelStatement::toIR even when the label is inside an asm block. 2008-06-24 17:24:55 +02:00
Christian Kamm
35263a7847 [svn r318] Moved the call to DtoBoolean before the not instruction.
Fixes array_initialization_17_A.
2008-06-23 19:19:37 +02:00
Christian Kamm
956f3b7c2a [svn r317] Convert result of _adEq runtime function to bool to make sure EqualExp returns i1 bool. 2008-06-23 19:08:32 +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
Christian Kamm
0bddb2568f [svn r315] Build full const initializer for static arrays in DtoConstInitializer if necessary. 2008-06-22 21:36:07 +02:00
Christian Kamm
c53562ee10 [svn r314] Get correct value type for newing of multidimensional dynamic arrays.
Fixes array_initialization_26_E.
2008-06-22 15:21:34 +02:00
Christian Kamm
870aae3454 [svn r313] Fix class initializer size regression introduced in [305].
Fixes memory_management_05 and odd_bug_15_A.
2008-06-22 13:23:28 +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
Christian Kamm
87feaef81b [svn r309] Remove the large dstress test result files from svn repository. 2008-06-21 14:06:00 +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
Christian Kamm
ddfa41938f [svn r304] Fix associative array literals by always reserving a zero inited temporary for them. 2008-06-21 00:54:55 +02:00
Christian Kamm
02caaff23e [svn r303] Start a new basicblock behind a HaltExp to prevent compiler errors. 2008-06-21 00:00:56 +02:00
Christian Kamm
a99d70f7bc [svn r302] Make HaltExps and assert(0) generate an assert message again instead of using llvm's trap intrinsic. 2008-06-20 23:38:51 +02:00
Christian Kamm
87f6a4fa41 [svn r301] Fixed incorrect codegen with array slice assigns. 2008-06-20 23:27:59 +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
Tomas Lindquist Olsen
fe09b045f3 [svn r299] forgot to return status in runExecutable 2008-06-20 22:12:15 +02:00
Tomas Lindquist Olsen
41a104c0f4 [svn r298] Eliminated the dmd/link.c source file entirely in favor of a llvm::sys based approach to the same functionality. 2008-06-20 22:09:04 +02:00