[LLVMdev] Register pairing in PBQP

Lang Hames lhames at gmail.com
Tue Apr 26 17:06:33 PDT 2011

Hi Jakob,

You're correct: Register pairing is not implemented in PBQP yet.

Can you describe your pairing constraint in more detail? I've seen a few
different kinds of "pairing", and the approach to supporting them can vary.

As a starting point I would look at the PBQPBuilder class and its
derivatives (see include/llvm/CodeGen/RegAllocPBQP.h,
lib/CodeGen/RegAllocPBQP.cpp). You probably need to derive a new PBQPBuilder
and have it add matrices representing the pairing constraints. An overview
of this is given in


On Tue, Apr 26, 2011 at 10:03 PM, Jakob Stengård <jakobste at kth.se> wrote:

> Hi.
> Im currently investigating LLVM's implementation of PBQP as a part of a
> bachelors thesis im doing on register allocation for regular architectures.
> In particullar, im looking at the possibility for improving the spill rate
> of PBQP for a particular DSP architecture, by using register pairing.
> From reading the source code of lib/CodeGen/RegAllocPBQP.cpp  i conclude
> that support for register paring is not yet implemented (correct me if im
> wrong here).
> However this feature was mentioned as a future goal in a slide i found
> (http://llvm.org/devmtg/2009-10/RegisterAllocationFutureWorks.pdf<http://llvm.org/devmtg/2009-10/RegisterAllocationFutureWorks.pdf>
> ).
> So im just wondering what the status on this is.
> Would be interesting from the dev-teams perspective, to get this
> implemented?
> Anny ideas on what would be the best way to do that, in case someone (like
> me) would be interested in doing that?
> Best Regards
> Jakob Stengård.
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110427/b28b9424/attachment.html>

More information about the llvm-dev mailing list