- Versioned Expresssion::toElem with #if IN_DMD/IN_LLVM.

- Eliminated the DLRValue DValue.

- Implemented proactive handling of l-value CastExpS.

- Minor tweak in runtime memory.d .
This commit is contained in:
Tomas Lindquist Olsen
2009-03-28 05:00:43 +01:00
parent 06a29342d3
commit 36f6ebc77f
12 changed files with 594 additions and 482 deletions
+7 -23
View File
@@ -3,35 +3,19 @@
struct StructInitializer;
LLConstant* DtoConstStructInitializer(StructInitializer* si);
std::vector<llvm::Value*> DtoStructLiteralValues(const StructDeclaration* sd, const std::vector<llvm::Value*>& inits);
/**
* Resolves the llvm type for a struct
*/
/// Generate code for the struct.
void DtoResolveStruct(StructDeclaration* sd);
/**
* Provides the llvm declaration for a struct
*/
void DtoDeclareStruct(StructDeclaration* sd);
/// Build constant struct initializer.
LLConstant* DtoConstStructInitializer(StructInitializer* si);
/**
* Constructs the constant default initializer a struct
*/
void DtoConstInitStruct(StructDeclaration* sd);
/// Build values for a struct literal.
std::vector<llvm::Value*> DtoStructLiteralValues(const StructDeclaration* sd, const std::vector<llvm::Value*>& inits);
/**
* Provides the llvm definition for a struct
*/
void DtoDefineStruct(StructDeclaration* sd);
/**
* Returns a boolean=true if the two structs are equal
*/
/// Returns a boolean=true if the two structs are equal.
LLValue* DtoStructEquals(TOK op, DValue* lhs, DValue* rhs);
// index a struct one level
/// index a struct one level
LLValue* DtoIndexStruct(LLValue* src, StructDeclaration* sd, VarDeclaration* vd);
#endif