merge main into amd-staging#2784
Open
ronlieb wants to merge 13 commits into
Open
Conversation
…et" (llvm#201479) This reverts llvm#201280 This broke MSan on the buildbots: https://lab.llvm.org/buildbot/#/builders/169/builds/23291/steps/10/logs/stdio This is the only change in the batch that touched BitcodeReader
Lifts the SymbolLookupSet class and SymbolLookupFlags enum out of Core.h and into a new SymbolLookupSet.h header.
…199549) This patch adds an IgnoreMacros option to the readability-function-size check. Fixes llvm#112835
llvm#200964) … linkage Host handles are now emmitted with external linkage to clash if two kernels with the same name are registered. This could have happen right now and silently corrupt the program, but it can happen more easily once we allow users to name their kernels. In the same patch we make global variable handles retain the linkage of the global variable, forcing clashes for external ones and continue to support weak use cases. --------- Co-authored-by: Shilei Tian <[email protected]>
…#201474) This is no longer needed after PR172502 added support to identify indirect callees from inlined frames.
Extend the matcher to recognize additional supported boolean contraction form(and+or). Fixes llvm#198235.
Lower non-constant `user={condition(expr)}` selectors in OpenMP
metadirectives to a runtime `fir.if` / `else` selection cascade.
Dynamic user conditions are handled in two separate phases:
- Static applicability uses only selector traits that are known at
compile time.
- Guarded ranking preserves selector specificity and dynamic-condition
scores for the path where the runtime condition evaluates to true.
Lowering first filters candidates using compile-time selector traits,
then orders the remaining candidates with the normal OpenMP variant
ranking rules. If the selected candidate has a non-constant user
condition, that condition is emitted as a `fir.if` guard. When the
condition evaluates to false, the `else` branch continues selection
among the remaining candidates.
For example:
```fortran
!$omp metadirective &
!$omp & when(user={condition(score(100): high)}: barrier) &
!$omp & when(user={condition(low)}: taskwait) &
!$omp & otherwise(nothing)
```
is selected as:
```text
if (high) barrier
else if (low) taskwait
else nothing
```
Scores attached to dynamic `condition(score(...): expr)` selectors are
preserved for the guarded candidate. As a result, those scores affect
ranking only on the runtime path where the condition is true, instead of
allowing a false runtime condition to influence unconditional selection.
This also fixes the interactions with `extension(match_any)` and
`extension(match_none)`:
- `match_any` can be satisfied by a runtime condition when no static
trait matches.
- If static traits already satisfy `match_any`, the dynamic condition
score is used only when the condition is true.
- `match_none` keeps the dynamic condition inactive for static
applicability while still preserving its score for ranking.
For example, this `match_any` selector is statically applicable through
`vendor(llvm)`, but the score on `flag` is used only when `flag`
evaluates to true:
```fortran
!$omp metadirective &
!$omp & when(implementation={extension(match_any), vendor(llvm)}, &
!$omp & user={condition(score(100): flag)}: barrier) &
!$omp & when(user={condition(score(10): .true.)}: taskwait) &
!$omp & otherwise(nothing)
```
is selected as:
```text
if (flag) barrier
else taskwait
```
The final fallback is the highest-ranked unguarded candidate, an
explicit `otherwise` / `default` clause, or implicit `nothing`.
This patch is part of the feature work for llvm#188820 and is stacked on top
of [llvm#193664](llvm#193664).
Assisted with Copilot and GPT-5.4.
`Context::collectBaseOffset()` will assert if the passed-in classes are the same.
…lvm#201492) Update DylibManager and associated interfaces to return ExecutorAddrs for remote symbols, rather than ExecutorSymbolDefs. No clients were using the flags component of ExecutorSymbolDef, and this brings the SimpleExecutorDylibManager implementation in OrcTargetProcess into closer alignment with the NativeDylibManager implementation in the new ORC runtime.
…01263) This commit removes a call to `removeEmptySubRanges` inside `SplitEditor::rewriteAssigned` which removes empty subranges that may be expected at a later stage. The empty subranges are eliminated by a later call to `removeEmptySubRanges`. Fixes llvm#199337. --------- Signed-off-by: Steffen Holst Larsen <[email protected]>
areInnerLoopExitPHIsSupported() returned true as soon as it saw the reduction LCSSA PHI, skipping the user-check for any later LCSSA PHIs. If one had a non-PHI user, legality wrongly succeeded and the transform hit a cast<PHINode> assertion. Use continue so the remaining PHIs are still validated. Fixes llvm#200811.
dpalermo
approved these changes
Jun 4, 2026
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
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.