[PATCH] D148237: [BPI] Add method to swap outgoing edges probabilities

Max Kazantsev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 13 22:15:44 PDT 2023


mkazantsev added inline comments.


================
Comment at: llvm/lib/Analysis/BranchProbabilityInfo.cpp:1184
+  std::swap(Probs[std::make_pair(Src, 0)], Probs[std::make_pair(Src, 1)]);
+}
+
----------------
mkazantsev wrote:
> Why do you need this, exactly? I see that `swapSuccessors` is already updating the metadata:
> ```
> void BranchInst::swapSuccessors() {
>   assert(isConditional() &&
>          "Cannot swap successors of an unconditional branch");
>   Op<-1>().swap(Op<-2>());
> 
>   // Update profile metadata if present and it matches our structural
>   // expectations.
>   swapProfMetadata();
> }
> ```
> Is analysis returning invalid result after that?
Yeah, seems it doesn't. Why don't we just add BPI an optional parameter to `swapSuccessors` and make this update there in this case?


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

https://reviews.llvm.org/D148237



More information about the llvm-commits mailing list