Depends on D145572
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Transforms/Scalar/StructurizeCFG.cpp | ||
---|---|---|
802 | Yeah, given the defensive nature of the comment, I thought we should put this in UA. But turns out that we don't really need to, because UA does not store pointers to terminator instructions. The side-effect of the structurizer is to delete and recreate terminators, but in the UA, a query on a terminator is actually done by looking up its parent basic block. Also noteable is that only LegacyDA implemented this "remove" API. Although legacy DA acts as a wrapper to the newer DA, this particular function was never implemented in the latter. In short, I think we don't need to implement this in UA. |
Quite possibly the scariest test of UA so far! I am definitely ducking behind a vibranium shield!
llvm/lib/Transforms/Scalar/StructurizeCFG.cpp | ||
---|---|---|
802 | Sounds good, thanks for explaining! |
Does UA need something like removeValue? I see it was added by @nhaehnle in D43743 "to avoid dangling pointers as a matter of defensive programming".