[PATCH] D97982: [MC] Introduce NeverAlign fragment type

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 11 10:41:51 PDT 2021


reames added a comment.

Drive by thought, not intended to be blocking.

Reading over the description, I'm left wondering why not treat this as a bundling problem?  We have precedent for bundles of instructions which need to not be split across an alignment boundary.  Why not simply say that the test/jcc are are in a two instruction bundle which can't cross the boundary?  In fact, shouldn't this be able to reuse the existing boundary align mechanism pretty much exactly?  It seems like the same basic problem, just for a different use case.

Or maybe I'm misunderstanding the problem.  Do you get good performance if one of the instructions starts in the first cache line, but ends in the second?  That doesn't match my memory of the performance characteristics, but I don't have that fully loaded any more either.  That seems to be the difference between the two approaches right?

If that is the difference, and it's intention, I'd suggest updating the commit message to be really explicit about that being the desired behavior in the edge case.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D97982



More information about the llvm-commits mailing list