tree 802dde382a01b909ee5571573823d753d0aee20e
parent 829395591ebf248a9fb57dbed6a8383db4ba6e00
author Daniel Paoliello <danpao@microsoft.com> 1746827798 -0700
committer GitHub <noreply@github.com> 1746827798 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoHnoWCRC1aQ7uu5UhlAAAeLQQAHJB1DzIBQnRE0OUzzN6WMeT
 HhGqDMXzCFtgfl+HboJtlGcNI0AGeEZlSJKYmV9K/3AXA5SYoxo+VC8xFJyi7wQB
 WSrhl6hdOT2bbRY+YRiaIo2ncyInOn4jF63j5WWscREFBY0cTJcfxD4Mc4fXNELW
 NWFSt9VbC14XLZKPifjCpopJSJy5mjZTxs7btJFN/ewoDU3smd4EXH3s07cFJl8U
 oQizKMHJuftKMGrwdOjTKRpP+jXDhPOEoi20oYQ02cAH6DKBi4Ve4Xtj7Fq18cz1
 dHmSQP1EzwIy/AcmpJ1bK1nreqi7C1W+v4kNvH6M6F+Re9CW9ABSwN7mF7FXh4Y+
 VXMIwBfiS2AxQvl1qqCsHmnagVtgVHLRIDIHlSRmzxkLgEbWeoJk7Ar3sRzeCRQ/
 VMIoz8UWBx8FdHGgIEPbE0cCuBUGKM1rUwcAzECIDXS0hgsqHyeWrJ4j5jOfIw2l
 nT/PpMoVaIZ5pOJSvO+hakx60KAEvp+URk4cbZaFuaqickVj1QQhyhJP2GDLt54p
 20Wx/rXA6zLREgwPvSbtuM+zffBnaqnpxx7j42wh3BtPfeoPzfCO1Ju72Rr9civ0
 D7rq/5fvKQFdocQ2QLUCJLO3agxJmykvXScHVzelcHKcIaRZRJOX2f7ycwQBUDZk
 JNQ8d+LrtFM4YV1okmOO
 =aebj
 -----END PGP SIGNATURE-----
 

[aarch64][x86][win] Add compiler support for MSVC's /funcoverride flag (Windows kernel loader replaceable functions) (#125320)

Adds support for MSVC's undocumented `/funcoverride` flag, which marks
functions as being replaceable by the Windows kernel loader. This is
used to allow functions to be upgraded depending on the capabilities of
the current processor (e.g., the kernel can be built with the naive
implementation of a function, but that function can be replaced at boot
with one that uses SIMD instructions if the processor supports them).

For each marked function we need to generate:
* An undefined symbol named `<name>_$fo$`.
* A defined symbol `<name>_$fo_default$` that points to the `.data`
section (anywhere in the data section, it is assumed to be zero sized).
* An `/ALTERNATENAME` linker directive that points from `<name>_$fo$` to
`<name>_$fo_default$`.

This is used by the MSVC linker to generate the appropriate metadata in
the Dynamic Value Relocation Table.

Marked function must never be inlined (otherwise those inline sites
can't be replaced).

Note that I've chosen to implement this in AsmPrinter as there was no
way to create a `GlobalVariable` for `<name>_$fo$` that would result in
a symbol being emitted (as nothing consumes it and it has no
initializer). I tried to have `llvm.used` and `llvm.compiler.used` point
to it, but this didn't help.

Within LLVM I referred to this feature as "loader replaceable" as
"function override" already has a different meaning to C++ developers...

I also took the opportunity to extract the feature symbol generation
code used by both AArch64 and X86 into a common function in AsmPrinter.