[PATCH] D75014: [InstrEmitter, SystemZ] Copy Access registers with the correct register class.

Jonas Paulsson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 3 07:46:42 PST 2020


jonpa marked an inline comment as done.
jonpa added inline comments.


================
Comment at: llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp:824
+  // Move CC value from a GR32.
   if (DestReg == SystemZ::CC) {
+    unsigned Opcode =
----------------
uweigand wrote:
> I'm wondering if we need to check (or at least assert) that SrcReg is even a GRX32 here?
The MachineVerifier would catch this with "Illegal physical register for instruction". There are no subregs anymore at this point (after regalloc), so it would be a very strange error. Perhaps an assert that copyPhysReg() is only called with two physreg operands (post-RA) would make sense?

It seems that without the verifier a COPY from $r4d in tls-11.mir does not get caught anywhere.





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

https://reviews.llvm.org/D75014





More information about the llvm-commits mailing list