1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 19:48:20 +02:00

LLVM 13.0.1 fixes

This commit is contained in:
disarray2077 2022-02-06 13:12:15 -03:00
parent 90f34b6bee
commit 43d4be6be8
4 changed files with 63 additions and 33 deletions

View file

@ -674,7 +674,9 @@ void BfIRCodeGen::SetResult(int id, llvm::MDNode* md)
void BfIRCodeGen::ProcessBfIRData(const BfSizedArray<uint8>& buffer) void BfIRCodeGen::ProcessBfIRData(const BfSizedArray<uint8>& buffer)
{ {
struct InlineAsmErrorHook // Diagnostic handlers were unified in LLVM change 5de2d189e6ad, so starting
// with LLVM 13 this function is gone.
/*struct InlineAsmErrorHook
{ {
static void StaticHandler(const llvm::SMDiagnostic& diag, void *context, unsigned locCookie) static void StaticHandler(const llvm::SMDiagnostic& diag, void *context, unsigned locCookie)
{ {
@ -688,7 +690,7 @@ void BfIRCodeGen::ProcessBfIRData(const BfSizedArray<uint8>& buffer)
} }
} }
}; };
mLLVMContext->setInlineAsmDiagnosticHandler(InlineAsmErrorHook::StaticHandler, this); mLLVMContext->setInlineAsmDiagnosticHandler(InlineAsmErrorHook::StaticHandler, this);*/
BF_ASSERT(mStream == NULL); BF_ASSERT(mStream == NULL);
mStream = new ChunkedDataBuffer(); mStream = new ChunkedDataBuffer();
@ -924,7 +926,7 @@ void BfIRCodeGen::Read(llvm::Value*& llvmValue, BfIRCodeGenEntry** codeGenEntry,
llvm::ConstantInt::get(llvm::Type::getInt32Ty(*mLLVMContext), idx0), llvm::ConstantInt::get(llvm::Type::getInt32Ty(*mLLVMContext), idx0),
llvm::ConstantInt::get(llvm::Type::getInt32Ty(*mLLVMContext), idx1)}; llvm::ConstantInt::get(llvm::Type::getInt32Ty(*mLLVMContext), idx1)};
llvmValue = FixGEP(target, llvm::ConstantExpr::getInBoundsGetElementPtr(NULL, target, gepArgs)); llvmValue = FixGEP(target, llvm::ConstantExpr::getInBoundsGetElementPtr(target->getType()->getPointerElementType(), target, gepArgs));
return; return;
} }
else if (constType == BfConstType_ExtractValue) else if (constType == BfConstType_ExtractValue)
@ -1273,7 +1275,7 @@ llvm::Value* BfIRCodeGen::TryToVector(llvm::Value* value, llvm::Type* elemType)
return mIRBuilder->CreateAlignedLoad(ptrVal0, llvm::MaybeAlign(1)); return mIRBuilder->CreateAlignedLoad(ptrVal0, llvm::MaybeAlign(1));
} }
if (auto vecType = llvm::dyn_cast<llvm::VectorType>(ptrElemType)) if (auto vecType = llvm::dyn_cast<llvm::FixedVectorType>(ptrElemType))
{ {
if (vecType->getElementType() == elemType) if (vecType->getElementType() == elemType)
return mIRBuilder->CreateAlignedLoad(value, llvm::MaybeAlign(1)); return mIRBuilder->CreateAlignedLoad(value, llvm::MaybeAlign(1));
@ -1567,7 +1569,7 @@ void BfIRCodeGen::CreateMemSet(llvm::Value* addr, llvm::Value* val, llvm::Value*
headVal = mIRBuilder->CreateBitCast(addr, intTy->getPointerTo()); headVal = mIRBuilder->CreateBitCast(addr, intTy->getPointerTo());
llvm::Value* ptrVal = headVal; llvm::Value* ptrVal = headVal;
if (curOffset != 0) if (curOffset != 0)
ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(NULL, headVal, curOffset / 8); ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(intTy, headVal, curOffset / 8);
mIRBuilder->CreateStore(constVal, ptrVal, isVolatile); mIRBuilder->CreateStore(constVal, ptrVal, isVolatile);
curOffset += 8; curOffset += 8;
@ -1586,7 +1588,7 @@ void BfIRCodeGen::CreateMemSet(llvm::Value* addr, llvm::Value* val, llvm::Value*
headVal = mIRBuilder->CreateBitCast(addr, intTy->getPointerTo()); headVal = mIRBuilder->CreateBitCast(addr, intTy->getPointerTo());
llvm::Value* ptrVal = headVal; llvm::Value* ptrVal = headVal;
if (curOffset != 0) if (curOffset != 0)
ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(NULL, headVal, curOffset / 4); ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(intTy, headVal, curOffset / 4);
mIRBuilder->CreateStore(constVal, ptrVal, isVolatile); mIRBuilder->CreateStore(constVal, ptrVal, isVolatile);
curOffset += 4; curOffset += 4;
@ -1605,7 +1607,7 @@ void BfIRCodeGen::CreateMemSet(llvm::Value* addr, llvm::Value* val, llvm::Value*
headVal = mIRBuilder->CreateBitCast(addr, intTy->getPointerTo()); headVal = mIRBuilder->CreateBitCast(addr, intTy->getPointerTo());
llvm::Value* ptrVal = headVal; llvm::Value* ptrVal = headVal;
if (curOffset != 0) if (curOffset != 0)
ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(NULL, headVal, curOffset / 2); ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(intTy, headVal, curOffset / 2);
mIRBuilder->CreateStore(constVal, ptrVal, isVolatile); mIRBuilder->CreateStore(constVal, ptrVal, isVolatile);
curOffset += 2; curOffset += 2;
@ -1624,7 +1626,7 @@ void BfIRCodeGen::CreateMemSet(llvm::Value* addr, llvm::Value* val, llvm::Value*
headVal = mIRBuilder->CreateBitCast(addr, intTy->getPointerTo()); headVal = mIRBuilder->CreateBitCast(addr, intTy->getPointerTo());
llvm::Value* ptrVal = headVal; llvm::Value* ptrVal = headVal;
if (curOffset != 0) if (curOffset != 0)
ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(NULL, headVal, curOffset / 1); ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(intTy, headVal, curOffset / 1);
mIRBuilder->CreateStore(constVal, ptrVal, isVolatile); mIRBuilder->CreateStore(constVal, ptrVal, isVolatile);
curOffset += 1; curOffset += 1;
@ -1787,7 +1789,7 @@ void BfIRCodeGen::HandleNextCmd()
{ {
CMD_PARAM(String, fileName); CMD_PARAM(String, fileName);
std::error_code ec; std::error_code ec;
llvm::raw_fd_ostream outStream(fileName.c_str(), ec, llvm::sys::fs::OpenFlags::F_Text); llvm::raw_fd_ostream outStream(fileName.c_str(), ec, llvm::sys::fs::OpenFlags::OF_Text);
if (ec) if (ec)
{ {
Fail("Failed writing IR '" + fileName + "': " + ec.message()); Fail("Failed writing IR '" + fileName + "': " + ec.message());
@ -2311,12 +2313,12 @@ void BfIRCodeGen::HandleNextCmd()
if (auto alignedPtr = GetAlignedPtr(val)) if (auto alignedPtr = GetAlignedPtr(val))
{ {
auto gepResult = mIRBuilder->CreateConstInBoundsGEP1_32(NULL, alignedPtr, idx0); auto gepResult = mIRBuilder->CreateConstInBoundsGEP1_32(alignedPtr->getType()->getPointerElementType(), alignedPtr, idx0);
SetResult(curId, mIRBuilder->CreateBitCast(gepResult, val->getType())); SetResult(curId, mIRBuilder->CreateBitCast(gepResult, val->getType()));
break; break;
} }
SetResult(curId, mIRBuilder->CreateConstInBoundsGEP1_32(NULL, val, idx0)); SetResult(curId, mIRBuilder->CreateConstInBoundsGEP1_32(val->getType()->getPointerElementType(), val, idx0));
} }
break; break;
case BfIRCmd_InboundsGEP2_32: case BfIRCmd_InboundsGEP2_32:
@ -2324,7 +2326,7 @@ void BfIRCodeGen::HandleNextCmd()
CMD_PARAM(llvm::Value*, val); CMD_PARAM(llvm::Value*, val);
CMD_PARAM(int, idx0); CMD_PARAM(int, idx0);
CMD_PARAM(int, idx1); CMD_PARAM(int, idx1);
SetResult(curId, FixGEP(val, mIRBuilder->CreateConstInBoundsGEP2_32(NULL, val, idx0, idx1))); SetResult(curId, FixGEP(val, mIRBuilder->CreateConstInBoundsGEP2_32(val->getType()->getPointerElementType(), val, idx0, idx1)));
} }
break; break;
case BfIRCmd_InBoundsGEP1: case BfIRCmd_InBoundsGEP1:
@ -3112,7 +3114,7 @@ void BfIRCodeGen::HandleNextCmd()
if (result != NULL) if (result != NULL)
{ {
if (auto vecType = llvm::dyn_cast<llvm::VectorType>(result->getType())) if (auto vecType = llvm::dyn_cast<llvm::FixedVectorType>(result->getType()))
{ {
if (auto intType = llvm::dyn_cast<llvm::IntegerType>(vecType->getElementType())) if (auto intType = llvm::dyn_cast<llvm::IntegerType>(vecType->getElementType()))
{ {
@ -3180,7 +3182,7 @@ void BfIRCodeGen::HandleNextCmd()
if (result != NULL) if (result != NULL)
{ {
if (auto vecType = llvm::dyn_cast<llvm::VectorType>(result->getType())) if (auto vecType = llvm::dyn_cast<llvm::FixedVectorType>(result->getType()))
{ {
if (auto intType = llvm::dyn_cast<llvm::IntegerType>(vecType->getElementType())) if (auto intType = llvm::dyn_cast<llvm::IntegerType>(vecType->getElementType()))
{ {
@ -3336,7 +3338,7 @@ void BfIRCodeGen::HandleNextCmd()
} }
} }
auto inst = mIRBuilder->CreateAtomicCmpXchg(args[0], args[1], args[2], successOrdering, failOrdering); auto inst = mIRBuilder->CreateAtomicCmpXchg(args[0], args[1], args[2], llvm::MaybeAlign(), successOrdering, failOrdering);
if (intrinsicData->mIntrinsic == BfIRIntrinsic_AtomicCmpStore_Weak) if (intrinsicData->mIntrinsic == BfIRIntrinsic_AtomicCmpStore_Weak)
inst->setWeak(true); inst->setWeak(true);
if ((memoryKind & BfIRAtomicOrdering_Volatile) != 0) if ((memoryKind & BfIRAtomicOrdering_Volatile) != 0)
@ -3547,7 +3549,7 @@ void BfIRCodeGen::HandleNextCmd()
break; break;
} }
auto atomicRMW = mIRBuilder->CreateAtomicRMW(op, args[0], args[1], ordering); auto atomicRMW = mIRBuilder->CreateAtomicRMW(op, args[0], args[1], llvm::MaybeAlign(), ordering);
if ((memoryKind & BfIRAtomicOrdering_Volatile) != 0) if ((memoryKind & BfIRAtomicOrdering_Volatile) != 0)
atomicRMW->setVolatile(true); atomicRMW->setVolatile(true);
llvm::Value* result = atomicRMW; llvm::Value* result = atomicRMW;
@ -3776,7 +3778,17 @@ void BfIRCodeGen::HandleNextCmd()
CMD_PARAM(int, argIdx); CMD_PARAM(int, argIdx);
BfIRAttribute attribute = (BfIRAttribute)mStream->Read(); BfIRAttribute attribute = (BfIRAttribute)mStream->Read();
BF_ASSERT(llvm::isa<llvm::CallInst>(callInst)); BF_ASSERT(llvm::isa<llvm::CallInst>(callInst));
((llvm::CallInst*)callInst)->addAttribute(argIdx, LLVMMapAttribute(attribute)); auto attr = LLVMMapAttribute(attribute);
if (attr == llvm::Attribute::StructRet)
{
// FIXME: StructRet changed from EnumAttr to TypeAttr
//llvm::Attribute sret = llvm::Attribute::getWithStructRetType(*mLLVMContext, srt);
//((llvm::CallInst*)callInst)->addAttribute(argIdx, sret);
}
else
{
((llvm::CallInst*)callInst)->addAttribute(argIdx, attr);
}
} }
break; break;
case BfIRCmd_Call_AddAttribute1: case BfIRCmd_Call_AddAttribute1:
@ -3794,12 +3806,13 @@ void BfIRCodeGen::HandleNextCmd()
} }
else if (attribute == BfIRAttribute_ByVal) else if (attribute == BfIRAttribute_ByVal)
{ {
llvm::AttrBuilder B; // FIXME: Adding integer/type attribute without an argument.
/*llvm::AttrBuilder B;
B.addAttribute(llvm::Attribute::ByVal); B.addAttribute(llvm::Attribute::ByVal);
B.addAlignmentAttr(arg); B.addAlignmentAttr(arg);
auto attrList = ((llvm::CallInst*)callInst)->getAttributes(); auto attrList = ((llvm::CallInst*)callInst)->getAttributes();
attrList = attrList.addAttributes(*mLLVMContext, argIdx, B); attrList = attrList.addAttributes(*mLLVMContext, argIdx, B);
((llvm::CallInst*)callInst)->setAttributes(attrList); ((llvm::CallInst*)callInst)->setAttributes(attrList);*/
} }
} }
} }
@ -3854,7 +3867,13 @@ void BfIRCodeGen::HandleNextCmd()
else else
{ {
auto attr = LLVMMapAttribute(attribute); auto attr = LLVMMapAttribute(attribute);
if (attr != llvm::Attribute::None) if (attr == llvm::Attribute::StructRet)
{
// FIXME: StructRet changed from EnumAttr to TypeAttr
//llvm::Attribute sret = llvm::Attribute::getWithStructRetType(*mLLVMContext, srt);
//func->addAttribute(argIdx, sret);
}
else if (attr != llvm::Attribute::None)
func->addAttribute(argIdx, attr); func->addAttribute(argIdx, attr);
} }
} }
@ -3871,12 +3890,13 @@ void BfIRCodeGen::HandleNextCmd()
} }
else if (attribute == BfIRAttribute_ByVal) else if (attribute == BfIRAttribute_ByVal)
{ {
llvm::AttrBuilder B; // FIXME: Adding integer/type attribute without an argument.
/*llvm::AttrBuilder B;
B.addAttribute(llvm::Attribute::ByVal); B.addAttribute(llvm::Attribute::ByVal);
B.addAlignmentAttr(arg); B.addAlignmentAttr(arg);
auto attrList = ((llvm::Function*)func)->getAttributes(); auto attrList = ((llvm::Function*)func)->getAttributes();
attrList = attrList.addAttributes(*mLLVMContext, argIdx, B); attrList = attrList.addAttributes(*mLLVMContext, argIdx, B);
((llvm::Function*)func)->setAttributes(attrList); ((llvm::Function*)func)->setAttributes(attrList);*/
} }
} }
break; break;
@ -3966,7 +3986,7 @@ void BfIRCodeGen::HandleNextCmd()
CMD_PARAM(int, column); CMD_PARAM(int, column);
CMD_PARAM(llvm::MDNode*, diScope); CMD_PARAM(llvm::MDNode*, diScope);
CMD_PARAM(llvm::MDNode*, diInlinedAt); CMD_PARAM(llvm::MDNode*, diInlinedAt);
mDebugLoc = llvm::DebugLoc::get(line, column, diScope, diInlinedAt); mDebugLoc = llvm::DILocation::get(*mLLVMContext, line, column, diScope, diInlinedAt);
} }
break; break;
case BfIRCmd_Nop: case BfIRCmd_Nop:
@ -5179,7 +5199,7 @@ static void PopulateModulePassManager(llvm::legacy::PassManagerBase &MPM, const
// convert to more optimized IR using more aggressive simplify CFG options. // convert to more optimized IR using more aggressive simplify CFG options.
// The extra sinking transform can create larger basic blocks, so do this // The extra sinking transform can create larger basic blocks, so do this
// before SLP vectorization. // before SLP vectorization.
MPM.add(llvm::createCFGSimplificationPass(1, true, true, false, true)); MPM.add(llvm::createCFGSimplificationPass({ 1, true, true, false, false, true }));
if (options.mRunSLPAfterLoopVectorization && options.mSLPVectorize) { if (options.mRunSLPAfterLoopVectorization && options.mSLPVectorize) {
MPM.add(llvm::createSLPVectorizerPass()); // Vectorize parallel scalar chains. MPM.add(llvm::createSLPVectorizerPass()); // Vectorize parallel scalar chains.
@ -5343,7 +5363,7 @@ bool BfIRCodeGen::WriteObjectFile(const StringImpl& outFileName)
} }
std::error_code EC; std::error_code EC;
llvm::sys::fs::OpenFlags OpenFlags = llvm::sys::fs::F_None; llvm::sys::fs::OpenFlags OpenFlags = llvm::sys::fs::OF_None;
llvm::raw_fd_ostream out(outFileName.c_str(), EC, OpenFlags); llvm::raw_fd_ostream out(outFileName.c_str(), EC, OpenFlags);
@ -5368,7 +5388,7 @@ bool BfIRCodeGen::WriteObjectFile(const StringImpl& outFileName)
if ((enableLTO) || (mCodeGenOptions.mWriteBitcode)) if ((enableLTO) || (mCodeGenOptions.mWriteBitcode))
{ {
std::error_code ec; std::error_code ec;
outStream = new llvm::raw_fd_ostream(outFileName.c_str(), ec, llvm::sys::fs::F_None); outStream = new llvm::raw_fd_ostream(outFileName.c_str(), ec, llvm::sys::fs::OF_None);
if (outStream->has_error()) if (outStream->has_error())
{ {
return false; return false;
@ -5438,7 +5458,7 @@ bool BfIRCodeGen::WriteObjectFile(const StringImpl& outFileName)
bool BfIRCodeGen::WriteIR(const StringImpl& outFileName, StringImpl& error) bool BfIRCodeGen::WriteIR(const StringImpl& outFileName, StringImpl& error)
{ {
std::error_code ec; std::error_code ec;
llvm::raw_fd_ostream outStream(outFileName.c_str(), ec, llvm::sys::fs::OpenFlags::F_Text); llvm::raw_fd_ostream outStream(outFileName.c_str(), ec, llvm::sys::fs::OpenFlags::OF_Text);
if (ec) if (ec)
{ {
error = ec.message(); error = ec.message();

View file

@ -171,7 +171,7 @@
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<GenerateDebugInformation>DebugFull</GenerateDebugInformation> <GenerateDebugInformation>DebugFull</GenerateDebugInformation>
<OutputFile>$(SolutionDir)\IDE\dist\$(TargetName).dll</OutputFile> <OutputFile>$(SolutionDir)\IDE\dist\$(TargetName).dll</OutputFile>
<AdditionalDependencies>rpcrt4.lib;cabinet.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;libcurl_a.lib;wininet.lib;LLVMMCDisassembler.lib;LLVMSupport.lib;LLVMMC.lib;LLVMObject.lib;LLVMCore.lib;LLVMBitReader.lib;LLVMAsmParser.lib;LLVMMCParser.lib;LLVMCodeGen.lib;LLVMTarget.lib;LLVMScalarOpts.lib;LLVMInstCombine.lib;LLVMSelectionDAG.lib;LLVMProfileData.lib;LLVMAnalysis.lib;LLVMAsmPrinter.lib;LLVMBitWriter.lib;LLVMVectorize.lib;LLVMipo.lib;LLVMInstrumentation.lib;LLVMDebugInfoDWARF.lib;LLVMDebugInfoPDB.lib;LLVMDebugInfoCodeView.lib;LLVMGlobalISel.lib;LLVMBinaryFormat.lib;LLVMBitstreamReader.lib;LLVMLTO.lib;LLVMPasses.lib;LLVMLinker.lib;LLVMIRReader.lib;LLVMDemangle.lib;LLVMTransformUtils.lib;LLVMAggressiveInstCombine.lib;LLVMCFGuard.lib;LLVMTextAPI.lib;LLVMRemarks.lib;LLVMX86Info.lib;LLVMX86Desc.lib;LLVMX86CodeGen.lib;LLVMX86AsmParser.lib;LLVMX86Disassembler.lib;LLVMAArch64Info.lib;LLVMAArch64Utils.lib;LLVMAArch64Desc.lib;LLVMAArch64CodeGen.lib;LLVMAArch64AsmParser.lib;LLVMAArch64Disassembler.lib;LLVMARMInfo.lib;LLVMARMUtils.lib;LLVMARMDesc.lib;LLVMARMCodeGen.lib;LLVMARMAsmParser.lib;LLVMARMDisassembler.lib;LLVMWebAssemblyInfo.lib;LLVMWebAssemblyDesc.lib;LLVMWebAssemblyCodeGen.lib;LLVMWebAssemblyAsmParser.lib;LLVMWebAssemblyDisassembler.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>rpcrt4.lib;cabinet.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;libcurl_a.lib;wininet.lib;LLVMMCDisassembler.lib;LLVMSupport.lib;LLVMMC.lib;LLVMObject.lib;LLVMCore.lib;LLVMBitReader.lib;LLVMAsmParser.lib;LLVMMCParser.lib;LLVMCodeGen.lib;LLVMTarget.lib;LLVMScalarOpts.lib;LLVMInstCombine.lib;LLVMSelectionDAG.lib;LLVMProfileData.lib;LLVMAnalysis.lib;LLVMAsmPrinter.lib;LLVMBitWriter.lib;LLVMVectorize.lib;LLVMipo.lib;LLVMInstrumentation.lib;LLVMDebugInfoDWARF.lib;LLVMDebugInfoPDB.lib;LLVMDebugInfoCodeView.lib;LLVMGlobalISel.lib;LLVMBinaryFormat.lib;LLVMBitstreamReader.lib;LLVMLTO.lib;LLVMPasses.lib;LLVMLinker.lib;LLVMIRReader.lib;LLVMDemangle.lib;LLVMTransformUtils.lib;LLVMAggressiveInstCombine.lib;LLVMCFGuard.lib;LLVMTextAPI.lib;LLVMRemarks.lib;LLVMX86Info.lib;LLVMX86Desc.lib;LLVMX86CodeGen.lib;LLVMX86AsmParser.lib;LLVMX86Disassembler.lib;LLVMAArch64Info.lib;LLVMAArch64Utils.lib;LLVMAArch64Desc.lib;LLVMAArch64CodeGen.lib;LLVMAArch64AsmParser.lib;LLVMAArch64Disassembler.lib;LLVMARMInfo.lib;LLVMARMUtils.lib;LLVMARMDesc.lib;LLVMARMCodeGen.lib;LLVMARMAsmParser.lib;LLVMARMDisassembler.lib;LLVMWebAssemblyInfo.lib;LLVMWebAssemblyDesc.lib;LLVMWebAssemblyCodeGen.lib;LLVMWebAssemblyAsmParser.lib;LLVMWebAssemblyDisassembler.lib;LLVMWebAssemblyUtils.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\extern\llvm_win64_11_0_0\Debug\lib; ..\extern\curl\builds\libcurl-vc15-x64-release-static-zlib-static-ipv6-sspi-winssl\lib;..\extern\curl\deps\lib;..\extern\jemalloc_win\x64\debug</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>..\extern\llvm_win64_11_0_0\Debug\lib; ..\extern\curl\builds\libcurl-vc15-x64-release-static-zlib-static-ipv6-sspi-winssl\lib;..\extern\curl\deps\lib;..\extern\jemalloc_win\x64\debug</AdditionalLibraryDirectories>
<RandomizedBaseAddress>false</RandomizedBaseAddress> <RandomizedBaseAddress>false</RandomizedBaseAddress>
<ImportLibrary>$(SolutionDir)\IDE\dist\$(TargetName).lib</ImportLibrary> <ImportLibrary>$(SolutionDir)\IDE\dist\$(TargetName).lib</ImportLibrary>
@ -230,7 +230,7 @@
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
<OutputFile>$(SolutionDir)\IDE\dist\$(TargetName).dll</OutputFile> <OutputFile>$(SolutionDir)\IDE\dist\$(TargetName).dll</OutputFile>
<AdditionalLibraryDirectories>..\extern\llvm_win64_11_0_0\Release\lib; ..\extern\curl\builds\libcurl-vc15-x64-release-static-zlib-static-ipv6-sspi-winssl\lib;..\extern\curl\deps\lib;..\extern\jemalloc_win\x64\release</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>..\extern\llvm_win64_11_0_0\Release\lib; ..\extern\curl\builds\libcurl-vc15-x64-release-static-zlib-static-ipv6-sspi-winssl\lib;..\extern\curl\deps\lib;..\extern\jemalloc_win\x64\release</AdditionalLibraryDirectories>
<AdditionalDependencies>rpcrt4.lib;cabinet.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;libcurl_a.lib;wininet.lib;LLVMMCDisassembler.lib;LLVMSupport.lib;LLVMMC.lib;LLVMObject.lib;LLVMCore.lib;LLVMBitReader.lib;LLVMAsmParser.lib;LLVMMCParser.lib;LLVMCodeGen.lib;LLVMTarget.lib;LLVMScalarOpts.lib;LLVMInstCombine.lib;LLVMSelectionDAG.lib;LLVMProfileData.lib;LLVMAnalysis.lib;LLVMAsmPrinter.lib;LLVMBitWriter.lib;LLVMVectorize.lib;LLVMipo.lib;LLVMInstrumentation.lib;LLVMDebugInfoDWARF.lib;LLVMDebugInfoPDB.lib;LLVMDebugInfoCodeView.lib;LLVMGlobalISel.lib;LLVMBinaryFormat.lib;LLVMBitstreamReader.lib;LLVMLTO.lib;LLVMPasses.lib;LLVMLinker.lib;LLVMIRReader.lib;LLVMDemangle.lib;LLVMTransformUtils.lib;LLVMAggressiveInstCombine.lib;LLVMCFGuard.lib;LLVMTextAPI.lib;LLVMRemarks.lib;LLVMX86Info.lib;LLVMX86Desc.lib;LLVMX86CodeGen.lib;LLVMX86AsmParser.lib;LLVMX86Disassembler.lib;LLVMAArch64Info.lib;LLVMAArch64Utils.lib;LLVMAArch64Desc.lib;LLVMAArch64CodeGen.lib;LLVMAArch64AsmParser.lib;LLVMAArch64Disassembler.lib;LLVMARMInfo.lib;LLVMARMUtils.lib;LLVMARMDesc.lib;LLVMARMCodeGen.lib;LLVMARMAsmParser.lib;LLVMARMDisassembler.lib;LLVMWebAssemblyInfo.lib;LLVMWebAssemblyDesc.lib;LLVMWebAssemblyCodeGen.lib;LLVMWebAssemblyAsmParser.lib;LLVMWebAssemblyDisassembler.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>rpcrt4.lib;cabinet.lib;winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;libcurl_a.lib;wininet.lib;LLVMMCDisassembler.lib;LLVMSupport.lib;LLVMMC.lib;LLVMObject.lib;LLVMCore.lib;LLVMBitReader.lib;LLVMAsmParser.lib;LLVMMCParser.lib;LLVMCodeGen.lib;LLVMTarget.lib;LLVMScalarOpts.lib;LLVMInstCombine.lib;LLVMSelectionDAG.lib;LLVMProfileData.lib;LLVMAnalysis.lib;LLVMAsmPrinter.lib;LLVMBitWriter.lib;LLVMVectorize.lib;LLVMipo.lib;LLVMInstrumentation.lib;LLVMDebugInfoDWARF.lib;LLVMDebugInfoPDB.lib;LLVMDebugInfoCodeView.lib;LLVMGlobalISel.lib;LLVMBinaryFormat.lib;LLVMBitstreamReader.lib;LLVMLTO.lib;LLVMPasses.lib;LLVMLinker.lib;LLVMIRReader.lib;LLVMDemangle.lib;LLVMTransformUtils.lib;LLVMAggressiveInstCombine.lib;LLVMCFGuard.lib;LLVMTextAPI.lib;LLVMRemarks.lib;LLVMX86Info.lib;LLVMX86Desc.lib;LLVMX86CodeGen.lib;LLVMX86AsmParser.lib;LLVMX86Disassembler.lib;LLVMAArch64Info.lib;LLVMAArch64Utils.lib;LLVMAArch64Desc.lib;LLVMAArch64CodeGen.lib;LLVMAArch64AsmParser.lib;LLVMAArch64Disassembler.lib;LLVMARMInfo.lib;LLVMARMUtils.lib;LLVMARMDesc.lib;LLVMARMCodeGen.lib;LLVMARMAsmParser.lib;LLVMARMDisassembler.lib;LLVMWebAssemblyInfo.lib;LLVMWebAssemblyDesc.lib;LLVMWebAssemblyCodeGen.lib;LLVMWebAssemblyAsmParser.lib;LLVMWebAssemblyDisassembler.lib;LLVMWebAssemblyUtils.lib;%(AdditionalDependencies)</AdditionalDependencies>
<RandomizedBaseAddress>false</RandomizedBaseAddress> <RandomizedBaseAddress>false</RandomizedBaseAddress>
<FullProgramDatabaseFile>true</FullProgramDatabaseFile> <FullProgramDatabaseFile>true</FullProgramDatabaseFile>
<ImportLibrary>$(SolutionDir)\IDE\dist\$(TargetName).lib</ImportLibrary> <ImportLibrary>$(SolutionDir)\IDE\dist\$(TargetName).lib</ImportLibrary>

View file

@ -836,8 +836,13 @@ X64CPU::X64CPU() :
mInstrInfo = TheX86_64Target.createMCInstrInfo(); mInstrInfo = TheX86_64Target.createMCInstrInfo();
mMCObjectFileInfo = new MCObjectFileInfo(); mMCContext = new MCContext(Triple(triple), mAsmInfo, mRegisterInfo, mSubtargetInfo);
mMCContext = new MCContext(mAsmInfo, mRegisterInfo, mMCObjectFileInfo);
mMCObjectFileInfo = TheX86_64Target.createMCObjectFileInfo(*mMCContext, false);
if (!mMCObjectFileInfo)
return;
mMCContext->setObjectFileInfo(mMCObjectFileInfo);
MCDisassembler *disAsm = TheX86_64Target.createMCDisassembler(*mSubtargetInfo, *mMCContext); MCDisassembler *disAsm = TheX86_64Target.createMCDisassembler(*mSubtargetInfo, *mMCContext);
mDisAsm = disAsm; mDisAsm = disAsm;

View file

@ -443,8 +443,13 @@ X86CPU::X86CPU() :
mInstrInfo = TheX86_32Target.createMCInstrInfo(); mInstrInfo = TheX86_32Target.createMCInstrInfo();
mMCObjectFileInfo = new MCObjectFileInfo(); mMCContext = new MCContext(Triple(triple), mAsmInfo, mRegisterInfo, mSubtargetInfo);
mMCContext = new MCContext(mAsmInfo, mRegisterInfo, mMCObjectFileInfo);
mMCObjectFileInfo = TheX86_32Target.createMCObjectFileInfo(*mMCContext, false);
if (!mMCObjectFileInfo)
return;
mMCContext->setObjectFileInfo(mMCObjectFileInfo);
MCDisassembler *disAsm = TheX86_32Target.createMCDisassembler(*mSubtargetInfo, *mMCContext); MCDisassembler *disAsm = TheX86_32Target.createMCDisassembler(*mSubtargetInfo, *mMCContext);
mDisAsm = disAsm; mDisAsm = disAsm;