Commit Graph
57 Commits
Author SHA1 Message Date
Christian Kamm 717d52d4f0 [svn r355] Get rid of IRState::exps and topexp. 2008-07-12 15:43:13 +02:00
Christian Kamm 485b638272 [svn r352] Implement SwitchErrorStatement. Fixes #52. 2008-07-11 21:06:39 +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 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 7dd287be94 [svn r332] Fix codegen for continue within switch. 2008-06-28 18:37:27 +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 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 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 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
Tomas Lindquist Olsen 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.
2008-06-18 21:31:05 +02:00
Tomas Lindquist Olsen 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.
2008-06-16 16:01:19 +02:00
Tomas Lindquist Olsen e1aa043a81 [svn r289] Fixed: right shift >> was broken for unsigned types.
Fixed: debug info for classes now started.
2008-06-15 18:52:27 +02:00
Christian Kamm 03888f4b07 [svn r288] Let return statements start a new basic block after terminating the current one.
This fixes problems such as

void main()
{ return; return; }
2008-06-15 18:37:23 +02:00
Tomas Lindquist Olsen d85267ef5a [svn r284] Fixed some problems with cases, code is not as pretty, but it doesn't crash llvm! 2008-06-14 06:13:35 +02:00
Tomas Lindquist Olsen de89b4bc6f [svn r280] Fixed a bunch of issues with switch statements. Ended up a bit far reaching... 2008-06-14 05:13:49 +02:00
Tomas Lindquist Olsen 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.
2008-06-09 09:37:08 +02:00
Tomas Lindquist Olsen 28382e3567 [svn r250] Fixed the warning about dropping arguments to _Dmain when optimizing.
Did a few cleanups in inline asm code.
2008-06-08 08:03:19 +02:00
Tomas Lindquist Olsen 68d7827d35 [svn r249] Changed inline asm clobbers to a set instead of a list so we don't get duplicate clobbers. 2008-06-08 06:45:54 +02:00
Tomas Lindquist Olsen 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.
2008-06-08 06:15:51 +02:00
Christian Kamm 68d5150c1b [svn r235] rough port of GDC's inline assembler code, unfinished 2008-06-05 19:22:37 +02:00
Tomas Lindquist Olsen d03c3a7757 [svn r233] Added: -oq command line option for writing fully qualified object names.
Added: started support for x86 80bit floating point.
Changed: aggregates passed by value now use the llvm 'byval' parameter attribute, also lays ground work for
using other attributes.
Changed: eliminated a lot more std::vectorS, these showed up pretty much at the top when profiling!
Changed: performed other misc. cleanups.
Changed: halt expression now call the new llvm trap intrinsic instead of an assert(0).
Changed: dstress suite now passes -O0 by default, this only eliminates unreferenced globals, which speeds up
linking quite a bit.
2008-06-05 06:38:36 +02:00
Tomas Lindquist Olsen b4bb3aaec4 [svn r229] Updated the object.d implementation to the latest Tango.
Fixed a bunch of the built-in typeinfos for arrays, they did not inherit TypeInfo_Array.
Applied patch to tango/text/convert/Layout.d by fvbommel, closes #47 .
Cleaned up some type code.
Replaced uses of llvm::Type with LLType (a typedef), same for Value and Constant.
Fixed a few cases where typeinfo for user structs could be emitted multiple times, seems to still be some cases of this :/
2008-05-30 19:32:04 +02:00
Tomas Lindquist Olsen 39ed86269e [svn r222] Forgot to remove volatile ATTENTION.
Fixed a few comment types.
Forgot to add makefile for the basic GC.
2008-05-13 18:07:03 +02:00
Tomas Lindquist Olsen 3365b4c02f [svn r221] Update: Switched to the 2.3 LLVM svn branch, http://llvm.org/svn/llvm-project/llvm/branches/release_23 .
Fixed: Implemented volatile statements. Uses the LLVM memory barrier intrinsic, closes #21 .
2008-05-13 17:58:11 +02:00
Tomas Lindquist Olsen c571bf0f70 [svn r217] Updated: the rebuild profiles.
Fixed: way to find class data fields was too strict type wise.
Fixed: foreach resulting in an implicit delegate could fail.
2008-05-12 22:44:25 +02:00
Christian Kamm ee551c95b9 [svn r216] don't crash on foreach over zero-length static array 2008-05-12 22:27:05 +02:00
Tomas Lindquist Olsen 941e36fa47 [svn r213] Fixed: foreach on an object seems to have been broken, the issue was that DMD generates an implicit delegate with conflicting types for 'this'.
Fixed: string switch runtime support had wrong param types.
Fixed: string switch on a temporary slice was broken.
2008-05-12 20:02:52 +02:00
Tomas Lindquist Olsen 81ae45afe8 [svn r201] Fixed: return statement could fail codegen with type mismatch for classes, added cast. 2008-05-07 22:27:45 +02:00
Tomas Lindquist Olsen 0dd975e1f4 [svn r197] Fixed: empty scope statement segfaulted. 2008-05-07 19:34:41 +02:00
Tomas Lindquist Olsen c31af3dc2d [svn r191] Fixed: array literals did not support all type/storage combinations.
Fixed: with expression had broke somewhere along the way.
2008-05-07 00:01:13 +02:00
Christian Kamm 0fba6312c2 [svn r189] moving IR data back into DMD frontend nodes 2008-05-06 07:56:03 +02:00
Tomas Lindquist Olsen a0c6cb6673 [svn r179] lots and lots of fixes, much more of tango now compiles/works. 2008-05-05 07:36:29 +02:00
Christian Kamm 24726394f6 [svn r172] moving all IR state previously stored in Dsymbol into IrDsymbol and a Dsymbol->IrDsymbol map 2008-05-01 13:05:53 +02:00
Christian Kamm 48f1a9c507 [svn r171] starting to move IR data from AST nodes into IRState; started with IrFunction 2008-04-29 21:33:50 +02:00
Christian Kamm 402ce90e19 [svn r154] renaming enclosingtry to enclosingtryfinally to distinguish it from enclosingtrycatch, which will probably need to be added for exception handling 2008-03-22 12:20:32 +01:00
Christian Kamm 1af2b2169a [svn r151] fixed #29: out contracts work now 2008-03-10 19:29:39 +01:00
Christian Kamm b0a44173dc [svn r150] fixes #16 and #17, implements GotoCaseStatement 2008-03-08 15:22:07 +01:00
Tomas Lindquist Olsen 64537a9478 [svn r149] fixed: a bunch of D-style variadics problems.
fixed: GotoDefaultStatement implemented.
fixed: some other minor bugs.
2008-01-26 17:13:22 +01:00
Tomas Lindquist Olsen 17247d63e7 [svn r141] fixed more problems with classinfo
moved more IR state out of the AST classes
2008-01-18 16:42:16 +01:00
Tomas Lindquist Olsen 5652546986 [svn r140] did a lot of the work towards being able to pass multiple modules on the command line. not complete yet though 2008-01-17 03:15:12 +01:00
Tomas Lindquist Olsen 4505b9b006 [svn r137] Many fixes towards tango.io.Console working, but not quite there yet...
In particular, assertions has been fixed to include file/line info, and much more!
2008-01-14 05:11:54 +01:00
Tomas Lindquist Olsen b15b3484c8 [svn r136] MAJOR UNSTABLE UPDATE!!!
Initial commit after moving to Tango instead of Phobos.

Lots of bugfixes...

This build is not suitable for most things.
2008-01-11 17:57:40 +01:00
Tomas Lindquist Olsen bc08c6fcb1 [svn r135] * Merged DMD 1.025 *
* Fixed a minor linking order mishap *
* Added an command line option -annotate *
* Fixed some problems with running optimizations *
* Added std.stdio and dependencies to lphobos (still not 100% working, but compiles and links) *
* Fixed problems with passing aggregate types to variadic functions *
* Added initial code towards full GC support, currently based on malloc and friends, not all the runtime calls the GC yet for memory *
* Fixed problems with resolving nested function context pointers for some heavily nested cases *
* Redid function argument passing + other minor code cleanups, still lots to do on this end... *
2008-01-04 01:38:42 +01:00
Tomas Lindquist Olsen 667b6339f3 [svn r127] Updated the lphobos build scripts a little. Created a new rebuild profile.
Removed some potentially very long logging lines.
Added support for inner classes.
2007-11-28 03:01:51 +01:00
Tomas Lindquist Olsen 0665531549 [svn r126] String switch is now implemented.
A few other fixes.
2007-11-27 09:19:07 +01:00
Tomas Lindquist Olsen ea362d8402 [svn r125] Renamed/moved a few backend member inside DMD structures for consistency.
Unit tests are now implemented.
2007-11-27 03:09:36 +01:00