Commit graph

68 commits

Author SHA1 Message Date
Christian Kamm
d82c8068a3 Always run SimplifyCFG to workaround LLVM bug 2613. 2008-10-12 15:33:14 +02:00
Christian Kamm
b413b9aa54 Emit stub debug info for generated functions to work around LLVM bug 2172. 2008-10-12 14:38:55 +02:00
Christian Kamm
6cb213badf Only allocate the module file name once. Fixes #90. 2008-10-12 10:35:16 +02:00
Christian Kamm
ee407e597a Link using gcc instead. 2008-10-11 21:21:21 +02:00
Christian Kamm
1bfc0316aa Make ldc call gcc to assemble. 2008-10-11 20:00:36 +02:00
Christian Kamm
73d7a299c9 Disable bc output by default. Remove -dis. Add -output-bc, -output-ll, -output-s.
Call to gcc to convert assembly to object file still required.
2008-10-11 13:07:59 +02:00
Christian Kamm
3e4bb69ef3 Move to separate function and cleanup. 2008-10-11 11:41:56 +02:00
Christian Kamm
7b20402e0b Add basics for direct assembly output. 2008-10-11 11:07:53 +02:00
Christian Kamm
6eeeafdba6 First part of rename to LDC. 2008-10-06 22:46:55 +02:00
Tomas Lindquist Olsen
77e16a9302 Added test case for bug #100
Removed dubious check for not emitting static private global in other modules without access. This should be handled properly somewhere else, it's causing unresolved global errors for stuff that should work (in MiniD)
2008-10-05 17:28:15 +02:00
Christian Kamm
271012bcfc Fix import visibility bugs 313 and 314. 2008-10-01 19:16:10 +02:00
Tomas Lindquist Olsen
bcafbe169d Wrapped all the most potentially expensive logging calls in a conditional to only do work when actually requested.
Commented some logging calls that could potentially write out many megabytes of type dumps.
2008-10-01 18:32:31 +02:00
Tomas Lindquist Olsen
1daa67ba50 Removed useless assert in ArrayLiteralExp::toConstElem
Added second verification pass after optimization
Commented an optimization pass out from lvl2, it turns the IR invalid, see llvm PR 2800
2008-09-16 16:06:39 +02:00
Tomas Lindquist Olsen
f411df11e3 Fixed choosing default target machine without needing to link in targets. 2008-09-07 17:44:25 -07:00
Christian Kamm
d44f21687e Restructure path handling a bit. Fixes #66. 2008-09-06 12:27:27 +02:00
Tomas Lindquist Olsen
1565f00f85 Fixed toobj.cpp to compile with latest LLVM, seems a method overload was removed recently. 2008-08-31 18:38:16 +02:00
Tomas Lindquist Olsen
2b2291952c Fixed problem when instantiating a template with private global variables. 2008-08-15 05:08:33 +02:00
Christian Kamm
878faff7fb Revert accidental change to toobj.cpp. 2008-08-12 19:50:41 +02:00
Christian Kamm
57cd1b4445 Get rid of 'static function cannot access nested' error. It is caught again later. 2008-08-12 19:48:42 +02:00
Christian Kamm
8b1903c0b3 Make llvmdc work with llvm 2.4svn revision 54614. Breaks compatibility with llvm 2.3. 2008-08-10 21:09:23 +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
Tomas Lindquist Olsen
70f16e36fb Added bitcode filename to very verbose logging.
Fixed -O<n> switches from llvm 2.4.
Removed md5 from the kdevelop project filelist.
2008-07-26 15:02:57 +02:00
Tomas Lindquist Olsen
27674069e7 [svn r384] Some minor code cleanups. 2008-07-14 21:49:54 +02:00
Tomas Lindquist Olsen
832504e5d7 [svn r357] Merged DMD 1.033 2008-07-12 19:38:31 +02:00
Tomas Lindquist Olsen
9c28c0263a [svn r345] Fixed the new moduleinfo stuff to have consistent symbol names with the D style. 2008-07-10 00:13:09 +02:00
Tomas Lindquist Olsen
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.
2008-07-09 23:43:51 +02:00
Christian Kamm
5f15274bc0 [svn r337] Reverted changes to toobj.cpp: Module constructor calls can never be invokes. 2008-07-04 08:51:49 +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
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
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
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
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
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
fa30c42921 [svn r200] Fixed: removed use of std.intrinsic.
Fixed: module info could potentially be masked by a previous reference, resulting in linking failure.
2008-05-07 22:01:59 +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
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
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
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