[LLVMdev] DebugFactory
Talin
viridia at gmail.com
Thu Oct 1 20:34:34 PDT 2009
Here is a patch that does just that.
On Wed, Sep 23, 2009 at 3:38 PM, Devang Patel <devang.patel at gmail.com>wrote:
> On Wed, Sep 23, 2009 at 2:27 PM, Talin <viridia at gmail.com> wrote:
> > On Wed, Sep 23, 2009 at 1:51 PM, Dan Gohman <gohman at apple.com> wrote:
> >>
> >> 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?
> >>
> > That will work. Now all I need is for the methods of DIFactory to take a
> > Constant* instead of uint64.
>
> ok. Feel free to add
> /// CreateBasicType - Create a basic type like int, float, etc.
> DIBasicType CreateBasicType(DIDescriptor Context, const std::string
> &Name,
> DICompileUnit CompileUnit, unsigned
> LineNumber,
> uint64_t SizeInBits, uint64_t AlignInBits,
> uint64_t OffsetInBits, unsigned Flags,
> unsigned Encoding);
>
> variants that take Constant*, for example,
>
> /// CreateBasicType - Create a basic type like int, float, etc.
> DIBasicType CreateBasicType(DIDescriptor Context, const std::string
> &Name,
> DICompileUnit CompileUnit, unsigned
> LineNumber,
> Constant *SizeInBits, Constant *AlignInBits,
> Constant *OffsetInBits, unsigned Flags,
> unsigned Encoding);
>
> and so on.
> -
> Devang
>
--
-- Talin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20091001/b01836fa/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: debug_constants.patch
Type: application/octet-stream
Size: 7712 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20091001/b01836fa/attachment.obj>
More information about the llvm-dev
mailing list