diff --git a/BeefBoot/BeefBoot.vcxproj b/BeefBoot/BeefBoot.vcxproj
index 0eba9b77..5a13fb11 100644
--- a/BeefBoot/BeefBoot.vcxproj
+++ b/BeefBoot/BeefBoot.vcxproj
@@ -106,7 +106,7 @@
Level3
Disabled
_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
- ../;../IDEHelper;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_11_0_0\llvm\include;..\extern\llvm_win64_11_0_0\include;..\extern\llvm-project_11_0_0\llvm\lib\Target;..\extern\llvm_win64_11_0_0\lib\Target\X86;..\extern\llvm-project_11_0_0\llvm\tools\clang\include
+ ../;../IDEHelper;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_13_0_1\llvm\include;..\extern\llvm_win64_13_0_1\include;..\extern\llvm-project_13_0_1\llvm\lib\Target;..\extern\llvm_win64_13_0_1\lib\Target\X86;..\extern\llvm-project_13_0_1\llvm\tools\clang\include
true
false
MultiThreadedDebug
@@ -146,7 +146,7 @@
true
NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
true
- ../;../IDEHelper;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_11_0_0\llvm\include;..\extern\llvm_win64_11_0_0\include;..\extern\llvm-project_11_0_0\llvm\lib\Target;..\extern\llvm_win64_11_0_0\lib\Target\X86;..\extern\llvm\tools\clang\include
+ ../;../IDEHelper;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_13_0_1\llvm\include;..\extern\llvm_win64_13_0_1\include;..\extern\llvm-project_13_0_1\llvm\lib\Target;..\extern\llvm_win64_13_0_1\lib\Target\X86;..\extern\llvm\tools\clang\include
MultiThreaded
false
diff --git a/BeefBoot/CMakeLists.txt b/BeefBoot/CMakeLists.txt
index 9ceb3c88..08236d59 100644
--- a/BeefBoot/CMakeLists.txt
+++ b/BeefBoot/CMakeLists.txt
@@ -44,8 +44,8 @@ if (${APPLE})
../BeefySysLib/
../BeefySysLib/third_party
../BeefySysLib/third_party/freetype/include
- ../extern/llvm-project_11_0_0/llvm/include
- ../extern/llvm-project_11_0_0/llvm/lib/Target
+ ../extern/llvm-project_13_0_1/llvm/include
+ ../extern/llvm-project_13_0_1/llvm/lib/Target
../IDEHelper
../BeefySysLib/platform/osx
@@ -57,8 +57,8 @@ else()
../BeefySysLib/
../BeefySysLib/third_party
../BeefySysLib/third_party/freetype/include
- ../extern/llvm-project_11_0_0/llvm/include
- ../extern/llvm-project_11_0_0/llvm/lib/Target
+ ../extern/llvm-project_13_0_1/llvm/include
+ ../extern/llvm-project_13_0_1/llvm/lib/Target
../IDEHelper
../BeefySysLib/platform/linux
@@ -74,18 +74,18 @@ if(CMAKE_BUILD_TYPE STREQUAL "Debug")
-D_DEBUG
)
include_directories(
- ../extern/llvm_linux_11_0_0/include
- ../extern/llvm_linux_11_0_0/lib/Target/X86
+ ../extern/llvm_linux_13_0_1/include
+ ../extern/llvm_linux_13_0_1/lib/Target/X86
)
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}")
- set(LLVM_LIB "${CMAKE_CURRENT_SOURCE_DIR}/../extern/llvm_linux_11_0_0/lib")
+ set(LLVM_LIB "${CMAKE_CURRENT_SOURCE_DIR}/../extern/llvm_linux_13_0_1/lib")
else()
include_directories(
- ../extern/llvm_linux_rel_11_0_0/include
- ../extern/llvm_linux_rel_11_0_0/lib/Target/X86
+ ../extern/llvm_linux_rel_13_0_1/include
+ ../extern/llvm_linux_rel_13_0_1/lib/Target/X86
)
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/${OUTPUT_RELEASE}")
- set(LLVM_LIB "${CMAKE_CURRENT_SOURCE_DIR}/../extern/llvm_linux_rel_11_0_0/lib")
+ set(LLVM_LIB "${CMAKE_CURRENT_SOURCE_DIR}/../extern/llvm_linux_rel_13_0_1/lib")
endif()
################### Dependencies ##################
@@ -134,7 +134,7 @@ add_executable(${PROJECT_NAME}
)
execute_process(
- COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../extern/llvm_linux_11_0_0/bin/llvm-config --system-libs --link-static
+ COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../extern/llvm_linux_13_0_1/bin/llvm-config --system-libs --link-static
OUTPUT_VARIABLE LLVM_SYSTEM_LIBS
OUTPUT_STRIP_TRAILING_WHITESPACE
)
diff --git a/Debugger32/Debugger32.vcxproj b/Debugger32/Debugger32.vcxproj
index c4bd07ae..9c1e17a8 100644
--- a/Debugger32/Debugger32.vcxproj
+++ b/Debugger32/Debugger32.vcxproj
@@ -145,7 +145,7 @@
Level3
Disabled
BF_DBG_32;WIN32;_DEBUG;_WINDOWS;_USRDLL;IDEHELPER_EXPORTS;BFSYSLIB_DYNAMIC;%(PreprocessorDefinitions)
- ../;../IDEHelper;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_11_0_0\llvm\include;..\extern\llvm_win64_11_0_0\include;..\extern\llvm-project_11_0_0\llvm\lib\Target;..\extern\llvm_win64_11_0_0\lib\Target\X86;..\extern\llvm-project_11_0_0\llvm\tools\clang\include
+ ../;../IDEHelper;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_13_0_1\llvm\include;..\extern\llvm_win64_13_0_1\include;..\extern\llvm-project_13_0_1\llvm\lib\Target;..\extern\llvm_win64_13_0_1\lib\Target\X86;..\extern\llvm-project_13_0_1\llvm\tools\clang\include
false
-D_SCL_SECURE_NO_WARNINGS %(AdditionalOptions)
false
@@ -183,7 +183,7 @@
true
true
BF_DBG_32;WIN32;NDEBUG;_WINDOWS;_USRDLL;IDEHELPER_EXPORTS;BFSYSLIB_DYNAMIC;%(PreprocessorDefinitions)
- ../;../IDEHelper;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_11_0_0\llvm\include;..\extern\llvm_win64_11_0_0\include;..\extern\llvm-project_11_0_0\llvm\lib\Target;..\extern\llvm_win64_11_0_0\lib\Target\X86;..\extern\llvm-project_11_0_0\llvm\tools\clang\include
+ ../;../IDEHelper;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_13_0_1\llvm\include;..\extern\llvm_win64_13_0_1\include;..\extern\llvm-project_13_0_1\llvm\lib\Target;..\extern\llvm_win64_13_0_1\lib\Target\X86;..\extern\llvm-project_13_0_1\llvm\tools\clang\include
MultiThreaded
false
diff --git a/Debugger64/Debugger64.vcxproj b/Debugger64/Debugger64.vcxproj
index 2c281774..57e46574 100644
--- a/Debugger64/Debugger64.vcxproj
+++ b/Debugger64/Debugger64.vcxproj
@@ -145,7 +145,7 @@
Level3
Disabled
BF_DBG_64;WIN32;_DEBUG;_WINDOWS;_USRDLL;IDEHELPER_EXPORTS;BFSYSLIB_DYNAMIC;%(PreprocessorDefinitions)
- ../;../IDEHelper;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_11_0_0\llvm\include;..\extern\llvm_win64_11_0_0\include;..\extern\llvm-project_11_0_0\llvm\lib\Target;..\extern\llvm_win64_11_0_0\lib\Target\X86;..\extern\llvm-project_11_0_0\llvm\tools\clang\include
+ ../;../IDEHelper;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_13_0_1\llvm\include;..\extern\llvm_win64_13_0_1\include;..\extern\llvm-project_13_0_1\llvm\lib\Target;..\extern\llvm_win64_13_0_1\lib\Target\X86;..\extern\llvm-project_13_0_1\llvm\tools\clang\include
false
-D_SCL_SECURE_NO_WARNINGS %(AdditionalOptions)
false
@@ -183,7 +183,7 @@
true
true
BF_DBG_64;WIN32;NDEBUG;_WINDOWS;_USRDLL;IDEHELPER_EXPORTS;BFSYSLIB_DYNAMIC;%(PreprocessorDefinitions)
- ../;../IDEHelper;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_11_0_0\llvm\include;..\extern\llvm_win64_11_0_0\include;..\extern\llvm-project_11_0_0\llvm\lib\Target;..\extern\llvm_win64_11_0_0\lib\Target\X86;..\extern\llvm-project_11_0_0\llvm\tools\clang\include
+ ../;../IDEHelper;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_13_0_1\llvm\include;..\extern\llvm_win64_13_0_1\include;..\extern\llvm-project_13_0_1\llvm\lib\Target;..\extern\llvm_win64_13_0_1\lib\Target\X86;..\extern\llvm-project_13_0_1\llvm\tools\clang\include
MultiThreaded
false
diff --git a/IDE/src/BuildContext.bf b/IDE/src/BuildContext.bf
index 6a588245..9635200e 100644
--- a/IDE/src/BuildContext.bf
+++ b/IDE/src/BuildContext.bf
@@ -630,7 +630,7 @@ namespace IDE
compilerExePath.Append(@"/upstream/emscripten/emcc.bat");
//linkLine.Append(" c:\\Beef\\wasm\\BeefRT.a -s STRICT=1 -s USE_PTHREADS=1 -s ALIASING_FUNCTION_POINTERS=1 -s ASSERTIONS=0 -s DISABLE_EXCEPTION_CATCHING=0 -s DEMANGLE_SUPPORT=0 -s EVAL_CTORS=1 -s WASM=1 -s \"EXPORTED_FUNCTIONS=['_BeefMain','_BeefDone','_pthread_mutexattr_init','_pthread_mutex_init','_emscripten_futex_wake','_calloc','_sbrk']\"");
linkLine.Append(" ", gApp.mInstallDir);
- linkLine.Append("..\\..\\wasm\\BeefRT.a -s STRICT=1 -s USE_PTHREADS=1 -s ALIASING_FUNCTION_POINTERS=1 -s ASSERTIONS=0 -s DISABLE_EXCEPTION_CATCHING=0 -s DEMANGLE_SUPPORT=0 -s EVAL_CTORS=1 -s WASM=1");
+ linkLine.Append("..\\..\\wasm\\BeefRT.a -s STRICT=1 -s USE_PTHREADS=1 -s ASSERTIONS=0 -s DISABLE_EXCEPTION_CATCHING=0 -s DEMANGLE_SUPPORT=0 -s WASM=1");
String workingDir = scope String();
if (!llvmDir.IsEmpty)
@@ -642,6 +642,8 @@ namespace IDE
workingDir.Append(gApp.mInstallDir);
}
+ linkLine.Replace('\\', '/');
+
//linkLine.Append(" --no-entry --export-all");
var runCmd = gApp.QueueRun(compilerExePath, linkLine, workingDir, .UTF8);
diff --git a/IDE/src/IDEApp.bf b/IDE/src/IDEApp.bf
index 5adb831a..7e0865fb 100644
--- a/IDE/src/IDEApp.bf
+++ b/IDE/src/IDEApp.bf
@@ -8004,7 +8004,7 @@ namespace IDE
}
}*/
- const int cArgFileThreshold = 0x7800;
+ const int cArgFileThreshold = 0x2000 - 1;
public ExecutionQueueCmd QueueRun(String fileName, String args, String workingDir, ArgsFileKind argsFileKind = .None)
{
@@ -8012,7 +8012,7 @@ namespace IDE
executionQueueCmd.mFileName = new String(fileName);
executionQueueCmd.mArgs = new String(args);
executionQueueCmd.mWorkingDir = new String(workingDir);
- if (args.Length > cArgFileThreshold)
+ if (fileName.Length + args.Length + 1 > cArgFileThreshold)
{
// Only use UTF16 if we absolutely need to
if ((argsFileKind == .UTF16WithBom) && (!args.HasMultibyteChars()))
@@ -9662,10 +9662,10 @@ namespace IDE
case .Linux:
newString.AppendF("./{} -lpthread -ldl -Wl,-rpath -Wl,$ORIGIN", rtName);
case .Wasm:
- newString.Append(mInstallDir);
+ /*newString.Append(mInstallDir);
newString.Append("Beef", IDEApp.sRTVersionStr, "RT");
newString.Append((Workspace.PlatformType.GetPtrSizeByName(gApp.mPlatformName) == 4) ? "32" : "64");
- newString.Append("_wasm.lib");
+ newString.Append("_wasm.lib");*/
default:
}
diff --git a/IDEHelper/Backend/BeIRCodeGen.cpp b/IDEHelper/Backend/BeIRCodeGen.cpp
index 858cb985..9046a5f5 100644
--- a/IDEHelper/Backend/BeIRCodeGen.cpp
+++ b/IDEHelper/Backend/BeIRCodeGen.cpp
@@ -2669,7 +2669,8 @@ void BeIRCodeGen::HandleNextCmd()
CMD_PARAM(int, line);
CMD_PARAM(int, column);
CMD_PARAM(BeMDNode*, diScope);
- CMD_PARAM(BeMDNode*, diInlinedAt);
+ CMD_PARAM(BeMDNode*, diInlinedAt);
+ BF_ASSERT(diScope != NULL);
mBeModule->SetCurrentDebugLocation(line - 1, column - 1, diScope, (BeDbgLoc*)diInlinedAt);
}
break;
diff --git a/IDEHelper/CMakeLists.txt b/IDEHelper/CMakeLists.txt
index a107fb24..0db952ad 100644
--- a/IDEHelper/CMakeLists.txt
+++ b/IDEHelper/CMakeLists.txt
@@ -49,8 +49,8 @@ if (${APPLE})
../BeefySysLib/
../BeefySysLib/third_party
../BeefySysLib/third_party/freetype/include
- ../extern/llvm-project_11_0_0/llvm/include
- ../extern/llvm-project_11_0_0/llvm/lib/Target
+ ../extern/llvm-project_13_0_1/llvm/include
+ ../extern/llvm-project_13_0_1/llvm/lib/Target
../BeefySysLib/platform/osx
)
@@ -61,8 +61,8 @@ else()
../BeefySysLib/
../BeefySysLib/third_party
../BeefySysLib/third_party/freetype/include
- ../extern/llvm-project_11_0_0/llvm/include
- ../extern/llvm-project_11_0_0/llvm/lib/Target
+ ../extern/llvm-project_13_0_1/llvm/include
+ ../extern/llvm-project_13_0_1/llvm/lib/Target
../BeefySysLib/platform/linux
)
@@ -77,24 +77,24 @@ if(CMAKE_BUILD_TYPE STREQUAL "Debug")
-D_DEBUG
)
include_directories(
- ../extern/llvm_linux_11_0_0/include
- ../extern/llvm_linux_11_0_0/lib/Target/X86
- ../extern/llvm_linux_11_0_0/lib/Target/AArch64
+ ../extern/llvm_linux_13_0_1/include
+ ../extern/llvm_linux_13_0_1/lib/Target/X86
+ ../extern/llvm_linux_13_0_1/lib/Target/AArch64
)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}")
set(CMAKE_EXECUTABLE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_DEBUG}")
- set(LLVM_LIB "${CMAKE_CURRENT_SOURCE_DIR}/../extern/llvm_linux_11_0_0/lib")
+ set(LLVM_LIB "${CMAKE_CURRENT_SOURCE_DIR}/../extern/llvm_linux_13_0_1/lib")
else()
include_directories(
- ../extern/llvm_linux_rel_11_0_0/include
- ../extern/llvm_linux_rel_11_0_0/lib/Target/X86
- ../extern/llvm_linux_rel_11_0_0/lib/Target/AArch64
+ ../extern/llvm_linux_rel_13_0_1/include
+ ../extern/llvm_linux_rel_13_0_1/lib/Target/X86
+ ../extern/llvm_linux_rel_13_0_1/lib/Target/AArch64
)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_RELEASE}")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_RELEASE}")
set(CMAKE_EXECUTABLE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${OUTPUT_RELEASE}")
- set(LLVM_LIB "${CMAKE_CURRENT_SOURCE_DIR}/../extern/llvm_linux_rel_11_0_0/lib")
+ set(LLVM_LIB "${CMAKE_CURRENT_SOURCE_DIR}/../extern/llvm_linux_rel_13_0_1/lib")
endif()
################### Dependencies ##################
@@ -192,15 +192,16 @@ add_library(${PROJECT_NAME} SHARED
)
execute_process(
- COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../extern/llvm_linux_11_0_0/bin/llvm-config --system-libs --link-static
+ COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../extern/llvm_linux_13_0_1/bin/llvm-config --system-libs --link-static
OUTPUT_VARIABLE LLVM_SYSTEM_LIBS
- OUTPUT_STRIP_TRAILING_WHITESPACE
+ OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(TARGET_LIBS_OS "${LLVM_SYSTEM_LIBS}")
if (HAVE_BACKTRACE_HEADERS)
string(APPEND TARGET_LIBS_OS " -lbacktrace")
+ string(STRIP ${TARGET_LIBS_OS} TARGET_LIBS_OS)
endif()
list(APPEND LLVM_LIBS
@@ -217,7 +218,7 @@ list(APPEND LLVM_LIBS
${LLVM_LIB}/libLLVMInstCombine.a
${LLVM_LIB}/libLLVMSelectionDAG.a
${LLVM_LIB}/libLLVMProfileData.a
- ${LLVM_LIB}/libLLVMTransformUtils.a
+
${LLVM_LIB}/libLLVMAnalysis.a
${LLVM_LIB}/libLLVMAsmPrinter.a
${LLVM_LIB}/libLLVMBitWriter.a
@@ -226,8 +227,9 @@ list(APPEND LLVM_LIBS
${LLVM_LIB}/libLLVMInstrumentation.a
${LLVM_LIB}/libLLVMDebugInfoDWARF.a
${LLVM_LIB}/libLLVMDebugInfoPDB.a
- ${LLVM_LIB}/libLLVMDebugInfoCodeView.a
+ ${LLVM_LIB}/libLLVMDebugInfoCodeView.a
${LLVM_LIB}/libLLVMGlobalISel.a
+ ${LLVM_LIB}/libLLVMTransformUtils.a
${LLVM_LIB}/libLLVMBinaryFormat.a
${LLVM_LIB}/libLLVMIRReader.a
${LLVM_LIB}/libLLVMLinker.a
@@ -263,6 +265,7 @@ list(APPEND LLVM_LIBS
${LLVM_LIB}/libLLVMWebAssemblyCodeGen.a
${LLVM_LIB}/libLLVMWebAssemblyAsmParser.a
${LLVM_LIB}/libLLVMWebAssemblyDisassembler.a
+ ${LLVM_LIB}/libLLVMWebAssemblyUtils.a
${LLVM_LIB}/libLLVMSupport.a
${LLVM_LIB}/libLLVMDemangle.a)
diff --git a/IDEHelper/Compiler/BfCompiler.cpp b/IDEHelper/Compiler/BfCompiler.cpp
index 160518da..34f2e7c8 100644
--- a/IDEHelper/Compiler/BfCompiler.cpp
+++ b/IDEHelper/Compiler/BfCompiler.cpp
@@ -1794,7 +1794,7 @@ void BfCompiler::CreateVData(BfVDataModule* bfModule)
auto res = bfModule->mBfIRBuilder->CreateCall(mainFunc, args);
args.clear();
bfModule->mBfIRBuilder->CreateCall(shutdownFunc, args);
- if (mainHasArgs)
+ if (mainHasRet)
bfModule->mBfIRBuilder->CreateRet(res);
else
bfModule->mBfIRBuilder->CreateRetVoid();
@@ -1815,7 +1815,7 @@ void BfCompiler::CreateVData(BfVDataModule* bfModule)
}
}
- if ((mOptions.mPlatformType != BfPlatformType_Windows) &&
+ if ((mOptions.mPlatformType != BfPlatformType_Windows) && (mainHasArgs) &&
((targetType == BfTargetType_BeefConsoleApplication) || (targetType == BfTargetType_BeefTest)))
{
SmallVector paramTypes;
@@ -1827,11 +1827,8 @@ void BfCompiler::CreateVData(BfVDataModule* bfModule)
bfModule->SetupIRMethod(NULL, setCmdLineFunc, false);
SmallVector args;
- if (mainHasArgs)
- {
- args.push_back(bfModule->mBfIRBuilder->GetArgument(0));
- args.push_back(bfModule->mBfIRBuilder->GetArgument(1));
- }
+ args.push_back(bfModule->mBfIRBuilder->GetArgument(0));
+ args.push_back(bfModule->mBfIRBuilder->GetArgument(1));
bfModule->mBfIRBuilder->CreateCall(setCmdLineFunc, args);
}
diff --git a/IDEHelper/Compiler/BfIRBuilder.cpp b/IDEHelper/Compiler/BfIRBuilder.cpp
index 5944533d..57aba0e6 100644
--- a/IDEHelper/Compiler/BfIRBuilder.cpp
+++ b/IDEHelper/Compiler/BfIRBuilder.cpp
@@ -5396,6 +5396,7 @@ void BfIRBuilder::UpdateDebugLocation(BfIRValue inst)
void BfIRBuilder::SetCurrentDebugLocation(int line, int column, BfIRMDNode diScope, BfIRMDNode diInlinedAt)
{
+ BF_ASSERT(diScope);
if (mDbgVerifyCodeGen && gDebugDbgLoc)
{
OutputDebugStrF("SetCurrentDebugLocation %d %d:%d\n", diScope.mId, line, column);
diff --git a/IDEHelper/Compiler/BfIRCodeGen.cpp b/IDEHelper/Compiler/BfIRCodeGen.cpp
index 0853ceda..f31f3119 100644
--- a/IDEHelper/Compiler/BfIRCodeGen.cpp
+++ b/IDEHelper/Compiler/BfIRCodeGen.cpp
@@ -486,6 +486,12 @@ void BfIRCodeGen::FixValues(llvm::StructType* structType, llvm::SmallVectorgetType()->getScalarSizeInBits() > mPtrSize * 8)
+ val = mIRBuilder->CreateIntCast(val, llvm::Type::getInt32Ty(*mLLVMContext), false);
+}
+
BfTypeCode BfIRCodeGen::GetTypeCode(llvm::Type* type, bool isSigned)
{
if (type->isIntegerTy())
@@ -674,7 +680,9 @@ void BfIRCodeGen::SetResult(int id, llvm::MDNode* md)
void BfIRCodeGen::ProcessBfIRData(const BfSizedArray& 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)
{
@@ -688,7 +696,7 @@ void BfIRCodeGen::ProcessBfIRData(const BfSizedArray& buffer)
}
}
};
- mLLVMContext->setInlineAsmDiagnosticHandler(InlineAsmErrorHook::StaticHandler, this);
+ mLLVMContext->setInlineAsmDiagnosticHandler(InlineAsmErrorHook::StaticHandler, this);*/
BF_ASSERT(mStream == NULL);
mStream = new ChunkedDataBuffer();
@@ -924,7 +932,7 @@ void BfIRCodeGen::Read(llvm::Value*& llvmValue, BfIRCodeGenEntry** codeGenEntry,
llvm::ConstantInt::get(llvm::Type::getInt32Ty(*mLLVMContext), idx0),
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;
}
else if (constType == BfConstType_ExtractValue)
@@ -1273,7 +1281,7 @@ llvm::Value* BfIRCodeGen::TryToVector(llvm::Value* value, llvm::Type* elemType)
return mIRBuilder->CreateAlignedLoad(ptrVal0, llvm::MaybeAlign(1));
}
- if (auto vecType = llvm::dyn_cast(ptrElemType))
+ if (auto vecType = llvm::dyn_cast(ptrElemType))
{
if (vecType->getElementType() == elemType)
return mIRBuilder->CreateAlignedLoad(value, llvm::MaybeAlign(1));
@@ -1567,7 +1575,7 @@ void BfIRCodeGen::CreateMemSet(llvm::Value* addr, llvm::Value* val, llvm::Value*
headVal = mIRBuilder->CreateBitCast(addr, intTy->getPointerTo());
llvm::Value* ptrVal = headVal;
if (curOffset != 0)
- ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(NULL, headVal, curOffset / 8);
+ ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(intTy, headVal, curOffset / 8);
mIRBuilder->CreateStore(constVal, ptrVal, isVolatile);
curOffset += 8;
@@ -1586,7 +1594,7 @@ void BfIRCodeGen::CreateMemSet(llvm::Value* addr, llvm::Value* val, llvm::Value*
headVal = mIRBuilder->CreateBitCast(addr, intTy->getPointerTo());
llvm::Value* ptrVal = headVal;
if (curOffset != 0)
- ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(NULL, headVal, curOffset / 4);
+ ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(intTy, headVal, curOffset / 4);
mIRBuilder->CreateStore(constVal, ptrVal, isVolatile);
curOffset += 4;
@@ -1605,7 +1613,7 @@ void BfIRCodeGen::CreateMemSet(llvm::Value* addr, llvm::Value* val, llvm::Value*
headVal = mIRBuilder->CreateBitCast(addr, intTy->getPointerTo());
llvm::Value* ptrVal = headVal;
if (curOffset != 0)
- ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(NULL, headVal, curOffset / 2);
+ ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(intTy, headVal, curOffset / 2);
mIRBuilder->CreateStore(constVal, ptrVal, isVolatile);
curOffset += 2;
@@ -1624,7 +1632,7 @@ void BfIRCodeGen::CreateMemSet(llvm::Value* addr, llvm::Value* val, llvm::Value*
headVal = mIRBuilder->CreateBitCast(addr, intTy->getPointerTo());
llvm::Value* ptrVal = headVal;
if (curOffset != 0)
- ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(NULL, headVal, curOffset / 1);
+ ptrVal = mIRBuilder->CreateConstInBoundsGEP1_32(intTy, headVal, curOffset / 1);
mIRBuilder->CreateStore(constVal, ptrVal, isVolatile);
curOffset += 1;
@@ -1670,7 +1678,9 @@ void BfIRCodeGen::InitTarget()
else if (mCodeGenOptions.mOptLevel == BfOptLevel_O3)
optLvl = llvm::CodeGenOpt::Aggressive;
- if (mCodeGenOptions.mSIMDSetting == BfSIMDSetting_SSE)
+ if (theTriple.isWasm())
+ featuresStr = "+atomics,+bulk-memory,+mutable-globals,+sign-ext";
+ else if (mCodeGenOptions.mSIMDSetting == BfSIMDSetting_SSE)
featuresStr = "+sse";
else if (mCodeGenOptions.mSIMDSetting == BfSIMDSetting_SSE2)
featuresStr = "+sse2";
@@ -1683,7 +1693,7 @@ void BfIRCodeGen::InitTarget()
else if (mCodeGenOptions.mSIMDSetting == BfSIMDSetting_AVX)
featuresStr = "+avx";
else if (mCodeGenOptions.mSIMDSetting == BfSIMDSetting_AVX2)
- featuresStr = "+avx2";
+ featuresStr = "+avx2";
llvm::Optional relocModel;
llvm::CodeModel::Model cmModel = llvm::CodeModel::Small;
@@ -1787,7 +1797,7 @@ void BfIRCodeGen::HandleNextCmd()
{
CMD_PARAM(String, fileName);
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)
{
Fail("Failed writing IR '" + fileName + "': " + ec.message());
@@ -2311,12 +2321,12 @@ void BfIRCodeGen::HandleNextCmd()
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()));
break;
}
- SetResult(curId, mIRBuilder->CreateConstInBoundsGEP1_32(NULL, val, idx0));
+ SetResult(curId, mIRBuilder->CreateConstInBoundsGEP1_32(val->getType()->getPointerElementType(), val, idx0));
}
break;
case BfIRCmd_InboundsGEP2_32:
@@ -2324,7 +2334,7 @@ void BfIRCodeGen::HandleNextCmd()
CMD_PARAM(llvm::Value*, val);
CMD_PARAM(int, idx0);
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;
case BfIRCmd_InBoundsGEP1:
@@ -2338,7 +2348,7 @@ void BfIRCodeGen::HandleNextCmd()
SetResult(curId, mIRBuilder->CreateBitCast(gepResult, val->getType()));
break;
}
-
+ FixIndexer(idx0);
SetResult(curId, mIRBuilder->CreateInBoundsGEP(val, idx0));
}
break;
@@ -2347,6 +2357,8 @@ void BfIRCodeGen::HandleNextCmd()
CMD_PARAM(llvm::Value*, val);
CMD_PARAM(llvm::Value*, idx0);
CMD_PARAM(llvm::Value*, idx1);
+ FixIndexer(idx0);
+ FixIndexer(idx1);
llvm::Value* indices[2] = { idx0, idx1 };
SetResult(curId, FixGEP(val, mIRBuilder->CreateInBoundsGEP(val, llvm::makeArrayRef(indices))));
}
@@ -3112,7 +3124,7 @@ void BfIRCodeGen::HandleNextCmd()
if (result != NULL)
{
- if (auto vecType = llvm::dyn_cast(result->getType()))
+ if (auto vecType = llvm::dyn_cast(result->getType()))
{
if (auto intType = llvm::dyn_cast(vecType->getElementType()))
{
@@ -3180,7 +3192,7 @@ void BfIRCodeGen::HandleNextCmd()
if (result != NULL)
{
- if (auto vecType = llvm::dyn_cast(result->getType()))
+ if (auto vecType = llvm::dyn_cast(result->getType()))
{
if (auto intType = llvm::dyn_cast(vecType->getElementType()))
{
@@ -3336,7 +3348,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)
inst->setWeak(true);
if ((memoryKind & BfIRAtomicOrdering_Volatile) != 0)
@@ -3547,7 +3559,7 @@ void BfIRCodeGen::HandleNextCmd()
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)
atomicRMW->setVolatile(true);
llvm::Value* result = atomicRMW;
@@ -3776,7 +3788,17 @@ void BfIRCodeGen::HandleNextCmd()
CMD_PARAM(int, argIdx);
BfIRAttribute attribute = (BfIRAttribute)mStream->Read();
BF_ASSERT(llvm::isa(callInst));
- ((llvm::CallInst*)callInst)->addAttribute(argIdx, LLVMMapAttribute(attribute));
+ auto attr = LLVMMapAttribute(attribute);
+ if (attr == llvm::Attribute::StructRet)
+ {
+ auto funcType = ((llvm::CallInst*)callInst)->getFunctionType();
+ llvm::Attribute sret = llvm::Attribute::getWithStructRetType(*mLLVMContext, funcType->getFunctionParamType(argIdx - 1)->getPointerElementType());
+ ((llvm::CallInst*)callInst)->addAttribute(argIdx, sret);
+ }
+ else
+ {
+ ((llvm::CallInst*)callInst)->addAttribute(argIdx, attr);
+ }
}
break;
case BfIRCmd_Call_AddAttribute1:
@@ -3794,12 +3816,11 @@ void BfIRCodeGen::HandleNextCmd()
}
else if (attribute == BfIRAttribute_ByVal)
{
- llvm::AttrBuilder B;
- B.addAttribute(llvm::Attribute::ByVal);
- B.addAlignmentAttr(arg);
- auto attrList = ((llvm::CallInst*)callInst)->getAttributes();
- attrList = attrList.addAttributes(*mLLVMContext, argIdx, B);
- ((llvm::CallInst*)callInst)->setAttributes(attrList);
+ auto funcType = ((llvm::CallInst*)callInst)->getFunctionType();
+ llvm::Attribute byValAttr = llvm::Attribute::getWithByValType(*mLLVMContext, funcType->getFunctionParamType(argIdx - 1)->getPointerElementType());
+ llvm::Attribute alignAttr = llvm::Attribute::getWithAlignment(*mLLVMContext, llvm::Align(arg));
+ ((llvm::CallInst*)callInst)->addAttribute(argIdx, byValAttr);
+ ((llvm::CallInst*)callInst)->addAttribute(argIdx, alignAttr);
}
}
}
@@ -3854,7 +3875,13 @@ void BfIRCodeGen::HandleNextCmd()
else
{
auto attr = LLVMMapAttribute(attribute);
- if (attr != llvm::Attribute::None)
+ if (attr == llvm::Attribute::StructRet)
+ {
+ auto funcType = func->getFunctionType();
+ llvm::Attribute sret = llvm::Attribute::getWithStructRetType(*mLLVMContext, funcType->getFunctionParamType(argIdx - 1)->getPointerElementType());
+ func->addAttribute(argIdx, sret);
+ }
+ else if (attr != llvm::Attribute::None)
func->addAttribute(argIdx, attr);
}
}
@@ -3871,12 +3898,11 @@ void BfIRCodeGen::HandleNextCmd()
}
else if (attribute == BfIRAttribute_ByVal)
{
- llvm::AttrBuilder B;
- B.addAttribute(llvm::Attribute::ByVal);
- B.addAlignmentAttr(arg);
- auto attrList = ((llvm::Function*)func)->getAttributes();
- attrList = attrList.addAttributes(*mLLVMContext, argIdx, B);
- ((llvm::Function*)func)->setAttributes(attrList);
+ auto funcType = func->getFunctionType();
+ llvm::Attribute byValAttr = llvm::Attribute::getWithByValType(*mLLVMContext, funcType->getFunctionParamType(argIdx - 1)->getPointerElementType());
+ llvm::Attribute alignAttr = llvm::Attribute::getWithAlignment(*mLLVMContext, llvm::Align(arg));
+ func->addAttribute(argIdx, byValAttr);
+ func->addAttribute(argIdx, alignAttr);
}
}
break;
@@ -3966,7 +3992,7 @@ void BfIRCodeGen::HandleNextCmd()
CMD_PARAM(int, column);
CMD_PARAM(llvm::MDNode*, diScope);
CMD_PARAM(llvm::MDNode*, diInlinedAt);
- mDebugLoc = llvm::DebugLoc::get(line, column, diScope, diInlinedAt);
+ mDebugLoc = llvm::DILocation::get(*mLLVMContext, line, column, diScope, diInlinedAt);
}
break;
case BfIRCmd_Nop:
@@ -5179,7 +5205,7 @@ static void PopulateModulePassManager(llvm::legacy::PassManagerBase &MPM, const
// convert to more optimized IR using more aggressive simplify CFG options.
// The extra sinking transform can create larger basic blocks, so do this
// 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) {
MPM.add(llvm::createSLPVectorizerPass()); // Vectorize parallel scalar chains.
@@ -5343,7 +5369,7 @@ bool BfIRCodeGen::WriteObjectFile(const StringImpl& outFileName)
}
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);
@@ -5368,7 +5394,7 @@ bool BfIRCodeGen::WriteObjectFile(const StringImpl& outFileName)
if ((enableLTO) || (mCodeGenOptions.mWriteBitcode))
{
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())
{
return false;
@@ -5438,7 +5464,7 @@ bool BfIRCodeGen::WriteObjectFile(const StringImpl& outFileName)
bool BfIRCodeGen::WriteIR(const StringImpl& outFileName, StringImpl& error)
{
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)
{
error = ec.message();
diff --git a/IDEHelper/Compiler/BfIRCodeGen.h b/IDEHelper/Compiler/BfIRCodeGen.h
index 2fcda96f..b2c7721c 100644
--- a/IDEHelper/Compiler/BfIRCodeGen.h
+++ b/IDEHelper/Compiler/BfIRCodeGen.h
@@ -125,6 +125,7 @@ public:
public:
void InitTarget();
void FixValues(llvm::StructType* structType, llvm::SmallVector& values);
+ void FixIndexer(llvm::Value*& val);
BfTypeCode GetTypeCode(llvm::Type* type, bool isSigned);
llvm::Type* GetLLVMType(BfTypeCode typeCode, bool& isSigned);
BfIRTypeEntry& GetTypeEntry(int typeId);
diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp
index 9eed862d..7ca94ec6 100644
--- a/IDEHelper/Compiler/BfModule.cpp
+++ b/IDEHelper/Compiler/BfModule.cpp
@@ -2614,9 +2614,13 @@ void BfModule::UpdateSrcPos(BfAstNode* astNode, BfSrcPosFlags flags, int debugLo
if (mCurMethodState->mCrossingMixin)
inlineAt = BfIRMDNode();
- if ((!useDIScope) && (mIsComptimeModule))
+ if ((!useDIScope) && (mIsComptimeModule))
useDIScope = wantDIFile;
- mBfIRBuilder->SetCurrentDebugLocation(mCurFilePosition.mCurLine + 1, column, useDIScope, inlineAt);
+
+ if (!useDIScope)
+ mBfIRBuilder->ClearDebugLocation();
+ else
+ mBfIRBuilder->SetCurrentDebugLocation(mCurFilePosition.mCurLine + 1, column, useDIScope, inlineAt);
if ((flags & BfSrcPosFlag_Expression) == 0)
mBfIRBuilder->CreateStatementStart();
}
@@ -2639,15 +2643,19 @@ void BfModule::SetIllegalSrcPos(BfSrcPosFlags flags)
{
if ((mBfIRBuilder->DbgHasInfo()) && (mCurMethodState != NULL))
{
- if ((mCurMethodState->mCurScope->mDIInlinedAt) && (mCompiler->mOptions.IsCodeView()))
+ auto curScope = mCurMethodState->mCurScope->mDIScope;
+ if (curScope)
{
- // Currently, CodeView does not record column positions so we can't use an illegal column position as an "invalid" marker
- mBfIRBuilder->SetCurrentDebugLocation(0, 0, mCurMethodState->mCurScope->mDIScope, mCurMethodState->mCurScope->mDIInlinedAt);
- }
- else
- {
- // Set to whatever it previously was but at column zero, which we will know to be illegal
- mBfIRBuilder->SetCurrentDebugLocation(mCurFilePosition.mCurLine + 1, 0, mCurMethodState->mCurScope->mDIScope, mCurMethodState->mCurScope->mDIInlinedAt);
+ if ((mCurMethodState->mCurScope->mDIInlinedAt) && (mCompiler->mOptions.IsCodeView()))
+ {
+ // Currently, CodeView does not record column positions so we can't use an illegal column position as an "invalid" marker
+ mBfIRBuilder->SetCurrentDebugLocation(0, 0, curScope, mCurMethodState->mCurScope->mDIInlinedAt);
+ }
+ else
+ {
+ // Set to whatever it previously was but at column zero, which we will know to be illegal
+ mBfIRBuilder->SetCurrentDebugLocation(mCurFilePosition.mCurLine + 1, 0, curScope, mCurMethodState->mCurScope->mDIInlinedAt);
+ }
}
if ((flags & BfSrcPosFlag_Expression) == 0)
diff --git a/IDEHelper/Compiler/BfStmtEvaluator.cpp b/IDEHelper/Compiler/BfStmtEvaluator.cpp
index 00cd1665..6c528bba 100644
--- a/IDEHelper/Compiler/BfStmtEvaluator.cpp
+++ b/IDEHelper/Compiler/BfStmtEvaluator.cpp
@@ -148,7 +148,8 @@ bool BfModule::AddDeferredCallEntry(BfDeferredCallEntry* deferredCallEntry, BfSc
mBfIRBuilder->SetInsertPointAtStart(mCurMethodState->mIRInitBlock);
auto scopeHead = &mCurMethodState->mHeadScope;
- mBfIRBuilder->SetCurrentDebugLocation(mCurFilePosition.mCurLine + 1, 0, scopeHead->mDIScope, BfIRMDNode());
+ if (scopeHead->mDIScope)
+ mBfIRBuilder->SetCurrentDebugLocation(mCurFilePosition.mCurLine + 1, 0, scopeHead->mDIScope, BfIRMDNode());
if (WantsLifetimes())
mBfIRBuilder->CreateLifetimeStart(listEntry->mDynCallTail);
@@ -164,7 +165,8 @@ bool BfModule::AddDeferredCallEntry(BfDeferredCallEntry* deferredCallEntry, BfSc
mBfIRBuilder->SetInsertPoint(mCurMethodState->mIRInitBlock);
- mBfIRBuilder->SetCurrentDebugLocation(mCurFilePosition.mCurLine + 1, 0, scopeHead->mDIScope, BfIRMDNode());
+ if (scopeHead->mDIScope)
+ mBfIRBuilder->SetCurrentDebugLocation(mCurFilePosition.mCurLine + 1, 0, scopeHead->mDIScope, BfIRMDNode());
mBfIRBuilder->CreateStatementStart();
//TODO: Make this work for LLVM - we need a proper debug location
diff --git a/IDEHelper/IDEHelper.vcxproj b/IDEHelper/IDEHelper.vcxproj
index f2e39a4f..dca41ae5 100644
--- a/IDEHelper/IDEHelper.vcxproj
+++ b/IDEHelper/IDEHelper.vcxproj
@@ -160,7 +160,7 @@
Level3
Disabled
WIN32;_DEBUG;_WINDOWS;_USRDLL;IDEHELPER_EXPORTS;BFSYSLIB_DYNAMIC;%(PreprocessorDefinitions)
- ../;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_11_0_0\llvm\include;..\extern\llvm_win64_11_0_0\include;..\extern\llvm-project_11_0_0\llvm\lib\Target;..\extern\llvm_win64_11_0_0\lib\Target\AArch64;..\extern\llvm_win64_11_0_0\lib\Target\X86;..\extern\llvm-project_11_0_0\llvm\tools\clang\include;..\extern\curl\builds\libcurl-vc15-x64-release-static-zlib-static-ipv6-sspi-winssl\include
+ ../;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_13_0_1\llvm\include;..\extern\llvm_win64_13_0_1\include;..\extern\llvm-project_13_0_1\llvm\lib\Target;..\extern\llvm_win64_13_0_1\lib\Target\AArch64;..\extern\llvm_win64_13_0_1\lib\Target\X86;..\extern\llvm-project_13_0_1\llvm\tools\clang\include;..\extern\curl\builds\libcurl-vc15-x64-release-static-zlib-static-ipv6-sspi-winssl\include
false
-D_SCL_SECURE_NO_WARNINGS %(AdditionalOptions)
MultiThreadedDebug
@@ -171,8 +171,8 @@
Windows
DebugFull
$(SolutionDir)\IDE\dist\$(TargetName).dll
- 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)
- ..\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
+ 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)
+ ..\extern\llvm_win64_13_0_1\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
false
$(SolutionDir)\IDE\dist\$(TargetName).lib
MSVCRT
@@ -219,7 +219,7 @@
true
true
zBP_DISABLED;WIN32;NDEBUG;_WINDOWS;_USRDLL;IDEHELPER_EXPORTS;BFSYSLIB_DYNAMIC;%(PreprocessorDefinitions)
- ../;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_11_0_0\llvm\include;..\extern\llvm_win64_11_0_0\include;..\extern\llvm-project_11_0_0\llvm\lib\Target;..\extern\llvm_win64_11_0_0\lib\Target\X86;..\extern\llvm-project_11_0_0\llvm\tools\clang\include;..\extern\curl\builds\libcurl-vc15-x64-release-static-zlib-static-ipv6-sspi-winssl\include
+ ../;../BeefySysLib/platform/win;../BeefySysLib/third_party;..\extern\llvm-project_13_0_1\llvm\include;..\extern\llvm_win64_13_0_1\include;..\extern\llvm-project_13_0_1\llvm\lib\Target;..\extern\llvm_win64_13_0_1\lib\Target\X86;..\extern\llvm-project_13_0_1\llvm\tools\clang\include;..\extern\curl\builds\libcurl-vc15-x64-release-static-zlib-static-ipv6-sspi-winssl\include
MultiThreaded
false
@@ -229,8 +229,8 @@
true
true
$(SolutionDir)\IDE\dist\$(TargetName).dll
- ..\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
- 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)
+ ..\extern\llvm_win64_13_0_1\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
+ 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)
false
true
$(SolutionDir)\IDE\dist\$(TargetName).lib
diff --git a/IDEHelper/X64.cpp b/IDEHelper/X64.cpp
index 66817941..feebc3d2 100644
--- a/IDEHelper/X64.cpp
+++ b/IDEHelper/X64.cpp
@@ -835,9 +835,14 @@ X64CPU::X64CPU() :
return;
mInstrInfo = TheX86_64Target.createMCInstrInfo();
+
+ mMCContext = new MCContext(Triple(triple), mAsmInfo, mRegisterInfo, mSubtargetInfo);
- mMCObjectFileInfo = new MCObjectFileInfo();
- 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);
mDisAsm = disAsm;
diff --git a/IDEHelper/X86.cpp b/IDEHelper/X86.cpp
index 0881bdac..0b38a3c1 100644
--- a/IDEHelper/X86.cpp
+++ b/IDEHelper/X86.cpp
@@ -443,8 +443,13 @@ X86CPU::X86CPU() :
mInstrInfo = TheX86_32Target.createMCInstrInfo();
- mMCObjectFileInfo = new MCObjectFileInfo();
- mMCContext = new MCContext(mAsmInfo, mRegisterInfo, mMCObjectFileInfo);
+ mMCContext = new MCContext(Triple(triple), mAsmInfo, mRegisterInfo, mSubtargetInfo);
+
+ mMCObjectFileInfo = TheX86_32Target.createMCObjectFileInfo(*mMCContext, false);
+ if (!mMCObjectFileInfo)
+ return;
+
+ mMCContext->setObjectFileInfo(mMCObjectFileInfo);
MCDisassembler *disAsm = TheX86_32Target.createMCDisassembler(*mSubtargetInfo, *mMCContext);
mDisAsm = disAsm;
diff --git a/bin/build.bat b/bin/build.bat
index e8c89a1f..a887c62e 100644
--- a/bin/build.bat
+++ b/bin/build.bat
@@ -14,7 +14,7 @@ PUSHD %~dp0..\
mkdir stats
:STATS_HAS
-@IF EXIST extern\llvm-project_11_0_0 GOTO LLVM_HAS
+@IF EXIST extern\llvm_win64_13_0_1\_Done.txt GOTO LLVM_HAS
call extern\llvm_build.bat
@IF %ERRORLEVEL% NEQ 0 GOTO HADERROR
:LLVM_HAS
diff --git a/bin/build.sh b/bin/build.sh
index 5c99230f..22c3b141 100755
--- a/bin/build.sh
+++ b/bin/build.sh
@@ -20,7 +20,7 @@ if [ ! -f ../BeefySysLib/third_party/libffi/Makefile ]; then
cd $SCRIPTPATH
fi
-if [ ! -d ../extern/llvm_linux_11_0_0/bin ]; then
+if [ ! -f ../extern/llvm_linux_13_0_1/_Done.txt ]; then
echo Building LLVM...
cd ../extern
./llvm_build.sh
diff --git a/bin/build_wasm.bat b/bin/build_wasm.bat
index d3ffc43c..c7db0417 100644
--- a/bin/build_wasm.bat
+++ b/bin/build_wasm.bat
@@ -1,4 +1,4 @@
mkdir ..\wasm
cd ..\wasm
-call emcc ..\BeefRT\rt\Math.cpp ..\BeefRT\rt\Object.cpp ..\BeefRT\rt\Thread.cpp ..\BeefRT\rt\Internal.cpp ..\BeefySysLib\platform\wasm\WasmCommon.cpp ..\BeefySysLib\Common.cpp ..\BeefySysLib\util\String.cpp ..\BeefySysLib\util\UTF8.cpp ..\BeefySysLib\third_party\utf8proc\utf8proc.c -I..\ -I..\BeefySysLib -I..\BeefySysLib\platform\wasm -g -DBF_DISABLE_FFI -c -DBF_SMALL -s WASM=1 -s USE_PTHREADS=1
+call emcc ..\BeefRT\rt\Math.cpp ..\BeefRT\rt\Object.cpp ..\BeefRT\rt\Thread.cpp ..\BeefRT\rt\Internal.cpp ..\BeefySysLib\platform\wasm\WasmCommon.cpp ..\BeefySysLib\Common.cpp ..\BeefySysLib\util\String.cpp ..\BeefySysLib\util\UTF8.cpp ..\BeefySysLib\third_party\utf8proc\utf8proc.c -I..\ -I..\BeefySysLib -I..\BeefySysLib\platform\wasm -g -DBF_DISABLE_FFI -c -s WASM=1 -s USE_PTHREADS=1
emar r BeefRT.a Common.o Internal.o Math.o Object.o String.o Thread.o UTF8.o utf8proc.o WasmCommon.o
\ No newline at end of file
diff --git a/extern/llvm_build.bat b/extern/llvm_build.bat
index 21e5ca0c..b9fc41ef 100644
--- a/extern/llvm_build.bat
+++ b/extern/llvm_build.bat
@@ -1,25 +1,29 @@
PUSHD %~dp0
-@IF EXIST llvm-project_11_0_0 GOTO LLVM_HAS
-git clone --depth 1 --branch llvmorg-11.0.0 --config core.autocrlf=false https://github.com/llvm/llvm-project.git llvm-project_11_0_0
-@rem pushd llvm-project_11_0_0
+@IF EXIST llvm-project_13_0_1 GOTO LLVM_HAS
+git clone --depth 1 --branch llvmorg-13.0.1 --config core.autocrlf=false https://github.com/llvm/llvm-project.git llvm-project_13_0_1
+@IF %ERRORLEVEL% NEQ 0 GOTO HADERROR
:LLVM_HAS
-@IF EXIST llvm_win64_11_0_0 GOTO HAS_CONFIG
-mkdir llvm_win64_11_0_0
-cd llvm_win64_11_0_0
-cmake ../llvm-project_11_0_0/llvm -G"Visual Studio 16 2019" -Ax64 -Thost=x64 -DLLVM_USE_CRT_DEBUG:STRING="MTd" -DLLVM_USE_CRT_RELEASE:STRING="MT" -DLLVM_TARGETS_TO_BUILD="AArch64;ARM;X86;WebAssembly"
+@IF EXIST llvm_win64_13_0_1 GOTO HAS_CONFIG
+mkdir llvm_win64_13_0_1
+cd llvm_win64_13_0_1
+cmake ../llvm-project_13_0_1/llvm -G"Visual Studio 16 2019" -Ax64 -Thost=x64 -DLLVM_USE_CRT_DEBUG:STRING="MTd" -DLLVM_USE_CRT_RELEASE:STRING="MT" -DLLVM_TARGETS_TO_BUILD="AArch64;ARM;X86;WebAssembly"
+@IF %ERRORLEVEL% NEQ 0 GOTO HADERROR
@GOTO DOBUILD
:HAS_CONFIG
-cd llvm_win64_11_0_0
+cd llvm_win64_13_0_1
@GOTO DOBUILD
:DOBUILD
set /p LLVM_TARGETS=<../llvm_targets.txt
cmake --build . -t %LLVM_TARGETS% --config Debug
+@IF %ERRORLEVEL% NEQ 0 GOTO HADERROR
cmake --build . -t %LLVM_TARGETS% --config Release
+@IF %ERRORLEVEL% NEQ 0 GOTO HADERROR
+echo done > _Done.txt
:SUCCESS
@ECHO SUCCESS!
diff --git a/extern/llvm_build.sh b/extern/llvm_build.sh
index 0f0876df..261e8062 100755
--- a/extern/llvm_build.sh
+++ b/extern/llvm_build.sh
@@ -1,34 +1,34 @@
#!/bin/bash
set -e
-if [ ! -d llvm-project_11_0_0 ]; then
- if [ -f llvm-11.0.0.src.tar.xz ]; then # if user downloaded llvm-11.0.0.src.tar.xz then use it instead
- tar -xf llvm-11.0.0.src.tar.xz
- mkdir llvm-project_11_0_0
- mv llvm-11.0.0.src llvm-project_11_0_0/llvm
- else # shallow git clone llvm repo if llvm-11.0.0.src.tar.xz does not exists
- git clone --depth 1 --branch llvmorg-11.0.0 https://github.com/llvm/llvm-project.git llvm-project_11_0_0
+if [ ! -d llvm-project_13_0_1 ]; then
+ if [ -f llvm-13.0.1.src.tar.xz ]; then # if user downloaded llvm-13.0.1.src.tar.xz then use it instead
+ tar -xf llvm-13.0.1.src.tar.xz
+ mkdir llvm-project_13_0_1
+ mv llvm-13.0.1.src llvm-project_13_0_1/llvm
+ else # shallow git clone llvm repo if llvm-13.0.1.src.tar.xz does not exists
+ git clone --depth 1 --branch llvmorg-13.0.1 https://github.com/llvm/llvm-project.git llvm-project_13_0_1
fi
-fi #end if llvm-project_11_0_0 exists
+fi #end if llvm-project_13_0_1 exists
-if [ ! -d llvm_linux_11_0_0 ]; then
- mkdir llvm_linux_11_0_0
+if [ ! -d llvm_linux_13_0_1 ]; then
+ mkdir llvm_linux_13_0_1
fi
-if [ ! -d llvm_linux_11_0_0/bin ]; then
- cd llvm_linux_11_0_0
- cmake ../llvm-project_11_0_0/llvm -DLLVM_TARGETS_TO_BUILD="AArch64;ARM;X86;WebAssembly" -DCMAKE_BUILD_TYPE:String="Debug"
+if [ ! -d llvm_linux_13_0_1/bin ]; then
+ cd llvm_linux_13_0_1
+ cmake ../llvm-project_13_0_1/llvm -DLLVM_TARGETS_TO_BUILD="AArch64;ARM;X86;WebAssembly" -DCMAKE_BUILD_TYPE:String="Debug"
cmake --build . -t $(cat ../llvm_targets.txt)
cd ..
fi
-if [ ! -d llvm_linux_rel_11_0_0 ]; then
- mkdir llvm_linux_rel_11_0_0
+if [ ! -d llvm_linux_rel_13_0_1 ]; then
+ mkdir llvm_linux_rel_13_0_1
fi
-if [ ! -d llvm_linux_rel_11_0_0/bin ]; then
- cd llvm_linux_rel_11_0_0
- cmake ../llvm-project_11_0_0/llvm -DLLVM_TARGETS_TO_BUILD="AArch64;ARM;X86;WebAssembly" -DCMAKE_BUILD_TYPE:String="Release"
+if [ ! -d llvm_linux_rel_13_0_1/bin ]; then
+ cd llvm_linux_rel_13_0_1
+ cmake ../llvm-project_13_0_1/llvm -DLLVM_TARGETS_TO_BUILD="AArch64;ARM;X86;WebAssembly" -DCMAKE_BUILD_TYPE:String="Release"
cmake --build . -t $(cat ../llvm_targets.txt)
cd ..
fi
@@ -37,5 +37,6 @@ if [ ! -d ../IDE/dist/llvm/bin ]; then
mkdir ../IDE/dist/llvm
mkdir ../IDE/dist/llvm/bin
fi
-cp llvm_linux_rel_11_0_0/bin/llvm-ar ../IDE/dist/llvm/bin
+cp llvm_linux_rel_13_0_1/bin/llvm-ar ../IDE/dist/llvm/bin
+echo done > llvm_linux_13_0_1/_Done.txt
\ No newline at end of file
diff --git a/extern/llvm_targets.txt b/extern/llvm_targets.txt
index 73b650c2..7edd2b4b 100644
--- a/extern/llvm_targets.txt
+++ b/extern/llvm_targets.txt
@@ -1 +1 @@
-llvm-ar llvm-config gtest_main LLVMX86Disassembler LLVMMCDisassembler LLVMSupport LLVMX86Info LLVMX86Desc LLVMMC LLVMObject LLVMCore LLVMBitReader LLVMAsmParser LLVMMCParser LLVMCodeGen LLVMTarget LLVMX86CodeGen LLVMScalarOpts LLVMInstCombine LLVMSelectionDAG LLVMProfileData LLVMTransformUtils LLVMAnalysis LLVMX86AsmParser LLVMAsmPrinter LLVMBitWriter LLVMVectorize LLVMipo LLVMInstrumentation LLVMDebugInfoDWARF LLVMDebugInfoPDB LLVMDebugInfoCodeView LLVMGlobalISel LLVMBinaryFormat LLVMCoverage LLVMDebugInfoGSYM LLVMDWARFLinker LLVMRuntimeDyld LLVMExecutionEngine LLVMMCJIT LLVMFuzzMutate LLVMInterpreter LLVMLineEditor LLVMExtensions LLVMObjCARCOpts LLVMCoroutines LLVMPasses LLVMLTO LLVMMCA LLVMMIRParser LLVMObjectYAML LLVMJITLink LLVMOrcError LLVMOrcJIT LLVMSymbolize LLVMTestingSupport LLVMWindowsManifest LLVMXRay LLVMARMCodeGen LLVMARMDisassembler LLVMAArch64CodeGen LLVMAArch64Disassembler LLVMWebAssemblyCodeGen LLVMWebAssemblyDisassembler
+llvm-ar llvm-config gtest_main LLVMX86Disassembler LLVMMCDisassembler LLVMSupport LLVMX86Info LLVMX86Desc LLVMMC LLVMObject LLVMCore LLVMBitReader LLVMAsmParser LLVMMCParser LLVMCodeGen LLVMTarget LLVMX86CodeGen LLVMScalarOpts LLVMInstCombine LLVMSelectionDAG LLVMProfileData LLVMTransformUtils LLVMAnalysis LLVMX86AsmParser LLVMAsmPrinter LLVMBitWriter LLVMVectorize LLVMipo LLVMInstrumentation LLVMDebugInfoDWARF LLVMDebugInfoPDB LLVMDebugInfoCodeView LLVMGlobalISel LLVMBinaryFormat LLVMCoverage LLVMDebugInfoGSYM LLVMDWARFLinker LLVMRuntimeDyld LLVMExecutionEngine LLVMMCJIT LLVMFuzzMutate LLVMInterpreter LLVMLineEditor LLVMExtensions LLVMObjCARCOpts LLVMCoroutines LLVMPasses LLVMLTO LLVMMCA LLVMMIRParser LLVMObjectYAML LLVMJITLink LLVMSymbolize LLVMTestingSupport LLVMWindowsManifest LLVMXRay LLVMARMCodeGen LLVMARMDisassembler LLVMAArch64CodeGen LLVMAArch64Disassembler LLVMWebAssemblyCodeGen LLVMWebAssemblyDisassembler LLVMWebAssemblyUtils LLVMFileCheck LLVMInterfaceStub LLVMFrontendOpenACC LLVMDWP LLVMOrcJIT