about summary refs log tree commit diff
path: root/compiler/rustc_ast/src/expand
AgeCommit message (Collapse)AuthorLines
2025-09-19Add TypeTree metadata attachment for autodiffKaran Janthe-0/+1
- 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-3/+14
Signed-off-by: Karan Janthe <karanjanthe@gmail.com>
2025-08-09remove `P`Deadbeef-2/+1
2025-07-15Define datastructures for `#[cfg]` attribute, move StrippedCfgItemJonathan Brouwer-17/+0
2025-06-16Change __rust_no_alloc_shim_is_unstable to be a functionDaniel Paoliello-1/+1
2025-04-17Rollup merge of #139351 - EnzymeAD:autodiff-batching2, r=oli-obkMatthias Krüger-14/+26
Autodiff batching2 ~I will rebase it once my first PR landed.~ done. This autodiff batch mode is more similar to scalar autodiff, since it still only takes one shadow argument. However, that argument is supposed to be `width` times larger. r? `@oli-obk` Tracking: - https://github.com/rust-lang/rust/issues/124509
2025-04-16working dupv and dupvonly for fwd modeManuel Drehwald-14/+26
2025-04-10Rename some `name` variables as `ident`.Nicholas Nethercote-2/+2
It bugs me when variables of type `Ident` are called `name`. It leads to silly things like `name.name`. `Ident` variables should be called `ident`, and `name` should be used for variables of type `Symbol`. This commit improves things by by doing `s/name/ident/` on a bunch of `Ident` variables. Not all of them, but a decent chunk.
2025-04-07handle sret for scalar autodiffManuel Drehwald-0/+6
2025-04-03add the autodiff batch mode frontendManuel Drehwald-0/+13
2025-02-21clean up autodiff code/commentsManuel Drehwald-1/+0
2025-02-10remove outdated *First autodiff variants for higher-order adManuel Drehwald-18/+6
2025-01-29upstream rustc_codegen_ssa/rustc_middle changes for enzyme/autodiffManuel Drehwald-1/+2
2025-01-01upstream rustc_codegen_llvm changes for enzyme/autodiffManuel Drehwald-16/+3
2024-12-18Re-export more `rustc_span::symbol` things from `rustc_span`.Nicholas Nethercote-2/+2
`rustc_span::symbol` defines some things that are re-exported from `rustc_span`, such as `Symbol` and `sym`. But it doesn't re-export some closely related things such as `Ident` and `kw`. So you can do `use rustc_span::{Symbol, sym}` but you have to do `use rustc_span::symbol::{Ident, kw}`, which is inconsistent for no good reason. This commit re-exports `Ident`, `kw`, and `MacroRulesNormalizedIdent`, and changes many `rustc_span::symbol::` qualifiers in `compiler/` to `rustc_span::`. This is a 200+ net line of code reduction, mostly because many files with two `use rustc_span` items can be reduced to one.
2024-10-11Single commit implementing the enzyme/autodiff frontendManuel Drehwald-0/+375
Co-authored-by: Lorenz Schmidt <bytesnake@mailbox.org>
2024-09-22Reformat using the new identifier sorting from rustfmtMichael Goulet-1/+1
2024-07-29Reformat `use` declarations.Nicholas Nethercote-1/+2
The previous commit updated `rustfmt.toml` appropriately. This commit is the outcome of running `x fmt --all` with the new formatting options.
2024-04-29Remove `extern crate rustc_macros` from numerous crates.Nicholas Nethercote-0/+2
2023-08-06Generate better function argument names in global_allocator expansionDavid Tolnay-5/+17
2023-06-01Remember names of `cfg`-ed out items to mention them in diagnosticsNilstrieb-0/+17
`#[cfg]`s are frequently used to gate crate content behind cargo features. This can lead to very confusing errors when features are missing. For example, `serde` doesn't have the `derive` feature by default. Therefore, `serde::Serialize` fails to resolve with a generic error, even though the macro is present in the docs. This commit adds a list of all stripped item names to metadata. This is filled during macro expansion and then, through a fed query, persisted in metadata. The downstream resolver can then access the metadata to look at possible candidates for mentioning in the errors. This slightly increases metadata (800k->809k for the feature-heavy windows crate), but not enough to really matter.
2023-05-11Prevent insta-stable no alloc shim supportbjorn3-0/+2
You will need to add the following as replacement for the old __rust_* definitions when not using the alloc shim. #[no_mangle] static __rust_no_alloc_shim_is_unstable: u8 = 0;
2023-05-11Split AllocatorKind::fn_name in global_fn_name and default_fn_namebjorn3-7/+6
2023-05-11Don't use an allocator shim for `#[global_allocator]`bjorn3-2/+9
This makes it possible to use liballoc/libstd in combination with `--emit obj` if you use `#[global_allocator]`. Making it work for the default libstd allocator would require weak functions, which are not well supported on all systems.
2023-01-05Fix `uninlined_format_args` for some compiler cratesnils-2/+2
Convert all the crates that have had their diagnostic migration completed (except save_analysis because that will be deleted soon and apfloat because of the licensing problem).
2021-06-20Make allocator_kind a query.Camille GILLOT-1/+1
2021-06-01Revert "Reduce the amount of untracked state in TyCtxt"Camille Gillot-1/+1
2021-05-30Make allocator_kind a query.Camille GILLOT-1/+1
2021-04-08Fix outdated crate names in compiler docspierwill-1/+1
Changes `librustc_X` to `rustc_X`, only in documentation comments. Plain code comments are left unchanged. Also fix incorrect file paths.
2020-08-30mv compiler to compiler/mark-0/+56