Mercurial > projects > ldc
view ldc-posix-tango @ 1275:bedf0bfb8fdb
Implement first D-specific optimization pass: -simplify-drtcalls.
It uses the machinery of the standard -simplify-libcalls pass, but optimizes
calls to the D runtime instead of calls to C libraries.
At the moment, these optimizations are implemented by this pass:
- Avoid the runtime call for `arr.length = newlen` if it can determine that
the new length isn't longer than the old one.
- Ditto for `cast(T[]) arr` if it will clearly always succeed.
(e.g. if the length of the original array is zero, or if the old element
size is a multiple of the new element size)
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Tue, 28 Apr 2009 21:58:06 +0200 |
parents | 8403fec8c34c |
children |
line wrap: on
line source
ignore=object compiler=ldc inifile=ldc.rebuild.conf exeext= objext=o version=LLVM version=LDC noversion=DigitalMars noversion=GNU testversion=linux testversion=darwin testversion=freebsd testversion=Unix testversion=Posix testversion=Windows testversion=Win32 testversion=Win64 testversion=mingw32 testversion=X86 testversion=PPC testversion=X86_64 testversion=PPC64 testversion=D_InlineAsm testversion=D_InlineAsm_X86 testversion=D_InlineAsm_PPC testversion=D_InlineAsm_X86_64 testversion=D_InlineAsm_PPC64 testversion=LLVM_InlineAsm_X86 testversion=LittleEndian testversion=BigEndian testversion=LLVM64 testversion=PIC testversion=Tango [compile] oneatatime=yes cmd=ldmd -c $i flag=$i incdir=-I$i libdir=-L-L$i optimize=-O3 version=-version=$i [link] oneatatime=yes cmd=ldc $i -of$o libdir=-L-L$i lib=-L-l$i flag=-L$i [liblink] safe=yes oneatatime=yes cmd=ar rc $o $i libdir= lib= flag= [postliblink] cmd=ranlib $i [shliblink] shlibs=no [dyliblink] dylibs=no