BranchProbabilityInfo::eraseBlock() is a public method and can be called without deleting the block itself.
I believe this method should remove the correspondent tracking handle from BranchProbabilityInfo::Handles along with the probabilities of the block. So I propose to move Handles.erase() call to eraseBlock().
In setEdgeProbability() we need to add the block handle only once.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
LGTM. Thanks!
llvm/include/llvm/Analysis/BranchProbabilityInfo.h | ||
---|---|---|
216 | While you are at this, could you make BranchProbabilityInfo::Handles private? |
llvm/include/llvm/Analysis/BranchProbabilityInfo.h | ||
---|---|---|
216 | It is private. |
llvm/include/llvm/Analysis/BranchProbabilityInfo.h | ||
---|---|---|
216 | Sorry, I missed that. Thank you for checking! |
While you are at this, could you make BranchProbabilityInfo::Handles private?