comparison gen/classes.cpp @ 1210:3d4581761b4c

Add some alignment info where LLVM might otherwise be more pessimistic. In particular, %.nest_arg is always aligned even though it's bitcast from i8*. Pointers in vtables are also guaranteed to be stored at aligned addresses.
author Frits van Bommel <fvbommel wxs.nl>
date Sun, 12 Apr 2009 21:56:43 +0200
parents 83d3b25c2213
children 79758fd2f48a
comparison
equal deleted inserted replaced
1209:8699c450a1a0 1210:3d4581761b4c
1329 // load vtbl ptr 1329 // load vtbl ptr
1330 funcval = DtoLoad(funcval); 1330 funcval = DtoLoad(funcval);
1331 // index vtbl 1331 // index vtbl
1332 funcval = DtoGEPi(funcval, 0, fdecl->vtblIndex, fdecl->toChars()); 1332 funcval = DtoGEPi(funcval, 0, fdecl->vtblIndex, fdecl->toChars());
1333 // load funcptr 1333 // load funcptr
1334 funcval = DtoLoad(funcval); 1334 funcval = DtoAlignedLoad(funcval);
1335 1335
1336 if (Logger::enabled()) 1336 if (Logger::enabled())
1337 Logger::cout() << "funcval: " << *funcval << '\n'; 1337 Logger::cout() << "funcval: " << *funcval << '\n';
1338 1338
1339 // cast to final funcptr type 1339 // cast to final funcptr type