Skip to content

Commit c512f67

Browse files
committed
Don't emit load metadata in debug mode
1 parent a0569fa commit c512f67

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

compiler/rustc_codegen_llvm/src/builder.rs

+11
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ use rustc_middle::ty::layout::{
2020
FnAbiError, FnAbiOfHelpers, FnAbiRequest, LayoutError, LayoutOfHelpers, TyAndLayout,
2121
};
2222
use rustc_middle::ty::{self, Ty, TyCtxt};
23+
use rustc_session::config::OptLevel;
2324
use rustc_span::Span;
2425
use rustc_symbol_mangling::typeid::{kcfi_typeid_for_fnabi, typeid_for_fnabi, TypeIdOptions};
2526
use rustc_target::abi::{self, call::FnAbi, Align, Size, WrappingRange};
@@ -547,6 +548,11 @@ impl<'a, 'll, 'tcx> BuilderMethods<'a, 'tcx> for Builder<'a, 'll, 'tcx> {
547548
layout: TyAndLayout<'tcx>,
548549
offset: Size,
549550
) {
551+
if bx.cx.sess().opts.optimize == OptLevel::No {
552+
// Don't emit metadata we're not going to use
553+
return;
554+
}
555+
550556
if !scalar.is_uninit_valid() {
551557
bx.noundef_metadata(load);
552558
}
@@ -663,6 +669,11 @@ impl<'a, 'll, 'tcx> BuilderMethods<'a, 'tcx> for Builder<'a, 'll, 'tcx> {
663669
return;
664670
}
665671

672+
if self.cx.sess().opts.optimize == OptLevel::No {
673+
// Don't emit metadata we're not going to use
674+
return;
675+
}
676+
666677
unsafe {
667678
let llty = self.cx.val_ty(load);
668679
let v = [

tests/codegen/loads.rs

+2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
//@ compile-flags: -C no-prepopulate-passes -Zmir-opt-level=0
2+
//@ ignore-debug: We don't emit load metadata in debug
3+
24
#![crate_type = "lib"]
35
#![feature(generic_nonzero)]
46

0 commit comments

Comments
 (0)