On Jan 11, 2007, at 11:10 PM, Reid Spencer wrote: > Now that the arbitrary bit-width integers feature has been committed, > there is yet again some adjustment for llvm-gcc. This cumulative patch > contains my previous two today and should cleanly apply to r247 of the > mirror. To see what changed in this patch, run diff on this patch and > the last one I sent. Its not much.
I committed: Index: llvm-convert.cpp =================================================================== --- llvm-convert.cpp (revision 122351) +++ llvm-convert.cpp (working copy) @@ -3322,12 +3322,14 @@ const char *I64Name,Function *&I64Cache){ const char *Name; Function **FCache; - switch (InVal->getType()->getTypeID()) { + const IntegerType *ITy = cast<IntegerType>(InVal->getType()); + + switch (ITy->getBitWidth()) { default: assert(0 && "Unknown Integer type!"); - case Type::Int8TyID: Name = I8Name; FCache = &I8Cache ; break; - case Type::Int16TyID: Name = I16Name; FCache = &I16Cache; break; - case Type::Int32TyID: Name = I32Name; FCache = &I32Cache; break; - case Type::Int64TyID: Name = I64Name; FCache = &I64Cache; break; + case 8 : Name = I8Name; FCache = &I8Cache ; break; + case 16: Name = I16Name; FCache = &I16Cache; break; + case 32: Name = I32Name; FCache = &I32Cache; break; + case 64: Name = I64Name; FCache = &I64Cache; break; } if (*FCache == 0) @@ -4048,7 +4050,8 @@ // like "struct X{ unsigned long long x:50; unsigned y:2; }" when accessing // y. We want to access the field as a ulong, not as a uint with an offset. if (LLVMFieldTy->isInteger() && - LLVMFieldTy->getPrimitiveSize() > FieldTy->getPrimitiveSize()) + LLVMFieldTy->getPrimitiveSizeInBits() > + FieldTy->getPrimitiveSizeInBits()) FieldTy = LLVMFieldTy; // We are now loading/storing through a casted pointer type, whose Your generalization to support variable int types wouldn't work anyway, so I just switch on valid widths. -Chris _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits