llvm with tablegen backend for capstone disassembler
Go to file
David Spickett 43812c8c87 [lldb][AArch64] Linux corefile support for SME
This adds the ability to read streaming SVE registers,
ZA, SVCR and SVG from core files.

Streaming SVE is in a new note NT_ARM_SSVE but otherwise
has the same format as SVE. So I've done the same as I
did for live processes and reused the existing SVE state
with an extra state for the mode variable.

ZA is in a note NT_ARM_ZA and again the handling matches
live processes. Except that it gets setup only once. A
disabled ZA reads as 0s as usual.

SVCR and SVG are pseudo registers, generated from the notes.

An important detail is that the notes represent what
you would have got if you read from ptrace at the time of
the crash.

This means that for a corefile in non-streaming mode,
there is still an NT_ARM_SSVE note and we check the header
flags to tell if it is active. We cannot just say if you
have the note you're in streaming mode.

The kernel does not provide register values for the inactive
mode and even if it did, they would be undefined, so if we find
streaming state, we ignore the non-streaming state.

Same for ZA, a disabled ZA still has the header in the note.

The tests do not cover all combinations but enough different
vector lengths, modes and ZA states to be confident.

Reviewed By: omjavaid

Differential Revision: https://reviews.llvm.org/D158500
2023-09-21 13:24:34 +01:00
.ci [ci] builkite don't escape windows targets (#66192) 2023-09-13 13:02:55 +02:00
.github Revert "[Workflow] Add new code format helper. (#66684)" 2023-09-20 10:01:37 +02:00
bolt [BOLT][RISCV] Carry-over annotations when fixing calls (#66763) 2023-09-21 06:37:47 +00:00
clang [CMake] Fully delete the deprecated LLVM_USE_CRT* (#66850) 2023-09-21 13:25:06 +03:00
clang-tools-extra [clang] NFCI: Use FileEntryRef in SymbolCollector 2023-09-20 18:41:25 -07:00
cmake [CMake] Switch the CMP0091 policy (MSVC_RUNTIME_LIBRARY) to the new behaviour 2023-07-17 09:59:05 +03:00
compiler-rt Revert "[InstrProf][compiler-rt] Enable MC/DC Support in LLVM Source-based Code Coverage (1/3)" 2023-09-21 12:20:24 +02:00
cross-project-tests [Dexter] Associate parser errors with correct file (#66765) 2023-09-19 14:16:17 +01:00
flang [Flang][OpenMP][MLIR] Fix memory leak caused by D149368 causing sanitizer error and fix iterator invalidation error 2023-09-20 22:28:11 -05:00
libc [libc][clang-tidy] Add llvm-header-guard to get consistant naming and prevent file copy/paste issues. (#66477) 2023-09-21 11:14:47 +02:00
libclc libclc: Fix signed integer underflow in abs_diff 2023-08-31 14:28:16 +01:00
libcxx [libc++] Move a few XFAILs to UNSUPPORTED for consistency 2023-09-21 07:42:23 -04:00
libcxxabi [runtimes] Fix link order of system librarires on Apple platforms (#66940) 2023-09-21 05:10:05 -04:00
libunwind [runtimes] Fix link order of system librarires on Apple platforms (#66940) 2023-09-21 05:10:05 -04:00
lld [NFC] clang-format lld/COFF/Driver.cpp and lld/Common/Filesystem.cpp 2023-09-21 13:19:04 +02:00
lldb [lldb][AArch64] Linux corefile support for SME 2023-09-21 13:24:34 +01:00
llvm [IndVars] Check expansion safety during LFTR 2023-09-21 14:22:01 +02:00
llvm-libgcc [llvm-libgcc][CMake] Refactor llvm-libgcc (#65455) 2023-09-18 22:56:03 -07:00
mlir [mlir][python] smaller scope for vector enumgen (#66992) 2023-09-21 12:57:41 +02:00
openmp [MLIR][OpenMP] Initial Lowering of Declare Target for Data 2023-09-20 13:31:15 -05:00
polly Move CallInst::CreateFree to IRBuilderBase 2023-09-19 12:04:17 +02:00
pstl Clear release notes for 18.x 2023-07-25 13:58:49 +02:00
runtimes [llvm-libgcc][CMake] Refactor llvm-libgcc (#65455) 2023-09-18 22:56:03 -07:00
third-party Reland "Update GoogleTest to v1.14.0 (#65823)" 2023-09-13 14:17:24 -07:00
utils [mlir] more bazel fixes for vector attributes 2023-09-21 11:18:15 +00: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 Revert "[mlir][spirv] Add D155747 to .git-blame-ignore-revs" 2023-07-21 10:59:16 -04:00
.gitignore Revert accidental .gitignore change from 9b7763821a 2023-09-07 22:42:05 -07:00
.mailmap Add entry to mailmap 2023-04-25 23:15:07 -07: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 [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.