mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-12 22:14:54 +03:00
Fix build for LLVM >= r74640
Some LLVM objects now take a 'Context' to make multi-threaded apps easier. Since we're not multi-threaded it's safe to use llvm::getGlobalContext() which gives us the same behavior as we had before.
This commit is contained in:
parent
151e266deb
commit
22b36384b0
3 changed files with 27 additions and 1 deletions
11
gen/main.cpp
11
gen/main.cpp
|
@ -7,6 +7,9 @@
|
||||||
#include "gen/llvm-version.h"
|
#include "gen/llvm-version.h"
|
||||||
#include "llvm/LinkAllVMCore.h"
|
#include "llvm/LinkAllVMCore.h"
|
||||||
#include "llvm/Linker.h"
|
#include "llvm/Linker.h"
|
||||||
|
#if LLVM_REV >= 74640
|
||||||
|
#include "llvm/LLVMContext.h"
|
||||||
|
#endif
|
||||||
#include "llvm/System/Signals.h"
|
#include "llvm/System/Signals.h"
|
||||||
#include "llvm/Target/SubtargetFeature.h"
|
#include "llvm/Target/SubtargetFeature.h"
|
||||||
#include "llvm/Target/TargetMachine.h"
|
#include "llvm/Target/TargetMachine.h"
|
||||||
|
@ -399,7 +402,11 @@ int main(int argc, char** argv)
|
||||||
if (global.errors)
|
if (global.errors)
|
||||||
fatal();
|
fatal();
|
||||||
|
|
||||||
|
#if LLVM_REV >= 74640
|
||||||
|
llvm::Module mod("dummy", llvm::getGlobalContext());
|
||||||
|
#else
|
||||||
llvm::Module mod("dummy");
|
llvm::Module mod("dummy");
|
||||||
|
#endif
|
||||||
|
|
||||||
// override triple if needed
|
// override triple if needed
|
||||||
const char* defaultTriple = DEFAULT_TARGET_TRIPLE;
|
const char* defaultTriple = DEFAULT_TARGET_TRIPLE;
|
||||||
|
@ -919,7 +926,11 @@ LDC_TARGETS
|
||||||
char* name = m->toChars();
|
char* name = m->toChars();
|
||||||
char* filename = m->objfile->name->str;
|
char* filename = m->objfile->name->str;
|
||||||
|
|
||||||
|
#if LLVM_REV >= 74640
|
||||||
|
llvm::Linker linker(name, name, llvm::getGlobalContext());
|
||||||
|
#else
|
||||||
llvm::Linker linker(name, name);
|
llvm::Linker linker(name, name);
|
||||||
|
#endif
|
||||||
std::string errormsg;
|
std::string errormsg;
|
||||||
for (int i = 0; i < llvmModules.size(); i++)
|
for (int i = 0; i < llvmModules.size(); i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
#include "gen/llvm.h"
|
#include "gen/llvm.h"
|
||||||
|
#include "gen/llvm-version.h"
|
||||||
|
#if LLVM_REV >= 74640
|
||||||
|
#include "llvm/LLVMContext.h"
|
||||||
|
#endif
|
||||||
#include "llvm/Module.h"
|
#include "llvm/Module.h"
|
||||||
#include "llvm/Attributes.h"
|
#include "llvm/Attributes.h"
|
||||||
#include "llvm/Bitcode/ReaderWriter.h"
|
#include "llvm/Bitcode/ReaderWriter.h"
|
||||||
|
@ -149,7 +153,11 @@ static const LLType* rt_dg2()
|
||||||
static void LLVM_D_BuildRuntimeModule()
|
static void LLVM_D_BuildRuntimeModule()
|
||||||
{
|
{
|
||||||
Logger::println("building module");
|
Logger::println("building module");
|
||||||
|
#if LLVM_REV >= 74640
|
||||||
|
M = new llvm::Module("ldc internal runtime", llvm::getGlobalContext());
|
||||||
|
#else
|
||||||
M = new llvm::Module("ldc internal runtime");
|
M = new llvm::Module("ldc internal runtime");
|
||||||
|
#endif
|
||||||
|
|
||||||
Logger::println("building basic types");
|
Logger::println("building basic types");
|
||||||
const LLType* voidTy = LLType::VoidTy;
|
const LLType* voidTy = LLType::VoidTy;
|
||||||
|
|
|
@ -11,8 +11,12 @@
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#include "gen/llvm.h"
|
#include "gen/llvm.h"
|
||||||
|
#include "gen/llvm-version.h"
|
||||||
#include "llvm/Analysis/Verifier.h"
|
#include "llvm/Analysis/Verifier.h"
|
||||||
#include "llvm/Bitcode/ReaderWriter.h"
|
#include "llvm/Bitcode/ReaderWriter.h"
|
||||||
|
#if LLVM_REV >= 74640
|
||||||
|
#include "llvm/LLVMContext.h"
|
||||||
|
#endif
|
||||||
#include "llvm/Module.h"
|
#include "llvm/Module.h"
|
||||||
#include "llvm/ModuleProvider.h"
|
#include "llvm/ModuleProvider.h"
|
||||||
#include "llvm/PassManager.h"
|
#include "llvm/PassManager.h"
|
||||||
|
@ -43,7 +47,6 @@
|
||||||
#include "gen/functions.h"
|
#include "gen/functions.h"
|
||||||
#include "gen/irstate.h"
|
#include "gen/irstate.h"
|
||||||
#include "gen/llvmhelpers.h"
|
#include "gen/llvmhelpers.h"
|
||||||
#include "gen/llvm-version.h"
|
|
||||||
#include "gen/logger.h"
|
#include "gen/logger.h"
|
||||||
#include "gen/optimizer.h"
|
#include "gen/optimizer.h"
|
||||||
#include "gen/programs.h"
|
#include "gen/programs.h"
|
||||||
|
@ -94,7 +97,11 @@ llvm::Module* Module::genLLVMModule(Ir* sir)
|
||||||
|
|
||||||
// create a new ir state
|
// create a new ir state
|
||||||
// TODO look at making the instance static and moving most functionality into IrModule where it belongs
|
// TODO look at making the instance static and moving most functionality into IrModule where it belongs
|
||||||
|
#if LLVM_REV >= 74640
|
||||||
|
IRState ir(new llvm::Module(mname, llvm::getGlobalContext()));
|
||||||
|
#else
|
||||||
IRState ir(new llvm::Module(mname));
|
IRState ir(new llvm::Module(mname));
|
||||||
|
#endif
|
||||||
gIR = &ir;
|
gIR = &ir;
|
||||||
ir.dmodule = this;
|
ir.dmodule = this;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue