- Jan 28, 2023
-
-
Peter Klausler authored
A subroutine that implements a defined assignment cannot have a dummy argument for its second operand (the RHS of the assignment) with the POINTER or ALLOCATABLE attributes, since the RHS of an assignment is always an expression. This problem is flagged as a fatal error in other compilers, so let's make it fatal here as well. Differential Revision: https://reviews.llvm.org/D142752
-
Artem Belevich authored
When pointers are passed within aggregates, we sometimes end up with IR that loads them as integers and the converts them back to pointers. Typically it's due to a memcpy or SROA. E.g. https://godbolt.org/z/xM3n5daaa Normally we treat all pointers passed to a CUDA kernel as global pointers and the same treatment should be applied to the pointers we load/store as integers. Differential Revision: https://reviews.llvm.org/D142664
-
Krzysztof Drewniak authored
The HIP CMake files expect to find their own dependencies and don't use or respect PATHS or HINTS, relying on CMAKE_PREFIX_PATH to contain /opt/rocm and /opt/rocm/hip . This is not great for the rest of the build. Therefore, copy the CMake prefix path, add the ROCm directories, find HIP, and reset the path to its old value. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D142391
-
Daniel Thornburgh authored
Differential Revision: https://reviews.llvm.org/D136702
-
Joseph Huber authored
Recently the `nvptx-arch` tool was added to address the lack of a similar tool for detecting locally installed NVIDIA GPUs. This patch adds similar functionality for the already existing `amdgpu-arch` tool in libc. These will be used to run tests on the user's system in the future. On a system with both GPUs installed we will just go with the first GPU detected. In the future we may want to configure the tests to run on both of them. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D142776
-
Joseph Huber authored
Currently this logic causes the `libcgpu.a` to be installed to the user's default triple. The GPU target isn't really true to this in a cross-compiling sense so we should just default to the regular `/lib` directory Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D142774
-
Peter Klausler authored
More generally, don't return a successful result from Fortran::evaluate::DynamicType::MeasureSizeInBytes() when the type is polymorphic. Differential Revision: https://reviews.llvm.org/D142772
-
Siva Chandra Reddy authored
This feature will primarily by used by the runtimes build. In the runtimes build, we build libc-hdrgen once for the host and use it to build the libc for other targets. So, the host libc-hdrgen is like a prebuilt passed to the target builds. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D141426
-
Philip Reames authored
This reverts commit c549da95. Per buildbots, this was not NFC.
-
Philip Reames authored
The PRE implementation was being overly strict when checking to see if a vsetvli was removed in the current block. For instructions which don't use all the fields of VTYPE or VL, we can propagate a changed state past the first instruction with an SEW operand and remove a vsetvli later in the block. We do need to be careful now to ensure that the state convergences before the end of the block or we'd invalidate the cached data flow results. Taking a step back, we're modeling the effect of the emitVSETVLIs pass which runs just after PRE. This is unfortunate, and makes me think we should probably reevaluate doing the PRE as a post-pass instead of as surgery in the data flow phases. Doing that requires us to get more aggressive about mutating user written vsetvlis which we've tried not to do up to now, but well, maybe it's time? Anyways, that's a thought for the future, not something I'm proposing doing now. Differential Revision: https://reviews.llvm.org/D142409
-
Ben Langmuir authored
Use the name "as requested" for the path of the implemented module's modulemap file, just as we do for other modulemap file paths. This fixes fatal errors with modules where we tried to find framework headers relative to the wrong directory when imported by an implementation file of the same module. rdar://104619123 Differential Revision: https://reviews.llvm.org/D142501
-
Peiming Liu authored
This patch moves some utils into CodegenEnv class, it should make the code easier to follow and it eliminates several indirect value assignment that use `ptr**`. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D142040
-
Philip Reames authored
Mostly to remove a special case from an upcoming patch.
-
Jonas Paulsson authored
- Global vector variables expose the vector ABI through their alignments only if they are >=16 bytes in size. - Vectors passed between functions expose the vector ABI only if they are <=16 bytes in size. LLVM test suite builds with gcc/clang now give the same gnu attributes emitted. Reviewed By: Ulrich Weigand Differential Revision: https://reviews.llvm.org/D141409
-
Tom Stellard authored
libclc requires using cmake files to detect the LLVM installation instead of llvm-config so we need to update our cmake invocation. Reviewed By: thieta Differential Revision: https://reviews.llvm.org/D142716
-
Tom Stellard authored
Reviewed By: thieta Differential Revision: https://reviews.llvm.org/D142718
-
Erich Keane authored
Fixes: #60323 https://github.com/llvm/llvm-project/issues/60323 The problem is that we are profiling the 'Expr' components directly, however when they contain an unresolved lookup, those canonicalize identically. The result was the two versions of calls to 'go' were canonicalized identically. This patch fixes this by ensuring we consider the declaration the constraint is attached to, when possible. When not, we skip the diagnostic. The result is that we are relaxing our diagnostic in some cases (Of which I couldn't come up with a reproducer), such that we might see overflows when evaluating constraints that depend on themselves in a way that they are not attached to a declaration directly, such as if they are nested requirements, though the hope is this won't be a problem, since the 'parent' named constraint would catch this. I'm hopeful that the 'worst case' is that we catch recursion 'later' in the process, instead of immediately.
-
Tom Stellard authored
Reviewed By: thieta Differential Revision: https://reviews.llvm.org/D142719
-
Piotr Zegar authored
When portability-simd-intrinsics.Suggest were set to false, produced warning were missing source location, and due to that such warning coudn't be NOLINTed. Added missing tests. Fixes issues: https://github.com/llvm/llvm-project/issues/52831 Differential Revision: https://reviews.llvm.org/D142565
-
Tom Stellard authored
Reviewed By: thieta Differential Revision: https://reviews.llvm.org/D142720
-
Amir Ayupov authored
Preemptively include clang-bolt target in BOLT-PGO CMake cache file, in preparation of https://reviews.llvm.org/D139454 to avoid breaking bolt-x86_64-ubuntu-clang-bolt-lto-pgo buildbot.
-
Jorge Gorbe Moya authored
`SBSection::GetSectionData` and `Section::GetSectionData` are implemented differently, and the `SBSection` method doesn't handle compressed sections correctly. Differential Revision: https://reviews.llvm.org/D142672
-
Arthur Eubanks authored
It builds but not all tests pass, mostly due to missing libbolt_rt_instr.a. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D141881
-
Qiao Zhang authored
Fix tsan problem where the per-thread shared_ptr() can be locked right before the cache is destroyed causing a race where it tries to remove an entry from a destroyed cache. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D142394
-
Jason Molenda authored
The description for disable-language-runtime-unwindplans did not include likely search terms ("backtrace", "stack"), rewrite it to include those so it is more easily discoverable with apropos. The text is still not the clearest description of what a language runtime is / what it might do, but this is better. Differential Revision: https://reviews.llvm.org/D142663 -
Jason Molenda authored
It is possible to have a memory-only mach-o corefile, with the threads provided by an os-plugin thread provider, or a scripted process, in Python. Differential Revision: https://reviews.llvm.org/D142662 rdar://102579544
-
Joseph Huber authored
Summary: This patch adds support for `--[no-]whole-archive` to the linker wrapper. This allows us to bypass the symbol resolution logic that is normally used for static archives. For multi-architecture binaries this also allows us to build for every single member.
-
Stefan Gränitz authored
WinEHPrepare requires funclet operand bundles ("tokens") on function calls from EH funclets to prevent them from getting removed as "implausible" calls. This includes calls to intrinsic functions that lower to function calls in the course of IR transformations (e.g. ObjC ARC runtime calls). We can not detect such cases in WinEHPrepare itself, because at this point they mixed up with valid implausible calls. These must be removed to guarantee that the EH backend can assign unique colors and EH state numbers to all blocks. This patch allows the IR Verifier to detect missing and dangling funclet tokens. Non-conforming IR becomes illegal and miscompilations are detected early. In order to find funclet pad instructions for funclets that extend over multiple blocks, we have to calculate EH funclet colors. As coloring can be expensive, it runs on-demand and results are cached per function. Reviewed By: efriedma Differe... -
Stefan Gränitz authored
Computing EH-related information was only relevant for analysis passes so far. Lifting it to IR will allow the IR Verifier to calculate EH funclet coloring and validate funclet operand bundles in a follow-up step. Reviewed By: rnk, compnerd Differential Revision: https://reviews.llvm.org/D138122
-
Matthias Springer authored
The handling of unknown ops will be tightened in a subsequent change. All sparse_tensor ops should implement BufferizableOpInterface, otherwise, they are treated as "unknown" and additional buffer allocs/copies may be inserted around them. Differential Revision: https://reviews.llvm.org/D142005
-
Matthias Springer authored
Writing into the memrefs returned by `sparse_tensor.to_values` etc. can cause additional copies during bufferization. Differential Revision: https://reviews.llvm.org/D142728
-
Joseph Huber authored
Summary: These options are no longer used, we don't need to keep them.
-
Michael Buch authored
Since https://reviews.llvm.org/D141827 this field gets used to print type names. Thus propagate it after importing TemplateArguments from modules. **Testing** * Confirmed that this fixes the ongoing `import-std-module` test failures. Differential Revision: https://reviews.llvm.org/D142714
-
Michael Buch authored
With https://reviews.llvm.org/D141826 `TemplateArgument`s have an additional field that indicates their defaulted-ness. This gets used during debug-info generation and in the `clang::TypePrinter`. This patch copies the field during the import process so consumers of the ASTImporter can benefit from the other Clang components that read the field. **Testing** * Added unit-test * Checked that this fixes (in addition to a follow-up LLDB patch) fix current test failures in LLDB Differential Revision: https://reviews.llvm.org/D142713
-
Matthias Springer authored
Deduplicate large parts of the worklist processing (`GreedyPatternRewriteDriver::processWorklist`). The new class hierarchy is as follows: ``` GreedyPatternRewriteDriver (abstract) ^ | ----------------------------------- | | RegionPatternRewriteDriver MultiOpPatternRewriteDriver ``` Also update the Markdown documentation. Differential Revision: https://reviews.llvm.org/D141396 -
Sacha Ballantyne authored
This patch adds a simplfiied version of count for the simplify intrinsics pass, allowing the function to be inlined. This was done specifically to help improve performance for exchange2, and provides a ~12% performance increase. Reviewed By: vzakhari, Leporacanthicus Differential Revision: https://reviews.llvm.org/D142209
-
Nico Weber authored
Needed to link e.g. LexTests after ca446037.
-
Aaron Ballman authored
We were linking against: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2148.htm However, the latest DR page for the 400s is: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2396.htm
-
Tue Ly authored
Implement asinhf function correctly rounded for all rounding modes. Reviewed By: zimmermann6 Differential Revision: https://reviews.llvm.org/D142681
-
Mark de Wever authored
This test already had issues and bumping main to 17 causes them to fail again.
-