[LLVMdev] something better than .align for branch targets

Steve King steve at metrokings.com
Wed Jul 1 13:46:10 PDT 2015


> Is there an existing way for a target to express a "near enough"
> semantic for code alignment?
>

After more investigation:

The .align directive supports an optional MaxFillBytes parameter,
which would nicely prevent the over-padding problem.  However,
MachineBlockPlacement cannot use this feature when aligning loops
since targets support getPrefLoopAlignment(), but not
getPrefLoopAlignmentMaxFill().

Does anyone dislike the idea of a new target lowering query
getPrefLoopAlignmentMaxFill()?  This new query would allow
MachineBlockPlacement to specify the align directive's MaxFillBytes
parameter when aligning loops.  Targets could then control
over-padding as they see fit.  If there are no objections, I will
submit a patch.



More information about the llvm-dev mailing list