[llvm-dev] Misuse of MRI.getRegClass in multiple target's FastIsel code (original) (raw)
Krzysztof Parzyszek via llvm-dev llvm-dev at lists.llvm.org
Fri Sep 23 08:30:01 PDT 2016
- Previous message: [llvm-dev] Misuse of MRI.getRegClass in multiple target's FastIsel code
- Next message: [llvm-dev] Misuse of MRI.getRegClass in multiple target's FastIsel code
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
MachineRegisterInfo::getRegClass does take a virtual register and returns the TargetRegisterClass of that register. You're thinking about TargetRegisterInfo::getRegClass.
-Krzysztof
On 9/23/2016 10:20 AM, Craig Topper via llvm-dev wrote: > 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 >>> _________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
- Previous message: [llvm-dev] Misuse of MRI.getRegClass in multiple target's FastIsel code
- Next message: [llvm-dev] Misuse of MRI.getRegClass in multiple target's FastIsel code
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]