How to get callees?

I intend to write a simple module pass which should print callees of each function in it. Basically I want a call graph in CSV format. How do I do this? Do I HAVE to iterate over all instructions in all functions to its callees? Can I use CallGraph class here? If I use SCC pass then would it be simpler?

You should probably be able to iterate the uses of an llvm::Function