Commit Graph

  • 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. Tomas Lindquist Olsen 2008-07-11 00:17:00 +02:00
  • bace4dd0e7 [svn r348] Switch on class invariants (except in release mode). Generate correct member for classInvariant in classinfo struct. Christian Kamm 2008-07-10 22:00:27 +02:00
  • fdca461a61 [svn r347] Foundation for adding tangobos to test environment is in place. Christian Kamm 2008-07-10 21:29:15 +02:00
  • 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. Christian Kamm 2008-07-10 19:38:34 +02:00
  • 9c28c0263a [svn r345] Fixed the new moduleinfo stuff to have consistent symbol names with the D style. Tomas Lindquist Olsen 2008-07-10 00:13:09 +02:00
  • 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. Tomas Lindquist Olsen 2008-07-09 23:43:51 +02:00
  • 64ab226a4b [svn r343] Move object.di used for running dstress into separate directory. Christian Kamm 2008-07-09 17:02:55 +02:00
  • d16ddb524f [svn r342] Fix DMD bug 2206. Implement mixin declarations in LLVMDC. Christian Kamm 2008-07-09 17:01:08 +02:00
  • 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. Christian Kamm 2008-07-05 13:05:29 +02:00
  • ce79feeb9b [svn r340] Rework exception handling to work with nested tryfinally and trycatch. Christian Kamm 2008-07-05 10:22:56 +02:00
  • 4fc93770a9 [svn r339] Add cleanup handling when within an action chain and some more documentation to the eh personality function. Christian Kamm 2008-07-04 09:00:49 +02:00
  • 0e43caf1cc [svn r338] Intrinsic calls can never be invokes. Christian Kamm 2008-07-04 08:55:58 +02:00
  • 5f15274bc0 [svn r337] Reverted changes to toobj.cpp: Module constructor calls can never be invokes. Christian Kamm 2008-07-04 08:51:49 +02:00
  • 37305fb47e [svn r336] Made sure calls within a landing pad area are invokes. Nested trys still need some consideration. Christian Kamm 2008-07-03 22:05:45 +02:00
  • 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! Christian Kamm 2008-07-02 22:20:18 +02:00
  • 7d4ea30633 [svn r334] Produce an error for zero-size types instead of segfaulting. Christian Kamm 2008-06-29 22:22:37 +02:00
  • ff52c70e1d [svn r333] Fix inline asm bug with multiple branches to the same label. Christian Kamm 2008-06-29 22:07:15 +02:00
  • 7dd287be94 [svn r332] Fix codegen for continue within switch. Christian Kamm 2008-06-28 18:37:27 +02:00
  • ad65788592 [svn r331] Fixed, forgot to default initialize the SynchronizedStatement enclosinghandler. Tomas Lindquist Olsen 2008-06-28 11:50:28 +02:00
  • 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. Tomas Lindquist Olsen 2008-06-28 11:37:53 +02:00
  • ac3744a59d [svn r329] Cleaned up a bunch of array code for handling special slice cases no longer relevant. Tomas Lindquist Olsen 2008-06-28 05:57:16 +02:00
  • 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 :) Tomas Lindquist Olsen 2008-06-28 03:45:18 +02:00
  • 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. Tomas Lindquist Olsen 2008-06-27 23:58:22 +02:00
  • 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. Tomas Lindquist Olsen 2008-06-27 22:04:35 +02:00
  • 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. Christian Kamm 2008-06-25 23:42:38 +02:00
  • 7250b0630c [svn r324] Small indentation fixes. Added end of line to complex.cpp. Christian Kamm 2008-06-25 20:42:30 +02:00
  • 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. Christian Kamm 2008-06-25 20:39:09 +02:00
  • 37a74d1975 [svn r322] More asm-to-outside jumping work. Unfinished. Christian Kamm 2008-06-24 22:48:33 +02:00
  • 57977cd420 [svn r321] Fix bug in argument remapping functions. Christian Kamm 2008-06-24 22:27:55 +02:00
  • 84dd282b8c [svn r320] Begun work on branches out of asm blocks. Unfinished. Christian Kamm 2008-06-24 21:38:23 +02:00
  • f621a5a77b [svn r319] Call substatement->toIR in LabelStatement::toIR even when the label is inside an asm block. Christian Kamm 2008-06-24 17:24:55 +02:00
  • 35263a7847 [svn r318] Moved the call to DtoBoolean before the not instruction. Fixes array_initialization_17_A. Christian Kamm 2008-06-23 19:19:37 +02:00
  • 956f3b7c2a [svn r317] Convert result of _adEq runtime function to bool to make sure EqualExp returns i1 bool. Christian Kamm 2008-06-23 19:08:32 +02:00
  • 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. Tomas Lindquist Olsen 2008-06-23 14:48:42 +02:00
  • 0bddb2568f [svn r315] Build full const initializer for static arrays in DtoConstInitializer if necessary. Christian Kamm 2008-06-22 21:36:07 +02:00
  • c53562ee10 [svn r314] Get correct value type for newing of multidimensional dynamic arrays. Fixes array_initialization_26_E. Christian Kamm 2008-06-22 15:21:34 +02:00
  • 870aae3454 [svn r313] Fix class initializer size regression introduced in [305]. Fixes memory_management_05 and odd_bug_15_A. Christian Kamm 2008-06-22 13:23:28 +02:00
  • 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. Tomas Lindquist Olsen 2008-06-21 21:16:26 +02:00
  • f3ea671ed6 [svn r311] Fixed: structs no longer output two static typeinfos. Updated the DtoTypeInfoOf helper a bit after figuring out how it worked. Tomas Lindquist Olsen 2008-06-21 17:57:36 +02:00
  • 5f247bb394 [svn r310] Fixed a problem with incomplete types and templates in typeinfo code. Tomas Lindquist Olsen 2008-06-21 16:22:29 +02:00
  • 87feaef81b [svn r309] Remove the large dstress test result files from svn repository. Christian Kamm 2008-06-21 14:06:00 +02:00
  • ffd38d355d [svn r308] Really fixed multidimensional new expressions. the first length was bad in the resulting slice. Tomas Lindquist Olsen 2008-06-21 05:03:42 +02:00
  • 67dd564222 [svn r307] Fixed: multidimensional new expressions now work. Eg.: Tomas Lindquist Olsen 2008-06-21 04:47:14 +02:00
  • 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. Tomas Lindquist Olsen 2008-06-21 03:14:49 +02:00
  • 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. Tomas Lindquist Olsen 2008-06-21 02:48:53 +02:00
  • ddfa41938f [svn r304] Fix associative array literals by always reserving a zero inited temporary for them. Christian Kamm 2008-06-21 00:54:55 +02:00
  • 02caaff23e [svn r303] Start a new basicblock behind a HaltExp to prevent compiler errors. Christian Kamm 2008-06-21 00:00:56 +02:00
  • a99d70f7bc [svn r302] Make HaltExps and assert(0) generate an assert message again instead of using llvm's trap intrinsic. Christian Kamm 2008-06-20 23:38:51 +02:00
  • 87f6a4fa41 [svn r301] Fixed incorrect codegen with array slice assigns. Christian Kamm 2008-06-20 23:27:59 +02:00
  • baf0bdeac6 [svn r300] Removed some win32 stuff that was causing problems on mingw32. Tomas Lindquist Olsen 2008-06-20 22:25:07 +02:00
  • fe09b045f3 [svn r299] forgot to return status in runExecutable Tomas Lindquist Olsen 2008-06-20 22:12:15 +02:00
  • 41a104c0f4 [svn r298] Eliminated the dmd/link.c source file entirely in favor of a llvm::sys based approach to the same functionality. Tomas Lindquist Olsen 2008-06-20 22:09:04 +02:00
  • c743549032 [svn r297] Fixed: rewrote linker code to use LLVM's Program facilities instead of DMD's oldschool broken "native" approach. Tomas Lindquist Olsen 2008-06-20 17:45:13 +02:00
  • 928f7d4de5 [svn r296] Removed: the 'suite' dir, it never took off! Fixed: foreach statement, key-type checks were buggy. Fixed: setting LLVMDC versions on the command line is now an error. Fixed: array compare runtime had incorrect param attrs on call. Fixed: index expressions on dynamic array slices w/o storage was broken. Fixed: scope classes had incorrect finalization in some cases. Fixed: when outputting !ClassInfoS !OffsetTypeInfoS, static class members were trying to be included, crashing the compiler. Fixed: calling LLVMDC with -inline but not any -O option caused assertion failure. Changed: the runtime now uses a single interface to "get" to !TypeInfoS, part of eliminating duplicate !TypeInfo codegen. Tomas Lindquist Olsen 2008-06-19 17:30:32 +02:00
  • f235b71c7b [svn r295] Added phobos aliases to string, wstring, dstring and Error to the object.di used for testing. Test results for current revision added. Christian Kamm 2008-06-19 13:54:31 +02:00
  • af6ca8fe85 [svn r294] Fixed some more of the old tests. Tomas Lindquist Olsen 2008-06-18 23:29:14 +02:00
  • 122ac3f195 [svn r293] Fixed: object.TypeInfo_Struct implementation was incorrect. Tomas Lindquist Olsen 2008-06-18 22:27:02 +02:00
  • ab92e1230b [svn r292] Fixed: string switch was broken in several ways. Fixed: TypeInfo_Typedef.next was incorrect (return base of base instead of just base). Fixed: ClassInfo offset type info (offTi) had invalid offsets. Tomas Lindquist Olsen 2008-06-18 21:31:05 +02:00
  • 964f91b5a1 [svn r291] Fixed a bunch of the old Phobos tests to work with Tango. Branch statements now emit a new block after it. Fixed the _adSort runtime function had a bad signature. Added a missing dot prefix on compiler generated string tables for string switch. Fixed, PTRSIZE seems like it was wrong on 64bit, now it definitely gets set properly. Tomas Lindquist Olsen 2008-06-16 16:01:19 +02:00
  • ccecb39c46 [svn r290] Forgot to remove a #define in mem.c Tomas Lindquist Olsen 2008-06-15 18:57:11 +02:00
  • e1aa043a81 [svn r289] Fixed: right shift >> was broken for unsigned types. Fixed: debug info for classes now started. Tomas Lindquist Olsen 2008-06-15 18:52:27 +02:00
  • 03888f4b07 [svn r288] Let return statements start a new basic block after terminating the current one. Christian Kamm 2008-06-15 18:37:23 +02:00
  • 039664b249 [svn r287] update to test statistics generation Christian Kamm 2008-06-15 12:58:48 +02:00
  • 365687ec7c [svn r286] removing test statistics from repository; they are too big and change too often Christian Kamm 2008-06-15 11:40:47 +02:00
  • c2430c713b [svn r285] Fixed D -> bool LLVM helper for floating point values. Changed the way D-style varargs are passed, now each param should be aligned to size_t.sizeof. Tomas Lindquist Olsen 2008-06-14 17:28:13 +02:00
  • d85267ef5a [svn r284] Fixed some problems with cases, code is not as pretty, but it doesn't crash llvm! Tomas Lindquist Olsen 2008-06-14 06:13:35 +02:00
  • de89b4bc6f [svn r280] Fixed a bunch of issues with switch statements. Ended up a bit far reaching... Tomas Lindquist Olsen 2008-06-14 05:13:49 +02:00
  • 1ae510ae6c [svn r279] fixed bug in makewebstatistics, regenerated output Christian Kamm 2008-06-13 08:21:11 +02:00
  • 27449a2aea [svn r278] Added test results for [277] Tomas Lindquist Olsen 2008-06-13 07:50:55 +02:00
  • b13a5646ca [svn r277] Fixed a nasty bug in delegate expressions. Context pointers to nested functions of the parent, from inside a nested function were invalid. Tomas Lindquist Olsen 2008-06-13 05:47:28 +02:00
  • 9a28d083f8 [svn r276] Fixed debug info for 'this' arg seemed to be broken. Tomas Lindquist Olsen 2008-06-12 19:59:19 +02:00
  • b1e2b66695 [svn r275] improved makewebstatistics Christian Kamm 2008-06-12 18:40:47 +02:00
  • 5ab116dab4 [svn r273] added html header to web statistics Christian Kamm 2008-06-12 18:22:33 +02:00
  • 8ddd281bb1 [svn r272] some rough html statistics for the tests Christian Kamm 2008-06-12 18:19:54 +02:00
  • 53dedd765b [svn r271] Fixed debug info for implicit 'this' param. Fixed debug info for arguments passed byval (ref and out params still missing). Tomas Lindquist Olsen 2008-06-12 18:04:28 +02:00
  • 6565e9e09f [svn r270] Forgot the test for struct debug info. Tomas Lindquist Olsen 2008-06-12 17:01:31 +02:00
  • e0f2825fd0 [svn r269] Fixed dwarf debug info for structs. Tomas Lindquist Olsen 2008-06-12 16:58:26 +02:00
  • c1ae095f4c [svn r268] Fixed: global debug info was still brokem ... should be done now!!! Tomas Lindquist Olsen 2008-06-11 21:03:55 +02:00
  • 4d2797526d [svn r267] Fixed debug info for global variables. Cleaned up the debug info code in general. Tomas Lindquist Olsen 2008-06-11 20:53:26 +02:00
  • 9dc26ff388 [svn r266] dstress results for [265] and small fix for cleanup in runtests script Christian Kamm 2008-06-10 21:44:04 +02:00
  • 4a481678b8 [svn r265] generate debug info for global variables only if they don't have external linkage Christian Kamm 2008-06-10 20:01:04 +02:00
  • cfc8befb5b [svn r264] Fixed debug info for global variables. Tomas Lindquist Olsen 2008-06-09 17:49:30 +02:00
  • 37b6748897 [svn r263] Changed *** ATTENTION *** to warnings. Implemented debug info for dynamic arrays, start of general composite support. Tomas Lindquist Olsen 2008-06-09 15:52:22 +02:00
  • 1e87ae15ef [svn r262] Fixed debug info for normal function parameters. Fixed debug info for pointers to basic types. Tomas Lindquist Olsen 2008-06-09 12:43:16 +02:00
  • 8b83eda2a2 [svn r261] Fixed debug info for integer and floating local variables, can now be inspected in GDB. Did a lot of smaller cleans up here and there. Replaced more llvm::Foo with LLFoo for common stuff. Split up tollvm.cpp. Tomas Lindquist Olsen 2008-06-09 09:37:08 +02:00
  • e23169d5d8 [svn r260] Changed some of the LLVMDC specific code in the Tango core and did some minor cleanups. Tomas Lindquist Olsen 2008-06-09 03:02:14 +02:00
  • 951657ccdc [svn r259] Enabled ASM for the GC, this closes #45 by saving the registers on the stack. Tomas Lindquist Olsen 2008-06-09 02:05:02 +02:00
  • d939ce7ef6 [svn r258] Fixed: we were passing static arrays by value. Tomas Lindquist Olsen 2008-06-09 00:28:02 +02:00
  • 4a2d8494a6 [svn r257] Fixed: array .sort and .reverse runtime code was incorrect. Fixed: most runtime calls did not get correct param attrs. Tomas Lindquist Olsen 2008-06-09 00:01:10 +02:00
  • 306ebfca83 [svn r256] AsmBlockStatement was still being flattened in some cases. Function parameters passed as arguments to inline asm was not given storage. Tomas Lindquist Olsen 2008-06-08 22:07:10 +02:00
  • 1da2bbda9d [svn r255] added dstress results for [254] Christian Kamm 2008-06-08 21:23:09 +02:00
  • 6ededdd9e3 [svn r253] Removed -inlineasm option. inline asm is now enabled by default unless the new -noasm option is passed. Tried adding a stack trace print when compiler crashes, not sure it's working though. Changed data layouts to match that of llvm-gcc. Fixed casting function pointers. Added support checks in AsmStatement. Tomas Lindquist Olsen 2008-06-08 19:09:24 +02:00
  • c1d240582d [svn r252] added warnings about using an up to date runtime Christian Kamm 2008-06-08 18:20:48 +02:00
  • 2f590b41e3 [svn r251] fixed arguments checking in runtest script Christian Kamm 2008-06-08 12:06:22 +02:00
  • 28382e3567 [svn r250] Fixed the warning about dropping arguments to _Dmain when optimizing. Did a few cleanups in inline asm code. Tomas Lindquist Olsen 2008-06-08 08:03:19 +02:00
  • 68d7827d35 [svn r249] Changed inline asm clobbers to a set instead of a list so we don't get duplicate clobbers. Tomas Lindquist Olsen 2008-06-08 06:45:54 +02:00
  • fd8cec14e1 [svn r248] Fixed: labels in inline asm block now work for the normal case. Fixed: inline asm blocks are now emitted as a single asm entity. Tomas Lindquist Olsen 2008-06-08 06:15:51 +02:00
  • 3e62d80b4f [svn r247] fixed accessing global symbols from inline asm. Tomas Lindquist Olsen 2008-06-08 01:07:58 +02:00
  • 61fdcc7040 [svn r246] fixed asm4 test Tomas Lindquist Olsen 2008-06-07 21:38:14 +02:00
  • 187d6523e3 [svn r245] initial support for labels in inline asm, broken :/ Tomas Lindquist Olsen 2008-06-07 21:31:38 +02:00