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

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 16 18:08:13 PST 2019


MaskRay added a comment.

In D70157#1787139 <https://reviews.llvm.org/D70157#1787139>, @reames wrote:

> Here are the minutes from our phone call a few minutes ago.
>
> Attendees: Andy Kaylor, Craig Topper, Annita Zhang, Tom Stellard, Chandler Carruth, Fedor Sergeev, Philip Reames, Yuanake Luo


Thanks for organization the meeting and making the summary.

> Stawman syntax proposal
> 
> .align_branch_boundary disable/default
>  .align_branch_boundary enable N, instructions (fused, jcc, jmp, etc..)
> 
> ...
> 
> Push/Pop semantics were suggested at one point, but were thought to be non-idiomatic?

There is a precedant: .pushsection/.popsection (MCStreamer::SectionStack). With .push_align_branch/.pop_align_branch, we probably don't need the 'switch-to-default' action.

I don't know how likely we may ever need nested states (e.g. an `.include` directive inside an .align_branch region where the included file has own idea about branch alignment), but .push/.pop does not seem to be more complex than disable/enable/default.

I confirm that the following 4 commits have been to the binutils-gdb repository (https://sourceware.org/ml/binutils/2019-12/msg00138.html https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=e379e5f385f874adb0b414f917adb1fc50e20de9).

  gas: Add md_generic_table_relax_frag
  i386: Align branches within a fixed boundary
  i386: Add -mbranches-within-32B-boundaries
  i386: Add tests for -malign-branch-boundary and -malign-branch


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

https://reviews.llvm.org/D70157





More information about the llvm-commits mailing list