[PATCH] D67185: [RISCV] Add support for -ffixed-xX flags

Simon Cook via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 23 05:47:08 PDT 2019


simoncook added a comment.

In D67185#1718459 <https://reviews.llvm.org/D67185#1718459>, @luismarques wrote:

> @simoncook: your commit doesn't include handling the case of TLS lowering when `-ffixed-x4` is used.


I looked at this, and did start writing the patch that covers the use of TP/X4 for TLS lowering, but didn't push it because it doesn't match the rest of the the cases I error on here. As it stands, what landed produces errors whenever a reserved register is //modified//, but not when they are read (so in for example the argument case you can use incoming arguments, but not lower calls to functions that need arguments.

For TLS I believe we would only be consuming X4, so erroring here would be inconsistent. I don't necessarily think producing an error whenever the compiler wishes to read a particular register is useful, for inlineasm there's no way to verify the validity of reading a particular register, but I don't think we can express that to the backend well anyway. I can work on a follow-up error/warn on all the reads case if we think that's of value, but as far as the intended purpose of stopping the compiler clobbering reserved registers, I don't think there's anything needed in that case.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D67185





More information about the llvm-commits mailing list