[LLVMdev] Rework of Vector/Scalar Classification

Chris Lattner clattner at apple.com
Tue Dec 8 11:23:42 PST 2009


On Dec 4, 2009, at 2:44 PM, David Greene wrote:

> Here's a reworked patch to mark instructions and operands as vector  
> or scalar.
> It uses TableGen to infer the flags from types, allowing the user to  
> override
> with a "let isVector = 0" clause.
>
> I decided to forego classifying MachineMemOperands for now in the  
> interests of
> getting this piece in.  I still think we should add type information  
> to
> MachineMemOperands.  Why throw away perfectly good information we  
> have at
> the time they're created?

Your diff isn't clean and won't apply to mainline, you have some  
previously committed changes, like the extraneous #include of  
MachineMemOperand.h.

More significantly, as I mentioned before, I don't think this is a  
great way to go.  For MachineOperands on X86, you either have a  
register operand (which is obvious whether it is vector or not) or you  
have a collection of addressing mode stuff, which is decomposed and  
"not an operand".

What is the expected use case for "vector" operands that are not  
registers?  What do you plan to use this information for?

-Chris





More information about the llvm-dev mailing list