| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[NFC][Py Reformat] Reformat python files in the rest of the dirs This is an ongoing series of commits that are reformatting our Python code. This catches the last of the python files to reformat. Since they where so few I bunched them together. Reformatting is done with black. If you end up having problems merging this commit because you have made changes to a python file, the best way to handle that is to run git checkout --ours <yourfile> and then reformat it with black. If you run into any problems, post to discourse about it and we will try to help. RFC Thread below: https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style Reviewed By: jhenderson, #libc, Mordante, sivachandra Differential Revision: https://reviews.llvm.org/D150784 | 3 年前 | |
[libc][benchmark] Do not force static linking Being able to link statically depends on other CMake options and choice of libc. | 3 年前 | |
[libc] Warn on use of global constructors in libc Clang supports the -Wglobal-constructors flag which will indicate if a global constructor is being used. The current goal in libc is to make the constructors constexpr to prevent this from happening with straight construction. However, there are many other cases where we can emit a constructor that this won't catch. This should give warning if someone accidentally introduces a global constructor. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D155721 | 2 年前 | |
[libc] Add basic support for calling host functions from the GPU This patch adds the rpc_host_call function as a GPU extension. This is exported from the libc project to use the RPC interface to call a function pointer via RPC any copying the arguments by-value. The interface can only support a single void pointer argument much like pthreads. The function call here is the bare-bones version of what's required for OpenMP reverse offloading. Full support will require interfacing with the mapping table, nowait support, etc. I decided to test this interface in libomptarget as that will be the primary consumer and it would be more difficult to make a test in libc due to the testing infrastructure not really having a concept of the "host" as it runs directly on the GPU as if it were a CPU target. Reviewed By: jplehr Differential Revision: https://reviews.llvm.org/D155003 | 2 年前 | |
[libc] Remove test RPC opcodes from the exported header This patch does the noisy work of removing the test opcodes from the exported interface to an interface that is only visible in libc. The benefit of this is that we both test the exported RPC registration more directly, and we do not need to give this interface to users. I have decided to export any opcode that is not a "core" libc feature as having its MSB set in the opcode. We can think of these as non-libc "extensions". Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D154848 | 2 年前 | |
Reland "[CMake] Bumps minimum version to 3.20.0. This reverts commit d763c6e5e2d0a6b34097aa7dabca31e9aff9b0b6. Adds the patch by @hans from https://github.com/llvm/llvm-project/issues/62719 This patch fixes the Windows build. d763c6e5e2d0a6b34097aa7dabca31e9aff9b0b6 reverted the reviews D144509 [CMake] Bumps minimum version to 3.20.0. This partly undoes D137724. This change has been discussed on discourse https://discourse.llvm.org/t/rfc-upgrading-llvms-minimum-required-cmake-version/66193 Note this does not remove work-arounds for older CMake versions, that will be done in followup patches. D150532 [OpenMP] Compile assembly files as ASM, not C Since CMake 3.20, CMake explicitly passes "-x c" (or equivalent) when compiling a file which has been set as having the language C. This behaviour change only takes place if "cmake_minimum_required" is set to 3.20 or newer, or if the policy CMP0119 is set to new. Attempting to compile assembly files with "-x c" fails, however this is workarounded in many cases, as OpenMP overrides this with "-x assembler-with-cpp", however this is only added for non-Windows targets. Thus, after increasing cmake_minimum_required to 3.20, this breaks compiling the GNU assembly for Windows targets; the GNU assembly is used for ARM and AArch64 Windows targets when building with Clang. This patch unbreaks that. D150688 [cmake] Set CMP0091 to fix Windows builds after the cmake_minimum_required bump The build uses other mechanism to select the runtime. Fixes #62719 Reviewed By: #libc, Mordante Differential Revision: https://reviews.llvm.org/D151344 | 3 年前 | |
[libc] Set min precision for strtofloat fuzz MPFR has a minimum precision of 2, but the strtofloat fuzz sometimes would request a precision of 1 for the case of the minimum subnormal. This patch tells the fuzzer to ignore any case where the precision would go below 2. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D155130 | 2 年前 | |
[libc] Remove test RPC opcodes from the exported header This patch does the noisy work of removing the test opcodes from the exported interface to an interface that is only visible in libc. The benefit of this is that we both test the exported RPC registration more directly, and we do not need to give this interface to users. I have decided to export any opcode that is not a "core" libc feature as having its MSB set in the opcode. We can think of these as non-libc "extensions". Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D154848 | 2 年前 | |
[libc] Build two different static archives libc.a and libm.a under full build. We currently put everything in one single archive libc.a which breaks in certain situations where the compiler drivers expect libm.a also. With this change, we separate out libc.a and libm.a functions as is done conventionally and put them in two different static archives. One will now have to build two targets, libc and libm which produce libc.a and libm.a respectively. Under default build, one still builds only one target named libc which produces libllvmlibc.a. Reviewed By: jhuber6 Differential Revision: https://reviews.llvm.org/D143005 | 3 年前 | |
[libc] Add basic support for calling host functions from the GPU This patch adds the rpc_host_call function as a GPU extension. This is exported from the libc project to use the RPC interface to call a function pointer via RPC any copying the arguments by-value. The interface can only support a single void pointer argument much like pthreads. The function call here is the bare-bones version of what's required for OpenMP reverse offloading. Full support will require interfacing with the mapping table, nowait support, etc. I decided to test this interface in libomptarget as that will be the primary consumer and it would be more difficult to make a test in libc due to the testing infrastructure not really having a concept of the "host" as it runs directly on the GPU as if it were a CPU target. Reviewed By: jplehr Differential Revision: https://reviews.llvm.org/D155003 | 2 年前 | |
[libc] Treat the locks array as a bitfield Currently we keep an internal buffer of device memory that is used to indicate ownership of a port. Since we only use this as a single bit we can simply turn this into a bitfield. I did this manually rather than having a separate type as we need very special handling of the masks used to interact with the locks. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D155511 | 2 年前 | |
[libc] Treat the locks array as a bitfield Currently we keep an internal buffer of device memory that is used to indicate ownership of a port. Since we only use this as a single bit we can simply turn this into a bitfield. I did this manually rather than having a separate type as we need very special handling of the masks used to interact with the locks. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D155511 | 2 年前 | |
[libc] Remove test RPC opcodes from the exported header This patch does the noisy work of removing the test opcodes from the exported interface to an interface that is only visible in libc. The benefit of this is that we both test the exported RPC registration more directly, and we do not need to give this interface to users. I have decided to export any opcode that is not a "core" libc feature as having its MSB set in the opcode. We can think of these as non-libc "extensions". Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D154848 | 2 年前 | |
[libc] Remove test RPC opcodes from the exported header This patch does the noisy work of removing the test opcodes from the exported interface to an interface that is only visible in libc. The benefit of this is that we both test the exported RPC registration more directly, and we do not need to give this interface to users. I have decided to export any opcode that is not a "core" libc feature as having its MSB set in the opcode. We can think of these as non-libc "extensions". Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D154848 | 2 年前 | |
[libc][NFC] Clean up clang-tidy warnings for src/__support and src/math. Clean up some warnings from running libc-lint for these folders. Reviewed By: michaelrj, sivachandra Differential Revision: https://reviews.llvm.org/D146048 | 3 年前 | |
[libc][Obvious] Add build folder to .gitignore. | 4 年前 | |
[Libomptarget] Begin implementing support for RPC services This patch adds the intial support for running an RPC server in libomptarget to handle host services. We interface with the library provided by the libc project to stand up a basic server. We introduce a new type that is controlled by the plugin and has each device intialize its interface. We then run a basic server to check the RPC buffer. This patch does not fully implement the interface. In the future each plugin will want to define special handlers via the interface to support things like malloc or H2D copies coming from RPC. We will also want to allow the plugin to specify t he number of ports. This is currently capped in the implementation but will be adjusted soon. Right now running the server is handled by whatever thread ends up doing the waiting. This is probably not a completely sound solution but I am not overly familiar with the behaviour of OpenMP tasks and what would be required here. This works okay with synchrnous regions, and somewhat fine with nowait regions, but I've observed some weird behavior when one of those regions calls exit. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D154312 | 2 年前 | |
Rename top-level LICENSE.txt files to LICENSE.TXT This makes all the license filenames uniform across subprojects. Differential Revision: https://reviews.llvm.org/D98380 | 5 年前 | |
Add a director, along with README.txt and LICENSE.txt, for libc. llvm-svn: 372036 | 6 年前 | |
[libc][NFC] Make tuning macros start with LIBC_COPT_ Rename preprocessor definitions that control tuning of llvm libc. Differential Revision: https://reviews.llvm.org/D143913 | 3 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 2 年前 | ||
| 5 年前 | ||
| 6 年前 | ||
| 3 年前 |