- Jul 28, 2022
-
-
Adrian Kuegel authored
This change adds convenience getters to builders. Differential Revision: https://reviews.llvm.org/D130696
-
Sanjay Patel authored
This works with any logic + extend: https://alive2.llvm.org/ce/z/vzsqQD The motivating case is from issue #56294, but that's still not optimal (it should simplify completely).
-
Sanjay Patel authored
-
Dmitry Preobrazhensky authored
Differential Revision: https://reviews.llvm.org/D130634
-
Nico Weber authored
-
chendewen authored
This patch adds a cost estimate for some missing sign extensions. ref: https://reviews.llvm.org/D14730 Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D130565
-
Kirill Okhotnikov authored
Added a function and test, which can be used later for cosh/sinh and possibly for expf/expm1f. Differential Revision: https://reviews.llvm.org/D129215
-
Konstantin Varlamov authored
Avoid relying on `iterator_traits` and instead deduce the return type of dereferencing the iterator. Additionally, add a static check to reject iterators with incorrect `iterator_traits` at compile time. Differential Revision: https://reviews.llvm.org/D130538
-
Florian Hahn authored
At the moment, proveNoUnsignedWrapViaInduction may be called for the same AddRec a large number of times via getZeroExtendExpr. This can have a severe compile-time impact for very loop-heavy code. One one particular workload, LSR takes ~51s without this patch, almost exlusively in proveNoUnsignedWrapViaInduction. With this patch, the time in LSR drops to ~0.4s. If proveNoUnsignedWrapViaInduction failed to prove NUW the first time, it is unlikely to succeed on subsequent tries and the cost doesn't seem to be justified. Besides drastically improving compile-time in some excessive cases, this also has a slightly positive compile-time impact on CTMark: NewPM-O3: -0.07% NewPM-ReleaseThinLTO: -0.08% NewPM-ReleaseLTO-g: -0.06 https://llvm-compile-time-tracker.com/compare.php?from=b435da027d7774c24cdb8c88d09f6b771e07fb14&to=f2729e33e8284b502f6c35a43345272252f35d12&stat=instructions Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D130648
-
Haojian Wu authored
The solution is to favor the longest possible nest-name-specifier, and drop other alternatives by using the guard, per per C++ [basic.lookup.qual.general]. Motivated cases: ``` Foo::Foo() {}; // the constructor can be parsed as: // - Foo ::Foo(); // where the first Foo is return-type, and ::Foo is the function declarator // + Foo::Foo(); // where Foo::Foo is the function declarator ``` ``` void test() { // a very slow parsing case when there are many qualifers! X::Y::Z; // The statement can be parsed as: // - X ::Y::Z; // ::Y::Z is the declarator // - X::Y ::Z; // ::Z is the declarator // + X::Y::Z; // a declaration without declarator (X::Y::Z is decl-specifier-seq) // + X::Y::Z; // a qualifed-id expression } ``` Differential Revision: https://reviews.llvm.org/D130511 -
Martin Storsjö authored
[clang-tidy] Add CLANG_TIDY_CONFUSABLE_CHARS_GEN cmake cache variable to avoid building when cross compiling This is similar to the LLVM_TABLEGEN, CLANG_TABLEGEN and CLANG_PSEUDO_GEN cmake cache variables. Differential Revision: https://reviews.llvm.org/D129799
-
Martin Storsjö authored
Rename it to clang-tidy-confusable-chars-gen, to make its role clearer in a wider context. In cross builds, the caller might want to provide this tool externally (to avoid needing to rebuild it in the cross build). In such a case, having the tool properly namespaced makes its role clearer. This matches how the clang-pseudo-gen tool was renamed in a43fef05 / D126725. Differential Revision: https://reviews.llvm.org/D129798
-
Alexander Belyaev authored
Differential Revision: https://reviews.llvm.org/D130632
-
Kirill Okhotnikov authored
New exp2 function algorithm: 1) Improved performance: 8.176 vs 15.270 by core-math perf tool. 2) Improved accuracy. Only two special values left. 3) Lookup table size reduced twice. Differential Revision: https://reviews.llvm.org/D129005
-
David Spickett authored
DebugLocEntry assumes that it either contains 1 item that has no fragment or many items that all have fragments (see the assert in addValues). When EXPENSIVE_CHECKS is enabled, _GLIBCXX_DEBUG is defined. On a few machines I've checked, this causes std::sort to call the comparator even if there is only 1 item to sort. Perhaps to check that it is implemented properly ordering wise, I didn't find out exactly why. operator< for a DbgValueLoc will crash if this happens because the optional Fragment is empty. Compiler/linker/optimisation level seems to make this happen or not. So I've seen this happen on x86 Ubuntu but the buildbot for release EXPENSIVE_CHECKS did not have this issue. Add an explicit check whether we have 1 item. Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D130156
-
Daniel Bertalan authored
This hint instructs the linker to optimize an adrp+add+ldr sequence used for loading from a local symbol's address by loading directly if it's close enough, or with an adrp(p)+ldr sequence if it's not. This transformation is the same as what's done for ADRP_LDR_GOT_LDR when the symbol is local. The logic for acting on this hint is therefore moved to a new function which will be called from the existing applyAdrpLdrGotLdr() function. Differential Revision: https://reviews.llvm.org/D130505
-
Matthias Springer authored
Handles can be yielded from the ForeachOp. Differential Revision: https://reviews.llvm.org/D130640
-
Nikolas Klauser authored
-
LLVM GN Syncbot authored
-
Nikolas Klauser authored
Reviewed By: ldionne, huixie90, #libc Spies: arichardson, sstefan1, libcxx-commits, mgorny Differential Revision: https://reviews.llvm.org/D129040
-
Daniel Bertalan authored
In DWARF5, the `DW_AT_name` and `DW_AT_comp_dir` attributes are encoded using the `strx*` forms, which specify an index into `__debug_str_offs`. This commit adds that section to DwarfObject, so the debug info parser can resolve these references. The test case was manually adapted from stabs-icf.s. Fixes #51668 Differential Revision: https://reviews.llvm.org/D130559
-
LLVM GN Syncbot authored
-
Gaurav Shukla authored
This commit folds a `tensor.cast` op into a `tensor.collapse_shape` op when following two conditions meet: 1. the `tensor.collapse_shape` op consumes result of the `tensor.cast` op. 2. `tensor.cast` op casts to a more dynamic version of the source tensor. This is added as a canonicalization pattern in `tensor.collapse_shape` op. Signed-Off-By:
Gaurav Shukla <gaurav@nod-labs.com> Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D130650
-
Hui Xie authored
Differential Revision: https://reviews.llvm.org/D130627
-
Fangrui Song authored
Reviewed By: #powerpc, nemanjai Differential Revision: https://reviews.llvm.org/D130526
-
Max Kazantsev authored
-
Max Kazantsev authored
As test in PR56672 shows, LAA produces different results which lead to either positive or negative vectorization decisions depending on the order of blocks in loop. The exact reason of this is not clear to me, however this makes investigation of related bugs extremely complex. Current order of blocks in the loop is arbitrary. It may change, for example, if loop info analysis is dropped and recomputed. Seems that it interferes with LAA's logic. This patch chooses fixed traversal order of blocks in loops, making it RPOT. Note: this is *not* a fix for bug with incorrect analysis result. It just makes the answer more robust to make the investigation easier. Differential Revision: https://reviews.llvm.org/D130482 Reviewed By: aeubanks, fhahn
-
Tom Stellard authored
macos-10.15 is deprecated and will be removed.
-
Christian Sigg authored
-
Argyrios Kyrtzidis authored
[ASTWriter] Replace `const std::string &OutputFile` with `StringRef OutputFile` in some of `ASTWriter` functions, NFC This is to make it consistent with LLVM's string parameter passing convention.
-
Phoebe Wang authored
We will insert a new operand which is identical to the Dest for complex FMUL with a mask. https://godbolt.org/z/eTEdnYv3q Complex FMA and FMUL with maskz don't have this problem. Reviewed By: LuoYuanke, skan Differential Revision: https://reviews.llvm.org/D130638
-
Austin Kerbow authored
By not clustering loads and adjusting heuristics to more aggressively reduce register pressure we may be able to increase occupancy for the function if it was dropped in a first pass scheduling. Similarly, try to reduce spilling if register usage exceeds lower bound occupancy. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D130329
-
Amara Emerson authored
Rotates are defined according to DAG documentation as having unsigned shifts, so we need to zero-extend instead of sign-extend here. Fixes issue 56664
-
Amara Emerson authored
-
Sridhar Gopinath authored
In diff and diffstat modes, the return code is != 0 even when there are no changes between commits. This issue can be fixed by passing --exit-code to git-diff command that returns 0 when there are no changes and using that as the return code for git-clang-format. Fixes #56736. Differential Revision: https://reviews.llvm.org/D129311
-
Utkarsh Saxena authored
Differential Revision: https://reviews.llvm.org/D130011
-
Chuanqi Xu authored
Add tests for detecting redefinitions in C++20 modules. Some of these may be covered by other tests. But more tests should be always good.
-
Tom Stellard authored
The checkout action will hard-code the default github actions token in the git config so that all pushes use it. We need to set persist-credentials=false so we can use a token that has permission to push to the llvm-project-release-prs repo.
-
Carl Ritson authored
Clear all kill flags on source register when folding a COPY. This is necessary because the kills may now be out of order with the uses. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D130622
-
Chris Bieneman authored
This patch just adjusts the ordering of the headings on the attribute docs to match the order of the column content.
-