Ryan Taylor
2015-Jan-27 20:28 UTC
[LLVMdev] Making a CopyToReg/CopyFromReg into a zext/sext?
Thanks for getting back to me. So those nodes record if the type has already been expanded from a narrower type. Can you elaborate how I could use these to help? Again, I'm pretty unfamiliar with the SDNodes. Thanks. On Tue, Jan 27, 2015 at 3:22 PM, Matt Arsenault <Matthew.Arsenault at amd.com> wrote:> On 01/27/2015 12:16 PM, Ryan Taylor wrote: > > I have a CopyToReg that is copying from different size types, what's the > best way to change that to a zext or sext node based on signed or unsigned? > > I'm fairly unfamiliar with SelectionDAG process (outside of the docs on > llvm website). > > It seems like I should be able to insert a custom hook using the > register class to identify the type, potentially in ISelDAGToDag.cpp or is > there a better place for this to be done? > > Thanks. > > > It sounds to me like you are looking for the AssertSext / AssertZext nodes > > -Matt >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150127/5e0b18d4/attachment.html>
Matt Arsenault
2015-Jan-27 20:38 UTC
[LLVMdev] Making a CopyToReg/CopyFromReg into a zext/sext?
On 01/27/2015 12:28 PM, Ryan Taylor wrote:> Thanks for getting back to me. > > So those nodes record if the type has already been expanded from a > narrower type. Can you elaborate how I could use these to help? Again, > I'm pretty unfamiliar with the SDNodes. > > Thanks.What is the problem you are trying to solve? These should allow SimplifyDemandedBits type optimizations understand that your copy implicitly extended the source> > On Tue, Jan 27, 2015 at 3:22 PM, Matt Arsenault > <Matthew.Arsenault at amd.com <mailto:Matthew.Arsenault at amd.com>> wrote: > > On 01/27/2015 12:16 PM, Ryan Taylor wrote: >> I have a CopyToReg that is copying from different size types, >> what's the best way to change that to a zext or sext node based >> on signed or unsigned? >> >> I'm fairly unfamiliar with SelectionDAG process (outside of the >> docs on llvm website). >> >> It seems like I should be able to insert a custom hook using the >> register class to identify the type, potentially in >> ISelDAGToDag.cpp or is there a better place for this to be done? >> >> Thanks. >> > > It sounds to me like you are looking for the AssertSext / > AssertZext nodes > > -Matt > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150127/7888afe3/attachment.html>
Ryan Taylor
2015-Jan-27 20:50 UTC
[LLVMdev] Making a CopyToReg/CopyFromReg into a zext/sext?
I have a CopyToReg that is moving a 16bit reg to a 32bit reg, it's currently being mapped out as a simple mov (not an ext), I would like to change that to an ext. It seemed that the SelDAG was the easiest and cleanest way to do this. I can change the mov to an extension MI in the .td file; however, I can't tell at that point whether it's a sext or a zext, so it seemed the SelDAG was the better place to fix this. Thanks. On Tue, Jan 27, 2015 at 3:38 PM, Matt Arsenault <Matthew.Arsenault at amd.com> wrote:> On 01/27/2015 12:28 PM, Ryan Taylor wrote: > > Thanks for getting back to me. > > So those nodes record if the type has already been expanded from a > narrower type. Can you elaborate how I could use these to help? Again, I'm > pretty unfamiliar with the SDNodes. > > Thanks. > > What is the problem you are trying to solve? These should allow > SimplifyDemandedBits type optimizations understand that your copy > implicitly extended the source > > > > > On Tue, Jan 27, 2015 at 3:22 PM, Matt Arsenault <Matthew.Arsenault at amd.com > > wrote: > >> On 01/27/2015 12:16 PM, Ryan Taylor wrote: >> >> I have a CopyToReg that is copying from different size types, what's >> the best way to change that to a zext or sext node based on signed or >> unsigned? >> >> I'm fairly unfamiliar with SelectionDAG process (outside of the docs on >> llvm website). >> >> It seems like I should be able to insert a custom hook using the >> register class to identify the type, potentially in ISelDAGToDag.cpp or is >> there a better place for this to be done? >> >> Thanks. >> >> >> It sounds to me like you are looking for the AssertSext / AssertZext >> nodes >> >> -Matt >> > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150127/67f2b164/attachment.html>