llvm with tablegen backend for capstone disassembler
Go to file
Jay Foad 11171d81ae
[AMDGPU] Cope with SelectionDAG::UpdateNodeOperands returning a different SDNode (#65340)
SITargetLowering::adjustWritemask calls SelectionDAG::UpdateNodeOperands
to update an EXTRACT_SUBREG node in-place to refer to a new IMAGE_LOAD
instruction, before we delete the old IMAGE_LOAD instruction. But in
UpdateNodeOperands can do CSE on the fly and return a different
EXTRACT_SUBREG node, so the original EXTRACT_SUBREG node would still
exist and would refer to the old deleted IMAGE_LOAD instruction. This
caused errors like:

t31: v3i32,ch = <<Deleted Node!>> # D:1
This target-independent node should have been selected!
UNREACHABLE executed at lib/CodeGen/SelectionDAG/InstrEmitter.cpp:1209!

Fix it by detecting the CSE case and replacing all uses of the original
EXTRACT_SUBREG node with the CSE'd one.
2023-09-06 12:51:44 +01:00
.ci enable new pipeline 2023-08-31 18:17:53 +02:00
.github Add a GitHub team to subscribe to WebAssembly backend (#65419) 2023-09-05 16:00:12 -07:00
bolt [BOLT][NFC] Fix duplicate word typo 2023-09-01 13:29:01 -07:00
clang [X86][Driver] Move mno-gather/mno-scatter from m_x86_Features_Group to m_Group. NFCI (#65457) 2023-09-06 18:08:29 +08:00
clang-tools-extra [include-cleaner] Map the 4-argument move overload to the algorithm header. 2023-09-06 11:38:56 +00:00
cmake
compiler-rt [scudo] Rename AllocatorRingBuffer into scudo:ring_buffer 2023-09-06 11:23:27 +02:00
cross-project-tests Revert "Reapply "[Dexter] Remove builder from Dexter"" 2023-09-05 15:18:09 +01:00
flang [flang][HLFIR] add more memory effects interfaces 2023-09-06 10:29:57 +00:00
libc [reland][libc][NFC] split type_traits / utility in separate files (#65314) 2023-09-06 09:23:00 +00:00
libclc libclc: Fix signed integer underflow in abs_diff 2023-08-31 14:28:16 +01:00
libcxx [libc++] Switch FreeBSD CI job to Clang 16 (#65422) 2023-09-05 22:07:28 -04:00
libcxxabi [libc++abi] Use std::abort() instead of std::terminate() on failure to allocate 2023-08-31 14:58:08 -04:00
libunwind [libunwind] Haiku: Initial support 2023-09-06 00:56:09 -04:00
lld [LTO] Remove module id from summary index 2023-09-01 13:43:08 -07:00
lldb [LLDB] Skip TestBSDArchives.py on windows 2023-09-06 14:03:21 +05:00
llvm [AMDGPU] Cope with SelectionDAG::UpdateNodeOperands returning a different SDNode (#65340) 2023-09-06 12:51:44 +01:00
llvm-libgcc
mlir [mlir][SCF] convert-scf-to-cf: Lower scf.forall to scf.parallel (#65449) 2023-09-06 13:27:59 +02:00
openmp [lldb] Fix duplicate word typos; NFC 2023-09-01 21:32:24 -07:00
polly Bug fix for multi-line labels in CFG dot graph 2023-09-05 22:01:51 -07:00
pstl
runtimes
third-party [lldb] Fix duplicate word typos; NFC 2023-09-01 21:32:24 -07:00
utils [reland][libc][NFC] split type_traits / utility in separate files (#65314) 2023-09-06 09:23:00 +00:00
.arcconfig
.arclint
.clang-format
.clang-tidy
.git-blame-ignore-revs
.gitignore
.mailmap
CONTRIBUTING.md
LICENSE.TXT
README.md
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.