@@ -6,8 +6,8 @@ use rustc_middle::bug;
66use rustc_middle:: mir:: * ;
77use rustc_middle:: ty:: layout:: ValidityRequirement ;
88use rustc_middle:: ty:: { self , layout, GenericArgsRef , ParamEnv , Ty , TyCtxt } ;
9- use rustc_span:: sym;
109use rustc_span:: symbol:: Symbol ;
10+ use rustc_span:: { sym, DUMMY_SP } ;
1111use rustc_target:: spec:: abi:: Abi ;
1212
1313use crate :: simplify:: simplify_duplicate_switch_targets;
@@ -49,12 +49,12 @@ impl<'tcx> MirPass<'tcx> for InstSimplify {
4949 match statement. kind {
5050 StatementKind :: Assign ( box ( _place, ref mut rvalue) ) => {
5151 if !preserve_ub_checks {
52- ctx. simplify_ub_check ( & statement . source_info , rvalue) ;
52+ ctx. simplify_ub_check ( rvalue) ;
5353 }
54- ctx. simplify_bool_cmp ( & statement . source_info , rvalue) ;
55- ctx. simplify_ref_deref ( & statement . source_info , rvalue) ;
56- ctx. simplify_len ( & statement . source_info , rvalue) ;
57- ctx. simplify_ptr_aggregate ( & statement . source_info , rvalue) ;
54+ ctx. simplify_bool_cmp ( rvalue) ;
55+ ctx. simplify_ref_deref ( rvalue) ;
56+ ctx. simplify_len ( rvalue) ;
57+ ctx. simplify_ptr_aggregate ( rvalue) ;
5858 ctx. simplify_cast ( rvalue) ;
5959 }
6060 _ => { }
@@ -76,23 +76,8 @@ struct InstSimplifyContext<'tcx, 'a> {
7676}
7777
7878impl < ' tcx > InstSimplifyContext < ' tcx , ' _ > {
79- fn should_simplify ( & self , source_info : & SourceInfo , rvalue : & Rvalue < ' tcx > ) -> bool {
80- self . should_simplify_custom ( source_info, "Rvalue" , rvalue)
81- }
82-
83- fn should_simplify_custom (
84- & self ,
85- source_info : & SourceInfo ,
86- label : & str ,
87- value : impl std:: fmt:: Debug ,
88- ) -> bool {
89- self . tcx . consider_optimizing ( || {
90- format ! ( "InstSimplify - {label}: {value:?} SourceInfo: {source_info:?}" )
91- } )
92- }
93-
9479 /// Transform boolean comparisons into logical operations.
95- fn simplify_bool_cmp ( & self , source_info : & SourceInfo , rvalue : & mut Rvalue < ' tcx > ) {
80+ fn simplify_bool_cmp ( & self , rvalue : & mut Rvalue < ' tcx > ) {
9681 match rvalue {
9782 Rvalue :: BinaryOp ( op @ ( BinOp :: Eq | BinOp :: Ne ) , box ( a, b) ) => {
9883 let new = match ( op, self . try_eval_bool ( a) , self . try_eval_bool ( b) ) {
@@ -123,9 +108,7 @@ impl<'tcx> InstSimplifyContext<'tcx, '_> {
123108 _ => None ,
124109 } ;
125110
126- if let Some ( new) = new
127- && self . should_simplify ( source_info, rvalue)
128- {
111+ if let Some ( new) = new {
129112 * rvalue = new;
130113 }
131114 }
@@ -140,17 +123,13 @@ impl<'tcx> InstSimplifyContext<'tcx, '_> {
140123 }
141124
142125 /// Transform `&(*a)` ==> `a`.
143- fn simplify_ref_deref ( & self , source_info : & SourceInfo , rvalue : & mut Rvalue < ' tcx > ) {
126+ fn simplify_ref_deref ( & self , rvalue : & mut Rvalue < ' tcx > ) {
144127 if let Rvalue :: Ref ( _, _, place) | Rvalue :: AddressOf ( _, place) = rvalue {
145128 if let Some ( ( base, ProjectionElem :: Deref ) ) = place. as_ref ( ) . last_projection ( ) {
146129 if rvalue. ty ( self . local_decls , self . tcx ) != base. ty ( self . local_decls , self . tcx ) . ty {
147130 return ;
148131 }
149132
150- if !self . should_simplify ( source_info, rvalue) {
151- return ;
152- }
153-
154133 * rvalue = Rvalue :: Use ( Operand :: Copy ( Place {
155134 local : base. local ,
156135 projection : self . tcx . mk_place_elems ( base. projection ) ,
@@ -160,36 +139,24 @@ impl<'tcx> InstSimplifyContext<'tcx, '_> {
160139 }
161140
162141 /// Transform `Len([_; N])` ==> `N`.
163- fn simplify_len ( & self , source_info : & SourceInfo , rvalue : & mut Rvalue < ' tcx > ) {
142+ fn simplify_len ( & self , rvalue : & mut Rvalue < ' tcx > ) {
164143 if let Rvalue :: Len ( ref place) = * rvalue {
165144 let place_ty = place. ty ( self . local_decls , self . tcx ) . ty ;
166145 if let ty:: Array ( _, len) = * place_ty. kind ( ) {
167- if !self . should_simplify ( source_info, rvalue) {
168- return ;
169- }
170-
171146 let const_ = Const :: from_ty_const ( len, self . tcx . types . usize , self . tcx ) ;
172- let constant = ConstOperand { span : source_info . span , const_, user_ty : None } ;
147+ let constant = ConstOperand { span : DUMMY_SP , const_, user_ty : None } ;
173148 * rvalue = Rvalue :: Use ( Operand :: Constant ( Box :: new ( constant) ) ) ;
174149 }
175150 }
176151 }
177152
178153 /// Transform `Aggregate(RawPtr, [p, ()])` ==> `Cast(PtrToPtr, p)`.
179- fn simplify_ptr_aggregate ( & self , source_info : & SourceInfo , rvalue : & mut Rvalue < ' tcx > ) {
154+ fn simplify_ptr_aggregate ( & self , rvalue : & mut Rvalue < ' tcx > ) {
180155 if let Rvalue :: Aggregate ( box AggregateKind :: RawPtr ( pointee_ty, mutability) , fields) = rvalue
181156 {
182157 let meta_ty = fields. raw [ 1 ] . ty ( self . local_decls , self . tcx ) ;
183158 if meta_ty. is_unit ( ) {
184159 // The mutable borrows we're holding prevent printing `rvalue` here
185- if !self . should_simplify_custom (
186- source_info,
187- "Aggregate::RawPtr" ,
188- ( & pointee_ty, * mutability, & fields) ,
189- ) {
190- return ;
191- }
192-
193160 let mut fields = std:: mem:: take ( fields) ;
194161 let _meta = fields. pop ( ) . unwrap ( ) ;
195162 let data = fields. pop ( ) . unwrap ( ) ;
@@ -199,10 +166,10 @@ impl<'tcx> InstSimplifyContext<'tcx, '_> {
199166 }
200167 }
201168
202- fn simplify_ub_check ( & self , source_info : & SourceInfo , rvalue : & mut Rvalue < ' tcx > ) {
169+ fn simplify_ub_check ( & self , rvalue : & mut Rvalue < ' tcx > ) {
203170 if let Rvalue :: NullaryOp ( NullOp :: UbChecks , _) = * rvalue {
204171 let const_ = Const :: from_bool ( self . tcx , self . tcx . sess . ub_checks ( ) ) ;
205- let constant = ConstOperand { span : source_info . span , const_, user_ty : None } ;
172+ let constant = ConstOperand { span : DUMMY_SP , const_, user_ty : None } ;
206173 * rvalue = Rvalue :: Use ( Operand :: Constant ( Box :: new ( constant) ) ) ;
207174 }
208175 }
@@ -292,16 +259,6 @@ impl<'tcx> InstSimplifyContext<'tcx, '_> {
292259 return ;
293260 }
294261
295- if !self . tcx . consider_optimizing ( || {
296- format ! (
297- "InstSimplify - Call: {:?} SourceInfo: {:?}" ,
298- ( fn_def_id, fn_args) ,
299- terminator. source_info
300- )
301- } ) {
302- return ;
303- }
304-
305262 let Ok ( [ arg] ) = take_array ( args) else { return } ;
306263 let Some ( arg_place) = arg. node . place ( ) else { return } ;
307264
0 commit comments