llvm with tablegen backend for capstone disassembler
Go to file
Martin Storsjö c6bd873403 [CMake] Switch the CMP0091 policy (MSVC_RUNTIME_LIBRARY) to the new behaviour
With the new behaviour, the /MD or similar options aren't added to
e.g. CMAKE_CXX_FLAGS_RELEASE, but are added separately by CMake.
They can be changed by the cmake variable
CMAKE_MSVC_RUNTIME_LIBRARY or with the target property
MSVC_RUNTIME_LIBRARY.

LLVM has had its own custom CMake flags, e.g. LLVM_USE_CRT_RELEASE,
which affects which CRT is used for release mode builds. Deprecate
these and direct users to use CMAKE_MSVC_RUNTIME_LIBRARY directly
instead (and do a best effort attempt at setting CMAKE_MSVC_RUNTIME_LIBRARY
based on the existing LLVM_USE_CRT_ flags). This only handles the
simple cases, it doesn't handle multi-config generators with
different LLVM_USE_CRT_* variables for different configs though,
but that's probably fine - we should move over to the new upstream
CMake mechanism anyway, and push users towards that.

Change code in compiler-rt, that previously tried to override the
CRT choice to /MT, to set CMAKE_MSVC_RUNTIME_LIBRARY instead of
meddling in the old variables.

This resolves the policy issue in
https://github.com/llvm/llvm-project/issues/63286, and should
handle the issues that were observed originally when the
minimum CMake version was bumped, in
https://github.com/llvm/llvm-project/issues/62719 and
https://github.com/llvm/llvm-project/issues/62739.

Differential Revision: https://reviews.llvm.org/D155233
2023-07-17 09:59:05 +03:00
.ci [ci] Make libc++ and Clang CI scripts independent 2023-07-12 14:01:38 -04:00
.github/workflows [GitHub] Update repo lockdown to exclude lldb 2023-07-14 19:35:15 -05:00
bolt [BOLT] Attach ORC info to instructions in CFG 2023-07-13 11:12:54 -07:00
clang [NFC][clang] Fix format in UnsafeBufferUsage.cpp 2023-07-16 22:45:29 -07:00
clang-tools-extra [clang-tidy][NFC] Fix syntax in release notes 2023-07-17 06:20:17 +00:00
cmake [CMake] Switch the CMP0091 policy (MSVC_RUNTIME_LIBRARY) to the new behaviour 2023-07-17 09:59:05 +03:00
compiler-rt [CMake] Switch the CMP0091 policy (MSVC_RUNTIME_LIBRARY) to the new behaviour 2023-07-17 09:59:05 +03:00
cross-project-tests [Dexter] XFAIL Dexter tests for Apple Silicon (arm64) 2023-05-26 15:43:20 -07:00
flang [MLIR] Don't sort operand of commutative ops when comparing two ops as there is a correctness issue 2023-07-14 16:11:54 -07:00
libc [libc][NFC] Split memcpy implementations per platform 2023-07-13 10:30:38 +00:00
libclc Reland "[CMake] Bumps minimum version to 3.20.0. 2023-05-27 12:51:21 +02:00
libcxx [libc++] Implement stringstream members of P0408R7 (Efficient Access to basic_stringbuf's Buffer) 2023-07-16 18:32:56 +02:00
libcxxabi [Demangle] use std::string_view::data rather than &*std::string_view::begin 2023-07-13 10:20:09 -07:00
libunwind [libunwind] Add cached compile and link flags to libunwind 2023-06-29 07:41:08 +00:00
lld [ELF] Support operator ^ and ^= 2023-07-15 14:10:40 -07:00
lldb [lldb][LocateModuleCallback] Fix LocateModuleCallbackTest 2023-07-15 11:53:06 -07:00
llvm [CMake] Switch the CMP0091 policy (MSVC_RUNTIME_LIBRARY) to the new behaviour 2023-07-17 09:59:05 +03:00
llvm-libgcc Reland "[CMake] Bumps minimum version to 3.20.0. 2023-05-27 12:51:21 +02:00
mlir [mlir][ODS] Add support for passing properties to ref in custom 2023-07-17 08:48:41 +02:00
openmp [OMPT] Fix use of 'DEBUG_PREFIX' in the OMPT headers 2023-07-14 15:58:24 -05:00
polly [Polly][FIX] Adjust enum after D153305 2023-07-03 12:49:28 -07:00
pstl Reland "[CMake] Bumps minimum version to 3.20.0. 2023-05-27 12:51:21 +02:00
runtimes Reland "[CMake] Bumps minimum version to 3.20.0. 2023-05-27 12:51:21 +02:00
third-party [unittest] teach gTest to print entries of DenseMap as pairs 2023-06-28 11:29:52 +02:00
utils [mlir][bufferization] OneShotBufferizeOp: Add options to use linalg.copy 2023-07-14 13:34:22 +02:00
.arcconfig
.arclint
.clang-format
.clang-tidy Add -misc-use-anonymous-namespace to .clang-tidy 2023-05-06 02:33:20 +03:00
.git-blame-ignore-revs Add clang-format commit to git blame ignore revs 2023-07-04 11:21:21 -04:00
.gitignore
.mailmap Add entry to mailmap 2023-04-25 23:15:07 -07:00
CONTRIBUTING.md Added instruction to join the llvm discourse and discord group. 2023-03-27 17:02:07 -07:00
LICENSE.TXT
README.md [docs] Update README and GettingStarted 2023-03-08 12:55:59 -08:00
SECURITY.md

The LLVM Compiler Infrastructure

Welcome to the LLVM project!

This repository contains the source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and run-time environments.

The LLVM project has multiple components. The core of the project is itself called "LLVM". This contains all of the tools, libraries, and header files needed to process intermediate representations and convert them into object files. Tools include an assembler, disassembler, bitcode analyzer, and bitcode optimizer.

C-like languages use the Clang frontend. This component compiles C, C++, Objective-C, and Objective-C++ code into LLVM bitcode -- and from there into object files, using LLVM.

Other components include: the libc++ C++ standard library, the LLD linker, and more.

Getting the Source Code and Building LLVM

Consult the Getting Started with LLVM page for information on building and running LLVM.

For information on how to contribute to the LLVM project, please take a look at the Contributing to LLVM guide.

Getting in touch

Join the LLVM Discourse forums, Discord chat, or #llvm IRC channel on OFTC.

The LLVM project has adopted a code of conduct for participants to all modes of communication within the project.