[PATCH] D70157: Align branches within 32-Byte boundary

Kan Shengchen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 11 22:43:49 PST 2019


skan added a comment.



In D70157#1777272 <https://reviews.llvm.org/D70157#1777272>, @fedor.sergeev wrote:

> In D70157#1776424 <https://reviews.llvm.org/D70157#1776424>, @skan wrote:
>
> > > What if I insert explicit align(8) right *after* the sequence?
> >
> > If your insert explicit `.align 8` after the sequence, and the sequence doesn't has any branch to be aligned, the current solution won't change the sequence.
>
>
> Well, I kinda figure that from the code behavior right now, however is it really by design or just happens to work now?


It is by design, prefix won't be added to instruction if there is a `align` directive int the path to the target branch.

> Seeing that assembler becomes very intelligent now I would rather have a strict guarantee similar to "hardcode" thing that you have here that protects my sequence
>  rather than relying on a fact that in current settings moving my label by 8 does not appear to be profitable to assembler.

It depends on what your real need is. If you just need your original implicit alignment to work,  turning it into explicit alignment is enough.  Or if you need a sequence not changed by
the assembler at all,  maybe we need a new directive such as ".hard " or ".bundle".


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

https://reviews.llvm.org/D70157





More information about the llvm-commits mailing list