- May 02, 2024
-
-
Necip Fazil Yildiran authored
Created using spr 1.3.6-beta.1 [skip ci]
-
Peter Klausler authored
Some additional portability warnings now issue for a test; ensure that they are expected.
-
Peiming Liu authored
-
Aiden Grossman authored
This was added in def0823f to fix a bot failure, specifically for the standalone build. This does not seem to be an issue anymore, and setting the policy explicitly to OLD causes warnings with newer CMake versions. This patch removes setting the policy to OLD to get rid of the warning.
-
Med Ismail Bennani authored
This patch extends the `llvm::sys::RWMutex` class to fullfill the `Lockable` requirement to include attempted locking, by implementing a `bool try_lock` member function. As the name suggests, this method will try to acquire to lock in a non-blocking fashion and release it immediately. If it managed to acquire the lock, returns `true`, otherwise returns `false`. Signed-off-by:Med Ismail Bennani <ismail@bennani.ma>
-
Peter Klausler authored
Fix a warning from some build compilers about an unused lambda capture. There are some `if constexpr` branches in the body of the code that do not use the capture.
-
Craig Topper authored
Use an index variable and array indexing instead of manipulating a temporary StringRef.
-
Craig Topper authored
As the list of profiles grow, this will be a more efficient lookup. Because the profile name is a prefix of the Arch string, we use upper_bound to find the first profile that definitely comes after the Arch string. If that isn't the first supported profile, we move back 1 profile and see if that profile is a prefix of our Arch string.
-
Craig Topper authored
Previously we used SpecificInt_match which created a 64 bit APInt containing all ones. This was then checked against other constants by using APInt::isSameValue. If the constnats have different bitwidths, APInt::isSameValue will zero extend the constant to make them match. This means for any constant less than 64 bits, m_AllOnes was guaranteed to fail since the zero extended value would not match all ones. I think would also incorrectly consider an i128 with 64 leading zeros and 64 trailing zeros as matching m_AllOnes. To avoid this, this patch adds a new matcher class that just calls isAllOnesOrAllOnesSplat.
-
Mircea Trofin authored
This adds instrumenting callsites to PGOInstrumentation, *if* contextual profiling is requested. The latter also enables inserting counters in the entry basic block and disables value profiling (the latter is a point in time change) This change adds the skeleton of the contextual profiling lowering pass, just so we can introduce the flag controlling that and the API to check that. The actual lowering pass will be introduced in a subsequent patch. (Tracking Issue: #89287, RFC referenced there)
-
Vitaly Buka authored
In rare cases `SplitBlockAndInsertSimpleForLoop` in `paintOrigin` crashes outsize iterators. Somehow existing `SplitBlockAndInsertIfThen` do not invalidate iterators.
-
Perry MacMurray authored
The hexagon-copy-hoisting.mir test fails when run with -verify-machineinstrs. This patch fixes this by disabling tracksRegLiveness.
-
Peter Klausler authored
…Warn() Many warning messages were being emitted unconditionally. Ensure that all warnings are conditional on a true result from a call to common::LanguageFeatureControl::ShouldWarn() so that it is easy for a driver to disable them all, or, in the future, to provide per-warning control over them.
-
Shubham Sandeep Rastogi authored
-
Peter Klausler authored
The transformational intrinsic functions MATMUL, DOT_PRODUCT, and NORM2 all involve summing up intermediate products into accumulators. In the constant folding library, this is done with extended precision Kahan summation for REAL and COMPLEX arguments, but in the runtime implementations it is not, and this leads to discrepancies between folded results and dynamic results. Disable the use of Kahan summation in folding to resolve these discrepancies, but don't discard the code, in case we want to add Kahan summation in the runtime for some or all of these intrinsic functions.
-
Heejin Ahn authored
-
Peter Klausler authored
When there are one or more fatal error messages produced by the parser, semantic analysis is not performed. But when there are messages produced by the parser and none of them are fatal, those messages are emitted to the user before compilation continues with semantic analysis, and any messages produced by semantics are emitted after the messages from parsing. This can be confusing for the user, as the messages may no longer all be in source file location order. It also makes it difficult to write tests that check for both non-fatal messages from parsing as well as messages from semantics using inline CHECK: or other expected messages in test source code. This patch ensures that if semantic analysis is performed, and non-fatal messages were produced by the parser, that all the messages will be combined and emitted in source file order.
-
Adrian Prantl authored
-
Tai Ly authored
This patch renames Tosa Div Op to IntDiv Op to align with the TOSA Spec. <!-- Reviewable:start --> - - - This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/llvm/llvm-project/80047 ) <!-- Reviewable:end --> Signed-off-by:
Tai Ly <tai.ly@arm.com>
-
Adrian Prantl authored
-
Jonas Devlieghere authored
Use a Python script to generate SBLanguages.h instead of piggybacking on LLDB TableGen. This addresses Nico Weber's post-commit feedback.
-
Adrian Prantl authored
-
Amir Ayupov authored
-
Alexey Bataev authored
In some cases masked gather is less profitable than insert-subvector of consecutive/strided stores. SLP has this kind of analysis, but need to improve it by adding the cost of the GEP analysis. Also, the GEP cost estimation for masked gather is fixed. Reviewers: RKSimon Reviewed By: RKSimon Pull Request: https://github.com/llvm/llvm-project/pull/90737
-
Alexey Bataev authored
After minbitwidth analysis, and <v>, (power_of_2 - 1 const) can be transformed into just an <v>, (all_ones const), which can be ignored at the cost estimation and at the codegen. x264 benchmark has this pattern. Reviewers: RKSimon Reviewed By: RKSimon Pull Request: https://github.com/llvm/llvm-project/pull/90739
-
Florian Hahn authored
Replace relying on the underling CallInst for looking up the called function and its types by instead adding the called function as operand, in line with how called functions are handled in CallInst. Operand bundles, metadata and fast-math flags are optionally used if there's an underlying CallInst. This enables creating VPWidenCallRecipes without requiring an underlying IR instruction.
-
Adrian Prantl authored
-
Peter Klausler authored
Declaration checking is looking for inappropriate usage of the INTENT, VALUE, & OPTIONAL attributes in multiple places, and some oddball cases like ENTRY points are not checked. Centralize the check for attributes that apply only to dummy arguments into one spot.
-
Peter Klausler authored
A sanity CHECK() in mod-file.cpp needs to allow for USE association of a derived type that has the same name as a locally defined generic interface. Fixes https://github.com/llvm/llvm-project/issues/90192.
-
Igor Kudrin authored
The only reason for the removed condition was that there was a dependency for `CTTestTidyModule` on the `clang-tidy-headers` target, which was only created under the same `NOT LLVM_INSTALL_TOOLCHAIN_ONLY` condition. It looks like this target is not needed for `CTTestTidyModule` to build and run, so the dependency can be removed along with the condition. See also https://reviews.llvm.org/D111100 for earlier discussions.
-
Fangrui Song authored
zstd excels at scaling from low-ratio-very-fast to high-ratio-pretty-slow. Some users prioritize speed and prefer disk read speed, while others focus on achieving the highest compression ratio possible, similar to traditional high-ratio codecs like LZMA. Add an optional `level` to `--compress-sections` (#84855) to cater to these diverse needs. While we initially aimed for a one-size-fits-all approach, this no longer seems to work. (https://richg42.blogspot.com/2015/11/the-lossless-decompression-pareto.html) When --compress-debug-sections is used together, make --compress-sections take precedence since --compress-sections is usually more specific. Remove the level distinction between -O/-O1 and -O2 for --compress-debug-sections=zlib for a more consistent user experience. Pull Request: https://github.com/llvm/llvm-project/pull/90567
-
Fangrui Song authored
The function may return Z_MEM_ERROR or Z_STREAM_ERR. The former does not have a good way of testing. The latter will be possible with a pending change that allows setting the compression level, which will come with a test.
-
Ryosuke Niwa authored
Treat a compound operator such as |=, array subscription, sizeof, and non-type template parameter as trivial so long as subexpressions are also trivial. Also treat true/false boolean literal as trivial.
-
Vinayak Dev authored
Fixes #84968. Implements the `fcntl()` function defined in the `fcntl.h` header.
-
Tom Eccles authored
It was pointed out in post commit review of https://github.com/llvm/llvm-project/pull/90597 that the pass should never have been run in parallel over all functions (and now other top level operations) in the first place. The mutex used in the pass was ineffective at preventing races since each instance of the pass would have a different mutex.
-
Jan Voung authored
This reverts commit 2aabfc81 . Add fixes to LLD and Gold tests missed in original change. Co-authored-by:
Jan Voung <jvoung@google.com>
-
Craig Topper authored
This simplifies the callers.
-
Craig Topper authored
Instead of hardcoding the 4 current profile prefixes, treat profile selection as a fallback if we don't find "rv32" or "rv64". Update the error message accordingly.
-
Nicolas Miller authored
ROTL and ROTR can take a shift amount larger than the element size, in which case the effective shift amount should be the shift amount modulo the element size. This patch adds the modulo step when the shift amount isn't known at compile time. Without it the existing implementation would end up shifting beyond the type size and give incorrect results.
-
David Tellenbach authored
In case of functions without a stack frame no "stack" field is serialized into MIR which leads to isCalleeSavedInfoValid being false when reading a MIR file back in. To fix this we should serialize MachineFrameInfo::isCalleeSavedInfoValid() into MIR.
-