[LLVMdev] Making a CopyToReg/CopyFromReg into a zext/sext?
Ryan Taylor
ryta1203 at gmail.com
Tue Jan 27 12:50:53 PST 2015
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>
More information about the llvm-dev
mailing list