Mercurial > projects > ldc
comparison gen/main.cpp @ 1535:61f12f4651b5
Don't use llvm::getGlobalContext() anymore
author | Benjamin Kramer <benny.kra@gmail.com> |
---|---|
date | Mon, 13 Jul 2009 20:16:15 +0200 |
parents | 8ca25bd765a3 |
children | 21d691518d82 |
comparison
equal
deleted
inserted
replaced
1534:8ca25bd765a3 | 1535:61f12f4651b5 |
---|---|
5 | 5 |
6 #include "gen/llvm.h" | 6 #include "gen/llvm.h" |
7 #include "gen/llvm-version.h" | 7 #include "gen/llvm-version.h" |
8 #include "llvm/LinkAllVMCore.h" | 8 #include "llvm/LinkAllVMCore.h" |
9 #include "llvm/Linker.h" | 9 #include "llvm/Linker.h" |
10 #include "llvm/LLVMContext.h" | |
10 #include "llvm/System/Signals.h" | 11 #include "llvm/System/Signals.h" |
11 #include "llvm/Target/SubtargetFeature.h" | 12 #include "llvm/Target/SubtargetFeature.h" |
12 #include "llvm/Target/TargetMachine.h" | 13 #include "llvm/Target/TargetMachine.h" |
13 #include "llvm/Target/TargetOptions.h" | 14 #include "llvm/Target/TargetOptions.h" |
14 #include "llvm/Target/TargetMachineRegistry.h" | 15 #include "llvm/Target/TargetMachineRegistry.h" |
399 else if ((m32bits || m64bits) && (mArch != 0 || !mTargetTriple.empty())) | 400 else if ((m32bits || m64bits) && (mArch != 0 || !mTargetTriple.empty())) |
400 error("-m32 and -m64 switches cannot be used together with -march and -mtriple switches"); | 401 error("-m32 and -m64 switches cannot be used together with -march and -mtriple switches"); |
401 if (global.errors) | 402 if (global.errors) |
402 fatal(); | 403 fatal(); |
403 | 404 |
404 llvm::Module mod("dummy", llvm::getGlobalContext()); | 405 llvm::LLVMContext context; |
406 llvm::Module mod("dummy", context); | |
405 | 407 |
406 // override triple if needed | 408 // override triple if needed |
407 const char* defaultTriple = DEFAULT_TARGET_TRIPLE; | 409 const char* defaultTriple = DEFAULT_TARGET_TRIPLE; |
408 if ((sizeof(void*) == 4 && m64bits) || (sizeof(void*) == 8 && m32bits)) | 410 if ((sizeof(void*) == 4 && m64bits) || (sizeof(void*) == 8 && m32bits)) |
409 { | 411 { |
886 m = (Module *)modules.data[i]; | 888 m = (Module *)modules.data[i]; |
887 if (global.params.verbose) | 889 if (global.params.verbose) |
888 printf("code %s\n", m->toChars()); | 890 printf("code %s\n", m->toChars()); |
889 if (global.params.obj) | 891 if (global.params.obj) |
890 { | 892 { |
891 llvm::Module* lm = m->genLLVMModule(&ir); | 893 llvm::Module* lm = m->genLLVMModule(context, &ir); |
892 if (!singleObj) | 894 if (!singleObj) |
893 { | 895 { |
894 m->deleteObjFile(); | 896 m->deleteObjFile(); |
895 writeModule(lm, m->objfile->name->str); | 897 writeModule(lm, m->objfile->name->str); |
896 global.params.objfiles->push(m->objfile->name->str); | 898 global.params.objfiles->push(m->objfile->name->str); |
913 { | 915 { |
914 Module* m = (Module*)modules.data[0]; | 916 Module* m = (Module*)modules.data[0]; |
915 char* name = m->toChars(); | 917 char* name = m->toChars(); |
916 char* filename = m->objfile->name->str; | 918 char* filename = m->objfile->name->str; |
917 | 919 |
918 llvm::Linker linker(name, name, llvm::getGlobalContext()); | 920 llvm::Linker linker(name, name, context); |
919 | 921 |
920 std::string errormsg; | 922 std::string errormsg; |
921 for (int i = 0; i < llvmModules.size(); i++) | 923 for (int i = 0; i < llvmModules.size(); i++) |
922 { | 924 { |
923 //FIXME: workaround for llvm metadata bug: | 925 //FIXME: workaround for llvm metadata bug: |