Christian Kamm
ba869c7014
Move adding IrSymbols to global list out of assert.
2009-01-08 15:31:13 +01:00
Tomas Lindquist Olsen
2788a2a0f1
Made ClassInfo.interfaces generation consistent with DMD, fixes #134
...
Removed unneeded includes from dmd/attrib.c
2008-12-01 18:34:02 +01:00
Christian Kamm
f14d97d786
Move storage of final vtbl from BaseClass to IrInterface: BaseClass instances are shared!
...
Always use the target's irstruct interfaceMap when building the const initializer.
Tango helloworld works again.
2008-11-30 11:25:40 +01:00
Tomas Lindquist Olsen
5d1366d27f
Removed DtoConstFieldInitializer, it's no longer needed and was buggy.
2008-11-29 21:26:50 +01:00
Tomas Lindquist Olsen
4da2cf066e
Fixed some problems with the addZeros forward declarations having type mismatches.
2008-11-29 20:57:52 +01:00
Tomas Lindquist Olsen
13e0399ab0
Changed aggregate field initializers to be created lazily, fixes problem with static void arrays in aggregates.
2008-11-29 18:28:17 +01:00
Tomas Lindquist Olsen
f46f865375
Removed KDevelop3 project files, CMake can generate them just fine!
...
Fixed function literals in static initializers.
Changed alignment of delegates from 2*PTRSIZE to just PTRSIZE.
Changed errors to go to stderr instead of stdout.
Fairly major rewriting of struct/union/class handling, STILL A BIT BUGGY !!!
2008-11-29 21:25:43 +01:00
Tomas Lindquist Olsen
c4c1c1d72e
Added initial D2 support, D2 frontend and changes to codegen to make things compile.
2008-11-11 01:38:48 +01:00
Christian Kamm
5b17d36ce2
Tried using DtoDeclarationExp for VarDecls in Statements to fix nesting issues
...
(see bug #104 ), but a separate helper that doesn't initialize would be nicer.
2008-11-01 16:48:17 +01:00
Tomas Lindquist Olsen
6cf5ca6aba
Removed warnings on ignored aligns. Only do aligment on packed structs, align(1) struct Packed { ... }
...
Changed the way struct/class fields are added, first small part of cleaning up these...
Make struct/class/union fields aware of any anonymous struct/union they might be part of, not yet really useful, but part of getting better union support.
2008-10-28 15:41:09 +01:00
Christian Kamm
6cb213badf
Only allocate the module file name once. Fixes #90 .
2008-10-12 10:35:16 +02:00
Christian Kamm
a3a418150e
Some missed LLVMDC -> LDC.
2008-10-06 22:54:08 +02:00
Tomas Lindquist Olsen
bce9368514
Updated to latest LLVM trunk, function notes have been removed and merged with parameter attributes, which have been renamed to just attributes. Nothing seems to have broke!
2008-10-01 23:17:14 +02:00
Christian Kamm
16c32afa18
Fix issue with EH table indices and nested try-catch.
2008-09-21 17:18:35 +02:00
Christian Kamm
4e0b6b4bf0
Make sure functions containing inline asm are never inlined to avoid
...
duplicated labels.
2008-09-08 20:38:55 +02:00
Tomas Lindquist Olsen
9d7f16b967
Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in.
...
Reimplemented support for nested functions/class using a new approach.
Added error on taking address of intrinsic.
Fixed problems with the ->syntaxCopy of TypeFunction delegate exp.
Removed DtoDType and replaced all uses with ->toBasetype() instead.
Removed unused inplace stuff.
Fixed a bunch of issues in the runtime unittests, not complete yet.
Added mini tests.
2008-08-10 08:37:38 +02:00
Christian Kamm
8362b86c5a
Move AllocaInst creation into DtoAlloca helper. Will enable special zero-init of fp80 reals' padding.
2008-08-05 19:28:19 +02:00
Tomas Lindquist Olsen
905ca019dd
Added type param to DVarValue as DMD sometimes overrides the type of the VarDeclaration.
...
Added support for align(1)/packed structs, other alignments are still ignored.
Fixed some problems with accessing lazy arguments.
2008-07-30 10:12:55 +02:00
Christian Kamm
c1fbcd9942
[svn r376] Fix bug with finally blocks and labels. The labels would get emitted multiple times and conflict.
...
It is now possible to add label scopes in IrFunction and all labels names will be prefixed accordingly.
Also disallow goto into finally blocks.
Fixes nocompile/finally_02 and others.
2008-07-14 11:48:55 +02:00
Christian Kamm
7e7ac3a6f7
[svn r374] Move label target basic block from AST to IRFunction. This is a first step to allowing labels to be emitted multiple times. (for instance within finally blocks)
2008-07-14 11:07:15 +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
f5dbc0e0d2
[svn r353] Fix typo. (fixes empty catch handlers, like catch_02.d)
2008-07-11 22:33:21 +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
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
e0f2825fd0
[svn r269] Fixed dwarf debug info for structs.
2008-06-12 16:58:26 +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
1eb35898c6
[svn r223] Fixed: assert with message could be broken.
...
Fixed: array length exp could fail on slice.
2008-05-13 21:40:39 +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
c380f43929
[svn r219] Fixed: the tango/lib/gc/basic garbage collector now compiles and links into an executable (change in tango/lib/llvmdc-posix.mak), closes #5 .
...
Changed: removed the crappy realloc based dynamic memory runtime and started moving over to DMD style runtime support, part of moving to real GC.
Fixed: dynamic arrays now use GC runtime for allocating memory.
Fixed: new expression now use GC for allocating memory.
Changed: revamped the dynamic array support routines related to dynamic memory.
Fixed: assertions no longer create exsessive allocas.
Changed: misc. minor cleanups.
2008-05-13 14:42:09 +02:00
Christian Kamm
94e4a5b5a1
[svn r215] fix for empty class vtbl
2008-05-12 21:08:33 +02:00
Tomas Lindquist Olsen
2317c6fd39
[svn r210] Fixed: last commit was broken.
2008-05-12 18:48:09 +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
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
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
Tomas Lindquist Olsen
e07b99bc26
[svn r190] Fixed array concatenation for some broken cases.
...
Added a sanity check for the Dsymbol state set.
2008-05-06 18:36:46 +02:00
Christian Kamm
0fba6312c2
[svn r189] moving IR data back into DMD frontend nodes
2008-05-06 07:56:03 +02:00
Christian Kamm
4cd137f9d4
[svn r174] added file missing from previous commit [173]
2008-05-01 13:33:02 +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
b0a44173dc
[svn r150] fixes #16 and #17 , implements GotoCaseStatement
2008-03-08 15:22:07 +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
0c0bac2766
[svn r144] fixes
2008-01-23 12:56:09 +01:00
Tomas Lindquist Olsen
94c47aa1fa
[svn r143] Fixed: a few bugs in debug information, still only line info, but should be correct files now :)
...
Fixed: tango.io.Console seems to be working now.
2008-01-22 00:01:16 +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