- Nov 17, 2021
-
-
Aaron Puchert authored
Instead of popping them and then immediately throwing them away, we can just filter out globals and items in different scopes before adding them to WorkList. Shouldn't change anything but keep the queue smaller. Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D113864
-
Aaron Puchert authored
It was being used occasionally already, and using it on the constructor and getDbgEntityID has obvious type safety benefits. Also use llvm_unreachable in the switch as usual, but since only these two values are used in constructor calls I think it's still NFC. Reviewed By: probinson Differential Revision: https://reviews.llvm.org/D113862
-
Benjamin Kramer authored
LiMI1/LiMI2 can be null, so don't call a method on them before checking. Found by ubsan.
-
David Green authored
The TODOs are now fixed as of D114018, so can be removed. Which is nice.
-
Leonard Chan authored
-
Duncan P. N. Exon Smith authored
LineCoverageIterator is not providing access to a mutable object. Fix it to iterate over `const LineCoverageStats` so that `operator->()` compiles again after 6b9b86db.
-
Lawrence D'Anna authored
LLDB doesn't use only the python stable ABI, which means loading it into an incompatible python can cause the process to crash. _lldb.so should be named with the full EXT_SUFFIX from sysconfig -- such as _lldb.cpython-39-darwin.so -- so this doesn't happen. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D112972
-
Siva Chandra Reddy authored
-
Leonard Chan authored
This is another attempt at D59351 which attempted to add --update-section, but with some heuristics for adjusting segment/section offsets/sizes in the event the data copied into the section is larger than the original size of the section. We are opting to not support this case. GNU's objcopy was able to do this because the linker and objcopy are tightly coupled enough that segment reformatting was simpler. This is not the case with llvm-objcopy and lld where they like to be separated. This will attempt to copy data into the section without changing any other properties of the parent segment (if the section is part of one). Differential Revision: https://reviews.llvm.org/D112116
-
Lawrence D'Anna authored
Apparently "{sys.prefix}/bin/python3" isn't where you find the python interpreter on windows, so the test I wrote for -print-script-interpreter-info is failing. We can't rely on sys.executable at runtime, because that will point to lldb.exe not python.exe. We can't just record sys.executable from build time, because python could have been moved to a different location. But it should be OK to apply relative path from sys.prefix to sys.executable from build-time to the sys.prefix at runtime. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D113650 -
Evgenii Stepanov authored
The original problem was fixed in D105261. Differential Revision: https://reviews.llvm.org/D114022
-
Martin Storsjö authored
This does mostly the same as D112126, but for the runtimes cmake files. Most of that is straightforward, but the interdependency between libcxx and libunwind is tricky: Libunwind is built at the same time as libcxx, but libunwind is not installed yet. LIBCXXABI_USE_LLVM_UNWINDER makes libcxx link directly against the just-built libunwind, but the compiler implicit -lunwind isn't found. This patch avoids that by adding --unwindlib=none if supported, if we are going to link explicitly against a newly built unwinder anyway. Differential Revision: https://reviews.llvm.org/D113253
-
Louis Dionne authored
5beec6fb added LLVM_DEFAULT_TARGET_TRIPLE to the runtimes build with a comment, however I believe that comment had been copied from the LLVM build tree. In the context of the runtimes, LLVM_DEFAULT_TARGET_TRIPLE is used to set what targets we are building for, not the target for which we "generate code". Differential Revision: https://reviews.llvm.org/D114007
-
Danila Kutenin authored
This effort is dedicated to deflake the tests of the users which depend on the unspecified behavior of algorithms and containers. This also might help updating the sorting algorithm in libcxx which has the quadratic worst case in the future or at least create a new one under flag. For detailed design, please see the design doc I provide in the patch. Differential Revision: https://reviews.llvm.org/D96946
-
Simon Pilgrim authored
Shows failure to fold zero_extend_vector_inreg(and(x, c)) -> bitcast(and(x,c')) when we're only demanding the 0'th extended element, such as with the SSE variable shift ops.
-
Louis Dionne authored
-
Valentin Clement authored
This patch adds the conversion pattern for the fir.string_lit operation. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: awarzynski Differential Revision: https://reviews.llvm.org/D113992 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Philip Reames authored
There are multiple possible ways to represent the X - urem X, Y pattern. SCEV was not canonicalizing, and thus, depending on which you analyzed, you could get different results. The sub representation appears to produce strictly inferior results in practice, so I decided to canonicalize to the Y * X/Y version. The motivation here is that runtime unroll produces the sub X - (and X, Y-1) pattern when Y is a power of two. SCEV is thus unable to recognize that an unrolled loop exits because we don't figure out that the new unrolled step evenly divides the trip count of the unrolled loop. After instcombine runs, we convert the the andn form which SCEV recognizes, so essentially, this is just fixing a nasty pass ordering dependency. The ARM loop hardware interaction in the test diff is opague to me, but the comments in the review from others knowledge of the infrastructure appear to indicate these are improvements in loop recognition, not regressions. Differential Revision: https://reviews.llvm.org/D114018
-
River Riddle authored
-
Pirama Arumuga Nainar authored
Since libclang_rt.profile is added later in the command line, a definition of __llvm_profile_raw_version is not included if it is provided from an earlier object, e.g. from a shared dependency. This causes an extra dependence edge where if libA.so depends on libB.so and both are coverage-instrumented, libA.so uses libB.so's definition of __llvm_profile_raw_version. This leads to a runtime link failure if the libB.so available at runtime does not provide this symbol (but provides the other dependent symbols). Such a scenario can occur in Android's mainline modules. E.g.: ld -o libB.so libclang_rt.profile-x86_64.a ld -o libA.so -l B libclang_rt.profile-x86_64.a libB.so has a global definition of __llvm_profile_raw_version. libA.so uses libB.so's definition of __llvm_profile_raw_version. At runtime, libB.so may not be coverage-instrumented (i.e. not export __llvm_profile_raw_version) so runtime linking of libA.so will fail. Marking this symbol as hidden forces each binary to use the definition of __llvm_profile_raw_version from libclang_rt.profile. The visiblity is unchanged for Apple platforms where its presence is checked by the TAPI tool. Reviewed By: MaskRay, phosek, davidxl Differential Revision: https://reviews.llvm.org/D111759
-
V Donaldson authored
The inquire by output list form of the INQUIRE statement calculates the number of file storage units that would be required to store the data of an output list in an unformatted file. Currently, the result is incorrectly multiplied by the number of bytes for a data type. A query for "INTEGER(KIND=4) A(10)" should be 40, not 160. Update formatting.
-
Tue Ly authored
Update binaryExpTofloat so that it will round correctly for long inputs when converting hexadecimal strings to floating points. Differential Revision: https://reviews.llvm.org/D113815
-
Konstantin Varlamov authored
However, whether applications rely on the std::bad_function_call vtable being in the dylib is still controlled by the ABI macro, since changing that would be an ABI break. Also separate preprocessor definitions for whether to use a key function and whether to use a `bad_function_call`-specific `what` message (`what` message is mandated by [LWG2233](http://wg21.link/LWG2233)). Differential Revision: https://reviews.llvm.org/D92397
-
Arthur Eubanks authored
Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D114015
-
Nikolas Klauser authored
In libc++ most of the names are not conforming to the llvm style. Removing the readability-identifier-naming check removes almost all clang-tidy warnings. For example in `<string>` the warning count goes from 1001 warnings down to 7. Reviewed By: #libc, Mordante, ldionne Spies: Mordante, Quuxplusone, aheejin, libcxx-commits, carlosgalvezp Differential Revision: https://reviews.llvm.org/D113849
-
Victor Huang authored
This patch adds PPC back end optimization to analyze the arguments of a conditional trap instruction to execute one of the following: 1. Delete it if never trap 2. Replace it if always trap 3. Otherwise keep it Reviewed By: nemanjai, amyk, PowerPC Differential revision: https://reviews.llvm.org/D111434
-
Arthur Eubanks authored
-
Hongtao Yu authored
std::hash returns a 64bit hash code while previously we were using only lower 32 bits which caused hash collision for large workloads. Reviewed By: wenlei, wlei Differential Revision: https://reviews.llvm.org/D113688
-
River Riddle authored
This allows for using SFINAE partial specialization for DenseMapInfo. In MLIR, this is particularly useful as it will allow for defining partial specializations that support all Attribute, Op, and Type classes without needing to specialize DenseMapInfo for each individual class. Differential Revision: https://reviews.llvm.org/D113641
-
Mircea Trofin authored
This splits tryEvict into a const tryFindEvictionCandidate, which attempts to find a candidate, and the actual eviction (should the former be successful) The newly introduced tryFindEvictionCandidate will move subsequently into the RegAllocEvictionAdvisor. RFC: https://lists.llvm.org/pipermail/llvm-dev/2021-November/153639.html Differential Revision: https://reviews.llvm.org/D113941
-
Geoffrey Martin-Noble authored
We need to avoid directly processing the Bazel config in LLVM's copy of google/benchmark, which was moved in https://github.com/llvm/llvm-project/commit/1ee32055ea. Differential Revision: https://reviews.llvm.org/D114014
-
Mircea Trofin authored
This reverts commit e7568b68 and relands c6f7b720. The culprit was: missed that libc also had a dependency on one of the copies of `google-benchmark` Also opportunistically fixed indentation from prev. change. Differential Revision: https://reviews.llvm.org/D112012
-
Duncan P. N. Exon Smith authored
3d1d8c76 made DWARFExpression::iterator's Operation member `mutable`. After a few prep commits, the iterator can instead be made a `const` iterator since no caller can change the Operation. Differential Revision: https://reviews.llvm.org/D113958
-
Duncan P. N. Exon Smith authored
The only caller of Operation::verify() is DWARFExpression::verify(), which iterates past the (ephemeral) Operation immediately after. - Stop setting Operation::Error because the mutation will never be observed. - Change verify() to a static function to be sure all callers are updated. Differential Revision: https://reviews.llvm.org/D113957
-
Quinn Pham authored
[NFC] As part of using inclusive language within the llvm project, this patch replaces `_myMaster` with `_myLeader` in these testcases. Reviewed By: ZarkoCA Differential Revision: https://reviews.llvm.org/D113433
-
Louis Dionne authored
This is to help reduce latency by running longer jobs before shorter ones.
-
River Riddle authored
This is part of the replacement of Identifier with StringAttr. Differential Revision: https://reviews.llvm.org/D113953
-
Mircea Trofin authored
This reverts commit c6f7b720. Some buildbots are failing, will investigate and reland. Example: https://lab.llvm.org/buildbot#builders/138/builds/14067 https://lab.llvm.org/buildbot#builders/73/builds/20159
-
Philip Reames authored
-
Philip Reames authored
-