Commit Graph
45 Commits
Author SHA1 Message Date
David Nadlinger 99819d0c63 Merge branch 'master' into merge-2.062. 2013-03-11 23:07:32 +01:00
kai 5854fbfeb1 Fix comments 2013-03-11 22:32:41 +01:00
kai 0b19b81ac9 Add new intrinsic LDC_never_inline.
LDC_never_inline is a complementary intrinsic to LDC_allow_inline.
It tells the LLVM optimizer to never inline a function. This can be
useful if inlining creates incorrect code.
A possible application is core.thread.getStackTop().
2013-03-11 22:32:40 +01:00
kai bf52dbe389 Merge of DMD 2.062. 2013-03-06 18:18:56 +01:00
David Nadlinger 5616753768 Consistently use quotes for LLVM includes. 2013-02-07 21:20:54 +01:00
David Nadlinger 5c518a16ec Merged 2.061 frontend. 2013-01-04 06:22:53 +01:00
David Nadlinger 39e3e3a678 Replace template symbol module fix with more localized hack.
This reverts commit c4adbedcc, which would have fixed the
problem at its roots, but caused strange template function
attribute inference failures in D-YAML, presumably due to
the different order of semantic3 execution on the templates.
2012-12-31 05:46:29 +01:00
kai 4ea7e8dbf8 Add pragma to install function as global C runtime ctor or dtor.
DMD has the obscure functionality to install functions starting with
_STI_ as global ctors and funtions starting with _STD_ as global
dtors. IMHO a pragma is a better way to specify the behaviour.

This commit adds pragma(LDC_global_crt_ctor) and
pragma(LDC_global_crt_dtor). If the pragma is specified on a function
or static method then an entry is made in the corresponding list. E.g.
in monitor_.d:

    extern (C) {
        #pragma(LDC_global_crt_ctor)
        void _STI_monitor_staticctor()
        {
            // ...
        }
    }

This works on Linux without problems. On Windows with MS C Runtime
ctors work always but dtors are invoked only if linked against the
static C runtime. Dtors on Windows require at least LLVM 3.2.
2012-12-22 21:18:37 +01:00
David Nadlinger 9e64918efd Fix #162 - contracts for member functions with out parameters.
Also documented the code and changed it to explicitly use IN_LLVM
for the LDC specific parts in order to make debugging/frontend
merging easier.
2012-09-17 01:46:48 +02:00
David Nadlinger bf0d8afc88 Merge branch 'dmd-2.060' into master.
Conflicts:
	dmd2/func.c
	dmd2/mars.c
2012-09-07 04:15:44 +02:00
David Nadlinger 837ef30fec Merged DMD 2.060 frontend.
Upstream Git tag v2.060 (e8fe11c20249cb9e42538be88c99b74ede4d12e3).
2012-09-07 03:51:31 +02:00
kai 521921e5d3 Fix some whitespace issues. 2012-08-25 14:41:33 +02:00
kai dbb5a34eda Add changes for LLVM 3.2. 2012-07-29 17:31:50 +02:00
Alexey Prokhin 21a926c936 Resolved small merge conflict.
FuncAliasDeclaration::mangle() was wrongly put into '#if IN_DMD' block.
2012-04-21 22:37:36 +04:00
Alexey Prokhin bca73ec8b9 Merged dmd 2.059beta 2012-04-05 15:30:00 +04:00
Alexey Prokhin 50bbeb7c6f Remerged dmd2 frontend using git subtree 2012-04-05 11:12:22 +04:00
Alexey Prokhin 038825a195 Temporary removed dmd2 frontend 2012-04-05 11:10:26 +04:00
kai e5f2430855 Remove unused member VarDeclaration::anonDecl. 2012-03-28 06:57:17 +02:00
kai e739102374 Removed unused member VarDeclaration::offset2. 2012-03-27 07:13:55 +02:00
Alexey Prokhin ae7f0ca7e7 Preliminary vector support 2012-02-16 14:42:23 +04:00
Alexey Prokhin e74e55df89 Merge 2.058beta 2012-02-15 13:23:16 +04:00
Alexey Prokhin b41688a0b8 DMD Issue 6859 - Segfault when abstract method uses with contract. 2011-12-16 20:15:31 +04:00
Alexey Prokhin 88cff99bd4 Merge dmdfe 2.057 2011-12-16 19:44:56 +04:00
Alexey Prokhin b8721a8515 Emit debug info for variables that are used in nested functions 2011-12-03 23:45:58 +04:00
Alexey Prokhin b52c224d57 Merge v2.056 2011-11-01 11:44:03 +04:00
Alexey Prokhin c09aa779ea Fixed a crash inside TraitsExp::semantic when compiling typecons.d with unittests 2011-09-13 21:01:39 +04:00
Alexey Prokhin 0e754b5acd Merge dmd v2.055 2011-09-13 21:01:32 +04:00
Alexey Prokhin 7a31b599cc Updated to dmdfe 2.054 2011-07-19 19:20:38 +04:00
Alexey Prokhin 462cdda4ae Merge dmdfe 2.053beta 2011-07-19 10:14:04 +04:00
Alexey Prokhin 293f5bf880 Updated to dmdfe 2.052 2011-02-20 19:00:52 +03:00
Alexey Prokhin c5e9784863 Updated to dmdfe 2.051 2011-01-05 18:21:40 +03:00
Alexey Prokhin f8c0bce004 Run semantic3 on tuple declarations. This way, flag "availableExternally" will be set correctly for tuples. 2011-01-03 20:07:58 +03:00
Alexey Prokhin c3ea7b27c6 Work on debug 2010-12-14 14:35:48 +03:00
Alexey Prokhin 6d22dd7999 Updated to 2.050 2010-11-08 16:55:35 +03:00
Alexey Prokhin 4d7a6eda23 Different fixes for d2 2010-10-07 22:35:32 +04:00
Alexey Prokhin df87607ba2 Updated to 2.049 2010-09-30 21:54:45 +04:00
Robert Clipsham 089e792258 DMD 2.032 Merge. 2009-09-08 10:07:56 +01:00
Robert Clipsham b73e45940a Merged dmdfe 2.031. 2009-07-07 02:26:11 +01:00
Frits van Bommel 8044a67720 Apply changes from r1482 to D2 frontend too. Completely untested, but ldc2
compiles again.
2009-06-08 13:45:26 +02:00
Robert Clipsham c5be82c5ae LDC 2 compiles again. 2009-05-30 17:23:32 +01:00
Tomas Lindquist Olsen fc480b7fd8 SWITCHED TO LLVM 2.5 !
Applied patch from ticket #129 to compile against latest LLVM. Thanks Frits van Bommel.

Fixed implicit return by asm block at the end of a function on x86-32. Other architectures will produce an error at the moment. Adding support for new targets is fairly simple.

Fixed return calling convention for complex numbers, ST and ST(1) were switched around.

Added some testcases.

I've run a dstress test and there are no regressions. However, the runtime does not seem to compile with symbolic debug information. -O3 -release -inline works well and is what I used for the dstress run. Tango does not compile, a small workaround is needed in tango.io.digest.Digest.Digest.hexDigest. See ticket #206 .
2009-02-08 05:26:54 +01:00
Christian Kamm aa2cd42536 Apply naked changes of [920] to dmd2/ 2009-02-03 18:11:39 +01:00
Christian Kamm 8726eefefa Apply StaticStructInit changes from [913] to dmd2/ 2009-02-03 18:00: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