Remove some depgraph edges on the HIR by invoking the intrinsic query instead of checking the attribute

This commit is contained in:
Oli Scherer 2024-02-22 14:47:35 +00:00
parent b3dcbc2931
commit bf5fc6e5d7
4 changed files with 5 additions and 6 deletions

View file

@ -23,7 +23,7 @@ fn cross_crate_inlinable(tcx: TyCtxt<'_>, def_id: LocalDefId) -> bool {
return false;
}
if tcx.has_attr(def_id, sym::rustc_intrinsic_must_be_overridden) {
if tcx.intrinsic(def_id).is_some_and(|i| i.must_be_overridden) {
return false;
}

View file

@ -632,9 +632,9 @@ fn optimized_mir(tcx: TyCtxt<'_>, did: LocalDefId) -> &Body<'_> {
}
fn inner_optimized_mir(tcx: TyCtxt<'_>, did: LocalDefId) -> Body<'_> {
if let Some(attr) = tcx.get_attr(did, sym::rustc_intrinsic_must_be_overridden) {
if tcx.intrinsic(did).is_some_and(|i| i.must_be_overridden) {
span_bug!(
attr.span,
tcx.def_span(did),
"this intrinsic must be overridden by the codegen backend, it has no meaningful body",
)
}