llvm with tablegen backend for capstone disassembler
Go to file
Kazu Hirata d6f994acb3 [InlineCost] Check for conflicting target attributes early
When we inline a callee into a caller, the compiler needs to make sure
that the caller supports a superset of instruction sets that the
callee is allowed to use.  Normally, we check for the compatibility of
target features via functionsHaveCompatibleAttributes, but that
happens after we decide to honor call site attribute
Attribute::AlwaysInline.  If the caller contains a call marked with
Attribute::AlwaysInline, which can happen with
__attribute__((flatten)) placed on the caller, the caller could end up
with code that cannot be lowered to assembly code.

This patch fixes the problem by checking the target feature
compatibility before we honor Attribute::AlwaysInline.

Fixes https://github.com/llvm/llvm-project/issues/62664

Differential Revision: https://reviews.llvm.org/D150396
2023-06-02 16:00:47 -07:00
.github/workflows workflows/release-tasks: Upload lit releases to pypi 2023-05-31 09:25:19 -07:00
bolt [BOLT][DWARF] Fix handling of GCed CU function 2023-06-01 12:06:47 -07:00
clang clang: Update tests after InstSimplify change 2023-06-02 18:47:58 -04:00
clang-tools-extra [Clang] Fix missing libraries for the include cleaner check 2023-06-02 12:43:55 -05:00
cmake Reland "[CMake] Bumps minimum version to 3.20.0. 2023-05-27 12:51:21 +02:00
compiler-rt Properly restore SP tag on exceptions 2023-06-02 15:33:14 -07:00
cross-project-tests [Dexter] XFAIL Dexter tests for Apple Silicon (arm64) 2023-05-26 15:43:20 -07:00
flang [flang][hlfir] Added allocatable/pointer support in hlfir::convertToValue. 2023-06-02 14:45:34 -07:00
libc [libc] Disable the string_to_float test on NVPTX 2023-06-02 15:56:39 -05:00
libclc Reland "[CMake] Bumps minimum version to 3.20.0. 2023-05-27 12:51:21 +02:00
libcxx [libc++] Remove min_max_macros test 2023-06-02 10:05:43 -07:00
libcxxabi remove Demangle/StringView.h 2023-06-01 10:13:33 -07:00
libunwind Reland "[CMake] Bumps minimum version to 3.20.0. 2023-05-27 12:51:21 +02:00
lld [ThinLTO] Fix internalization decisions for weak/linkonce ODR 2023-06-02 15:34:14 -07:00
lldb [Damangle] convert dlangDemangle to use std::string_view 2023-06-02 15:19:41 -07:00
llvm [InlineCost] Check for conflicting target attributes early 2023-06-02 16:00:47 -07:00
llvm-libgcc Reland "[CMake] Bumps minimum version to 3.20.0. 2023-05-27 12:51:21 +02:00
mlir [mlir][sparse][gpu] make computeType mandatory 2023-06-02 21:47:44 +00:00
openmp [OpenMP] Fix transformed loop's var privacy 2023-06-02 12:18:13 -04:00
polly [SCEV] Compute AddRec range computations using different type BECount 2023-05-31 21:05:17 -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 [NFC][Py Reformat] Reformat python files in the rest of the dirs 2023-05-25 11:17:05 +02:00
utils [bazel] Add include-cleaner targets, fix clang-tidy build for c28506ba4b 2023-06-02 19:38:08 +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 [NFC] Add mlir python reformat SHA to .git-blame-ignore-revs 2023-05-26 08:06:03 +02:00
.gitignore [llvm] Ignore .rej files in .gitignore 2022-04-28 08:44:51 -07:00
.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 [docs] Add LICENSE.txt to the root of the mono-repo 2022-08-24 09:35:00 +02:00
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.