[PATCH] D76705: [SystemZ] Improve foldMemoryOperandImpl: vec->FP conversions

Ulrich Weigand via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 28 08:34:14 PDT 2020


uweigand added a comment.

Looks good to me now, just one cosmetic comment inline.

And also a question about this:

> LIS->getRegUnit() will compute the LiveInterval for CC. This is now needed in two places so it was moved to the top of the function and so always called (should not be a compile time problem). Because of this, the kill flags on CC in int-cmp-56.mir are removed (which seems to always be done during regalloc).

I don't think I understand this -- looking at the code in question, CC does appear to be killed in that instruction.  Is this not right?   If it is, why does recomputing live intervals remove the flag?



================
Comment at: llvm/lib/Target/SystemZ/SystemZInstrFormats.td:2923
+              !subst("VR", "FP", !cast<string>(tr1.op));
+  let OpType = "reg";
 }
----------------
So it is a bit weird that the vec->fp renaming is done here for Unary and Compare, but is not done (and instead done in the reverse direction by the MemFold pseudos) for Binary and Ternary.  It would be nicer if this were symmetric.


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

https://reviews.llvm.org/D76705





More information about the llvm-commits mailing list