Static Profiling with LLVM

Is there currently a way to get static profiling information for a program (e.g. an implementation of “Static Branch Frequency and Program Profile Analysis” by Wu and Larus, or something more recent) using an LLVM pass?


the profiling code, which has bitrotted considerably, supports random
sampling based profiling of any of the llvm profiling passes.


I was looking for something along the lines of a pass that would statically (as opposed to dynamically during run time) profile a benchmark program based traversal of the branch conditions within functions.