kristof.beyls added a comment.

My understanding is that X8, X16, X17 and X19 cannot be reserved because the 
code generator in places will make use of them.
For example, using X19 as a base register in some cases. X16 and X17 are 
defined by the ABI to potentially be clobbered on function calls & when a 
veneer needs to be inserted by a linker, it does get clobbered. IIRC, some of 
the security mitigations implemented in LLVM also clobber these 2 registers on 
function calls.
I'm not fully sure why X8 cannot be reserved.

In short, I don't think it's a good idea to enable users to reserve these 
registers as the compiler/toolchain/ABI will not respect their request to 
reserve these registers.

It seems your motivation for being able to reserve more registers is to be able 
to more easily write regression test for register allocation.
Are there other ways to achieve that?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D132531/new/

https://reviews.llvm.org/D132531

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to