[llvm-commits] Major regressions

Christopher Lamb christopher.lamb at gmail.com
Sat Apr 21 16:28:51 PDT 2007


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!");

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.

--
Christopher Lamb






More information about the llvm-commits mailing list