Mercurial > projects > ldc
view gen/dwarftypes.cpp @ 945:03d7c4aac654
SWITCHED TO LLVM 2.5 !
Applied patch from ticket #129 to compile against latest LLVM. Thanks Frits van Bommel.
Fixed implicit return by asm block at the end of a function on x86-32. Other architectures will produce an error at the moment. Adding support for new targets is fairly simple.
Fixed return calling convention for complex numbers, ST and ST(1) were switched around.
Added some testcases.
I've run a dstress test and there are no regressions. However, the runtime does not seem to compile with symbolic debug information. -O3 -release -inline works well and is what I used for the dstress run. Tango does not compile, a small workaround is needed in tango.io.digest.Digest.Digest.hexDigest. See ticket #206 .
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Sun, 08 Feb 2009 05:26:54 +0100 |
parents | df196c8dea26 |
children | 18ad5601dff7 |
line wrap: on
line source
// Generated by llvm2cpp - DO NOT MODIFY! #include <llvm/Module.h> #include <llvm/DerivedTypes.h> #include <llvm/Constants.h> #include <llvm/GlobalVariable.h> #include <llvm/Function.h> #include <llvm/CallingConv.h> #include <llvm/BasicBlock.h> #include <llvm/Instructions.h> #include <llvm/InlineAsm.h> #include <llvm/Attributes.h> #include <llvm/Support/MathExtras.h> #include <llvm/Pass.h> #include <llvm/PassManager.h> #include <llvm/Analysis/Verifier.h> #include <llvm/Assembly/PrintModulePass.h> #include <algorithm> #include <iostream> void RegisterDwarfSymbols(llvm::Module* mod) { using namespace llvm; // Type Definitions std::vector<const Type*>StructTy_llvm_dbg_anchor_type_fields; StructTy_llvm_dbg_anchor_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_anchor_type_fields.push_back(IntegerType::get(32)); StructType* StructTy_llvm_dbg_anchor_type = StructType::get(StructTy_llvm_dbg_anchor_type_fields, /*isPacked=*/false); mod->addTypeName("llvm.dbg.anchor.type", StructTy_llvm_dbg_anchor_type); std::vector<const Type*>StructTy_llvm_dbg_basictype_type_fields; StructTy_llvm_dbg_basictype_type_fields.push_back(IntegerType::get(32)); std::vector<const Type*>StructTy_1_fields; StructType* StructTy_1 = StructType::get(StructTy_1_fields, /*isPacked=*/false); PointerType* PointerTy_0 = PointerType::get(StructTy_1,0); StructTy_llvm_dbg_basictype_type_fields.push_back(PointerTy_0); PointerType* PointerTy_2 = PointerType::get(IntegerType::get(8),0); StructTy_llvm_dbg_basictype_type_fields.push_back(PointerTy_2); StructTy_llvm_dbg_basictype_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_basictype_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_basictype_type_fields.push_back(IntegerType::get(64)); StructTy_llvm_dbg_basictype_type_fields.push_back(IntegerType::get(64)); StructTy_llvm_dbg_basictype_type_fields.push_back(IntegerType::get(64)); StructTy_llvm_dbg_basictype_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_basictype_type_fields.push_back(IntegerType::get(32)); StructType* StructTy_llvm_dbg_basictype_type = StructType::get(StructTy_llvm_dbg_basictype_type_fields, /*isPacked=*/false); mod->addTypeName("llvm.dbg.basictype.type", StructTy_llvm_dbg_basictype_type); std::vector<const Type*>StructTy_llvm_dbg_compile_unit_type_fields; StructTy_llvm_dbg_compile_unit_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_compile_unit_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_compile_unit_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_compile_unit_type_fields.push_back(PointerTy_2); StructTy_llvm_dbg_compile_unit_type_fields.push_back(PointerTy_2); StructTy_llvm_dbg_compile_unit_type_fields.push_back(PointerTy_2); StructType* StructTy_llvm_dbg_compile_unit_type = StructType::get(StructTy_llvm_dbg_compile_unit_type_fields, /*isPacked=*/false); mod->addTypeName("llvm.dbg.compile_unit.type", StructTy_llvm_dbg_compile_unit_type); std::vector<const Type*>StructTy_llvm_dbg_compositetype_type_fields; StructTy_llvm_dbg_compositetype_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_compositetype_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_compositetype_type_fields.push_back(PointerTy_2); StructTy_llvm_dbg_compositetype_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_compositetype_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_compositetype_type_fields.push_back(IntegerType::get(64)); StructTy_llvm_dbg_compositetype_type_fields.push_back(IntegerType::get(64)); StructTy_llvm_dbg_compositetype_type_fields.push_back(IntegerType::get(64)); StructTy_llvm_dbg_compositetype_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_compositetype_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_compositetype_type_fields.push_back(PointerTy_0); StructType* StructTy_llvm_dbg_compositetype_type = StructType::get(StructTy_llvm_dbg_compositetype_type_fields, /*isPacked=*/false); mod->addTypeName("llvm.dbg.compositetype.type", StructTy_llvm_dbg_compositetype_type); std::vector<const Type*>StructTy_llvm_dbg_derivedtype_type_fields; StructTy_llvm_dbg_derivedtype_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_derivedtype_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_derivedtype_type_fields.push_back(PointerTy_2); StructTy_llvm_dbg_derivedtype_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_derivedtype_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_derivedtype_type_fields.push_back(IntegerType::get(64)); StructTy_llvm_dbg_derivedtype_type_fields.push_back(IntegerType::get(64)); StructTy_llvm_dbg_derivedtype_type_fields.push_back(IntegerType::get(64)); StructTy_llvm_dbg_derivedtype_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_derivedtype_type_fields.push_back(PointerTy_0); StructType* StructTy_llvm_dbg_derivedtype_type = StructType::get(StructTy_llvm_dbg_derivedtype_type_fields, /*isPacked=*/false); mod->addTypeName("llvm.dbg.derivedtype.type", StructTy_llvm_dbg_derivedtype_type); std::vector<const Type*>StructTy_llvm_dbg_global_variable_type_fields; StructTy_llvm_dbg_global_variable_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_global_variable_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_global_variable_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_global_variable_type_fields.push_back(PointerTy_2); StructTy_llvm_dbg_global_variable_type_fields.push_back(PointerTy_2); StructTy_llvm_dbg_global_variable_type_fields.push_back(PointerTy_2); StructTy_llvm_dbg_global_variable_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_global_variable_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_global_variable_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_global_variable_type_fields.push_back(IntegerType::get(1)); StructTy_llvm_dbg_global_variable_type_fields.push_back(IntegerType::get(1)); StructTy_llvm_dbg_global_variable_type_fields.push_back(PointerTy_0); StructType* StructTy_llvm_dbg_global_variable_type = StructType::get(StructTy_llvm_dbg_global_variable_type_fields, /*isPacked=*/false); mod->addTypeName("llvm.dbg.global_variable.type", StructTy_llvm_dbg_global_variable_type); std::vector<const Type*>StructTy_llvm_dbg_subprogram_type_fields; StructTy_llvm_dbg_subprogram_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_subprogram_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_subprogram_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_subprogram_type_fields.push_back(PointerTy_2); StructTy_llvm_dbg_subprogram_type_fields.push_back(PointerTy_2); StructTy_llvm_dbg_subprogram_type_fields.push_back(PointerTy_2); StructTy_llvm_dbg_subprogram_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_subprogram_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_subprogram_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_subprogram_type_fields.push_back(IntegerType::get(1)); StructTy_llvm_dbg_subprogram_type_fields.push_back(IntegerType::get(1)); StructType* StructTy_llvm_dbg_subprogram_type = StructType::get(StructTy_llvm_dbg_subprogram_type_fields, /*isPacked=*/false); mod->addTypeName("llvm.dbg.subprogram.type", StructTy_llvm_dbg_subprogram_type); std::vector<const Type*>StructTy_llvm_dbg_variable_type_fields; StructTy_llvm_dbg_variable_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_variable_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_variable_type_fields.push_back(PointerTy_2); StructTy_llvm_dbg_variable_type_fields.push_back(PointerTy_0); StructTy_llvm_dbg_variable_type_fields.push_back(IntegerType::get(32)); StructTy_llvm_dbg_variable_type_fields.push_back(PointerTy_0); StructType* StructTy_llvm_dbg_variable_type = StructType::get(StructTy_llvm_dbg_variable_type_fields, /*isPacked=*/false); mod->addTypeName("llvm.dbg.variable.type", StructTy_llvm_dbg_variable_type); std::vector<const Type*>FuncTy_3_args; FuncTy_3_args.push_back(PointerTy_0); FunctionType* FuncTy_3 = FunctionType::get( /*Result=*/Type::VoidTy, /*Params=*/FuncTy_3_args, /*isVarArg=*/false); std::vector<const Type*>FuncTy_4_args; FuncTy_4_args.push_back(IntegerType::get(32)); FuncTy_4_args.push_back(IntegerType::get(32)); FuncTy_4_args.push_back(PointerTy_0); FunctionType* FuncTy_4 = FunctionType::get( /*Result=*/Type::VoidTy, /*Params=*/FuncTy_4_args, /*isVarArg=*/false); std::vector<const Type*>FuncTy_5_args; FuncTy_5_args.push_back(PointerTy_0); FuncTy_5_args.push_back(PointerTy_0); FunctionType* FuncTy_5 = FunctionType::get( /*Result=*/Type::VoidTy, /*Params=*/FuncTy_5_args, /*isVarArg=*/false); // Function Declarations Function* func_llvm_dbg_func_start = Function::Create( /*Type=*/FuncTy_3, /*Linkage=*/GlobalValue::ExternalLinkage, /*Name=*/"llvm.dbg.func.start", mod); // (external, no body) func_llvm_dbg_func_start->setCallingConv(CallingConv::C); Function* func_llvm_dbg_stoppoint = Function::Create( /*Type=*/FuncTy_4, /*Linkage=*/GlobalValue::ExternalLinkage, /*Name=*/"llvm.dbg.stoppoint", mod); // (external, no body) func_llvm_dbg_stoppoint->setCallingConv(CallingConv::C); Function* func_llvm_dbg_declare = Function::Create( /*Type=*/FuncTy_5, /*Linkage=*/GlobalValue::ExternalLinkage, /*Name=*/"llvm.dbg.declare", mod); // (external, no body) func_llvm_dbg_declare->setCallingConv(CallingConv::C); Function* func_llvm_dbg_region_end = Function::Create( /*Type=*/FuncTy_3, /*Linkage=*/GlobalValue::ExternalLinkage, /*Name=*/"llvm.dbg.region.end", mod); // (external, no body) func_llvm_dbg_region_end->setCallingConv(CallingConv::C); }