[PATCH] D80163: [X86][VARARG] Avoid spilling xmm registers for va_start.

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 14 20:40:41 PDT 2020


craig.topper added inline comments.


================
Comment at: llvm/lib/Target/X86/X86ExpandPseudo.cpp:531
+
+    GuardedBlock->addLiveIn(
+        SaveVarargXmmRegsInstr->getOperand(OpndIdx).getReg());
----------------
Why do we only add them ass liveins this late? Shouldn't they have been livein when the block was created in the custom inserter?


================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:31654
+
+  for (unsigned OpndIdx = 3, RegIdx = 0;
+       OpndIdx + 1 < SrcPseudoInstr.getNumOperands(); OpndIdx++, RegIdx++)
----------------
Is RegIdx used here?


================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:31657
+    MIB.addReg(SrcPseudoInstr.getOperand(OpndIdx).getReg(),
+               RegState::InternalRead);
+
----------------
I'm not familiar with InternalRead. The documentation says it means it was defined by the same instruction. Is that case here?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D80163



More information about the llvm-commits mailing list