[LLVMdev] Emulating an infinite register file in the backend

nkavv at physics.auth.gr nkavv at physics.auth.gr
Tue Feb 12 00:33:35 PST 2013


Hi Justin,

> The original PTX back-end just didn't perform register allocation.  All
> registers emitted in the assembly were virtual registers, mapped to a
> consecutive range.  E.g., %vreg7, %vreg13, and %vreg72 might be emitted as
> %r0, %r1, %r2.

OK, I see.

>> I'm (just starting) implementing an LLVM target that bares some
>> similarities to PTX. One of these is the notion of infinite registers,
>> since my target too is a kind of virtual/universal machine.
>>
>
> It's a bit of an uphill battle since there are places in LLVM that make
> assumptions about targeting a "real" architecture, to varying degrees.  One
> thing to keep in mind is that the PTX back-end from 3.1 may be a better
> example to use than the NVPTX back-end in 3.2 and TOT.  The original PTX
> back-end supported less (and is therefore a bit simpler), and it also
> doesn't suffer from as much backwards-compatibility cruft.  NVPTX has
> evolved over many LLVM revisions, and sometimes uses old techniques.  I'm
> working on getting it up to date.

Are you going to re-introduce the PTX backend in LLVM 3.3? I will  
certainly check PTX in LLVM 3.1 in order to draw some comparisons.


Best regards,
Nikolaos Kavvadias






More information about the llvm-dev mailing list