[llvm-commits] [PATCH] Fix bugs in promotion code for CTPOP and fiends

Jakob Stoklund Olesen stoklund at 2pi.dk
Sun Jul 12 10:33:50 PDT 2009


On 12/07/2009, at 19.23, Eli Friedman wrote:

> On Sun, Jul 12, 2009 at 6:26 AM, Jakob Stoklund  
> Olesen<stoklund at 2pi.dk> wrote:
>> SelectionDAGLegalize::PromoteNode() has code to promote CTPOP,  
>> CTLZ, and
>> CTTZ operations. I don't think that code has ever been used, it  
>> contains
>> some trivial bugs in the value types used.
>>
>> The attached patch fixes these issues, so the operation is  
>> performed as NVT,
>> and then truncated back to OVT.
>>
>> The blackfin processor has a CTPOP instruction for i32 registers  
>> only. The
>> promotion code is needed to support CTPOP for i16 registers as well.
>>
>> Please review before I commit.
>
> Hmm... it's possible I introduced some bugs while I was refactoring
> the relevant code.

Nope, the same bugs were there before your refactoring.

>  In any case, looks fine.  (I would suggest adding
> a testcase, but I can't think of any existing target that needs this
> kind of promotion.

Me neither. I will soon be submitting a blackfin back-end that uses  
this code. Testcases will be included.

/jakob




More information about the llvm-commits mailing list