@@ -71,7 +71,7 @@ impl<'tcx, Tag: Provenance> Immediate<Tag> {
71
71
}
72
72
73
73
#[ inline]
74
- #[ track_caller]
74
+ #[ cfg_attr ( debug_assertions , track_caller) ] // only in debug builds due to perf (see #98980)
75
75
pub fn to_scalar_or_uninit ( self ) -> ScalarMaybeUninit < Tag > {
76
76
match self {
77
77
Immediate :: Scalar ( val) => val,
@@ -80,13 +80,13 @@ impl<'tcx, Tag: Provenance> Immediate<Tag> {
80
80
}
81
81
82
82
#[ inline]
83
- #[ track_caller]
83
+ #[ cfg_attr ( debug_assertions , track_caller) ] // only in debug builds due to perf (see #98980)
84
84
pub fn to_scalar ( self ) -> InterpResult < ' tcx , Scalar < Tag > > {
85
85
self . to_scalar_or_uninit ( ) . check_init ( )
86
86
}
87
87
88
88
#[ inline]
89
- #[ track_caller]
89
+ #[ cfg_attr ( debug_assertions , track_caller) ] // only in debug builds due to perf (see #98980)
90
90
pub fn to_scalar_or_uninit_pair ( self ) -> ( ScalarMaybeUninit < Tag > , ScalarMaybeUninit < Tag > ) {
91
91
match self {
92
92
Immediate :: ScalarPair ( val1, val2) => ( val1, val2) ,
@@ -95,7 +95,7 @@ impl<'tcx, Tag: Provenance> Immediate<Tag> {
95
95
}
96
96
97
97
#[ inline]
98
- #[ track_caller]
98
+ #[ cfg_attr ( debug_assertions , track_caller) ] // only in debug builds due to perf (see #98980)
99
99
pub fn to_scalar_pair ( self ) -> InterpResult < ' tcx , ( Scalar < Tag > , Scalar < Tag > ) > {
100
100
let ( val1, val2) = self . to_scalar_or_uninit_pair ( ) ;
101
101
Ok ( ( val1. check_init ( ) ?, val2. check_init ( ) ?) )
0 commit comments