This patch adds more detailed function properties gated behind a command line flag for use primarily in experimentation and gathering statistics on the functions in a module or project. The runtime cost should be minimal as the computation is only done when the flag is set. There will be a slight memory overhead when the ML inliner is enabled, but it should be fairly small at a handful of bytes per function.
This is an adapted form of https://reviews.llvm.org/D109661.
pred_size
Is the test catching this?