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 _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits