[llvm-commits] Major regressions

Christopher Lamb christopher.lamb at gmail.com
Sun Apr 22 02:12:29 PDT 2007


On Apr 22, 2007, at 1:40 AM, Chris Lattner wrote:

>
> On Apr 21, 2007, at 4:28 PM, Christopher Lamb wrote:
>
>>
>> On Apr 21, 2007, at 6:12 PM, Reid Spencer wrote:
>>
>>> On Sat, 2007-04-21 at 18:07 -0500, Christopher Lamb wrote:
>>>> I'm getting a regression after my fixes that's coming from
>>>> getABIAlignment not finding an alignment to use for a <float x1>
>>>> type,
>>>> is this a bug?
>>>
>>> It could be. <float x 1> isn't a useful vector so it probably  
>>> doesn't
>>> have an ABI Alignment. It should, however, default to whatever the
>>> target's alignment is for float. Perhaps that case isn't covered in
>>> TargetData or there's something else wrong with TargetData?
>>>
>>> Did you walk through it in the debugger?
>>
>> Yes. It appears that TargetData doesn't have logic to match the case
>> of vector types smaller than the smallest defined ABI vector type.
>> It's asserting in TargetData::getAlignmentInfo:
>>
>> assert(BestMatchIdx != -1 && "Didn't find alignment info for this
>> datatype!");
>
> Ahh.
>
>> I don't think it has enough information to be able to determine
>> whether or not it's being asked for the alignment of a smaller vector
>> type that could be mapped onto a non-vector type.
>>
>> My feeling is that in this case getAlignmentInfo should return a
>> conservative fallback alignment the same way that's done for  
>> integers.
>
> I think it should fall back to the ABI alignment of the scalar type.
> If a target doesn't have an entry for a vector type, we can assume
> that it will be scalarized.

Here's a patch to do it.
--
Christopher Lamb

-------------- next part --------------
A non-text attachment was scrubbed...
Name: degenerate_vectors.diff
Type: application/octet-stream
Size: 866 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20070422/40b31cef/attachment.obj>
-------------- next part --------------





More information about the llvm-commits mailing list