search for: virtregauxinfo

Displaying 11 results from an estimated 11 matches for "virtregauxinfo".

2013 Nov 08
2
[LLVMdev] [PATCH] CalculateSpillWeights does not need to be a pass
...and in the light of upcoming work on the PBQP register allocator, it was though that CalcSpillWeights does not need to be a pass. This change will enable to customize / tune the spill weight computation depending on the allocator. Update the documentation style while there. I also intend to take VirtRegAuxInfo out of line in a later patch as this is really a helper class for spill weight (re) computation. Cheers, -- Arnaud -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131108/826c63c0/attachment.html> --------...
2013 Jan 09
2
[LLVMdev] LLVM ERROR: ran out of registers during register allocation
Ok, I've found that marking tiny live intervals as not spillable inside VirtRegAuxInfo::CalculateWeightAndHint is not playing nicely with very constrained regclasses, in my case a regclass composed of only one register. As a workaround, instead of marking them as not spillable, I've marked them with a very high spill cost and the regalloc is able to compile the function with good...
2013 Nov 08
0
[LLVMdev] [PATCH] CalculateSpillWeights does not need to be a pass
...upcoming work on the PBQP register allocator, it was though that CalcSpillWeights does not need to be a pass. This change will enable to customize / tune the spill weight computation depending on the allocator. > > Update the documentation style while there. > > I also intend to take VirtRegAuxInfo out of line in a later patch as this is really a helper class for spill weight (re) computation. > > Cheers, > -- > Arnaud > <0001-CalculateSpillWeights-does-not-need-to-be-a-pass.patch> LGTM. Thanks, /jakob
2013 Nov 08
1
[LLVMdev] [PATCH] CalculateSpillWeights does not need to be a pass
...er > allocator, it was though that CalcSpillWeights does not need to be a pass. > This change will enable to customize / tune the spill weight computation > depending on the allocator. > > > > Update the documentation style while there. > > > > I also intend to take VirtRegAuxInfo out of line in a later patch as > this is really a helper class for spill weight (re) computation. > > > > Cheers, > > -- > > Arnaud > > <0001-CalculateSpillWeights-does-not-need-to-be-a-pass.patch> > > LGTM. > > Thanks, > /jakob > > -----...
2013 Jan 09
0
[LLVMdev] LLVM ERROR: ran out of registers during register allocation
On Jan 9, 2013, at 10:46 AM, Borja Ferrer <borja.ferav at gmail.com> wrote: > Ok, I've found that marking tiny live intervals as not spillable inside VirtRegAuxInfo::CalculateWeightAndHint is not playing nicely with very constrained regclasses, in my case a regclass composed of only one register. > As a workaround, instead of marking them as not spillable, I've marked them with a very high spill cost and the regalloc is able to compile the function wit...
2012 Mar 21
2
[LLVMdev] PBQP & CalcSpillWeights
...pPBQPToRegAlloc, a vreg node is either : - a physical register (problem.isPRegOption(vreg, alloc)), - or a spill (problem.isSpillOption(vreg, alloc)) The problem is that pass CalcSpillWeights can 'hint' that it is a poor idea to spill this specific register with : CalcSpillWeights.cpp / VirtRegAuxInfo::CalculateWeightAndHint : // Mark li as unspillable if all live ranges are tiny. if (li.isZeroLength(LIS.getSlotIndexes())) { li.markNotSpillable(); ... This hint makes the register non spillable at all for the spiller (that's the assert above), not just a bad-idea-to-spill-but-fe...
2013 Jan 07
0
[LLVMdev] LLVM ERROR: ran out of registers during register allocation
On Jan 7, 2013, at 4:58 AM, Borja Ferrer <borja.ferav at gmail.com> wrote: > Hello Jakob, > > Did you get a chance to take a look into this, and if not, can you do it when you get some spare time? It's not likely I'll have time to look at this in the near future. I'd recommend you do it yourself. /jakob > 2012/12/19 Borja Ferrer <borja.ferav at gmail.com>
2012 Mar 23
0
[LLVMdev] PBQP & CalcSpillWeights
...ither : >  - a physical register (problem.isPRegOption(vreg, alloc)), >  - or a spill (problem.isSpillOption(vreg, alloc)) > > The problem is that pass CalcSpillWeights can 'hint' that it is a poor > idea to spill this specific register with : > > CalcSpillWeights.cpp / VirtRegAuxInfo::CalculateWeightAndHint : >  // Mark li as unspillable if all live ranges are tiny. >  if (li.isZeroLength(LIS.getSlotIndexes())) { >    li.markNotSpillable(); >    ... > > This hint makes the register non spillable at all for the spiller (that's the > assert above), not ju...
2013 Jan 07
2
[LLVMdev] LLVM ERROR: ran out of registers during register allocation
Hello Jakob, Did you get a chance to take a look into this, and if not, can you do it when you get some spare time? Thanks! 2012/12/19 Borja Ferrer <borja.ferav at gmail.com> > We did something like this back when the register allocator couldn't split >> live ranges. >> > > Yes, I remember the isWinToJoinCrossClass() function, removed here: > >
2012 Sep 18
2
[LLVMdev] liveness assertion problem in llc
...f068) at /work/llvm/trunk/llvm/include/llvm/CodeGen/MachineRegisterInfo.h:514 #7 0x08803f51 in llvm::MachineRegisterInfo::defusechain_iterator<true, true, false>::skipInstruction (this=0xbffff068) at /work/llvm/trunk/llvm/include/llvm/CodeGen/MachineRegisterInfo.h:543 #8 0x0896d5bf in llvm::VirtRegAuxInfo::CalculateWeightAndHint (this=0xbffff0d8, li=...) at /work/llvm/trunk/llvm/lib/CodeGen/CalcSpillWeights.cpp:131 #9 0x0896d22e in llvm::CalculateSpillWeights::runOnMachineFunction (this=0x937f0a8, MF=...) at /work/llvm/trunk/llvm/lib/CodeGen/CalcSpillWeights.cpp:53 #10 0x08847e95 in llvm::MachineFu...
2011 May 06
0
[LLVMdev] Question about linking llvm-mc when porting a new backend
...m::SDValue, unsigned int, llvm::DenseMapInfo<llvm::SDValue>, llvm::DenseMapInfo<unsigned int> >&)in libLLVMSelectionDAG.a(InstrEmitter.cpp.o) llvm::LiveStacks::getOrCreateInterval(int, llvm::TargetRegisterClass const*)in libLLVMCodeGen.a(PreAllocSplitting.cpp.o) llvm::VirtRegAuxInfo::CalculateRegClass(unsigned int)in libLLVMCodeGen.a(CalcSpillWeights.cpp.o) llvm::CoalescerPair::setRegisters(llvm::MachineInstr const*)in libLLVMCodeGen.a(RegisterCoalescer.cpp.o) llvm::CoalescerPair::setRegisters(llvm::MachineInstr const*)in libLLVMCodeGen.a(RegisterCoalescer.cpp.o)...