[llvm-dev] Misuse of MRI.getRegClass in multiple target's FastIsel code
Craig Topper via llvm-dev
llvm-dev at lists.llvm.org
Fri Sep 23 08:20:29 PDT 2016
This code or subtle variations of it appears in multiple targets. It tries
to convert from a register to a register class using getRegClass, but
getRegClass is really supposed to take a register class enum value and get
the register class object for it. It doesn't convert a register to a class.
In fact there's not always a single or canonical class for a given register.
What is the right way to do this?
unsigned SrcReg = Reg + VA.getValNo();
unsigned DestReg = VA.getLocReg();
// Avoid a cross-class copy. This is very unlikely.
if (!MRI.getRegClass(SrcReg)->contains(DestReg))
return false;
~Craig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160923/3927db50/attachment.html>
More information about the llvm-dev
mailing list