On Aug 24, 2009, at 2:55 PM, Fariborz Jahanian wrote: > Author: fjahanian > Date: Mon Aug 24 16:55:06 2009 > New Revision: 79947 > > URL: http://llvm.org/viewvc/llvm-project?rev=79947&view=rev > Log: > Remove ivarlayout bitmap optimization, instead if all zeros, > put out the bitmap when all objects are scanned.
Thanks Fariborz, if this optimization is going to be illegal, the code should just be removed instead of #if 0'd out. -Chris > > Added: > cfe/trunk/test/CodeGenObjC/ivar-layout-no-optimize.m > Modified: > cfe/trunk/lib/CodeGen/CGObjCMac.cpp > > Modified: cfe/trunk/lib/CodeGen/CGObjCMac.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCMac.cpp?rev=79947&r1=79946&r2=79947&view=diff > > = > = > = > = > = > = > = > = > ====================================================================== > --- cfe/trunk/lib/CodeGen/CGObjCMac.cpp (original) > +++ cfe/trunk/lib/CodeGen/CGObjCMac.cpp Mon Aug 24 16:55:06 2009 > @@ -3354,11 +3354,13 @@ > printf("0x%x%s", s[i], s[i] != 0 ? ", " : ""); > printf("\n"); > } > - > +// Turn off this optimization. > +#if 0 > // if ivar_layout bitmap is all 1 bits (nothing skipped) then use > NULL as > // final layout. > if (ForStrongLayout && !BytesSkipped) > return llvm::Constant::getNullValue(PtrTy); > +#endif > llvm::GlobalVariable * Entry = > CreateMetadataVar("\01L_OBJC_CLASS_NAME_", > llvm::ConstantArray::get(VMContext, > BitMap.c_str()), > > Added: cfe/trunk/test/CodeGenObjC/ivar-layout-no-optimize.m > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/ivar-layout-no-optimize.m?rev=79947&view=auto > > = > = > = > = > = > = > = > = > ====================================================================== > --- cfe/trunk/test/CodeGenObjC/ivar-layout-no-optimize.m (added) > +++ cfe/trunk/test/CodeGenObjC/ivar-layout-no-optimize.m Mon Aug 24 > 16:55:06 2009 > @@ -0,0 +1,18 @@ > +// RUN: clang-cc -fobjc-gc -triple x86_64-apple-darwin -O0 -S %s -o > %t-64.s && > +// RUN: FileCheck -check-prefix LP64 --input-file=%t-64.s %s && > +// RUN: true > + > +...@interface NSObject { > + id isa; > +} > +...@end > + > +...@interface AllPointers : NSObject { > + id foo; > + void *__strong bar; NSObject *bletch;} > +...@end > +...@implementation AllPointers > +...@end > + > +// CHECK-LP64: L_OBJC_CLASS_NAME_6: > +// CHECK-LP64-NEXT: .asciz "\004" > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
