efriedma added inline comments.

================
Comment at: llvm/lib/Target/AArch64/SVEInstrFormats.td:5333
+  // We need a layer of indirection because early machine code passes balk at
+  // physical register (i.e. FFR) uses that have no previous definition.
+  let hasSideEffects = 1, hasNoSchedulingInfo = 1, mayLoad = 1 in {
----------------
This is depending on hasSideEffects to preserve the correct ordering with 
instructions that read/write FFR?  That probably works.  I guess the 
alternative is to insert an IMPLICIT_DEF of FFR in the entry block of each 
function.

What are the calling convention rules for FFR?  Is it callee-save?  If not, we 
might need to do some work to make FFR reads/writes do something sane across 
calls inserted by the compiler.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D71698



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

Reply via email to