[LLVMdev] PR1350 (Vreg subregs) questions
Christopher Lamb
christopher.lamb at gmail.com
Wed Jun 13 10:20:50 PDT 2007
On Jun 13, 2007, at 10:50 AM, Chris Lattner wrote:
> On Tue, 12 Jun 2007, Christopher Lamb wrote:
>>>>>> When should subregs be flattened to actual registers:
>>>>>> AsmPrinter?
>>>>>> Somewhere in LiveIntervals, during RegAlloc?
>>>
>>> This should definitely be done during regalloc.
>>
>> It seems that LiveIntervals will need to be taught about the new
>> form of
>> virtual registers. Hrm. I'm going to try to break this work up as
>> much as
>> possible.
>
> Splitting up the work is good :)
>
>> Also, do you see any problems with using the following class for
>> vregs? It
>> makes it possible to not have to go through and update every call
>> site for a
>> large number of functions.
>>
>> class vreg : public std::pair<unsigned,unsigned> {
>> public:
>> vreg(unsigned f) : std::pair<unsigned,unsigned>(f, 0) {}
>> };
>>
>> If this definition is OK, where should it live? It's needed all
>> over the
>> place...
>
> Where would you use this? It seems that the only place that would
> need it
> is in the DAG schedulers, which turn the dags into a machineinstr
> stream.
> If so, putting it into the scheduler baseclass would make sense.
It gets used in MachineInstrBuilder, MachineInstr, MRegisterInfo, and
ScheduleDAG. Basically any place where a vreg currently gets passed
around by an unsigned needs to accept the pair. In my working copy
I've split it out into it's own header file to reduce extraneous
includes.
> If you do something like this, I'd suggest a trivial value class that
> doesn't derive from std::pair.
By a value class do you mean a subclass of Value or just a class with
no superclass?
--
Christopher Lamb
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20070613/fd30fddc/attachment.html>
More information about the llvm-dev
mailing list