[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