- May 14, 2023
-
-
Sam James authored
LLVM data structures like llvm::User and llvm::MDNode rely on the value of object storage persisting beyond the lifetime of the object (#24952). This is not standard compliant and causes a runtime crash if LLVM is built with GCC and LTO enabled (#57740). Until these issues are fixed, we need to disable dead store eliminations eliminations based on object lifetime. Bug: https://github.com/llvm/llvm-project/issues/24952 Bug: https://github.com/llvm/llvm-project/issues/57740 Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106943 Reviewed By: MaskRay, thesamesam, nikic Differential Revision: https://reviews.llvm.org/D150505
-
Amir Ayupov authored
Leverage perf-training flow for BOLT profile collection, enabling reproducible BOLT optimization. Remove the use of bootstrapped build for profile collection. Test Plan: - Regular (single-stage) build ``` $ cmake ... -C .../clang/cmake/caches/BOLT.cmake $ ninja clang-bolt ... [21/24] Instrumenting clang binary with BOLT [21/24] Generating BOLT profile for Clang [23/24] Merging BOLT fdata Profile from 2 files merged. [24/24] Optimizing Clang with BOLT ... 1291202496 : executed instructions (-1.1%) 27005133 : taken branches (-71.5%) ... ``` - Two stage build (ThinLTO+InstPGO) ``` $ cmake ... -C .../clang/cmake/caches/BOLT.cmake -C .../clang/cmake/caches/BOLT-PGO.cmake $ ninja clang-bolt $ ninja stage2-clang-bolt ... [2756/2759] Instrumenting clang binary with BOLT [2756/2759] Generating BOLT profile for Clang [2758/2759] Merging BOLT fdata [2759/2759] Optimizing Clang with BOLT ... BOLT-INFO: 7092 out of 184104 functions in the binary (3.9%) have non-empty execution profile 756531927 : executed instructions (-0.5%) 15399400 : taken branches (-40.3%) ... ``` Reviewed By: beanz Differential Revision: https://reviews.llvm.org/D143553
-
- May 13, 2023
-
-
Nico Weber authored
-
Florian Hahn authored
Split off from D143938. This moves the planning logic to select the vectorization factor to LoopVectorizationPlanner as a step towards only computing costs for individual VFs in LoopVectorizationCostModel and do planning in LVP. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D150197
-
Florian Hahn authored
-
Uday Bondhugula authored
NFC. Pass affine copy options by const ref. Differential Revision: https://reviews.llvm.org/D150507
-
Mark de Wever authored
The owner of the last two failing buildbots updated CMake. This reverts commit e8e8707b.
-
Job Noorman authored
The reason for this patch is to allow the MCDisassembler used in tests to disassemble instructions that are only available when a specific feature is enabled. For example, on RISC-V it's currently not possible to use decode_operand() on a compressed instruction. This patch fixes this. Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D149523
-
Mark de Wever authored
Like done D149543 this validates the other formatter specializations. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D150041
-
Florian Hahn authored
Split off refactoring from D150197 to reduce diff.
-
Aiden Grossman authored
Currently, there is no documentation on what platforms and architectures llvm-exegesis is supported on. This patch adds in user-facing documentation in the CommandGuide about what architectures are supported as well as developer facing documentation detailing the technical reasons for why certain platforms are supported and some aren't. This is a follow-up after discussion in https://discourse.llvm.org/t/clarification-on-platform-support-for-llvm-exegesis/70206. Reviewed By: kpdev42 Differential Revision: https://reviews.llvm.org/D149378
-
Aiden Grossman authored
The Assembler tests have been disabled for years in tree and at this point don't test anything other than common MC infrastructure that is already tested in other parts of the tree. This patch removes them due to the mentioned reasons. Reviewed By: courbet Differential Revision: https://reviews.llvm.org/D149819
-
Aiden Grossman authored
This patch fixes the man page build. It currently doesn't work as SOURCE_DIR isn't set correctly (just undefined) within the add_sphinx_target function. This patch also moves around the creation of targets for autogenerated rst files so that both the man page and html build can depend upon them as before only the html build depended on them. Fixes #62540 Reviewed By: tstellar Differential Revision: https://reviews.llvm.org/D149809
-
Florian Hahn authored
At the moment, lower-matrix-intrinsics accepts mis-matches between shapes for operations. See shape-verification.ll for an example where @llvm.matrix.column.major.load specifies 6x1 and then the use (@llvm.matrix.multiply) specifies the operand to have 1x6. This patch adds verification for shapes to check if shapes match. Reviewed By: thegameg Differential Revision: https://reviews.llvm.org/D147438
-
Fangrui Song authored
There may be one extra warning. Just make the check less strict. ``` clang: warning: unable to find a Visual Studio installation; try running Clang from a developer command prompt [-Wmsvc-not-found] clang: warning: argument unused during compilation: '-ftime-trace' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-ftime-trace=e' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-ftime-trace-granularity=1' [-Wunused-command-line-argument] ```
-
Fangrui Song authored
Replace some RF_ flags with integer literals. Rewrite the isWrite/isExec block to make the code block order reflect the section order. Rewrite some imprecise comments. This is NFC, if we don't count invalid cases such as non-writable TLS and non-writable RELRO.
-
Kazu Hirata authored
-
LLVM GN Syncbot authored
-
Craig Topper authored
This lets us remove some isel patterns. Reviewed By: fakepaper56 Differential Revision: https://reviews.llvm.org/D150463
-
Tom Stellard authored
See discussion in #56637. Reviewed By: ldionne, jhenderson Differential Revision: https://reviews.llvm.org/D147284
-
Tom Stellard authored
Reviewed By: thieta Differential Revision: https://reviews.llvm.org/D150018
-
Vitaly Buka authored
Memory leaks https://lab.llvm.org/buildbot/#/builders/5/builds/33657 This reverts commit 1e317c3f.
-
Tom Stellard authored
We've opened up pull requests for libcxx so we don't need this template any more. Also, the repo-lockdown job already adds the same comment when closing pull requests. Reviewed By: ldionne Differential Revision: https://reviews.llvm.org/D150317
-
Fangrui Song authored
-
Tom Stellard authored
https://discourse.llvm.org/t/opening-up-prs-experimentally-for-a-subset-of-the-llvm-project/70375/11 Reviewed By: ldionne Differential Revision: https://reviews.llvm.org/D150314
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Thurston Dang authored
My newly added backtrace test (https://reviews.llvm.org/D150491) broke the Windows buildbot (https://lab.llvm.org/buildbot/#/builders/127/builds/48103) because they do not have execinfo.h. I expect the same will happen with the backtrace_symbols test (https://reviews.llvm.org/D150498) as well. This patch does a quick fix by restricting the test scope to glibc-2.27. (A tricker fix would take into account SANITIZER_INTERCEPT_BACKTRACE, which is defined as (SI_FREEBSD || SI_NETBSD || SI_GLIBC || SI_SOLARIS))
-
Thurston Dang authored
This is another patch for https://github.com/google/sanitizers/issues/321 (sanitizer interceptors can write to freed memory, causing corruption), in this case for backtrace_symbols. backtrace_symbols is already correct, hence this patch removes the TODO note. Additionally, this patch adds a test case for it. Differential Revision: https://reviews.llvm.org/D150498
-
Weining Lu authored
Currenlty there is a mismatch between LoongArch gcc and clang about handling register name in inlineasm, i.e. gcc allows both `$`-prefixed and non-prefiexed names for GPRs while clang only allows `$`-prefixed one. This patch fixes this mismatch by adding non-prefixed GPR names in clang. Take `$r4` for example. With this patch, clang accepts `$r4`, `r4`, `$a0` and `a0` like what gcc does. Reviewed By: xen0n Differential Revision: https://reviews.llvm.org/D136436
-
Douglas Yung authored
Add 'REQUIRES: asserts' to test added in D150002 (53a4adc0) because it tests for a crash that is caused by an assertion failure.
-
Kazu Hirata authored
This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
-
Shengchen Kan authored
This was reverted in d4994d0e b/c a bolt test failed after the encoding changed. Relanded the patch with the updated test.
-
Tue Ly authored
This is to improve a performance bottleneck of printf for long double. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D150475
-
Philip Reames authored
Main value of this is simplifying code, and making a few of the tests easier to read. Differential Revision: https://reviews.llvm.org/D150474
-
Philip Reames authored
This was reverted in 4e84149c due to a problem report which has been confirmed to be misattributed. Original commit message: Use a switch to avoid repeat tests on the opcode, and factor out some common code out of another switch. (Not all branches had both common bits, but the one which didn't left the values unchanged and their starting value is the respective operand - so storing it back is a nop.)
-
Jessica Paquette authored
This reverts commit d3a6a05b. Some bots don't like it. Boo.
-
Jessica Paquette authored
Sometimes you want to see how much is being allocated in your data structure in general. Add statistics that show how many internal and leaf nodes have been allocated in the suffix tree over the course of its construction. Also add a testcase that shows that we actually get these stats out when we're outlining stuff. The test shows that we get the expected O(n) leaf nodes, a split, and so on.
-
Valentin Clement authored
Add if condition removal pattern for acc.host_data in a same way as acc.enter_data, acc.exit_data and acc.update. The condition is removed from the op if it is a true constant. If it is a false constant then the region is inlined before the op and the op is removed. Reviewed By: vzakhari Differential Revision: https://reviews.llvm.org/D150480
-
Philip Reames authored
This makes a (possible) change to the internal representation easier in the future, and makes the code easier to read now.
-