Mercurial > projects > ldc
diff gen/todebug.cpp @ 213:7816aafeea3c trunk
[svn r229] Updated the object.d implementation to the latest Tango.
Fixed a bunch of the built-in typeinfos for arrays, they did not inherit TypeInfo_Array.
Applied patch to tango/text/convert/Layout.d by fvbommel, closes #47 .
Cleaned up some type code.
Replaced uses of llvm::Type with LLType (a typedef), same for Value and Constant.
Fixed a few cases where typeinfo for user structs could be emitted multiple times, seems to still be some cases of this :/
author | lindquist |
---|---|
date | Fri, 30 May 2008 19:32:04 +0200 |
parents | db9890b3fb64 |
children | 0806379a5eca |
line wrap: on
line diff
--- a/gen/todebug.cpp Tue May 27 22:14:24 2008 +0200 +++ b/gen/todebug.cpp Fri May 30 19:32:04 2008 +0200 @@ -15,18 +15,18 @@ using namespace llvm::dwarf; -static const llvm::PointerType* ptrTy(const llvm::Type* t) +static const llvm::PointerType* ptrTy(const LLType* t) { return llvm::PointerType::get(t, 0); } static const llvm::PointerType* dbgArrTy() { - std::vector<const llvm::Type*> t; + std::vector<const LLType*> t; return ptrTy(llvm::StructType::get(t)); } -static llvm::Constant* dbgToArrTy(llvm::Constant* c) +static LLConstant* dbgToArrTy(LLConstant* c) { Logger::cout() << "casting: " << *c << '\n'; return llvm::ConstantExpr::getBitCast(c, dbgArrTy()); @@ -48,7 +48,7 @@ uint ;; Tag of descriptors grouped by the anchor } */ - std::vector<const llvm::Type*> elems(2, Ty(Int32Ty)); + std::vector<const LLType*> elems(2, Ty(Int32Ty)); const llvm::StructType* t = isaStruct(gIR->module->getTypeByName("llvm.dbg.anchor.type")); /* @@ -57,26 +57,26 @@ %llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { uint 0, uint 46 } ;; DW_TAG_subprogram */ if (!gIR->module->getNamedGlobal("llvm.dbg.compile_units")) { - std::vector<llvm::Constant*> vals; + std::vector<LLConstant*> vals; vals.push_back(DtoConstUint(llvm::LLVMDebugVersion)); vals.push_back(DtoConstUint(DW_TAG_compile_unit)); - llvm::Constant* i = llvm::ConstantStruct::get(t, vals); + LLConstant* i = llvm::ConstantStruct::get(t, vals); dbg_compile_units = new llvm::GlobalVariable(t,true,llvm::GlobalValue::LinkOnceLinkage,i,"llvm.dbg.compile_units",gIR->module); dbg_compile_units->setSection("llvm.metadata"); } if (!gIR->module->getNamedGlobal("llvm.dbg.global_variables")) { - std::vector<llvm::Constant*> vals; + std::vector<LLConstant*> vals; vals.push_back(DtoConstUint(llvm::LLVMDebugVersion)); vals.push_back(DtoConstUint(DW_TAG_variable)); - llvm::Constant* i = llvm::ConstantStruct::get(t, vals); + LLConstant* i = llvm::ConstantStruct::get(t, vals); dbg_global_variables = new llvm::GlobalVariable(t,true,llvm::GlobalValue::LinkOnceLinkage,i,"llvm.dbg.global_variables",gIR->module); dbg_global_variables->setSection("llvm.metadata"); } if (!gIR->module->getNamedGlobal("llvm.dbg.subprograms")) { - std::vector<llvm::Constant*> vals; + std::vector<LLConstant*> vals; vals.push_back(DtoConstUint(llvm::LLVMDebugVersion)); vals.push_back(DtoConstUint(DW_TAG_subprogram)); - llvm::Constant* i = llvm::ConstantStruct::get(t, vals); + LLConstant* i = llvm::ConstantStruct::get(t, vals); dbg_subprograms = new llvm::GlobalVariable(t,true,llvm::GlobalValue::LinkOnceLinkage,i,"llvm.dbg.subprograms",gIR->module); dbg_subprograms->setSection("llvm.metadata"); } @@ -84,7 +84,7 @@ return t; } -llvm::Constant* GetDwarfAnchor(llvm::dwarf::dwarf_constants c) +LLConstant* GetDwarfAnchor(llvm::dwarf::dwarf_constants c) { GetDwarfAnchorType(); switch (c) @@ -124,9 +124,9 @@ // create a valid compile unit constant for the current module - llvm::Constant* c = NULL; + LLConstant* c = NULL; - std::vector<llvm::Constant*> vals; + std::vector<LLConstant*> vals; vals.push_back(llvm::ConstantExpr::getAdd( DtoConstUint(DW_TAG_compile_unit), DtoConstUint(llvm::LLVMDebugVersion))); @@ -156,7 +156,7 @@ llvm::GlobalVariable* DtoDwarfSubProgram(FuncDeclaration* fd, llvm::GlobalVariable* compileUnit) { - std::vector<llvm::Constant*> vals; + std::vector<LLConstant*> vals; vals.push_back(llvm::ConstantExpr::getAdd( DtoConstUint(DW_TAG_subprogram), DtoConstUint(llvm::LLVMDebugVersion))); @@ -172,7 +172,7 @@ vals.push_back(DtoConstBool(fd->protection == PROTprivate)); vals.push_back(DtoConstBool(fd->getModule() == gIR->dmodule)); - llvm::Constant* c = llvm::ConstantStruct::get(GetDwarfSubProgramType(), vals); + LLConstant* c = llvm::ConstantStruct::get(GetDwarfSubProgramType(), vals); llvm::GlobalVariable* gv = new llvm::GlobalVariable(c->getType(), true, llvm::GlobalValue::InternalLinkage, c, "llvm.dbg.subprogram", gIR->module); gv->setSection("llvm.metadata"); return gv; @@ -196,7 +196,7 @@ void DtoDwarfStopPoint(unsigned ln) { - std::vector<llvm::Value*> args; + std::vector<LLValue*> args; args.push_back(DtoConstUint(ln)); args.push_back(DtoConstUint(0)); FuncDeclaration* fd = gIR->func()->decl;