This project is mirrored from https://github.com/llvm/llvm-project.git.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
- Apr 08, 2022
-
-
Kito Cheng authored
Reland Note: We've resolve the circular dependency issue on llvm/lib/Support and llvm/TableGen. Differential Revision: https://reviews.llvm.org/D121984
-
- Mar 28, 2022
-
-
Fangrui Song authored
This reverts commit ad57e10d and 1967fd8d llvm/lib/Support/RISCVVIntrinsicUtils.cpp introduced llvm/TableGen includes, a circular dependency https://llvm.org/docs/CodingStandards.html#library-layering I think this particular instance is serious and should be reverted.
-
Kito Cheng authored
This patch is split from https://reviews.llvm.org/D111617, we need those stuffs on clang, so must moving those stuff to llvm/Support. Reviewed By: khchen Differential Revision: https://reviews.llvm.org/D121984
-
- Mar 25, 2022
-
-
Nico Weber authored
It's unusual that BLAKE3/CMakeLists.txt just defines a list of files that it injects into its parent scope. The list should either be defined in llvm/lib/Support/CMakeLists.txt, or llvm/lib/Support/BLAKE3/CMakeLists.txt should define an object library. This does the latter. It makes llvm/lib/Support/BLAKE3/CMakeLists.txt more self-contained. No behavior change. Differential Revision: https://reviews.llvm.org/D122428
-
Argyrios Kyrtzidis authored
-
Argyrios Kyrtzidis authored
-
Argyrios Kyrtzidis authored
BLAKE3 is a cryptographic hash function that is secure and very performant. The C implementation originates from https://github.com/BLAKE3-team/BLAKE3/tree/1.3.1/c License is at https://github.com/BLAKE3-team/BLAKE3/blob/1.3.1/LICENSE This patch adds: * `llvm/include/llvm-c/blake3.h`: The BLAKE3 C API * `llvm/include/llvm/Support/BLAKE3.h`: C++ wrapper of the C API * `llvm/lib/Support/BLAKE3`: Directory containing the BLAKE3 C implementation files, including the `LICENSE` file * `llvm/unittests/Support/BLAKE3Test.cpp`: unit tests for the BLAKE3 C++ wrapper This initial patch contains the pristine BLAKE3 sources, a follow-up patch will introduce LLVM-specific prefixes to avoid conflicts if a client also links with its own BLAKE3 version. And here's some timings comparing BLAKE3 with LLVM's SHA1/SHA256/MD5. Timings include `AVX512`, `AVX2`, `neon`, and the generic/portable implementations. The table shows the speed-up multiplier of BLAKE3 for hashing 100 MBs: | Processor | SHA1 | SHA256 | MD5 | |-------------------------|-------|--------|------| | Intel Xeon W (AVX512) | 10.4x | 27x | 9.4x | | Intel Xeon W (AVX2) | 6.5x | 17x | 5.9x | | Intel Xeon W (portable) | 1.3x | 3.3x | 1.1x | | M1Pro (neon) | 2.1x | 4.7x | 2.8x | | M1Pro (portable) | 1.1x | 2.4x | 1.5x | Differential Revision: https://reviews.llvm.org/D121510
-
- Feb 28, 2022
-
-
Zi Xuan Wu authored
Construct LLVM Support module about CSKY target parser and attribute parser. It refers CSKY ABIv2 and implementation of GNU binutils and GCC. https://github.com/c-sky/csky-doc/blob/master/C-SKY_V2_CPU_Applications_Binary_Interface_Standards_Manual.pdf Now we only support CSKY 800 series cpus and newer cpus in the future undering CSKYv2 ABI specification. There are 11 archs including ck801, ck802, ck803, ck803s, ck804, ck805, ck807, ck810, ck810v, ck860, ck860v. Every arch has base extensions, the cpus of that arch family have more extended extensions than base extensions. We need specify extended extensions for every cpu. Every extension has its enum value, name and related llvm feature string with +/-. Every enum value represents a bit of uint64_t integer. Differential Revision: https://reviews.llvm.org/D119917
-
- Feb 12, 2022
-
-
Adrian Prantl authored
This reverts commit b3b2538d, it introduced a cycklic module depenency that broke the -DLLVM_ENABLE_MODULES=1 build.
-
Peter Kasting authored
Makes lld-link work in a non-MSVC shell by autodetecting MSVC toolchain. Also adds support for /winsysroot and a few other switches. All this is done by refactoring to share code with clang-cl's existing support for the same. Differential Revision: https://reviews.llvm.org/D118070
-
- Dec 07, 2021
-
-
Noah Shutty authored
Following the discussion in D112753, this moves the HTTPClient from Support to Debuginfod library so that tools depending on Support do not automatically depend on Curl as well. This also removes `HTTPClient::initialize()` and `HTTPClient::cleanup()` from `InitLLVM` so these steps should be implemented by user tools instead. Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D115131
-
- Dec 06, 2021
-
-
Jack Andersen authored
Improves cross-distro portability of LLVM cmake package by resolving paths for terminfo and libffi via import targets. When LLVMExports.cmake is generated for installation, it contains absolute library paths which are likely to be a common cause of portability issues. To mitigate this, the discovery logic for these dependencies is refactored into find modules which get installed alongside LLVMConfig.cmake. The result is cleaner, cmake-friendly management of these dependencies that respect the environment of the LLVM package importer. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D114327
-
- Dec 03, 2021
-
-
Noah Shutty authored
Provides an implementation of `HTTPClient` that wraps libcurl. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D112753
-
- Dec 02, 2021
-
-
Noah Shutty authored
This patch implements a small HTTP client library consisting primarily of the `HTTPRequest`, `HTTPResponseHandler`, and `BufferedHTTPResponseHandler` classes. Unit tests of the `HTTPResponseHandler` and `BufferedHTTPResponseHandler` are included. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D112751
-
- Oct 19, 2021
-
-
Noah Shutty authored
We would like to move ThinLTO’s battle-tested file caching mechanism to the LLVM Support library so that we can use it elsewhere in LLVM. Patch By: noajshu Differential Revision: https://reviews.llvm.org/D111371
-
Petr Hosek authored
This reverts commit 92b8cc52 since it broke the gold plugin.
-
Noah Shutty authored
We would like to move ThinLTO’s battle-tested file caching mechanism to the LLVM Support library so that we can use it elsewhere in LLVM. Patch By: noajshu Differential Revision: https://reviews.llvm.org/D111371
-
- Oct 17, 2021
-
-
Kito Cheng authored
How many place you need to modify when implementing a new extension for RISC-V? At least 7 places as I know: - Add new SubtargetFeature at RISCV.td - -march parser in RISCV.cpp - RISCVTargetInfo::initFeatureMap@RISCV.cpp for handling feature vector. - RISCVTargetInfo::getTargetDefines@RISCV.cpp for pre-define marco. - Arch string parser for ELF attribute in RISCVAsmParser.cpp - ELF attribute emittion in RISCVAsmParser.cpp, and make sure it's in canonical order... - ELF attribute emittion in RISCVTargetStreamer.cpp, and again, must in canonical order... And now, this patch provide an unified infrastructure for handling (almost) everything of RISC-V arch string. After this patch, you only need to update 2 places for implement an extension for RISC-V: - Add new SubtargetFeature at RISCV.td, hmmm, it's hard to avoid. - Add new entry to RISCVSupportedExtension@RISCVISAInfo.cpp or SupportedExperimentalExtensions@RISCVISAInfo.cpp . Most codes are come from existing -march parser, but with few new feature/bug fixes: - Accept version for -march, e.g. -march=rv32i2p0. - Reject version info with `p` but without minor version number like `rv32i2p`. Differential Revision: https://reviews.llvm.org/D105168
-
- Oct 09, 2021
-
-
Reid Kleckner authored
This moves the registry higher in the LLVM library dependency stack. Every client of the target registry needs to link against MC anyway to actually use the target, so we might as well move this out of Support. This allows us to ensure that Support doesn't have includes from MC/*. Differential Revision: https://reviews.llvm.org/D111454
-
- Oct 01, 2021
-
-
Christopher Tetreault authored
While these functions are only used in one location in upstream, it has been reused in multiple downstreams. Restore this file to a globally visibile location (outside of APInt.h) to eliminate donwstream breakage and enable potential future reuse. Additionally, this patch renames types and cleans up clang-tidy issues.
-
- Sep 28, 2021
-
-
Jozef Lawrynowicz authored
The MSP430 ABI supports build attributes for specifying the ISA, code model, data model and enum size in ELF object files. Differential Revision: https://reviews.llvm.org/D107969
-
- Jul 27, 2021
-
-
Mehdi Amini authored
Ensure that libSupport does not carry any static global initializer. libSupport can be embedded in use cases where we don't want to load all cl::opt unless we want to parse the command line. ManagedStatic can be used to enable lazy-initialization of globals. The -Werror=global-constructors is only added on platform that have support for the flag and for which std::mutex does not have a global destructor. This is ensured by having CMake trying to compile a file with a global mutex before adding the flag to libSupport.
-
Mehdi Amini authored
This reverts commit beff86e8. The sanitizer-x86_64-linux bot is still broken.
-
Mehdi Amini authored
Ensure that libSupport does not carry any static global initializer. libSupport can be embedded in use cases where we don't want to load all cl::opt unless we want to parse the command line. ManagedStatic can be used to enable lazy-initialization of globals. The -Werror=global-constructors is only added on platform that have support for the flag and for which std::mutex does not have a global destructor. This is ensured by having CMake trying to compile a file with a global mutex before adding the flag to libSupport.
-
- Jul 26, 2021
-
-
Mehdi Amini authored
This reverts commit 579cc9ad. This breaks on Windows.
-
Mehdi Amini authored
Ensure that libSupport does not carry any static global initializer. libSupport can be embedded in use cases where we don't want to load all cl::opt unless we want to parse the command line. ManagedStatic can be used to enable lazy-initialization of globals.
-
Mehdi Amini authored
This reverts commit 5eb2e9aa. This broke MacOS builds, needs to have a safer check guarding the flag addition.
-
Mehdi Amini authored
Ensure that libSupport does not carry any static global initializer. libSupport can be embedded in use cases where we don't want to load all cl::opt unless we want to parse the command line. ManagedStatic can be used to enable lazy-initialization of globals.
-
- Jul 17, 2021
-
-
Mehdi Amini authored
This reverts commit 1f71bcab. Some platform have global destructors for std::mutex that still needs to be fixed.
-
Mehdi Amini authored
Ensure that libSupport does not carry any static global initializer. libSupport can be embedded in use cases where we don't want to load all cl::opt unless we want to parse the command line. ManagedStatic can be used to enable lazy-initialization of globals.
-
- May 03, 2021
-
-
Abhina Sreeskantharajan authored
This patch adds the basic functions needed for controlling auto conversion on z/OS. Auto conversion is enabled on untagged input file to ASCII by making the assumption that all untagged files are EBCDIC encoded. Output files are auto converted to EBCDIC IBM-1047. This change also enables conversion for stdin/stdout/stderr. For more information on how fcntl controls codepage https://www.ibm.com/docs/en/zos/2.4.0?topic=descriptions-fcntl-bpx1fct-bpx4fct-control-open-file-descriptors Reviewed By: anirudhp Differential Revision: https://reviews.llvm.org/D100483
-
- Apr 06, 2021
-
-
Tom Stellard authored
This reverts commit d66f9c4f. This was a follow up fix for 43ceb74e, which will be reverted.
-
- Apr 03, 2021
-
-
Bjorn Pettersson authored
Started to see build errors like this ../lib/Support/Z3Solver.cpp:19:10: fatal error: 'z3.h' file not found #include <z3.h> ^~~~~~ 1 error generated. after commit 43ceb74e. The -isystem path to the Z3_INCLUDE_DIR wen't missing in the compile commands. No idea why target_include_directories stopped working with that commit, but using include_directories seem to work better.
-
- Apr 02, 2021
-
-
Sander de Smalen authored
In order to bring up scalable vector support in LLVM incrementally, we introduced behaviour to emit a warning, instead of an error, when asking the wrong question of a scalable vector, like asking for the fixed number of elements. This patch puts that behaviour under a flag. The default behaviour is that the compiler will always error, which means that all LLVM unit tests and regression tests will now fail when a code-path is taken that still uses the wrong interface. The behaviour to demote an error to a warning can be individually enabled for tools that want to support experimental use of scalable vectors. This patch enables that behaviour when driving compilation from Clang. This means that for users who want to try out scalable-vector support, fixed-width codegen support, or build user-code with scalable vector intrinsics, Clang will not crash and burn when the compiler encounters such a case. This allows us to do away with the following pattern in many of the SVE tests: RUN: .... 2>%t RUN: cat %t | FileCheck --check-prefix=WARN WARN-NOT: warning: ... The behaviour to emit warnings is only temporary and we expect this flag to be removed in the future when scalable vector support is more stable. This patch also has fixes the following tests: unittests: ScalableVectorMVTsTest.SizeQueries SelectionDAGAddressAnalysisTest.unknownSizeFrameObjects AArch64SelectionDAGTest.computeKnownBitsSVE_ZERO_EXTEND_VECTOR_INREG regression tests: Transforms/InstCombine/vscale_gep.ll Reviewed By: paulwalker-arm, ctetreau Differential Revision: https://reviews.llvm.org/D98856
-
- Feb 15, 2021
-
-
cynecx authored
Adds an *unaudited* SHA-256 implementation to `llvm/Support`. The ongoing lld-macho effort needs this to emit an adhoc code signature for macho files on macOS Big Sur. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D96540
-
- Jan 28, 2021
-
-
Serge Pavlov authored
This change fixes two issues with building LLVM on Haiku. The first issue is that LLVM requires wait4(), which on Haiku is hidden behind the _BSD_SOURCE feature flag when using the --std=c++14 flag. Additionally, the wait4() function is only available in libbsd.so, so this is now a dependency. The other fix is that Haiku does not have the (non-standard) rusage.maxrss member, so by default the used memory info will be set to 0 on this platform. Reviewed By: sepavloff Differential Revision: https://reviews.llvm.org/D87920 Patch by Niels Sascha Reedijk.
-
- Dec 11, 2020
-
-
David Sherwood authored
This is the first in a series of patches that attempts to migrate existing cost instructions to return a new InstructionCost class in place of a simple integer. This new class is intended to be as light-weight and simple as possible, with a full range of arithmetic and comparison operators that largely mirror the same sets of operations on basic types, such as integers. The main advantage to using an InstructionCost is that it can encode a particular cost state in addition to a value. The initial implementation only has two states - Normal and Invalid - but these could be expanded over time if necessary. An invalid state can be used to represent an unknown cost or an instruction that is prohibitively expensive. This patch adds the new class and changes the getInstructionCost interface to return the new class. Other cost functions, such as getUserCost, etc., will be migrated in future patches as I believe this to be less disruptive. One benefit of this new class is that it provides a way to unify many of the magic costs in the codebase where the cost is set to a deliberately high number to prevent optimisations taking place, e.g. vectorization. It also provides a route to represent the extremely high, and unknown, cost of scalarization of scalable vectors, which is not currently supported. Differential Revision: https://reviews.llvm.org/D91174
-
- Nov 13, 2020
-
-
serge-sans-paille authored
No longer rely on an external tool to build the llvm component layout. Instead, leverage the existing `add_llvm_componentlibrary` cmake function and introduce `add_llvm_component_group` to accurately describe component behavior. These function store extra properties in the created targets. These properties are processed once all components are defined to resolve library dependencies and produce the header expected by llvm-config. Differential Revision: https://reviews.llvm.org/D90848
-
- Oct 28, 2020
-
-
Nicolai Hähnle authored
These logically belong together since it's a base commit plus followup fixes to less common build configurations. The patches are: Revert "CfgInterface: rename interface() to getInterface()" This reverts commit a74fc481. Revert "Wrap CfgTraitsFor in namespace llvm to please GCC 5" This reverts commit f2a06875. Revert "Try to make GCC5 happy about the CfgTraits thing" This reverts commit 03a5f7ce. Revert "Introduce CfgTraits abstraction" This reverts commit c0cdd22c.
-
Nicolai Hähnle authored
This reverts commit 848a68a0.
-