Mercurial > projects > ldc
view gen/todebug.h @ 1346:6f4154b318ef
Remove an old workaround that was kept around for ABI-compatibility on x86-64
between different LLVM versions.
This means LLVM r67588 is required if you want to compile for x86-64, otherwise
the backend will assert when you try to return e.g. struct { int i; char c; }
from a function. (In particular, this is no longer compatible with LLVM 2.5)
It also means that any code returning small structs on x86-64 will probably
need to be recompiled in order to be linkable to code compiled with this change.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Tue, 12 May 2009 15:50:48 +0200 |
parents | 1714836f2c0b |
children | 40bd4a0d4870 |
line wrap: on
line source
#ifndef LDC_GEN_TODEBUG_H #define LDC_GEN_TODEBUG_H void RegisterDwarfSymbols(llvm::Module* mod); /** * Emit the Dwarf compile_unit global for a Module m. * @param m * @return the Dwarf compile_unit. */ llvm::DICompileUnit DtoDwarfCompileUnit(Module* m); /** * Emit the Dwarf subprogram global for a function declaration fd. * @param fd * @return the Dwarf subprogram global. */ llvm::DISubprogram DtoDwarfSubProgram(FuncDeclaration* fd); /** * Emit the Dwarf subprogram global for a internal function. * This is used for generated functions like moduleinfoctors, * module ctors/dtors and unittests. * @return the Dwarf subprogram global. */ llvm::DISubprogram DtoDwarfSubProgramInternal(const char* prettyname, const char* mangledname); void DtoDwarfFuncStart(FuncDeclaration* fd); void DtoDwarfFuncEnd(FuncDeclaration* fd); void DtoDwarfStopPoint(unsigned ln); /** * Emits all things necessary for making debug info for a local variable vd. * @param ll LLVM Value of the variable. * @param vd Variable declaration to emit debug info for. */ void DtoDwarfLocalVariable(LLValue* ll, VarDeclaration* vd); /** * Emits all things necessary for making debug info for a global variable vd. * @param ll * @param vd * @return */ llvm::DIGlobalVariable DtoDwarfGlobalVariable(LLGlobalVariable* ll, VarDeclaration* vd); #endif // LDC_GEN_TODEBUG_H