[PATCH] D146267: [llvm] Handle duplicate call bases when applying branch funneling

Arthur Eubanks via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 21 16:48:50 PDT 2023


aeubanks added inline comments.


================
Comment at: llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp:1397
 
+      if (!CB.getParent()) {
+        // When finding devirtualizable calls, it's possible to find the same
----------------
leonardchan wrote:
> tejohnson wrote:
> > I don't think this is safe since when we eraseFromParent the instruction is deleted. Can we track a different way?
> Updated to just add erased pointers to a set and check on future iterations if they're in the set. This way we don't have to deref them.
if the instruction is erased, can there be instructions created after that share the same pointer?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D146267/new/

https://reviews.llvm.org/D146267



More information about the llvm-commits mailing list