- May 26, 2023
-
-
Med Ismail Bennani authored
If we use a variable watchpoint with a condition using a scope variable, if we go out-of-scope, the watpoint remains active which can the expression evaluator to fail to parse the watchpoint condition (because of the missing varible bindings). This was discovered after `watchpoint_callback.test` started failing on the green dragon bot. This patch should address that issue by setting an internal breakpoint on the return addresss of the current frame when creating a variable watchpoint. The breakpoint has a callback that will disable the watchpoint if the the breakpoint execution context matches the watchpoint execution context. This is only enabled for local variables. This patch also re-enables the failing test following e1086384. rdar://109574319 Differential Revision: https://reviews.llvm.org/D151366 Signed-off-by:
Med Ismail Bennani <ismail@bennani.ma>
-
Fabian Mora authored
This patch adds support for i64, f64 values in `gpu.shuffle`, rewriting 64bit shuffles into two 32bit shuffles. The reason behind this change is that both CUDA & HIP support this kind of shuffling. The implementation provided by this patch is based on the LLVM IR emitted by clang for 64bit shuffles when using `-O3`. Reviewed By: makslevental Differential Revision: https://reviews.llvm.org/D148974
-
Nick Desaulniers authored
In D148959, I removed usage of std::string_view::substr because it may throw, and libcxxabi cannot use such code. I missed one instance in llvm::starts_with. That is blocking copying the code back upstream in D148566. Mark these helpers noexcept (as they are in C++20) as well, to remind future travelers. Make these changes upstream, and copy them back downstream using libcxxabi/src/demangle/cp-to-llvm.sh. Reviewed By: #libc_abi, MaskRay, ldionne Differential Revision: https://reviews.llvm.org/D151260
-
Eugene Burmako authored
[MLIR] Fixup Bazel build for Add a pattern for transforming gpu.global_id to thread + blockId * blockDim This patch updates the Bazel build to catch up with changes in https://reviews.llvm.org/D148978. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D151496
-
Nick Desaulniers authored
unittest_demangle.pass.cpp uses the preprocessor to #include cxa_demangle.cpp. D148566 will make more use of std::string_view in libcxxabi rather than the home-grown StringView, but as a result of D149092, a definition of abort_message needs to be provided. Otherwise builds of check-cxxabi with -DLLVM_ENABLE_ASSERTIONS=ON will fail to link with the errors: /usr/bin/ld: /tmp/lit-tmp-0akcq37p/cc6DLdvw.o: in function `(anonymous namespace)::itanium_demangle::starts_with(std::__1::basic_string_view<char, std::__1::char_traits<char> >, char)': unittest_demangle.pass.cpp:(.text+0x81): undefined reference to `abort_message' /usr/bin/ld: /tmp/lit-tmp-0akcq37p/cc6DLdvw.o: in function `(anonymous namespace)::itanium_demangle::starts_with(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)': unittest_demangle.pass.cpp:(.text+0x2aa): undefined reference to `abort_message' /usr/bin/ld: u...
-
Louis Dionne authored
A recurring problem recently has been that libc++ has several generated tests which all need to be re-generated before committing a change. This creates noise during code reviews and friction for contributors. Furthermore, the way we generated most of these tests resulted in extremely bad compilation times when using modules, because we defined a macro before compiling each file. This commit introduces a new kind of test called a '.gen' test. These tests are normal shell tests, however the Lit test format will run the test to discover the actual Lit tests it should run. This basically allows generating a Lit test suite on the fly using arbitrary code, which can be used in the future to generate tests like our __verbose_abort tests and several others. Differential Revision: https://reviews.llvm.org/D151258
-
Roland McGrath authored
In this mode, LIBC_ASSERT is just standard C assert. Reviewed By: abrachet Differential Revision: https://reviews.llvm.org/D151498
-
Roland McGrath authored
Strict warnings require explicit static_cast to counteract default widening of types narrower than int. Functions in header files should have vague linkage (inline keyword), not internal linkage (static) or external linkage (no inline keyword) even for template functions. Note these don't use the LIBC_INLINE macro since this is only for test code. Reviewed By: abrachet Differential Revision: https://reviews.llvm.org/D151494
-
Med Ismail Bennani authored
This reverts commit 429e7483 since it didn't address the test failures on GreenDragon. This patch will mark the tests as expected to fail until I can reproduce the issue and find a solution. Signed-off-by:
Med Ismail Bennani <ismail@bennani.ma>
-
Alexander Timofeev authored
We've got a performance regression after the https://reviews.llvm.org/D115261. Despite the loop being vectorized unroll is still required. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D149281
-
Fabian Mora authored
This patch implements a rewrite pattern for transforming gpu.global_id x to gpu.thread_id + gpu.block_id * gpu.block_dim. Reviewed By: makslevental Differential Revision: https://reviews.llvm.org/D148978
-
Congcong Cai authored
Fixed: https://github.com/llvm/llvm-project/issues/62791 Fixed: https://github.com/llvm/llvm-project/issues/62102 in c++20, default comparison is supported. `getLexicalDeclContext` maybe cannot get the `CXXRecord` if default comparison defined out of `CXXRecord`. This patch want to get these information from the first function argument. Reviewed By: #clang-language-wg, erichkeane Differential Revision: https://reviews.llvm.org/D151365
-
Fangrui Song authored
-
Zenong Zhang authored
Users will be informed when non-POD is not packed using -Wall. This is also consistent with GCC. Fixes PR#60832. Differential Revision: https://reviews.llvm.org/D151162
-
Jonas Devlieghere authored
-
Jonas Devlieghere authored
This is an ongoing series of commits that are reformatting our Python code. Reformatting is done with `black` (23.1.0). If you end up having problems merging this commit because you have made changes to a python file, the best way to handle that is to run `git checkout --ours <yourfile>` and then reformat it with black. RFC: https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style Differential revision: https://reviews.llvm.org/D151460
-
Siva Chandra Reddy authored
It resolves to thread_local on all platform except for the GPUs on which it resolves to nothing. The use of thread_local in the source code has been replaced with the new macro. Reviewed By: jhuber6 Differential Revision: https://reviews.llvm.org/D151486
-
Artem Belevich authored
Fixes CUDA build break caused by 5c082e7e
-
Jan Svoboda authored
For redirected file entries, `FileEntryRef::getDir()` returns the parent directory entry of the target file entry. This differs from `FileEntry::getDir()` that always returns the parent directory that was last used to look up that file. After switching from `FileEntry` to `FileEntryRef` for umbrella headers in D142113, this discrepancy became observable and caused Clang to emit incorrect diagnostics. This patch changes Clang so that it always associates `FileEntryRef` with the parent directory that was used to look it up. This brings its behavior closer to `FileEntry`, but without the hacky mutation. This also ensures that `llvm::sys::path::parent_path(FileRef->getNameAsRequested()) == FileRef->getDir()->getName()`. Previously, `FileRef->getDir()` would fall underneath the redirecting VFS into the world of on-disk paths. Reviewed By: benlangmuir, rmaz Differential Revision: https://reviews.llvm.org/D151398
-
Thurston Dang authored
wmemchr symbol is required after https://reviews.llvm.org/D144394 (see https://lab.llvm.org/buildbot/#/builders/37/builds/22340 for error message) Differential Revision: https://reviews.llvm.org/D151484
-
Peiming Liu authored
Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D151481
-
Artem Belevich authored
Differential Revision: https://reviews.llvm.org/D151362
-
Artem Belevich authored
Differential Revision: https://reviews.llvm.org/D151363
-
Artem Belevich authored
Differential Revision: https://reviews.llvm.org/D151168
-
Artem Belevich authored
Differential Revision: https://reviews.llvm.org/D151009
-
Artem Belevich authored
Differential Revision: https://reviews.llvm.org/D151361
-
Artem Belevich authored
D150718 allows variadics during GPU compilation, but we also need to do it for the host compilation as well, as it will see the same code. Differential Revision: https://reviews.llvm.org/D151359
-
Alex Brachet authored
LLVM_ENABLE_ZLIB is set to On by default and does not imply that ZLIB was actually found, only being set to FORCE_ON would imply that it was found before control reached compiler-rt/test/CMakeLists.txt. Instead, use ZLIB_FOUND which guarantees that zlib is available. Differential Revision: https://reviews.llvm.org/D151229
-
Aaron Ballman authored
This reverts commit 9ed3d85e. It broke some bots: https://lab.llvm.org/buildbot/#/builders/245/builds/8876
-
Austin Chang authored
This patch utilizes the helper function implemented in D149699 and thus folds the following cases: ``` bitreverse(logic_op(x, bitreverse(y))) -> logic_op(bitreverse(x), y) bitreverse(logic_op(bitreverse(x), y)) -> logic_op(x, bitreverse(y)) bitreverse(logic_op(bitreverse(x), bitreverse(y))) -> logic_op(x, y) in multiuse case ``` Reviewed By: goldstein.w.n, RKSimon Differential Revision: https://reviews.llvm.org/D151246
-
Austin Chang authored
Fold the following case on IR InstCombine pass. This patch includes the new test cases for this optimization ``` bitreverse(logic_op(x, bitreverse(y))) -> logic_op(bitreverse(x), y) bitreverse(logic_op(bitreverse(x), y)) -> logic_op(x, bitreverse(y)) bitreverse(logic_op(bitreverse(x), bitreverse(y))) -> logic_op(x, y) with multi-use ``` Reviewed By: goldstein.w.n Differential Revision: https://reviews.llvm.org/D151245
-
Rashmi Mudduluru authored
Differential Revision: https://reviews.llvm.org/D145739
-
Zenong Zhang authored
Users will be informed when non-POD is not packed using -Wall. This is also consistent with GCC. Fixes https://github.com/llvm/llvm-project/issues/60832 Differential Revision: https://reviews.llvm.org/D151162
-
Chia-hung Duan authored
PageMap is allocated with MAP_ALLOWNOMEM if there's no static buffer left. So it can be failed and return nullptr without any assertion triggered. Instead of crashing in the releaseToOSMaybe in the middle, just return and let the program handles the page failure. Reviewed By: cferris Differential Revision: https://reviews.llvm.org/D151379
-
Craig Topper authored
This was originally added to preserve FMF on SETCC. Unfortunately, it also incorrectly preserves nuw/nsw on ADD/SUB in some cases. There's also no guarantee the new opcode is even the same opcode as the original node. This patch removes the code and adds code to explicitly preserve FMF flags in the SETCC promotion function. The other test changes are from nuw/nsw not being preserved. I believe for all these tests it was correct to preserve the flags, so we need new code to preserve the flags when possible. I'll post another patch for that since it's a riskier change. This should unblock D150769. Differential Revision: https://reviews.llvm.org/D151472
-
Shoaib Meenai authored
This enables unwinders to step past that frame on architectures that don't use DWARF unwinding (such as armv7), e.g. when debugging. The problem should theoretically be architecture-agnostic, but according to https://discourse.llvm.org/t/51633/2 it gets masked on architectures that use DWARF unwind info. Fixes https://github.com/llvm/llvm-project/issues/40696 Reviewed By: efriedma, rnk Differential Revision: https://reviews.llvm.org/D151393
-
Sterling Augustine authored
-
Mark de Wever authored
This fixes and GCC error. This was tested in D135787.
-
Felipe de Azevedo Piovezan authored
Currently, the method `GetAttributeAddressRanges` takes a DWARFRangeList as a parameter, just to immediately clear it. The method also returns the size of this list. Such an API was obfuscating the intent of the call sites (it's not clear from the method name what it returns) and it was obfuscating redundant checks on the size of the list. This commit refactors the method to return the list and to also make the call sites use the more explicit `IsEmpty` method. Differential Revision: https://reviews.llvm.org/D151451
-
Marco Elver authored
RenderFrame() has several implementations, which was missed in 01cea39f. Fix the one in sanitizer_symbolizer_markup.cpp. Reported-by: gulfem
-