jitlayers: Use GlobalISel on AArch64 at -O0/-O1#61758
Conversation
GlobalISel is LLVM's modern instruction selector that is designed to replace both FastISel and SelectionDAG. On AArch64, it is mature and enabled by default at -O0 in upstream LLVM. This enables GlobalISel with fallback mode on AArch64, which provides faster instruction selection than SelectionDAG while maintaining correctness by falling back to SelectionDAG for unsupported patterns. Note: This requires RemoveJuliaAddrspacesPass to run before codegen, which is already the case in the current pipeline (see pipeline.cpp comment about GlobalISel not liking Julia's address spaces). Co-Authored-By: Claude <noreply@anthropic.com>
|
@xal-0 I think this fix is in-line with the reported issue so I'll merge. Post merge review would still be appreciated. Thanks |
|
I just wanted to ask what does clang do and that we should mostly mirror it. If rust does this then I guess it's also fine |
|
Claude: Looking at LLVM's static cl::opt<int> EnableGlobalISelAtO(
"aarch64-enable-global-isel-at-O", cl::Hidden,
cl::desc("Enable GlobalISel at or below an opt level (-1 to disable)"),
cl::init(0));with the gate Given the fallback mode ( |
|
It would be great if we could run an aarch64 pkgeval before and after this change, but I understand that's quite manual and time consuming |
|
I don't think we actually have a way to run aarch64 pkgeval. |
|
We have done it once at least. @maleadt did it. Not sure where the results are |
|
I think it's this? https://github.com/JuliaCI/NanosoldierReports/blob/9b7d04883c4e1ea8f4c4b9953fadc81e7362bcb7/pkgeval/by_hash/5e9a32e_vs_5e9a32e/report.md Not sure how to get github to render the md |
|
It renders as a gist for me https://gist.github.com/IanButterworth/85ba4e9d67e44cb3260de7b316291007 |
|
Yeah it's a pain. Also, the machine in question is used for Base CI now, so it's not available anymore for a full-system run (and running under qemu introduces plenty of issues with several packages). |
JuliaLang#60339 was auto-closed when JuliaLang#59950 merged and can't be reopened. Co-authored-by: Claude <noreply@anthropic.com>
JuliaLang#60339 was auto-closed when JuliaLang#59950 merged and can't be reopened. Co-authored-by: Claude <noreply@anthropic.com>
#60339 was auto-closed when #59950 merged and can't be reopened.