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
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
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
Tomas Lindquist Olsen
c743549032
[svn r297] Fixed: rewrote linker code to use LLVM's Program facilities instead of DMD's oldschool broken "native" approach.
2008-06-20 17:45:13 +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
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
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.
2008-06-14 17:28:13 +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
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.
2008-06-13 05:47:28 +02:00
Tomas Lindquist Olsen
9a28d083f8
[svn r276] Fixed debug info for 'this' arg seemed to be broken.
2008-06-12 19:59:19 +02:00
Tomas Lindquist Olsen
53dedd765b
[svn r271] Fixed debug info for implicit 'this' param.
...
Fixed debug info for arguments passed byval (ref and out params still missing).
2008-06-12 18:04:28 +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
c1ae095f4c
[svn r268] Fixed: global debug info was still brokem ... should be done now!!!
2008-06-11 21:03:55 +02:00
Tomas Lindquist Olsen
4d2797526d
[svn r267] Fixed debug info for global variables.
...
Cleaned up the debug info code in general.
2008-06-11 20:53:26 +02:00
Christian Kamm
4a481678b8
[svn r265] generate debug info for global variables only if they don't have external linkage
2008-06-10 20:01:04 +02:00
Tomas Lindquist Olsen
cfc8befb5b
[svn r264] Fixed debug info for global variables.
2008-06-09 17:49:30 +02:00
Tomas Lindquist Olsen
37b6748897
[svn r263] Changed *** ATTENTION *** to warnings.
...
Implemented debug info for dynamic arrays, start of general composite support.
2008-06-09 15:52:22 +02:00
Tomas Lindquist Olsen
1e87ae15ef
[svn r262] Fixed debug info for normal function parameters.
...
Fixed debug info for pointers to basic types.
2008-06-09 12:43:16 +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
e23169d5d8
[svn r260] Changed some of the LLVMDC specific code in the Tango core and did some minor cleanups.
2008-06-09 03:02:14 +02:00
Tomas Lindquist Olsen
d939ce7ef6
[svn r258] Fixed: we were passing static arrays by value.
2008-06-09 00:28:02 +02:00
Tomas Lindquist Olsen
4a2d8494a6
[svn r257] Fixed: array .sort and .reverse runtime code was incorrect.
...
Fixed: most runtime calls did not get correct param attrs.
2008-06-09 00:01:10 +02:00
Tomas Lindquist Olsen
306ebfca83
[svn r256] AsmBlockStatement was still being flattened in some cases.
...
Function parameters passed as arguments to inline asm was not given storage.
2008-06-08 22:07:10 +02:00
Tomas Lindquist Olsen
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.
2008-06-08 19:09:24 +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
Tomas Lindquist Olsen
3e62d80b4f
[svn r247] fixed accessing global symbols from inline asm.
2008-06-08 01:07:58 +02:00
Tomas Lindquist Olsen
187d6523e3
[svn r245] initial support for labels in inline asm, broken :/
2008-06-07 21:31:38 +02:00
Tomas Lindquist Olsen
27634ea5b6
[svn r243] fixed inline asm arg_pointer args hopefully.
2008-06-07 19:19:30 +02:00
Tomas Lindquist Olsen
1af9e9814a
[svn r242] fixed (I think) arg_pointer inline asm args
2008-06-07 19:04:26 +02:00
Tomas Lindquist Olsen
47ac84b223
[svn r241] Fixed missing terminator for void main() with inline asm block.
2008-06-06 22:30:31 +02:00
Christian Kamm
cf4d71b02c
[svn r240] do not crash on zero length constraints string
2008-06-06 22:04:41 +02:00
Christian Kamm
54b7134d78
[svn r239] also use indirect modifier for update constraints
2008-06-06 21:51:40 +02:00
Christian Kamm
5ee938ab0a
[svn r238] use *m for memory input constraints and pass in their address
2008-06-06 21:44:17 +02:00
Tomas Lindquist Olsen
b917fe2f00
[svn r237] some inline asm output now seems to work, see tangotests/asm2.d
2008-06-06 20:51:43 +02:00