search for: mappbqptoregalloc

Displaying 10 results from an estimated 10 matches for "mappbqptoregalloc".

2012 Mar 21
2
[LLVMdev] PBQP & CalcSpillWeights
Hi All, I finally had a chance to get back to my pbqp trials, now using the 3.0 release. I still hit the same assert : "Attempting to spill already spilled value." This is triggered because in RegAllocPBQP::mapPBQPToRegAlloc, 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:...
2015 Mar 07
2
[LLVMdev] Open Projects in LLVM
Hello, I have worked on LLVM for my project related to Register Allocation. Bernhard Scholz suggested that Implementing Branch and Bound Heuristic for Reduce N in PBQP register Allocation for LLVM would be to great project to work on. I'm looking forward to implement it in LLVM system. How should i get start about it ? I would also like to know about some of the other projects in LLVM.
2011 Jun 17
0
[LLVMdev] PBQP & register pairing
...int would be welcome. > > The data structure you want to keep your eye on is the set vregsToAlloc to RegAllocPBQP. This set holds the virtual registers which PBQP must allocate for on its next round. Once a virtual register has been spilled it should be erased from this set (see RegAllocPBQP::mapPBQPToRegAlloc), and it should never re-enter it, and thus never be considered again by the PBQP allocator. At a guess it sounds like one of your vregs may be being added to this set a 2nd time, but I'm not sure how that could be happening. Is your backend public? Are you able to share a test case with me? I...
2010 Jan 31
2
[LLVMdev] Crash in PBQP register allocator
...5000e-02) Selected 0 for node 5 (cost = inf) Selected 1 for node 3 (cost = 0.000000e+00) Selected 1 for node 2 (cost = 0.000000e+00) Selected 1 for node 1 (cost = 0.000000e+00) llc: /home/lhames/Projects/llvm/llvm-broken-pbqp/llvm/lib/CodeGen/RegAllocPBQP.cpp:701: bool<unnamed>::PBQPRegAlloc::mapPBQPToRegAlloc(const PBQP::Solution&): Assertion `solution.getCost() != std::numeric_limits<PBQP::PBQPNum>::infinity() && "Invalid (infinite cost) solution for PBQP problem."' failed. The problem is that node 5 is being allocated an infinite cost option (which implies that all its...
2011 Jun 15
2
[LLVMdev] PBQP & register pairing
Attached is a small patch to allow users of the PBQP allocator to optionally insert a custom pass. I believe it can be usefull to other users of the pbqp. I used it to undo some of the coalescer work, and make sure that I have different virtual registers, inserting a copy if necessary, to build a pair. I noticed an unexpected --- to me at least --- behaviour of the allocator. I have some
2012 Mar 23
0
[LLVMdev] PBQP & CalcSpillWeights
...larddegrandmaison at parrot.com> wrote: > > Hi All, > > I finally had a chance to get back to my pbqp trials, now using the 3.0 > release. I still hit the same assert : "Attempting to spill already spilled > value." > > This is triggered because in RegAllocPBQP::mapPBQPToRegAlloc, 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 : > >...
2010 Feb 01
0
[LLVMdev] Crash in PBQP register allocator
...node 5 (cost = inf) > Selected 1 for node 3 (cost = 0.000000e+00) > Selected 1 for node 2 (cost = 0.000000e+00) > Selected 1 for node 1 (cost = 0.000000e+00) > llc: /home/lhames/Projects/llvm/llvm-broken-pbqp/llvm/lib/CodeGen/RegAllocPBQP.cpp:701: > bool<unnamed>::PBQPRegAlloc::mapPBQPToRegAlloc(const PBQP::Solution&): > Assertion `solution.getCost() != > std::numeric_limits<PBQP::PBQPNum>::infinity() && "Invalid (infinite > cost) solution for PBQP problem."' failed. > > The problem is that node 5 is being allocated an infinite cost option &g...
2011 Jun 20
1
[LLVMdev] PBQP & register pairing
...ng. Any hint would be welcome. The data structure you want to keep your eye on is the set vregsToAlloc to RegAllocPBQP. This set holds the virtual registers which PBQP must allocate for on its next round. Once a virtual register has been spilled it should be erased from this set (see RegAllocPBQP::mapPBQPToRegAlloc), and it should never re-enter it, and thus never be considered again by the PBQP allocator. At a guess it sounds like one of your vregs may be being added to this set a 2nd time, but I'm not sure how that could be happening. Is your backend public? Are you able to share a test case with me? I...
2010 Jan 28
0
[LLVMdev] Crash in PBQP register allocator
Hi Lang, I'm surprised about the fact that you omit R1/R2 reductions in some cases. Can you give a more detailed description of the bug (e.g. a PBQP dump)? Best regards, Sebastian Lang Hames wrote: > Hi Sachin, llvm-dev, > > I've just committed a new PBQP solver which, among other things, > should take care of this bug. > > Please let me know how it works out for you.
2010 Jan 26
3
[LLVMdev] Crash in PBQP register allocator
Hi Sachin, llvm-dev, I've just committed a new PBQP solver which, among other things, should take care of this bug. Please let me know how it works out for you. Cheers, Lang. On Tue, Dec 15, 2009 at 5:54 PM, Lang Hames <lhames at gmail.com> wrote: > Hi Sachin, > > Yes. Bernhard Scholz and I have just discussed a fix for this. I hope to > commit it in the next few days. I