[lld] [lld] [MinGW] Support targeting ARM64EC (PR #78911)

Martin Storsjö via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 22 02:07:08 PST 2024


mstorsjo wrote:

I think this looks good, code wise, and it does have tests, so that's good.

I'd like to explicitly defer merging it for a couple days though, as 18.x is being branched on Tuesday. I think it's best to leave this change out of this release round, so we have another 6 months before freezing the naming harder, in case we have second thoughts on it.

> 'arm64ecpe' was chosen arbitrarily as gcc MinGW doesn't provide EC support.

FWIW, it can still be good to keep them in mind even if they don't support it yet.

We settled on `arm64pe` as emulation name for this target in Clang/LLD in 2017, in 31cac7a67c58d0d5e7615089ead35a3ab24ed508 and 894dbbe8eb0e3d8fc7d8746a76d2380f0c2b6c0f. Recently (2022-2023), binutils did start to get support for regular aarch64 on Windows. But even despite the prior art on the area, they couldn't accept `arm64pe` as name for it, it had to be `aarch64pe`. They did accept adding `arm64pe` as an alias though, see https://github.com/bminor/binutils-gdb/commit/c60b3806799abf1d7f6cf5108a1b0e733a950b13 and https://github.com/bminor/binutils-gdb/commit/beb6b61d1e648df177146d5e7a9a10c21714e73d, and https://sourceware.org/pipermail/binutils/2023-January/125435.html, https://sourceware.org/pipermail/binutils/2023-January/125437.html and more in that thread.

But this particular feature here is normally called `arm64ec`, so I'm not really sure what's the best way to go - keeping it `arm64ec` and risk yet more divergence if binutils ever wants to implement the same, or preemptively try to go to `aarch64ecpe`?

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


More information about the llvm-commits mailing list