[llvm-commits] TargetData support for alignment of degenerate vectors

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


This patch was buried at the end of the discussion...

--
Christopher Lamb

Begin forwarded message:

> From: Christopher Lamb <christopher.lamb at gmail.com>
> Date: April 22, 2007 4:12:29 AM CDT
> To: CVS Commit Messages for LLVM repository <llvm-commits at cs.uiuc.edu>
> Subject: Re: [llvm-commits] Major regressions
>
> 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 --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20070422/be036df9/attachment.html>
-------------- 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/be036df9/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20070422/be036df9/attachment-0001.html>


More information about the llvm-commits mailing list