https://github.com/simon-camp requested changes to this pull request. Overall this looks good to me, I would change the default implementation to be conservative though. https://github.com/llvm/llvm-project/pull/142771