about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2025-09-19autodiff: typetree recursive depth query from enzyme with fallbackKaran Janthe-20/+24
Signed-off-by: Karan Janthe <karanjanthe@gmail.com>
2025-09-19autodiff: recurion added for typetreeKaran Janthe-20/+191
2025-09-19autodiff: fixed test to be more precise for type tree checkingKaran Janthe-87/+120
2025-09-19autodiff: struct support in typetreeKaran Janthe-0/+67
2025-09-19autodiff: tuple support in typetreeKaran Janthe-0/+64
2025-09-19autodiff: slice support in typetreeKaran Janthe-0/+36
2025-09-19autodiff: add TypeTree support for arraysKaran Janthe-1/+69
2025-09-19autodiff: f128 support added for typetreeKaran Janthe-2/+2
2025-09-19enzyme submodule updatedKaran Janthe-0/+0
2025-09-19typo: allow EnzymeTypeTreeShiftIndiciesEqKaran Janthe-0/+1
2025-09-19added typetree support for memcpyKaran Janthe-34/+135
2025-09-19Add TypeTree tests for scalar typesKaran Janthe-0/+154
- Add specific tests for f32, f64, i32, f16, f128 TypeTree generation - Verify correct enzyme_type metadata for each scalar type - Ensure TypeTree metadata matches expected Enzyme format Signed-off-by: Karan Janthe <karanjanthe@gmail.com>
2025-09-19Update TypeTree tests to verify metadata attachmentKaran Janthe-28/+29
- Fix nott-flag test to emit LLVM IR and check enzyme_type attributes - Replace TODO comments with actual TypeTree metadata verification - Test that NoTT flag properly disables TypeTree generation - Test that TypeTree enabled generates proper enzyme_type attributes Signed-off-by: Karan Janthe <karanjanthe@gmail.com>
2025-09-19Add TypeTree metadata attachment for autodiffKaran Janthe-14/+343
- Add F128 support to TypeTree Kind enum - Implement TypeTree FFI bindings and conversion functions - Add typetree.rs module for metadata attachment to LLVM functions - Integrate TypeTree generation with autodiff intrinsic pipeline - Support scalar types: f32, f64, integers, f16, f128 - Attach enzyme_type attributes as LLVM string metadata for Enzyme Signed-off-by: Karan Janthe <karanjanthe@gmail.com>
2025-09-19autodiff: Add basic TypeTree with NoTT flagKaran Janthe-5/+212
Signed-off-by: Karan Janthe <karanjanthe@gmail.com>
2025-09-18Auto merge of #137122 - yotamofek:pr/std/iter-eq-exact-size, r=the8472bors-4/+48
Specialize `Iterator::eq{_by}` for `TrustedLen` iterators I'm sure I got some stuff wrong here, but opening this to get feedback and make sure it's a viable idea at all. ### Motivation I had a piece of code that open-coded `Iterator::eq`, something like: ```rust if current.len() != other.len() || current.iter().zip(other.iter()).any(|(a, b)| a != b) { ... } ``` ... where both `current` and `other` are slices of the same type. Changing the code to use `current.iter().eq(other)` made it a lot slower, since it wasn't checking the length of the two slices beforehand anymore, which in this instance made a big difference in perf. So I thought I'd see if I can improve `Iterator::eq`. ### Questions 1. I can't specialize for `ExactSizeIterator`, I think it's a limitation of `min_specialization` but not sure exactly why. Is specializing for `TrustedLen` good enough? 2. Should I make a codegen test for this? If so, then how? (I manually checked the assembly to make sure it works as expected) 3. Where should I put `SpecIterCompare`? 4. Can I get a perf run for this, please? I think the compiler uses this in a few places, so it might have an affect.
2025-09-18Auto merge of #146728 - flip1995:clippy-subtree-update, r=samueltardieubors-2479/+4380
Clippy subtree update r? `@Manishearth` `Cargo.lock` update due to release/Clippy version bump.
2025-09-18Specialize `Iterator::eq[_by]` for `TrustedLen` iteratorsYotam Ofek-4/+48
2025-09-18Auto merge of #146727 - matthiaskrgr:rollup-98812uj, r=matthiaskrgrbors-128/+892
Rollup of 6 pull requests Successful merges: - rust-lang/rust#146434 (c-variadic: allow c-variadic inherent and trait methods) - rust-lang/rust#146487 (Improve `core::num` coverage) - rust-lang/rust#146597 (Add span for struct tail recursion limit error) - rust-lang/rust#146622 (Add regression test for issue rust-lang/rust#91831) - rust-lang/rust#146717 (Clean up universe evaluation during type test evaluation) - rust-lang/rust#146723 (Include patch in release notes) r? `@ghost` `@rustbot` modify labels: rollup
2025-09-18Update Cargo.lockPhilipp Krones-5/+5
2025-09-18Merge commit '20ce69b9a63bcd2756cd906fe0964d1e901e042a' into ↵Philipp Krones-2474/+4375
clippy-subtree-update
2025-09-18Rollup merge of #146723 - Mark-Simulacrum:relnotes-fix, r=KobzolMatthias Krüger-2/+2
Include patch in release notes This should fix triagebot publication of the GitHub release on merge.
2025-09-18Rollup merge of #146717 - amandasystems:remove-placeholder-hack, r=lcnrMatthias Krüger-12/+18
Clean up universe evaluation during type test evaluation The logic was, as the removed comments suggest, hackish and meant to implement previous logic that was factored out. The new logic does exactly what the comments say, and is much less surprising. I'm afraid we may want r? `@lcnr` for this one too. I am sorry, but at least it should be easier to review.
2025-09-18Rollup merge of #146622 - aklaiber:91831_add_regression_test, r=jdonszelmannMatthias Krüger-0/+33
Add regression test for issue #91831 The requested test for rust-lang/rust#91831. I'm unsure about the filename, the file structure in `tests/ui/lifetimes/lifetime-errors/` isn't entirely clear to me. Any suggestions? Closes rust-lang/rust#91831
2025-09-18Rollup merge of #146597 - modhanami:add-struct-tail-recursion-limit-span, ↵Matthias Krüger-65/+111
r=oli-obk Add span for struct tail recursion limit error Fixes rust-lang/rust#135629 Changes 1. Add span to RecursionLimitReached 2. Add ObligationCause parameter to struct_tail_raw 4. Update call sites to pass nearby ObligationCause or create one 5. Update affected .stderr
2025-09-18Rollup merge of #146487 - ferrocene:pvdrz/improve-num-coverage, r=joboetMatthias Krüger-0/+7
Improve `core::num` coverage This PR improves the `core::num` coverage by adding a new test to `coretests`. r? libs
2025-09-18Rollup merge of #146434 - folkertdev:c-variadic-inherent-methods, ↵Matthias Krüger-49/+721
r=workingjubilee c-variadic: allow c-variadic inherent and trait methods tracking issue: https://github.com/rust-lang/rust/issues/44930 Continuing the work of https://github.com/rust-lang/rust/pull/146342, allow inherent and trait methods to be c-variadic. However, a trait that contains a c-variadic method is no longer dyn-compatible. There is, presumably, some way to make c-variadic methods dyn-compatible. However currently, we don't have confidence that it'll work reliably: when methods from a `dyn` object are cast to a function pointer, a `ReifyShim` is created. If that shim is c-variadic, it would need to forward the C variable argument list. That does appear to work, because the `va_list` is not represented in MIR at all in this case, so the registers from the call site are untouched by the shim and can be read by the actual implementation. That just does not seem like a solid implementation. Also, intuitively, why would c-variadic function, primarily needed for FFI, need to be used with `dyn` objects at all? We can revisit this limitation if a need arises. r? `@workingjubilee`
2025-09-18Rustup (#15704)Philipp Krones-111/+117
r? @ghost changelog: none
2025-09-18Bump Clippy version -> 0.1.92Philipp Krones-5/+5
2025-09-18Bump nightly version -> 2025-09-18Philipp Krones-2/+2
2025-09-18Merge remote-tracking branch 'upstream/master' into rustupPhilipp Krones-2469/+4339
2025-09-18`redundant_clone`: split iterator checks into `redundant_iter_cloned` (#15277)Alejandra González-17/+44
Needed to split the lints crate. changelog: split `redundant_clone` iterator checks into `redundant_iter_cloned` <!-- TRIAGEBOT_START --> <!-- TRIAGEBOT_SUMMARY_START --> ### Summary Notes - [Feature-freeze](https://github.com/rust-lang/rust-clippy/pull/15277#issuecomment-3073454006) by [github-actions[bot]](https://github.com/github-actions[bot]) *Managed by `@rustbot`—see [help](https://forge.rust-lang.org/triagebot/note.html) for details* <!-- TRIAGEBOT_SUMMARY_END --> <!-- TRIAGEBOT_END -->
2025-09-18Auto merge of #145993 - lcnr:allow-calling-opaques, r=BoxyUwUbors-162/+965
`-Znext-solver` allow `ExprKind::Call` for not-yet defined opaques Based on https://github.com/rust-lang/rust/pull/146329. Revival of rust-lang/rust#140496. See the comment on `OpaqueTypesJank`. I've used the following document while working on this https://hackmd.io/Js61f8PRTcyaiyqS-fH9iQ. Fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/181. It does introduce one subtle footgun we may want to handle before stabilization, opened https://github.com/rust-lang/trait-system-refactor-initiative/issues/230 for that. Also cc https://github.com/rust-lang/trait-system-refactor-initiative/issues/231 for deref and index operations r? `@BoxyUwU`
2025-09-18Include patch in release notesMark Rousskov-2/+2
This should fix triagebot publication of the GitHub release on merge.
2025-09-18Do not replace `.unwrap_or(vec![])` by `.unwrap_or_default()` (#15699)Jason Newcomb-47/+86
`.unwrap_or(vec![])` is as readable as `.unwrap_or_default()`. Also, this ensures by adding tests that expressions such as `.unwrap_or(DEFAULT_LITERAL)` (`0`, `""`, etc.) are not replaced by `.unwrap_or_default()` either. Related to the discussion in the [Zulip discussion](https://rust-lang.zulipchat.com/#narrow/channel/257328-clippy/topic/FCP.20concealed_obvious_default) about PR rust-lang/rust-clippy#15037. changelog: [`unwrap_or_default`]: do not replace `.unwrap_or(vec![])` by `.unwrap_or_default()`
2025-09-18Clean up universe evaluation during type test evaluationAmanda Stjerna-12/+18
The logic was, as the removed comments suggest, hackish and meant to implement previous logic that was factored out. The new logic does exactly what the comments say, and is much less surprising.
2025-09-18Add regression test for issue 91831aklaiber-0/+33
2025-09-18add tests, silence type annotations needed errors for opaqueslcnr-38/+231
2025-09-18support calls on opaque types :<lcnr-124/+734
2025-09-18Auto merge of #146671 - ZuseZ4:update-enzyme-submodule, r=davidtwcobors-0/+0
update enzyme submodule I upstreamed a few of our rust-lang/Enzyme patches, so I could drop them in our fork. r? compiler
2025-09-18Do not replace `.unwrap_or(vec![])` by `.unwrap_or_default()`Samuel Tardieu-47/+62
`.unwrap_or(vec![])` is as readable as `.unwrap_or_default()`.
2025-09-18Check that `.unwrap_or(LITERAL)` doesn't trigger `unwrap_or_default`Samuel Tardieu-38/+62
2025-09-18Remove feature-freeze from gh templates (#15698)Samuel Tardieu-7/+1
ping rust-lang/rust-clippy#15690 changelog: none
2025-09-18Remove feature-freeze from gh templateslukaslueg-7/+1
2025-09-18Auto merge of #142544 - Sa4dUs:prevent-abi-changes, r=ZuseZ4bors-3/+271
Prevent ABI changes affect EnzymeAD This PR handles ABI changes for autodiff input arguments to improve Enzyme compatibility. Fundamentally this adjusts activities when a function argument is lowered as an `ScalarPair`, so there's no mismatch between diff activities and args. Also removes activities corresponding to ZSTs. fixes: https://github.com/rust-lang/rust/issues/144025 r? `@ZuseZ4`
2025-09-18Remove automatic feature freeze comment (#15690)Alejandra González-108/+0
The feature freeze period is over. changelog: none
2025-09-18fix `option_if_let_else` when `Err` variant is ignored (#14429)Manish Goregaokar-16/+60
This fixes an issue where clippy suggests passing a function that takes no arguments as the first argument of `Result::map_or_else`. The function needs to take one argument. Example that triggers the issue: [Playground link](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=0b6f9bc7b6ab4dcd26745065544e0b8a) Fixes #10335. changelog: [`option_if_let_else`]: fix incorrect suggestion when the contents of an `Err` variant are ignored
2025-09-18Auto merge of #146698 - Zalathar:rollup-0oxl4gx, r=Zalatharbors-1038/+916
Rollup of 5 pull requests Successful merges: - rust-lang/rust#146566 (Lint more overlapping assignments in MIR.) - rust-lang/rust#146645 (Cleanup `FnDecl::inner_full_print`) - rust-lang/rust#146664 (Clean up `ty::Dynamic`) - rust-lang/rust#146673 (cg_llvm: Replace some DIBuilder wrappers with LLVM-C API bindings (part 4)) - rust-lang/rust#146694 (Remove ImplSubject) r? `@ghost` `@rustbot` modify labels: rollup
2025-09-17test cases for option_if_let_elseDaniel Gulotta-16/+60
2025-09-18Rollup merge of #146694 - camsteffen:impl-subject, r=compiler-errorsStuart Cook-61/+7
Remove ImplSubject It only has one usage in rustdoc.