Displaying 5 results from an estimated 5 matches for "hassubclasseq".
2012 May 14
3
[LLVMdev] getMinimalPhysRegClass
Does anyone understand the purpose of :
TargetRegisterInfo::getMinimalPhysRegClass ???
Why is there the presumption to use the minimal subclass?
For Mips, it would work for me if we changed this to a virtual function
and then
I could override this to have it chose the proper register class based
on the processor.
I want to introduct a different register class for MIPS 16 but don't
want
2012 Jan 26
1
[LLVMdev] getMinimalPhysRegClass
Does anyone understand the purpose of this target inpdendent function?
By adding a new register class that is for MIPS16 but not even
referencing it, the compiler breaks because of this code.
def CPU16Regs : RegisterClass<"Mips", [i32], 32, (add
// Return Values and Arguments
V0, V1, A0, A1, A2, A3,
// Callee save
S0, S1
)>;
I'm trying to understand how the
2013 Jun 25
2
[LLVMdev] Adding a new ARM RegisterClass
I'm looking at an issue where we want a particular pseudo-instruction to
choose from a set of registers that is not included in the existing set of
RegisterClass definitions. More concretely, there is a RegisterClass in
ARMRegisterInfo.td defined as
def rGPR : RegisterClass<"ARM", [i32], 32, (sub GPR, SP, PC)> {
let AltOrders = [(add LR, rGPR), (trunc rGPR, 8)];
let
2011 Aug 16
2
[LLVMdev] Tying an instruction to a specific set of registers
Jim,
Thanks for the hints. Does LLVM allow allocation of the same register across register classes?
For example, in the ARM backend, can an instruction write to R0 when it is part of register class tGPR, but then use R0 in the next instruction as a source register from the rGPR class?
If LLVM can do this, then this will work.
Micah
> -----Original Message-----
> From: Jim Grosbach
2016 Mar 04
2
PHI node to different register class vs TailDuplication
...>getRegClass(SrcReg);
+
+ // If the register class of the PHI src is wider than the PHI def
+ // then we can't just use PHI src instead of PHI def in the cloned
+ // instruction. Instead we insert a copy, copying the PHI src to a
+ // register of the wanted register class.
+ if (!RC->hasSubClassEq(SrcRC)) {
+ unsigned NewDef = MRI->createVirtualRegister(RC);
+
+ BuildMI(*PredBB, PredBB->instr_end(), DebugLoc(),
+ TII->get(TargetOpcode::COPY), NewDef).addReg(SrcReg);
+ SrcReg = NewDef;
+ }
+
LocalVRMap.insert(std::make_pair(DefReg, SrcReg));
Any thoughts on...