Sanjiv Gupta
2008-Feb-28 14:31 UTC
[LLVMdev] expanding i16 operations in presence of an i16 regclass.
Reframing and Reposting my earlier query: My target has 16-bit registers for indirect address of data. All other registers are 8-bit. Therefore I have added regclasses for i8 and i16 types. All arithmetic operations (including pointer arithmetic ) are 8-bit operations. The problem is that LLVM does not expand i16 operations to i8 operations in presence of i16 regclass. What is the best way to tackle this? Do I need to custom lower arithmetic operations during Legalize using LowerOperation ( )? - Sanjiv -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080228/4a19316a/attachment.html>
Evan Cheng
2008-Feb-29 18:06 UTC
[LLVMdev] expanding i16 operations in presence of an i16 regclass.
On Feb 28, 2008, at 6:31 AM, Sanjiv Gupta wrote:> Reframing and Reposting my earlier query: > > My target has 16-bit registers for indirect address of data. > All other registers are 8-bit. > > Therefore I have added regclasses for i8 and i16 types. > > All arithmetic operations (including pointer arithmetic ) are 8-bit > operations. > > The problem is that LLVM does not expand i16 operations to i8 > operations in presence of i16 regclass. > > What is the best way to tackle this? > > Do I need to custom lower arithmetic operations during Legalize > using LowerOperation ( )?What happens if you mark i16 arithmetic operations expand? i.e. setOperationAction(ISD::ADD, MVT::i16, Expand); Evan> > - Sanjiv > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev