# HG changeset patch # User lindquist # Date 1188969391 -7200 # Node ID 3d60e549b0c2dceb6ae174bf51cab12b77753831 # Parent e116aa1488e616009ccd08859cac38a12dd87bb1 [svn r9] added a preliminary rebuild profile. llvmdc-posix - very handy :) added readme.txt added test/g.d - tests passing strings to functions fixed test/dgs.d and test/funcptr, now all tests except those related to typeinfo should work. diff -r e116aa1488e6 -r 3d60e549b0c2 gen/toir.c --- a/gen/toir.c Mon Sep 03 17:34:30 2007 +0200 +++ b/gen/toir.c Wed Sep 05 07:16:31 2007 +0200 @@ -920,7 +920,7 @@ assert(llargs[j] != 0); } else { - llargs[j] = arg->mem; + llargs[j] = arg->mem ? arg->mem : arg->val; assert(llargs[j] != 0); } diff -r e116aa1488e6 -r 3d60e549b0c2 llvmdc-posix --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/llvmdc-posix Wed Sep 05 07:16:31 2007 +0200 @@ -0,0 +1,67 @@ +#profile=phobos + +compiler=llvmdc +inifile=llvmdc.conf + +exeext= +objext=bc + + +version=LLVM +noversion=DigitalMars +noversion=GNU +testversion=linux +testversion=Unix +version=Posix +testversion=Windows +testversion=Win32 +testversion=Win64 +testversion=X86 +testversion=PPC +testversion=X86_64 +testversion=PPC64 +testversion=D_InlineAsm +testvestion=D_InlineAsm_X86 +testversion=D_InlineAsm_PPC +testversion=D_InlineAsm_X86_64 +testversion=D_InlineAsm_PPC64 +testversion=LittleEndian +testversion=BigEndian + + +[compile] +cmd=llvmdc -version=Posix -c $i + +flag=$i +incdir=-I$i +libdir=-L-L$i +optimize=-O5 +version=-version=$i + + +[link] +cmd=llvdc $i -of$o + +libdir=-L-L$i +lib=-L-l$i +flag=-L$i + + +[liblink] +safe=yes +cmd=ar rc $o $i + +libdir= +lib= +flag= + + +[postliblink] +cmd=ranlib $i + + +[shliblink] +shlibs=no + +[dyliblink] +dylibs=no diff -r e116aa1488e6 -r 3d60e549b0c2 readme.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/readme.txt Wed Sep 05 07:16:31 2007 +0200 @@ -0,0 +1,20 @@ +LLVM D Compiler (LLVMDC) + +This compiler is based on the Digital Mars D (DMD)[1] compiler frontend, and +the LLVM[2] compiler toolkit. It is licensed under the same licence as the DMD +compiler frontend. See dmd/readme.txt for more details. + +premake[3] is used to generate a makefile so the project can be built. So far +only Linux is tested so use the command: 'premake --target gnu' to generate a +Makefile, then just type 'make'. + +You need LLVM 2.1 which is not yet released, so LLVM from SVN is required. +Current development has been done against the 20070814 revision, newer will +probably work, later probably wont... + +Many thing are still not implemented. For more information visit the website: +http://www.dsource.org/projects/llvmdc + +[1] http://www.digitalmars.com/d +[2] http://www.llvm.org +[3] http://premake.sourceforge.net diff -r e116aa1488e6 -r 3d60e549b0c2 test/g.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/g.d Wed Sep 05 07:16:31 2007 +0200 @@ -0,0 +1,13 @@ +module g; + +void func(char[] str) +{ + printf("%.*s\n", str.length, str.ptr); +} + +void main() +{ + char[] arr = "Hello World!"; + func(arr); + func("ditto"); +} diff -r e116aa1488e6 -r 3d60e549b0c2 test/pt.d --- a/test/pt.d Mon Sep 03 17:34:30 2007 +0200 +++ b/test/pt.d Wed Sep 05 07:16:31 2007 +0200 @@ -12,7 +12,6 @@ printf("%p %p\n", s.ptr, sd.ptr); printf("%c%c%c\n", s[0], s[1], s[2]); } - char[16] s1 = void; char[16] s2 = void;