You may want to check out the SAFECode project
(http://safecode.cs.illinois.edu). We've adapted SAFECode to work as a
debugging tool that reports memory errors. The difference is that
SAFECode is much faster than Valgrind (because it eliminates the need
for dynamic binary translation and can do more aggressive optimization).
SAFECode works both with LLVM 2.6 as well as LLVM 2.7 (although support
for LLVM 2.7 is new and still needs some work to bring it up to the same
level of support as the LLVM 2.6 version). The directions on the web
page are for LLVM 2.6; I'll update them to include directions for
building with LLVM 2.7 when I can.
SAFECode is still prototype software and needs polishing. We'd be happy
to have new contributors to the project.
-- John T.