wmi added a comment.

> There are some optimizations such as if-convert, tail call elimination, that 
> were initially blocked by the pseudo probe intrinsic but is now unblocked by 
> fixes included in this change. With the current change we do not see perf 
> degradation out of SPEC and one of our internal large services.
> The main optimizations left blocked intentionally are those that merge blocks 
> for smaller code size, such as tail merge which is the opposite of jump 
> threading. We believe that those optimizations are not very beneficial for 
> performance and AutoFDO.

If the optimizations are not very beneficial for performance and AutoFDO and 
should be blocked, it may be better to block them in a more general way and not 
depend on pseudo probe, because blocking them may also be beneficial for debug 
info based AutoFDO.

Another reason is that pseudo probe looks pretty much like debug information to 
me. They are used to annotate the IR but shouldn't affect the transformation. 
Binaries built w/wo debug information are required to be identical in LLVM. I 
think that requirement could be applied on pseudo probe as well. It is even 
better to have some test to enforce it so that no change in the future could 
break the requirement.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D86193

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

Reply via email to