[LLVMdev] default operation action

Tom Stellard tom at stellard.net
Fri Dec 5 09:21:54 PST 2014

On Fri, Dec 05, 2014 at 12:00:41PM -0500, kewuzhang wrote:
> Hi Guys, 
> I noticed that the operation actions( promote/expand/custom) are set per operation basis.
> Wondering if we can set it up globally?
> For example,  I have native supported 32 bits registers,  to handle  8 bits value operations, I want to do promote.
> and to support 64 bit operations, I want to expand.

This will happen automatically if you don't declare i8 as a legal type.
Do you have something like addRegisterClass(MVT::i8, SomeRegClass) in
your TargetLowering constructor?  If so, then remove it and see what


> If I can set up the operation actions for the same type globally, then I can avoid to list all the operations with the same action . 
> like
> // expand type MVT::i64 to MVT::i32 for all the operations
>  instead of  
>> 	setOperationAction( ISD::ADD,  MVT::i64, Expand);
> 	setOperationAction( ISD::SUB,  MVT::i64, Expand);
> 	setOperationAction( ISD::MUL,  MVT::i64, Expand);
> …..
>> Or LLVM is smart enough to do it buy default?
> best
> kevin
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

More information about the llvm-dev mailing list