[clang] [clang-tools-extra] [llvm] Dont alter cold function alignment unless using Os (PR #72387)

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 20 12:00:24 PST 2023


efriedma-quic wrote:

> Is clang aware of the target's default function alignment?

No?  On x86, the "default" is set by the line `setPrefFunctionAlignment(Align(16));`.  Which, as the name suggests, is supposed to be a preference, not a mandatory minimum.  And it's subject to change in the future if we find that a different number is better on some targets, or for certain functions.

> > there isn't any obvious reason to special-case "cold" functions.
> 
> I'd thought that was clear. Cold implies opt-for-size, which implies align(1)

If there's a relevant ABI rule here, we want to mark it on all functions.  So if, for example, some optimization decides a function is cold, we get the same result.

> If the tweak to the definition of "cold" should be specific to our targets, we can certainly do that.

If there's some relevant ABI rule, clang should compute the required alignment explicitly, and explicitly mark functions with the required alignment.  If that's target-specific, that's fine.  Ideally, it should be controllable by a flag separate from the optimization level.

https://github.com/llvm/llvm-project/pull/72387


More information about the cfe-commits mailing list