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
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
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
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
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
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
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.
2008-06-19 17:30:32 +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
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
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
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
a954f06e90
[svn r226] Fixed: deleting interface.
...
Removed: unused util function for calling class destructors.
2008-05-14 02:00:23 +02:00
Tomas Lindquist Olsen
19748f09ec
[svn r225] Fixed: delete expressions no longer use llvm's free instruction, which crashes on a GC provided pointer.
2008-05-14 01:22:40 +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
94e4a5b5a1
[svn r215] fix for empty class vtbl
2008-05-12 21:08:33 +02:00
Tomas Lindquist Olsen
9f3be435b0
[svn r209] Fixed: exotic array to pointer casts were broken.
...
Changed: classes now have opaque vtables.
2008-05-12 18:44:11 +02:00
Christian Kamm
7c78e3665b
[svn r208] const init interface vtbls to nonzero values only for nonabstract classes
2008-05-12 18:22:55 +02:00
Tomas Lindquist Olsen
f1c26350ca
[svn r206] Fixed some interfaceInfo related issues, closes #44
2008-05-12 14:32:29 +02:00
Tomas Lindquist Olsen
24bd9034c3
[svn r193] Fixed: abstract classes implementing interfaces now output proper Interface info arrays. (null vtables).
...
Did a little renaming of delegate utils.
2008-05-07 04:45:51 +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
93a632c7c2
[svn r185] Fixed broken nested classes with data members, did DMD change the class layout? tango.text.Regex now compiles.
...
Commented some of the *very* verbose logging for -vv option.
2008-05-06 03:07:21 +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
Tomas Lindquist Olsen
a522719b85
[svn r176] Fixed a bug with class constructors.
2008-05-04 04:35:27 +02:00
Christian Kamm
91ae70e969
[svn r173] moved IR state previously stored in Type into IrType and a Type->IrType map; fixes #7
2008-05-01 13:32:08 +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
Tomas Lindquist Olsen
ecd91a48f2
[svn r155] Fixed a bunch of linkage problems (especially with templates)
2008-03-24 19:43:02 +01:00
Christian Kamm
de63966a59
[svn r152] Relates to ticket #34 . Always emit class definition if it is a template instance. Linkage still needs to be fixed.
2008-03-13 18:37:52 +01:00
Tomas Lindquist Olsen
be7828b589
[svn r146] fixed some potential problems with mismatch in order of interfaces in class data layout
2008-01-23 15:48:19 +01:00
Tomas Lindquist Olsen
7825be29ee
[svn r142] minor fix to dynamic casts.
...
added a few missed files.
2008-01-18 20:13:19 +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
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
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
Tomas Lindquist Olsen
e0176785c7
[svn r121] Finished ModuleInfo implementation.
...
Static ctors/dtors now work according to spec.
Changed class vtable types slightly in some cases. Overridden functions now always take the the type of the first class declaring the method as this parameter. This helps when using headers (w. implementation somewhere else)
2007-11-26 04:49:23 +01:00
Tomas Lindquist Olsen
c08b0918cc
[svn r119] Added the monitor data field that comes after the vtable pointer to all classes. Represented as a void* initialized to zero.
2007-11-25 03:58:55 +01:00
Tomas Lindquist Olsen
541a677a54
[svn r118] Fixed dynamic casts.
...
Fixed a few interface bugs.
2007-11-25 00:19:13 +01:00
Tomas Lindquist Olsen
b43f5729b0
[svn r117] Initial working implementation of interfaces.
...
Groundwork for all the different types of class/interface casts laid out.
2007-11-24 06:33:00 +01:00
Tomas Lindquist Olsen
0a8ff5931a
[svn r116] Implemented the ClassInfo.destructor field.
2007-11-22 22:30:10 +01:00
Tomas Lindquist Olsen
ccaf229830
[svn r115] Implemented the ClassInfo.defaultConstructor member.
2007-11-22 21:17:54 +01:00
Tomas Lindquist Olsen
be1fcd6a24
[svn r114] Implemented the ClassInfo.offTi member.
2007-11-22 21:01:01 +01:00
Tomas Lindquist Olsen
2af443b045
[svn r110] Fixed typeinfo for classes.
2007-11-19 06:01:48 +01:00
Tomas Lindquist Olsen
6da09c01b3
[svn r107] Getting .classinfo on a class instance now works (classinfo is stored in vtable)
2007-11-18 08:25:07 +01:00
Tomas Lindquist Olsen
c99938debf
[svn r106] Turns out the last commit wasn't enough, now the D->LLVM process is even more split up.
...
Basically it tries to do the following in order: Resolve types, Declare symbols, Create constant initializers, Apply initializers, Generate functions bodies.
ClassInfo is now has the most useful(biased?) members working.
Probably other stuf...
2007-11-18 06:52:57 +01:00
Tomas Lindquist Olsen
d1cfe9524c
[svn r104] TONS OF FIXES.
...
Split up declaration, constant initializer gen and definition for globals, structs, classes and functions.
Improved ClassInfo support (not complete), not in vtable yet.
Fixed a bunch of forward reference problems.
Much more. Major commit! :)
2007-11-16 08:21:47 +01:00