lenary added a comment.

I don't quite understand all the details of this patch. I understand reserving 
registers that the compiler would otherwise be using as general-purpose 
registers.
But what do we do about using registers within the calling convention when 
someone says they should be reserved against compiler use? I think you're 
saying that GCC ignores that they should be fixed, and uses them anyway - it 
seems like that would cause hard-to-diagnose errors, for instance if a user 
requests fixed `x8` but requests the use of frame pointers, it seems like that 
should be an error, and yet here it might not be? I think the clang-y approach 
would be to say "you can't fix x8, we're going to use it anyway", at which 
point the "fix x8" option becomes pointless.



================
Comment at: llvm/test/CodeGen/RISCV/reserved-regs.ll:71
+
+; X1-NOT: lw ra,
+; X1-NOT: ld ra,
----------------
These tests aren't going to test what you think they are, or at least aren't 
going to fail when you hope they are, as the allocator will probably choose a0 
for these registers, even if other registers are available (it uses the GPRs in 
a specific order, starting with the first free one, which will usually be a0).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D67185



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

Reply via email to