[llvm-commits] Major regressions

Chris Lattner clattner at apple.com
Sat Apr 21 23:40:40 PDT 2007


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.

-Chris 



More information about the llvm-commits mailing list