llvm with tablegen backend for capstone disassembler
Go to file
Louis Dionne a4336f2ec1
[runtimes] Don't link against compiler-rt explicitly when we use -nostdlib++ (#75089)
When we use the -nostdlib++ flag, we don't need to explicitly link
against compiler-rt, since the compiler already links against it by
default. This simplifies the flags that we need to use when building
with Clang and GCC, and opens the door to further simplifications since
most platforms won't need to detect whether libgcc and libgcc_s are
supported anymore.

Furthermore, on platforms where -nostdlib++ is used, this patch prevents
manually linking compiler-rt *before* other system libraries. For
example, Apple platforms have several compiler-rt symbols defined in
libSystem.dylib. If we manually link against compiler-rt, we end up
overriding the default link order preferred by the compiler and
potentially using the symbols from the clang-provided libclang_rt.a
library instead of the system provided one.

Note that we don't touch how libunwind links against compiler-rt when it
builds the .so/.a because libunwind currently doesn't use -nodefaultlibs
and we want to avoid rocking the boat too much.

rdar://119506163
2023-12-13 13:57:48 -05:00
.ci [CI] Add check-mlir-python to MLIR pre-merge checks (#72847) 2023-11-25 09:55:32 +00:00
.github [libc++][CI] Tests the no RTTI configuration. (#65518) 2023-12-12 17:11:53 +01:00
bolt [BOLT] Fix some dwarf tests affected by 75095 (#75327) 2023-12-13 06:11:15 -08:00
clang Remove the builtin_headers_in_system_modules feature (#75262) 2023-12-13 10:36:03 -08:00
clang-tools-extra [clangd] Add test for GH75115 (#75116) 2023-12-13 05:50:05 +01:00
cmake [CMake] Switch the CMP0091 policy (MSVC_RUNTIME_LIBRARY) to the new behaviour 2023-07-17 09:59:05 +03:00
compiler-rt [test][hwasan] Add __hwasan_enable_allocator_tagging 2023-12-12 23:03:36 -08:00
cross-project-tests [Dexter] Set ShouldBuild=false for Visual Studio solutions (#75045) 2023-12-11 15:19:40 +00:00
flang [flang] module namelist IO with renaming (#75264) 2023-12-13 10:26:12 -08:00
libc [libc] fix unit tests (#75361) 2023-12-13 09:55:29 -08:00
libclc [LIBCLC] Teach prepare-builtins how to handle text based IR (#66993) 2023-10-03 14:28:01 +02:00
libcxx [runtimes] Don't link against compiler-rt explicitly when we use -nostdlib++ (#75089) 2023-12-13 13:57:48 -05:00
libcxxabi [runtimes] Don't link against compiler-rt explicitly when we use -nostdlib++ (#75089) 2023-12-13 13:57:48 -05:00
libunwind [runtimes] Don't link against compiler-rt explicitly when we use -nostdlib++ (#75089) 2023-12-13 13:57:48 -05:00
lld [XCOFF] Display branch-absolute targets in hex. (#72532) 2023-12-13 12:55:47 -06:00
lldb [lldb][PDB] TypeQuery parameter should be ConstString 2023-12-13 12:46:16 +00:00
llvm [XCOFF] Display branch-absolute targets in hex. (#72532) 2023-12-13 12:55:47 -06:00
llvm-libgcc [llvm-libgcc][CMake] Refactor llvm-libgcc (#65455) 2023-09-18 22:56:03 -07:00
mlir [MLIR][Presburger] Fix IntegerRelation::swapVar not swapping identifiers (#74407) 2023-12-13 22:47:19 +05:30
openmp [OpenMP][NFC] Move mapping related code into OpenMP/Mapping.cpp (#75239) 2023-12-12 12:49:46 -08:00
polly [polly][NFC] Refactor reduction detection code for modularity (#72343) 2023-12-07 14:04:52 -08:00
pstl Clear release notes for 18.x 2023-07-25 13:58:49 +02:00
runtimes [CMake] Always define runtimes-test-depends (#73629) 2023-11-28 15:30:52 -08:00
third-party [gtest] Disable new posix::FOpen Windows implementation for now 2023-09-28 21:11:09 +02:00
utils [bazel] Port ab380c287a 2023-12-13 14:00:20 +01:00
.arcconfig Add modern arc config for default "onto" branch 2021-02-22 11:58:13 -08:00
.arclint PR46997: don't run clang-format on clang's testcases. 2020-08-04 17:53:25 -07:00
.clang-format Revert "Title: [RISCV] Add missing part of instruction vmsge {u}. VX Review By: craig.topper Differential Revision : https://reviews.llvm.org/D100115" 2021-04-14 08:04:37 +01:00
.clang-tidy Add -misc-use-anonymous-namespace to .clang-tidy 2023-05-06 02:33:20 +03:00
.git-blame-ignore-revs [libc++][NFC] Add _VSTD renaming commit to git-blame-ignore-revs 2023-12-08 09:59:15 -05:00
.gitignore Revert accidental .gitignore change from 9b7763821a 2023-09-07 22:42:05 -07:00
.mailmap [mailmap] Add my entry 2023-12-07 10:26:36 +08:00
CODE_OF_CONDUCT.md [llvm] Add CODE_OF_CONDUCT.md (#65816) 2023-09-09 10:55:31 -07:00
CONTRIBUTING.md Update CONTRIBUTING.md to remove the not about not accepting PR 2023-09-10 15:21:06 -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 Add Scorecard Action (#69933) 2023-11-01 11:08:26 -07:00
SECURITY.md [docs] Describe reporting security issues on the chromium tracker. 2021-05-19 15:21:50 -07:00

The LLVM Compiler Infrastructure

OpenSSF Scorecard

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, LLVM Office Hours or Regular sync-ups.

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