Mercurial > projects > ldc
view gen/structs.h @ 1493:7cca8cf730de
Increment the iterator before deleting redundant functions or globals in the StripExternals pass.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Thu, 11 Jun 2009 21:48:10 +0200 |
parents | 45aca7e7cc88 |
children |
line wrap: on
line source
#ifndef LLVMD_GEN_STRUCTS_H #define LLVMD_GEN_STRUCTS_H struct StructInitializer; /// Generate code for the struct. void DtoResolveStruct(StructDeclaration* sd); /// Build constant struct initializer. LLConstant* DtoConstStructInitializer(StructInitializer* si); /// Build values for a struct literal. std::vector<llvm::Value*> DtoStructLiteralValues(const StructDeclaration* sd, const std::vector<llvm::Value*>& inits); /// Returns a boolean=true if the two structs are equal. LLValue* DtoStructEquals(TOK op, DValue* lhs, DValue* rhs); /// index a struct one level LLValue* DtoIndexStruct(LLValue* src, StructDeclaration* sd, VarDeclaration* vd); /// Return the type returned by DtoUnpaddedStruct called on a value of the /// specified type. /// Union types will get expanded into a struct, with a type for each member. LLType* DtoUnpaddedStructType(Type* dty); /// Return the struct value represented by v without the padding fields. /// Unions will be expanded, with a value for each member. /// Note: v must be a pointer to a struct, but the return value will be a /// first-class struct value. LLValue* DtoUnpaddedStruct(Type* dty, LLValue* v); /// Undo the transformation performed by DtoUnpaddedStruct, writing to lval. void DtoPaddedStruct(Type* dty, LLValue* v, LLValue* lval); #endif