llvm-msvc is a compiler based LLVM that is not restricted by MSVC. The goal is to have the same experience as MSVC on Windows. You can use naked functions anywhere, as well as add custom support such as obfuscation.
Because there are more hacky operations, a lot of code can not be submitted directly to the official. So there is this branch.
We want to use clang/llvm as comfortable as msvc.
- SEH support.
- Compatible with MSVC syntax as much as possible.
- Windows Driver support.(Now only X64)
- Intrinsic support.
- Naked X64 inline asm support.
X86:clang+lld+debug mkdir build-debug-64 pushd build-debug-64 cmake .. -G "Visual Studio 17 2022" -A X64 -DLLVM_ENABLE_PROJECTS="clang;lld" -DCMAKE_INSTALL_PREFIX=E:\llvm\install-debug-64 -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Debug ../llvm msbuild /m -p:Configuration=Debug INSTALL.vcxproj or cmake -Bbuild -A X64 -DLLVM_ENABLE_PROJECTS="clang;lld" -DCMAKE_INSTALL_PREFIX=E:\llvm\install-debug-64 -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=Debug llvm X86:clang+lld+RelWithDebInfo mkdir build-RelWithDebInfo-64 pushd build-RelWithDebInfo-64 cmake .. -G "Visual Studio 17 2022" -A X64 -DLLVM_ENABLE_PROJECTS="clang;lld" -DCMAKE_INSTALL_PREFIX=E:\llvm\install-RelWithDebInfo-64 -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_ZLIB=OFF -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_USE_CRT_RELEASE=MT ../llvm msbuild /m -p:Configuration=RelWithDebInfo INSTALL.vcxproj X86:clang+lld+release mkdir build-release-64 pushd build-release-64 cmake .. -G "Visual Studio 17 2022" -A X64 -DLLVM_ENABLE_PROJECTS="clang;lld" -DCMAKE_INSTALL_PREFIX=E:\llvm\install-release-64 -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_ENABLE_ZLIB=OFF -DLLVM_TARGETS_TO_BUILD=X86 -DCMAKE_BUILD_TYPE=release -DLLVM_USE_CRT_RELEASE=MT ../llvm msbuild /m -p:Configuration=release INSTALL.vcxproj
- https://github.com/HyunCafe/contribute-practice
- https://docs.github.com/en/get-started/quickstart/contributing-to-projects
If you don't know how to learn LLVM, you can check out this repository of mine.