> > So you have a i16 register class which makes the type legal. You can > make loads and stores legal (can you?). But you will have to custom > lower all other i16 operations. This will work, but it requires a lot > of target specific code.True. If we add the i16 reg class we will need to write a lot of target specific code. To avoid that our idea was not to tell the legalizer about the i16 regclass and let it expand everything but ignore the pointers. - Sanjiv> > > > > > > > > > > >> Ciao, > >> > >> Duncan. > > _______________________________________________ > > LLVM Developers mailing list > > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
On Oct 2, 2008, at 2:01 AM, sanjiv gupta wrote:> >> >> So you have a i16 register class which makes the type legal. You can >> make loads and stores legal (can you?). But you will have to custom >> lower all other i16 operations. This will work, but it requires a lot >> of target specific code. > > True. If we add the i16 reg class we will need to write a lot of > target specific code. > To avoid that our idea was not to tell the legalizer about the i16 > regclass and let it expand everything but ignore the pointers.You can try just marking all i16 operations, other than load and store, as "expand". Would that work? Evan> > > - Sanjiv > >>> >>> >>> >>> >>> >>>> Ciao, >>>> >>>> Duncan. >>> _______________________________________________ >>> LLVM Developers mailing list >>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
On Thu, Oct 2, 2008 at 7:34 AM, Evan Cheng <evan.cheng at apple.com> wrote:> > On Oct 2, 2008, at 2:01 AM, sanjiv gupta wrote: > >> >>> >>> So you have a i16 register class which makes the type legal. You can >>> make loads and stores legal (can you?). But you will have to custom >>> lower all other i16 operations. This will work, but it requires a lot >>> of target specific code. >> >> True. If we add the i16 reg class we will need to write a lot of >> target specific code. >> To avoid that our idea was not to tell the legalizer about the i16 >> regclass and let it expand everything but ignore the pointers. > > You can try just marking all i16 operations, other than load and > store, as "expand". Would that work?Won't work; LLVM expects at least some basic operations, like add, to be legal in legal register types. -Eli