- Jul 29, 2023
-
-
Timm Bäder authored
The previous version was using llvm::reverse(CallExpr::arguments()), which causes problems when clang is compiled with GCC. Differential Revision: https://reviews.llvm.org/D155369
-
Justin Bogner authored
-
Justin Bogner authored
This doesn't really do anything but should simplify updating these APIs in the near future.
-
Job Noorman authored
The RISC-V psABI [1] defines them similarly to AArch64. [1] https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-elf.adoc#mapping-symbol Reviewed By: yota9, Amir Differential Revision: https://reviews.llvm.org/D153277
-
Srishti Srivastava authored
Earlier, in the sparse backward dataflow analysis, data from the results of an op implementing `RegionBranchOpInterface` was considered to flow into the operands of every op that did not implement the `RegionBranchTerminatorOpInterface` but was return-like and present in a region of the former. It was thus also expected that the number of results of the former be equal to the number of operands in the latter. This understanding of dataflow is incorrect and thus this expectation is also not justified. This commit fixes this incorrect understanding. This commit ensures that these return-like ops are handled just like the ops implementing the `RegionBranchTerminatorOpInterface`, which means that, if this op has a region `A` whose successors are regions `B`, `C`, and `D`, then data flows from the arguments (successor inputs) of `B`, `C`, and `D` to the corresponding successor operands of this op. This fix is also propagated to liveness analysis that earlier relied on this incorrect implementation of the sparse backward dataflow analysis framework and corrects some incorrect assumptions made in it. Also cleaned up some unnecessary comments from the test file. Issue: https://github.com/llvm/llvm-project/issues/64139 . Signed-off-by:
Srishti Srivastava <srishtisrivastava.ai@gmail.com> Reviewed By: jcai19, matthiaskramm, Mogball Differential Revision: https://reviews.llvm.org/D156376
-
Craig Topper authored
Instead of hacking around RVInst4, we can use RVInstIUnary to fill in all 12 bits of the immediate.
-
Fangrui Song authored
Their exit code is otherwise dependent on whether /usr/local/cuda exists or the default target triple.
-
Fangrui Song authored
Otherwise %clang may fail if the default target triple isn't x86.
-
Fangrui Song authored
This reverts commit e39bf32b. Some tests have different behaviors depent on whether certain directories/files are present on the host. An incomplete list from https://lab.llvm.org/buildbot/#/builders/109/builds/70149 csky-toolchain.c riscv*-toolchain.c fuchsia.* hip-* ohos.c
-
Craig Topper authored
Zb and Zk extensions both have some unary instructions where all 12 bits are fixed. Add a base format that allows this. This switches the Zb instruction InstrFormatR to I, but that seems more correct.
-
Craig Topper authored
-
Fangrui Song authored
They may be either 0 or 1, depending whether `--target=` specifies a native target.
-
Fangrui Song authored
Their exit code is otherwise dependent on whether /usr/local/cuda exists.
-
Fangrui Song authored
The exit code for -### is inconsistent. Unrecognized options lead to exit code 1, as expected. However, most others errors (including invalid option value) lead to exit code 0, differing from GCC and most utilities. This is a longstanding quirk of -###, and we didn't fix it because many driver tests need adjustment. Change -### to be similar to -fdriver-only -v and exit with code 1. This requires fixing many driver tests, but the end result gives us stronger tests. * Existing `RUN: %clang -### ...` tests usually don't use `CHECK-NOT: error:` or `--implicit-check-not=error:`. If a change introduces an error, such a change usually cannot be detected. * Many folks contributing new tests don't know `-fdriver-only -v`. To test no driver error/warning for new tests, they can use the familiar `-### -Werror` instead of `-fdriver-only -v -Werror`. Reviewed By: jhuber6, yaxunl, dblaikie Differential Revision: https://reviews.llvm.org/D156363
-
Fangrui Song authored
An upcoming change D156363 will change -### to exit with code 1 if hasErrorOccurred. Some AMDGPU tests would exit with code 1 due to not found CUDA installation.
-
Wael Yehia authored
The current implementation generates a csect with a ".rodata.str.x.y" prefix for a MergeableCString variable definition. However, a reference to such variable does not get the prefix in its name because there's not enough information in the containing IR. In particular, without seeing the initializer and absent of some other indicators, we cannot tell that the referenced variable is a null- terminated string. When the AIX codegen in llvm was being developed, the prefixing was copied from ELF without having the linker take advantage of the info. Currently, the AIX linker does not have the capability to merge MergeableCString variables. If such feature would ever get implemented, the contract between the linker and compiler would have to be reconsidered. Here's the before and after of this change: ``` @a = global i64 320255973571806, align 8 @strA = unnamed_addr constant [7 x i8] c"hello\0A\00", align 1 ;; Mergeable1ByteCString @strB = unnamed_addr constant [8 x i8] c"Blahah\0A\00", align 1 ;; Mergeable1ByteCString @strC = unnamed_addr constant [2 x i16] [i16 1, i16 0], align 2 ;; Mergeable2ByteCString @strD = unnamed_addr constant [2 x i16] [i16 1, i16 1], align 2 ;; !isMergeableCString @strE = external unnamed_addr constant [2 x i16], align 2 -fdata-sections: .text extern .rodata.str1.1strA .text extern strA 0 SD RO 0 SD RO .text extern .rodata.str1.1strB .text extern strB 0 SD RO 0 SD RO .text extern .rodata.str2.2strC ===> .text extern strC 0 SD RO 0 SD RO .text extern strD .text extern strD 0 SD RO 0 SD RO .data extern a .data extern a 0 SD RW 0 SD RW undef extern strE undef extern strE 0 ER UA 0 ER UA -fno-data-sections: .text unamex .rodata.str1.1 .text unamex .rodata 0 SD RO 0 SD RO .text extern strA .text extern strA 0 LD RO 0 LD RO .text extern strB .text extern strB 0 LD RO 0 LD RO .text unamex .rodata.str2.2 ===> .text extern strC 0 SD RO 0 LD RO .text extern strC .text extern strD 0 LD RO 0 LD RO .text unamex .rodata .data unamex .data 0 SD RO 0 SD RW .text extern strD .data extern a 0 LD RO 0 LD RW .data unamex .data undef extern strE 0 SD RW 0 ER UA .data extern a 0 LD RW undef extern strE 0 ER UA ``` Reviewed by: David Tenty, Fangrui Song Differential Revision: https://reviews.llvm.org/D156202 -
Fangrui Song authored
An upcoming change D156363 will change -### to exit with code 1 if hasErrorOccurred. Some AMDGPU tests would exit with code 0 due to not found GPU installation.
-
Matteo Franciolini authored
[mlir] Add support for custom readProperties/writeProperties methods. Currently, operations that opt-in to adopt properties will see auto-generated readProperties/writeProperties methods to emit and parse bytecode. If a dialects opts in to use `usePropertiesForAttributes`, those definitions will be generated for the current definition of the op without the possibility to handle attribute versioning. The patch adds the capability for an operation to define its own read/write methods for the encoding of properties so that versioned operations can handle upgrading properties encodings. In addition to this, the patch adds an example showing versioning on NamedProperties through the dialect version API exposed by the reader. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D155340
-
Jonas Devlieghere authored
Add support for parsing CTF forward declarations and converting them into LLDB types. Differential revision: https://reviews.llvm.org/D156483
-
Nathan Ridge authored
Differential Revision: https://reviews.llvm.org/D156513
-
antonrydahl authored
This reverts commit 4166ff61. I accidentally pushed an old version of this patch.
-
Anton Rydahl authored
When I was trying to improve the OpenMP documentation, I found that the information in `OpenMP/docs/README.md` did not contain up-to-date information about how to build the OpenMP documentation with Sphinx. When I ran `make docs-openmp-html`, the command failed because there were a few syntax errors in `openmp/docs/design/Runtimes.rst`. This commit fixes the syntax errors and updates the documentation on building the OpenMP documentation. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D156470
-
antonrydahl authored
I have added a few things to the OpenMP FAQ which I think were missing. Feel free to suggest some changes. Are there missing options in the offloading command line reference? And what do you think about the section "Q: Why is my build taking a long time"? Differential Revision: https://reviews.llvm.org/D156387
-
Jordan Rupprecht authored
Added in a0d8a53c. Some fields are not always initialized.
-
Jacques Pienaar authored
The updated start indices weren't being used. Differential Revision: https://reviews.llvm.org/D156567
-
Matteo Franciolini authored
[mlir] Expose a mechanism to provide a callback for encoding types and attributes in MLIR bytecode. Two callbacks are exposed, respectively, to the BytecodeWriterConfig and to the ParserConfig. At bytecode parsing/printing, clients have the ability to specify a callback to be used to optionally read/write the encoding. On failure, fallback path will execute the default parsers and printers for the dialect. Testing shows how to leverage this functionality to support back-deployment and backward-compatibility usecases when roundtripping to bytecode a client dialect with type/attributes dependencies on upstream. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D153383
-
Mehdi Amini authored
This reverts commit b299ec16. The authorship informations were incorrect.
-
Akira Hatanaka authored
Differential Revision: https://reviews.llvm.org/D156576
-
Lang Hames authored
-
Joseph Huber authored
The other architectures use a brief sleep to defer work during this spin loop that checks the RPC mailboxes. This patch adds one for x64 to improve usage when running the server. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D156566
-
Mogball authored
The `allocsize` attribute is weird because it packs two 32-bit values into a 64-bit value. It also turns out that the passthrough attribute exporter was using `int`, which is incorrectly handling 64-bit integers. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D156574
-
Shafik Yaghmour authored
There are some cases during member lookup we are aggressively suppressing diagnostics when we should just be suppressing access control diagnostic. In this PR I add the ability to simply suppress access diagnostics while not suppressing ambiguous lookup diagnostics. Fixes: https://github.com/llvm/llvm-project/issues/22413 https://github.com/llvm/llvm-project/issues/29942 https://github.com/llvm/llvm-project/issues/35574 https://github.com/llvm/llvm-project/issues/27224 Differential Revision: https://reviews.llvm.org/D155387
-
Michael Jones authored
The number of trailing zeroes was being calculated incorrectly. It was assuming that it could add all of the implicit leading zeroes in the final block, not accounting for the number of digits actually reqested by the precision. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D156489
-
Guray Ozen authored
This work introduces sm90 integration testing and adds a single test. Depends on : D155825 D155680 D155563 D155453 Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D155838
-
Nicolas Vasilache authored
-
John Harrison authored
On Apple platforms when debugging with libBacktraceRecording.dylib backtraces are stored as part of the thread stack. This change includes support for displaying the back traces when they are present in the stack trace. To use this on macOS a binary needs to be run with the following environment variables configured: DYLD_LIBRARY_PATH=/usr/lib/system/introspection DYLD_INSERT_LIBRARIES=/Applications/Xcode.app/Contents/Developer/usr/lib/libBacktraceRecording.dylib {F28473587} Reviewed By: wallace Differential Revision: https://reviews.llvm.org/D156465 -
Martin Storsjö authored
This respects the CMAKE_MSVC_RUNTIME_LIBRARY option for selecting the right CRT to use. Add a CI configuration that tests building this way. Based on a patch by Andrew Ng. The test config files end up accumulating and duplicating a fair bit of cmake-specific logic here; if preferred, we could also add that in `libcxx/test/CMakeLists.txt` and export a few more variables to `cmake-bridge.cfg.in` instead. Differential Revision: https://reviews.llvm.org/D155560
-
Andrew Ng authored
This header is included when building with a debug CRT in MSVC/Clang-cl environments. By default, failed asserts with the debug CRT pops up a blocking dialog box alerting the user about the failed assert. When running more than one test in an automated fashion, this isn't ideal. This header tries to run initializers to set the behaviour of the failed asserts to print a message to the console, just like the default is in release mode. This is previously done by setting the reporting mode to _CRTDBG_MODE_DEBUG, which means outputting to the debugger's output window. In some setups, this is enough for making it work, but in others it instead can pop up a dialog asking for which debugger to use. Instead set the mode explicitly to _CRTDBG_MODE_FILE and set the destination to be explicitly to stderr. For setups where the previous code worked correctly, it doesn't make any difference other than that a failed assert prints an additional "abort() has been called" message that wasn't printed before. Differential Revision: https://reviews.llvm.org/D155823
-
Martin Storsjö authored
When building in debug mode, the debug version of the MSVC CRT gets linked in. (This is the default in CMake in general. In the case of libcxx, we manually link the CRT though - and in debug mode, we pick the debug version of the CRT.) When building the tests, we need to use the same version of the CRT as was used for building the library. Additionally; the debug CRT defaults to pop up a dialog box when asserts fail, which blocks running tests. By including the set_windows_crt_report_mode.h helper header, we change the assert behaviour back to that of release mode - printing a message and exiting immediately. This was supported by the old libcxx test system, where support for it was added in 7e3ee09a. When porting over to the newer test setup, this mechanism wasn't brought over (and the old test infrastructure was removed in a48f018b). Thus: In debug mode, link against the debug versions of msvcrt and msvcprt, define _DEBUG (enabling CRT debug mode code patterns), and include the set_windows_crt_report_mode.h header. Based on a patch by Andrew Ng. Linking of the debug version of the CRT can also be done by using the new -fms-runtime-lib= Clang option. However that option was added in Clang 16, and libcxx only requires Clang 15 for now; therefore doing the CRT linking entirely manually for now (just as before). Additionally, adjust set_windows_crt_report_mode.h to avoid including the body of the file when building in C mode or in C++03 mode. This fixes the following two tests: libcxx/include_as_c.sh.cpp libcxx/selftest/dsl/dsl.sh.py The former test is built in C mode. The latter tries compiling things as C++03. Some of the vcruntime headers that we include break in C++03 mode when MS CRT debug mode is enabled. Differential Revision: https://reviews.llvm.org/D155554
-
Valentin Clement authored
-