jyknight added a comment.

> .push_align_branch_boundary [N,] [instruction,]*

I'd like to raise again the possibility of using a more general region 
directive to denote "It is allowable to add prefixes/nops before instructions 
in this region if the assembler wants to", as I'd started discussing in 
https://reviews.llvm.org/D71238#1786885 (but let's move the discussion here).

Whether this is OK or not on a particular piece of assembly-code is likely to 
be a generic property of the code, regardless of the purpose of the 
optimization. If we're going to have multiple assembler optimizations that can 
make use of this, it would be nice to express the "OK to pad" "not OK to pad" 
property only once, rather than once for each kind of optimization which might 
make such modifications.

In particular, I'd like to look ahead towards the potential implementation of 
two other features:

1. Allowing the assembler to prefix-pad instructions in order to avoid having 
to emit a NOP for p2align directives.
2. Allowing the assembler to do other instruction-padding performance 
optimizations to avoid other DSB cacheline limits.

To be concrete, I propose:
".autopad", ".noautopad": allow/disallow the assembler to emit padding via 
inserting a nop or prefix before any instruction, as needed.
".align_branch_boundary [N,] [instruction,]": Enable branch-boundary padding 
(per previous description).

In this scheme, I'd generally expect an ".align_branch_boundary" directive to 
be specified once at the beginning of the file, and ".autopad"/".noautopad" 
directives to be sprinkled throughout the file as required.


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

https://reviews.llvm.org/D70157



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

Reply via email to