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: