wenlei added a comment.

In D158668#4611988 <https://reviews.llvm.org/D158668#4611988>, @MatzeB wrote:

> And as another strawman / discussion-starter I put up D158680 
> <https://reviews.llvm.org/D158680> where I use `!{"branch_weights", i32 1, 
> i32 0}` to represent likely branches and the actual "LikelyWeight" mostly 
> becomes an internal implementation detail of the BranchProbabilityInfo 
> class... This seemed like a neat way to get an abstract "likely", "unlikely" 
> notation, but not sure of the effects if we no longer would have "truly zero" 
> weights because they would be interpreted differently now...

Commented on that patch, I'm not convinced that canonicalize {X,0} -> {1,0} is 
a good idea mostly because: 1) we don't attempt to canonicalize {X*Z,Y*Z} -> 
{X,Y}; 2) there are places where the absolute values matters; 3) canonicalize 
branch_weights as a side effect of BPI seems not right.

> Remove -unlikely-branch-weight option and just use 1.

Seems fine, I don't have a strong opinion.

> Add getLikelyBranchWeight() function returning the value of the 
> -likely-branch-weight option defaulting to 2000.

This makes sense to me.

> prefer pass-specific weights rather than a unified notion of 
> "likely"/"unlikely"... So with the latest round of patches it's probably best 
> to abandon this for now.

I don't see them as mutually exclusive. In fact when I look at your other 
patches, I feel that we need a default likely/unlikely for cases where we just 
don't have a good answer, hence fall back to default. So the default 
likely/unlikely probability is a layer below pass-specific setting.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D158668

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to