[pull] main from llvm:main - #1674
Merged
Merged
Conversation
Extend SIGCHLD-specific `si_code` values, already available in `signal-macros.h` with Linux values for the rest of the signal-specific codes specified in the POSIX.1-2024.
Statement functions are inlined during lowering, so they should not be treated as host procedure calls. Recursively validate their expressions to reject any host procedure calls within the body.
Block list construction appends each block to all enclosing loops (O(depth) per block), and each loop owns a separately allocated vector. Switch to an Euler tour representation: one BlockLayout array per LoopInfo holding the in-loop blocks in a loop-contiguous reverse postorder, each loop's list a [begin, end) slice of it, subloop slices nested inside their parent's. Headers remain first; `SubLoops`/`TopLevelLoops` orders are unchanged. A few tests observe the order and are updated. (Previously a loop's list was the function's reverse postorder restricted to its members, so a subloop's blocks were interleaved with the parent's own blocks at their RPO positions.) Mutations first copy a borrowed slice into private storage from LoopInfo's allocator. `contains(BlockT *)` remains map-based: a materialized loop's slice is not a membership test. This copy is rare: across default<O2> over dagcombiner and sqlite3, only 12--14% of loops built by analyze() are ever mutated; the rest keep the borrowed slice. AllocateLoop() no longer forwards constructor arguments; analyze() uses allocateLoop(Header), removing the header-taking loop constructors. Aided by Claude Fable 5
After #211394, `FileSpec` stores m_filename as a `SmallString` instead of `ConstString`. When the `FileSpec` goes out of scope / is destructed, a `StringRef` pointing to m_filename is now invalid. Previously it would have worked even after `FileSpec` goes out of scope since `ConstString` stores the string in a global buffer which is never destructed. This causes heap-use-after-free in `CommandInterpreter` when we use the result of `GetFilename()` on a temporary `FileSpec`. Store the result of `HostInfo::GetProgramFileSpec()` as a variable to prevent it from going out of scope before we're able to call `GetHomeInitFile()`. Although #211394 introduces this failure, technically speaking this is an existing bug, it was just masked because of how `FileSpec` used to use `ConstString` to force a long lifetime.
…e is a vector (#211208) The diagnostic says the transform is not performed as the source may be a scalar. But we can make it if we can check the source is not a scalar. AI assisted.
Make the `input_layout` attribute of `xegpu.convert_layout` optional. When it is not set, the effective input layout defaults to `target_layout`, i.e. the source is assumed to already be in the target distribution. assisted-by-Claude Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…perations (#211849) This PR adds dynamic `IsIsolatedFromAbove` trait support and exposes it to Python as `IsIsolatedFromAboveTrait`. The test verifies that a region with the trait cannot capture an SSA value from above, while a region without the trait can. Assisted by Codex/GPT 5.6 Sol (for writing test cases).
#211845) This patch adds CIR support for the following atomic builtin functions: - `__atomic_fetch_fmaximum` - `__atomic_fetch_fminimum` - `__atomic_fetch_fmaximumnum` - `__atomic_fetch_fminimumnum` The scoped versions of these atomic builtin functions are supported as well. Specifically, this patch contains the following changes: - It updates the `cir.atomic.fetch` operation and adds new fetch operators including `maximum`, `minimum`, `maximumnum`, and `minimumnum`. These operators accept floating-point inputs only. - It updates the LLVM lowering of the `cir.atomic.fetch` operation. The LLVM lowering now will lower `maximum`, `minimum`, `maximumnum`, and `minimumnum` atomic fetch operators to the corresponding LLVM `atomicrmw` operations, which are `fmaximum`, `fminimum`, `fmaximumnum`, and `fminimumnum`, respectively, aligning with the OGCG behavior. - It updates the CIRGen path for atomic operations and add supports for these atomic builtin functions. Assisted-by: GitHub Copilot / gpt-5.4 xhigh
The patch resolves the following warning.
```bash
clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp:504:16: warning: variable ‘i’ set but not used [-Wunused-but-set-variable=]
504 | unsigned i = 0;
| ^
```
A count variable was set and incremented inside of a for loop but never
actually used inside of the loop or anywhere else in its scope.
There were a couple passes that landed after the mass migration that need to be updated to eventually make PassInfoMixin private. For backend passes I looked at whether LegacyPM passes called skipFunction rather than whether or not they should be enabled to try and preserve existing behavior where possible. We still need to wait a bit in order to avoid PassInfoMixin to a detail namespace and fully remove isRequired from PassInfoMixin given there are a lot of out-of-tree passes that have not yet been moved over. I'm hoping to have patches out within a week. Reviewers: arsenm, aeubanks Pull Request: #211874
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )