changeToInvokeAndSplitBasicBlock replaces an exising call instruction with an invoke instruction. This leaves a dangling pointer in OriginallyIndirectCalls. This means we miss !inline_history metadata on the invokes replacing the direct calls. It also cause non-determinism, where the inliner adds !inline_history entries to unrelated call instructions, if we happen to re-allocate a new call at the same address as a dangling pointer in the set. PR: https://github.com/llvm/llvm-project/pull/191242
148 KiB
148 KiB