[LLVMdev] MachineMemOperands

David Greene dag at cray.com
Tue Dec 1 13:10:52 PST 2009


On Tuesday 01 December 2009 15:04, Chris Lattner wrote:

> > The size is actually calculated from an EVT nearly everywhere (and
> > where it's not it should be easy to add).  We could just replace the
> > size with the EVT and have more information.
>
> It sounds like you're looking for a property of an instruction, not an
> operand.  If you're looking for vector instructions, that should be
> captured in TargetInstrInfo, not in MachineInstrs/Operands.

Yes, I've written all that support.  But that doesn't cover 
MachineMemOperands.  AFAIK there's no machine-independent way to tell which
instruction operands make up a MachineMemOperand.  And even then, that would
only tell you about the compoenents that make up the address, not the data
itself.  Note that having a machine-independent way to associate 
MachineOperands with MachineMemOperands would also be highly useful, but
that will come later.

It's common to have an instruction that takes both vector and scalar data.
The x86 insert/extract instructions, for example.  Often we'll want to know
which operands are the vector ones and if they come from memory, we need 
that information in the MachineMemOperand.

                                 -Dave



More information about the llvm-dev mailing list