Precise Call Graph Analysis Pass

Is anyone aware of any LLVM IR Passes that can generate a precise call graph, specifically in relation to indirect calls?

We’ve been using DSA from poolalloc, but have found a few examples of when it is a little too conservative. I’m not sure if these are due to implementation errors or just fundamental limitations of the algorithm, but before we try to tweak DSA or design our own algorithm I’d like to see if theres anything else out there.

Joe