@@ -7,8 +7,8 @@ use rustc_middle::bug;
77use rustc_middle:: mir:: * ;
88use rustc_middle:: ty:: layout:: ValidityRequirement ;
99use rustc_middle:: ty:: { self , GenericArgsRef , Ty , TyCtxt , layout} ;
10- use rustc_span:: sym;
1110use rustc_span:: symbol:: Symbol ;
11+ use rustc_span:: { DUMMY_SP , sym} ;
1212
1313use crate :: simplify:: simplify_duplicate_switch_targets;
1414use crate :: take_array;
@@ -43,12 +43,12 @@ impl<'tcx> crate::MirPass<'tcx> for InstSimplify {
4343 match statement. kind {
4444 StatementKind :: Assign ( box ( _place, ref mut rvalue) ) => {
4545 if !preserve_ub_checks {
46- ctx. simplify_ub_check ( & statement . source_info , rvalue) ;
46+ ctx. simplify_ub_check ( rvalue) ;
4747 }
48- ctx. simplify_bool_cmp ( & statement . source_info , rvalue) ;
49- ctx. simplify_ref_deref ( & statement . source_info , rvalue) ;
50- ctx. simplify_len ( & statement . source_info , rvalue) ;
51- ctx. simplify_ptr_aggregate ( & statement . source_info , rvalue) ;
48+ ctx. simplify_bool_cmp ( rvalue) ;
49+ ctx. simplify_ref_deref ( rvalue) ;
50+ ctx. simplify_len ( rvalue) ;
51+ ctx. simplify_ptr_aggregate ( rvalue) ;
5252 ctx. simplify_cast ( rvalue) ;
5353 }
5454 _ => { }
@@ -70,23 +70,8 @@ struct InstSimplifyContext<'a, 'tcx> {
7070}
7171
7272impl < ' tcx > InstSimplifyContext < ' _ , ' tcx > {
73- fn should_simplify ( & self , source_info : & SourceInfo , rvalue : & Rvalue < ' tcx > ) -> bool {
74- self . should_simplify_custom ( source_info, "Rvalue" , rvalue)
75- }
76-
77- fn should_simplify_custom (
78- & self ,
79- source_info : & SourceInfo ,
80- label : & str ,
81- value : impl std:: fmt:: Debug ,
82- ) -> bool {
83- self . tcx . consider_optimizing ( || {
84- format ! ( "InstSimplify - {label}: {value:?} SourceInfo: {source_info:?}" )
85- } )
86- }
87-
8873 /// Transform boolean comparisons into logical operations.
89- fn simplify_bool_cmp ( & self , source_info : & SourceInfo , rvalue : & mut Rvalue < ' tcx > ) {
74+ fn simplify_bool_cmp ( & self , rvalue : & mut Rvalue < ' tcx > ) {
9075 match rvalue {
9176 Rvalue :: BinaryOp ( op @ ( BinOp :: Eq | BinOp :: Ne ) , box ( a, b) ) => {
9277 let new = match ( op, self . try_eval_bool ( a) , self . try_eval_bool ( b) ) {
@@ -117,9 +102,7 @@ impl<'tcx> InstSimplifyContext<'_, 'tcx> {
117102 _ => None ,
118103 } ;
119104
120- if let Some ( new) = new
121- && self . should_simplify ( source_info, rvalue)
122- {
105+ if let Some ( new) = new {
123106 * rvalue = new;
124107 }
125108 }
@@ -134,17 +117,13 @@ impl<'tcx> InstSimplifyContext<'_, 'tcx> {
134117 }
135118
136119 /// Transform `&(*a)` ==> `a`.
137- fn simplify_ref_deref ( & self , source_info : & SourceInfo , rvalue : & mut Rvalue < ' tcx > ) {
120+ fn simplify_ref_deref ( & self , rvalue : & mut Rvalue < ' tcx > ) {
138121 if let Rvalue :: Ref ( _, _, place) | Rvalue :: RawPtr ( _, place) = rvalue {
139122 if let Some ( ( base, ProjectionElem :: Deref ) ) = place. as_ref ( ) . last_projection ( ) {
140123 if rvalue. ty ( self . local_decls , self . tcx ) != base. ty ( self . local_decls , self . tcx ) . ty {
141124 return ;
142125 }
143126
144- if !self . should_simplify ( source_info, rvalue) {
145- return ;
146- }
147-
148127 * rvalue = Rvalue :: Use ( Operand :: Copy ( Place {
149128 local : base. local ,
150129 projection : self . tcx . mk_place_elems ( base. projection ) ,
@@ -154,36 +133,24 @@ impl<'tcx> InstSimplifyContext<'_, 'tcx> {
154133 }
155134
156135 /// Transform `Len([_; N])` ==> `N`.
157- fn simplify_len ( & self , source_info : & SourceInfo , rvalue : & mut Rvalue < ' tcx > ) {
136+ fn simplify_len ( & self , rvalue : & mut Rvalue < ' tcx > ) {
158137 if let Rvalue :: Len ( ref place) = * rvalue {
159138 let place_ty = place. ty ( self . local_decls , self . tcx ) . ty ;
160139 if let ty:: Array ( _, len) = * place_ty. kind ( ) {
161- if !self . should_simplify ( source_info, rvalue) {
162- return ;
163- }
164-
165140 let const_ = Const :: from_ty_const ( len, self . tcx . types . usize , self . tcx ) ;
166- let constant = ConstOperand { span : source_info . span , const_, user_ty : None } ;
141+ let constant = ConstOperand { span : DUMMY_SP , const_, user_ty : None } ;
167142 * rvalue = Rvalue :: Use ( Operand :: Constant ( Box :: new ( constant) ) ) ;
168143 }
169144 }
170145 }
171146
172147 /// Transform `Aggregate(RawPtr, [p, ()])` ==> `Cast(PtrToPtr, p)`.
173- fn simplify_ptr_aggregate ( & self , source_info : & SourceInfo , rvalue : & mut Rvalue < ' tcx > ) {
148+ fn simplify_ptr_aggregate ( & self , rvalue : & mut Rvalue < ' tcx > ) {
174149 if let Rvalue :: Aggregate ( box AggregateKind :: RawPtr ( pointee_ty, mutability) , fields) = rvalue
175150 {
176151 let meta_ty = fields. raw [ 1 ] . ty ( self . local_decls , self . tcx ) ;
177152 if meta_ty. is_unit ( ) {
178153 // The mutable borrows we're holding prevent printing `rvalue` here
179- if !self . should_simplify_custom (
180- source_info,
181- "Aggregate::RawPtr" ,
182- ( & pointee_ty, * mutability, & fields) ,
183- ) {
184- return ;
185- }
186-
187154 let mut fields = std:: mem:: take ( fields) ;
188155 let _meta = fields. pop ( ) . unwrap ( ) ;
189156 let data = fields. pop ( ) . unwrap ( ) ;
@@ -193,10 +160,10 @@ impl<'tcx> InstSimplifyContext<'_, 'tcx> {
193160 }
194161 }
195162
196- fn simplify_ub_check ( & self , source_info : & SourceInfo , rvalue : & mut Rvalue < ' tcx > ) {
163+ fn simplify_ub_check ( & self , rvalue : & mut Rvalue < ' tcx > ) {
197164 if let Rvalue :: NullaryOp ( NullOp :: UbChecks , _) = * rvalue {
198165 let const_ = Const :: from_bool ( self . tcx , self . tcx . sess . ub_checks ( ) ) ;
199- let constant = ConstOperand { span : source_info . span , const_, user_ty : None } ;
166+ let constant = ConstOperand { span : DUMMY_SP , const_, user_ty : None } ;
200167 * rvalue = Rvalue :: Use ( Operand :: Constant ( Box :: new ( constant) ) ) ;
201168 }
202169 }
@@ -284,16 +251,6 @@ impl<'tcx> InstSimplifyContext<'_, 'tcx> {
284251 return ;
285252 }
286253
287- if !self . tcx . consider_optimizing ( || {
288- format ! (
289- "InstSimplify - Call: {:?} SourceInfo: {:?}" ,
290- ( fn_def_id, fn_args) ,
291- terminator. source_info
292- )
293- } ) {
294- return ;
295- }
296-
297254 let Ok ( [ arg] ) = take_array ( args) else { return } ;
298255 let Some ( arg_place) = arg. node . place ( ) else { return } ;
299256
0 commit comments