-
Notifications
You must be signed in to change notification settings - Fork 101
update toolchain to nightly-2026-04-08 #554
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
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -133,9 +133,10 @@ mod symbols; | |
| mod target; | ||
| mod target_feature; | ||
|
|
||
| use crate::maybe_pqp_cg_ssa::back::write::ThinLtoInput; | ||
| use builder::Builder; | ||
| use codegen_cx::CodegenCx; | ||
| use maybe_pqp_cg_ssa::back::lto::{SerializedModule, ThinModule}; | ||
| use maybe_pqp_cg_ssa::back::lto::ThinModule; | ||
| use maybe_pqp_cg_ssa::back::write::{ | ||
| CodegenContext, FatLtoInput, ModuleConfig, OngoingCodegen, SharedEmitter, | ||
| TargetMachineFactoryFn, | ||
|
|
@@ -152,10 +153,11 @@ use rspirv::binary::Assemble; | |
| use rustc_ast::expand::allocator::AllocatorMethod; | ||
| use rustc_data_structures::fx::FxIndexMap; | ||
| use rustc_data_structures::profiling::SelfProfilerRef; | ||
| use rustc_errors::DiagCtxtHandle; | ||
| use rustc_metadata::EncodedMetadata; | ||
| use rustc_middle::dep_graph::{WorkProduct, WorkProductId}; | ||
| use rustc_middle::mir::mono::{MonoItem, MonoItemData}; | ||
| use rustc_middle::mir::pretty::write_mir_pretty; | ||
| use rustc_middle::mono::{MonoItem, MonoItemData}; | ||
| use rustc_middle::ty::print::with_no_trimmed_paths; | ||
| use rustc_middle::ty::{InstanceKind, TyCtxt}; | ||
| use rustc_session::Session; | ||
|
|
@@ -338,16 +340,15 @@ impl WriteBackendMethods for SpirvCodegenBackend { | |
| } | ||
|
|
||
| fn run_thin_lto( | ||
| cgcx: &CodegenContext, | ||
| _cgcx: &CodegenContext, | ||
| _prof: &SelfProfilerRef, | ||
| _dcx: rustc_errors::DiagCtxtHandle<'_>, | ||
| // FIXME(bjorn3): Limit LTO exports to these symbols | ||
| _dcx: DiagCtxtHandle<'_>, | ||
| _exported_symbols_for_lto: &[String], | ||
| _each_linked_rlib_for_lto: &[PathBuf], // njn: ? | ||
| modules: Vec<(String, Self::ModuleBuffer)>, | ||
| cached_modules: Vec<(SerializedModule<Self::ModuleBuffer>, WorkProduct)>, | ||
| _each_linked_rlib_for_lto: &[PathBuf], | ||
| _modules: Vec<ThinLtoInput<Self>>, | ||
| ) -> (Vec<ThinModule<Self>>, Vec<WorkProduct>) { | ||
| link::run_thin(cgcx, modules, cached_modules) | ||
| // Note(@firestar99): gcc impl this as unreachable as well | ||
| unreachable!() | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are we sure this is unreachable? What if someone sets LTO to thin? https://doc.rust-lang.org/cargo/reference/profiles.html#lto Wouldn't what we did before, just pass-through, not be better?
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The gcc impl is just I personally feel like we've got quite a few things implemented "in case they are used" without actually knowing when they're used. So we can't test them either, so there's no way to know whether our "mock" implementations actually work. To me, removing these dead code paths by a hard error and seeing it never trigger is a good thing, as it means less code to maintain. With the ThinLTO interface having gotten a refactor the past week, I don't exactly know how to actually implement this pass-through correctly, and even worse, how to even test it. |
||
| } | ||
|
|
||
| fn optimize( | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,7 +1,7 @@ | ||
| [toolchain] | ||
| channel = "nightly-2026-04-02" | ||
| channel = "nightly-2026-04-08" | ||
| components = ["rust-src", "rustc-dev", "llvm-tools"] | ||
| # commit_hash = 7e46c5f6fb87f8cf4353e058479cef15d1d952b4 | ||
| # commit_hash = c756124775121dea0e640652c5ee3c89e3dd0eb4 | ||
|
|
||
| # Whenever changing the nightly channel, update the commit hash above, and | ||
| # change `REQUIRED_RUST_TOOLCHAIN` in `crates/rustc_codegen_spirv/build.rs` too. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is the replacement for
scalable_alloca, otherwise this is never called, although judging by the name who knows what'll be used for in the future