How to Get structured info without using Pass

Hi All,

       Recently, I want to do some anlysis for the program. And I
found some structural info, such as Loop, CallGraph, Alias, is all
presented in the form of LLVM Pass. Define your own pass and then use
command 'opt' to load it.

       But is there any way to get these information, LoopInfo,
CallGraph, without defining Pass? I mean, information coud be get in
normal way, encapsulate code into function, to serve for "main()"
function.

Thanks.