- Sep 29, 2020
-
-
ogiroux authored
-
Diego Caballero authored
Adding missing code that should have been part of "D85869: Utility to vectorize loop nest using strategy." Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D88346
-
Kostya Kortchinsky authored
`atomic_compare_exchange_weak` is unused in Scudo, and its associated test is actually wrong since the weak variant is allowed to fail spuriously (thanks Roland). This lead to flakes such as: ``` [ RUN ] ScudoAtomicTest.AtomicCompareExchangeTest ../../zircon/third_party/scudo/src/tests/atomic_test.cpp:98: Failure: Expected atomic_compare_exchange_weak(reinterpret_cast<T *>(&V), &OldVal, NewVal, memory_order_relaxed) is true. Expected: true Which is: 01 Actual : atomic_compare_exchange_weak(reinterpret_cast<T *>(&V), &OldVal, NewVal, memory_order_relaxed) Which is: 00 ../../zircon/third_party/scudo/src/tests/atomic_test.cpp:100: Failure: Expected atomic_compare_exchange_weak( reinterpret_cast<T *>(&V), &OldVal, NewVal, memory_order_relaxed) is false. Expected: false Which is: 00 Actual : atomic_compare_exchange_weak( reinterpret_cast<T *>(&V), &OldVal, NewVal, memory_order_relaxed) Which is: 01 ../../zircon/third_party/scudo/src/tests/atomic_test.cpp:101: Failure: Expected OldVal == NewVal. Expected: NewVal Which is: 24 Actual : OldVal Which is: 42 [ FAILED ] ScudoAtomicTest.AtomicCompareExchangeTest (0 ms) [----------] 2 tests from ScudoAtomicTest (1 ms total) ``` So I am removing this, if someone ever needs the weak variant, feel free to add it back with a test that is not as terrible. This test was initially ported from sanitizer_common, but their weak version calls the strong version, so it works for them. Differential Revision: https://reviews.llvm.org/D88443 -
Jan Korous authored
Differential Revision: https://reviews.llvm.org/D87176
-
Mehdi Amini authored
Guard `find_library(tensorflow_c_api ...)` by checking for TENSORFLOW_C_LIB_PATH to be set by the user Also have CMake fails if the user provides a TENSORFLOW_C_LIB_PATH but we can't find TensorFlow at this path. At the moment the CMake script tries to figure if TensorFlow is available on the system and enables support for it. This is in general not desirable to customize build features this way and instead it is preferable to let the user opt-in explicitly into the features they want to enable. This is in line with other optional external dependencies like Z3. There are a few reasons to this but amongst others: - reproducibility: making features "magically" enabled based on whether we find a package on the system or not makes it harder to handle bug reports from users. - user control: they can't have TensorFlow on the system and build LLVM without TensorFlow right now. They also would suddenly distribute LLVM with a different set of features unknowingly just because their build machine environment would change subtly. Right now this is motivated by a user reporting build failures on their system: .../mesa-git/llvm-git/src/llvm-project/llvm/lib/Analysis/TFUtils.cpp:23:10: fatal error: tensorflow/c/c_api.h: No such file or directory 23 | #include "tensorflow/c/c_api.h" | ^~~~~~ It looks like we detected TensorFlow at configure time but couldn't set all the paths correctly. Differential Revision: https://reviews.llvm.org/D88371 -
Philip Reames authored
For a call site which had both constant deopt operands and nonnull arguments, we were missing the opportunity to recognize the later by bailing early. This is somewhat of a speculative fix. Months ago, I'd had a private report of performance and compile time regressions from the deopt operand folding. I never received a test case. However, the only possibility I see was that after that change CVP missed the nonnull fold, and we end up with a pass ordering/missed simplification issue. So, since it's a real issue, fix it and hope.
-
Fangrui Song authored
(Note that EMStreamer.cpp is largely under tested. The only test checking the prefix sharing is CodeGen/WebAssembly/eh-lsda.ll)
-
Sean Silva authored
- use select-ops to make the lowering simpler - change style of FileCheck variables names to be consistent - change some variable names in the code to be more explicit Differential Revision: https://reviews.llvm.org/D88258
-
Petr Hosek authored
This flag is the default in libtool on Darwin, and it's not supported by llvm-libtool-darwin causing a build failure. Differential Revision: https://reviews.llvm.org/D88449
-
Louis Dionne authored
We're technically not allowed by the Standard to call ::operator new in constexpr functions like __libcpp_allocate. Clang doesn't seem to complain about it, but GCC does.
-
Craig Topper authored
We can do several optimizations for PDEP using computeKnownBits and SimplifyDemandedBits -If the MSBs of the output aren't demanded, those MSBs of the mask input aren't demanded either. We need to keep the most significant demanded bit of the mask and any mask bits before it. -The number of possible ones in the mask determines how many bits of the lsbs of the other operand are demanded. Any bits of the mask we don't demand by the previous rule should not be counted. -The result will have zeros in any position that the mask is zero. -Since non-mask input bits can only be output in the original position or a higher bit position, the result will have at least as many trailing zeroes as the non-mask input. Differential Revision: https://reviews.llvm.org/D87883
-
Craig Topper authored
-
Amara Emerson authored
The lowering is a port of the SDAG expansion. Differential Revision: https://reviews.llvm.org/D88364
-
David Tenty authored
This is a follow on to D85329 which disabled some llvm tools in the runtimes build due to XCOFF64 limitations. This change disables them in other external project builds as well, when no list of tools is specified in the arguments. Reviewed By: hubert.reinterpretcast, stevewan Differential Revision: https://reviews.llvm.org/D88310
-
Nico Weber authored
-
Aaron Ballman authored
-
Jonas Devlieghere authored
-
Amara Emerson authored
Revert "Revert "[AArch64][GlobalISel] Add selection support for <8 x s16> G_INSERT_VECTOR_ELT with GPR scalar."" This isn't a real with the codegen, it's a previously known bug in clang which causes non-deterministic failures due to garbage bits in undef registers being used in saturating instructions. I'm disabling the result checking for the test until this issue is resolved. This reverts commit 6c816832.
-
Aart Bik authored
Recently, restrictions on vector reductions were made more relaxed by accepting any width signless integer and floating-point. This CL relaxes the restriction even more by including unsigned and signed integers. Reviewed By: bkramer Differential Revision: https://reviews.llvm.org/D88442
-
Craig Topper authored
Instead of expliciting emitting a setc in the inline asm instructions, we can use flag output. This allows the backend to use the flag directly if it is needed by a branch. Previously we needed a test instruction to convert the register back to a flag. If the flag can't be used directly, the backend will emit a setcc. Differential Revision: https://reviews.llvm.org/D87888
-
Simon Pilgrim authored
-
Eric Astor authored
Avoid introducing unnecessary indirection for weak-external references. We only need to introduce ".weak.<SYMBOL>.default" when referencing a symbol that is defined, but not external. Reviewed By: mstorsjo Differential Revision: https://reviews.llvm.org/D88305
-
Louis Dionne authored
Both are equivalent, however std::allocator can appear in constant expressions and is higher level.
-
Louis Dionne authored
-
Louis Dionne authored
This wasn't being flagged by older versions of ASAN, but it is now.
-
Benjamin Kramer authored
There's no dependency on Object in there and this avoids a cyclic dependency between libMC and libObject.
-
Sanjay Patel authored
This hack seems to only have been necessary because of the constructor bug noted in 33125cff. Once again, it's hard to prove NFC, but that's the hope...
-
Jason Molenda authored
Add the flag in ProcessMachCore::DoLoadCore that stops additional searches for the binaries when we have an LC_NOTE identifying the firmware/standalone binary as the correct one & we have loaded it successfully.
-
Jonas Devlieghere authored
This enables support for writing LLDB documentation in markdown in addition to reStructured text. We already had documentation written in markdown (StructuredDataPlugins and DarwinLog) which will now also be available on the website.
-
Baptiste Saleil authored
This patch legalizes the v256i1 and v512i1 types that will be used for MMA. It implements loads and stores of these types. v256i1 is a pair of VSX registers, so for this type, we load/store the two underlying registers. v512i1 is used for MMA accumulators. So in addition to loading and storing the 4 associated VSX registers, we generate instructions to prime (copy the VSX registers to the accumulator) after loading and unprime (copy the accumulator back to the VSX registers) before storing. This patch also adds the UACC register class that is necessary to implement the loads and stores. This class represents accumulator in their unprimed form and allow the distinction between primed and unprimed accumulators to avoid invalid copies of the VSX registers associated with primed accumulators. Differential Revision: https://reviews.llvm.org/D84968
-
Sanjay Patel authored
This appears to be an error of code duplication - instead of one constructor variant calling another, we have N similar but not identical versions. I think this is 'NFC' based on the current callers, but it's hard to tell or guess the intent in all cases.
-
Paweł Bylica authored
-
Peter Collingbourne authored
Move smaller and frequently-accessed fields near the beginning of the data structure in order to improve locality and reduce the number of instructions required to form an access to those fields. With this change I measured a ~5% performance improvement on BM_malloc_sql_trace_default on aarch64 Android devices (Pixel 4 and DragonBoard 845c). Differential Revision: https://reviews.llvm.org/D88350
-
Aart Bik authored
(1) simplify integer printing logic by always using 64-bit print (2) add index support (since vector<16xindex> is planned to be added) (3) adjust naming convention print_x -> printX Reviewed By: bkramer Differential Revision: https://reviews.llvm.org/D88436
-
Jon Roelofs authored
-
Amara Emerson authored
Revert "[AArch64][GlobalISel] Add selection support for <8 x s16> G_INSERT_VECTOR_ELT with GPR scalar." This reverts commit b5e87c9e as it seems to have broken a bot.
-
Utkarsh Saxena authored
Since we have 2 scoring functions (heuristics and decision forest), renaming the existing evaluate() function to be more descriptive of the Heuristics being evaluated in it. Differential Revision: https://reviews.llvm.org/D88431
-
Dominic Chen authored
When ASan and e.g. Dead Virtual Function Elimination are enabled, the latter will rely on type metadata to determine if certain virtual calls can be removed. However, ASan currently does not copy type metadata, which can cause virtual function calls to be incorrectly removed. Differential Revision: https://reviews.llvm.org/D88368
-
Simon Pilgrim authored
-
Heejin Ahn authored
There are two `WasmSignature` structs, one in include/llvm/BinaryFormat/Wasm.h and the other in lib/MC/WasmObjectWriter.cpp. I don't know why they got separated in this way in the first place, but it seems we can unify them to use the one in Wasm.h for all cases. Reviewed By: dschuff, sbc100 Differential Revision: https://reviews.llvm.org/D88428
-