llvm with tablegen backend for capstone disassembler
Go to file
Joseph Huber a621308881 [libc] Implement basic malloc and free support on the GPU
This patch adds support for the `malloc` and `free` functions. These
currently aren't implemented in-tree so we first add the interface
filies.

This patch provides the most basic support for a true `malloc` and
`free` by using the RPC interface. This is functional, but in the future
we will want to implement a more intelligent system and primarily use
the RPC interface more as a `brk()` or `sbrk()` interface only called
when absolutely necessary. We will need to design an intelligent
allocator in the future.

The semantics of these memory allocations will need to be checked. I am
somewhat iffy on the details. I've heard that HSA can allocate
asynchronously which seems to work with my tests at least. CUDA uses an
implicit synchronization scheme so we need to use an explicitly separate
stream from the one launching the kernel or the default stream. I will
need to test the NVPTX case.

I would appreciate if anyone more experienced with the implementation details
here could chime in for the HSA and CUDA cases.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D151735
2023-06-05 17:56:53 -05:00
.github/workflows workflows/release-tasks: Upload lit releases to pypi 2023-05-31 09:25:19 -07:00
bolt [BOLT][NFC] Drop MMap events for deleted files 2023-06-05 13:03:40 -07:00
clang [Driver] Allow -fsanitize=kcfi with -fsanitize-minimal-runtime 2023-06-05 20:39:45 +00:00
clang-tools-extra [clangd] Move completion signatures and labelDetails 2023-06-05 18:05:18 +02:00
cmake [CMake] Ensure CLANG_RESOURCE_DIR is respected. 2023-06-03 04:21:35 -07:00
compiler-rt [hwasan] Properly restore SP tag on exceptions 2023-06-05 15:22:18 -07:00
cross-project-tests [Dexter] XFAIL Dexter tests for Apple Silicon (arm64) 2023-05-26 15:43:20 -07:00
flang [flang] Pad output correctly after tabbing with ADVANCE='no' (bug#63111) 2023-06-05 15:35:58 -07:00
libc [libc] Implement basic malloc and free support on the GPU 2023-06-05 17:56:53 -05:00
libclc Reland "[CMake] Bumps minimum version to 3.20.0. 2023-05-27 12:51:21 +02:00
libcxx [libc++][NFC] Add __element_count and use it in the constexpr C functions 2023-06-05 15:08:01 -07:00
libcxxabi remove Demangle/StringView.h 2023-06-01 10:13:33 -07:00
libunwind [libunwind] Removes CMake work-arounds. 2023-06-05 17:42:37 +02:00
lld [lld] StringRef::{starts,ends}with => {starts,ends}_with. NFC 2023-06-05 14:36:19 -07:00
lldb [lldb][NFCI] Change the way Process stores StructuredData plugins 2023-06-05 13:49:58 -07:00
llvm AMDGPU: Add baseline test for undoing mul add 1 reassociation 2023-06-05 18:44:17 -04:00
llvm-libgcc Reland "[CMake] Bumps minimum version to 3.20.0. 2023-05-27 12:51:21 +02:00
mlir Fix MLIR build with Shared lib enabled 2023-06-05 12:10:24 -07:00
openmp [OpenMP][libomp] Allow white spaces in OMP_TARGET_OFFLOAD value 2023-06-05 17:41:54 -05: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 fix build issue on bazel 2023-06-05 15:33:31 -07:00
.arcconfig
.arclint
.clang-format
.clang-tidy
.git-blame-ignore-revs [NFC] Add mlir python reformat SHA to .git-blame-ignore-revs 2023-05-26 08:06:03 +02:00
.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.