comparison gen/classes.h @ 217:0806379a5eca trunk

[svn r233] Added: -oq command line option for writing fully qualified object names. Added: started support for x86 80bit floating point. Changed: aggregates passed by value now use the llvm 'byval' parameter attribute, also lays ground work for using other attributes. Changed: eliminated a lot more std::vectorS, these showed up pretty much at the top when profiling! Changed: performed other misc. cleanups. Changed: halt expression now call the new llvm trap intrinsic instead of an assert(0). Changed: dstress suite now passes -O0 by default, this only eliminates unreferenced globals, which speeds up linking quite a bit.
author lindquist
date Thu, 05 Jun 2008 06:38:36 +0200
parents 7816aafeea3c
children a34078905d01
comparison
equal deleted inserted replaced
216:3d022aa016ae 217:0806379a5eca
1 #ifndef LLVMDC_GEN_CLASSES_H 1 #ifndef LLVMDC_GEN_CLASSES_H
2 #define LLVMDC_GEN_CLASSES_H 2 #define LLVMDC_GEN_CLASSES_H
3
4 #include "gen/structs.h"
3 5
4 /** 6 /**
5 * Resolves the llvm type for a class declaration 7 * Resolves the llvm type for a class declaration
6 */ 8 */
7 void DtoResolveClass(ClassDeclaration* cd); 9 void DtoResolveClass(ClassDeclaration* cd);
33 DValue* DtoDynamicCastObject(DValue* val, Type* to); 35 DValue* DtoDynamicCastObject(DValue* val, Type* to);
34 36
35 DValue* DtoCastInterfaceToObject(DValue* val, Type* to); 37 DValue* DtoCastInterfaceToObject(DValue* val, Type* to);
36 DValue* DtoDynamicCastInterface(DValue* val, Type* to); 38 DValue* DtoDynamicCastInterface(DValue* val, Type* to);
37 39
38 LLValue* DtoIndexClass(LLValue* ptr, ClassDeclaration* cd, Type* t, unsigned os, std::vector<unsigned>& idxs); 40 LLValue* DtoIndexClass(LLValue* ptr, ClassDeclaration* cd, Type* t, unsigned os, DStructIndexVector& idxs);
39 41
40 LLValue* DtoVirtualFunctionPointer(DValue* inst, FuncDeclaration* fdecl); 42 LLValue* DtoVirtualFunctionPointer(DValue* inst, FuncDeclaration* fdecl);
41 43
42 #endif 44 #endif