- Jan 16, 2022
-
-
Fangrui Song authored
-
Fangrui Song authored
Seems applicable since we demote lazy symbols to Undefined (D111365).
-
Fangrui Song authored
-
Fangrui Song authored
When computeBinding is inlined into includeInDynsym and computeIsPreemptible, the optimizer can remove the config->gnuUnique load.
-
Fangrui Song authored
-
Fangrui Song authored
-
Fangrui Song authored
Sorting dynamic relocations is a bottleneck. Simplifying the comparator improves performance. Linking clang is 4~5% faster with --threads=8. This change may shuffle R_MIPS_REL32 for Mips and is a NFC for non-Mips.
-
Luo, Yuanke authored
instruction.
-
John Ericson authored
https://lab.llvm.org/buildbot/#/builders/46/builds/21146 Still have this odd error, not sure how to reproduce, so I will just try breaking up my patch. This reverts commit 4a678f80.
-
John Ericson authored
This is the original patch in my GNUInstallDirs series, now last to merge as the final piece! It arose as a new draft of D28234. I initially did the unorthodox thing of pushing to that when I wasn't the original author, but since I ended up - Using `GNUInstallDirs`, rather than mimicking it, as the original author was hesitant to do but others requested. - Converting all the packages, not just LLVM, effecting many more projects than LLVM itself. I figured it was time to make a new revision. I have used this patch series (and many back-ports) as the basis of https://github.com/NixOS/nixpkgs/pull/111487 for my distro (NixOS), which was merged last spring (2021). It looked like people were generally on board in D28234, but I make note of this here in case extra motivation is useful. --- As pointed out in the original issue, a central tension is that LLVM already has some partial support for these sorts of things. Variables like `COMPILER_RT_INSTALL_PATH` have already been dealt with. Variables like `LLVM_LIBDIR_SUFFIX` however, will require further work, so that we may use `CMAKE_INSTALL_LIBDIR`. These remaining items will be addressed in further patches. What is here is now rote and so we should get it out of the way before dealing more intricately with the remainder. Reviewed By: #libunwind, #libc, #libc_abi, compnerd Differential Revision: https://reviews.llvm.org/D99484
-
Lang Hames authored
We switched to SPS serialization for these functions in 089acf25.
-
Lang Hames authored
089acf25 updated WrapperFunctionCall to carry arbitrary argument payloads (rather than plain address ranges). This commit implements the corresponding update for the ORC runtime.
-
Fangrui Song authored
-
Fangrui Song authored
-
Craig Topper authored
-
- Jan 15, 2022
-
-
Dave Lee authored
Ensure that errors in `frame variable` are reflected in result object. The statistics for `frame variable` show invocations as being successful, even when executing one of the error paths. This change replaces `result.GetErrorStream()` with `result.AppendError()`, which also sets the status to `eReturnStatusFailed`. Differential Revision: https://reviews.llvm.org/D116788 Recommitting after D116901 and D116863. (cherry picked from commit 2c7d10c4)
-
Nikita Popov authored
Use the AttributeSet constructor instead. There's no good reason why AttrBuilder itself should exact the AttributeSet from the AttributeList. Moving this out of the AttrBuilder generally results in cleaner code.
-
Lucas Prates authored
This introduces clang command line support for the new Armv8.8-A and Armv9.3-A instructions for standardising memcpy, memset and memmove operations, which was previously introduced into LLVM in https://reviews.llvm.org/D116157. Patch by Lucas Prates, Tomas Matheson and Son Tuan Vu. Differential Revision: https://reviews.llvm.org/D117271
-
Jonas Devlieghere authored
Use PlatformMacOSX for Mac Catalyst apps on both Intel (x86) and Apple Silicon (arm64).
-
Mehdi Amini authored
The execution engine would not be functional anyway, we're already disabling the tests, this also disable the rest of the code. Anecdotally this reduces the number of static library built when the builtin target is disabled goes from 236 to 218. Here is the complete list of LLVM targets built when running `ninja check-mlir`: libLLVMAggressiveInstCombine.a libLLVMAnalysis.a libLLVMAsmParser.a libLLVMBinaryFormat.a libLLVMBitReader.a libLLVMBitstreamReader.a libLLVMBitWriter.a libLLVMCore.a libLLVMDebugInfoCodeView.a libLLVMDebugInfoDWARF.a libLLVMDemangle.a libLLVMFileCheck.a libLLVMFrontendOpenMP.a libLLVMInstCombine.a libLLVMIRReader.a libLLVMMC.a libLLVMMCParser.a libLLVMObject.a libLLVMProfileData.a libLLVMRemarks.a libLLVMScalarOpts.a libLLVMSupport.a libLLVMTableGen.a libLLVMTableGenGlobalISel.a libLLVMTextAPI.a libLLVMTransformUtils.a Differential Revision: https://reviews.llvm.org/D117287
-
Nikolas Klauser authored
Add `_LIBCPP_HIDE_FROM_ABI` to `in_in_result` conversion operators Reviewed By: Quuxplusone, Mordante, #libc Spies: libcxx-commits Differential Revision: https://reviews.llvm.org/D117399
-
Fangrui Song authored
-
paperchalice authored
Try to fix https://github.com/llvm/llvm-project/issues/108 Install python scripts into canonical resource path Differential revision: https://reviews.llvm.org/D116853
-
Jonas Devlieghere authored
Correctly display the number of types found for `target modules lookup --type` and add a test. Fixes #53219
-
Dave Lee authored
This test for anonymous unions seems off. It tests the following: ``` union { // fields }; struct { // fields } var{...}; ``` Both are anonymous types, but the first does not declare a variable and the second one does. The test then checks that `frame var` can directly access the fields of the anonymous union, but can't directly access the fields of the anonymous struct variable. The second test, to directly access the members of the struct variable, seems pointless as similar code would not compile. A demonstration: ``` struct { int a; int z; } a_z{23, 45}; printf("%d\n", a_z.a); // fine printf("%d\n", a); // this does not compile ``` Since we can't directly access the fields in code, I'm not sure there's a reason to test that lldb also can't directly access them (other than perhaps as a regression test). Differential Revision: https://reviews.llvm.org/D116863
-
Jonas Devlieghere authored
This also removes the corresponding unit tests. I wrote them to sanity check my original refactoring and checked them in because why not. The current implementation, without the added complexity of indices, is simple enough that we can do without it.
-
Peter Klausler authored
Fold references to the intrinsic function SCALE(). (Also work around some MSVC headaches somehow exposed by this patch: disable a bogus MSVC warning that began to appear in unrelated source files, and avoid the otherwise-necessary use of the "template" keyword in a call to a template member function of a class template.) Differential Revision: https://reviews.llvm.org/D117150
-
Arthur O'Dwyer authored
-
Nikita Popov authored
Mutations should happen through appropriate APIs that uphold the sorting invariant. Exposing a mutable iterator is not necessary.
-
Alexandre Ganea authored
Fixes: [2587/4073] Building CXX object projects\compiler-rt\lib\sanitizer_common\CMakeFiles\RTSanitizerCommon.x86_64.dir\sanitizer_stoptheworld_win.cpp.obj D:\git\llvm-project\compiler-rt\lib\sanitizer_common\sanitizer_stoptheworld_win.cpp(125,33): warning: comparison of integers of different signs: 'DWORD' (aka 'unsigned long') and 'int' [-Wsign-compare] if (SuspendThread(thread) == -1) { ~~~~~~~~~~~~~~~~~~~~~ ^ ~~ 1 warning generated.
-
Alexandre Ganea authored
See report in https://reviews.llvm.org/D116872#3245667
-
Nikita Popov authored
The empty() method is a footgun: It only checks whether there are non-string attributes, which is not at all obvious from its name, and of dubious usefulness. td_empty() is entirely unused. Drop these methods in favor of hasAttributes(), which checks whether there are any attributes, regardless of whether these are string or enum attributes.
-
Florian Hahn authored
Use the InstSimplifyFolder introduced earlier to perform initial simplification during runtime check construction.
-
Simon Pilgrim authored
-
Mark de Wever authored
The code in libc++ already satisfy the requirements of LWG-3373. Since the issue was written to specifically allow the types to be used in structured bindings, tests have been added to validate the new requirement. Implements LWG-3373 {to,from}_chars_result and format_to_n_result need the "we really mean what we say" wording Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D117337
-
Amir Ayupov authored
Add CMake options to supply clang and lld binaries for use in check-bolt instead of requiring the build of clang and lld projects. Suggested by Mehdi Amini in https://lists.llvm.org/pipermail/llvm-dev/2021-December/154426.html Test Plan: ``` cmake -G Ninja ~/local/llvm-project/llvm \ -DLLVM_TARGETS_TO_BUILD="X86" \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABLE_ASSERTIONS=ON \ -DLLVM_ENABLE_PROJECTS="bolt" \ -DBOLT_CLANG_EXE=~/local/bin/clang \ -DBOLT_LLD_EXE=~/local/bin/lld ninja check-bolt ... llvm-lit: /home/aaupov/local/llvm-project/llvm/utils/lit/lit/llvm/config.py:436: note: using clang: /home/aaupov/local/bin/clang llvm-lit: /home/aaupov/local/llvm-project/llvm/utils/lit/lit/llvm/config.py:436: note: using ld.lld: /home/aaupov/local/bin/ld.lld llvm-lit: /home/aaupov/local/llvm-project/llvm/utils/lit/lit/llvm/config.py:436: note: using lld-link: /home/aaupov/local/bin/lld-link llvm-lit: /home/aaupov/local/llvm-project/llvm/utils/lit/lit/llvm/config.py:436: note: using ld64.lld: /home/aaupov/local/bin/ld64.lld llvm-lit: /home/aaupov/local/llvm-project/llvm/utils/lit/lit/llvm/config.py:436: note: using wasm-ld: /home/aaupov/local/bin/wasm-ld ... ``` Tested all configurations: - LLVM_ENABLE_PROJECTS="bolt;clang;lld" + no BOLT_*_EXE - LLVM_ENABLE_PROJECTS="bolt;clang" + BOLT_LLD_EXE - LLVM_ENABLE_PROJECTS="bolt;lld" + BOLT_CLANG_EXE - LLVM_ENABLE_PROJECTS="bolt" + BOLT_CLANG_EXE + BOLT_LLD_EXE - LLVM_ENABLE_PROJECTS="bolt;clang;lld" + BOLT_CLANG_EXE + BOLT_LLD_EXE Reviewed By: maksfb Differential Revision: https://reviews.llvm.org/D117061
-
Fraser Cormack authored
Original patch by @hussainjk. This patch was split off from D109377 to keep vector legalization (widening/splitting) separate from vector element legalization (promoting). While the original patch added a third overload of SelectionDAG::getVPStore, this patch takes the liberty of collapsing those all down to 1, as three overloads seems excessive for a little-used node. The original patch also used ModifyToType in places, but that method still crashes on scalable vector types. Seeing as the other VP legalization methods only work when all operands need identical widening, this patch follows in that vein. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D117235
-
Florian Hahn authored
Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D117228
-
Fangrui Song authored
-
Fangrui Song authored
As the 10-year-old FIXME comment says, this API is not recommended.
-