Mercurial > projects > ldc
view lphobos/phobos.d @ 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 | 373489eeaf90 |
children |
line wrap: on
line source
module phobos; import std.array, std.base64, std.ctype, std.format, std.intrinsic, std.math, std.moduleinit, std.outofmemory, std.stdarg, std.stdint, std.stdio, std.string, std.thread, std.traits, std.uni, std.utf, std.c.fenv, std.c.locale, std.c.math, std.c.process, std.c.stdarg, std.c.stddef, std.c.stdio, std.c.stdlib, std.c.string, std.c.time, std.file, std.date, std.socket, std.zlib, std.cstream; version(linux) { import std.c.linux.linux, std.c.linux.linuxextern, std.c.linux.pthread, std.c.linux.socket; }