What kind of analysis are you trying to do? Static? (if so,
source-to-source transformation isn't really relevant - check out the
Clang Static Analyzer and Anna's talk from the 2012 dev meeting)
Dynamic? (again, source to source transformation probably isn't what
you want - see how Address Sanitizer is implemented - as an LLVM IR
pass adding in the instrumentation/checking at that level)