Mercurial > projects > ldc
comparison dmd/module.h @ 1052:12ea38902e83
Add '-singleobj' command line switch that will tell LDC to link LLVM modules internally and only emit a single object file.
The switch allows the optimizer and inliner to run on all modules at once and opens the door for template instantiation improvements that should lower compile time and executable size.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Sat, 07 Mar 2009 19:38:00 +0100 |
parents | 31bbc7f3b817 |
children | b30fe7e1dbb9 |
comparison
equal
deleted
inserted
replaced
1051:dc608dc33081 | 1052:12ea38902e83 |
---|---|
28 | 28 |
29 // Back end | 29 // Back end |
30 #if IN_LLVM | 30 #if IN_LLVM |
31 struct DValue; | 31 struct DValue; |
32 typedef DValue elem; | 32 typedef DValue elem; |
33 namespace llvm { class Module; } | |
33 #else | 34 #else |
34 #ifdef IN_GCC | 35 #ifdef IN_GCC |
35 union tree_node; typedef union tree_node elem; | 36 union tree_node; typedef union tree_node elem; |
36 #else | 37 #else |
37 struct elem; | 38 struct elem; |
131 void semantic3(Scope* unused_sc = NULL); // pass 3 semantic analysis | 132 void semantic3(Scope* unused_sc = NULL); // pass 3 semantic analysis |
132 void inlineScan(); // scan for functions to inline | 133 void inlineScan(); // scan for functions to inline |
133 #ifdef _DH | 134 #ifdef _DH |
134 void genhdrfile(); // generate D import file | 135 void genhdrfile(); // generate D import file |
135 #endif | 136 #endif |
136 void genobjfile(int multiobj); | |
137 // void gensymfile(); | 137 // void gensymfile(); |
138 void gendocfile(); | 138 void gendocfile(); |
139 int needModuleInfo(); | 139 int needModuleInfo(); |
140 Dsymbol *search(Loc loc, Identifier *ident, int flags); | 140 Dsymbol *search(Loc loc, Identifier *ident, int flags); |
141 void deleteObjFile(); | 141 void deleteObjFile(); |
169 | 169 |
170 Symbol *toSymbol(); | 170 Symbol *toSymbol(); |
171 void genmoduleinfo(); | 171 void genmoduleinfo(); |
172 | 172 |
173 // LDC | 173 // LDC |
174 llvm::Module* genLLVMModule(int multiobj); | |
174 void buildTargetFiles(); | 175 void buildTargetFiles(); |
175 File* buildFilePath(char* forcename, char* path, char* ext); | 176 File* buildFilePath(char* forcename, char* path, char* ext); |
176 Module *isModule() { return this; } | 177 Module *isModule() { return this; } |
177 | 178 |
178 bool llvmForceLogging; | 179 bool llvmForceLogging; |