llvm's SAFECode bounds checking algorithm

bearophile bearophileHUGS at lycos.com
Sat Aug 20 16:40:42 PDT 2011


Walter:

> http://llvm.org/pubs/2006-05-24-SAFECode-BoundsCheck.pdf
> We are on the right track with D with our focus on making D 
> proveably memory safe.

The paper strategy uses Automatic Pool Allocation:

>Automatic Pool Allocation [13] is a fully automatic compile-time transformation that partitions memory into pools corresponding to a compile-time partitioning of objects computed by a pointer analysis. It tries to create pools that are as fine-grained and short-lived as possible. It merges all the target objects of a pointer into a single pool, thus ensuring that there is a unique pool corresponding to each pointer.<

>We have shown previously that Automatic Pool Allocation can significantly improve memory hierarchy performance for a wide range of programs and does not noticeably hurt performance in other cases [13]. It's compilation times are quite low (less than 3 seconds for programs up to 200K lines of code), and are a small fraction of the time taken by GCC to compile the same programs.<

It sounds useful for D compilers too, to improve and reduce the run-time work of the D GC.
(That "it's" is wrong I think.)

The reference [13] is this one:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.119.9873&rep=rep1&type=pdf

Bye,
bearophile


More information about the Digitalmars-d mailing list