- Aug 31, 2023
-
-
David Spickett authored
While doing some refactoring I forgot to carry over the copying in of SIMD data in normal mode, but no tests failed. Turns out, it's very easy for us to get the restore wrong because even if you forget the memcopy, setting the buffer to valid may just read the data you had before the expression evaluation. So I've extended the SVE SIMD testing (which includes the plain SIMD mode) to check expression save/restore. This is the only test that fails if you forget to do `m_fpu_is_valid = true` so I take from that, that prior to this it wasn't tested at all. As a bonus, we now have coverage of the same thing for SVE and SSVE modes. Reviewed By: omjavaid Differential Revision: https://reviews.llvm.org/D157000
-
David Spickett authored
Previously we would "process continue" then wait for the number of threads to be 3 before proceeding with the test. Testing this on QEMU I saw it would sometimes get stuck at this check, with one of the threads on a breakpoint before the other had started. We do want it to be on a breakpoint, but we need the other thread to have at least started so lldb can interact with both. I've also seen it timeout on the Graviton buildbot, likely the same cause. To fix this add 2 variables to stall either thread until the other has started up. Then it doesn't matter which one hits its breakpoint first, the test will just continue the one that didn't, until both are on the expected breakpoint. Differential Revision: https://reviews.llvm.org/D157967
-
Jens Massberg authored
This patch adds a concept AST node (`ConceptLoc`) and uses it at the corresponding places. There are three objects that might have constraints via concepts: `TypeConstraint`, `ConceptSpecializationExpr` and `AutoTypeLoc`. The first two inherit from `ConceptReference` while the latter has the information about a possible constraint directly stored in `AutoTypeLocInfo`. It would be nice if the concept information would be stored the same way in all three cases. Moreover the current structure makes it difficult to deal with these concepts. For example in Clangd accessing the locations of constraints of a `AutoTypeLoc` can only be done with quite ugly hacks. So we think that it makes sense to create a new AST node for such concepts. In details we propose the following: - Rename `ConceptReference` to `ConceptLoc` (or something else what is approriate) and make it the new AST node. - `TypeConstraint` and `ConceptSpecializationExpr` do not longer inherit from `ConceptReference` but store a pointer to a `ConceptLoc`. - `AutoTypeLoc` stores a pointer to `ConceptLoc` instead of storing the concept info in `AutoTypeLocInfo`. This patch implements a first version of this idea which compiles and where the existing tests pass. To make this patch as small as possible we keep the existing member functions to access concept data. Later these can be replaced by directly calling the corresponding functions of the `ConceptLoc`s. Differential Revision: https://reviews.llvm.org/D155858
-
Karl-Johan Karlsson authored
When compiling the builtins with the undefined behavior sanitizer and running testcases you end up with the following warning: UBSan: fp_fixint_impl.inc:39:42: left shift of 8388608 by 40 places cannot be represented in type 'fixint_t' (aka 'long long') UBSan: fp_fixint_impl.inc:39:17: signed integer overflow: -1 * -9223372036854775808 cannot be represented in type 'fixint_t' (aka 'long long') This can be avoided by doing the shift and the multiplication in a matching unsigned variant of the type. The added test only trigger the intended signed overflow case when the builtins are built with -D__SOFTFP__. This was found in an out of tree target. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D159069
-
Ingo Müller authored
The main function of the LSP server needs to load the dialects and similar that the server should be able to understand. When extensions where introduced, the loading of the extensions was apparently not added to its main functions, so ops from extensions were previously not recognized by the server. This patch registers all extensions through the existing convenience function, and also registers the TestDynDialect, which `mlir-opt`s main function also registers. Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D159091
-
wangpc authored
For inline asm with memory operands, we can merge the offset into the second operand of memory constraint operands. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D158062
-
wangpc authored
Tests for callbr, multi-operands and multi-asm are added. Reviewed By: wangpc, craig.topper Differential Revision: https://reviews.llvm.org/D158149
-
Hans Wennborg authored
Otherwise they fail in builds configured with -DCLANG_ENABLE_STATIC_ANALYZER=OFF. Follow-up to 3c9988f8.
-
4vtomat authored
This revision supports --print-supported-extensions, it prints out all of the extensions and corresponding version supported. Reviewed By: craig.topper, kito-cheng Differential Revision: https://reviews.llvm.org/D146054
-
Martin Erhart authored
Moves the lowering of `bufferization.dealloc` to memref into a separate pass, but still registers the pattern in the conversion pass. This is helpful when some tensor values (and thus `to_memref` or `to_tensor` operations) still remain, e.g., when the function boundaries are not converted, or when constant tensors are converted to memref.get_global at a later point. However, it is still recommended to perform all bufferization before deallocation to avoid memory leaks as all memref allocations inserted after the deallocation pass was applied, have to be handled manually. Note: The buffer deallocation pass assumes that memref values defined by `bufferization.to_memref` don't return ownership and don't have to be deallocated. `bufferization.to_tensor` operations are handled similarly to `bufferization.clone` operations with the exception that the result value is not handled because it's a tensor (not a memref). Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D159180
-
Matthias Springer authored
This trait is needed so that unstructured control flow is not inlined into "scf.while" ops. Note: The two regions of "scf.while" are already defined as `SizedRegion<1>`. `SingleBlock` can be queried from C++, `SizedRegion<n>` not. Fixes #64976. Differential Revision: https://reviews.llvm.org/D159199
-
Aart Bik authored
Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D159245
-
Andrey Turetskiy authored
definition to support operators with multiple outputs. Differential Revision: https://reviews.llvm.org/D152388
-
Nikolas Klauser authored
We only support Clang on windows, so this code path is never taken. Reviewed By: #libc, Mordante Spies: Mordante, libcxx-commits Differential Revision: https://reviews.llvm.org/D158230
-
4vtomat authored
Differential Revision: https://reviews.llvm.org/D158257
-
Andrey Turetskiy authored
does not change. Differential Revision: https://reviews.llvm.org/D149296
-
Fangrui Song authored
clangDriver depends on clangBasic, so clangBasic should not depend on clangDriver, even just its header. Also remove clangBasic's dependency on LLVMOption. The issue can be seen through the bazel commit d26dd681 which is reverted now. Add hasFlagNoClaim and use it as we don't want to suppress -Wunused-command-line-argument for -mexecute-only just because -fsanitize= is specified.
-
4vtomat authored
Differential Revision: https://reviews.llvm.org/D158255
-
Mogball authored
This adds support for using a custom directive as the first optional group element. The first optional group element guards the parsing of the rest of the optional group. This can be done for custom directives by expecting the parse function to return an `OptionalParseResult` instead of a `ParseResult`. Depends on D159243 Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D159244
-
Mogball authored
`custom` directives were allowed to anchor optional groups in attribute and type assembly formats already, but the feature was never extended to operation assembly formats. This patch adds the feature to op assembly formats too. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D159243
-
Sinan Lin authored
If `Itr` is the last element and then `std::next(Itr)` will be `Range.end()`, so that the statement `std::next(Itr)->second` is a UB. Reviewed By: yota9, maksfb Differential Revision: https://reviews.llvm.org/D159177
-
Pranav Kant authored
Don't use glob for specific files
-
Joseph Huber authored
Summary: This test is only supported on sm_70. We need to explicitly disable it on `sm_60` which one of the build bots uses.
-
Jie Fu authored
/data/home/jiefu/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:2189:8: error: variable 'IsFuncHashMismatch' set but not used [-Werror,-Wunused-but-set-variable] bool IsFuncHashMismatch = false; ^ 1 error generated. -
Jake Egan authored
These newly added tests fail on AIX with error `LLVM ERROR: Incompatible object format!`. Disable them for now while we investigate. Reviewed By: capfredf, shchenz Differential Revision: https://reviews.llvm.org/D159213
-
Owen Pan authored
Fix file mode errors introduced in 2c9372e7 and format errors in https://reviews.llvm.org/D155239.
-
Reid Kleckner authored
This means llvm-mc should now build without depending on the target CodeGen libraries. Fix up a few includes in RISCV, AMDGPU, and X86 MCA to avoid transitive deps on CodeGen. Fixes #64166
-
wlei authored
Accumulating the staleness metrics from per-link is less accurate than doing it from post-link time(assuming we use the offline profile mismatch as baseline), the reason is that there are some duplicated reports for the same functions, for example, one template function could be included in multiple TUs, but in post thin link time, only one function are kept(linkonce_odr) and others are marked as available-externally function. Hence, this change skips reporting the metrics for imported functions(available-externally). I saw the post-link number is now very close to the offline number(dump the mismatched functions and count the metrics offline based on the entire profile), sightly smaller than offline number due to some missing inlined functions. Reviewed By: hoy, wenlei Differential Revision: https://reviews.llvm.org/D156725
-
wlei authored
Follow-up diff for https://reviews.llvm.org/D158891. Compute the checksum mismatch based on the original nested profile. Additionally, use a recursive way to compute the children mismatched samples in the nested tree even the top-level func checksum is matched. Reviewed By: hoy, wenlei Differential Revision: https://reviews.llvm.org/D158900
-
wlei authored
- Always use flattened profile to find the profile anchors. Since profile under different contexts may have different inlined callsites, to get more profile anchors, we use a merged profile from all the contexts(the flattened profile) to find callsite anchors. - Compute the staleness metrics based on the original nested profile, as currently once a callsite is mismatched, all its children profile are dropped.(TODO: in future, we can improve to reuse the children valid profile) Reviewed By: hoy, wenlei Differential Revision: https://reviews.llvm.org/D158891
-
wlei authored
As in per-link time, callsites could be optimized out by inlining, we don't have those original call targets in the IR in LTO time. Additionally, the inlined code doesn't actually belong to the original function, the IR locations or pseudo probe parsed from it are incorrect and could mislead the matching later. This change adds the support to extract the original IR location info from the inlined code, specifically, it make sure to skip all the inlined code that doesn't belong the original function, but before that, it processes the inline frames of the debug info to extract the base frame and recover its callsite and callee target(name). Measured on some stale profile instances, all showed some perf improvements. Reviewed By: hoy, wenlei Differential Revision: https://reviews.llvm.org/D156722
-
wlei authored
- rename `IRLocation` --> `IRAnchors`, `ProfileLocation` --> `ProfileAnchors` - reorganize runOnFunction, fact out the finding IR anchors code into `findIRAnchors` - introduce a new function `findProfileAnchors` to populate the profile related anchors, the result is saved into `ProfileAnchors`, it's later used for both mismatch report and matching, this can avoid to parse the `getBodySamples` and `getCallsiteSamples` for multiple times. - move the `MatchedCallsiteLocs` stuffs from `findIRAnchors` to `countProfileMismatches` so that all the staleness metrics report are computed in one function. - move all matching related into `runStaleProfileMatching`, and move all mismatching report into `countProfileMismatches` Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D158817
-
Jason Molenda authored
Reading through this header, many of the comment line breaks are a mess after various code reformats.
-
Aart Bik authored
The header was split in memref/no-memref section, but various methods slipped in at the bottom at the wrong place Reviewed By: Peiming, yinying-lisa-li Differential Revision: https://reviews.llvm.org/D159218
-
Joseph Huber authored
The GPU has the ability to sleep for very short periods of time. We can map this to the existing `nanosleep` utility. This patch maps the nanosleep utility to the existing hardware instructions as best as possible. Depends on D159118 Reviewed By: JonChesterfield, sivachandra Differential Revision: https://reviews.llvm.org/D159225
-
Reid Kleckner authored
See issue #64166 for more information about the layering issue.
-
Reid Kleckner authored
llvm-dwarfutil now builds successfully with Bazel.
-
Qiongsi Wu authored
https://reviews.llvm.org/D157280 enabled `-fprofile-update` for `-fprofile-generate`, but omitted adding `-latomic` to the linker command on AIX. This omission causes linking to fail due to an undefined symbol. This patch fixes the link error. Reviewed By: w2yehia Differential Revision: https://reviews.llvm.org/D159137
-
Reid Kleckner authored
See issue #64166 for more information about the layering issue.
-
Reid Kleckner authored
See issue #64166 for more information about the layering issue. The PPCMCTargetDesc library was including CodeGen headers such as PPCInstrInfo.h and calling inline functions in them. This doesn't work in the Bazel build, and is error-prone. If the inline function moves to a cpp file, it will result in linker errors. To address the issue, I moved several inline functions to PPCMCTargetDesc.cpp, and declared them in the PPC namespace in PPCMCTargetDesc.h, which seemed like the most straightforward fix. Differential Revision: https://reviews.llvm.org/D156488
-