[LLVMdev] DebugFactory
Dan Gohman
gohman at apple.com
Wed Sep 23 13:51:00 PDT 2009
On Sep 22, 2009, at 4:49 PM, Talin wrote:
>
> // Calculate the size of the specified LLVM type.
> Constant * DebugInfoBuilder::getSize(const Type * type) {
> Constant * one = ConstantInt::get(Type::Int32Ty, 1);
> return ConstantExpr::getPtrToInt(
> ConstantExpr::getGetElementPtr(
> ConstantPointerNull::get(PointerType::getUnqual(type)),
> &one, 1), Type::Int32Ty);
> }
>
> Constant * DebugInfoBuilder::getAlignment(const Type * type) {
> // Calculates the alignment of T using "sizeof({i8, T}) - sizeof
> (T)"
> return ConstantExpr::getSub(
> getSize(StructType::get(Type::Int8Ty, type, NULL)),
> getSize(type));
> }
Are ConstantExpr::getAlignOf, getSizeOf, and getOffsetOf what
you're looking for?
Dan
More information about the llvm-dev
mailing list