Data-flow analysis framework for LLVM

Hi,

I'd like to write a pass which uses data-flow analysis (forward and
backwards). I've tried to Google for one but I failed to found one.

Is there a standard data-flow analysis framework or do I need to write
my own?

Best regards