forked from llvm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 77
merge main into amd-staging #608
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This patch implements DTLTO cache. DTLTO cache is implemented the same way as ThinLTO cache. In fact the same class Cache is used for both of them. Because parameters for codegen are different for DTLTO and ThinLTO (DTLTO codegen is done by invoking clang and its codegen parameters are not fully synchronized with codegen parameters used by LTO backend). The object files generated by DTLTO and ThinLTO might be different and shouldn't be mixed. If ThinLTO and DTLTO share the same cache directory, the cache file won't interfere with each other. I added a couple of test files in cross-project-test/dtlto directory, but if more tests are required for initial implementation, I could add them.
…llvm#167822) This check is introduced in llvm@b284005, but the documentation seems missing from `checkers.rst`.
Test using CTTZ to determine the lowest set bit, clear it and return the index Shows failure to use RMW pattern on the load-btr-store due to additional (but non-interference) uses of the load.
…c` (llvm#166255) Now the files location is used for macro expansions. This provides more accurate location when reporting compilation errors. Move from `getDecomposedExpansionLoc(Loc)` to `getDecomposedLoc(getFileLoc(Loc))` when computing Presumed location.
I've left Sonar by the end of October. For my upcoming contributions, I'll simply use my personal (this) account. I'll remain a Clang Static Analyser maintainer, but I'll likely spend less time on that part as in my new job this falls out of my key responsibilities. From now on, I'm part of the Apple org, but for accessibility, I'll keep using my personal email address for open-source contributions and for the build bots.
Changes: The previous patch had to be reverted to a mismatching-OpType assert in cse. The reduced-test has now been added corresponding to a RVV pointer-induction, and the pointer-induction case has been updated to use createOverflowingBinaryOp. While at it, record VPIRFlags in VPWidenInductionRecipe.
…esumedLoc`" (llvm#168368) Reverts llvm#166255 It broke bots: https://lab.llvm.org/buildbot/#/builders/190/builds/31102
…ons (llvm#168078) Instead of storing a variant with specific types, store parser::Block as the body. Add two access functions to make the traversal of the nest simpler. This will allow storing loop-nest sequences in the future.
Only the fortran source files in flang/test/Lower/OpenACC have been modified. The other files in flang/test will be cleaned up in subsequent commits
Per Intel Architecture Instruction Set Extensions Programming Reference rev. 60 (https://cdrdv2.intel.com/v1/dl/getContent/671368), table 1-2, NVL supports APX and AVX10.2
This patch is a minor NFC-intended refactoring to the way emitting redundant parentheses is prevented. The current implementation pushes and later pops a fake low precedence into the precedence stack when emitting function calls. The new implementation adds a boolean argument to `emitOperand()` that explicity guarantees that the operand is being emitted between some kind of brackets, exempting the method from enforcing correct evaluation order w.r.t precedence and associativity up the expression tree.
So setting the environment variable works with the new internal shell. This does not fix all the XRay tests because some of them are using subshells and need to be rewritten to not use subshells.
This does a couple of things: - code that is only useful for `shrink_to_fit` is moved into that function - `shrink_to_fit` is simplified a bit - `__recommend` is renamed to better reflect what the function actually does - `__allocate_long_buffer` asserts that the passed capacity doesn't fit into the SSO
So that they will actually function with the internal shell.
Currently only __builtin_elementwise_sqrt emits contrained fp intrinsic and propagates fp options. This commit adds this support for the rest of elementwise builtins.
Recent commits (7fe0691, 53ddeb4) marked several x86 intrinsics as constexpr in headers without providing the necessary constant evaluation support in the compiler backend. This caused compilation failures when attempting to use these intrinsics in constant expressions. Resolves llvm#166814 Resolves llvm#161203
…undef, undef) (llvm#165539) This PR adds a new combine to the `post-legalizer-combiner` pass. The new combine checks for vectors being unmerged and subsequently padded with `G_IMPLICIT_DEF` values by building a new vector. If such a case is found, the vector being unmerged is instead just concatenated with a `G_IMPLICIT_DEF` that is as wide as the vector being unmerged. This removes unnecessary `mov` instructions in a few places.
…lvm#168390) This patch adds verification to the `SymbolOpInterface` to enforce the design constraint that symbol operations must not produce SSA results, as documented in [Symbols and SymbolTables](https://mlir.llvm.org/docs/SymbolsAndSymbolTables/#defining-or-declaring-a-symbol). This is a follow-up of llvm#168376
Identified with llvm-use-ranges.
While I am at it, this patch converts one of the loops to use llvm::is_contained. Identified with modernize-loop-convert.
Idx is already of type unsigned. Identified with readability-redundant-casting.
This patch consolidates the grow() logic in DenseMapBase::grow. With this patch, DenseMapBase::grow() creates a temporary grown instance and then lets DenseMap/SmallDenseMap attempt to move the instance back to *this. If it doesn't work, we move again. The "attempt to move" always succeeds for DenseMap. For SmallDenseMap, it succeeds only in the large mode. This is part of the effort outlined in llvm#168255.
This patch removes DenseMap::init and SmallDenseMap::init by inlining
them into their call sites and simplifying them.
init() is defined as:
void init(unsigned InitNumEntries) {
auto InitBuckets =
BaseT::getMinBucketToReserveForEntries(InitNumEntries);
this->initWithExactBucketCount(InitBuckets);
}
- Constuctors: Now that we have constructors that allocate the exact
number of buckets (as opposed to the number of key/value pairs),
init() does too much. Once we convert the number of key/value pairs
to the number of buckets, we can call the constructors that take the
exact number of buckets.
- init(0) in the move assignment operators simplifies down to:
initWithExactBucketCount(0)
- shrink_and_clear() computes the number of buckets to have after the
clear operation. As such, we should call initWithExactBucketCount,
not init. Otherwise, we would end up adding "load factor padding"
on top of NewNumBuckets:
NextPowerOf2(NewNumBuckets * 4 / 3 + 1)
All in all, init() doesn't bring any value in the current setup.
This patch is part of the effort outlined in llvm#168255.
Collaborator
Author
ronlieb
approved these changes
Nov 17, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.